diff --git a/01_Code/physical_computing_interface/.DS_Store b/01_Code/physical_computing_interface/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..7d0dddfdc9ef619267093ef33b77a5d6305dec4b
Binary files /dev/null and b/01_Code/physical_computing_interface/.DS_Store differ
diff --git a/01_Code/physical_computing_interface/app.js b/01_Code/physical_computing_interface/app.js
index a4154368b2ca2d07c5fa4707e847bdeee25f1c98..2e6988828ebccf3bb13ceb9af0d49b25718e5fbd 100644
--- a/01_Code/physical_computing_interface/app.js
+++ b/01_Code/physical_computing_interface/app.js
@@ -16,3 +16,64 @@ initEditor();// todo enclose into class
 
 var assembler= new Assembler(three,GLOBALS,1,50,[new THREE.Vector3(0,0,0)],[new THREE.Vector3(GLOBALS.gridSize/2.0*GLOBALS.voxelSpacing,0,0)]);
 assembler.run();
+
+var setup;
+$.getJSON("./simulation/json/setup.json", function(json) {
+    setup=json.setup;
+    setup.viz.colorMaps=[coolwarm,YlGnBu, winter ,jet];
+    
+    
+});
+
+// var setup={//empty
+// 	nodes: [
+// 		],
+// 	edges: [
+// 		],
+
+// 	//material properties - AISI 1095 Carbon Steel (Spring Steel)
+// 	ndofs   : 3*6,
+
+// 	animation :  {
+	
+// 		showDisplacement : true,
+// 		exageration : 2000,
+// 		speed:3.0
+		
+// 	},
+// 	viz :  {
+	
+		
+// 		minStress:-500,
+// 		maxStress: 500,
+// 		colorMaps:[coolwarm,YlGnBu, winter ,jet],
+// 		colorMap:0,
+		
+// 	},
+// 	solve: solveFea,
+// 	bar:false
+	
+// };
+// var node=true;
+// // init();
+// // initRhino3dm(1,10,createVoxelnotRhino,true,true);
+// // play ();
+
+// // drawStructure();
+// // colorEdges();
+// // animate();
+// var size=5;
+
+document.addEventListener('runNode', function (e) { 
+    // var tgt=cy.$id(e.detail.id);
+    // runNode(tgt); //local run node //TODO CHANGE ADD CLOSURE
+    // console.log(GLOBALS.occupancy);
+    // console.log(GLOBALS.timeline[0]);
+    // simulate(size,GLOBALS.timeline,createVoxelnotRhino );
+    init();
+    drawStructure();
+    colorEdges();
+    animate();
+
+}, false);
+
diff --git a/01_Code/physical_computing_interface/globals.js b/01_Code/physical_computing_interface/globals.js
index ecb3a6a816db00aa708bb5ec088437477c2e771a..a4c9917074db4ef92ef267c3e875dbd2182cebaf 100644
--- a/01_Code/physical_computing_interface/globals.js
+++ b/01_Code/physical_computing_interface/globals.js
@@ -220,7 +220,7 @@ function globals(utils){
         
     };
 
-    this.grid=this.gridPresets.Dice;
+    this.grid=this.gridPresets.Cubic;
     this.utils=utils;
 
     this.occupancy=[];
diff --git a/01_Code/physical_computing_interface/index.html b/01_Code/physical_computing_interface/index.html
index 5157daa62deae898cc3e7353b785bfe9f2781b22..4c51eb0fea2e23028f7e7e01479f9f38b034a955 100644
--- a/01_Code/physical_computing_interface/index.html
+++ b/01_Code/physical_computing_interface/index.html
@@ -15,7 +15,7 @@
     <div id="threejs">
         <div id="threejs1">
             <div class="header1">
-                    <i> 3D</i>
+                    <i> Assembly</i>
                     <!-- Three.js -->
             </div>
             
@@ -31,16 +31,11 @@
         <div id="threejs1">
             <div class="header1">
                     <i> Simulation</i>
-                    <!-- Three.js -->
             </div>
-            
-            <!-- <div id="webgl1"></div> -->
             <div class="dragbar2"></div>
+            <div id="webgl1"></div>
+            
         </div>
-        <!-- <div class="slidecontainer">
-                <input type="range" min="0" max="0" value="1" class="slider" id="time">
-        </div> -->
-        
             
     </div>
     
@@ -134,6 +129,31 @@
 <script src="./assembly/InverseKinematic.js"></script><!-- TODO LOCATION -->
 <script src="./assembly/voxel.js"></script><!-- TODO CHANGE TO DICE PIECES -->
 
+<!-- simulation stuff -->
+<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
+<script type="text/javascript" src="https://files.mcneel.com/rhino3dm/js/latest/rhino3dm.js"></script>
+
+<!-- <script async type="text/javascript" src="https://files.mcneel.com/rhino3dm/js/latest/rhino3dm.js"></script>
+<script async type="text/javascript" src="https://files.mcneel.com/rhino3dm/js/latest/compute.rhino3d.js"></script> -->
+
+<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.0.0/dist/tf.min.js"></script>
+
+<script src="./simulation/lib/stats.js"></script>
+<script src="./simulation/lib/SVGRenderer.js"></script>
+<script src="./simulation/lib/js-colormaps.js"></script>
+<script src="./simulation/lib/LineSegments2.js"></script>
+<script src="./simulation/lib/LineSegmentsGeometry.js"></script>
+<script src="./simulation/lib/Line2.js"></script>
+<script src="./simulation/lib/LineMaterial.js"></script>
+<script src="./simulation/lib/LineGeometry.js"></script>
+<script src="./simulation/lib/GeometryUtils.js"></script>
+
+<script src="./simulation/fea/beamFea.js"></script> 
+<script src="./simulation/visualization/geometry.js"></script> 
+
+<script src="./simulation/visualization/utils.js"></script> 
+<script src="./simulation/visualization/main.js"></script> 
+
 
 <!-- code -->
 <script src="./globals.js"></script> <!-- event handling and GLOBALS,UTILS -->
@@ -144,6 +164,8 @@
 <script src="./json/json.js"></script><!-- json -->
 
 
+
+
 <script src="./app.js"></script><!-- threejs visualization -->
 
 
@@ -168,6 +190,7 @@
           $('.footer2').css("left",e.pageX+2);
           
        })
+       onWindowResize();//todo change location
     });
 
     $('.dragbar1').mousedown(function(e){
@@ -188,6 +211,7 @@
         $('#simulation').css("top",e.pageY+2);
          
       })
+      onWindowResize();//todo change location
    });
 
    $(document).mouseup(function(e){
diff --git a/01_Code/physical_computing_interface/rhino3dm.wasm b/01_Code/physical_computing_interface/rhino3dm.wasm
new file mode 100644
index 0000000000000000000000000000000000000000..bb9fd4db64ebbc879af5f5e916466ea791876dc8
Binary files /dev/null and b/01_Code/physical_computing_interface/rhino3dm.wasm differ
diff --git a/01_Code/physical_computing_interface/simulation/.DS_Store b/01_Code/physical_computing_interface/simulation/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..2e3e2ad91ff3cd598996d669a864298882b349a4
Binary files /dev/null and b/01_Code/physical_computing_interface/simulation/.DS_Store differ
diff --git a/01_Code/physical_computing_interface/simulation/app.js b/01_Code/physical_computing_interface/simulation/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..a98c261621bbac8be2260ed540a040eff04f6e74
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/app.js
@@ -0,0 +1,74 @@
+// "use strict";
+var node=true;
+var fs = require('fs');
+var THREE=require('three');
+var tf=require('@tensorflow/tfjs');
+const {performance, PerformanceObserver} = require('perf_hooks');
+const editJsonFile = require("edit-json-file");
+eval(fs.readFileSync("./lib/rhino3dm.js")+''); 
+eval(fs.readFileSync("./lib/js-colormaps.js")+'');
+
+
+////////////////////load 
+let inputFile = editJsonFile(`${__dirname}/json/emptySetup.json`);
+let outputFile = editJsonFile(`${__dirname}/json/setupTest.json`);
+var setup=inputFile.toObject();
+
+function saveJSON(){
+    // console.log(setup);
+    outputFile.set("setup", setup);
+    outputFile.save();
+}
+//////////////////////////////////
+eval(fs.readFileSync("./visualization/utils.js")+''); 
+
+eval(fs.readFileSync("./fea/beamFea.js")+''); 
+eval(fs.readFileSync('./visualization/geometry.js')+'');
+
+
+//////////////////////spawn julia////////////////////////
+
+// const { spawn } = require('child_process');
+// console.log("hi")
+// // const ls = spawn('ls', ['', '../']);
+// const ls = spawn('julia', ['counter.jl', __dirname]);
+// // const npm = which.sync('npm');
+// // console.log(npm)
+// // const child = spawn('dir');
+
+
+// ls.stdout.on('data', (data) => {
+//   console.log(`stdout: ${data}`);
+// });
+
+// ls.stderr.on('data', (data) => {
+//   console.error(`stderr: ${data}`);
+// });
+
+// ls.on('close', (code) => {
+//   console.log(`child process exited with code ${code}`);
+// });
+
+
+//////////////////////////////serve /////////////////
+
+// var http = require('http');
+
+// var finalhandler = require('finalhandler');
+// var serveStatic = require('serve-static');
+
+// var serve = serveStatic("./");
+
+// var server = http.createServer(function(req, res) {
+//   var done = finalhandler(req, res);
+//   serve(req, res, done);
+// });
+
+// var port=8080;
+// server.listen(8080);
+
+// console.log(`Server listening on port ${port}`);
+// console.log(setup)
+
+
+
diff --git a/01_Code/physical_computing_interface/simulation/demos/index.html b/01_Code/physical_computing_interface/simulation/demos/index.html
new file mode 100644
index 0000000000000000000000000000000000000000..c544dc60b13cd584aca0a6081ff392abcf5406b7
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/demos/index.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<title>MetaVoxel</title>
+		<meta charset="utf-8">
+		<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
+		<!-- <link type="text/css" rel="stylesheet" href="main.css"> -->
+		<style>
+			body {
+				background-color: #f0f0f0;
+				color: #444;
+			}
+			a {
+				color: #08f;
+			}
+		</style>
+	</head>
+	<body>
+		<div id="container"></div>
+		<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
+
+		<script type="text/javascript" src="https://files.mcneel.com/rhino3dm/js/latest/rhino3dm.js"></script>
+		
+		<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.0.0/dist/tf.min.js"></script>
+
+		<!-- <script src="./lib/require.js"></script> -->
+
+        <script src="../lib/three.min.js"></script>
+
+        <script src="../lib/stats.js"></script>
+        <script src="../lib/dat.gui.js"></script>
+
+		<script src="../lib/SVGRenderer.js"></script>
+		
+
+        <script src="../lib/DragControls.js"></script>
+        <script src="../lib/OrbitControls.js"></script>
+		<script src="../lib/TransformControls.js"></script>
+		
+		<script src="../lib/js-colormaps.js"></script>
+		<script src="../lib/LineSegments2.js"></script>
+		<script src="../lib/LineSegmentsGeometry.js"></script>
+		<script src="../lib/Line2.js"></script>
+		<script src="../lib/LineMaterial.js"></script>
+		<script src="../lib/LineGeometry.js"></script>
+		<script src="../lib/GeometryUtils.js"></script>
+
+		<script src="../visualization/utils.js"></script> 
+
+		<!-- <script src="./beamFea.js"></script> 
+		<script src="./geometry.js"></script>  -->
+		<script src="../visualization/main.js"></script> 
+
+		<script>
+			$.getJSON("../json/setup.json", function(json) {
+				setup=json.setup;
+				setup.viz.colorMaps=[coolwarm,YlGnBu, winter ,jet];
+				init();
+				drawStructure();
+				colorEdges();
+				animate();
+				
+			});
+		</script>
+
+		
+
+
+    </body>
+</html>
diff --git a/01_Code/physical_computing_interface/simulation/demos/indexChiral.html b/01_Code/physical_computing_interface/simulation/demos/indexChiral.html
new file mode 100644
index 0000000000000000000000000000000000000000..97fda45c89cb198bc785a2806842d9fae720148a
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/demos/indexChiral.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<title>MetaVoxel</title>
+		<meta charset="utf-8">
+		<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
+		<!-- <link type="text/css" rel="stylesheet" href="main.css"> -->
+		<style>
+			body {
+				background-color: #f0f0f0;
+				color: #444;
+			}
+			a {
+				color: #08f;
+			}
+		</style>
+	</head>
+	<body>
+		<div id="container"></div>
+		<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
+
+		<script type="text/javascript" src="https://files.mcneel.com/rhino3dm/js/latest/rhino3dm.js"></script>
+		
+		<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.0.0/dist/tf.min.js"></script>
+
+		<!-- <script src="./lib/require.js"></script> -->
+
+		<script src="../lib/three.min.js"></script>
+
+        <script src="../lib/stats.js"></script>
+        <script src="../lib/dat.gui.js"></script>
+
+		<script src="../lib/SVGRenderer.js"></script>
+		
+
+        <script src="../lib/DragControls.js"></script>
+        <script src="../lib/OrbitControls.js"></script>
+		<script src="../lib/TransformControls.js"></script>
+		
+		<script src="../lib/js-colormaps.js"></script>
+		<script src="../lib/LineSegments2.js"></script>
+		<script src="../lib/LineSegmentsGeometry.js"></script>
+		<script src="../lib/Line2.js"></script>
+		<script src="../lib/LineMaterial.js"></script>
+		<script src="../lib/LineGeometry.js"></script>
+		<script src="../lib/GeometryUtils.js"></script>
+
+		<script src="../visualization/utils.js"></script> 
+
+		<!-- <script src="./beamFea.js"></script> 
+		<script src="./geometry.js"></script>  -->
+		<script src="../visualization/main.js"></script> 
+
+		<script>
+			$.getJSON("../json/setupChiral.json", function(json) {
+				setup=json.setup;
+				setup.viz.colorMaps=[coolwarm,YlGnBu, winter ,jet];
+				init();
+				drawStructure();
+				colorEdges();
+				animate();
+				
+			});
+		</script>
+
+		
+
+
+    </body>
+</html>
diff --git a/01_Code/physical_computing_interface/simulation/demos/indexChiral3.html b/01_Code/physical_computing_interface/simulation/demos/indexChiral3.html
new file mode 100644
index 0000000000000000000000000000000000000000..9d6c3938de4d94d2894f1208f7ed7c20cc2c1181
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/demos/indexChiral3.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<title>MetaVoxel</title>
+		<meta charset="utf-8">
+		<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
+		<!-- <link type="text/css" rel="stylesheet" href="main.css"> -->
+		<style>
+			body {
+				background-color: #f0f0f0;
+				color: #444;
+			}
+			a {
+				color: #08f;
+			}
+		</style>
+	</head>
+	<body>
+		<div id="container"></div>
+		<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
+
+		<script type="text/javascript" src="https://files.mcneel.com/rhino3dm/js/latest/rhino3dm.js"></script>
+		
+		<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.0.0/dist/tf.min.js"></script>
+
+		<!-- <script src="./lib/require.js"></script> -->
+
+        <script src="../lib/three.min.js"></script>
+
+        <script src="../lib/stats.js"></script>
+        <script src="../lib/dat.gui.js"></script>
+
+		<script src="../lib/SVGRenderer.js"></script>
+		
+
+        <script src="../lib/DragControls.js"></script>
+        <script src="../lib/OrbitControls.js"></script>
+		<script src="../lib/TransformControls.js"></script>
+		
+		<script src="../lib/js-colormaps.js"></script>
+		<script src="../lib/LineSegments2.js"></script>
+		<script src="../lib/LineSegmentsGeometry.js"></script>
+		<script src="../lib/Line2.js"></script>
+		<script src="../lib/LineMaterial.js"></script>
+		<script src="../lib/LineGeometry.js"></script>
+		<script src="../lib/GeometryUtils.js"></script>
+
+		<script src="../visualization/utils.js"></script> 
+
+		<!-- <script src="./beamFea.js"></script> 
+		<script src="./geometry.js"></script>  -->
+		<script src="../visualization/main.js"></script> 
+
+		<script>
+			$.getJSON("../json/setupChiral3.json", function(json) {
+				setup=json.setup;
+				setup.viz.colorMaps=[coolwarm,YlGnBu, winter ,jet];
+				init();
+				drawStructure();
+				colorEdges();
+				animate();
+				
+			});
+		</script>
+
+		
+
+
+    </body>
+</html>
diff --git a/01_Code/physical_computing_interface/simulation/demos/indexDrone.html b/01_Code/physical_computing_interface/simulation/demos/indexDrone.html
new file mode 100644
index 0000000000000000000000000000000000000000..277ebda81f45e098cd499612eb76fe4569d166e7
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/demos/indexDrone.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<title>MetaVoxel</title>
+		<meta charset="utf-8">
+		<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
+		<!-- <link type="text/css" rel="stylesheet" href="main.css"> -->
+		<style>
+			body {
+				background-color: #f0f0f0;
+				color: #444;
+			}
+			a {
+				color: #08f;
+			}
+		</style>
+	</head>
+	<body>
+		<div id="container"></div>
+		<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
+
+		<script type="text/javascript" src="https://files.mcneel.com/rhino3dm/js/latest/rhino3dm.js"></script>
+		
+		<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.0.0/dist/tf.min.js"></script>
+
+		<!-- <script src="./lib/require.js"></script> -->
+
+		<script src="../lib/three.min.js"></script>
+
+        <script src="../lib/stats.js"></script>
+        <script src="../lib/dat.gui.js"></script>
+
+		<script src="../lib/SVGRenderer.js"></script>
+		
+
+        <script src="../lib/DragControls.js"></script>
+        <script src="../lib/OrbitControls.js"></script>
+		<script src="../lib/TransformControls.js"></script>
+		
+		<script src="../lib/js-colormaps.js"></script>
+		<script src="../lib/LineSegments2.js"></script>
+		<script src="../lib/LineSegmentsGeometry.js"></script>
+		<script src="../lib/Line2.js"></script>
+		<script src="../lib/LineMaterial.js"></script>
+		<script src="../lib/LineGeometry.js"></script>
+		<script src="../lib/GeometryUtils.js"></script>
+
+		<script src="../visualization/utils.js"></script> 
+
+		<!-- <script src="./beamFea.js"></script> 
+		<script src="./geometry.js"></script>  -->
+		<script src="../visualization/main.js"></script> 
+
+		<script src="../fea/flight.js"></script> 
+
+		<script src="../json/setupFlight.js"></script> 
+
+		<script>
+			var numTimeSteps=100;
+			var dt=0.01; //?? todo change to recommended step
+			initialize(setup);
+			// for(var i=0;i<numTimeSteps;i++){
+			// 	doTimeStep(setup,dt);
+			// }
+			
+			// $.getJSON("../json/setupChiral.json", function(json) {
+			// 	setup=json.setup;
+			// 	setup.viz.colorMaps=[coolwarm,YlGnBu, winter ,jet];
+			// 	init();
+			// 	drawStructure();
+			// 	colorEdges();
+			// 	animate();
+				
+			// });
+
+			init();
+			drawStructure();
+			colorEdges();
+			animateEuler();
+		</script>
+
+		
+
+
+    </body>
+</html>
diff --git a/01_Code/physical_computing_interface/simulation/demos/indexParallel.html b/01_Code/physical_computing_interface/simulation/demos/indexParallel.html
new file mode 100644
index 0000000000000000000000000000000000000000..00c931c032efa47f889109a4147d95dab64691ff
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/demos/indexParallel.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<title>MetaVoxel</title>
+		<meta charset="utf-8">
+		<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
+		<!-- <link type="text/css" rel="stylesheet" href="main.css"> -->
+		<style>
+			body {
+				background-color: #f0f0f0;
+				color: #444;
+			}
+			a {
+				color: #08f;
+			}
+		</style>
+	</head>
+	<body>
+		<div id="container"></div>
+		<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
+
+		<script type="text/javascript" src="https://files.mcneel.com/rhino3dm/js/latest/rhino3dm.js"></script>
+		
+		<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.0.0/dist/tf.min.js"></script>
+
+		<!-- <script src="./lib/require.js"></script> -->
+
+		<script src="../lib/three.min.js"></script>
+
+        <script src="../lib/stats.js"></script>
+        <script src="../lib/dat.gui.js"></script>
+
+		<script src="../lib/SVGRenderer.js"></script>
+		
+
+        <script src="../lib/DragControls.js"></script>
+        <script src="../lib/OrbitControls.js"></script>
+		<script src="../lib/TransformControls.js"></script>
+		
+		<script src="../lib/js-colormaps.js"></script>
+		<script src="../lib/LineSegments2.js"></script>
+		<script src="../lib/LineSegmentsGeometry.js"></script>
+		<script src="../lib/Line2.js"></script>
+		<script src="../lib/LineMaterial.js"></script>
+		<script src="../lib/LineGeometry.js"></script>
+		<script src="../lib/GeometryUtils.js"></script>
+
+		<script src="../visualization/utils.js"></script> 
+
+		<!-- <script src="./beamFea.js"></script> 
+		<script src="./geometry.js"></script>  -->
+		<script src="../visualization/main.js"></script> 
+
+		<script src="../fea/parallelFea.js"></script> 
+
+		<script src="../json/parallelCube.js"></script> 
+
+		<script>
+			var numTimeSteps=100;
+			var dt=0.01; //?? todo change to recommended step
+			initialize(setup);
+			for(var i=0;i<numTimeSteps;i++){
+				doTimeStep(setup,dt);
+			}
+			
+			// $.getJSON("../json/setupChiral.json", function(json) {
+			// 	setup=json.setup;
+			// 	setup.viz.colorMaps=[coolwarm,YlGnBu, winter ,jet];
+			// 	init();
+			// 	drawStructure();
+			// 	colorEdges();
+			// 	animate();
+				
+			// });
+
+			init();
+			drawStructure();
+			colorEdges();
+			animate();
+		</script>
+
+		
+
+
+    </body>
+</html>
diff --git a/01_Code/physical_computing_interface/simulation/demos/indexScaling.html b/01_Code/physical_computing_interface/simulation/demos/indexScaling.html
new file mode 100644
index 0000000000000000000000000000000000000000..87d753712436bfd048d95a02d17c52b2fb231958
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/demos/indexScaling.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<title>MetaVoxel</title>
+		<meta charset="utf-8">
+		<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
+		<!-- <link type="text/css" rel="stylesheet" href="main.css"> -->
+		<style>
+			body {
+				background-color: #f0f0f0;
+				color: #444;
+			}
+			a {
+				color: #08f;
+			}
+		</style>
+	</head>
+	<body>
+		<div id="container"></div>
+		<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
+
+		<script type="text/javascript" src="https://files.mcneel.com/rhino3dm/js/latest/rhino3dm.js"></script>
+		
+		<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.0.0/dist/tf.min.js"></script>
+
+		<!-- <script src="./lib/require.js"></script> -->
+
+        <script src="../lib/three.min.js"></script>
+
+        <script src="../lib/stats.js"></script>
+        <script src="../lib/dat.gui.js"></script>
+
+		<script src="../lib/SVGRenderer.js"></script>
+		
+
+        <script src="../lib/DragControls.js"></script>
+        <script src="../lib/OrbitControls.js"></script>
+		<script src="../lib/TransformControls.js"></script>
+		
+		<script src="../lib/js-colormaps.js"></script>
+		<script src="../lib/LineSegments2.js"></script>
+		<script src="../lib/LineSegmentsGeometry.js"></script>
+		<script src="../lib/Line2.js"></script>
+		<script src="../lib/LineMaterial.js"></script>
+		<script src="../lib/LineGeometry.js"></script>
+		<script src="../lib/GeometryUtils.js"></script>
+
+		<script src="../visualization/utils.js"></script> 
+
+		<!-- <script src="./beamFea.js"></script> 
+		<script src="./geometry.js"></script>  -->
+		<script src="../visualization/main.js"></script> 
+
+		<script>
+			$.getJSON("../json/setupScaling.json", function(json) {
+				setup=json.setup;
+				setup.viz.colorMaps=[coolwarm,YlGnBu, winter ,jet];
+				init();
+				drawStructure();
+				colorEdges();
+				animate();
+				
+			});
+		</script>
+
+		
+
+
+    </body>
+</html>
diff --git a/01_Code/physical_computing_interface/simulation/fea/barFea.js b/01_Code/physical_computing_interface/simulation/fea/barFea.js
new file mode 100644
index 0000000000000000000000000000000000000000..c209ada239761634a785c4682bd5f9e30cb58604
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/fea/barFea.js
@@ -0,0 +1,186 @@
+////////////3D bar-truss fea/////////////////////
+function solveFea(){
+	// # determine the global matrices
+	var M,K,F;
+	[M,K,F]=getMatrices(setup);
+	// M.print();
+	// K.print();
+	// F.print();
+	
+	// M, K, F = get_matrices(properties)
+	
+	// [Q,R]=tf.linalg.qr(K);
+
+	var displacements=lusolve(K.arraySync(), F.arraySync(),false);
+	// console.log(displacements);
+
+	updateDisplacement(displacements);
+	var X= tf.tensor(displacements);//change later to more effecient solver
+	console.log("Displacements:")
+	X.print();
+
+	// # determine the stresses in each element
+	var stresses = get_stresses(setup, displacements);
+	updateStresses(stresses.arraySync());
+
+	console.log("Stresses:");
+	stresses.print()
+
+	// console.log(setup);
+	//TODO CHECK SINGULARITY AND DOFSC
+
+}
+
+function getMatrices(setup){
+	
+
+	var M = tf.zeros([setup.ndofs,setup.ndofs]);
+	var K = tf.zeros([setup.ndofs,setup.ndofs]);
+	  
+	for(var ii=0;ii<setup.edges.length;ii++){
+		var element=setup.edges[ii];
+		var fromPoint= toTf3D(setup.nodes[element.source].position);
+		var toPoint= toTf3D(setup.nodes[element.target].position);
+		var dofs=[];
+		dofs.push(...setup.nodes[element.source].degrees_of_freedom);
+		dofs.push(...setup.nodes[element.target].degrees_of_freedom);
+
+		var  element_vector=tf.sub (toPoint,fromPoint);
+		
+		
+		var length   = element_vector.norm();
+		var rho = tf.scalar(element.density);
+		var area = tf.scalar(element.area);
+		var E = tf.scalar(element.stiffness);// youngs modulus
+	
+		var Cm = tf.div(tf.mul(rho,tf.mul(area,length)),tf.scalar(6.0));//rho * area * length /6.0
+		var Ck= tf.div(tf.mul(E,area),length);//E * area / length 
+		// Cm.print();
+
+		var m = tf.tensor ([[2,1],[1,2]]) ;
+		var k = tf.tensor([[1,-1],[-1,1]]);
+
+		var x_axis=tf.tensor ([1,0,0]);
+		var y_axis=tf.tensor ([0,1,0]);
+		var z_axis=tf.tensor ([0,0,1]);
+
+		// # find rotated mass and stifness matrices
+		var tau = rotation_matrix(element_vector, x_axis,y_axis,z_axis);
+		var m_r=tf.matMul(tau,tf.matMul(m,tau) ,true ,false) //tau.T.dot(m).dot(tau)
+		var k_r=tf.matMul(tau,tf.matMul(k,tau) ,true ,false) //tau.T.dot(k).dot(tau)
+
+		// # change from element to global coordinate
+		var B=tf.zeros([6,setup.ndofs]);
+		var B=[]
+		for(var i=0;i<6;i++){
+			B.push([]);
+			for(var j=0;j<setup.ndofs;j++){
+				B[i].push(0.0);
+			}
+		}
+		for(var i=0;i<6;i++){
+			B[i][dofs[i]]=1.0;
+		}
+		
+		B=tf.tensor(B);
+		// B.print()
+		
+		
+		var M_rG=tf.matMul(B,tf.matMul(m_r,B) ,true ,false) //B.T.dot(m_r).dot(B)
+		var K_rG=tf.matMul(B,tf.matMul(k_r,B) ,true ,false) //B.T.dot(k_r).dot(B)
+
+		M=tf.add(M,tf.mul(Cm, M_rG));  //+= Cm * M_rG
+		K=tf.add(K,tf.mul(Ck, K_rG));  //+= Ck * K_rG
+
+	}
+	
+
+
+	// # construct the force vector
+	var F=[];
+	for(var i=0;i<setup.nodes.length;i++){
+		F.push(setup.nodes[i].force.x);
+		F.push(setup.nodes[i].force.y);
+		F.push(setup.nodes[i].force.z);
+	}
+	F=tf.tensor(F);
+	// # remove the restrained dofs
+	var remove_indices=[];
+	for(var i=0;i<setup.nodes.length;i++){
+		for(var j=0;j<setup.nodes[i].degrees_of_freedom.length;j++){
+			if(setup.nodes[i].restrained_degrees_of_freedom[j]){
+				remove_indices.push(setup.nodes[i].degrees_of_freedom[j]);
+			}
+		}
+	}
+	// M.print();
+	// K.print();
+	// F.print();
+
+	for(var i=0;i<2;i++){
+		M=tf_delete(M,remove_indices,i);
+		K=tf_delete(K,remove_indices,i);
+	}
+	
+
+	F=tf_delete(F,remove_indices,0);
+
+	// M.print()
+	// K.print()
+	// F.print()
+	return [ M,K,F ]
+}
+
+function get_stresses(setup,X){
+	//   # find the stresses in each member
+	var stresses=[];
+	for(var ii=0;ii<setup.edges.length;ii++){
+		var element=setup.edges[ii];
+		// # find the element geometry
+		var fromPoint= toTf3D(setup.nodes[element.source].position);
+		var toPoint= toTf3D(setup.nodes[element.target].position);
+		var dofs=[];
+		dofs.push(...setup.nodes[element.source].degrees_of_freedom);
+		dofs.push(...setup.nodes[element.target].degrees_of_freedom);
+		var  element_vector=tf.sub (toPoint,fromPoint);
+
+		var x_axis=tf.tensor ([1,0,0]);
+		var y_axis=tf.tensor ([0,1,0]);
+		var z_axis=tf.tensor ([0,0,1]);
+
+		// # find rotated mass and stifness matrices
+		var tau = rotation_matrix(element_vector, x_axis,y_axis,z_axis);
+
+		var global_displacements=tf.tensor([setup.nodes[element.source].displacement.x,setup.nodes[element.source].displacement.y,setup.nodes[element.source].displacement.z,
+			setup.nodes[element.target].displacement.x,setup.nodes[element.target].displacement.y,setup.nodes[element.target].displacement.z]) //# todo change
+
+		// # nodal displacement
+		var q=tf.dot(tau,global_displacements);
+		var q=tf.unstack(q);
+
+		var strain=tf.div(tf.sub(q[1],q[0]),element_vector.norm()); //todo check smarter way to do it
+		
+		var E = tf.scalar(element.stiffness);
+		var stress=tf.mul(E,strain);
+		stresses.push(stress);
+	} 
+
+	return tf.stack(stresses,0);
+}
+
+///////utils////////
+function rotation_matrix(element_vector, x_axis, y_axis, z_axis){
+	// # find the direction cosines
+	var x_proj = direction_cosine(element_vector, x_axis);
+	var y_proj = direction_cosine(element_vector, y_axis);
+	var z_proj = direction_cosine(element_vector, z_axis);
+	var zero=tf.tensor([0]);
+	var temp1=tf.concat([x_proj.expandDims(0), y_proj.expandDims(0), z_proj.expandDims(0), zero, zero, zero]);
+	var temp2=tf.concat([ zero, zero, zero, x_proj.expandDims(0), y_proj.expandDims(0), z_proj.expandDims(0)]);
+	return tf.stack([temp1,temp2]);
+
+}
+
+function direction_cosine(vec1, vec2){
+	return tf.div(tf.dot(vec1,vec2) ,tf.mul( vec1.norm() , vec2.norm()));
+}
\ No newline at end of file
diff --git a/01_Code/physical_computing_interface/simulation/fea/beamFea.js b/01_Code/physical_computing_interface/simulation/fea/beamFea.js
new file mode 100644
index 0000000000000000000000000000000000000000..788518da337c70ecb5f00c81adb378cbd2b4d55f
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/fea/beamFea.js
@@ -0,0 +1,274 @@
+////////////3D bar-truss fea/////////////////////
+function solveFea(){
+	// # determine the global matrices
+	var M,K,F;
+	var t0 = performance.now();
+	[M,K,F]=getMatrices(setup);
+	var t1 = performance.now();
+	console.log("Call to getMatrices " + (t1 - t0) + " milliseconds.");
+
+
+	// M.print();
+	// K.print();
+	// F.print();
+	
+	// M, K, F = get_matrices(properties)
+	
+	// [Q,R]=tf.linalg.qr(K);
+	t0 = performance.now();
+	var displacements=lusolve(K.arraySync(), F.arraySync(),false);
+	t1 = performance.now();
+	console.log("Call to invert " + (t1 - t0) + " milliseconds.");
+	// console.log(displacements);
+
+	updateDisplacement(displacements);
+	var X= tf.tensor(displacements);//change later to more effecient solver
+	console.log("Displacements:");
+	X.print();
+
+	// # determine the stresses in each element
+	var stresses = get_stresses(setup, displacements);
+	updateStresses(stresses.arraySync());
+
+	console.log("Stresses:");
+	stresses.print();
+
+	// console.log(setup);
+
+	// console.log(setup);
+	//TODO CHECK SINGULARITY AND DOFSC
+
+}
+
+function getMatrices(setup){
+	
+
+	var M = tf.zeros([setup.ndofs,setup.ndofs]);
+	var K = tf.zeros([setup.ndofs,setup.ndofs]);
+	  
+	for(var ii=0;ii<setup.edges.length;ii++){
+		var element=setup.edges[ii];
+		var fromPoint= toTf3D(setup.nodes[element.source].position);
+		var toPoint= toTf3D(setup.nodes[element.target].position);
+		var dofs=[];
+		dofs.push(...setup.nodes[element.source].degrees_of_freedom);
+		dofs.push(...setup.nodes[element.target].degrees_of_freedom);
+
+		var  element_vector=tf.sub (toPoint,fromPoint);
+		
+		
+		var length   = element_vector.norm();
+		var rho = tf.scalar(element.density);
+		var A = element.area;
+		var E = element.stiffness;// youngs modulus
+		var G=1.0;//todo shear_modulus
+		var ixx = 1.0;//todo section ixx
+		var iyy = 1.0;//todo section.iyy//
+		var l0=length.dataSync();
+		var j=1.0;//todo check
+		var l02 = l0 * l0;
+        var l03 = l0 * l0 * l0;
+
+
+	
+		// var Cm = tf.div(tf.mul(rho,tf.mul(area,length)),tf.scalar(6.0));//rho * area * length /6.0
+		// var Ck= tf.div(tf.mul(E,area),length);//E * area / length 
+		// Cm.print();
+
+		// var m = tf.tensor ([[2,1],[1,2]]) ;
+		// var k = tf.tensor([[1,-1],[-1,1]]);
+		k = tf.tensor([
+            [E*A/l0, 0, 0, 0, 0, 0, -E*A/l0, 0, 0, 0, 0, 0],
+            [0, 12*E*ixx/l03, 0, 0, 0, 6*E*ixx/l02, 0, -12*E*ixx/l03, 0, 0, 0, 6*E*ixx/l02],
+            [0, 0, 12*E*iyy/l03, 0, -6*E*iyy/l02, 0, 0, 0, -12*E*iyy/l03, 0, -6*E*iyy/l02, 0],
+            [0, 0, 0, G*j/l0, 0, 0, 0, 0, 0, -G*j/l0, 0, 0],
+            [0, 0, -6*E*iyy/l02, 0, 4*E*iyy/l0, 0, 0, 0, 6*E*iyy/l02, 0, 2*E*iyy/l0, 0],
+            [0, 6*E*ixx/l02, 0, 0, 0, 4*E*ixx/l0, 0, -6*E*ixx/l02, 0, 0, 0, 2*E*ixx/l0],
+            [-E*A/l0, 0, 0, 0, 0, 0, E*A/l0, 0, 0, 0, 0, 0],
+            [0, -12*E*ixx/l03, 0, 0, 0, -6*E*ixx/l02, 0, 12*E*ixx/l03, 0, 0, 0, -6*E*ixx/l02],
+            [0, 0, -12*E*iyy/l03, 0, 6*E*iyy/l02, 0, 0, 0, 12*E*iyy/l03, 0, 6*E*iyy/l02, 0],
+            [0, 0, 0, -G*j/l0, 0, 0, 0, 0, 0, G*j/l0, 0, 0],
+            [0, 0, -6*E*iyy/l02, 0, 2*E*iyy/l0, 0, 0, 0, 6*E*iyy/l02, 0, 4*E*iyy/l0, 0],
+            [0, 6*E*ixx/l02, 0, 0, 0, 2*E*ixx/l0, 0, -6*E*ixx/l02, 0, 0, 0, 4*E*ixx/l0]
+        ]);
+
+		var x_axis=tf.tensor ([1,0,0]);
+		var y_axis=tf.tensor ([0,1,0]);
+		var z_axis=tf.tensor ([0,0,1]);
+
+		// # find rotated mass and stifness matrices
+		var tau = rotation_matrix(element_vector, x_axis,y_axis,z_axis);
+		// var m_r=tf.matMul(tau,tf.matMul(m,tau) ,true ,false) //tau.T.dot(m).dot(tau)
+		var k_r=tf.matMul(tau,tf.matMul(k,tau) ,true ,false) //tau.T.dot(k).dot(tau)
+
+		// # change from element to global coordinate
+		// var B=tf.zeros([12,setup.ndofs]);
+		var B=[];
+		for(var i=0;i<12;i++){
+			B.push([]);
+			for(var j=0;j<setup.ndofs;j++){
+				B[i].push(0.0);
+			}
+		}
+		for(var i=0;i<12;i++){
+			B[i][dofs[i]]=1.0;
+		}
+
+		B=tf.tensor(B);
+		// B.print();
+		
+		
+		// var M_rG=tf.matMul(B,tf.matMul(m_r,B) ,true ,false) //B.T.dot(m_r).dot(B)
+		var K_rG=tf.matMul(B,tf.matMul(k_r,B) ,true ,false) //B.T.dot(k_r).dot(B)
+
+		// M=tf.add(M,tf.mul(Cm, M_rG));  //+= Cm * M_rG
+		// K=tf.add(K,tf.mul(Ck, K_rG));  //+= Ck * K_rG
+		K=tf.add(K, K_rG);  //+= Ck * K_rG
+
+	}
+	
+
+
+	// # construct the force vector
+	var F=[];
+	for(var i=0;i<setup.nodes.length;i++){
+		F.push(setup.nodes[i].force.x);
+		F.push(setup.nodes[i].force.y);
+		F.push(setup.nodes[i].force.z);
+		F.push(0.0);
+		F.push(0.0);
+		F.push(0.0);
+	}
+	F=tf.tensor(F);
+	// # remove the restrained dofs
+	var remove_indices=[];
+	for(var i=0;i<setup.nodes.length;i++){
+		for(var j=0;j<setup.nodes[i].degrees_of_freedom.length;j++){
+			if(setup.nodes[i].restrained_degrees_of_freedom[j]){
+				remove_indices.push(setup.nodes[i].degrees_of_freedom[j]);
+			}
+		}
+	}
+	// M.print();
+	// K.print();
+	// F.print();
+
+	for(var i=0;i<2;i++){
+		M=tf_delete(M,remove_indices,i);
+		K=tf_delete(K,remove_indices,i);
+	}
+	
+
+	F=tf_delete(F,remove_indices,0);
+
+	// M.print()
+	// K.print()
+	// F.print()
+	return [ M,K,F ];
+}
+
+function get_stresses(setup,X){
+	//   # find the stresses in each member
+	var stresses=[];
+	for(var ii=0;ii<setup.edges.length;ii++){
+		var element=setup.edges[ii];
+		// # find the element geometry
+		var fromPoint= toTf3D(setup.nodes[element.source].position);
+		var toPoint= toTf3D(setup.nodes[element.target].position);
+		var dofs=[];
+		dofs.push(...setup.nodes[element.source].degrees_of_freedom);
+		dofs.push(...setup.nodes[element.target].degrees_of_freedom);
+		var  element_vector=tf.sub (toPoint,fromPoint);
+
+		var x_axis=tf.tensor ([1,0,0]);
+		var y_axis=tf.tensor ([0,1,0]);
+		var z_axis=tf.tensor ([0,0,1]);
+
+		// # find rotated mass and stifness matrices
+		var tau = rotation_matrix(element_vector, x_axis,y_axis,z_axis);
+
+		var global_displacements=tf.tensor([setup.nodes[element.source].displacement.x,setup.nodes[element.source].displacement.y,setup.nodes[element.source].displacement.z,
+											setup.nodes[element.source].angle.x,setup.nodes[element.source].angle.y,setup.nodes[element.source].angle.z,
+											setup.nodes[element.target].displacement.x,setup.nodes[element.target].displacement.y,setup.nodes[element.target].displacement.z,
+											setup.nodes[element.target].angle.x,setup.nodes[element.target].angle.y,setup.nodes[element.target].angle.z]) //# todo change
+
+		// # nodal displacement
+		var q=tf.dot(tau,global_displacements);
+		// console.log("q");
+		// q.print();
+		var q=tf.unstack(q);
+		// console.log(q);
+
+		var strain=tf.div(tf.sub(q[6],q[0]),element_vector.norm()); //todo check smarter way to do it
+		//stress x axis
+		var E = tf.scalar(element.stiffness);
+		var stress=tf.mul(E,strain);
+		stresses.push(stress);
+	} 
+
+	return tf.stack(stresses,0);
+}
+
+///////utils////////
+
+function rotation_matrix(element_vector,x_axis, y_axis, z_axis){ //todo check again 
+
+	var L=element_vector.norm().arraySync();
+	element_vector=element_vector.arraySync();
+	// x1 = self.iNode.X
+	// x2 = self.jNode.X
+	// y1 = self.iNode.Y
+	// y2 = self.jNode.Y
+	// z1 = self.iNode.Z
+	// z2 = self.jNode.Z
+	// L = self.L
+	
+	// # Calculate direction cosines for the transformation matrix
+	var l = (element_vector[0])/L;
+	var m = (element_vector[1])/L;
+	var n = (element_vector[2])/L;
+	var D = ( l**2+ m **2+n**2)**0.5;
+	// console.log(D);
+	
+	// if l == 0 and m == 0 and n > 0:
+	//     dirCos = matrix([[0, 0, 1],
+	//                      [0, 1, 0],
+	//                      [-1, 0, 0]])
+	// elif l == 0 and m == 0 and n < 0:
+	//     dirCos = matrix([[0, 0, -1],
+	//                      [0, 1, 0],
+	//                      [1, 0, 0]])
+	// else:
+	//     dirCos = matrix([[l, m, n],
+	//                      [-m/D, l/D, 0],
+	//                      [-l*n/D, -m*n/D, D]])
+	
+	var transMatrix=tf.tensor([
+	[      l,      m, n, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+	[   -m/D,    l/D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+	[ -l*n/D, -m*n/D, D, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+	[ 0, 0, 0,      l,      m, n, 0, 0, 0, 0, 0, 0],
+	[ 0, 0, 0,   -m/D,    l/D, 0, 0, 0, 0, 0, 0, 0],
+	[ 0, 0, 0, -l*n/D, -m*n/D, D, 0, 0, 0, 0, 0, 0],
+	[ 0, 0, 0, 0, 0, 0,      l,      m, n, 0, 0, 0],
+	[ 0, 0, 0, 0, 0, 0,   -m/D,    l/D, 0, 0, 0, 0],
+	[ 0, 0, 0, 0, 0, 0, -l*n/D, -m*n/D, D, 0, 0, 0],
+	[ 0, 0, 0, 0, 0, 0, 0, 0, 0,      l,      m, n],
+	[ 0, 0, 0, 0, 0, 0, 0, 0, 0,   -m/D,    l/D, 0],
+	[ 0, 0, 0, 0, 0, 0, 0, 0, 0, -l*n/D, -m*n/D, D]
+	]);
+		
+
+	// # Build the transformation matrix
+	// transMatrix = zeros((12, 12))
+	// transMatrix[0:3, 0:3] = dirCos
+	// transMatrix[3:6, 3:6] = dirCos
+	// transMatrix[6:9, 6:9] = dirCos
+	// transMatrix[9:12, 9:12] = dirCos
+	
+	return transMatrix;
+}
+
+function direction_cosine(vec1, vec2){
+	return tf.div(tf.dot(vec1,vec2) ,tf.mul( vec1.norm() , vec2.norm()));
+}
\ No newline at end of file
diff --git a/01_Code/physical_computing_interface/simulation/fea/flight.js b/01_Code/physical_computing_interface/simulation/fea/flight.js
new file mode 100644
index 0000000000000000000000000000000000000000..21a4a3f38d3bf32d6674209c3213792840a86139
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/fea/flight.js
@@ -0,0 +1,124 @@
+function initialize(setup){
+	var voxCount = setup.nodes.length;
+	for(var i=0;i<voxCount;i++){
+		setup.nodes[i].currPosition=new THREE.Vector3(setup.nodes[i].position.x,setup.nodes[i].position.y,setup.nodes[i].position.z);
+    } 
+}
+
+
+
+function doTimeStep(setup,dt){
+    var voxCount = setup.nodes.length;
+	for(var i=0;i<voxCount;i++){
+        timeStep(dt,setup.nodes[i]);
+    } 
+
+}
+
+function timeStep(dt,node){
+	// var previousDt = dt;
+	// var linMom=node.linMom.clone();
+    // var angMom=node.angMom.clone();
+    // var orient=node.orient.clone();
+	// var pos=new THREE.Vector3(node.currPosition.x,node.currPosition.y,node.currPosition.z);
+    var massInverse=1.0;//todo ?? later change
+
+    //Translation
+    var curForce = force(node);
+    
+    // Calculate acceleration ( F = ma )
+    var A = curForce.clone().multiplyScalar(massInverse);
+    
+    // Integrate to get velocity
+    node.velocity.add(A.clone().multiplyScalar(dt));
+    
+    // Integrate to get position
+    node.currPosition.add(node.velocity.clone().multiplyScalar(dt));
+
+	
+	//var fricForce = curForce.clone();
+
+	//if (isFloorEnabled()) floorForce(dt, &curForce); //floor force needs dt to calculate threshold to "stop" a slow voxel into static friction.
+
+	//fricForce = curForce - fricForce;
+
+	//assert(!(curForce.x != curForce.x) || !(curForce.y != curForce.y) || !(curForce.z != curForce.z)); //assert non QNAN
+	// linMom.add(curForce).multiplyScalar(dt);
+
+	// var translate=linMom.clone().multiplyScalar(dt*massInverse);//??massInverse
+
+    // //	we need to check for friction conditions here (after calculating the translation) and stop things accordingly
+	// if (isFloorEnabled() && floorPenetration() >= 0){ //we must catch a slowing voxel here since it all boils down to needing access to the dt of this timestep.
+	// 	double work = fricForce.x*translate.x + fricForce.y*translate.y; //F dot disp
+	// 	double hKe = 0.5*mat->_massInverse*(linMom.x*linMom.x + linMom.y*linMom.y); //horizontal kinetic energy
+
+	
+
+    // pos.add(translate);
+	// node.currPosition=pos.clone();
+	// node.displacement={
+	// 	x:translate.x+node.displacement.x,
+	// 	y:translate.y+node.displacement.y,
+	// 	z:translate.z+node.displacement.z};
+	
+	// pos += translate;
+
+	//Rotation
+	
+}
+
+function force(node) {
+    //forces from internal bonds
+    var inverseMass=1.0;
+    var gravity=new THREE.Vector3(0,-9.81,0);
+    var Cd = 0.47; // Dimensionless
+    var rho = 1.22; // kg / m^3
+    var v=1; //volume or area
+    
+    var totalForce=new THREE.Vector3(0,0,0);
+    
+    // Drag force: 
+    // var drag=
+
+    
+
+    totalForce.add(new THREE.Vector3(node.force.x,node.force.y,node.force.z));
+    totalForce.add(gravity);
+
+    
+
+    var Fd = node.velocity.clone().multiplyScalar(-1/2 * Cd * rho*v ).multiply( node.velocity );
+    
+    //totalForce.add(Fd);
+	
+	
+	totalForce.add(node.intForce);
+
+	// for (int i=0; i<6; i++){ 
+	// 	if (links[i]) totalForce += links[i]->force(isNegative((linkDirection)i)); //total force in LCS
+	// }
+	// totalForce = RotateVec3D(node.orient,totalForce); //from local to global coordinates
+
+	//assert(!(totalForce.x != totalForce.x) || !(totalForce.y != totalForce.y) || !(totalForce.z != totalForce.z)); //assert non QNAN
+
+	//other forces
+    
+    
+    
+
+	// if (externalExists()) totalForce += external()->force(); //external forces
+	// totalForce -= velocity()*mat->globalDampingTranslateC(); //global damping f-cv
+	// totalForce.z += mat->gravityForce(); //gravity, according to f=mg
+
+	// if (isCollisionsEnabled()){
+	// 	for (std::vector<CVX_Collision*>::iterator it=colWatch->begin(); it!=colWatch->end(); it++){
+	// 		totalForce -= (*it)->contactForce(this);
+	// 	}
+	// }
+	//todo make internal forces 0 again
+	node.intForce=new THREE.Vector3(0,0,0);
+	// node.force.x=0;
+	// node.force.y=0;
+	// node.force.z=0;
+	return totalForce;
+}
\ No newline at end of file
diff --git a/01_Code/physical_computing_interface/simulation/fea/parallelFea.js b/01_Code/physical_computing_interface/simulation/fea/parallelFea.js
new file mode 100644
index 0000000000000000000000000000000000000000..82914d984b645281b0e5eb0526304e35fdf8bb8c
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/fea/parallelFea.js
@@ -0,0 +1,790 @@
+//BASED ON https://github.com/jonhiller/Voxelyze
+var DBL_EPSILONx24 =5.328e-15; //DBL_EPSILON*24
+var DISCARD_ANGLE_RAD= 1e-7; //Anything less than this angle can be considered 0
+var SMALL_ANGLE_RAD= 1.732e-2; //Angles less than this get small angle approximations. To get: Root solve atan(t)/t-1+MAX_ERROR_PERCENT. From: MAX_ERROR_PERCENT = (t-atan(t))/t 
+var SMALL_ANGLE_W =0.9999625; //quaternion W value corresponding to a SMALL_ANGLE_RAD. To calculate, cos(SMALL_ANGLE_RAD*0.5).
+var W_THRESH_ACOS2SQRT= 0.9988; //Threshhold of w above which we can approximate acos(w) with sqrt(2-2w). To get: Root solve 1-sqrt(2-2wt)/acos(wt) - MAX_ERROR_PERCENT. From MAX_ERROR_PERCENT = (acos(wt)-sqrt(2-2wt))/acos(wt)
+var X_AXIS = 0; 			//!< X Axis
+var Y_AXIS = 1; 			//!< Y Axis
+var Z_AXIS = 2; 		    //!< Z Axis
+var currentTime=0;
+var maxStrain=0;
+
+function initialize(setup){
+	var voxCount = setup.nodes.length;
+	for(var i=0;i<voxCount;i++){
+		setup.nodes[i].currPosition=new THREE.Vector3(setup.nodes[i].position.x,setup.nodes[i].position.y,setup.nodes[i].position.z);
+	} 
+	
+}
+
+function doTimeStep(setup,dt){
+	if (dt==0) 
+		return true;
+	else if (dt<0) 
+		dt = recommendedTimeStep();
+
+	// if (collisions) updateCollisions();
+	
+
+	var collisions=false;
+
+	//Euler integration:
+	var Diverged = false;
+	var linkCount = setup.edges.length;
+	for(var i=0;i<linkCount;i++){
+        updateForces(setup.edges[i],setup.nodes[setup.edges[i].source],setup.nodes[setup.edges[i].target]);
+        // todo: update forces and whatever
+		if (axialStrain(setup.edges[i]) > 100) {
+			Diverged = true; //catch divergent condition! (if any thread sets true we will fail, so don't need mutex...
+		}
+
+	}
+    if (Diverged){
+		console.log("Divergedd!!!!!")
+		return false;
+
+	}
+	var voxCount = setup.nodes.length;
+
+	for(var i=0;i<voxCount;i++){
+		timeStep(dt,setup.nodes[i]);
+		// todo: update linMom,angMom, orient and whatever
+	} 
+
+	
+	currentTime += dt;
+	return true;
+
+}
+
+function updateForces(edge,node1,node2){
+	
+	var pVPos=new THREE.Vector3(node1.position.x,node1.position.y,node1.position.z);
+	var pVNeg=new THREE.Vector3(node2.position.x,node2.position.y,node2.position.z);
+    var currentRestLength=pVPos.clone().sub(pVNeg).length();
+	edge.currentRestLength=currentRestLength; //todo make sure updated
+	
+
+	pVPos=node1.currPosition.clone();
+	pVNeg=node2.currPosition.clone();
+
+	// Vec3D<double> three
+	var oldPos2 = edge.pos2.clone();//??
+	var oldAngle1v = edge.angle1v.clone();
+	var oldAngle2v = edge.angle2v.clone(); //remember the positions/angles from last timestep to calculate velocity
+	// var oldAngle1v=new THREE.Vector3(node1.angle.x,node1.angle.y,node1.angle.z);//?
+	// var oldAngle2v=new THREE.Vector3(node2.angle.x,node2.angle.y,node2.angle.z); //??
+
+	totalRot= orientLink( edge,node1,node2); //sets pos2, angle1, angle2 /*restLength*/
+
+	var dPos2=edge.pos2.clone().sub(oldPos2).multiplyScalar(0.5);
+	var dAngle1=edge.angle1v.clone().sub(oldAngle1v).multiplyScalar(0.5);
+	var dAngle2=edge.angle2v.clone().sub(oldAngle2v).multiplyScalar(0.5);
+
+	
+	
+	
+	//if volume effects...
+    //if (!mat->isXyzIndependent() || currentTransverseStrainSum != 0) 
+    //updateTransverseInfo(); //currentTransverseStrainSum != 0 catches when we disable poissons mid-simulation
+	
+	
+	
+	var _stress=updateStrain((edge.pos2.x/edge.currentRestLength));
+	var _stress=updateStrain(1.0);
+	var scaleFactor=1;
+	edge.stress = _stress/scaleFactor;
+
+	console.log(edge.stress)
+
+	// if (isFailed()){forceNeg = forcePos = momentNeg = momentPos = Vec3D<double>(0,0,0); return;}
+
+	// var b1=mat->_b1, b2=mat->_b2, b3=mat->_b3, a2=mat->_a2; //local copies //todo get from where i had
+	
+	var l   = currentRestLength;//??
+	var rho = edge.density/scaleFactor;
+	var A = edge.area/scaleFactor;
+	var E = edge.stiffness/scaleFactor;// youngs modulus
+	var G=1.0;//todo shear_modulus
+	var ixx = 1.0;//todo section ixx
+	var I=1.0;
+	var iyy = 1.0;//todo section.iyy//
+	// var l0=length.dataSync();
+	var J=1.0;//todo check
+	// var l02 = l0 * l0;
+	// var l03 = l0 * l0 * l0;
+	var b1= 12*E*I/(l*l*l);
+	var b2= 6*E*I/(l*l);
+	var b3= 2*E*I/(l);
+	var a1= E*A/l;
+	var a2= G*J/l;
+
+	var currentTransverseArea=1.0;// todo ?? later change
+
+	//Beam equations. All relevant terms are here, even though some are zero for small angle and others are zero for large angle (profiled as negligible performance penalty)
+	var forceNeg = new THREE.Vector3 (	_stress*currentTransverseArea, //currentA1*pos2.x,
+								b1*edge.pos2.y - b2*(edge.angle1v.z + edge.angle2v.z),
+								b1*edge.pos2.z + b2*(edge.angle1v.y + edge.angle2v.y)); //Use Curstress instead of -a1*Pos2.x to account for non-linear deformation 
+	var forcePos = forceNeg.clone().negate();
+
+	var momentNeg = new THREE.Vector3 (	a2*(edge.angle2v.x - edge.angle1v.x),
+								-b2*edge.pos2.z - b3*(2*edge.angle1v.y + edge.angle2v.y),
+								b2*edge.pos2.y - b3*(2*edge.angle1v.z + edge.angle2v.z));
+	var momentPos = new THREE.Vector3 (	a2*(edge.angle1v.x - edge.angle2v.x),
+								-b2*edge.pos2.z - b3*(edge.angle1v.y + 2*edge.angle2v.y),
+								b2*edge.pos2.y - b3*(edge.angle1v.z + 2*edge.angle2v.z));
+	
+	// console.log( forceNeg  )
+	// console.log( forcePos  )
+	// console.log( momentNeg )
+	// console.log( momentPos )
+
+	// //local damping:
+	// if (isLocalVelocityValid()){ //if we don't have the basis for a good damping calculation, don't do any damping.
+	// 	float sqA1=mat->_sqA1, sqA2xIp=mat->_sqA2xIp,sqB1=mat->_sqB1, sqB2xFMp=mat->_sqB2xFMp, sqB3xIp=mat->_sqB3xIp;
+	// 	Vec3D<double> posCalc(	sqA1*dPos2.x,
+	// 							sqB1*dPos2.y - sqB2xFMp*(dAngle1.z+dAngle2.z),
+	// 							sqB1*dPos2.z + sqB2xFMp*(dAngle1.y+dAngle2.y));
+
+	// 	forceNeg += pVNeg->dampingMultiplier()*posCalc;
+	// 	forcePos -= pVPos->dampingMultiplier()*posCalc;
+
+	// 	momentNeg -= 0.5*pVNeg->dampingMultiplier()*Vec3D<>(	-sqA2xIp*(dAngle2.x - dAngle1.x),
+	// 															sqB2xFMp*dPos2.z + sqB3xIp*(2*dAngle1.y + dAngle2.y),
+	// 															-sqB2xFMp*dPos2.y + sqB3xIp*(2*dAngle1.z + dAngle2.z));
+	// 	momentPos -= 0.5*pVPos->dampingMultiplier()*Vec3D<>(	sqA2xIp*(dAngle2.x - dAngle1.x),
+	// 															sqB2xFMp*dPos2.z + sqB3xIp*(dAngle1.y + 2*dAngle2.y),
+	// 															-sqB2xFMp*dPos2.y + sqB3xIp*(dAngle1.z + 2*dAngle2.z));
+
+	// }
+	// else setBoolState(LOCAL_VELOCITY_VALID, true); //we're good for next go-around unless something changes
+
+    //	transform forces and moments to local voxel coordinates
+	var smallAngle=false;//?? todo check
+	var forceNeg,momentNeg,forcePos,momentPos;
+
+	
+	
+	if (!smallAngle){//?? chech
+		forceNeg = RotateVec3DInv(edge.angle1,forceNeg);
+		momentNeg = RotateVec3DInv(edge.angle1,momentNeg);
+	}
+	forcePos = RotateVec3DInv(edge.angle2,forcePos);
+	momentPos = RotateVec3DInv(edge.angle2,momentPos);
+	
+
+	forceNeg =toAxisOriginalVector3(forceNeg,edge.axis);
+	forcePos =toAxisOriginalVector3(forcePos,edge.axis);
+	momentNeg=toAxisOriginalQuat(momentNeg,edge.axis);
+	momentPos=toAxisOriginalQuat(momentPos,edge.axis);
+	
+
+	node1.intForce.add(forcePos.clone());
+	node2.intForce.add(forceNeg.clone());
+	node1.intMoment.add(forcePos.clone());
+	node2.intMoment.add(momentNeg.clone());
+
+	// assert(!(forceNeg.x != forceNeg.x) || !(forceNeg.y != forceNeg.y) || !(forceNeg.z != forceNeg.z)); //assert non QNAN
+	// assert(!(forcePos.x != forcePos.x) || !(forcePos.y != forcePos.y) || !(forcePos.z != forcePos.z)); //assert non QNAN
+
+	console.log("")
+}
+
+function orientLink( edge,node1,node2){ //updates pos2, angle1, angle2, and smallAngle //Quat3D<double> /*double restLength*/
+
+    var pVPos=node2.currPosition.clone();
+	var pVNeg=node1.currPosition.clone();
+	
+    
+	var currentRestLength=edge.currentRestLength;
+	// var currentRestLength=0;
+	
+	
+	var pos2 = toAxisXVector3(pVPos.clone().sub(pVNeg),edge.axis); //digit truncation happens here...
+	
+
+	var angle1 = toAxisXQuat(node1.orient,edge.axis);
+	var angle2 = toAxisXQuat(node2.orient,edge.axis);
+
+	var totalRot = angle1.conjugate(); //keep track of the total rotation of this bond (after toAxisX()) //Quat3D<double>
+	pos2 = RotateVec3D(totalRot,pos2);
+	angle2 = totalRot.clone().multiply(angle2);
+	angle1 = new THREE.Quaternion(); //zero for now...
+	
+	console.log(edge.id)
+	// console.log(pVPos.clone().sub(pVNeg))
+	// console.log(edge.axis)
+	console.log(pos2)
+
+	//small angle approximation?
+	// var SmallTurn =  ((Math.abs(pos2.z)+Math.abs(pos2.y))/pos2.x);
+	// var ExtendPerc = (Math.abs(1-pos2.x/currentRestLength));
+	// if (!smallAngle /*&& angle2.IsSmallAngle()*/ && SmallTurn < SA_BOND_BEND_RAD && ExtendPerc < SA_BOND_EXT_PERC){
+	// 	smallAngle = true;
+	// 	setBoolState(LOCAL_VELOCITY_VALID, false);
+	// }
+	// else if (smallAngle && (/*!angle2.IsSmallishAngle() || */SmallTurn > HYSTERESIS_FACTOR*SA_BOND_BEND_RAD || ExtendPerc > HYSTERESIS_FACTOR*SA_BOND_EXT_PERC)){
+	// 	smallAngle = false;
+	// 	setBoolState(LOCAL_VELOCITY_VALID, false);
+    // }
+    
+    var smallAngle=false; //todo later remove
+
+	if (smallAngle)	{ //Align so Angle1 is all zeros
+		pos2.x -= currentRestLength; //only valid for small angles
+	}
+	else { //Large angle. Align so that Pos2.y, Pos2.z are zero.
+		FromAngleToPosX(angle1,pos2); //get the angle to align Pos2 with the X axis
+		totalRot = angle1.clone().multiply(totalRot) ; //update our total rotation to reflect this
+		angle2 = angle1.clone().multiply(  angle2); //rotate angle2
+		pos2 = new THREE.Vector3(pos2.length() - currentRestLength, 0, 0); 
+	}
+
+	angle1v = ToRotationVector(angle1);
+	angle2v = ToRotationVector(angle2);
+
+	// assert(!(angle1v.x != angle1v.x) || !(angle1v.y != angle1v.y) || !(angle1v.z != angle1v.z)); //assert non QNAN
+	// assert(!(angle2v.x != angle2v.x) || !(angle2v.y != angle2v.y) || !(angle2v.z != angle2v.z)); //assert non QNAN
+
+    edge.pos2=pos2.clone();
+    edge.angle1v=angle1v.clone();
+    edge.angle2v=angle2v.clone();
+    edge.angle1=angle1.clone();
+	edge.angle2=angle2.clone();
+	
+	
+
+	return totalRot;
+}
+
+function RotateVec3D(a, f)  { 
+	var fx=f.x, fy=f.y, fz=f.z;
+	var tw = fx*a.x + fy*a.y + fz*a.z;
+	var tx = fx*a.w - fy*a.z + fz*a.y;
+	var ty = fx*a.z + fy*a.w - fz*a.x;
+	var tz = -fx*a.y + fy*a.x + fz*a.w;
+	return new THREE.Vector3(a.w*tx + a.x*tw + a.y*tz - a.z*ty, a.w*ty - a.x*tz + a.y*tw + a.z*tx, a.w*tz + a.x*ty - a.y*tx + a.z*tw);
+} //!< Returns a vector representing the specified vector "f" rotated by this quaternion. @param[in] f The vector to transform.
+
+function RotateVec3DInv(a, f) { 
+    var fx=f.x, fy=f.y, fz=f.z;
+    var tw = a.x*fx + a.y*fy + a.z*fz;
+    var tx = a.w*fx - a.y*fz + a.z*fy;
+    var ty = a.w*fy + a.x*fz - a.z*fx;
+    var tz = a.w*fz - a.x*fy + a.y*fx;
+    return new THREE.Vector3(tw*a.x + tx*a.w + ty*a.z - tz*a.y, tw*a.y - tx*a.z + ty*a.w + tz*a.x, tw*a.z + tx*a.y - ty*a.x + tz*a.w);	
+} //!< Returns a vector representing the specified vector "f" rotated by the inverse of this quaternion. This is the opposite of RotateVec3D. @param[in] f The vector to transform.
+
+function toAxisOriginalVector3(pV,axis){
+	switch (axis){
+		case Y_AXIS:{
+			var tmp = pV.y; 
+			pV.y=pV.x; 
+			pV.x = -tmp; 
+			break;
+		} 
+		case Z_AXIS: {
+			var tmp = pV.z; 
+			pV.z=pV.x; 
+			pV.x = -tmp;
+			 break;
+		} 
+		default: 
+			break;
+	}
+	return pV;
+}
+
+function toAxisOriginalQuat(pQ,axis){
+	switch (axis){
+		case Y_AXIS: {
+			var tmp = pQ.y; 
+			pQ.y=pQ.x; 
+			pQ.x = -tmp; 
+			break;
+		} 
+		case Z_AXIS: {
+			var tmp = pQ.z; 
+			pQ.z=pQ.x; 
+            pQ.x = -tmp; 
+            break;
+		} 
+		default: 
+			break;
+	}
+	return pQ;
+}
+
+function toAxisXVector3(v,axis){ //TODO CHANGE
+	switch (axis){
+		case Y_AXIS: 
+			return new THREE.Vector3(v.y, -v.x, v.z); 
+		case Z_AXIS: 
+			return new THREE.Vector3(v.z, v.y, -v.x); 
+		default: 
+			return v;
+	}
+} //transforms a vec3D in the original orientation of the bond to that as if the bond was in +X direction
+
+function  toAxisXQuat(q,axis){
+	switch (axis){
+		case Y_AXIS: 
+			return new THREE.Quaternion(q.w, q.y, -q.x, q.z); 
+		case Z_AXIS: 
+			return new THREE.Quaternion(q.w, q.z, q.y, -q.x); 
+		default: 
+			return q;
+	}
+} //transforms a vec3D in the original orientation of the bond to that as if the bond was in +X direction
+
+//const Quat3D Conjugate() const {return Quat3D(w, -x, -y, -z);} //!< Returns a quaternion that is the conjugate of this quaternion. This quaternion is not modified.
+function ToRotationVector(a)  {
+	if (a.w >= 1.0 || a.w <= -1.0) {
+		return new THREE.Vector3(0,0,0);
+	}
+	var squareLength = 1.0-a.w*a.w; //because x*x + y*y + z*z + w*w = 1.0, but more susceptible to w noise (when 
+	var SLTHRESH_ACOS2SQRT= 2.4e-3; //SquareLength threshhold for when we can use square root optimization for acos. From SquareLength = 1-w*w. (calculate according to 1.0-W_THRESH_ACOS2SQRT*W_THRESH_ACOS2SQRT
+
+	if (squareLength < SLTHRESH_ACOS2SQRT) //???????
+		return new THREE.Vector3(a.x, a.y, a.z).multiplyScalar(2.0*Math.sqrt((2-2*a.w)/squareLength)); //acos(w) = sqrt(2*(1-x)) for w close to 1. for w=0.001, error is 1.317e-6
+	else 
+		return new THREE.Vector3(a.x, a.y, a.z).multiplyScalar(2.0*Math.acos(a.w)/Math.sqrt(squareLength));
+} //!< Returns a rotation vector representing this quaternion rotation. Adapted from http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/
+
+function FromRotationVector( VecIn) { 
+	var q=new THREE.Quaternion();
+	var theta = VecIn.clone().divideScalar(2.0);
+	var s, thetaMag2 = theta.length()*theta.length();
+	if (thetaMag2*thetaMag2 < DBL_EPSILONx24 ){ //if the 4th taylor expansion term is negligible
+		q.w=1.0 - 0.5*thetaMag2;
+		s=1.0 - thetaMag2 / 6.0;
+	}
+	else {
+		var thetaMag = Math.sqrt(thetaMag2);
+		q.w=Math.cos(thetaMag);
+		s=Math.sin(thetaMag) / thetaMag;
+	}
+	q.x=theta.x*s;
+	q.y=theta.y*s;
+	q.z=theta.z*s;
+	return q;
+} //!< Overwrites this quaternion with values from the specified rotation vector. Adapted from http://physicsforgames.blogspot.com/2010/02/quaternions.html.  Note: function changes this quaternion. @param[in] VecIn A rotation vector to calculate this quaternion from.
+
+
+function FromAngleToPosX(a, RotateFrom){ //highly optimized at the expense of readability
+	if (new THREE.Vector3(0,0,0).equals(RotateFrom)) 
+		return; //leave off if it slows down too much!!
+
+    //Catch and handle small angle:
+    var YoverX = RotateFrom.y/RotateFrom.x;
+    var ZoverX = RotateFrom.z/RotateFrom.x;
+    if (YoverX<SMALL_ANGLE_RAD && YoverX>-SMALL_ANGLE_RAD && ZoverX<SMALL_ANGLE_RAD && ZoverX>-SMALL_ANGLE_RAD){ //??? //Intercept small angle and zero angle
+		a.x=0; 
+		a.y=0.5*ZoverX; 
+		a.z=-0.5*YoverX;
+        a.w = 1+0.5*(-a.y*a.y-a.z*a.z); //w=sqrt(1-x*x-y*y), small angle sqrt(1+x) ~= 1+x/2 at x near zero.
+        return a;
+    }
+
+    //more accurate non-small angle:
+    var RotFromNorm = RotateFrom.clone();
+    RotFromNorm.normalize(); //Normalize the input...
+
+    var theta = Math.acos(RotFromNorm.x); //because RotFromNorm is normalized, 1,0,0 is normalized, and A.B = |A||B|cos(theta) = cos(theta)
+    if (theta > Math.PI-DISCARD_ANGLE_RAD) {//??????
+		a.w=0; 
+		a.x=0; 
+		a.y=1; 
+		a.z=0; 
+		return a;
+	} //180 degree rotation (about y axis, since the vector must be pointing in -x direction
+
+    var AxisMagInv = 1.0/Math.sqrt(RotFromNorm.z*RotFromNorm.z+RotFromNorm.y*RotFromNorm.y);
+    //Here theta is the angle, axis is RotFromNorm.Cross(Vec3D(1,0,0)) = Vec3D(0, RotFromNorm.z/AxisMagInv, -RotFromNorm.y/AxisMagInv), which is still normalized. (super rolled together)
+    var aa = 0.5*theta;
+    var s = Math.sin(a);
+	a.w=Math.cos(aa); 
+	a.x=0; 
+	a.y=RotFromNorm.z*AxisMagInv*s; 
+	a.z = -RotFromNorm.y*AxisMagInv*s; //angle axis function, reduced
+	return a;
+
+} //!< Overwrites this quaternion with the calculated rotation that would transform the specified RotateFrom vector to point in the positve X direction. Note: function changes this quaternion.  @param[in] RotateFrom An arbitrary direction vector. Does not need to be normalized.
+
+function axialStrain()  {
+	return strain;
+} //!< returns the current overall axial strain (unitless) between the two voxels.
+
+function axialStrain( positiveEnd) {
+	//strainRatio = pVPos->material()->E/pVNeg->material()->E;
+	var strainRatio=1.0;
+	return positiveEnd ? 2.0 *strain*strainRatio/(1.0+strainRatio) : 2.0*strain/(1.0+strainRatio);
+}
+
+function updateStrain( axialStrain){ //?from where strain
+	strain = axialStrain; //redundant?
+	var currentTransverseStrainSum=1.0; //??? todo
+    var linear=true;
+    // var maxStrain=100000000000000000000;//?? todo later change
+	if (linear){
+		if (axialStrain > maxStrain) 
+			maxStrain = axialStrain; //remember this maximum for easy reference
+		return stress(axialStrain, currentTransverseStrainSum);
+	}
+	else {
+		var returnStress;
+
+		if (axialStrain > maxStrain){ //if new territory on the stress/strain curve
+			maxStrain = axialStrain; //remember this maximum for easy reference
+			returnStress = stress(axialStrain, currentTransverseStrainSum); //??currentTransverseStrainSum
+			
+			if (nu != 0.0) 
+				strainOffset = maxStrain-stress(axialStrain)/(_eHat*(1-nu)); //precalculate strain offset for when we back off
+			else strainOffset = maxStrain-returnStress/E; //precalculate strain offset for when we back off
+
+		}
+		else { //backed off a non-linear material, therefore in linear region.
+			var relativeStrain = axialStrain-strainOffset; // treat the material as linear with a strain offset according to the maximum plastic deformation
+			
+			if (nu != 0.0) 
+				returnStress = stress(relativeStrain, currentTransverseStrainSum, true);
+			else 
+				returnStress = E*relativeStrain;
+		}
+		return returnStress;
+
+	}
+
+}
+
+function stress( strain,  transverseStrainSum,  forceLinear){
+	//reference: http://www.colorado.edu/engineering/CAS/courses.d/Structures.d/IAST.Lect05.d/IAST.Lect05.pdf page 10
+	//if (isFailed(strain)) return 0.0f; //if a failure point is set and exceeded, we've broken!
+	var E =setup.edges[0].stiffness; //todo change later to material ??
+	var scaleFactor=1;
+    return E*strain/scaleFactor;
+
+	// if (strain <= strainData[1] || linear || forceLinear){ //for compression/first segment and linear materials (forced or otherwise), simple calculation
+        
+        // if (nu==0.0) return E*strain;
+		// else return _eHat*((1-nu)*strain + nu*transverseStrainSum); 
+		//else return eHat()*((1-nu)*strain + nu*transverseStrainSum); 
+	// }
+
+	// //the non-linear feature with non-zero poissons ratio is currently experimental
+	// int DataCount = modelDataPoints();
+	// for (int i=2; i<DataCount; i++){ //go through each segment in the material model (skipping the first segment because it has already been handled.
+	// 	if (strain <= strainData[i] || i==DataCount-1){ //if in the segment ending with this point (or if this is the last point extrapolate out) 
+	// 		float Perc = (strain-strainData[i-1])/(strainData[i]-strainData[i-1]);
+	// 		float basicStress = stressData[i-1] + Perc*(stressData[i]-stressData[i-1]);
+	// 		if (nu==0.0f) return basicStress;
+	// 		else { //accounting for volumetric effects
+	// 			float modulus = (stressData[i]-stressData[i-1])/(strainData[i]-strainData[i-1]);
+	// 			float modulusHat = modulus/((1-2*nu)*(1+nu));
+	// 			float effectiveStrain = basicStress/modulus; //this is the strain at which a simple linear stress strain line would hit this point at the definied modulus
+	// 			float effectiveTransverseStrainSum = transverseStrainSum*(effectiveStrain/strain);
+	// 			return modulusHat*((1-nu)*effectiveStrain + nu*effectiveTransverseStrainSum);
+	// 		}
+	// 	}
+	// }
+
+	// assert(false); //should never reach this point
+	// return 0.0f;
+}
+
+function updateTransverseInfo(edge){
+	// currentTransverseArea = 0.5*(pVNeg->transverseArea(edge.axis)+pVPos->transverseArea(edge.axis));
+    // currentTransverseStrainSum = 0.5*(pVNeg->transverseStrainSum(edge.axis)+pVPos->transverseStrainSum(edge.axis));
+    edge.currentTransverseArea = 1; //or 0
+	edge.currentTransverseStrainSum = 1;//or 0
+
+}
+
+function transverseArea( axis){
+	var size = 1.0;//??(float)mat->nominalSize();
+    //if (mat->poissonsRatio() == 0) return size*size;
+    if (true) return size*size;
+
+	// var psVec = poissonsStrain();
+
+	// switch (axis){
+	// case X_AXIS: return (float)(size*size*(1+psVec.y)*(1+psVec.z));
+	// case Y_AXIS: return (float)(size*size*(1+psVec.x)*(1+psVec.z));
+	// case Z_AXIS: return (float)(size*size*(1+psVec.x)*(1+psVec.y));
+	// default: return size*size;
+	// }
+}
+
+//http://klas-physics.googlecode.com/svn/trunk/src/general/Integrator.cpp (reference)
+function timeStep( dt,node){
+	var previousDt = dt;
+	var linMom=node.linMom.clone();
+    var angMom=node.angMom.clone();
+    var orient=node.orient.clone();
+	var pos=new THREE.Vector3(node.currPosition.x,node.currPosition.y,node.currPosition.z);
+	if (dt == 0.0) 
+		return;
+
+	var isTrue = (currentValue) => currentValue ==true;
+
+
+	if (node.restrained_degrees_of_freedom.every(isTrue)){
+		// pos = originalPosition() + ext->translation();
+		// orient = ext->rotationQuat();
+		// haltMotion();
+		pos=new THREE.Vector3(node.position.x,node.position.y,node.position.z);
+		node.currPosition=pos.clone();
+		linMom = new THREE.Vector3(0,0,0);
+		angMom = new THREE.Vector3(0,0,0);
+		node.displacement={x:0,y:0,z:0};
+
+		node.orient=orient.clone();
+		node.linMom=linMom.clone();
+		node.angMom=angMom.clone();
+		return;
+	}
+
+	//Translation
+	var curForce = force(node);
+	//var fricForce = curForce.clone();
+
+	//if (isFloorEnabled()) floorForce(dt, &curForce); //floor force needs dt to calculate threshold to "stop" a slow voxel into static friction.
+
+	//fricForce = curForce - fricForce;
+
+	//assert(!(curForce.x != curForce.x) || !(curForce.y != curForce.y) || !(curForce.z != curForce.z)); //assert non QNAN
+	linMom.add(curForce).multiplyScalar(dt);
+
+	var massInverse=1.0;//todo ?? later change
+	var translate=linMom.clone().multiplyScalar(dt*massInverse);//??massInverse
+
+    // //	we need to check for friction conditions here (after calculating the translation) and stop things accordingly
+	// if (isFloorEnabled() && floorPenetration() >= 0){ //we must catch a slowing voxel here since it all boils down to needing access to the dt of this timestep.
+	// 	double work = fricForce.x*translate.x + fricForce.y*translate.y; //F dot disp
+	// 	double hKe = 0.5*mat->_massInverse*(linMom.x*linMom.x + linMom.y*linMom.y); //horizontal kinetic energy
+
+	// 	if(hKe + work <= 0) setFloorStaticFriction(true); //this checks for a change of direction according to the work-energy principle
+
+	// 	if (isFloorStaticFriction()){ //if we're in a state of static friction, zero out all horizontal motion
+	// 		linMom.x = linMom.y = 0;
+	// 		translate.x = translate.y = 0;
+	// 	}
+	// }
+	// else setFloorStaticFriction(false);
+	pos.add(translate);
+	node.currPosition=pos.clone();
+	node.displacement={
+		x:translate.x+node.displacement.x,
+		y:translate.y+node.displacement.y,
+		z:translate.z+node.displacement.z};
+	
+	// pos += translate;
+
+	//Rotation
+	var curMoment = moment(node); 
+	angMom.add(curMoment*dt);
+
+	var momentInertiaInverse=1.0;//todo ?? later change
+	orient.multiply(FromRotationVector(angMom.clone().multiplyScalar((dt*momentInertiaInverse)))); //update the orientation //momentInertiaInverse
+
+	node.orient=orient.clone();
+	node.linMom=linMom.clone();
+	node.angMom=angMom.clone();
+	
+	// if (ext){//?? todo fix 
+	// 	var size = 1;//change
+	// 	if (ext->isFixed(X_TRANSLATE)) {pos.x = ix*size + ext->translation().x; linMom.x=0;}
+	// 	if (ext->isFixed(Y_TRANSLATE)) {pos.y = iy*size + ext->translation().y; linMom.y=0;}
+	// 	if (ext->isFixed(Z_TRANSLATE)) {pos.z = iz*size + ext->translation().z; linMom.z=0;}
+	// 	if (ext->isFixedAnyRotation()){ //if any rotation fixed, all are fixed
+	// 		if (ext->isFixedAllRotation()){
+	// 			orient = ext->rotationQuat();
+	// 			angMom = Vec3D<double>();
+	// 		}
+	// 		else { //partial fixes: slow!
+	// 			Vec3D<double> tmpRotVec = orient.ToRotationVector();
+	// 			if (ext->isFixed(X_ROTATE)){ tmpRotVec.x=0; angMom.x=0;}
+	// 			if (ext->isFixed(Y_ROTATE)){ tmpRotVec.y=0; angMom.y=0;}
+	// 			if (ext->isFixed(Z_ROTATE)){ tmpRotVec.z=0; angMom.z=0;}
+	// 			orient.FromRotationVector(tmpRotVec);
+	// 		}
+	// 	}
+	// }
+
+
+	// poissonsStrainInvalid = true;
+}
+
+
+function force(node) {
+	//forces from internal bonds
+	var totalForce=new THREE.Vector3(0,0,0);
+	//new THREE.Vector3(node.force.x,node.force.y,node.force.z);
+	// todo 
+	
+	totalForce.add(node.intForce);
+
+	// for (int i=0; i<6; i++){ 
+	// 	if (links[i]) totalForce += links[i]->force(isNegative((linkDirection)i)); //total force in LCS
+	// }
+	totalForce = RotateVec3D(node.orient,totalForce); //from local to global coordinates
+
+	//assert(!(totalForce.x != totalForce.x) || !(totalForce.y != totalForce.y) || !(totalForce.z != totalForce.z)); //assert non QNAN
+
+	//other forces
+	totalForce.add(new THREE.Vector3(node.force.x,node.force.y,node.force.z));
+
+	// if (externalExists()) totalForce += external()->force(); //external forces
+	// totalForce -= velocity()*mat->globalDampingTranslateC(); //global damping f-cv
+	// totalForce.z += mat->gravityForce(); //gravity, according to f=mg
+
+	// if (isCollisionsEnabled()){
+	// 	for (std::vector<CVX_Collision*>::iterator it=colWatch->begin(); it!=colWatch->end(); it++){
+	// 		totalForce -= (*it)->contactForce(this);
+	// 	}
+	// }
+	//todo make internal forces 0 again
+	node.intForce=new THREE.Vector3(0,0,0);
+	// node.force.x=0;
+	// node.force.y=0;
+	// node.force.z=0;
+	return totalForce;
+}
+
+function moment(node) {
+	//moments from internal bonds
+	var totalMoment=new THREE.Vector3(0,0,0);
+	// for (int i=0; i<6; i++){ 
+	// 	if (links[i]) totalMoment += links[i]->moment(isNegative((linkDirection)i)); //total force in LCS
+	// }
+	totalMoment.add(node.intMoment);
+	totalMoment = RotateVec3D(node.orient,totalMoment);
+	
+	totalMoment.add(new THREE.Vector3(node.moment.x,node.moment.y,node.moment.z));
+
+	//other moments
+	// if (externalExists()) totalMoment += external()->moment(); //external moments
+	// totalMoment -= angularVelocity()*mat->globalDampingRotateC(); //global damping
+	node.intMoment=new THREE.Vector3(0,0,0);
+	return totalMoment;
+}
+
+////////////////////////////////////////////////////////////////////////////////////////////////
+
+//void haltMotion(){linMom = angMom = Vec3D<>(0,0,0);} //!< Halts all momentum of this block. Unless fixed the voxel will continue to move in subsequent timesteps.
+
+function recommendedTimeStep()  {
+	// //find the largest natural frequency (sqrt(k/m)) that anything in the simulation will experience, then multiply by 2*pi and invert to get the optimally largest timestep that should retain stability
+	// float MaxFreq2 = 0.0f; //maximum frequency in the simulation in rad/sec
+
+	// for (std::vector<CVX_Link*>::const_iterator it=linksList.begin(); it != linksList.end(); it++){ //for each link
+	// 	CVX_Link* pL = (*it);
+	// 	//axial
+	// 	float m1 = pL->pVNeg->mat->mass(),  m2 = pL->pVPos->mat->mass();
+	// 	float thisMaxFreq2 = pL->axialStiffness()/(m1<m2?m1:m2);
+	// 	if (thisMaxFreq2 > MaxFreq2) MaxFreq2 = thisMaxFreq2;
+
+	// 	//rotational will always be less than or equal
+	// }
+
+
+	// if (MaxFreq2 <= 0.0f){ //didn't find anything (i.e no links) check for individual voxelss
+	// 	for (std::vector<CVX_Voxel*>::const_iterator it=voxelsList.begin(); it != voxelsList.end(); it++){ //for each link
+	// 		float thisMaxFreq2 = (*it)->mat->youngsModulus()*(*it)->mat->nomSize/(*it)->mat->mass(); 
+	// 		if (thisMaxFreq2 > MaxFreq2) MaxFreq2 = thisMaxFreq2;
+	// 	}
+	// }
+	
+	// if (MaxFreq2 <= 0.0f) return 0.0f;
+	// else return 1.0f/(6.283185f*sqrt(MaxFreq2)); //the optimal timestep is to advance one radian of the highest natural frequency
+}
+
+function isXyzIndependent()  {return nu==0.0;} //!< Returns true if poisson's ratio is zero - i.e. deformations in each dimension are independent of those in other dimensions.
+
+
+function isFailed(edge) {
+	// return mat->isFailed(maxStrain);
+}
+
+// function isLocalVelocityValid()  {return boolStates & LOCAL_VELOCITY_VALID ? true : false;} //
+
+// function dampingMultiplier() {return 2*mat->_sqrtMass*mat->zetaInternal/previousDt;} //!< Returns the damping multiplier for this voxel. This would normally be called only internally for the internal damping calculations.
+
+// function setBoolState(linkFlags flag, bool set=true) {set ? boolStates |= (int)flag : boolStates &= ~(int)flag;}
+
+// function setFixedAll(bool fixed=true) {fixed?setDisplacementAll():clearDisplacementAll();} //!< Sets all 6 degrees of freedom to either fixed or free depending on the value of fixed. Either way, sets all displacements to zero. @param[in] fixed Whether all degrees of freedom should be fixed (true) or free (false).
+
+// function setDisplacement(dofComponent dof, double displacement=0.0); //!< Fixes the specified degree of freedom and applies the prescribed displacement if specified. @param[in] dof the degree of freedom in question. @param[in] displacement The displacement in meters (translational dofs) or radians (rotational dofs) to apply. Large fixed displacements may cause instability.
+// function setDisplacementAll(const Vec3D<double>& translation = Vec3D<double>(0,0,0), const Vec3D<double>& rotation = Vec3D<double>(0,0,0)); //!< Fixes the all degrees of freedom and applies the specified translation and rotation. @param[in] translation The translation in meters from this voxel's nominal position to fix it at. @param[in] rotation The rotation (in the form of a rotation vector) from this voxel's nominal orientation to fix it at.
+
+function transverseStrainSum(axis){
+	// if (mat->poissonsRatio() == 0) return 0;
+	
+	// Vec3D<float> psVec = poissonsStrain();
+
+	// switch (axis){
+	// case CVX_Link::X_AXIS: return psVec.y+psVec.z;
+	// case CVX_Link::Y_AXIS: return psVec.x+psVec.z;
+	// case CVX_Link::Z_AXIS: return psVec.x+psVec.y;
+	// default: return 0.0f;
+	// }
+
+}
+
+function transverseStrainSum(axis){
+	// if (mat->poissonsRatio() == 0) return 0;
+	
+	// Vec3D<float> psVec = poissonsStrain();
+
+	// switch (axis){
+	// case CVX_Link::X_AXIS: return psVec.y+psVec.z;
+	// case CVX_Link::Y_AXIS: return psVec.x+psVec.z;
+	// case CVX_Link::Z_AXIS: return psVec.x+psVec.y;
+	// default: return 0.0f;
+	// }
+
+}
+
+function poissonsStrain(node){
+	// if (poissonsStrainInvalid){
+	// 	pStrain = strain(true);
+	// 	poissonsStrainInvalid = false;
+	// }
+	// return pStrain;
+}
+
+function strain( poissonsStrain) {
+	//if no connections in the positive and negative directions of a particular axis, strain is zero
+	//if one connection in positive or negative direction of a particular axis, strain is that strain - ?? and force or constraint?
+	//if connections in both the positive and negative directions of a particular axis, strain is the average. 
+	
+	// Vec3D<float> intStrRet(0,0,0); //intermediate strain return value. axes according to linkAxis enum
+	// int numBondAxis[3] = {0}; //number of bonds in this axis (0,1,2). axes according to linkAxis enum
+	// bool tension[3] = {false};
+	// for (int i=0; i<6; i++){ //cycle through link directions
+	// 	if (links[i]){
+	// 		int axis = toAxis((linkDirection)i);
+	// 		intStrRet[axis] += links[i]->axialStrain(isNegative((linkDirection)i));
+	// 		numBondAxis[axis]++;
+	// 	}
+	// }
+	// for (int i=0; i<3; i++){ //cycle through axes
+	// 	if (numBondAxis[i]==2) intStrRet[i] *= 0.5f; //average
+	// 	if (poissonsStrain){
+	// 		tension[i] = ((numBondAxis[i]==2) || (ext && (numBondAxis[i]==1 && (ext->isFixed((dofComponent)(1<<i)) || ext->force()[i] != 0)))); //if both sides pulling, or just one side and a fixed or forced voxel...
+	// 	}
+
+	// }
+
+	// if (poissonsStrain){
+	// 	if (!(tension[0] && tension[1] && tension[2])){ //if at least one isn't in tension
+	// 		float add = 0;
+	// 		for (int i=0; i<3; i++) if (tension[i]) add+=intStrRet[i];
+	// 		float value = pow( 1.0f + add, -mat->poissonsRatio()) - 1.0f;
+	// 		for (int i=0; i<3; i++) if (!tension[i]) intStrRet[i]=value;
+	// 	}
+	// }
+
+	// return intStrRet;
+}
diff --git a/01_Code/physical_computing_interface/simulation/json/emptySetup.json b/01_Code/physical_computing_interface/simulation/json/emptySetup.json
new file mode 100644
index 0000000000000000000000000000000000000000..b2612258e5850384489c30a5eca4d0645fb5ffcb
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/json/emptySetup.json
@@ -0,0 +1,17 @@
+{
+	"nodes": [],
+    "edges": [],
+    "ndofs"   : 0,
+    "animation" :  {
+        "showDisplacement" : true,
+        "exageration" : 2000,
+        "speed":3.0
+    },
+    "viz" :{
+        "minStress":-500,
+        "maxStress": 500,
+        "colorMaps":["coolwarm","YlGnBu", "winter" ,"jet"],
+        "colorMap":0
+    },
+    "bar":false
+}
\ No newline at end of file
diff --git a/01_Code/physical_computing_interface/simulation/json/foo.json b/01_Code/physical_computing_interface/simulation/json/foo.json
new file mode 100644
index 0000000000000000000000000000000000000000..448a27de941f3a9e3d8ab2866d83507c9c06f627
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/json/foo.json
@@ -0,0 +1,24 @@
+{
+  "planet": "Earth",
+  "city.name": "anytown",
+  "name": {
+    "first": "Johnny",
+    "last": "B."
+  },
+  "is_student": false,
+  "planett": [
+    "jupiter",
+    "earth"
+  ],
+  "a": {
+    "new": {
+      "field": {
+        "as": {
+          "object": {
+            "hello": "world"
+          }
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/01_Code/physical_computing_interface/simulation/json/parallelCube.js b/01_Code/physical_computing_interface/simulation/json/parallelCube.js
new file mode 100644
index 0000000000000000000000000000000000000000..b5f6274f76e6d62a3d705102a95d4d2ff17fdc5c
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/json/parallelCube.js
@@ -0,0 +1,509 @@
+var setup=
+{
+	nodes: [
+		{
+			id: 'n0', 
+			parent: '11',
+			degrees_of_freedom:[0,1,2,3,4,5] ,
+			restrained_degrees_of_freedom:[true,true,true,true,true,true],
+			position: { x: 0, y: 0,z:0 },
+			currPosition:new THREE.Vector3(0,0,0),
+			force:{ x: 0, y: 0,z:0 },
+			displacement: { x: 0, y: 0,z:0 },
+			angle: { x: 0, y: 0,z:0 },
+			orient: new THREE.Quaternion(),
+			linMom:new THREE.Vector3(0,0,0),
+			angMom:new THREE.Vector3(0,0,0),
+			intForce:new THREE.Vector3(0,0,0),
+			intMoment:new THREE.Vector3(0,0,0),
+			moment:{ x: 0, y: 0,z:0 },
+			
+		},
+		{
+			id: 'n1', 
+			parent: '11',
+			degrees_of_freedom:[6,7,8,9,10,11]  ,
+			restrained_degrees_of_freedom:[false,false,false,false,false,false],
+			position: { x: 0, y: 5,z:0  },
+			currPosition:new THREE.Vector3(0,5,0),
+			force:{ x: 0, y: -0,z:0 },
+			displacement: { x: 0, y: 0,z:0 },
+			angle: { x: 0, y: 0,z:0 },
+			orient: new THREE.Quaternion(),
+			linMom:new THREE.Vector3(0,0,0),
+			angMom:new THREE.Vector3(0,0,0),
+			intForce:new THREE.Vector3(0,0,0),
+			intMoment:new THREE.Vector3(0,0,0),
+			moment:{ x: 0, y: 0,z:0 },
+
+		},
+		{
+			id: 'n2',
+			parent: '11',
+			degrees_of_freedom:[12,13,14,15,16,17,18]  ,
+			restrained_degrees_of_freedom:[true,true,true,true,true,true],
+			position: { x: 5, y: 0,z:0  },
+			currPosition:new THREE.Vector3(5,0,0),
+			force:{ x: 0, y: 0,z:0 },
+			displacement: { x: 0, y: 0,z:0 },
+			angle: { x: 0, y: 0,z:0 },
+			orient: new THREE.Quaternion(),
+			linMom:new THREE.Vector3(0,0,0),
+			angMom:new THREE.Vector3(0,0,0),
+			intForce:new THREE.Vector3(0,0,0),
+			intMoment:new THREE.Vector3(0,0,0),
+			moment:{ x: 0, y: 0,z:0 },
+
+		},
+		{
+			id: 'n3',
+			parent: '11',
+			degrees_of_freedom:[12,13,14,15,16,17,18]  ,
+			restrained_degrees_of_freedom:[false,false,false,false,false,false],
+			position: { x: 5, y: 5,z:0  },
+			currPosition:new THREE.Vector3(5,5,0),
+			force:{ x: 0, y: -0,z:0 },
+			displacement: { x: 0, y: 0,z:0 },
+			angle: { x: 0, y: 0,z:0 },
+			orient: new THREE.Quaternion(),
+			linMom:new THREE.Vector3(0,0,0),
+			angMom:new THREE.Vector3(0,0,0),
+			intForce:new THREE.Vector3(0,0,0),
+			intMoment:new THREE.Vector3(0,0,0),
+			moment:{ x: 0, y: 0,z:0 },
+
+		},
+		{
+			id: 'n4',
+			parent: '11',
+			degrees_of_freedom:[12,13,14,15,16,17,18]  ,
+			restrained_degrees_of_freedom:[true,true,true,true,true,true],
+			position: { x: 0, y: 0,z:5  },
+			currPosition:new THREE.Vector3(0,0,5),
+			force:{ x: 0, y: 0,z:0 },
+			displacement: { x: 0, y: 0,z:0 },
+			angle: { x: 0, y: 0,z:0 },
+			orient: new THREE.Quaternion(),
+			linMom:new THREE.Vector3(0,0,0),
+			angMom:new THREE.Vector3(0,0,0),
+			intForce:new THREE.Vector3(0,0,0),
+			intMoment:new THREE.Vector3(0,0,0),
+			moment:{ x: 0, y: 0,z:0 },
+
+		},
+		{
+			id: 'n5',
+			parent: '11',
+			degrees_of_freedom:[12,13,14,15,16,17,18]  ,
+			restrained_degrees_of_freedom:[false,false,false,false,false,false],
+			position: { x: 0, y: 5,z:5  },
+			currPosition:new THREE.Vector3(0,5,5),
+			force:{ x: 0, y: -0,z:0 },
+			displacement: { x: 0, y: 0,z:0 },
+			angle: { x: 0, y: 0,z:0 },
+			orient: new THREE.Quaternion(),
+			linMom:new THREE.Vector3(0,0,0),
+			angMom:new THREE.Vector3(0,0,0),
+			intForce:new THREE.Vector3(0,0,0),
+			intMoment:new THREE.Vector3(0,0,0),
+			moment:{ x: 0, y: 0,z:0 },
+
+		},
+		{
+			id: 'n6',
+			parent: '11',
+			degrees_of_freedom:[12,13,14,15,16,17,18]  ,
+			restrained_degrees_of_freedom:[true,true,true,true,true,true],
+			position: { x: 5, y: 0,z:5  },
+			currPosition:new THREE.Vector3(5,0,5),
+			force:{ x: 0, y: 0,z:0 },
+			displacement: { x: 0, y: 0,z:0 },
+			angle: { x: 0, y: 0,z:0 },
+			orient: new THREE.Quaternion(),
+			linMom:new THREE.Vector3(0,0,0),
+			angMom:new THREE.Vector3(0,0,0),
+			intForce:new THREE.Vector3(0,0,0),
+			intMoment:new THREE.Vector3(0,0,0),
+			moment:{ x: 0, y: 0,z:0 },
+
+		},
+		{
+			id: 'n7',
+			parent: '11',
+			degrees_of_freedom:[12,13,14,15,16,17,18]  ,
+			restrained_degrees_of_freedom:[false,false,false,false,false,false],
+			position: { x: 5, y: 5,z:5  },
+			currPosition:new THREE.Vector3(5,5,5),
+			force:{ x: 0, y: -0,z:0 },
+			displacement: { x: 0, y: 0,z:0 },
+			angle: { x: 0, y: 0,z:0 },
+			orient: new THREE.Quaternion(),
+			linMom:new THREE.Vector3(0,0,0),
+			angMom:new THREE.Vector3(0,0,0),
+			intForce:new THREE.Vector3(0,0,0),
+			intMoment:new THREE.Vector3(0,0,0),
+			moment:{ x: 0, y: 0,z:0 },
+
+		},
+		{
+			id: 'n8',
+			parent: '11',
+			degrees_of_freedom:[12,13,14,15,16,17,18]  ,
+			restrained_degrees_of_freedom:[false,false,false,false,false,false],
+			position: { x: 5, y: 10,z:5  },
+			currPosition:new THREE.Vector3(5,10,5),
+			force:{ x: 0, y: -0,z:0 },
+			displacement: { x: 0, y: 0,z:0 },
+			angle: { x: 0, y: 0,z:0 },
+			orient: new THREE.Quaternion(),
+			linMom:new THREE.Vector3(0,0,0),
+			angMom:new THREE.Vector3(0,0,0),
+			intForce:new THREE.Vector3(0,0,0),
+			intMoment:new THREE.Vector3(0,0,0),
+			moment:{ x: 0, y: 0,z:0 },
+
+		},
+		{
+			id: 'n9',
+			parent: '11',
+			degrees_of_freedom:[12,13,14,15,16,17,18]  ,
+			restrained_degrees_of_freedom:[false,false,false,false,false,false],
+			position: { x: 0, y: 10,z:5  },
+			currPosition:new THREE.Vector3(0,10,5),
+			force:{ x: 0, y: -0,z:0 },
+			displacement: { x: 0, y: 0,z:0 },
+			angle: { x: 0, y: 0,z:0 },
+			orient: new THREE.Quaternion(),
+			linMom:new THREE.Vector3(0,0,0),
+			angMom:new THREE.Vector3(0,0,0),
+			intForce:new THREE.Vector3(0,0,0),
+			intMoment:new THREE.Vector3(0,0,0),
+			moment:{ x: 0, y: 0,z:0 },
+
+		},
+		{
+			id: 'n10',
+			parent: '11',
+			degrees_of_freedom:[12,13,14,15,16,17,18]  ,
+			restrained_degrees_of_freedom:[false,false,false,false,false,false],
+			position: { x: 5, y: 10,z:0  },
+			currPosition:new THREE.Vector3(5,10,0),
+			force:{ x: 0, y: 0,z:0 },
+			displacement: { x: 0, y: 0,z:0 },
+			angle: { x: 0, y: 0,z:0 },
+			orient: new THREE.Quaternion(),
+			linMom:new THREE.Vector3(0,0,0),
+			angMom:new THREE.Vector3(0,0,0),
+			intForce:new THREE.Vector3(0,0,0),
+			intMoment:new THREE.Vector3(0,0,0),
+			moment:{ x: 0, y: 0,z:0 },
+
+		},
+		{
+			id: 'n11', 
+			parent: '11',
+			degrees_of_freedom:[6,7,8,9,10,11]  ,
+			restrained_degrees_of_freedom:[false,false,false,false,false,false],
+			position: { x: 0, y: 10,z:0  },
+			currPosition:new THREE.Vector3(0,10,0),
+			force:{ x: -0, y: -0,z:0 },
+			displacement: { x: 0, y: 0,z:0 },
+			angle: { x: 0, y: 0,z:0 },
+			orient: new THREE.Quaternion(),
+			linMom:new THREE.Vector3(0,0,0),
+			angMom:new THREE.Vector3(0,0,0),
+			intForce:new THREE.Vector3(0,0,0),
+			intMoment:new THREE.Vector3(0,0,0),
+			moment:{ x: 0, y: 0,z:0 },
+
+		}
+	],
+	
+	edges: [
+        { 
+            id: 'e0', source: 0, target: 1 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0,
+            currentRestLength:0,
+            axis:Y_AXIS,
+            pos2: new THREE.Vector3(0,0,0),
+            angle1v: new THREE.Vector3(0,0,0),
+            angle2v: new THREE.Vector3(0,0,0),
+            angle1:new THREE.Quaternion(),
+            angle2:new THREE.Quaternion(),
+            currentTransverseArea:0,
+            currentTransverseStrainSum:0
+
+		},
+		{ 
+            id: 'e1', source: 1, target: 3 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0,
+            currentRestLength:0,
+            axis:X_AXIS,
+            pos2: new THREE.Vector3(0,0,0),
+            angle1v: new THREE.Vector3(0,0,0),
+            angle2v: new THREE.Vector3(0,0,0),
+            angle1:new THREE.Quaternion(),
+            angle2:new THREE.Quaternion(),
+            currentTransverseArea:0,
+            currentTransverseStrainSum:0
+
+		},
+		{ 
+            id: 'e2', source: 2, target: 3 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0,
+            currentRestLength:0,
+            axis:Y_AXIS,
+            pos2: new THREE.Vector3(0,0,0),
+            angle1v: new THREE.Vector3(0,0,0),
+            angle2v: new THREE.Vector3(0,0,0),
+            angle1:new THREE.Quaternion(),
+            angle2:new THREE.Quaternion(),
+            currentTransverseArea:0,
+            currentTransverseStrainSum:0
+
+		},
+		{ 
+            id: 'e3', source: 0, target: 2 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0,
+            currentRestLength:0,
+            axis:X_AXIS,
+            pos2: new THREE.Vector3(0,0,0),
+            angle1v: new THREE.Vector3(0,0,0),
+            angle2v: new THREE.Vector3(0,0,0),
+            angle1:new THREE.Quaternion(),
+            angle2:new THREE.Quaternion(),
+            currentTransverseArea:0,
+            currentTransverseStrainSum:0
+
+		},
+		{ 
+            id: 'e4', source: 4, target: 5 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0,
+            currentRestLength:0,
+            axis:Y_AXIS,
+            pos2: new THREE.Vector3(0,0,0),
+            angle1v: new THREE.Vector3(0,0,0),
+            angle2v: new THREE.Vector3(0,0,0),
+            angle1:new THREE.Quaternion(),
+            angle2:new THREE.Quaternion(),
+            currentTransverseArea:0,
+            currentTransverseStrainSum:0
+
+		},
+		{ 
+            id: 'e5', source: 5, target: 7 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0,
+            currentRestLength:0,
+            axis:X_AXIS,
+            pos2: new THREE.Vector3(0,0,0),
+            angle1v: new THREE.Vector3(0,0,0),
+            angle2v: new THREE.Vector3(0,0,0),
+            angle1:new THREE.Quaternion(),
+            angle2:new THREE.Quaternion(),
+            currentTransverseArea:0,
+            currentTransverseStrainSum:0
+
+		},
+		{ 
+            id: 'e6', source: 6, target: 7 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0,
+            currentRestLength:0,
+            axis:Y_AXIS,
+            pos2: new THREE.Vector3(0,0,0),
+            angle1v: new THREE.Vector3(0,0,0),
+            angle2v: new THREE.Vector3(0,0,0),
+            angle1:new THREE.Quaternion(),
+            angle2:new THREE.Quaternion(),
+            currentTransverseArea:0,
+            currentTransverseStrainSum:0
+
+		},
+		{ 
+            id: 'e7', source: 4, target: 6 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0,
+            currentRestLength:0,
+            axis:X_AXIS,
+            pos2: new THREE.Vector3(0,0,0),
+            angle1v: new THREE.Vector3(0,0,0),
+            angle2v: new THREE.Vector3(0,0,0),
+            angle1:new THREE.Quaternion(),
+            angle2:new THREE.Quaternion(),
+            currentTransverseArea:0,
+            currentTransverseStrainSum:0
+
+		},
+		{ 
+            id: 'e8', source: 0, target: 4 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0,
+            currentRestLength:0,
+            axis:Z_AXIS,
+            pos2: new THREE.Vector3(0,0,0),
+            angle1v: new THREE.Vector3(0,0,0),
+            angle2v: new THREE.Vector3(0,0,0),
+            angle1:new THREE.Quaternion(),
+            angle2:new THREE.Quaternion(),
+            currentTransverseArea:0,
+            currentTransverseStrainSum:0
+
+		},
+		{ 
+            id: 'e9', source: 1, target: 5 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0,
+            currentRestLength:0,
+            axis:Z_AXIS,
+            pos2: new THREE.Vector3(0,0,0),
+            angle1v: new THREE.Vector3(0,0,0),
+            angle2v: new THREE.Vector3(0,0,0),
+            angle1:new THREE.Quaternion(),
+            angle2:new THREE.Quaternion(),
+            currentTransverseArea:0,
+            currentTransverseStrainSum:0
+
+		},
+		{ 
+            id: 'e10', source: 3, target: 7 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0,
+            currentRestLength:0,
+            axis:Z_AXIS,
+            pos2: new THREE.Vector3(0,0,0),
+            angle1v: new THREE.Vector3(0,0,0),
+            angle2v: new THREE.Vector3(0,0,0),
+            angle1:new THREE.Quaternion(),
+            angle2:new THREE.Quaternion(),
+            currentTransverseArea:0,
+            currentTransverseStrainSum:0
+
+		},
+		{ 
+            id: 'e11', source: 2, target: 6 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0,
+            currentRestLength:0,
+            axis:Z_AXIS,
+            pos2: new THREE.Vector3(0,0,0),
+            angle1v: new THREE.Vector3(0,0,0),
+            angle2v: new THREE.Vector3(0,0,0),
+            angle1:new THREE.Quaternion(),
+            angle2:new THREE.Quaternion(),
+            currentTransverseArea:0,
+            currentTransverseStrainSum:0
+
+		},
+		{ 
+            id: 'e12', source: 7, target: 8 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0,
+            currentRestLength:0,
+            axis:Y_AXIS,
+            pos2: new THREE.Vector3(0,0,0),
+            angle1v: new THREE.Vector3(0,0,0),
+            angle2v: new THREE.Vector3(0,0,0),
+            angle1:new THREE.Quaternion(),
+            angle2:new THREE.Quaternion(),
+            currentTransverseArea:0,
+            currentTransverseStrainSum:0
+
+		},
+		{ 
+            id: 'e13', source: 5, target: 9 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0,
+            currentRestLength:0,
+            axis:Y_AXIS,
+            pos2: new THREE.Vector3(0,0,0),
+            angle1v: new THREE.Vector3(0,0,0),
+            angle2v: new THREE.Vector3(0,0,0),
+            angle1:new THREE.Quaternion(),
+            angle2:new THREE.Quaternion(),
+            currentTransverseArea:0,
+            currentTransverseStrainSum:0
+
+		},
+		{ 
+            id: 'e14', source: 9, target: 8 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0,
+            currentRestLength:0,
+            axis:X_AXIS,
+            pos2: new THREE.Vector3(0,0,0),
+            angle1v: new THREE.Vector3(0,0,0),
+            angle2v: new THREE.Vector3(0,0,0),
+            angle1:new THREE.Quaternion(),
+            angle2:new THREE.Quaternion(),
+            currentTransverseArea:0,
+            currentTransverseStrainSum:0
+
+		},
+		{ 
+            id: 'e15', source: 3, target: 10 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0,
+            currentRestLength:0,
+            axis:Y_AXIS,
+            pos2: new THREE.Vector3(0,0,0),
+            angle1v: new THREE.Vector3(0,0,0),
+            angle2v: new THREE.Vector3(0,0,0),
+            angle1:new THREE.Quaternion(),
+            angle2:new THREE.Quaternion(),
+            currentTransverseArea:0,
+            currentTransverseStrainSum:0
+
+		},
+		{ 
+            id: 'e16', source: 10, target: 8 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0,
+            currentRestLength:0,
+            axis:Z_AXIS,
+            pos2: new THREE.Vector3(0,0,0),
+            angle1v: new THREE.Vector3(0,0,0),
+            angle2v: new THREE.Vector3(0,0,0),
+            angle1:new THREE.Quaternion(),
+            angle2:new THREE.Quaternion(),
+            currentTransverseArea:0,
+            currentTransverseStrainSum:0
+
+		},
+		{ 
+            id: 'e17', source: 1, target: 11 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0,
+            currentRestLength:0,
+            axis:Y_AXIS,
+            pos2: new THREE.Vector3(0,0,0),
+            angle1v: new THREE.Vector3(0,0,0),
+            angle2v: new THREE.Vector3(0,0,0),
+            angle1:new THREE.Quaternion(),
+            angle2:new THREE.Quaternion(),
+            currentTransverseArea:0,
+            currentTransverseStrainSum:0
+
+		},
+		{ 
+            id: 'e18', source: 11, target: 10 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0,
+            currentRestLength:0,
+            axis:X_AXIS,
+            pos2: new THREE.Vector3(0,0,0),
+            angle1v: new THREE.Vector3(0,0,0),
+            angle2v: new THREE.Vector3(0,0,0),
+            angle1:new THREE.Quaternion(),
+            angle2:new THREE.Quaternion(),
+            currentTransverseArea:0,
+            currentTransverseStrainSum:0
+
+		},
+		{ 
+            id: 'e19', source: 11, target: 9 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0,
+            currentRestLength:0,
+            axis:Z_AXIS,
+            pos2: new THREE.Vector3(0,0,0),
+            angle1v: new THREE.Vector3(0,0,0),
+            angle2v: new THREE.Vector3(0,0,0),
+            angle1:new THREE.Quaternion(),
+            angle2:new THREE.Quaternion(),
+            currentTransverseArea:0,
+            currentTransverseStrainSum:0
+
+        },
+        
+	],
+
+	//material properties - AISI 1095 Carbon Steel (Spring Steel)
+	ndofs   : 3*6,
+
+	animation :  {
+	
+		showDisplacement : true,
+		exageration : 10,
+		speed:3.0
+		
+	},
+
+	viz :  {
+	
+		
+		minStress:-500,
+		maxStress: 500,
+		colorMaps:[YlGnBu, winter, coolwarm,jet],
+		colorMap:0,
+		
+	},
+
+	bar:false
+	
+};
\ No newline at end of file
diff --git a/01_Code/physical_computing_interface/simulation/json/setup.json b/01_Code/physical_computing_interface/simulation/json/setup.json
new file mode 100644
index 0000000000000000000000000000000000000000..64efd9124617d5b481f6ab6b83178c1d7d4dfe4f
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/json/setup.json
@@ -0,0 +1,26062 @@
+{
+  "setup": {
+    "nodes": [
+      {
+        "id": "n0",
+        "parent": "11",
+        "degrees_of_freedom": [
+          0,
+          1,
+          2,
+          3,
+          4,
+          5
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 5,
+          "y": -5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n1",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6,
+          7,
+          8,
+          9,
+          10,
+          11
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 0,
+          "y": -5,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n2",
+        "parent": "11",
+        "degrees_of_freedom": [
+          12,
+          13,
+          14,
+          15,
+          16,
+          17
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -5,
+          "y": -5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n3",
+        "parent": "11",
+        "degrees_of_freedom": [
+          18,
+          19,
+          20,
+          21,
+          22,
+          23
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 0,
+          "y": -5,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n4",
+        "parent": "11",
+        "degrees_of_freedom": [
+          24,
+          25,
+          26,
+          27,
+          28,
+          29
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00002622864138933497,
+          "y": -0.00018152241119498953,
+          "z": -0.000036502713359746806
+        },
+        "angle": {
+          "x": -0.0000019768800606990103,
+          "y": -1.7481234021478985e-7,
+          "z": 6.762494668535576e-7
+        }
+      },
+      {
+        "id": "n5",
+        "parent": "11",
+        "degrees_of_freedom": [
+          30,
+          31,
+          32,
+          33,
+          34,
+          35
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 0,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000010664913408883408,
+          "y": -0.00009241210451338415,
+          "z": -0.00004622535585178834
+        },
+        "angle": {
+          "x": -0.00000572369962540217,
+          "y": -5.219334338239175e-7,
+          "z": 0.0000021468004208940566
+        }
+      },
+      {
+        "id": "n6",
+        "parent": "11",
+        "degrees_of_freedom": [
+          36,
+          37,
+          38,
+          39,
+          40,
+          41
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 0,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000010415579947638816,
+          "y": -0.00008226901165040695,
+          "z": -0.000007979642588036861
+        },
+        "angle": {
+          "x": -0.0000026790130975322866,
+          "y": -5.6446188054045654e-8,
+          "z": 0.0000018599825904017288
+        }
+      },
+      {
+        "id": "n7",
+        "parent": "11",
+        "degrees_of_freedom": [
+          42,
+          43,
+          44,
+          45,
+          46,
+          47
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000059445832525564164,
+          "y": -0.00019856789825485767,
+          "z": -0.00004647750477051891
+        },
+        "angle": {
+          "x": -0.0000027839207617081436,
+          "y": -3.601023288326688e-8,
+          "z": 0.000001021847627569177
+        }
+      },
+      {
+        "id": "n8",
+        "parent": "11",
+        "degrees_of_freedom": [
+          48,
+          49,
+          50,
+          51,
+          52,
+          53
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 5,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00005378207806999956,
+          "y": -0.00019661901533700712,
+          "z": -0.00004927630353978256
+        },
+        "angle": {
+          "x": -0.0000022646877012549364,
+          "y": -0.0000011598684419124896,
+          "z": 0.0000018845450876241937
+        }
+      },
+      {
+        "id": "n9",
+        "parent": "11",
+        "degrees_of_freedom": [
+          54,
+          55,
+          56,
+          57,
+          58,
+          59
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 5,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000047625804339374116,
+          "y": -0.00018333641312291013,
+          "z": -0.00002152478119261483
+        },
+        "angle": {
+          "x": -0.0000013490505980199579,
+          "y": -4.998564457158674e-7,
+          "z": 0.0000013216244407872563
+        }
+      },
+      {
+        "id": "n10",
+        "parent": "11",
+        "degrees_of_freedom": [
+          60,
+          61,
+          62,
+          63,
+          64,
+          65
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 0,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007540391387844241,
+          "y": -0.00012068520685074323,
+          "z": -0.00006276763116544908
+        },
+        "angle": {
+          "x": -0.000008300537310666148,
+          "y": -0.000003068623712275053,
+          "z": 0.00000555867424068448
+        }
+      },
+      {
+        "id": "n11",
+        "parent": "11",
+        "degrees_of_freedom": [
+          66,
+          67,
+          68,
+          69,
+          70,
+          71
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 0,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006411140617328967,
+          "y": -0.00009601806195762757,
+          "z": -0.000009330397719579237
+        },
+        "angle": {
+          "x": -0.0000034075054153921752,
+          "y": 4.738116250052522e-7,
+          "z": 0.000003859545798817398
+        }
+      },
+      {
+        "id": "n12",
+        "parent": "11",
+        "degrees_of_freedom": [
+          72,
+          73,
+          74,
+          75,
+          76,
+          77
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 5,
+          "y": -5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n13",
+        "parent": "11",
+        "degrees_of_freedom": [
+          78,
+          79,
+          80,
+          81,
+          82,
+          83
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -5,
+          "y": -5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n14",
+        "parent": "11",
+        "degrees_of_freedom": [
+          84,
+          85,
+          86,
+          87,
+          88,
+          89
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 0,
+          "y": -5,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n15",
+        "parent": "11",
+        "degrees_of_freedom": [
+          90,
+          91,
+          92,
+          93,
+          94,
+          95
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000024717429382643215,
+          "y": -0.00017522638850120853,
+          "z": -3.853412368911661e-19
+        },
+        "angle": {
+          "x": -8.287074949742442e-20,
+          "y": 1.1227513757904977e-20,
+          "z": 5.393933833152322e-7
+        }
+      },
+      {
+        "id": "n16",
+        "parent": "11",
+        "degrees_of_freedom": [
+          96,
+          97,
+          98,
+          99,
+          100,
+          101
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 0,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000010415579947638694,
+          "y": -0.0000822690116504067,
+          "z": 0.000007979642588036653
+        },
+        "angle": {
+          "x": 0.000002679013097532179,
+          "y": 5.644618805405049e-8,
+          "z": 0.0000018599825904017314
+        }
+      },
+      {
+        "id": "n17",
+        "parent": "11",
+        "degrees_of_freedom": [
+          102,
+          103,
+          104,
+          105,
+          106,
+          107
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00005012652726496924,
+          "y": -0.0001861618734880066,
+          "z": -1.831029932104046e-19
+        },
+        "angle": {
+          "x": -9.443586347793757e-20,
+          "y": 6.266117161604259e-20,
+          "z": 0.0000011293467807969843
+        }
+      },
+      {
+        "id": "n18",
+        "parent": "11",
+        "degrees_of_freedom": [
+          108,
+          109,
+          110,
+          111,
+          112,
+          113
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 5,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000047625804339373906,
+          "y": -0.00018333641312290972,
+          "z": 0.000021524781192614132
+        },
+        "angle": {
+          "x": 0.0000013490505980198643,
+          "y": 4.998564457158943e-7,
+          "z": 0.0000013216244407872357
+        }
+      },
+      {
+        "id": "n19",
+        "parent": "11",
+        "degrees_of_freedom": [
+          114,
+          115,
+          116,
+          117,
+          118,
+          119
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 0,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006411140617328946,
+          "y": -0.00009601806195762729,
+          "z": 0.000009330397719579203
+        },
+        "angle": {
+          "x": 0.0000034075054153920927,
+          "y": -4.7381162500522084e-7,
+          "z": 0.000003859545798817379
+        }
+      },
+      {
+        "id": "n20",
+        "parent": "11",
+        "degrees_of_freedom": [
+          120,
+          121,
+          122,
+          123,
+          124,
+          125
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 5,
+          "y": -5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n21",
+        "parent": "11",
+        "degrees_of_freedom": [
+          126,
+          127,
+          128,
+          129,
+          130,
+          131
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -5,
+          "y": -5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n22",
+        "parent": "11",
+        "degrees_of_freedom": [
+          132,
+          133,
+          134,
+          135,
+          136,
+          137
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 0,
+          "y": -5,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n23",
+        "parent": "11",
+        "degrees_of_freedom": [
+          138,
+          139,
+          140,
+          141,
+          142,
+          143
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000026228641389334866,
+          "y": -0.0001815224111949885,
+          "z": 0.00003650271335974602
+        },
+        "angle": {
+          "x": 0.0000019768800606988494,
+          "y": 1.7481234021478752e-7,
+          "z": 6.762494668535684e-7
+        }
+      },
+      {
+        "id": "n24",
+        "parent": "11",
+        "degrees_of_freedom": [
+          144,
+          145,
+          146,
+          147,
+          148,
+          149
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 0,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000010664913408883426,
+          "y": -0.00009241210451338346,
+          "z": 0.00004622535585178787
+        },
+        "angle": {
+          "x": 0.000005723699625402066,
+          "y": 5.219334338239073e-7,
+          "z": 0.000002146800420894044
+        }
+      },
+      {
+        "id": "n25",
+        "parent": "11",
+        "degrees_of_freedom": [
+          150,
+          151,
+          152,
+          153,
+          154,
+          155
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000059445832525563805,
+          "y": -0.00019856789825485624,
+          "z": 0.00004647750477051813
+        },
+        "angle": {
+          "x": 0.000002783920761707973,
+          "y": 3.601023288328971e-8,
+          "z": 0.0000010218476275691547
+        }
+      },
+      {
+        "id": "n26",
+        "parent": "11",
+        "degrees_of_freedom": [
+          156,
+          157,
+          158,
+          159,
+          160,
+          161
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 5,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000053782078069999177,
+          "y": -0.0001966190153370055,
+          "z": 0.000049276303539781696
+        },
+        "angle": {
+          "x": 0.000002264687701254841,
+          "y": 0.0000011598684419124939,
+          "z": 0.00000188454508762419
+        }
+      },
+      {
+        "id": "n27",
+        "parent": "11",
+        "degrees_of_freedom": [
+          162,
+          163,
+          164,
+          165,
+          166,
+          167
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 0,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007540391387844183,
+          "y": -0.0001206852068507422,
+          "z": 0.00006276763116544852
+        },
+        "angle": {
+          "x": 0.000008300537310666022,
+          "y": 0.0000030686237122750453,
+          "z": 0.000005558674240684432
+        }
+      },
+      {
+        "id": "n28",
+        "parent": "11",
+        "degrees_of_freedom": [
+          168,
+          169,
+          170,
+          171,
+          172,
+          173
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 15,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003160768617078865,
+          "y": -0.00038421021479772026,
+          "z": -0.000044650091188757176
+        },
+        "angle": {
+          "x": 2.9443272562560155e-7,
+          "y": -2.293998372558639e-7,
+          "z": -1.76532386124594e-7
+        }
+      },
+      {
+        "id": "n29",
+        "parent": "11",
+        "degrees_of_freedom": [
+          174,
+          175,
+          176,
+          177,
+          178,
+          179
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 10,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003161301358759842,
+          "y": -0.0002855993148795416,
+          "z": -0.00007640073085744396
+        },
+        "angle": {
+          "x": -8.587648290117704e-7,
+          "y": -9.238629242562497e-7,
+          "z": 5.321007889075065e-7
+        }
+      },
+      {
+        "id": "n30",
+        "parent": "11",
+        "degrees_of_freedom": [
+          180,
+          181,
+          182,
+          183,
+          184,
+          185
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 10,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000028408313026056454,
+          "y": -0.0002807120780898382,
+          "z": -0.000022341034517885825
+        },
+        "angle": {
+          "x": -4.7604157145661206e-7,
+          "y": -1.7159196943215916e-7,
+          "z": 4.3131274078675475e-7
+        }
+      },
+      {
+        "id": "n31",
+        "parent": "11",
+        "degrees_of_freedom": [
+          186,
+          187,
+          188,
+          189,
+          190,
+          191
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 15,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006892749860208825,
+          "y": -0.00038845819073154265,
+          "z": -0.00005534293558019206
+        },
+        "angle": {
+          "x": 4.019565988634059e-7,
+          "y": -9.221794983364167e-7,
+          "z": 1.961296444558978e-7
+        }
+      },
+      {
+        "id": "n32",
+        "parent": "11",
+        "degrees_of_freedom": [
+          192,
+          193,
+          194,
+          195,
+          196,
+          197
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 15,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006345795733542635,
+          "y": -0.0003851431827692085,
+          "z": -0.00005786582165786531
+        },
+        "angle": {
+          "x": -1.4018277806238246e-7,
+          "y": -7.468865793878647e-7,
+          "z": 1.8763856807610548e-7
+        }
+      },
+      {
+        "id": "n33",
+        "parent": "11",
+        "degrees_of_freedom": [
+          198,
+          199,
+          200,
+          201,
+          202,
+          203
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 15,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000058538084593703605,
+          "y": -0.00038732628647417344,
+          "z": -0.000025729529284394498
+        },
+        "angle": {
+          "x": 5.661066533530062e-7,
+          "y": -5.892213344640755e-7,
+          "z": 3.2380617736840813e-7
+        }
+      },
+      {
+        "id": "n34",
+        "parent": "11",
+        "degrees_of_freedom": [
+          204,
+          205,
+          206,
+          207,
+          208,
+          209
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 10,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00010762648421880148,
+          "y": -0.000296512796866764,
+          "z": -0.00009229247105260852
+        },
+        "angle": {
+          "x": -8.841255398076375e-7,
+          "y": -0.000002786193548639812,
+          "z": 6.741295688837753e-7
+        }
+      },
+      {
+        "id": "n35",
+        "parent": "11",
+        "degrees_of_freedom": [
+          210,
+          211,
+          212,
+          213,
+          214,
+          215
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 10,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00010109469337712761,
+          "y": -0.00028978280205341455,
+          "z": -0.000027935201630708098
+        },
+        "angle": {
+          "x": -6.063842950789149e-7,
+          "y": 4.619298488842624e-7,
+          "z": 6.658395649784975e-7
+        }
+      },
+      {
+        "id": "n36",
+        "parent": "11",
+        "degrees_of_freedom": [
+          216,
+          217,
+          218,
+          219,
+          220,
+          221
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 15,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000030317284714468223,
+          "y": -0.0003875285978614561,
+          "z": -1.194919092354525e-18
+        },
+        "angle": {
+          "x": -1.7828385889214382e-19,
+          "y": 2.075791753951441e-20,
+          "z": -1.4608835976100064e-7
+        }
+      },
+      {
+        "id": "n37",
+        "parent": "11",
+        "degrees_of_freedom": [
+          222,
+          223,
+          224,
+          225,
+          226,
+          227
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 10,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000028408313026056474,
+          "y": -0.0002807120780898376,
+          "z": 0.000022341034517884348
+        },
+        "angle": {
+          "x": 4.760415714563734e-7,
+          "y": 1.7159196943216774e-7,
+          "z": 4.3131274078675364e-7
+        }
+      },
+      {
+        "id": "n38",
+        "parent": "11",
+        "degrees_of_freedom": [
+          228,
+          229,
+          230,
+          231,
+          232,
+          233
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 15,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006012053274386848,
+          "y": -0.00039249739135155767,
+          "z": -1.0619821183202947e-18
+        },
+        "angle": {
+          "x": -2.083459690311549e-19,
+          "y": 7.513815153278436e-20,
+          "z": 2.4751216021238443e-7
+        }
+      },
+      {
+        "id": "n39",
+        "parent": "11",
+        "degrees_of_freedom": [
+          234,
+          235,
+          236,
+          237,
+          238,
+          239
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 15,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000058538084593703205,
+          "y": -0.0003873262864741718,
+          "z": 0.00002572952928439205
+        },
+        "angle": {
+          "x": -5.661066533531945e-7,
+          "y": 5.892213344641025e-7,
+          "z": 3.238061773684067e-7
+        }
+      },
+      {
+        "id": "n40",
+        "parent": "11",
+        "degrees_of_freedom": [
+          240,
+          241,
+          242,
+          243,
+          244,
+          245
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 10,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00010109469337712688,
+          "y": -0.00028978280205341336,
+          "z": 0.000027935201630706898
+        },
+        "angle": {
+          "x": 6.063842950786683e-7,
+          "y": -4.6192984888421117e-7,
+          "z": 6.658395649785294e-7
+        }
+      },
+      {
+        "id": "n41",
+        "parent": "11",
+        "degrees_of_freedom": [
+          246,
+          247,
+          248,
+          249,
+          250,
+          251
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 15,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003160768617078852,
+          "y": -0.0003842102147977177,
+          "z": 0.00004465009118875448
+        },
+        "angle": {
+          "x": -2.9443272562591257e-7,
+          "y": 2.2939983725586816e-7,
+          "z": -1.765323861246122e-7
+        }
+      },
+      {
+        "id": "n42",
+        "parent": "11",
+        "degrees_of_freedom": [
+          252,
+          253,
+          254,
+          255,
+          256,
+          257
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 10,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003161301358759837,
+          "y": -0.00028559931487953904,
+          "z": 0.00007640073085744211
+        },
+        "angle": {
+          "x": 8.587648290115321e-7,
+          "y": 9.238629242562462e-7,
+          "z": 5.321007889074905e-7
+        }
+      },
+      {
+        "id": "n43",
+        "parent": "11",
+        "degrees_of_freedom": [
+          258,
+          259,
+          260,
+          261,
+          262,
+          263
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 15,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006892749860208768,
+          "y": -0.0003884581907315404,
+          "z": 0.0000553429355801896
+        },
+        "angle": {
+          "x": -4.0195659886368765e-7,
+          "y": 9.221794983364658e-7,
+          "z": 1.961296444559091e-7
+        }
+      },
+      {
+        "id": "n44",
+        "parent": "11",
+        "degrees_of_freedom": [
+          264,
+          265,
+          266,
+          267,
+          268,
+          269
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 15,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006345795733542579,
+          "y": -0.0003851431827692051,
+          "z": 0.00005786582165786268
+        },
+        "angle": {
+          "x": 1.401827780621872e-7,
+          "y": 7.468865793879056e-7,
+          "z": 1.8763856807612788e-7
+        }
+      },
+      {
+        "id": "n45",
+        "parent": "11",
+        "degrees_of_freedom": [
+          270,
+          271,
+          272,
+          273,
+          274,
+          275
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 10,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00010762648421880038,
+          "y": -0.0002965127968667615,
+          "z": 0.00009229247105260663
+        },
+        "angle": {
+          "x": 8.841255398074132e-7,
+          "y": 0.000002786193548639784,
+          "z": 6.741295688836934e-7
+        }
+      },
+      {
+        "id": "n46",
+        "parent": "11",
+        "degrees_of_freedom": [
+          276,
+          277,
+          278,
+          279,
+          280,
+          281
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 25,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000026405098020731667,
+          "y": -0.0005931493327102243,
+          "z": -0.000027709128814633563
+        },
+        "angle": {
+          "x": 0.0000024673344647704618,
+          "y": -5.999429791782009e-7,
+          "z": 5.048200775847035e-7
+        }
+      },
+      {
+        "id": "n47",
+        "parent": "11",
+        "degrees_of_freedom": [
+          282,
+          283,
+          284,
+          285,
+          286,
+          287
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 20,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00002740240428211587,
+          "y": -0.0004820596370546303,
+          "z": -0.00007585217201456155
+        },
+        "angle": {
+          "x": 0.0000017227333381704394,
+          "y": -0.000001130804891854178,
+          "z": -2.2252296271655502e-7
+        }
+      },
+      {
+        "id": "n48",
+        "parent": "11",
+        "degrees_of_freedom": [
+          288,
+          289,
+          290,
+          291,
+          292,
+          293
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 20,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000025535958326455337,
+          "y": -0.000490848017066856,
+          "z": -0.000017616299692986213
+        },
+        "angle": {
+          "x": 0.000001021940880091436,
+          "y": -1.6383332858675318e-7,
+          "z": -2.204093323274601e-7
+        }
+      },
+      {
+        "id": "n49",
+        "parent": "11",
+        "degrees_of_freedom": [
+          294,
+          295,
+          296,
+          297,
+          298,
+          299
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 25,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00005208971150769329,
+          "y": -0.0005903548977356445,
+          "z": -0.000037209253327273345
+        },
+        "angle": {
+          "x": 0.0000041435060670169986,
+          "y": -0.000002073939313508303,
+          "z": -0.000004549619498392542
+        }
+      },
+      {
+        "id": "n50",
+        "parent": "11",
+        "degrees_of_freedom": [
+          300,
+          301,
+          302,
+          303,
+          304,
+          305
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 25,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00005113513655497014,
+          "y": -0.0005794589123228938,
+          "z": -0.000030945392960982035
+        },
+        "angle": {
+          "x": 0.000011069653781772074,
+          "y": -6.028261131402947e-8,
+          "z": -9.422709454847621e-7
+        }
+      },
+      {
+        "id": "n51",
+        "parent": "11",
+        "degrees_of_freedom": [
+          306,
+          307,
+          308,
+          309,
+          310,
+          311
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 25,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000048105683213181485,
+          "y": -0.0005958373815721199,
+          "z": -0.000017253755035667718
+        },
+        "angle": {
+          "x": -3.656830818070209e-7,
+          "y": -3.05360456932557e-7,
+          "z": -8.754255138801362e-8
+        }
+      },
+      {
+        "id": "n52",
+        "parent": "11",
+        "degrees_of_freedom": [
+          312,
+          313,
+          314,
+          315,
+          316,
+          317
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 20,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000108168090970198,
+          "y": -0.00047901916813383326,
+          "z": -0.00009177257356267015
+        },
+        "angle": {
+          "x": 0.0000023095703953609793,
+          "y": -0.0000032458917860641926,
+          "z": -7.731334344398806e-7
+        }
+      },
+      {
+        "id": "n53",
+        "parent": "11",
+        "degrees_of_freedom": [
+          318,
+          319,
+          320,
+          321,
+          322,
+          323
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 20,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001043177048887908,
+          "y": -0.0004915846699266274,
+          "z": -0.00002261287974413449
+        },
+        "angle": {
+          "x": 9.954939324093213e-7,
+          "y": 6.077758991967776e-7,
+          "z": -3.1246012986313475e-7
+        }
+      },
+      {
+        "id": "n54",
+        "parent": "11",
+        "degrees_of_freedom": [
+          324,
+          325,
+          326,
+          327,
+          328,
+          329
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 25,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00002543991581872975,
+          "y": -0.0005881537225982241,
+          "z": -2.7558674017484822e-18
+        },
+        "angle": {
+          "x": -3.699916165174321e-19,
+          "y": 1.6846287173131103e-20,
+          "z": 5.812481567599484e-7
+        }
+      },
+      {
+        "id": "n55",
+        "parent": "11",
+        "degrees_of_freedom": [
+          330,
+          331,
+          332,
+          333,
+          334,
+          335
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 20,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00002553595832645503,
+          "y": -0.0004908480170668536,
+          "z": 0.000017616299692982523
+        },
+        "angle": {
+          "x": -0.000001021940880091788,
+          "y": 1.6383332858677586e-7,
+          "z": -2.2040933232744966e-7
+        }
+      },
+      {
+        "id": "n56",
+        "parent": "11",
+        "degrees_of_freedom": [
+          336,
+          337,
+          338,
+          339,
+          340,
+          341
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 25,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000043620878852821605,
+          "y": -0.0005877899587063024,
+          "z": -2.574081631139398e-18
+        },
+        "angle": {
+          "x": -3.243465598104418e-19,
+          "y": 3.0975083704044344e-20,
+          "z": -0.000004934135523425825
+        }
+      },
+      {
+        "id": "n57",
+        "parent": "11",
+        "degrees_of_freedom": [
+          342,
+          343,
+          344,
+          345,
+          346,
+          347
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 25,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000048105683213181235,
+          "y": -0.0005958373815721175,
+          "z": 0.00001725375503566255
+        },
+        "angle": {
+          "x": 3.6568308180673576e-7,
+          "y": 3.0536045693259046e-7,
+          "z": -8.754255138798024e-8
+        }
+      },
+      {
+        "id": "n58",
+        "parent": "11",
+        "degrees_of_freedom": [
+          348,
+          349,
+          350,
+          351,
+          352,
+          353
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 20,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00010431770488879024,
+          "y": -0.0004915846699266254,
+          "z": 0.000022612879744131052
+        },
+        "angle": {
+          "x": -9.954939324096824e-7,
+          "y": -6.077758991967072e-7,
+          "z": -3.12460129863148e-7
+        }
+      },
+      {
+        "id": "n59",
+        "parent": "11",
+        "degrees_of_freedom": [
+          354,
+          355,
+          356,
+          357,
+          358,
+          359
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 25,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000026405098020731504,
+          "y": -0.0005931493327102205,
+          "z": 0.000027709128814628613
+        },
+        "angle": {
+          "x": -0.000002467334464770669,
+          "y": 5.999429791782108e-7,
+          "z": 5.048200775847721e-7
+        }
+      },
+      {
+        "id": "n60",
+        "parent": "11",
+        "degrees_of_freedom": [
+          360,
+          361,
+          362,
+          363,
+          364,
+          365
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 20,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000027402404282115712,
+          "y": -0.0004820596370546261,
+          "z": 0.00007585217201455743
+        },
+        "angle": {
+          "x": -0.0000017227333381706965,
+          "y": 0.0000011308048918541725,
+          "z": -2.2252296271656294e-7
+        }
+      },
+      {
+        "id": "n61",
+        "parent": "11",
+        "degrees_of_freedom": [
+          366,
+          367,
+          368,
+          369,
+          370,
+          371
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 25,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00005208971150769275,
+          "y": -0.0005903548977356411,
+          "z": 0.000037209253327268534
+        },
+        "angle": {
+          "x": -0.000004143506067017332,
+          "y": 0.0000020739393135083857,
+          "z": -0.0000045496194983924395
+        }
+      },
+      {
+        "id": "n62",
+        "parent": "11",
+        "degrees_of_freedom": [
+          372,
+          373,
+          374,
+          375,
+          376,
+          377
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 25,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000051135136554969566,
+          "y": -0.0005794589123228891,
+          "z": 0.000030945392960977095
+        },
+        "angle": {
+          "x": -0.000011069653781772267,
+          "y": 6.02826113140686e-8,
+          "z": -9.422709454847609e-7
+        }
+      },
+      {
+        "id": "n63",
+        "parent": "11",
+        "degrees_of_freedom": [
+          378,
+          379,
+          380,
+          381,
+          382,
+          383
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 20,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00010816809097019691,
+          "y": -0.0004790191681338291,
+          "z": 0.0000917725735626664
+        },
+        "angle": {
+          "x": -0.0000023095703953612445,
+          "y": 0.0000032458917860642375,
+          "z": -7.731334344399108e-7
+        }
+      },
+      {
+        "id": "n64",
+        "parent": "11",
+        "degrees_of_freedom": [
+          384,
+          385,
+          386,
+          387,
+          388,
+          389
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 15,
+          "y": -5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n65",
+        "parent": "11",
+        "degrees_of_freedom": [
+          390,
+          391,
+          392,
+          393,
+          394,
+          395
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 10,
+          "y": -5,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n66",
+        "parent": "11",
+        "degrees_of_freedom": [
+          396,
+          397,
+          398,
+          399,
+          400,
+          401
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 10,
+          "y": -5,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n67",
+        "parent": "11",
+        "degrees_of_freedom": [
+          402,
+          403,
+          404,
+          405,
+          406,
+          407
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000026228641392648245,
+          "y": -0.00018152241119447863,
+          "z": -0.00003650271336470909
+        },
+        "angle": {
+          "x": -0.0000019768800599221883,
+          "y": 1.748123359346037e-7,
+          "z": -6.762494670897101e-7
+        }
+      },
+      {
+        "id": "n68",
+        "parent": "11",
+        "degrees_of_freedom": [
+          408,
+          409,
+          410,
+          411,
+          412,
+          413
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 0,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000010664913418784987,
+          "y": -0.00009241210451487291,
+          "z": -0.000046225355854331
+        },
+        "angle": {
+          "x": -0.000005723699626264722,
+          "y": 5.21933433849803e-7,
+          "z": -0.000002146800421902141
+        }
+      },
+      {
+        "id": "n69",
+        "parent": "11",
+        "degrees_of_freedom": [
+          414,
+          415,
+          416,
+          417,
+          418,
+          419
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 0,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000010415579939559989,
+          "y": -0.00008226901165096286,
+          "z": -0.00000797964258976351
+        },
+        "angle": {
+          "x": -0.0000026790130977719537,
+          "y": 5.644618780749575e-8,
+          "z": -0.0000018599825896138035
+        }
+      },
+      {
+        "id": "n70",
+        "parent": "11",
+        "degrees_of_freedom": [
+          420,
+          421,
+          422,
+          423,
+          424,
+          425
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 5,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 1.3865310070578829e-14,
+          "y": -0.00018193038371290828,
+          "z": -0.000039690145134755384
+        },
+        "angle": {
+          "x": -0.0000021862065854465846,
+          "y": 5.620235320330761e-16,
+          "z": -4.532483204300491e-16
+        }
+      },
+      {
+        "id": "n71",
+        "parent": "11",
+        "degrees_of_freedom": [
+          426,
+          427,
+          428,
+          429,
+          430,
+          431
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 5,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -9.146846399893487e-15,
+          "y": -0.0001745430109100038,
+          "z": -0.000018338419031203287
+        },
+        "angle": {
+          "x": -0.0000010183576346988434,
+          "y": 5.442796898523196e-16,
+          "z": 8.934549440530761e-17
+        }
+      },
+      {
+        "id": "n72",
+        "parent": "11",
+        "degrees_of_freedom": [
+          432,
+          433,
+          434,
+          435,
+          436,
+          437
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 15,
+          "y": -5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n73",
+        "parent": "11",
+        "degrees_of_freedom": [
+          438,
+          439,
+          440,
+          441,
+          442,
+          443
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 10,
+          "y": -5,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n74",
+        "parent": "11",
+        "degrees_of_freedom": [
+          444,
+          445,
+          446,
+          447,
+          448,
+          449
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000024717429366741733,
+          "y": -0.0001752263885062386,
+          "z": -3.2445890372668854e-19
+        },
+        "angle": {
+          "x": -9.941394774839273e-20,
+          "y": -2.2050403508485116e-20,
+          "z": -5.393933824513366e-7
+        }
+      },
+      {
+        "id": "n75",
+        "parent": "11",
+        "degrees_of_freedom": [
+          450,
+          451,
+          452,
+          453,
+          454,
+          455
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 0,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000010415579939559846,
+          "y": -0.00008226901165096248,
+          "z": 0.000007979642589763355
+        },
+        "angle": {
+          "x": 0.0000026790130977718576,
+          "y": -5.644618780751206e-8,
+          "z": -0.0000018599825896137957
+        }
+      },
+      {
+        "id": "n76",
+        "parent": "11",
+        "degrees_of_freedom": [
+          456,
+          457,
+          458,
+          459,
+          460,
+          461
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 5,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -9.146868016137978e-15,
+          "y": -0.00017454301091000284,
+          "z": 0.00001833841903120248
+        },
+        "angle": {
+          "x": 0.0000010183576346987417,
+          "y": -5.442910403146435e-16,
+          "z": 8.936909668004068e-17
+        }
+      },
+      {
+        "id": "n77",
+        "parent": "11",
+        "degrees_of_freedom": [
+          462,
+          463,
+          464,
+          465,
+          466,
+          467
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 15,
+          "y": -5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n78",
+        "parent": "11",
+        "degrees_of_freedom": [
+          468,
+          469,
+          470,
+          471,
+          472,
+          473
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 10,
+          "y": -5,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n79",
+        "parent": "11",
+        "degrees_of_freedom": [
+          474,
+          475,
+          476,
+          477,
+          478,
+          479
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000026228641392647832,
+          "y": -0.00018152241119447752,
+          "z": 0.0000365027133647083
+        },
+        "angle": {
+          "x": 0.0000019768800599220465,
+          "y": -1.7481233593465926e-7,
+          "z": -6.762494670897014e-7
+        }
+      },
+      {
+        "id": "n80",
+        "parent": "11",
+        "degrees_of_freedom": [
+          480,
+          481,
+          482,
+          483,
+          484,
+          485
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 0,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000010664913418784801,
+          "y": -0.00009241210451487213,
+          "z": 0.000046225355854330546
+        },
+        "angle": {
+          "x": 0.0000057236996262646225,
+          "y": -5.219334338498097e-7,
+          "z": -0.0000021468004219020885
+        }
+      },
+      {
+        "id": "n81",
+        "parent": "11",
+        "degrees_of_freedom": [
+          486,
+          487,
+          488,
+          489,
+          490,
+          491
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 5,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 1.3865045924245275e-14,
+          "y": -0.00018193038371290687,
+          "z": 0.00003969014513475457
+        },
+        "angle": {
+          "x": 0.0000021862065854464774,
+          "y": -5.620114981167697e-16,
+          "z": -4.532399343459023e-16
+        }
+      },
+      {
+        "id": "n82",
+        "parent": "11",
+        "degrees_of_freedom": [
+          492,
+          493,
+          494,
+          495,
+          496,
+          497
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 15,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000031607686171082855,
+          "y": -0.00038421021479061586,
+          "z": -0.00004465009118692885
+        },
+        "angle": {
+          "x": 2.9443273476968776e-7,
+          "y": 2.2939982418207863e-7,
+          "z": 1.7653238669694965e-7
+        }
+      },
+      {
+        "id": "n83",
+        "parent": "11",
+        "degrees_of_freedom": [
+          498,
+          499,
+          500,
+          501,
+          502,
+          503
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 10,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003161301364191379,
+          "y": -0.00028559931485821837,
+          "z": -0.00007640073086263446
+        },
+        "angle": {
+          "x": -8.587648287860664e-7,
+          "y": 9.23862923146645e-7,
+          "z": -5.321007890563879e-7
+        }
+      },
+      {
+        "id": "n84",
+        "parent": "11",
+        "degrees_of_freedom": [
+          504,
+          505,
+          506,
+          507,
+          508,
+          509
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 10,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000028408312982396557,
+          "y": -0.0002807120781040109,
+          "z": -0.00002234103452478317
+        },
+        "angle": {
+          "x": -4.760415708928076e-7,
+          "y": 1.715919684411197e-7,
+          "z": -4.313127391205318e-7
+        }
+      },
+      {
+        "id": "n85",
+        "parent": "11",
+        "degrees_of_freedom": [
+          510,
+          511,
+          512,
+          513,
+          514,
+          515
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 15,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 3.255016297830612e-14,
+          "y": -0.00038493872549210073,
+          "z": -0.00004733548982648204
+        },
+        "angle": {
+          "x": -1.0342566701619179e-7,
+          "y": -1.822989349504809e-16,
+          "z": 1.7984461454393334e-15
+        }
+      },
+      {
+        "id": "n86",
+        "parent": "11",
+        "degrees_of_freedom": [
+          516,
+          517,
+          518,
+          519,
+          520,
+          521
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 15,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -2.968816801827531e-14,
+          "y": -0.0003866369923737763,
+          "z": -0.00002228626119342783
+        },
+        "angle": {
+          "x": 5.165062652975513e-7,
+          "y": -5.708909286840247e-17,
+          "z": -1.0322239859218117e-15
+        }
+      },
+      {
+        "id": "n87",
+        "parent": "11",
+        "degrees_of_freedom": [
+          522,
+          523,
+          524,
+          525,
+          526,
+          527
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 15,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000030317284651357665,
+          "y": -0.00038752859789879254,
+          "z": -1.1435733884629091e-18
+        },
+        "angle": {
+          "x": -2.753096115154352e-19,
+          "y": -4.8710194128888875e-20,
+          "z": 1.4608835965311038e-7
+        }
+      },
+      {
+        "id": "n88",
+        "parent": "11",
+        "degrees_of_freedom": [
+          528,
+          529,
+          530,
+          531,
+          532,
+          533
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 10,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000028408312982396527,
+          "y": -0.00028071207810400966,
+          "z": 0.000022341034524781774
+        },
+        "angle": {
+          "x": 4.760415708925626e-7,
+          "y": -1.7159196844115568e-7,
+          "z": -4.3131273912051177e-7
+        }
+      },
+      {
+        "id": "n89",
+        "parent": "11",
+        "degrees_of_freedom": [
+          534,
+          535,
+          536,
+          537,
+          538,
+          539
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 15,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -2.968829500940246e-14,
+          "y": -0.00038663699237377516,
+          "z": 0.00002228626119342523
+        },
+        "angle": {
+          "x": -5.165062652977329e-7,
+          "y": 5.707837635506336e-17,
+          "z": -1.0321844175584516e-15
+        }
+      },
+      {
+        "id": "n90",
+        "parent": "11",
+        "degrees_of_freedom": [
+          540,
+          541,
+          542,
+          543,
+          544,
+          545
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 15,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003160768617108225,
+          "y": -0.0003842102147906132,
+          "z": 0.00004465009118692614
+        },
+        "angle": {
+          "x": -2.9443273476985955e-7,
+          "y": -2.2939982418215052e-7,
+          "z": 1.765323866969835e-7
+        }
+      },
+      {
+        "id": "n91",
+        "parent": "11",
+        "degrees_of_freedom": [
+          546,
+          547,
+          548,
+          549,
+          550,
+          551
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 10,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003161301364191288,
+          "y": -0.00028559931485821593,
+          "z": 0.00007640073086263249
+        },
+        "angle": {
+          "x": 8.587648287858303e-7,
+          "y": -9.238629231466718e-7,
+          "z": -5.321007890563738e-7
+        }
+      },
+      {
+        "id": "n92",
+        "parent": "11",
+        "degrees_of_freedom": [
+          552,
+          553,
+          554,
+          555,
+          556,
+          557
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 15,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 3.254977062589042e-14,
+          "y": -0.00038493872549209753,
+          "z": 0.000047335489826479304
+        },
+        "angle": {
+          "x": 1.0342566701600252e-7,
+          "y": 1.8228758147608519e-16,
+          "z": 1.7984315371793024e-15
+        }
+      },
+      {
+        "id": "n93",
+        "parent": "11",
+        "degrees_of_freedom": [
+          558,
+          559,
+          560,
+          561,
+          562,
+          563
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 25,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000026405097980038503,
+          "y": -0.0005931493326894829,
+          "z": -0.000027709128760260146
+        },
+        "angle": {
+          "x": 0.000002467334482367695,
+          "y": 5.999429541723965e-7,
+          "z": -5.048200770190845e-7
+        }
+      },
+      {
+        "id": "n94",
+        "parent": "11",
+        "degrees_of_freedom": [
+          564,
+          565,
+          566,
+          567,
+          568,
+          569
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 20,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000027402404369942827,
+          "y": -0.00048205963697686255,
+          "z": -0.00007585217197516203
+        },
+        "angle": {
+          "x": 0.0000017227333487273865,
+          "y": 0.00000113080487749215,
+          "z": 2.225229670888826e-7
+        }
+      },
+      {
+        "id": "n95",
+        "parent": "11",
+        "degrees_of_freedom": [
+          570,
+          571,
+          572,
+          573,
+          574,
+          575
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 20,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000025535958223377268,
+          "y": -0.0004908480171067353,
+          "z": -0.000017616299675157945
+        },
+        "angle": {
+          "x": 0.0000010219408852435415,
+          "y": 1.6383332147626562e-7,
+          "z": 2.2040933468033704e-7
+        }
+      },
+      {
+        "id": "n96",
+        "parent": "11",
+        "degrees_of_freedom": [
+          576,
+          577,
+          578,
+          579,
+          580,
+          581
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 25,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 9.736456600040849e-15,
+          "y": -0.0005718424560634143,
+          "z": -0.000019931375832840092
+        },
+        "angle": {
+          "x": 0.00001178417105853316,
+          "y": -5.6878378315461154e-15,
+          "z": 6.739964749751976e-15
+        }
+      },
+      {
+        "id": "n97",
+        "parent": "11",
+        "degrees_of_freedom": [
+          582,
+          583,
+          584,
+          585,
+          586,
+          587
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 25,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -4.99682200349907e-14,
+          "y": -0.0005850546833667759,
+          "z": -0.00001413602530237457
+        },
+        "angle": {
+          "x": -4.765969534013898e-7,
+          "y": -3.702941744809042e-15,
+          "z": -2.0247247534559328e-15
+        }
+      },
+      {
+        "id": "n98",
+        "parent": "11",
+        "degrees_of_freedom": [
+          588,
+          589,
+          590,
+          591,
+          592,
+          593
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 25,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000025439915684441715,
+          "y": -0.0005881537226239135,
+          "z": -2.724112538624098e-18
+        },
+        "angle": {
+          "x": -4.344174163810944e-19,
+          "y": -4.558322855001377e-20,
+          "z": -5.812481585711673e-7
+        }
+      },
+      {
+        "id": "n99",
+        "parent": "11",
+        "degrees_of_freedom": [
+          594,
+          595,
+          596,
+          597,
+          598,
+          599
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 20,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00002553595822337649,
+          "y": -0.0004908480171067319,
+          "z": 0.000017616299675154285
+        },
+        "angle": {
+          "x": -0.0000010219408852438797,
+          "y": -1.6383332147630217e-7,
+          "z": 2.2040933468032222e-7
+        }
+      },
+      {
+        "id": "n100",
+        "parent": "11",
+        "degrees_of_freedom": [
+          600,
+          601,
+          602,
+          603,
+          604,
+          605
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 25,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -4.996835990448244e-14,
+          "y": -0.000585054683366772,
+          "z": 0.000014136025302369293
+        },
+        "angle": {
+          "x": 4.765969534010602e-7,
+          "y": 3.702907304422507e-15,
+          "z": -2.024706765271598e-15
+        }
+      },
+      {
+        "id": "n101",
+        "parent": "11",
+        "degrees_of_freedom": [
+          606,
+          607,
+          608,
+          609,
+          610,
+          611
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 25,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000026405097980038164,
+          "y": -0.0005931493326894797,
+          "z": 0.000027709128760255542
+        },
+        "angle": {
+          "x": -0.000002467334482367723,
+          "y": -5.999429541724549e-7,
+          "z": -5.048200770191665e-7
+        }
+      },
+      {
+        "id": "n102",
+        "parent": "11",
+        "degrees_of_freedom": [
+          612,
+          613,
+          614,
+          615,
+          616,
+          617
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 20,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00002740240436994185,
+          "y": -0.0004820596369768592,
+          "z": 0.0000758521719751583
+        },
+        "angle": {
+          "x": -0.0000017227333487276454,
+          "y": -0.0000011308048774922007,
+          "z": 2.225229670887843e-7
+        }
+      },
+      {
+        "id": "n103",
+        "parent": "11",
+        "degrees_of_freedom": [
+          618,
+          619,
+          620,
+          621,
+          622,
+          623
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 25,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 9.7362380078371e-15,
+          "y": -0.0005718424560634094,
+          "z": 0.000019931375832835223
+        },
+        "angle": {
+          "x": -0.000011784171058533358,
+          "y": 5.687781308282235e-15,
+          "z": 6.739886503662898e-15
+        }
+      },
+      {
+        "id": "n104",
+        "parent": "11",
+        "degrees_of_freedom": [
+          624,
+          625,
+          626,
+          627,
+          628,
+          629
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 25,
+          "y": -5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n105",
+        "parent": "11",
+        "degrees_of_freedom": [
+          630,
+          631,
+          632,
+          633,
+          634,
+          635
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 20,
+          "y": -5,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n106",
+        "parent": "11",
+        "degrees_of_freedom": [
+          636,
+          637,
+          638,
+          639,
+          640,
+          641
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 20,
+          "y": -5,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n107",
+        "parent": "11",
+        "degrees_of_freedom": [
+          642,
+          643,
+          644,
+          645,
+          646,
+          647
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00005944583252241687,
+          "y": -0.00019856789825608407,
+          "z": -0.000046477504784309474
+        },
+        "angle": {
+          "x": -0.0000027839207618292698,
+          "y": 3.601023199099333e-8,
+          "z": -0.0000010218476270654885
+        }
+      },
+      {
+        "id": "n108",
+        "parent": "11",
+        "degrees_of_freedom": [
+          648,
+          649,
+          650,
+          651,
+          652,
+          653
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 0,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007540391388246572,
+          "y": -0.000120685206855352,
+          "z": -0.00006276763117223869
+        },
+        "angle": {
+          "x": -0.000008300537312807266,
+          "y": 0.000003068623712135185,
+          "z": -0.000005558674241558133
+        }
+      },
+      {
+        "id": "n109",
+        "parent": "11",
+        "degrees_of_freedom": [
+          654,
+          655,
+          656,
+          657,
+          658,
+          659
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 0,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006411140616864552,
+          "y": -0.00009601806195606804,
+          "z": -0.000009330397723028237
+        },
+        "angle": {
+          "x": -0.0000034075054162034553,
+          "y": -4.7381162517355096e-7,
+          "z": -0.000003859545797888439
+        }
+      },
+      {
+        "id": "n110",
+        "parent": "11",
+        "degrees_of_freedom": [
+          660,
+          661,
+          662,
+          663,
+          664,
+          665
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 5,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00005378207808231139,
+          "y": -0.00019661901533295394,
+          "z": -0.000049276303548698676
+        },
+        "angle": {
+          "x": -0.00000226468770110246,
+          "y": 0.0000011598684429887083,
+          "z": -0.0000018845450883154209
+        }
+      },
+      {
+        "id": "n111",
+        "parent": "11",
+        "degrees_of_freedom": [
+          666,
+          667,
+          668,
+          669,
+          670,
+          671
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 5,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004762580432586523,
+          "y": -0.0001833364131284662,
+          "z": -0.000021524781196956013
+        },
+        "angle": {
+          "x": -0.0000013490505991030951,
+          "y": 4.998564465831843e-7,
+          "z": -0.0000013216244404100134
+        }
+      },
+      {
+        "id": "n112",
+        "parent": "11",
+        "degrees_of_freedom": [
+          672,
+          673,
+          674,
+          675,
+          676,
+          677
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 25,
+          "y": -5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n113",
+        "parent": "11",
+        "degrees_of_freedom": [
+          678,
+          679,
+          680,
+          681,
+          682,
+          683
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 20,
+          "y": -5,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n114",
+        "parent": "11",
+        "degrees_of_freedom": [
+          684,
+          685,
+          686,
+          687,
+          688,
+          689
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00005012652725192152,
+          "y": -0.0001861618734919221,
+          "z": -4.846201756675599e-20
+        },
+        "angle": {
+          "x": -1.0007121751771408e-19,
+          "y": -8.889855267028227e-20,
+          "z": -0.0000011293467808656173
+        }
+      },
+      {
+        "id": "n115",
+        "parent": "11",
+        "degrees_of_freedom": [
+          690,
+          691,
+          692,
+          693,
+          694,
+          695
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 0,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006411140616864515,
+          "y": -0.0000960180619560677,
+          "z": 0.000009330397723028323
+        },
+        "angle": {
+          "x": 0.000003407505416203405,
+          "y": 4.738116251735091e-7,
+          "z": -0.0000038595457978884055
+        }
+      },
+      {
+        "id": "n116",
+        "parent": "11",
+        "degrees_of_freedom": [
+          696,
+          697,
+          698,
+          699,
+          700,
+          701
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 5,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000047625804325864815,
+          "y": -0.00018333641312846558,
+          "z": 0.000021524781196955532
+        },
+        "angle": {
+          "x": 0.0000013490505991030077,
+          "y": -4.998564465832304e-7,
+          "z": -0.0000013216244404100102
+        }
+      },
+      {
+        "id": "n117",
+        "parent": "11",
+        "degrees_of_freedom": [
+          702,
+          703,
+          704,
+          705,
+          706,
+          707
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 25,
+          "y": -5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n118",
+        "parent": "11",
+        "degrees_of_freedom": [
+          708,
+          709,
+          710,
+          711,
+          712,
+          713
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 20,
+          "y": -5,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n119",
+        "parent": "11",
+        "degrees_of_freedom": [
+          714,
+          715,
+          716,
+          717,
+          718,
+          719
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000059445832522416156,
+          "y": -0.00019856789825608282,
+          "z": 0.00004647750478430896
+        },
+        "angle": {
+          "x": 0.0000027839207618291033,
+          "y": -3.601023199103048e-8,
+          "z": -0.000001021847627065472
+        }
+      },
+      {
+        "id": "n120",
+        "parent": "11",
+        "degrees_of_freedom": [
+          720,
+          721,
+          722,
+          723,
+          724,
+          725
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 0,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000754039138824648,
+          "y": -0.00012068520685535087,
+          "z": 0.00006276763117223824
+        },
+        "angle": {
+          "x": 0.000008300537312807185,
+          "y": -0.0000030686237121352015,
+          "z": -0.000005558674241558062
+        }
+      },
+      {
+        "id": "n121",
+        "parent": "11",
+        "degrees_of_freedom": [
+          726,
+          727,
+          728,
+          729,
+          730,
+          731
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 5,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000053782078082310475,
+          "y": -0.00019661901533295196,
+          "z": 0.000049276303548697985
+        },
+        "angle": {
+          "x": 0.0000022646877011023464,
+          "y": -0.000001159868442988749,
+          "z": -0.0000018845450883153963
+        }
+      },
+      {
+        "id": "n122",
+        "parent": "11",
+        "degrees_of_freedom": [
+          732,
+          733,
+          734,
+          735,
+          736,
+          737
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 15,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006892749860133515,
+          "y": -0.0003884581907178515,
+          "z": -0.00005534293559208053
+        },
+        "angle": {
+          "x": 4.01956622566068e-7,
+          "y": 9.22179489610602e-7,
+          "z": -1.9612964409224827e-7
+        }
+      },
+      {
+        "id": "n123",
+        "parent": "11",
+        "degrees_of_freedom": [
+          738,
+          739,
+          740,
+          741,
+          742,
+          743
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 10,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00010762648422462989,
+          "y": -0.0002965127968419432,
+          "z": -0.00009229247107130932
+        },
+        "angle": {
+          "x": -8.841255409541756e-7,
+          "y": 0.000002786193550641583,
+          "z": -6.74129573548594e-7
+        }
+      },
+      {
+        "id": "n124",
+        "parent": "11",
+        "degrees_of_freedom": [
+          744,
+          745,
+          746,
+          747,
+          748,
+          749
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 10,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00010109469335822341,
+          "y": -0.00028978280207679234,
+          "z": -0.000027935201654142714
+        },
+        "angle": {
+          "x": -6.063842940180793e-7,
+          "y": -4.619298475960664e-7,
+          "z": -6.658395623725542e-7
+        }
+      },
+      {
+        "id": "n125",
+        "parent": "11",
+        "degrees_of_freedom": [
+          750,
+          751,
+          752,
+          753,
+          754,
+          755
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 15,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006345795739038817,
+          "y": -0.00038514318266884366,
+          "z": -0.00005786582164591502
+        },
+        "angle": {
+          "x": -1.401827650309121e-7,
+          "y": 7.468865776852472e-7,
+          "z": -1.876385647964746e-7
+        }
+      },
+      {
+        "id": "n126",
+        "parent": "11",
+        "degrees_of_freedom": [
+          756,
+          757,
+          758,
+          759,
+          760,
+          761
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 15,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00005853808453893822,
+          "y": -0.00038732628653611695,
+          "z": -0.000025729529278811263
+        },
+        "angle": {
+          "x": 5.661066604269594e-7,
+          "y": 5.89221334037529e-7,
+          "z": -3.2380617969460883e-7
+        }
+      },
+      {
+        "id": "n127",
+        "parent": "11",
+        "degrees_of_freedom": [
+          762,
+          763,
+          764,
+          765,
+          766,
+          767
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 15,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000060120532705302504,
+          "y": -0.00039249739144821906,
+          "z": -8.791616395436295e-19
+        },
+        "angle": {
+          "x": -2.4222545859726697e-19,
+          "y": -1.0111675771986626e-19,
+          "z": -2.475121608794427e-7
+        }
+      },
+      {
+        "id": "n128",
+        "parent": "11",
+        "degrees_of_freedom": [
+          768,
+          769,
+          770,
+          771,
+          772,
+          773
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 10,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00010109469335822235,
+          "y": -0.0002897828020767911,
+          "z": 0.000027935201654141837
+        },
+        "angle": {
+          "x": 6.063842940178336e-7,
+          "y": 4.619298475959887e-7,
+          "z": -6.658395623725646e-7
+        }
+      },
+      {
+        "id": "n129",
+        "parent": "11",
+        "degrees_of_freedom": [
+          774,
+          775,
+          776,
+          777,
+          778,
+          779
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 15,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00005853808453893766,
+          "y": -0.00038732628653611435,
+          "z": 0.000025729529278809007
+        },
+        "angle": {
+          "x": -5.661066604271746e-7,
+          "y": -5.89221334037595e-7,
+          "z": -3.2380617969464e-7
+        }
+      },
+      {
+        "id": "n130",
+        "parent": "11",
+        "degrees_of_freedom": [
+          780,
+          781,
+          782,
+          783,
+          784,
+          785
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 15,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006892749860133422,
+          "y": -0.0003884581907178489,
+          "z": 0.00005534293559207841
+        },
+        "angle": {
+          "x": -4.019566225662346e-7,
+          "y": -9.221794896106594e-7,
+          "z": -1.9612964409229314e-7
+        }
+      },
+      {
+        "id": "n131",
+        "parent": "11",
+        "degrees_of_freedom": [
+          786,
+          787,
+          788,
+          789,
+          790,
+          791
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 10,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00010762648422462862,
+          "y": -0.00029651279684194065,
+          "z": 0.00009229247107130778
+        },
+        "angle": {
+          "x": 8.841255409539619e-7,
+          "y": -0.000002786193550641577,
+          "z": -6.741295735485422e-7
+        }
+      },
+      {
+        "id": "n132",
+        "parent": "11",
+        "degrees_of_freedom": [
+          792,
+          793,
+          794,
+          795,
+          796,
+          797
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 15,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006345795739038705,
+          "y": -0.00038514318266884105,
+          "z": 0.00005786582164591272
+        },
+        "angle": {
+          "x": 1.401827650308591e-7,
+          "y": -7.468865776853203e-7,
+          "z": -1.8763856479649913e-7
+        }
+      },
+      {
+        "id": "n133",
+        "parent": "11",
+        "degrees_of_freedom": [
+          798,
+          799,
+          800,
+          801,
+          802,
+          803
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 25,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000052089711519681175,
+          "y": -0.000590354897685957,
+          "z": -0.00003720925289857247
+        },
+        "angle": {
+          "x": 0.000004143506526762335,
+          "y": 0.0000020739390559793468,
+          "z": 0.0000045496194979031535
+        }
+      },
+      {
+        "id": "n134",
+        "parent": "11",
+        "degrees_of_freedom": [
+          804,
+          805,
+          806,
+          807,
+          808,
+          809
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 20,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00010816809105545167,
+          "y": -0.0004790191679042,
+          "z": -0.00009177257352139102
+        },
+        "angle": {
+          "x": 0.0000023095703916438083,
+          "y": 0.0000032458918109570895,
+          "z": 7.731334165728316e-7
+        }
+      },
+      {
+        "id": "n135",
+        "parent": "11",
+        "degrees_of_freedom": [
+          810,
+          811,
+          812,
+          813,
+          814,
+          815
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 20,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001043177047858302,
+          "y": -0.0004915846700814171,
+          "z": -0.000022612879740108442
+        },
+        "angle": {
+          "x": 9.954939256819974e-7,
+          "y": -6.077758800670688e-7,
+          "z": 3.1246014300343336e-7
+        }
+      },
+      {
+        "id": "n136",
+        "parent": "11",
+        "degrees_of_freedom": [
+          816,
+          817,
+          818,
+          819,
+          820,
+          821
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 25,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00005113513665098508,
+          "y": -0.0005794589120844551,
+          "z": -0.000030945392819969935
+        },
+        "angle": {
+          "x": 0.000011069653774592236,
+          "y": 6.028261060566622e-8,
+          "z": 9.42270980866201e-7
+        }
+      },
+      {
+        "id": "n137",
+        "parent": "11",
+        "degrees_of_freedom": [
+          822,
+          823,
+          824,
+          825,
+          826,
+          827
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 25,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004810568308869591,
+          "y": -0.0005958373817388597,
+          "z": -0.00001725375497258348
+        },
+        "angle": {
+          "x": -3.6568309644701887e-7,
+          "y": 3.0536045753396326e-7,
+          "z": 8.754252705793524e-8
+        }
+      },
+      {
+        "id": "n138",
+        "parent": "11",
+        "degrees_of_freedom": [
+          828,
+          829,
+          830,
+          831,
+          832,
+          833
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 25,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000043620878762194955,
+          "y": -0.0005877899588706887,
+          "z": -2.330120749063402e-18
+        },
+        "angle": {
+          "x": -2.8681405724903353e-19,
+          "y": 2.4448007945963985e-21,
+          "z": 0.000004934135526035945
+        }
+      },
+      {
+        "id": "n139",
+        "parent": "11",
+        "degrees_of_freedom": [
+          834,
+          835,
+          836,
+          837,
+          838,
+          839
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 20,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00010431770478582986,
+          "y": -0.0004915846700814151,
+          "z": 0.00002261287974010536
+        },
+        "angle": {
+          "x": -9.954939256823351e-7,
+          "y": 6.077758800670022e-7,
+          "z": 3.1246014300336475e-7
+        }
+      },
+      {
+        "id": "n140",
+        "parent": "11",
+        "degrees_of_freedom": [
+          840,
+          841,
+          842,
+          843,
+          844,
+          845
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 25,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004810568308869575,
+          "y": -0.0005958373817388572,
+          "z": 0.000017253754972578756
+        },
+        "angle": {
+          "x": 3.65683096446793e-7,
+          "y": -3.0536045753406554e-7,
+          "z": 8.754252705783169e-8
+        }
+      },
+      {
+        "id": "n141",
+        "parent": "11",
+        "degrees_of_freedom": [
+          846,
+          847,
+          848,
+          849,
+          850,
+          851
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 25,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00005208971151968049,
+          "y": -0.0005903548976859546,
+          "z": 0.00003720925289856861
+        },
+        "angle": {
+          "x": -0.00000414350652676247,
+          "y": -0.0000020739390559795183,
+          "z": 0.000004549619497903155
+        }
+      },
+      {
+        "id": "n142",
+        "parent": "11",
+        "degrees_of_freedom": [
+          852,
+          853,
+          854,
+          855,
+          856,
+          857
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 20,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00010816809105545065,
+          "y": -0.0004790191679041972,
+          "z": 0.00009177257352138808
+        },
+        "angle": {
+          "x": -0.0000023095703916440637,
+          "y": -0.0000032458918109571323,
+          "z": 7.731334165728396e-7
+        }
+      },
+      {
+        "id": "n143",
+        "parent": "11",
+        "degrees_of_freedom": [
+          858,
+          859,
+          860,
+          861,
+          862,
+          863
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 25,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000051135136650984146,
+          "y": -0.0005794589120844523,
+          "z": 0.000030945392819965666
+        },
+        "angle": {
+          "x": -0.000011069653774592379,
+          "y": -6.028261060579193e-8,
+          "z": 9.422709808661569e-7
+        }
+      }
+    ],
+    "edges": [
+      {
+        "id": "e0",
+        "source": 0,
+        "target": 1,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1",
+        "source": 1,
+        "target": 2,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e2",
+        "source": 2,
+        "target": 3,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e3",
+        "source": 3,
+        "target": 0,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e4",
+        "source": 4,
+        "target": 5,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -238.1629638671875
+      },
+      {
+        "id": "e5",
+        "source": 5,
+        "target": 0,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -138.56024169921875
+      },
+      {
+        "id": "e6",
+        "source": 0,
+        "target": 6,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -270.7459716796875
+      },
+      {
+        "id": "e7",
+        "source": 6,
+        "target": 4,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -212.19097900390625
+      },
+      {
+        "id": "e8",
+        "source": 7,
+        "target": 8,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 25.38766098022461
+      },
+      {
+        "id": "e9",
+        "source": 8,
+        "target": 4,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 120.9810791015625
+      },
+      {
+        "id": "e10",
+        "source": 4,
+        "target": 9,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 109.12527465820312
+      },
+      {
+        "id": "e11",
+        "source": 9,
+        "target": 7,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 110.31824493408203
+      },
+      {
+        "id": "e12",
+        "source": 2,
+        "target": 10,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -173.75271606445312
+      },
+      {
+        "id": "e13",
+        "source": 10,
+        "target": 7,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -184.7776641845703
+      },
+      {
+        "id": "e14",
+        "source": 7,
+        "target": 11,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -196.20819091796875
+      },
+      {
+        "id": "e15",
+        "source": 11,
+        "target": 2,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -316.04534912109375
+      },
+      {
+        "id": "e16",
+        "source": 8,
+        "target": 10,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -162.93592834472656
+      },
+      {
+        "id": "e17",
+        "source": 10,
+        "target": 1,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -135.84388732910156
+      },
+      {
+        "id": "e18",
+        "source": 1,
+        "target": 5,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -309.23101806640625
+      },
+      {
+        "id": "e19",
+        "source": 5,
+        "target": 8,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -183.26922607421875
+      },
+      {
+        "id": "e20",
+        "source": 6,
+        "target": 3,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -278.05377197265625
+      },
+      {
+        "id": "e21",
+        "source": 3,
+        "target": 11,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -95.71995544433594
+      },
+      {
+        "id": "e22",
+        "source": 11,
+        "target": 9,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -212.49818420410156
+      },
+      {
+        "id": "e23",
+        "source": 9,
+        "target": 6,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -191.57150268554688
+      },
+      {
+        "id": "e24",
+        "source": 12,
+        "target": 3,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e25",
+        "source": 3,
+        "target": 13,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e26",
+        "source": 13,
+        "target": 14,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e27",
+        "source": 14,
+        "target": 12,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e28",
+        "source": 15,
+        "target": 6,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -254.9331817626953
+      },
+      {
+        "id": "e29",
+        "source": 6,
+        "target": 12,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -222.86810302734375
+      },
+      {
+        "id": "e30",
+        "source": 12,
+        "target": 16,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -222.86810302734375
+      },
+      {
+        "id": "e31",
+        "source": 16,
+        "target": 15,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -254.9331817626953
+      },
+      {
+        "id": "e32",
+        "source": 17,
+        "target": 9,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 72.0765151977539
+      },
+      {
+        "id": "e33",
+        "source": 9,
+        "target": 15,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 133.29946899414062
+      },
+      {
+        "id": "e34",
+        "source": 15,
+        "target": 18,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 133.29946899414062
+      },
+      {
+        "id": "e35",
+        "source": 18,
+        "target": 17,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 72.0765151977539
+      },
+      {
+        "id": "e36",
+        "source": 13,
+        "target": 11,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -260.06298828125
+      },
+      {
+        "id": "e37",
+        "source": 11,
+        "target": 17,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -242.44024658203125
+      },
+      {
+        "id": "e38",
+        "source": 17,
+        "target": 19,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -242.44024658203125
+      },
+      {
+        "id": "e39",
+        "source": 19,
+        "target": 13,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -260.06298828125
+      },
+      {
+        "id": "e40",
+        "source": 16,
+        "target": 14,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -278.05377197265625
+      },
+      {
+        "id": "e41",
+        "source": 14,
+        "target": 19,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -95.71995544433594
+      },
+      {
+        "id": "e42",
+        "source": 19,
+        "target": 18,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -212.49818420410156
+      },
+      {
+        "id": "e43",
+        "source": 18,
+        "target": 16,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -191.57150268554688
+      },
+      {
+        "id": "e44",
+        "source": 20,
+        "target": 14,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e45",
+        "source": 14,
+        "target": 21,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e46",
+        "source": 21,
+        "target": 22,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e47",
+        "source": 22,
+        "target": 20,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e48",
+        "source": 23,
+        "target": 16,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -212.19097900390625
+      },
+      {
+        "id": "e49",
+        "source": 16,
+        "target": 20,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -270.7459716796875
+      },
+      {
+        "id": "e50",
+        "source": 20,
+        "target": 24,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -138.56024169921875
+      },
+      {
+        "id": "e51",
+        "source": 24,
+        "target": 23,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -238.1629638671875
+      },
+      {
+        "id": "e52",
+        "source": 25,
+        "target": 18,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 110.31824493408203
+      },
+      {
+        "id": "e53",
+        "source": 18,
+        "target": 23,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 109.12527465820312
+      },
+      {
+        "id": "e54",
+        "source": 23,
+        "target": 26,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 120.9810791015625
+      },
+      {
+        "id": "e55",
+        "source": 26,
+        "target": 25,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 25.38766098022461
+      },
+      {
+        "id": "e56",
+        "source": 21,
+        "target": 19,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -316.04534912109375
+      },
+      {
+        "id": "e57",
+        "source": 19,
+        "target": 25,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -196.20819091796875
+      },
+      {
+        "id": "e58",
+        "source": 25,
+        "target": 27,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -184.7776641845703
+      },
+      {
+        "id": "e59",
+        "source": 27,
+        "target": 21,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -173.75271606445312
+      },
+      {
+        "id": "e60",
+        "source": 24,
+        "target": 22,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -309.23101806640625
+      },
+      {
+        "id": "e61",
+        "source": 22,
+        "target": 27,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -135.84388732910156
+      },
+      {
+        "id": "e62",
+        "source": 27,
+        "target": 26,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -162.93592834472656
+      },
+      {
+        "id": "e63",
+        "source": 26,
+        "target": 24,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -183.26922607421875
+      },
+      {
+        "id": "e64",
+        "source": 28,
+        "target": 29,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -200.58062744140625
+      },
+      {
+        "id": "e65",
+        "source": 29,
+        "target": 4,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -192.53672790527344
+      },
+      {
+        "id": "e66",
+        "source": 4,
+        "target": 30,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -255.08404541015625
+      },
+      {
+        "id": "e67",
+        "source": 30,
+        "target": 28,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -243.56716918945312
+      },
+      {
+        "id": "e68",
+        "source": 31,
+        "target": 32,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 23.977283477783203
+      },
+      {
+        "id": "e69",
+        "source": 32,
+        "target": 28,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 135.19801330566406
+      },
+      {
+        "id": "e70",
+        "source": 28,
+        "target": 33,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 137.55287170410156
+      },
+      {
+        "id": "e71",
+        "source": 33,
+        "target": 31,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 120.0084457397461
+      },
+      {
+        "id": "e72",
+        "source": 7,
+        "target": 34,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -156.3897705078125
+      },
+      {
+        "id": "e73",
+        "source": 34,
+        "target": 31,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -164.9876251220703
+      },
+      {
+        "id": "e74",
+        "source": 31,
+        "target": 35,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -213.80300903320312
+      },
+      {
+        "id": "e75",
+        "source": 35,
+        "target": 7,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -218.01776123046875
+      },
+      {
+        "id": "e76",
+        "source": 32,
+        "target": 34,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -133.38563537597656
+      },
+      {
+        "id": "e77",
+        "source": 34,
+        "target": 8,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -138.1481170654297
+      },
+      {
+        "id": "e78",
+        "source": 8,
+        "target": 29,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -200.43370056152344
+      },
+      {
+        "id": "e79",
+        "source": 29,
+        "target": 32,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -203.09674072265625
+      },
+      {
+        "id": "e80",
+        "source": 30,
+        "target": 9,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -234.47459411621094
+      },
+      {
+        "id": "e81",
+        "source": 9,
+        "target": 35,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -158.93252563476562
+      },
+      {
+        "id": "e82",
+        "source": 35,
+        "target": 33,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -164.96058654785156
+      },
+      {
+        "id": "e83",
+        "source": 33,
+        "target": 30,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -229.4532928466797
+      },
+      {
+        "id": "e84",
+        "source": 36,
+        "target": 30,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -253.42637634277344
+      },
+      {
+        "id": "e85",
+        "source": 30,
+        "target": 15,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -249.43397521972656
+      },
+      {
+        "id": "e86",
+        "source": 15,
+        "target": 37,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -249.43397521972656
+      },
+      {
+        "id": "e87",
+        "source": 37,
+        "target": 36,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -253.42637634277344
+      },
+      {
+        "id": "e88",
+        "source": 38,
+        "target": 33,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 81.93592834472656
+      },
+      {
+        "id": "e89",
+        "source": 33,
+        "target": 36,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 161.85098266601562
+      },
+      {
+        "id": "e90",
+        "source": 36,
+        "target": 39,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 161.85098266601562
+      },
+      {
+        "id": "e91",
+        "source": 39,
+        "target": 38,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 81.93592834472656
+      },
+      {
+        "id": "e92",
+        "source": 17,
+        "target": 35,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -227.05714416503906
+      },
+      {
+        "id": "e93",
+        "source": 35,
+        "target": 38,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -224.3381805419922
+      },
+      {
+        "id": "e94",
+        "source": 38,
+        "target": 40,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -224.3381805419922
+      },
+      {
+        "id": "e95",
+        "source": 40,
+        "target": 17,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -227.05714416503906
+      },
+      {
+        "id": "e96",
+        "source": 37,
+        "target": 18,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -234.47459411621094
+      },
+      {
+        "id": "e97",
+        "source": 18,
+        "target": 40,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -158.93252563476562
+      },
+      {
+        "id": "e98",
+        "source": 40,
+        "target": 39,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -164.96058654785156
+      },
+      {
+        "id": "e99",
+        "source": 39,
+        "target": 37,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -229.4532928466797
+      },
+      {
+        "id": "e100",
+        "source": 41,
+        "target": 37,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -243.56716918945312
+      },
+      {
+        "id": "e101",
+        "source": 37,
+        "target": 23,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -255.08404541015625
+      },
+      {
+        "id": "e102",
+        "source": 23,
+        "target": 42,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -192.53672790527344
+      },
+      {
+        "id": "e103",
+        "source": 42,
+        "target": 41,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -200.58062744140625
+      },
+      {
+        "id": "e104",
+        "source": 43,
+        "target": 39,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 120.0084457397461
+      },
+      {
+        "id": "e105",
+        "source": 39,
+        "target": 41,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 137.55287170410156
+      },
+      {
+        "id": "e106",
+        "source": 41,
+        "target": 44,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 135.19801330566406
+      },
+      {
+        "id": "e107",
+        "source": 44,
+        "target": 43,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 23.977283477783203
+      },
+      {
+        "id": "e108",
+        "source": 25,
+        "target": 40,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -218.01776123046875
+      },
+      {
+        "id": "e109",
+        "source": 40,
+        "target": 43,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -213.80300903320312
+      },
+      {
+        "id": "e110",
+        "source": 43,
+        "target": 45,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -164.9876251220703
+      },
+      {
+        "id": "e111",
+        "source": 45,
+        "target": 25,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -156.3897705078125
+      },
+      {
+        "id": "e112",
+        "source": 42,
+        "target": 26,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -200.43370056152344
+      },
+      {
+        "id": "e113",
+        "source": 26,
+        "target": 45,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -138.1481170654297
+      },
+      {
+        "id": "e114",
+        "source": 45,
+        "target": 44,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -133.38563537597656
+      },
+      {
+        "id": "e115",
+        "source": 44,
+        "target": 42,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -203.09674072265625
+      },
+      {
+        "id": "e116",
+        "source": 46,
+        "target": 47,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -188.84005737304688
+      },
+      {
+        "id": "e117",
+        "source": 47,
+        "target": 28,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -199.94207763671875
+      },
+      {
+        "id": "e118",
+        "source": 28,
+        "target": 48,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -238.81210327148438
+      },
+      {
+        "id": "e119",
+        "source": 48,
+        "target": 46,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -276.6253662109375
+      },
+      {
+        "id": "e120",
+        "source": 49,
+        "target": 50,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -15.927849769592285
+      },
+      {
+        "id": "e121",
+        "source": 50,
+        "target": 46,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 83.89891052246094
+      },
+      {
+        "id": "e122",
+        "source": 46,
+        "target": 51,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 96.46788787841797
+      },
+      {
+        "id": "e123",
+        "source": 51,
+        "target": 49,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 71.81858825683594
+      },
+      {
+        "id": "e124",
+        "source": 31,
+        "target": 52,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -162.39405822753906
+      },
+      {
+        "id": "e125",
+        "source": 52,
+        "target": 49,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -170.31727600097656
+      },
+      {
+        "id": "e126",
+        "source": 49,
+        "target": 53,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -252.52163696289062
+      },
+      {
+        "id": "e127",
+        "source": 53,
+        "target": 31,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -211.18917846679688
+      },
+      {
+        "id": "e128",
+        "source": 50,
+        "target": 52,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -130.22030639648438
+      },
+      {
+        "id": "e129",
+        "source": 52,
+        "target": 32,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -147.49752807617188
+      },
+      {
+        "id": "e130",
+        "source": 32,
+        "target": 47,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -182.58273315429688
+      },
+      {
+        "id": "e131",
+        "source": 47,
+        "target": 50,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -220.99954223632812
+      },
+      {
+        "id": "e132",
+        "source": 48,
+        "target": 33,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -211.55886840820312
+      },
+      {
+        "id": "e133",
+        "source": 33,
+        "target": 53,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -175.43618774414062
+      },
+      {
+        "id": "e134",
+        "source": 53,
+        "target": 51,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -144.12208557128906
+      },
+      {
+        "id": "e135",
+        "source": 51,
+        "target": 48,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -247.25880432128906
+      },
+      {
+        "id": "e136",
+        "source": 54,
+        "target": 48,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -239.0681915283203
+      },
+      {
+        "id": "e137",
+        "source": 48,
+        "target": 36,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -257.10943603515625
+      },
+      {
+        "id": "e138",
+        "source": 36,
+        "target": 55,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -257.10943603515625
+      },
+      {
+        "id": "e139",
+        "source": 55,
+        "target": 54,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -239.0681915283203
+      },
+      {
+        "id": "e140",
+        "source": 56,
+        "target": 51,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 38.30683898925781
+      },
+      {
+        "id": "e141",
+        "source": 51,
+        "target": 54,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 119.75855255126953
+      },
+      {
+        "id": "e142",
+        "source": 54,
+        "target": 57,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 119.75855255126953
+      },
+      {
+        "id": "e143",
+        "source": 57,
+        "target": 56,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 38.30683898925781
+      },
+      {
+        "id": "e144",
+        "source": 38,
+        "target": 53,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -229.4231719970703
+      },
+      {
+        "id": "e145",
+        "source": 53,
+        "target": 56,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -220.7774200439453
+      },
+      {
+        "id": "e146",
+        "source": 56,
+        "target": 58,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -220.7774200439453
+      },
+      {
+        "id": "e147",
+        "source": 58,
+        "target": 38,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -229.4231719970703
+      },
+      {
+        "id": "e148",
+        "source": 55,
+        "target": 39,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -211.55886840820312
+      },
+      {
+        "id": "e149",
+        "source": 39,
+        "target": 58,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -175.43618774414062
+      },
+      {
+        "id": "e150",
+        "source": 58,
+        "target": 57,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -144.12208557128906
+      },
+      {
+        "id": "e151",
+        "source": 57,
+        "target": 55,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -247.25880432128906
+      },
+      {
+        "id": "e152",
+        "source": 59,
+        "target": 55,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -276.6253662109375
+      },
+      {
+        "id": "e153",
+        "source": 55,
+        "target": 41,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -238.81210327148438
+      },
+      {
+        "id": "e154",
+        "source": 41,
+        "target": 60,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -199.94207763671875
+      },
+      {
+        "id": "e155",
+        "source": 60,
+        "target": 59,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -188.84005737304688
+      },
+      {
+        "id": "e156",
+        "source": 61,
+        "target": 57,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 71.81858825683594
+      },
+      {
+        "id": "e157",
+        "source": 57,
+        "target": 59,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 96.46788787841797
+      },
+      {
+        "id": "e158",
+        "source": 59,
+        "target": 62,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 83.89891052246094
+      },
+      {
+        "id": "e159",
+        "source": 62,
+        "target": 61,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -15.927849769592285
+      },
+      {
+        "id": "e160",
+        "source": 43,
+        "target": 58,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -211.18917846679688
+      },
+      {
+        "id": "e161",
+        "source": 58,
+        "target": 61,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -252.52163696289062
+      },
+      {
+        "id": "e162",
+        "source": 61,
+        "target": 63,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -170.31727600097656
+      },
+      {
+        "id": "e163",
+        "source": 63,
+        "target": 43,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -162.39405822753906
+      },
+      {
+        "id": "e164",
+        "source": 60,
+        "target": 44,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -182.58273315429688
+      },
+      {
+        "id": "e165",
+        "source": 44,
+        "target": 63,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -147.49752807617188
+      },
+      {
+        "id": "e166",
+        "source": 63,
+        "target": 62,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -130.22030639648438
+      },
+      {
+        "id": "e167",
+        "source": 62,
+        "target": 60,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -220.99954223632812
+      },
+      {
+        "id": "e168",
+        "source": 64,
+        "target": 65,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e169",
+        "source": 65,
+        "target": 0,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e170",
+        "source": 0,
+        "target": 66,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e171",
+        "source": 66,
+        "target": 64,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e172",
+        "source": 67,
+        "target": 68,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -238.1629638671875
+      },
+      {
+        "id": "e173",
+        "source": 68,
+        "target": 64,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -138.56024169921875
+      },
+      {
+        "id": "e174",
+        "source": 64,
+        "target": 69,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -270.7459716796875
+      },
+      {
+        "id": "e175",
+        "source": 69,
+        "target": 67,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -212.19097900390625
+      },
+      {
+        "id": "e176",
+        "source": 4,
+        "target": 70,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 88.24822235107422
+      },
+      {
+        "id": "e177",
+        "source": 70,
+        "target": 67,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 88.24822235107422
+      },
+      {
+        "id": "e178",
+        "source": 67,
+        "target": 71,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 133.17880249023438
+      },
+      {
+        "id": "e179",
+        "source": 71,
+        "target": 4,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 133.17880249023438
+      },
+      {
+        "id": "e180",
+        "source": 70,
+        "target": 5,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -236.56015014648438
+      },
+      {
+        "id": "e181",
+        "source": 5,
+        "target": 65,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -245.2415771484375
+      },
+      {
+        "id": "e182",
+        "source": 65,
+        "target": 68,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -245.2415771484375
+      },
+      {
+        "id": "e183",
+        "source": 68,
+        "target": 70,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -236.56015014648438
+      },
+      {
+        "id": "e184",
+        "source": 69,
+        "target": 66,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -215.560302734375
+      },
+      {
+        "id": "e185",
+        "source": 66,
+        "target": 6,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -215.560302734375
+      },
+      {
+        "id": "e186",
+        "source": 6,
+        "target": 71,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -245.57522583007812
+      },
+      {
+        "id": "e187",
+        "source": 71,
+        "target": 69,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -245.57522583007812
+      },
+      {
+        "id": "e188",
+        "source": 72,
+        "target": 66,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e189",
+        "source": 66,
+        "target": 12,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e190",
+        "source": 12,
+        "target": 73,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e191",
+        "source": 73,
+        "target": 72,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e192",
+        "source": 74,
+        "target": 69,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -254.9331817626953
+      },
+      {
+        "id": "e193",
+        "source": 69,
+        "target": 72,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -222.86810302734375
+      },
+      {
+        "id": "e194",
+        "source": 72,
+        "target": 75,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -222.86810302734375
+      },
+      {
+        "id": "e195",
+        "source": 75,
+        "target": 74,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -254.9331817626953
+      },
+      {
+        "id": "e196",
+        "source": 15,
+        "target": 71,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 129.16754150390625
+      },
+      {
+        "id": "e197",
+        "source": 71,
+        "target": 74,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 129.16754150390625
+      },
+      {
+        "id": "e198",
+        "source": 74,
+        "target": 76,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 129.16754150390625
+      },
+      {
+        "id": "e199",
+        "source": 76,
+        "target": 15,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 129.16754150390625
+      },
+      {
+        "id": "e200",
+        "source": 75,
+        "target": 73,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -215.560302734375
+      },
+      {
+        "id": "e201",
+        "source": 73,
+        "target": 16,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -215.560302734375
+      },
+      {
+        "id": "e202",
+        "source": 16,
+        "target": 76,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -245.57522583007812
+      },
+      {
+        "id": "e203",
+        "source": 76,
+        "target": 75,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -245.57522583007812
+      },
+      {
+        "id": "e204",
+        "source": 77,
+        "target": 73,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e205",
+        "source": 73,
+        "target": 20,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e206",
+        "source": 20,
+        "target": 78,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e207",
+        "source": 78,
+        "target": 77,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e208",
+        "source": 79,
+        "target": 75,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -212.19097900390625
+      },
+      {
+        "id": "e209",
+        "source": 75,
+        "target": 77,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -270.7459716796875
+      },
+      {
+        "id": "e210",
+        "source": 77,
+        "target": 80,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -138.56024169921875
+      },
+      {
+        "id": "e211",
+        "source": 80,
+        "target": 79,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -238.1629638671875
+      },
+      {
+        "id": "e212",
+        "source": 23,
+        "target": 76,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 133.17880249023438
+      },
+      {
+        "id": "e213",
+        "source": 76,
+        "target": 79,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 133.17880249023438
+      },
+      {
+        "id": "e214",
+        "source": 79,
+        "target": 81,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 88.24822235107422
+      },
+      {
+        "id": "e215",
+        "source": 81,
+        "target": 23,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 88.24822235107422
+      },
+      {
+        "id": "e216",
+        "source": 80,
+        "target": 78,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -245.2415771484375
+      },
+      {
+        "id": "e217",
+        "source": 78,
+        "target": 24,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -245.2415771484375
+      },
+      {
+        "id": "e218",
+        "source": 24,
+        "target": 81,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -236.56015014648438
+      },
+      {
+        "id": "e219",
+        "source": 81,
+        "target": 80,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -236.56015014648438
+      },
+      {
+        "id": "e220",
+        "source": 82,
+        "target": 83,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -200.58062744140625
+      },
+      {
+        "id": "e221",
+        "source": 83,
+        "target": 67,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -192.53672790527344
+      },
+      {
+        "id": "e222",
+        "source": 67,
+        "target": 84,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -255.08404541015625
+      },
+      {
+        "id": "e223",
+        "source": 84,
+        "target": 82,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -243.56716918945312
+      },
+      {
+        "id": "e224",
+        "source": 28,
+        "target": 85,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 102.8792495727539
+      },
+      {
+        "id": "e225",
+        "source": 85,
+        "target": 82,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 102.8792495727539
+      },
+      {
+        "id": "e226",
+        "source": 82,
+        "target": 86,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 161.91453552246094
+      },
+      {
+        "id": "e227",
+        "source": 86,
+        "target": 28,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 161.91453552246094
+      },
+      {
+        "id": "e228",
+        "source": 85,
+        "target": 29,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -203.17921447753906
+      },
+      {
+        "id": "e229",
+        "source": 29,
+        "target": 70,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -216.1677703857422
+      },
+      {
+        "id": "e230",
+        "source": 70,
+        "target": 83,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -216.1677703857422
+      },
+      {
+        "id": "e231",
+        "source": 83,
+        "target": 85,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -203.17921447753906
+      },
+      {
+        "id": "e232",
+        "source": 84,
+        "target": 71,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -233.2823028564453
+      },
+      {
+        "id": "e233",
+        "source": 71,
+        "target": 30,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -233.2823028564453
+      },
+      {
+        "id": "e234",
+        "source": 30,
+        "target": 86,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -232.54978942871094
+      },
+      {
+        "id": "e235",
+        "source": 86,
+        "target": 84,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -232.54978942871094
+      },
+      {
+        "id": "e236",
+        "source": 87,
+        "target": 84,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -253.42637634277344
+      },
+      {
+        "id": "e237",
+        "source": 84,
+        "target": 74,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -249.43397521972656
+      },
+      {
+        "id": "e238",
+        "source": 74,
+        "target": 88,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -249.43397521972656
+      },
+      {
+        "id": "e239",
+        "source": 88,
+        "target": 87,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -253.42637634277344
+      },
+      {
+        "id": "e240",
+        "source": 36,
+        "target": 86,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 157.81063842773438
+      },
+      {
+        "id": "e241",
+        "source": 86,
+        "target": 87,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 157.81063842773438
+      },
+      {
+        "id": "e242",
+        "source": 87,
+        "target": 89,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 157.81063842773438
+      },
+      {
+        "id": "e243",
+        "source": 89,
+        "target": 36,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 157.81063842773438
+      },
+      {
+        "id": "e244",
+        "source": 88,
+        "target": 76,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -233.2823028564453
+      },
+      {
+        "id": "e245",
+        "source": 76,
+        "target": 37,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -233.2823028564453
+      },
+      {
+        "id": "e246",
+        "source": 37,
+        "target": 89,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -232.54978942871094
+      },
+      {
+        "id": "e247",
+        "source": 89,
+        "target": 88,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -232.54978942871094
+      },
+      {
+        "id": "e248",
+        "source": 90,
+        "target": 88,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -243.56716918945312
+      },
+      {
+        "id": "e249",
+        "source": 88,
+        "target": 79,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -255.08404541015625
+      },
+      {
+        "id": "e250",
+        "source": 79,
+        "target": 91,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -192.53672790527344
+      },
+      {
+        "id": "e251",
+        "source": 91,
+        "target": 90,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -200.58062744140625
+      },
+      {
+        "id": "e252",
+        "source": 41,
+        "target": 89,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 161.91453552246094
+      },
+      {
+        "id": "e253",
+        "source": 89,
+        "target": 90,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 161.91453552246094
+      },
+      {
+        "id": "e254",
+        "source": 90,
+        "target": 92,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 102.8792495727539
+      },
+      {
+        "id": "e255",
+        "source": 92,
+        "target": 41,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 102.8792495727539
+      },
+      {
+        "id": "e256",
+        "source": 91,
+        "target": 81,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -216.1677703857422
+      },
+      {
+        "id": "e257",
+        "source": 81,
+        "target": 42,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -216.1677703857422
+      },
+      {
+        "id": "e258",
+        "source": 42,
+        "target": 92,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -203.17921447753906
+      },
+      {
+        "id": "e259",
+        "source": 92,
+        "target": 91,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -203.17921447753906
+      },
+      {
+        "id": "e260",
+        "source": 93,
+        "target": 94,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -188.84005737304688
+      },
+      {
+        "id": "e261",
+        "source": 94,
+        "target": 82,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -199.94207763671875
+      },
+      {
+        "id": "e262",
+        "source": 82,
+        "target": 95,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -238.81210327148438
+      },
+      {
+        "id": "e263",
+        "source": 95,
+        "target": 93,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -276.6253662109375
+      },
+      {
+        "id": "e264",
+        "source": 46,
+        "target": 96,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 55.88203048706055
+      },
+      {
+        "id": "e265",
+        "source": 96,
+        "target": 93,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 55.88203048706055
+      },
+      {
+        "id": "e266",
+        "source": 93,
+        "target": 97,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 119.93460845947266
+      },
+      {
+        "id": "e267",
+        "source": 97,
+        "target": 46,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 119.93460845947266
+      },
+      {
+        "id": "e268",
+        "source": 96,
+        "target": 47,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -187.14126586914062
+      },
+      {
+        "id": "e269",
+        "source": 47,
+        "target": 85,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -209.15550231933594
+      },
+      {
+        "id": "e270",
+        "source": 85,
+        "target": 94,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -209.15550231933594
+      },
+      {
+        "id": "e271",
+        "source": 94,
+        "target": 96,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -187.14126586914062
+      },
+      {
+        "id": "e272",
+        "source": 95,
+        "target": 86,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -236.0252227783203
+      },
+      {
+        "id": "e273",
+        "source": 86,
+        "target": 48,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -236.0252227783203
+      },
+      {
+        "id": "e274",
+        "source": 48,
+        "target": 97,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -206.01214599609375
+      },
+      {
+        "id": "e275",
+        "source": 97,
+        "target": 95,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -206.01214599609375
+      },
+      {
+        "id": "e276",
+        "source": 98,
+        "target": 95,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -239.0681915283203
+      },
+      {
+        "id": "e277",
+        "source": 95,
+        "target": 87,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -257.10943603515625
+      },
+      {
+        "id": "e278",
+        "source": 87,
+        "target": 99,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -257.10943603515625
+      },
+      {
+        "id": "e279",
+        "source": 99,
+        "target": 98,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -239.0681915283203
+      },
+      {
+        "id": "e280",
+        "source": 54,
+        "target": 97,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 118.72782897949219
+      },
+      {
+        "id": "e281",
+        "source": 97,
+        "target": 98,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 118.72782897949219
+      },
+      {
+        "id": "e282",
+        "source": 98,
+        "target": 100,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 118.72782897949219
+      },
+      {
+        "id": "e283",
+        "source": 100,
+        "target": 54,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 118.72782897949219
+      },
+      {
+        "id": "e284",
+        "source": 99,
+        "target": 89,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -236.0252227783203
+      },
+      {
+        "id": "e285",
+        "source": 89,
+        "target": 55,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -236.0252227783203
+      },
+      {
+        "id": "e286",
+        "source": 55,
+        "target": 100,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -206.01214599609375
+      },
+      {
+        "id": "e287",
+        "source": 100,
+        "target": 99,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -206.01214599609375
+      },
+      {
+        "id": "e288",
+        "source": 101,
+        "target": 99,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -276.6253662109375
+      },
+      {
+        "id": "e289",
+        "source": 99,
+        "target": 90,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -238.81210327148438
+      },
+      {
+        "id": "e290",
+        "source": 90,
+        "target": 102,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -199.94207763671875
+      },
+      {
+        "id": "e291",
+        "source": 102,
+        "target": 101,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -188.84005737304688
+      },
+      {
+        "id": "e292",
+        "source": 59,
+        "target": 100,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 119.93460845947266
+      },
+      {
+        "id": "e293",
+        "source": 100,
+        "target": 101,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 119.93460845947266
+      },
+      {
+        "id": "e294",
+        "source": 101,
+        "target": 103,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 55.88203048706055
+      },
+      {
+        "id": "e295",
+        "source": 103,
+        "target": 59,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 55.88203048706055
+      },
+      {
+        "id": "e296",
+        "source": 102,
+        "target": 92,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -209.15550231933594
+      },
+      {
+        "id": "e297",
+        "source": 92,
+        "target": 60,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -209.15550231933594
+      },
+      {
+        "id": "e298",
+        "source": 60,
+        "target": 103,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -187.14126586914062
+      },
+      {
+        "id": "e299",
+        "source": 103,
+        "target": 102,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -187.14126586914062
+      },
+      {
+        "id": "e300",
+        "source": 104,
+        "target": 105,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e301",
+        "source": 105,
+        "target": 64,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e302",
+        "source": 64,
+        "target": 106,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e303",
+        "source": 106,
+        "target": 104,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e304",
+        "source": 107,
+        "target": 108,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -184.7776641845703
+      },
+      {
+        "id": "e305",
+        "source": 108,
+        "target": 104,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -173.75271606445312
+      },
+      {
+        "id": "e306",
+        "source": 104,
+        "target": 109,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -316.04534912109375
+      },
+      {
+        "id": "e307",
+        "source": 109,
+        "target": 107,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -196.20819091796875
+      },
+      {
+        "id": "e308",
+        "source": 67,
+        "target": 110,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 120.9810791015625
+      },
+      {
+        "id": "e309",
+        "source": 110,
+        "target": 107,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 25.38766098022461
+      },
+      {
+        "id": "e310",
+        "source": 107,
+        "target": 111,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 110.31824493408203
+      },
+      {
+        "id": "e311",
+        "source": 111,
+        "target": 67,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 109.12527465820312
+      },
+      {
+        "id": "e312",
+        "source": 110,
+        "target": 68,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -183.26922607421875
+      },
+      {
+        "id": "e313",
+        "source": 68,
+        "target": 105,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -309.23101806640625
+      },
+      {
+        "id": "e314",
+        "source": 105,
+        "target": 108,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -135.84388732910156
+      },
+      {
+        "id": "e315",
+        "source": 108,
+        "target": 110,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -162.93592834472656
+      },
+      {
+        "id": "e316",
+        "source": 109,
+        "target": 106,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -95.71995544433594
+      },
+      {
+        "id": "e317",
+        "source": 106,
+        "target": 69,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -278.05377197265625
+      },
+      {
+        "id": "e318",
+        "source": 69,
+        "target": 111,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -191.57150268554688
+      },
+      {
+        "id": "e319",
+        "source": 111,
+        "target": 109,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -212.49818420410156
+      },
+      {
+        "id": "e320",
+        "source": 112,
+        "target": 106,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e321",
+        "source": 106,
+        "target": 72,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e322",
+        "source": 72,
+        "target": 113,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e323",
+        "source": 113,
+        "target": 112,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e324",
+        "source": 114,
+        "target": 109,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -242.44024658203125
+      },
+      {
+        "id": "e325",
+        "source": 109,
+        "target": 112,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -260.06298828125
+      },
+      {
+        "id": "e326",
+        "source": 112,
+        "target": 115,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -260.06298828125
+      },
+      {
+        "id": "e327",
+        "source": 115,
+        "target": 114,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -242.44024658203125
+      },
+      {
+        "id": "e328",
+        "source": 74,
+        "target": 111,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 133.29946899414062
+      },
+      {
+        "id": "e329",
+        "source": 111,
+        "target": 114,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 72.0765151977539
+      },
+      {
+        "id": "e330",
+        "source": 114,
+        "target": 116,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 72.0765151977539
+      },
+      {
+        "id": "e331",
+        "source": 116,
+        "target": 74,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 133.29946899414062
+      },
+      {
+        "id": "e332",
+        "source": 115,
+        "target": 113,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -95.71995544433594
+      },
+      {
+        "id": "e333",
+        "source": 113,
+        "target": 75,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -278.05377197265625
+      },
+      {
+        "id": "e334",
+        "source": 75,
+        "target": 116,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -191.57150268554688
+      },
+      {
+        "id": "e335",
+        "source": 116,
+        "target": 115,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -212.49818420410156
+      },
+      {
+        "id": "e336",
+        "source": 117,
+        "target": 113,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e337",
+        "source": 113,
+        "target": 77,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e338",
+        "source": 77,
+        "target": 118,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e339",
+        "source": 118,
+        "target": 117,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e340",
+        "source": 119,
+        "target": 115,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -196.20819091796875
+      },
+      {
+        "id": "e341",
+        "source": 115,
+        "target": 117,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -316.04534912109375
+      },
+      {
+        "id": "e342",
+        "source": 117,
+        "target": 120,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -173.75271606445312
+      },
+      {
+        "id": "e343",
+        "source": 120,
+        "target": 119,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -184.7776641845703
+      },
+      {
+        "id": "e344",
+        "source": 79,
+        "target": 116,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 109.12527465820312
+      },
+      {
+        "id": "e345",
+        "source": 116,
+        "target": 119,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 110.31824493408203
+      },
+      {
+        "id": "e346",
+        "source": 119,
+        "target": 121,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 25.38766098022461
+      },
+      {
+        "id": "e347",
+        "source": 121,
+        "target": 79,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 120.9810791015625
+      },
+      {
+        "id": "e348",
+        "source": 120,
+        "target": 118,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -135.84388732910156
+      },
+      {
+        "id": "e349",
+        "source": 118,
+        "target": 80,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -309.23101806640625
+      },
+      {
+        "id": "e350",
+        "source": 80,
+        "target": 121,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -183.26922607421875
+      },
+      {
+        "id": "e351",
+        "source": 121,
+        "target": 120,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -162.93592834472656
+      },
+      {
+        "id": "e352",
+        "source": 122,
+        "target": 123,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -164.9876251220703
+      },
+      {
+        "id": "e353",
+        "source": 123,
+        "target": 107,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -156.3897705078125
+      },
+      {
+        "id": "e354",
+        "source": 107,
+        "target": 124,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -218.01776123046875
+      },
+      {
+        "id": "e355",
+        "source": 124,
+        "target": 122,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -213.80300903320312
+      },
+      {
+        "id": "e356",
+        "source": 82,
+        "target": 125,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 135.19801330566406
+      },
+      {
+        "id": "e357",
+        "source": 125,
+        "target": 122,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 23.977283477783203
+      },
+      {
+        "id": "e358",
+        "source": 122,
+        "target": 126,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 120.0084457397461
+      },
+      {
+        "id": "e359",
+        "source": 126,
+        "target": 82,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 137.55287170410156
+      },
+      {
+        "id": "e360",
+        "source": 125,
+        "target": 83,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -203.09674072265625
+      },
+      {
+        "id": "e361",
+        "source": 83,
+        "target": 110,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -200.43370056152344
+      },
+      {
+        "id": "e362",
+        "source": 110,
+        "target": 123,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -138.1481170654297
+      },
+      {
+        "id": "e363",
+        "source": 123,
+        "target": 125,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -133.38563537597656
+      },
+      {
+        "id": "e364",
+        "source": 124,
+        "target": 111,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -158.93252563476562
+      },
+      {
+        "id": "e365",
+        "source": 111,
+        "target": 84,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -234.47459411621094
+      },
+      {
+        "id": "e366",
+        "source": 84,
+        "target": 126,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -229.4532928466797
+      },
+      {
+        "id": "e367",
+        "source": 126,
+        "target": 124,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -164.96058654785156
+      },
+      {
+        "id": "e368",
+        "source": 127,
+        "target": 124,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -224.3381805419922
+      },
+      {
+        "id": "e369",
+        "source": 124,
+        "target": 114,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -227.05714416503906
+      },
+      {
+        "id": "e370",
+        "source": 114,
+        "target": 128,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -227.05714416503906
+      },
+      {
+        "id": "e371",
+        "source": 128,
+        "target": 127,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -224.3381805419922
+      },
+      {
+        "id": "e372",
+        "source": 87,
+        "target": 126,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 161.8509979248047
+      },
+      {
+        "id": "e373",
+        "source": 126,
+        "target": 127,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 81.93592834472656
+      },
+      {
+        "id": "e374",
+        "source": 127,
+        "target": 129,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 81.93592834472656
+      },
+      {
+        "id": "e375",
+        "source": 129,
+        "target": 87,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 161.8509979248047
+      },
+      {
+        "id": "e376",
+        "source": 128,
+        "target": 116,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -158.93252563476562
+      },
+      {
+        "id": "e377",
+        "source": 116,
+        "target": 88,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -234.47459411621094
+      },
+      {
+        "id": "e378",
+        "source": 88,
+        "target": 129,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -229.4532928466797
+      },
+      {
+        "id": "e379",
+        "source": 129,
+        "target": 128,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -164.96058654785156
+      },
+      {
+        "id": "e380",
+        "source": 130,
+        "target": 128,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -213.80300903320312
+      },
+      {
+        "id": "e381",
+        "source": 128,
+        "target": 119,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -218.01776123046875
+      },
+      {
+        "id": "e382",
+        "source": 119,
+        "target": 131,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -156.3897705078125
+      },
+      {
+        "id": "e383",
+        "source": 131,
+        "target": 130,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -164.9876251220703
+      },
+      {
+        "id": "e384",
+        "source": 90,
+        "target": 129,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 137.55287170410156
+      },
+      {
+        "id": "e385",
+        "source": 129,
+        "target": 130,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 120.0084457397461
+      },
+      {
+        "id": "e386",
+        "source": 130,
+        "target": 132,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 23.977283477783203
+      },
+      {
+        "id": "e387",
+        "source": 132,
+        "target": 90,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 135.19801330566406
+      },
+      {
+        "id": "e388",
+        "source": 131,
+        "target": 121,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -138.1481170654297
+      },
+      {
+        "id": "e389",
+        "source": 121,
+        "target": 91,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -200.43370056152344
+      },
+      {
+        "id": "e390",
+        "source": 91,
+        "target": 132,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -203.09674072265625
+      },
+      {
+        "id": "e391",
+        "source": 132,
+        "target": 131,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -133.38563537597656
+      },
+      {
+        "id": "e392",
+        "source": 133,
+        "target": 134,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -170.31727600097656
+      },
+      {
+        "id": "e393",
+        "source": 134,
+        "target": 122,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -162.39405822753906
+      },
+      {
+        "id": "e394",
+        "source": 122,
+        "target": 135,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -211.18917846679688
+      },
+      {
+        "id": "e395",
+        "source": 135,
+        "target": 133,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -252.52163696289062
+      },
+      {
+        "id": "e396",
+        "source": 93,
+        "target": 136,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 83.89891052246094
+      },
+      {
+        "id": "e397",
+        "source": 136,
+        "target": 133,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -15.927849769592285
+      },
+      {
+        "id": "e398",
+        "source": 133,
+        "target": 137,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 71.81858825683594
+      },
+      {
+        "id": "e399",
+        "source": 137,
+        "target": 93,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 96.46786499023438
+      },
+      {
+        "id": "e400",
+        "source": 136,
+        "target": 94,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -220.99954223632812
+      },
+      {
+        "id": "e401",
+        "source": 94,
+        "target": 125,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -182.58273315429688
+      },
+      {
+        "id": "e402",
+        "source": 125,
+        "target": 134,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -147.49752807617188
+      },
+      {
+        "id": "e403",
+        "source": 134,
+        "target": 136,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -130.22030639648438
+      },
+      {
+        "id": "e404",
+        "source": 135,
+        "target": 126,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -175.43618774414062
+      },
+      {
+        "id": "e405",
+        "source": 126,
+        "target": 95,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -211.55886840820312
+      },
+      {
+        "id": "e406",
+        "source": 95,
+        "target": 137,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -247.25880432128906
+      },
+      {
+        "id": "e407",
+        "source": 137,
+        "target": 135,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -144.12208557128906
+      },
+      {
+        "id": "e408",
+        "source": 138,
+        "target": 135,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -220.7774200439453
+      },
+      {
+        "id": "e409",
+        "source": 135,
+        "target": 127,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -229.4231719970703
+      },
+      {
+        "id": "e410",
+        "source": 127,
+        "target": 139,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -229.4231719970703
+      },
+      {
+        "id": "e411",
+        "source": 139,
+        "target": 138,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -220.7774200439453
+      },
+      {
+        "id": "e412",
+        "source": 98,
+        "target": 137,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 119.75855255126953
+      },
+      {
+        "id": "e413",
+        "source": 137,
+        "target": 138,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 38.306854248046875
+      },
+      {
+        "id": "e414",
+        "source": 138,
+        "target": 140,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 38.306854248046875
+      },
+      {
+        "id": "e415",
+        "source": 140,
+        "target": 98,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 119.75855255126953
+      },
+      {
+        "id": "e416",
+        "source": 139,
+        "target": 129,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -175.43618774414062
+      },
+      {
+        "id": "e417",
+        "source": 129,
+        "target": 99,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -211.55886840820312
+      },
+      {
+        "id": "e418",
+        "source": 99,
+        "target": 140,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -247.25880432128906
+      },
+      {
+        "id": "e419",
+        "source": 140,
+        "target": 139,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -144.12208557128906
+      },
+      {
+        "id": "e420",
+        "source": 141,
+        "target": 139,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -252.52163696289062
+      },
+      {
+        "id": "e421",
+        "source": 139,
+        "target": 130,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -211.18917846679688
+      },
+      {
+        "id": "e422",
+        "source": 130,
+        "target": 142,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -162.39405822753906
+      },
+      {
+        "id": "e423",
+        "source": 142,
+        "target": 141,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -170.31727600097656
+      },
+      {
+        "id": "e424",
+        "source": 101,
+        "target": 140,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 96.46786499023438
+      },
+      {
+        "id": "e425",
+        "source": 140,
+        "target": 141,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 71.81858825683594
+      },
+      {
+        "id": "e426",
+        "source": 141,
+        "target": 143,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -15.927849769592285
+      },
+      {
+        "id": "e427",
+        "source": 143,
+        "target": 101,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 83.89891052246094
+      },
+      {
+        "id": "e428",
+        "source": 142,
+        "target": 132,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -147.49752807617188
+      },
+      {
+        "id": "e429",
+        "source": 132,
+        "target": 102,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -182.58273315429688
+      },
+      {
+        "id": "e430",
+        "source": 102,
+        "target": 143,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -220.99954223632812
+      },
+      {
+        "id": "e431",
+        "source": 143,
+        "target": 142,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -130.22030639648438
+      }
+    ],
+    "ndofs": 864,
+    "animation": {
+      "showDisplacement": true,
+      "exageration": 2000,
+      "speed": 3
+    },
+    "viz": {
+      "minStress": -347.64988403320314,
+      "maxStress": 178.10598907470705,
+      "colorMaps": [
+        [
+          [
+            0,
+            [
+              0.23,
+              0.299,
+              0.754
+            ]
+          ],
+          [
+            0.002,
+            [
+              0.23,
+              0.299,
+              0.754
+            ]
+          ],
+          [
+            0.004,
+            [
+              0.234,
+              0.306,
+              0.76
+            ]
+          ],
+          [
+            0.006,
+            [
+              0.234,
+              0.306,
+              0.76
+            ]
+          ],
+          [
+            0.008,
+            [
+              0.239,
+              0.312,
+              0.766
+            ]
+          ],
+          [
+            0.01,
+            [
+              0.239,
+              0.312,
+              0.766
+            ]
+          ],
+          [
+            0.012,
+            [
+              0.244,
+              0.319,
+              0.772
+            ]
+          ],
+          [
+            0.014,
+            [
+              0.244,
+              0.319,
+              0.772
+            ]
+          ],
+          [
+            0.016,
+            [
+              0.248,
+              0.326,
+              0.778
+            ]
+          ],
+          [
+            0.018,
+            [
+              0.248,
+              0.326,
+              0.778
+            ]
+          ],
+          [
+            0.02,
+            [
+              0.253,
+              0.333,
+              0.784
+            ]
+          ],
+          [
+            0.022,
+            [
+              0.253,
+              0.333,
+              0.784
+            ]
+          ],
+          [
+            0.023,
+            [
+              0.257,
+              0.34,
+              0.79
+            ]
+          ],
+          [
+            0.025,
+            [
+              0.257,
+              0.34,
+              0.79
+            ]
+          ],
+          [
+            0.027,
+            [
+              0.262,
+              0.346,
+              0.796
+            ]
+          ],
+          [
+            0.029,
+            [
+              0.262,
+              0.346,
+              0.796
+            ]
+          ],
+          [
+            0.031,
+            [
+              0.266,
+              0.353,
+              0.802
+            ]
+          ],
+          [
+            0.033,
+            [
+              0.266,
+              0.353,
+              0.802
+            ]
+          ],
+          [
+            0.035,
+            [
+              0.271,
+              0.36,
+              0.807
+            ]
+          ],
+          [
+            0.037,
+            [
+              0.271,
+              0.36,
+              0.807
+            ]
+          ],
+          [
+            0.039,
+            [
+              0.276,
+              0.367,
+              0.813
+            ]
+          ],
+          [
+            0.041,
+            [
+              0.276,
+              0.367,
+              0.813
+            ]
+          ],
+          [
+            0.043,
+            [
+              0.281,
+              0.373,
+              0.818
+            ]
+          ],
+          [
+            0.045,
+            [
+              0.281,
+              0.373,
+              0.818
+            ]
+          ],
+          [
+            0.047,
+            [
+              0.285,
+              0.38,
+              0.823
+            ]
+          ],
+          [
+            0.049,
+            [
+              0.285,
+              0.38,
+              0.823
+            ]
+          ],
+          [
+            0.051,
+            [
+              0.29,
+              0.387,
+              0.829
+            ]
+          ],
+          [
+            0.053,
+            [
+              0.29,
+              0.387,
+              0.829
+            ]
+          ],
+          [
+            0.055,
+            [
+              0.295,
+              0.394,
+              0.834
+            ]
+          ],
+          [
+            0.057,
+            [
+              0.295,
+              0.394,
+              0.834
+            ]
+          ],
+          [
+            0.059,
+            [
+              0.299,
+              0.4,
+              0.84
+            ]
+          ],
+          [
+            0.061,
+            [
+              0.299,
+              0.4,
+              0.84
+            ]
+          ],
+          [
+            0.063,
+            [
+              0.304,
+              0.407,
+              0.845
+            ]
+          ],
+          [
+            0.065,
+            [
+              0.304,
+              0.407,
+              0.845
+            ]
+          ],
+          [
+            0.067,
+            [
+              0.309,
+              0.413,
+              0.85
+            ]
+          ],
+          [
+            0.068,
+            [
+              0.309,
+              0.413,
+              0.85
+            ]
+          ],
+          [
+            0.07,
+            [
+              0.314,
+              0.42,
+              0.855
+            ]
+          ],
+          [
+            0.072,
+            [
+              0.314,
+              0.42,
+              0.855
+            ]
+          ],
+          [
+            0.074,
+            [
+              0.319,
+              0.427,
+              0.86
+            ]
+          ],
+          [
+            0.076,
+            [
+              0.319,
+              0.427,
+              0.86
+            ]
+          ],
+          [
+            0.078,
+            [
+              0.324,
+              0.433,
+              0.865
+            ]
+          ],
+          [
+            0.08,
+            [
+              0.324,
+              0.433,
+              0.865
+            ]
+          ],
+          [
+            0.082,
+            [
+              0.329,
+              0.44,
+              0.87
+            ]
+          ],
+          [
+            0.084,
+            [
+              0.329,
+              0.44,
+              0.87
+            ]
+          ],
+          [
+            0.086,
+            [
+              0.333,
+              0.446,
+              0.874
+            ]
+          ],
+          [
+            0.088,
+            [
+              0.333,
+              0.446,
+              0.874
+            ]
+          ],
+          [
+            0.09,
+            [
+              0.338,
+              0.453,
+              0.879
+            ]
+          ],
+          [
+            0.092,
+            [
+              0.338,
+              0.453,
+              0.879
+            ]
+          ],
+          [
+            0.094,
+            [
+              0.343,
+              0.459,
+              0.884
+            ]
+          ],
+          [
+            0.096,
+            [
+              0.343,
+              0.459,
+              0.884
+            ]
+          ],
+          [
+            0.098,
+            [
+              0.348,
+              0.466,
+              0.888
+            ]
+          ],
+          [
+            0.1,
+            [
+              0.348,
+              0.466,
+              0.888
+            ]
+          ],
+          [
+            0.102,
+            [
+              0.353,
+              0.472,
+              0.893
+            ]
+          ],
+          [
+            0.104,
+            [
+              0.353,
+              0.472,
+              0.893
+            ]
+          ],
+          [
+            0.106,
+            [
+              0.358,
+              0.478,
+              0.897
+            ]
+          ],
+          [
+            0.108,
+            [
+              0.358,
+              0.478,
+              0.897
+            ]
+          ],
+          [
+            0.11,
+            [
+              0.363,
+              0.485,
+              0.901
+            ]
+          ],
+          [
+            0.112,
+            [
+              0.363,
+              0.485,
+              0.901
+            ]
+          ],
+          [
+            0.114,
+            [
+              0.369,
+              0.491,
+              0.905
+            ]
+          ],
+          [
+            0.115,
+            [
+              0.369,
+              0.491,
+              0.905
+            ]
+          ],
+          [
+            0.117,
+            [
+              0.374,
+              0.497,
+              0.909
+            ]
+          ],
+          [
+            0.119,
+            [
+              0.374,
+              0.497,
+              0.909
+            ]
+          ],
+          [
+            0.121,
+            [
+              0.379,
+              0.504,
+              0.914
+            ]
+          ],
+          [
+            0.123,
+            [
+              0.379,
+              0.504,
+              0.914
+            ]
+          ],
+          [
+            0.125,
+            [
+              0.384,
+              0.51,
+              0.918
+            ]
+          ],
+          [
+            0.127,
+            [
+              0.384,
+              0.51,
+              0.918
+            ]
+          ],
+          [
+            0.129,
+            [
+              0.389,
+              0.516,
+              0.921
+            ]
+          ],
+          [
+            0.131,
+            [
+              0.389,
+              0.516,
+              0.921
+            ]
+          ],
+          [
+            0.133,
+            [
+              0.394,
+              0.522,
+              0.925
+            ]
+          ],
+          [
+            0.135,
+            [
+              0.394,
+              0.522,
+              0.925
+            ]
+          ],
+          [
+            0.137,
+            [
+              0.399,
+              0.529,
+              0.928
+            ]
+          ],
+          [
+            0.139,
+            [
+              0.399,
+              0.529,
+              0.928
+            ]
+          ],
+          [
+            0.141,
+            [
+              0.404,
+              0.535,
+              0.932
+            ]
+          ],
+          [
+            0.143,
+            [
+              0.404,
+              0.535,
+              0.932
+            ]
+          ],
+          [
+            0.145,
+            [
+              0.41,
+              0.541,
+              0.936
+            ]
+          ],
+          [
+            0.147,
+            [
+              0.41,
+              0.541,
+              0.936
+            ]
+          ],
+          [
+            0.149,
+            [
+              0.415,
+              0.547,
+              0.939
+            ]
+          ],
+          [
+            0.151,
+            [
+              0.415,
+              0.547,
+              0.939
+            ]
+          ],
+          [
+            0.153,
+            [
+              0.42,
+              0.553,
+              0.943
+            ]
+          ],
+          [
+            0.155,
+            [
+              0.42,
+              0.553,
+              0.943
+            ]
+          ],
+          [
+            0.157,
+            [
+              0.425,
+              0.559,
+              0.946
+            ]
+          ],
+          [
+            0.159,
+            [
+              0.425,
+              0.559,
+              0.946
+            ]
+          ],
+          [
+            0.16,
+            [
+              0.431,
+              0.565,
+              0.949
+            ]
+          ],
+          [
+            0.162,
+            [
+              0.431,
+              0.565,
+              0.949
+            ]
+          ],
+          [
+            0.164,
+            [
+              0.436,
+              0.571,
+              0.952
+            ]
+          ],
+          [
+            0.166,
+            [
+              0.436,
+              0.571,
+              0.952
+            ]
+          ],
+          [
+            0.168,
+            [
+              0.441,
+              0.577,
+              0.955
+            ]
+          ],
+          [
+            0.17,
+            [
+              0.441,
+              0.577,
+              0.955
+            ]
+          ],
+          [
+            0.172,
+            [
+              0.446,
+              0.582,
+              0.957
+            ]
+          ],
+          [
+            0.174,
+            [
+              0.446,
+              0.582,
+              0.957
+            ]
+          ],
+          [
+            0.176,
+            [
+              0.452,
+              0.588,
+              0.96
+            ]
+          ],
+          [
+            0.178,
+            [
+              0.452,
+              0.588,
+              0.96
+            ]
+          ],
+          [
+            0.18,
+            [
+              0.457,
+              0.594,
+              0.963
+            ]
+          ],
+          [
+            0.182,
+            [
+              0.457,
+              0.594,
+              0.963
+            ]
+          ],
+          [
+            0.184,
+            [
+              0.462,
+              0.6,
+              0.966
+            ]
+          ],
+          [
+            0.186,
+            [
+              0.462,
+              0.6,
+              0.966
+            ]
+          ],
+          [
+            0.188,
+            [
+              0.468,
+              0.606,
+              0.969
+            ]
+          ],
+          [
+            0.19,
+            [
+              0.468,
+              0.606,
+              0.969
+            ]
+          ],
+          [
+            0.192,
+            [
+              0.473,
+              0.611,
+              0.971
+            ]
+          ],
+          [
+            0.194,
+            [
+              0.473,
+              0.611,
+              0.971
+            ]
+          ],
+          [
+            0.196,
+            [
+              0.478,
+              0.617,
+              0.973
+            ]
+          ],
+          [
+            0.198,
+            [
+              0.478,
+              0.617,
+              0.973
+            ]
+          ],
+          [
+            0.2,
+            [
+              0.484,
+              0.622,
+              0.975
+            ]
+          ],
+          [
+            0.202,
+            [
+              0.484,
+              0.622,
+              0.975
+            ]
+          ],
+          [
+            0.204,
+            [
+              0.489,
+              0.628,
+              0.977
+            ]
+          ],
+          [
+            0.205,
+            [
+              0.489,
+              0.628,
+              0.977
+            ]
+          ],
+          [
+            0.207,
+            [
+              0.495,
+              0.633,
+              0.979
+            ]
+          ],
+          [
+            0.209,
+            [
+              0.495,
+              0.633,
+              0.979
+            ]
+          ],
+          [
+            0.211,
+            [
+              0.5,
+              0.639,
+              0.981
+            ]
+          ],
+          [
+            0.213,
+            [
+              0.5,
+              0.639,
+              0.981
+            ]
+          ],
+          [
+            0.215,
+            [
+              0.505,
+              0.644,
+              0.983
+            ]
+          ],
+          [
+            0.217,
+            [
+              0.505,
+              0.644,
+              0.983
+            ]
+          ],
+          [
+            0.219,
+            [
+              0.511,
+              0.649,
+              0.985
+            ]
+          ],
+          [
+            0.221,
+            [
+              0.511,
+              0.649,
+              0.985
+            ]
+          ],
+          [
+            0.223,
+            [
+              0.516,
+              0.654,
+              0.986
+            ]
+          ],
+          [
+            0.225,
+            [
+              0.516,
+              0.654,
+              0.986
+            ]
+          ],
+          [
+            0.227,
+            [
+              0.522,
+              0.66,
+              0.988
+            ]
+          ],
+          [
+            0.229,
+            [
+              0.522,
+              0.66,
+              0.988
+            ]
+          ],
+          [
+            0.231,
+            [
+              0.527,
+              0.665,
+              0.989
+            ]
+          ],
+          [
+            0.233,
+            [
+              0.527,
+              0.665,
+              0.989
+            ]
+          ],
+          [
+            0.235,
+            [
+              0.533,
+              0.67,
+              0.99
+            ]
+          ],
+          [
+            0.237,
+            [
+              0.533,
+              0.67,
+              0.99
+            ]
+          ],
+          [
+            0.239,
+            [
+              0.538,
+              0.675,
+              0.992
+            ]
+          ],
+          [
+            0.241,
+            [
+              0.538,
+              0.675,
+              0.992
+            ]
+          ],
+          [
+            0.243,
+            [
+              0.543,
+              0.68,
+              0.993
+            ]
+          ],
+          [
+            0.245,
+            [
+              0.543,
+              0.68,
+              0.993
+            ]
+          ],
+          [
+            0.247,
+            [
+              0.549,
+              0.685,
+              0.994
+            ]
+          ],
+          [
+            0.249,
+            [
+              0.549,
+              0.685,
+              0.994
+            ]
+          ],
+          [
+            0.25,
+            [
+              0.554,
+              0.69,
+              0.996
+            ]
+          ],
+          [
+            0.252,
+            [
+              0.554,
+              0.69,
+              0.996
+            ]
+          ],
+          [
+            0.254,
+            [
+              0.56,
+              0.695,
+              0.996
+            ]
+          ],
+          [
+            0.256,
+            [
+              0.56,
+              0.695,
+              0.996
+            ]
+          ],
+          [
+            0.258,
+            [
+              0.565,
+              0.699,
+              0.997
+            ]
+          ],
+          [
+            0.26,
+            [
+              0.565,
+              0.699,
+              0.997
+            ]
+          ],
+          [
+            0.262,
+            [
+              0.571,
+              0.704,
+              0.997
+            ]
+          ],
+          [
+            0.264,
+            [
+              0.571,
+              0.704,
+              0.997
+            ]
+          ],
+          [
+            0.266,
+            [
+              0.576,
+              0.709,
+              0.998
+            ]
+          ],
+          [
+            0.268,
+            [
+              0.576,
+              0.709,
+              0.998
+            ]
+          ],
+          [
+            0.27,
+            [
+              0.581,
+              0.713,
+              0.998
+            ]
+          ],
+          [
+            0.272,
+            [
+              0.581,
+              0.713,
+              0.998
+            ]
+          ],
+          [
+            0.274,
+            [
+              0.587,
+              0.718,
+              0.999
+            ]
+          ],
+          [
+            0.276,
+            [
+              0.587,
+              0.718,
+              0.999
+            ]
+          ],
+          [
+            0.278,
+            [
+              0.592,
+              0.723,
+              0.999
+            ]
+          ],
+          [
+            0.28,
+            [
+              0.592,
+              0.723,
+              0.999
+            ]
+          ],
+          [
+            0.282,
+            [
+              0.598,
+              0.727,
+              1
+            ]
+          ],
+          [
+            0.284,
+            [
+              0.598,
+              0.727,
+              1
+            ]
+          ],
+          [
+            0.286,
+            [
+              0.603,
+              0.732,
+              1
+            ]
+          ],
+          [
+            0.288,
+            [
+              0.603,
+              0.732,
+              1
+            ]
+          ],
+          [
+            0.29,
+            [
+              0.609,
+              0.736,
+              0.999
+            ]
+          ],
+          [
+            0.292,
+            [
+              0.609,
+              0.736,
+              0.999
+            ]
+          ],
+          [
+            0.294,
+            [
+              0.614,
+              0.74,
+              0.999
+            ]
+          ],
+          [
+            0.295,
+            [
+              0.614,
+              0.74,
+              0.999
+            ]
+          ],
+          [
+            0.297,
+            [
+              0.619,
+              0.744,
+              0.999
+            ]
+          ],
+          [
+            0.299,
+            [
+              0.619,
+              0.744,
+              0.999
+            ]
+          ],
+          [
+            0.301,
+            [
+              0.625,
+              0.748,
+              0.999
+            ]
+          ],
+          [
+            0.303,
+            [
+              0.625,
+              0.748,
+              0.999
+            ]
+          ],
+          [
+            0.305,
+            [
+              0.63,
+              0.753,
+              0.999
+            ]
+          ],
+          [
+            0.307,
+            [
+              0.63,
+              0.753,
+              0.999
+            ]
+          ],
+          [
+            0.309,
+            [
+              0.635,
+              0.757,
+              0.998
+            ]
+          ],
+          [
+            0.311,
+            [
+              0.635,
+              0.757,
+              0.998
+            ]
+          ],
+          [
+            0.313,
+            [
+              0.641,
+              0.761,
+              0.998
+            ]
+          ],
+          [
+            0.315,
+            [
+              0.641,
+              0.761,
+              0.998
+            ]
+          ],
+          [
+            0.317,
+            [
+              0.646,
+              0.764,
+              0.997
+            ]
+          ],
+          [
+            0.319,
+            [
+              0.646,
+              0.764,
+              0.997
+            ]
+          ],
+          [
+            0.321,
+            [
+              0.651,
+              0.768,
+              0.996
+            ]
+          ],
+          [
+            0.323,
+            [
+              0.651,
+              0.768,
+              0.996
+            ]
+          ],
+          [
+            0.325,
+            [
+              0.657,
+              0.772,
+              0.995
+            ]
+          ],
+          [
+            0.327,
+            [
+              0.657,
+              0.772,
+              0.995
+            ]
+          ],
+          [
+            0.329,
+            [
+              0.662,
+              0.775,
+              0.994
+            ]
+          ],
+          [
+            0.331,
+            [
+              0.662,
+              0.775,
+              0.994
+            ]
+          ],
+          [
+            0.333,
+            [
+              0.667,
+              0.779,
+              0.993
+            ]
+          ],
+          [
+            0.335,
+            [
+              0.667,
+              0.779,
+              0.993
+            ]
+          ],
+          [
+            0.337,
+            [
+              0.673,
+              0.783,
+              0.992
+            ]
+          ],
+          [
+            0.339,
+            [
+              0.673,
+              0.783,
+              0.992
+            ]
+          ],
+          [
+            0.341,
+            [
+              0.678,
+              0.787,
+              0.991
+            ]
+          ],
+          [
+            0.342,
+            [
+              0.678,
+              0.787,
+              0.991
+            ]
+          ],
+          [
+            0.344,
+            [
+              0.683,
+              0.79,
+              0.99
+            ]
+          ],
+          [
+            0.346,
+            [
+              0.683,
+              0.79,
+              0.99
+            ]
+          ],
+          [
+            0.348,
+            [
+              0.688,
+              0.793,
+              0.988
+            ]
+          ],
+          [
+            0.35,
+            [
+              0.688,
+              0.793,
+              0.988
+            ]
+          ],
+          [
+            0.352,
+            [
+              0.693,
+              0.796,
+              0.986
+            ]
+          ],
+          [
+            0.354,
+            [
+              0.693,
+              0.796,
+              0.986
+            ]
+          ],
+          [
+            0.356,
+            [
+              0.698,
+              0.799,
+              0.985
+            ]
+          ],
+          [
+            0.358,
+            [
+              0.698,
+              0.799,
+              0.985
+            ]
+          ],
+          [
+            0.36,
+            [
+              0.704,
+              0.803,
+              0.983
+            ]
+          ],
+          [
+            0.362,
+            [
+              0.704,
+              0.803,
+              0.983
+            ]
+          ],
+          [
+            0.364,
+            [
+              0.709,
+              0.806,
+              0.981
+            ]
+          ],
+          [
+            0.366,
+            [
+              0.709,
+              0.806,
+              0.981
+            ]
+          ],
+          [
+            0.368,
+            [
+              0.714,
+              0.809,
+              0.979
+            ]
+          ],
+          [
+            0.37,
+            [
+              0.714,
+              0.809,
+              0.979
+            ]
+          ],
+          [
+            0.372,
+            [
+              0.719,
+              0.812,
+              0.978
+            ]
+          ],
+          [
+            0.374,
+            [
+              0.719,
+              0.812,
+              0.978
+            ]
+          ],
+          [
+            0.376,
+            [
+              0.724,
+              0.815,
+              0.976
+            ]
+          ],
+          [
+            0.378,
+            [
+              0.724,
+              0.815,
+              0.976
+            ]
+          ],
+          [
+            0.38,
+            [
+              0.729,
+              0.817,
+              0.973
+            ]
+          ],
+          [
+            0.382,
+            [
+              0.729,
+              0.817,
+              0.973
+            ]
+          ],
+          [
+            0.384,
+            [
+              0.734,
+              0.82,
+              0.971
+            ]
+          ],
+          [
+            0.386,
+            [
+              0.734,
+              0.82,
+              0.971
+            ]
+          ],
+          [
+            0.387,
+            [
+              0.739,
+              0.823,
+              0.968
+            ]
+          ],
+          [
+            0.389,
+            [
+              0.739,
+              0.823,
+              0.968
+            ]
+          ],
+          [
+            0.391,
+            [
+              0.744,
+              0.825,
+              0.966
+            ]
+          ],
+          [
+            0.393,
+            [
+              0.744,
+              0.825,
+              0.966
+            ]
+          ],
+          [
+            0.395,
+            [
+              0.749,
+              0.828,
+              0.963
+            ]
+          ],
+          [
+            0.397,
+            [
+              0.749,
+              0.828,
+              0.963
+            ]
+          ],
+          [
+            0.399,
+            [
+              0.754,
+              0.83,
+              0.961
+            ]
+          ],
+          [
+            0.401,
+            [
+              0.754,
+              0.83,
+              0.961
+            ]
+          ],
+          [
+            0.403,
+            [
+              0.759,
+              0.833,
+              0.958
+            ]
+          ],
+          [
+            0.405,
+            [
+              0.759,
+              0.833,
+              0.958
+            ]
+          ],
+          [
+            0.407,
+            [
+              0.763,
+              0.835,
+              0.956
+            ]
+          ],
+          [
+            0.409,
+            [
+              0.763,
+              0.835,
+              0.956
+            ]
+          ],
+          [
+            0.411,
+            [
+              0.768,
+              0.837,
+              0.952
+            ]
+          ],
+          [
+            0.413,
+            [
+              0.768,
+              0.837,
+              0.952
+            ]
+          ],
+          [
+            0.415,
+            [
+              0.773,
+              0.839,
+              0.949
+            ]
+          ],
+          [
+            0.417,
+            [
+              0.773,
+              0.839,
+              0.949
+            ]
+          ],
+          [
+            0.419,
+            [
+              0.777,
+              0.841,
+              0.946
+            ]
+          ],
+          [
+            0.421,
+            [
+              0.777,
+              0.841,
+              0.946
+            ]
+          ],
+          [
+            0.423,
+            [
+              0.782,
+              0.843,
+              0.943
+            ]
+          ],
+          [
+            0.425,
+            [
+              0.782,
+              0.843,
+              0.943
+            ]
+          ],
+          [
+            0.427,
+            [
+              0.787,
+              0.845,
+              0.94
+            ]
+          ],
+          [
+            0.429,
+            [
+              0.787,
+              0.845,
+              0.94
+            ]
+          ],
+          [
+            0.431,
+            [
+              0.791,
+              0.847,
+              0.937
+            ]
+          ],
+          [
+            0.432,
+            [
+              0.791,
+              0.847,
+              0.937
+            ]
+          ],
+          [
+            0.434,
+            [
+              0.796,
+              0.849,
+              0.933
+            ]
+          ],
+          [
+            0.436,
+            [
+              0.796,
+              0.849,
+              0.933
+            ]
+          ],
+          [
+            0.438,
+            [
+              0.801,
+              0.85,
+              0.93
+            ]
+          ],
+          [
+            0.44,
+            [
+              0.801,
+              0.85,
+              0.93
+            ]
+          ],
+          [
+            0.442,
+            [
+              0.805,
+              0.852,
+              0.926
+            ]
+          ],
+          [
+            0.444,
+            [
+              0.805,
+              0.852,
+              0.926
+            ]
+          ],
+          [
+            0.446,
+            [
+              0.809,
+              0.853,
+              0.922
+            ]
+          ],
+          [
+            0.448,
+            [
+              0.809,
+              0.853,
+              0.922
+            ]
+          ],
+          [
+            0.45,
+            [
+              0.814,
+              0.854,
+              0.918
+            ]
+          ],
+          [
+            0.452,
+            [
+              0.814,
+              0.854,
+              0.918
+            ]
+          ],
+          [
+            0.454,
+            [
+              0.818,
+              0.856,
+              0.915
+            ]
+          ],
+          [
+            0.456,
+            [
+              0.818,
+              0.856,
+              0.915
+            ]
+          ],
+          [
+            0.458,
+            [
+              0.822,
+              0.857,
+              0.911
+            ]
+          ],
+          [
+            0.46,
+            [
+              0.822,
+              0.857,
+              0.911
+            ]
+          ],
+          [
+            0.462,
+            [
+              0.827,
+              0.858,
+              0.907
+            ]
+          ],
+          [
+            0.464,
+            [
+              0.827,
+              0.858,
+              0.907
+            ]
+          ],
+          [
+            0.466,
+            [
+              0.831,
+              0.86,
+              0.903
+            ]
+          ],
+          [
+            0.468,
+            [
+              0.831,
+              0.86,
+              0.903
+            ]
+          ],
+          [
+            0.47,
+            [
+              0.835,
+              0.861,
+              0.899
+            ]
+          ],
+          [
+            0.472,
+            [
+              0.835,
+              0.861,
+              0.899
+            ]
+          ],
+          [
+            0.474,
+            [
+              0.839,
+              0.861,
+              0.894
+            ]
+          ],
+          [
+            0.476,
+            [
+              0.839,
+              0.861,
+              0.894
+            ]
+          ],
+          [
+            0.477,
+            [
+              0.843,
+              0.862,
+              0.89
+            ]
+          ],
+          [
+            0.479,
+            [
+              0.843,
+              0.862,
+              0.89
+            ]
+          ],
+          [
+            0.481,
+            [
+              0.847,
+              0.862,
+              0.886
+            ]
+          ],
+          [
+            0.483,
+            [
+              0.847,
+              0.862,
+              0.886
+            ]
+          ],
+          [
+            0.485,
+            [
+              0.851,
+              0.863,
+              0.881
+            ]
+          ],
+          [
+            0.487,
+            [
+              0.851,
+              0.863,
+              0.881
+            ]
+          ],
+          [
+            0.489,
+            [
+              0.855,
+              0.864,
+              0.877
+            ]
+          ],
+          [
+            0.491,
+            [
+              0.855,
+              0.864,
+              0.877
+            ]
+          ],
+          [
+            0.493,
+            [
+              0.859,
+              0.864,
+              0.872
+            ]
+          ],
+          [
+            0.495,
+            [
+              0.859,
+              0.864,
+              0.872
+            ]
+          ],
+          [
+            0.497,
+            [
+              0.863,
+              0.865,
+              0.868
+            ]
+          ],
+          [
+            0.499,
+            [
+              0.863,
+              0.865,
+              0.868
+            ]
+          ],
+          [
+            0.501,
+            [
+              0.867,
+              0.864,
+              0.863
+            ]
+          ],
+          [
+            0.503,
+            [
+              0.867,
+              0.864,
+              0.863
+            ]
+          ],
+          [
+            0.505,
+            [
+              0.871,
+              0.862,
+              0.857
+            ]
+          ],
+          [
+            0.507,
+            [
+              0.871,
+              0.862,
+              0.857
+            ]
+          ],
+          [
+            0.509,
+            [
+              0.876,
+              0.86,
+              0.851
+            ]
+          ],
+          [
+            0.511,
+            [
+              0.876,
+              0.86,
+              0.851
+            ]
+          ],
+          [
+            0.513,
+            [
+              0.88,
+              0.858,
+              0.846
+            ]
+          ],
+          [
+            0.515,
+            [
+              0.88,
+              0.858,
+              0.846
+            ]
+          ],
+          [
+            0.517,
+            [
+              0.884,
+              0.856,
+              0.84
+            ]
+          ],
+          [
+            0.519,
+            [
+              0.884,
+              0.856,
+              0.84
+            ]
+          ],
+          [
+            0.521,
+            [
+              0.888,
+              0.854,
+              0.835
+            ]
+          ],
+          [
+            0.523,
+            [
+              0.888,
+              0.854,
+              0.835
+            ]
+          ],
+          [
+            0.524,
+            [
+              0.892,
+              0.852,
+              0.829
+            ]
+          ],
+          [
+            0.526,
+            [
+              0.892,
+              0.852,
+              0.829
+            ]
+          ],
+          [
+            0.528,
+            [
+              0.896,
+              0.85,
+              0.823
+            ]
+          ],
+          [
+            0.53,
+            [
+              0.896,
+              0.85,
+              0.823
+            ]
+          ],
+          [
+            0.532,
+            [
+              0.9,
+              0.848,
+              0.818
+            ]
+          ],
+          [
+            0.534,
+            [
+              0.9,
+              0.848,
+              0.818
+            ]
+          ],
+          [
+            0.536,
+            [
+              0.903,
+              0.845,
+              0.812
+            ]
+          ],
+          [
+            0.538,
+            [
+              0.903,
+              0.845,
+              0.812
+            ]
+          ],
+          [
+            0.54,
+            [
+              0.906,
+              0.842,
+              0.806
+            ]
+          ],
+          [
+            0.542,
+            [
+              0.906,
+              0.842,
+              0.806
+            ]
+          ],
+          [
+            0.544,
+            [
+              0.909,
+              0.839,
+              0.8
+            ]
+          ],
+          [
+            0.546,
+            [
+              0.909,
+              0.839,
+              0.8
+            ]
+          ],
+          [
+            0.548,
+            [
+              0.913,
+              0.837,
+              0.795
+            ]
+          ],
+          [
+            0.55,
+            [
+              0.913,
+              0.837,
+              0.795
+            ]
+          ],
+          [
+            0.552,
+            [
+              0.916,
+              0.834,
+              0.789
+            ]
+          ],
+          [
+            0.554,
+            [
+              0.916,
+              0.834,
+              0.789
+            ]
+          ],
+          [
+            0.556,
+            [
+              0.919,
+              0.831,
+              0.783
+            ]
+          ],
+          [
+            0.558,
+            [
+              0.919,
+              0.831,
+              0.783
+            ]
+          ],
+          [
+            0.56,
+            [
+              0.923,
+              0.829,
+              0.777
+            ]
+          ],
+          [
+            0.562,
+            [
+              0.923,
+              0.829,
+              0.777
+            ]
+          ],
+          [
+            0.564,
+            [
+              0.926,
+              0.826,
+              0.771
+            ]
+          ],
+          [
+            0.566,
+            [
+              0.926,
+              0.826,
+              0.771
+            ]
+          ],
+          [
+            0.568,
+            [
+              0.928,
+              0.822,
+              0.765
+            ]
+          ],
+          [
+            0.569,
+            [
+              0.928,
+              0.822,
+              0.765
+            ]
+          ],
+          [
+            0.571,
+            [
+              0.931,
+              0.819,
+              0.759
+            ]
+          ],
+          [
+            0.573,
+            [
+              0.931,
+              0.819,
+              0.759
+            ]
+          ],
+          [
+            0.575,
+            [
+              0.933,
+              0.816,
+              0.753
+            ]
+          ],
+          [
+            0.577,
+            [
+              0.933,
+              0.816,
+              0.753
+            ]
+          ],
+          [
+            0.579,
+            [
+              0.936,
+              0.812,
+              0.747
+            ]
+          ],
+          [
+            0.581,
+            [
+              0.936,
+              0.812,
+              0.747
+            ]
+          ],
+          [
+            0.583,
+            [
+              0.938,
+              0.809,
+              0.741
+            ]
+          ],
+          [
+            0.585,
+            [
+              0.938,
+              0.809,
+              0.741
+            ]
+          ],
+          [
+            0.587,
+            [
+              0.941,
+              0.806,
+              0.735
+            ]
+          ],
+          [
+            0.589,
+            [
+              0.941,
+              0.806,
+              0.735
+            ]
+          ],
+          [
+            0.591,
+            [
+              0.943,
+              0.802,
+              0.729
+            ]
+          ],
+          [
+            0.593,
+            [
+              0.943,
+              0.802,
+              0.729
+            ]
+          ],
+          [
+            0.595,
+            [
+              0.946,
+              0.799,
+              0.723
+            ]
+          ],
+          [
+            0.597,
+            [
+              0.946,
+              0.799,
+              0.723
+            ]
+          ],
+          [
+            0.599,
+            [
+              0.947,
+              0.795,
+              0.717
+            ]
+          ],
+          [
+            0.601,
+            [
+              0.947,
+              0.795,
+              0.717
+            ]
+          ],
+          [
+            0.603,
+            [
+              0.949,
+              0.791,
+              0.711
+            ]
+          ],
+          [
+            0.605,
+            [
+              0.949,
+              0.791,
+              0.711
+            ]
+          ],
+          [
+            0.607,
+            [
+              0.951,
+              0.787,
+              0.705
+            ]
+          ],
+          [
+            0.609,
+            [
+              0.951,
+              0.787,
+              0.705
+            ]
+          ],
+          [
+            0.611,
+            [
+              0.953,
+              0.783,
+              0.699
+            ]
+          ],
+          [
+            0.613,
+            [
+              0.953,
+              0.783,
+              0.699
+            ]
+          ],
+          [
+            0.614,
+            [
+              0.955,
+              0.779,
+              0.693
+            ]
+          ],
+          [
+            0.616,
+            [
+              0.955,
+              0.779,
+              0.693
+            ]
+          ],
+          [
+            0.618,
+            [
+              0.956,
+              0.775,
+              0.686
+            ]
+          ],
+          [
+            0.62,
+            [
+              0.956,
+              0.775,
+              0.686
+            ]
+          ],
+          [
+            0.622,
+            [
+              0.958,
+              0.771,
+              0.68
+            ]
+          ],
+          [
+            0.624,
+            [
+              0.958,
+              0.771,
+              0.68
+            ]
+          ],
+          [
+            0.626,
+            [
+              0.96,
+              0.767,
+              0.674
+            ]
+          ],
+          [
+            0.628,
+            [
+              0.96,
+              0.767,
+              0.674
+            ]
+          ],
+          [
+            0.63,
+            [
+              0.961,
+              0.763,
+              0.668
+            ]
+          ],
+          [
+            0.632,
+            [
+              0.961,
+              0.763,
+              0.668
+            ]
+          ],
+          [
+            0.634,
+            [
+              0.962,
+              0.758,
+              0.662
+            ]
+          ],
+          [
+            0.636,
+            [
+              0.962,
+              0.758,
+              0.662
+            ]
+          ],
+          [
+            0.638,
+            [
+              0.963,
+              0.754,
+              0.656
+            ]
+          ],
+          [
+            0.64,
+            [
+              0.963,
+              0.754,
+              0.656
+            ]
+          ],
+          [
+            0.642,
+            [
+              0.964,
+              0.749,
+              0.649
+            ]
+          ],
+          [
+            0.644,
+            [
+              0.964,
+              0.749,
+              0.649
+            ]
+          ],
+          [
+            0.646,
+            [
+              0.965,
+              0.745,
+              0.643
+            ]
+          ],
+          [
+            0.648,
+            [
+              0.965,
+              0.745,
+              0.643
+            ]
+          ],
+          [
+            0.65,
+            [
+              0.966,
+              0.74,
+              0.637
+            ]
+          ],
+          [
+            0.652,
+            [
+              0.966,
+              0.74,
+              0.637
+            ]
+          ],
+          [
+            0.654,
+            [
+              0.967,
+              0.736,
+              0.631
+            ]
+          ],
+          [
+            0.656,
+            [
+              0.967,
+              0.736,
+              0.631
+            ]
+          ],
+          [
+            0.658,
+            [
+              0.968,
+              0.731,
+              0.625
+            ]
+          ],
+          [
+            0.659,
+            [
+              0.968,
+              0.731,
+              0.625
+            ]
+          ],
+          [
+            0.661,
+            [
+              0.968,
+              0.726,
+              0.618
+            ]
+          ],
+          [
+            0.663,
+            [
+              0.968,
+              0.726,
+              0.618
+            ]
+          ],
+          [
+            0.665,
+            [
+              0.968,
+              0.721,
+              0.612
+            ]
+          ],
+          [
+            0.667,
+            [
+              0.968,
+              0.721,
+              0.612
+            ]
+          ],
+          [
+            0.669,
+            [
+              0.969,
+              0.716,
+              0.606
+            ]
+          ],
+          [
+            0.671,
+            [
+              0.969,
+              0.716,
+              0.606
+            ]
+          ],
+          [
+            0.673,
+            [
+              0.969,
+              0.711,
+              0.6
+            ]
+          ],
+          [
+            0.675,
+            [
+              0.969,
+              0.711,
+              0.6
+            ]
+          ],
+          [
+            0.677,
+            [
+              0.969,
+              0.706,
+              0.594
+            ]
+          ],
+          [
+            0.679,
+            [
+              0.969,
+              0.706,
+              0.594
+            ]
+          ],
+          [
+            0.681,
+            [
+              0.97,
+              0.701,
+              0.588
+            ]
+          ],
+          [
+            0.683,
+            [
+              0.97,
+              0.701,
+              0.588
+            ]
+          ],
+          [
+            0.685,
+            [
+              0.97,
+              0.696,
+              0.581
+            ]
+          ],
+          [
+            0.687,
+            [
+              0.97,
+              0.696,
+              0.581
+            ]
+          ],
+          [
+            0.689,
+            [
+              0.97,
+              0.69,
+              0.575
+            ]
+          ],
+          [
+            0.691,
+            [
+              0.97,
+              0.69,
+              0.575
+            ]
+          ],
+          [
+            0.693,
+            [
+              0.969,
+              0.685,
+              0.569
+            ]
+          ],
+          [
+            0.695,
+            [
+              0.969,
+              0.685,
+              0.569
+            ]
+          ],
+          [
+            0.697,
+            [
+              0.969,
+              0.679,
+              0.563
+            ]
+          ],
+          [
+            0.699,
+            [
+              0.969,
+              0.679,
+              0.563
+            ]
+          ],
+          [
+            0.701,
+            [
+              0.968,
+              0.674,
+              0.557
+            ]
+          ],
+          [
+            0.703,
+            [
+              0.968,
+              0.674,
+              0.557
+            ]
+          ],
+          [
+            0.705,
+            [
+              0.968,
+              0.668,
+              0.55
+            ]
+          ],
+          [
+            0.706,
+            [
+              0.968,
+              0.668,
+              0.55
+            ]
+          ],
+          [
+            0.708,
+            [
+              0.968,
+              0.663,
+              0.544
+            ]
+          ],
+          [
+            0.71,
+            [
+              0.968,
+              0.663,
+              0.544
+            ]
+          ],
+          [
+            0.712,
+            [
+              0.967,
+              0.657,
+              0.538
+            ]
+          ],
+          [
+            0.714,
+            [
+              0.967,
+              0.657,
+              0.538
+            ]
+          ],
+          [
+            0.716,
+            [
+              0.967,
+              0.652,
+              0.532
+            ]
+          ],
+          [
+            0.718,
+            [
+              0.967,
+              0.652,
+              0.532
+            ]
+          ],
+          [
+            0.72,
+            [
+              0.966,
+              0.646,
+              0.526
+            ]
+          ],
+          [
+            0.722,
+            [
+              0.966,
+              0.646,
+              0.526
+            ]
+          ],
+          [
+            0.724,
+            [
+              0.965,
+              0.64,
+              0.52
+            ]
+          ],
+          [
+            0.726,
+            [
+              0.965,
+              0.64,
+              0.52
+            ]
+          ],
+          [
+            0.728,
+            [
+              0.964,
+              0.634,
+              0.514
+            ]
+          ],
+          [
+            0.73,
+            [
+              0.964,
+              0.634,
+              0.514
+            ]
+          ],
+          [
+            0.732,
+            [
+              0.963,
+              0.628,
+              0.508
+            ]
+          ],
+          [
+            0.734,
+            [
+              0.963,
+              0.628,
+              0.508
+            ]
+          ],
+          [
+            0.736,
+            [
+              0.962,
+              0.622,
+              0.502
+            ]
+          ],
+          [
+            0.738,
+            [
+              0.962,
+              0.622,
+              0.502
+            ]
+          ],
+          [
+            0.74,
+            [
+              0.96,
+              0.616,
+              0.495
+            ]
+          ],
+          [
+            0.742,
+            [
+              0.96,
+              0.616,
+              0.495
+            ]
+          ],
+          [
+            0.744,
+            [
+              0.959,
+              0.61,
+              0.489
+            ]
+          ],
+          [
+            0.746,
+            [
+              0.959,
+              0.61,
+              0.489
+            ]
+          ],
+          [
+            0.748,
+            [
+              0.958,
+              0.604,
+              0.483
+            ]
+          ],
+          [
+            0.75,
+            [
+              0.958,
+              0.604,
+              0.483
+            ]
+          ],
+          [
+            0.751,
+            [
+              0.957,
+              0.598,
+              0.477
+            ]
+          ],
+          [
+            0.753,
+            [
+              0.957,
+              0.598,
+              0.477
+            ]
+          ],
+          [
+            0.755,
+            [
+              0.955,
+              0.592,
+              0.471
+            ]
+          ],
+          [
+            0.757,
+            [
+              0.955,
+              0.592,
+              0.471
+            ]
+          ],
+          [
+            0.759,
+            [
+              0.953,
+              0.585,
+              0.465
+            ]
+          ],
+          [
+            0.761,
+            [
+              0.953,
+              0.585,
+              0.465
+            ]
+          ],
+          [
+            0.763,
+            [
+              0.951,
+              0.579,
+              0.459
+            ]
+          ],
+          [
+            0.765,
+            [
+              0.951,
+              0.579,
+              0.459
+            ]
+          ],
+          [
+            0.767,
+            [
+              0.949,
+              0.572,
+              0.453
+            ]
+          ],
+          [
+            0.769,
+            [
+              0.949,
+              0.572,
+              0.453
+            ]
+          ],
+          [
+            0.771,
+            [
+              0.948,
+              0.566,
+              0.447
+            ]
+          ],
+          [
+            0.773,
+            [
+              0.948,
+              0.566,
+              0.447
+            ]
+          ],
+          [
+            0.775,
+            [
+              0.946,
+              0.56,
+              0.442
+            ]
+          ],
+          [
+            0.777,
+            [
+              0.946,
+              0.56,
+              0.442
+            ]
+          ],
+          [
+            0.779,
+            [
+              0.944,
+              0.553,
+              0.436
+            ]
+          ],
+          [
+            0.781,
+            [
+              0.944,
+              0.553,
+              0.436
+            ]
+          ],
+          [
+            0.783,
+            [
+              0.942,
+              0.546,
+              0.43
+            ]
+          ],
+          [
+            0.785,
+            [
+              0.942,
+              0.546,
+              0.43
+            ]
+          ],
+          [
+            0.787,
+            [
+              0.939,
+              0.54,
+              0.424
+            ]
+          ],
+          [
+            0.789,
+            [
+              0.939,
+              0.54,
+              0.424
+            ]
+          ],
+          [
+            0.791,
+            [
+              0.937,
+              0.533,
+              0.418
+            ]
+          ],
+          [
+            0.793,
+            [
+              0.937,
+              0.533,
+              0.418
+            ]
+          ],
+          [
+            0.795,
+            [
+              0.934,
+              0.526,
+              0.412
+            ]
+          ],
+          [
+            0.796,
+            [
+              0.934,
+              0.526,
+              0.412
+            ]
+          ],
+          [
+            0.798,
+            [
+              0.932,
+              0.519,
+              0.406
+            ]
+          ],
+          [
+            0.8,
+            [
+              0.932,
+              0.519,
+              0.406
+            ]
+          ],
+          [
+            0.802,
+            [
+              0.929,
+              0.512,
+              0.401
+            ]
+          ],
+          [
+            0.804,
+            [
+              0.929,
+              0.512,
+              0.401
+            ]
+          ],
+          [
+            0.806,
+            [
+              0.927,
+              0.505,
+              0.395
+            ]
+          ],
+          [
+            0.808,
+            [
+              0.927,
+              0.505,
+              0.395
+            ]
+          ],
+          [
+            0.81,
+            [
+              0.924,
+              0.499,
+              0.389
+            ]
+          ],
+          [
+            0.812,
+            [
+              0.924,
+              0.499,
+              0.389
+            ]
+          ],
+          [
+            0.814,
+            [
+              0.921,
+              0.491,
+              0.383
+            ]
+          ],
+          [
+            0.816,
+            [
+              0.921,
+              0.491,
+              0.383
+            ]
+          ],
+          [
+            0.818,
+            [
+              0.918,
+              0.484,
+              0.378
+            ]
+          ],
+          [
+            0.82,
+            [
+              0.918,
+              0.484,
+              0.378
+            ]
+          ],
+          [
+            0.822,
+            [
+              0.915,
+              0.477,
+              0.372
+            ]
+          ],
+          [
+            0.824,
+            [
+              0.915,
+              0.477,
+              0.372
+            ]
+          ],
+          [
+            0.826,
+            [
+              0.912,
+              0.47,
+              0.367
+            ]
+          ],
+          [
+            0.828,
+            [
+              0.912,
+              0.47,
+              0.367
+            ]
+          ],
+          [
+            0.83,
+            [
+              0.909,
+              0.462,
+              0.361
+            ]
+          ],
+          [
+            0.832,
+            [
+              0.909,
+              0.462,
+              0.361
+            ]
+          ],
+          [
+            0.834,
+            [
+              0.906,
+              0.455,
+              0.355
+            ]
+          ],
+          [
+            0.836,
+            [
+              0.906,
+              0.455,
+              0.355
+            ]
+          ],
+          [
+            0.838,
+            [
+              0.903,
+              0.448,
+              0.35
+            ]
+          ],
+          [
+            0.84,
+            [
+              0.903,
+              0.448,
+              0.35
+            ]
+          ],
+          [
+            0.841,
+            [
+              0.9,
+              0.441,
+              0.344
+            ]
+          ],
+          [
+            0.843,
+            [
+              0.9,
+              0.441,
+              0.344
+            ]
+          ],
+          [
+            0.845,
+            [
+              0.896,
+              0.433,
+              0.339
+            ]
+          ],
+          [
+            0.847,
+            [
+              0.896,
+              0.433,
+              0.339
+            ]
+          ],
+          [
+            0.849,
+            [
+              0.892,
+              0.425,
+              0.333
+            ]
+          ],
+          [
+            0.851,
+            [
+              0.892,
+              0.425,
+              0.333
+            ]
+          ],
+          [
+            0.853,
+            [
+              0.888,
+              0.418,
+              0.328
+            ]
+          ],
+          [
+            0.855,
+            [
+              0.888,
+              0.418,
+              0.328
+            ]
+          ],
+          [
+            0.857,
+            [
+              0.885,
+              0.41,
+              0.323
+            ]
+          ],
+          [
+            0.859,
+            [
+              0.885,
+              0.41,
+              0.323
+            ]
+          ],
+          [
+            0.861,
+            [
+              0.881,
+              0.402,
+              0.317
+            ]
+          ],
+          [
+            0.863,
+            [
+              0.881,
+              0.402,
+              0.317
+            ]
+          ],
+          [
+            0.865,
+            [
+              0.877,
+              0.395,
+              0.312
+            ]
+          ],
+          [
+            0.867,
+            [
+              0.877,
+              0.395,
+              0.312
+            ]
+          ],
+          [
+            0.869,
+            [
+              0.873,
+              0.387,
+              0.306
+            ]
+          ],
+          [
+            0.871,
+            [
+              0.873,
+              0.387,
+              0.306
+            ]
+          ],
+          [
+            0.873,
+            [
+              0.87,
+              0.379,
+              0.301
+            ]
+          ],
+          [
+            0.875,
+            [
+              0.87,
+              0.379,
+              0.301
+            ]
+          ],
+          [
+            0.877,
+            [
+              0.865,
+              0.371,
+              0.296
+            ]
+          ],
+          [
+            0.879,
+            [
+              0.865,
+              0.371,
+              0.296
+            ]
+          ],
+          [
+            0.881,
+            [
+              0.861,
+              0.363,
+              0.291
+            ]
+          ],
+          [
+            0.883,
+            [
+              0.861,
+              0.363,
+              0.291
+            ]
+          ],
+          [
+            0.885,
+            [
+              0.857,
+              0.355,
+              0.285
+            ]
+          ],
+          [
+            0.886,
+            [
+              0.857,
+              0.355,
+              0.285
+            ]
+          ],
+          [
+            0.888,
+            [
+              0.852,
+              0.346,
+              0.28
+            ]
+          ],
+          [
+            0.89,
+            [
+              0.852,
+              0.346,
+              0.28
+            ]
+          ],
+          [
+            0.892,
+            [
+              0.848,
+              0.338,
+              0.275
+            ]
+          ],
+          [
+            0.894,
+            [
+              0.848,
+              0.338,
+              0.275
+            ]
+          ],
+          [
+            0.896,
+            [
+              0.844,
+              0.33,
+              0.27
+            ]
+          ],
+          [
+            0.898,
+            [
+              0.844,
+              0.33,
+              0.27
+            ]
+          ],
+          [
+            0.9,
+            [
+              0.839,
+              0.322,
+              0.265
+            ]
+          ],
+          [
+            0.902,
+            [
+              0.839,
+              0.322,
+              0.265
+            ]
+          ],
+          [
+            0.904,
+            [
+              0.835,
+              0.314,
+              0.26
+            ]
+          ],
+          [
+            0.906,
+            [
+              0.835,
+              0.314,
+              0.26
+            ]
+          ],
+          [
+            0.908,
+            [
+              0.83,
+              0.305,
+              0.255
+            ]
+          ],
+          [
+            0.91,
+            [
+              0.83,
+              0.305,
+              0.255
+            ]
+          ],
+          [
+            0.912,
+            [
+              0.825,
+              0.296,
+              0.25
+            ]
+          ],
+          [
+            0.914,
+            [
+              0.825,
+              0.296,
+              0.25
+            ]
+          ],
+          [
+            0.916,
+            [
+              0.82,
+              0.287,
+              0.245
+            ]
+          ],
+          [
+            0.918,
+            [
+              0.82,
+              0.287,
+              0.245
+            ]
+          ],
+          [
+            0.92,
+            [
+              0.816,
+              0.278,
+              0.24
+            ]
+          ],
+          [
+            0.922,
+            [
+              0.816,
+              0.278,
+              0.24
+            ]
+          ],
+          [
+            0.924,
+            [
+              0.811,
+              0.269,
+              0.235
+            ]
+          ],
+          [
+            0.926,
+            [
+              0.811,
+              0.269,
+              0.235
+            ]
+          ],
+          [
+            0.928,
+            [
+              0.806,
+              0.26,
+              0.231
+            ]
+          ],
+          [
+            0.93,
+            [
+              0.806,
+              0.26,
+              0.231
+            ]
+          ],
+          [
+            0.932,
+            [
+              0.801,
+              0.251,
+              0.226
+            ]
+          ],
+          [
+            0.933,
+            [
+              0.801,
+              0.251,
+              0.226
+            ]
+          ],
+          [
+            0.935,
+            [
+              0.796,
+              0.242,
+              0.221
+            ]
+          ],
+          [
+            0.937,
+            [
+              0.796,
+              0.242,
+              0.221
+            ]
+          ],
+          [
+            0.939,
+            [
+              0.791,
+              0.231,
+              0.216
+            ]
+          ],
+          [
+            0.941,
+            [
+              0.791,
+              0.231,
+              0.216
+            ]
+          ],
+          [
+            0.943,
+            [
+              0.785,
+              0.221,
+              0.212
+            ]
+          ],
+          [
+            0.945,
+            [
+              0.785,
+              0.221,
+              0.212
+            ]
+          ],
+          [
+            0.947,
+            [
+              0.78,
+              0.21,
+              0.207
+            ]
+          ],
+          [
+            0.949,
+            [
+              0.78,
+              0.21,
+              0.207
+            ]
+          ],
+          [
+            0.951,
+            [
+              0.774,
+              0.2,
+              0.203
+            ]
+          ],
+          [
+            0.953,
+            [
+              0.774,
+              0.2,
+              0.203
+            ]
+          ],
+          [
+            0.955,
+            [
+              0.769,
+              0.189,
+              0.198
+            ]
+          ],
+          [
+            0.957,
+            [
+              0.769,
+              0.189,
+              0.198
+            ]
+          ],
+          [
+            0.959,
+            [
+              0.764,
+              0.179,
+              0.193
+            ]
+          ],
+          [
+            0.961,
+            [
+              0.764,
+              0.179,
+              0.193
+            ]
+          ],
+          [
+            0.963,
+            [
+              0.758,
+              0.168,
+              0.189
+            ]
+          ],
+          [
+            0.965,
+            [
+              0.758,
+              0.168,
+              0.189
+            ]
+          ],
+          [
+            0.967,
+            [
+              0.753,
+              0.158,
+              0.184
+            ]
+          ],
+          [
+            0.969,
+            [
+              0.753,
+              0.158,
+              0.184
+            ]
+          ],
+          [
+            0.971,
+            [
+              0.747,
+              0.14,
+              0.18
+            ]
+          ],
+          [
+            0.973,
+            [
+              0.747,
+              0.14,
+              0.18
+            ]
+          ],
+          [
+            0.975,
+            [
+              0.741,
+              0.122,
+              0.176
+            ]
+          ],
+          [
+            0.977,
+            [
+              0.741,
+              0.122,
+              0.176
+            ]
+          ],
+          [
+            0.978,
+            [
+              0.735,
+              0.104,
+              0.171
+            ]
+          ],
+          [
+            0.98,
+            [
+              0.735,
+              0.104,
+              0.171
+            ]
+          ],
+          [
+            0.982,
+            [
+              0.729,
+              0.087,
+              0.167
+            ]
+          ],
+          [
+            0.984,
+            [
+              0.729,
+              0.087,
+              0.167
+            ]
+          ],
+          [
+            0.986,
+            [
+              0.723,
+              0.069,
+              0.163
+            ]
+          ],
+          [
+            0.988,
+            [
+              0.723,
+              0.069,
+              0.163
+            ]
+          ],
+          [
+            0.99,
+            [
+              0.717,
+              0.051,
+              0.159
+            ]
+          ],
+          [
+            0.992,
+            [
+              0.717,
+              0.051,
+              0.159
+            ]
+          ],
+          [
+            0.994,
+            [
+              0.712,
+              0.033,
+              0.154
+            ]
+          ],
+          [
+            0.996,
+            [
+              0.712,
+              0.033,
+              0.154
+            ]
+          ],
+          [
+            0.998,
+            [
+              0.706,
+              0.016,
+              0.15
+            ]
+          ],
+          [
+            1,
+            [
+              0.706,
+              0.016,
+              0.15
+            ]
+          ]
+        ],
+        [
+          [
+            0,
+            [
+              1,
+              1,
+              0.851
+            ]
+          ],
+          [
+            0.002,
+            [
+              1,
+              1,
+              0.851
+            ]
+          ],
+          [
+            0.004,
+            [
+              0.998,
+              0.999,
+              0.846
+            ]
+          ],
+          [
+            0.006,
+            [
+              0.998,
+              0.999,
+              0.846
+            ]
+          ],
+          [
+            0.008,
+            [
+              0.996,
+              0.998,
+              0.841
+            ]
+          ],
+          [
+            0.01,
+            [
+              0.996,
+              0.998,
+              0.841
+            ]
+          ],
+          [
+            0.012,
+            [
+              0.993,
+              0.997,
+              0.836
+            ]
+          ],
+          [
+            0.014,
+            [
+              0.993,
+              0.997,
+              0.836
+            ]
+          ],
+          [
+            0.016,
+            [
+              0.991,
+              0.997,
+              0.831
+            ]
+          ],
+          [
+            0.018,
+            [
+              0.991,
+              0.997,
+              0.831
+            ]
+          ],
+          [
+            0.02,
+            [
+              0.989,
+              0.996,
+              0.826
+            ]
+          ],
+          [
+            0.022,
+            [
+              0.989,
+              0.996,
+              0.826
+            ]
+          ],
+          [
+            0.023,
+            [
+              0.987,
+              0.995,
+              0.821
+            ]
+          ],
+          [
+            0.025,
+            [
+              0.987,
+              0.995,
+              0.821
+            ]
+          ],
+          [
+            0.027,
+            [
+              0.984,
+              0.994,
+              0.817
+            ]
+          ],
+          [
+            0.029,
+            [
+              0.984,
+              0.994,
+              0.817
+            ]
+          ],
+          [
+            0.031,
+            [
+              0.982,
+              0.993,
+              0.812
+            ]
+          ],
+          [
+            0.033,
+            [
+              0.982,
+              0.993,
+              0.812
+            ]
+          ],
+          [
+            0.035,
+            [
+              0.98,
+              0.992,
+              0.807
+            ]
+          ],
+          [
+            0.037,
+            [
+              0.98,
+              0.992,
+              0.807
+            ]
+          ],
+          [
+            0.039,
+            [
+              0.978,
+              0.991,
+              0.802
+            ]
+          ],
+          [
+            0.041,
+            [
+              0.978,
+              0.991,
+              0.802
+            ]
+          ],
+          [
+            0.043,
+            [
+              0.976,
+              0.991,
+              0.797
+            ]
+          ],
+          [
+            0.045,
+            [
+              0.976,
+              0.991,
+              0.797
+            ]
+          ],
+          [
+            0.047,
+            [
+              0.973,
+              0.99,
+              0.792
+            ]
+          ],
+          [
+            0.049,
+            [
+              0.973,
+              0.99,
+              0.792
+            ]
+          ],
+          [
+            0.051,
+            [
+              0.971,
+              0.989,
+              0.787
+            ]
+          ],
+          [
+            0.053,
+            [
+              0.971,
+              0.989,
+              0.787
+            ]
+          ],
+          [
+            0.055,
+            [
+              0.969,
+              0.988,
+              0.782
+            ]
+          ],
+          [
+            0.057,
+            [
+              0.969,
+              0.988,
+              0.782
+            ]
+          ],
+          [
+            0.059,
+            [
+              0.967,
+              0.987,
+              0.777
+            ]
+          ],
+          [
+            0.061,
+            [
+              0.967,
+              0.987,
+              0.777
+            ]
+          ],
+          [
+            0.063,
+            [
+              0.965,
+              0.986,
+              0.772
+            ]
+          ],
+          [
+            0.065,
+            [
+              0.965,
+              0.986,
+              0.772
+            ]
+          ],
+          [
+            0.067,
+            [
+              0.962,
+              0.985,
+              0.767
+            ]
+          ],
+          [
+            0.068,
+            [
+              0.962,
+              0.985,
+              0.767
+            ]
+          ],
+          [
+            0.07,
+            [
+              0.96,
+              0.984,
+              0.762
+            ]
+          ],
+          [
+            0.072,
+            [
+              0.96,
+              0.984,
+              0.762
+            ]
+          ],
+          [
+            0.074,
+            [
+              0.958,
+              0.984,
+              0.757
+            ]
+          ],
+          [
+            0.076,
+            [
+              0.958,
+              0.984,
+              0.757
+            ]
+          ],
+          [
+            0.078,
+            [
+              0.956,
+              0.983,
+              0.753
+            ]
+          ],
+          [
+            0.08,
+            [
+              0.956,
+              0.983,
+              0.753
+            ]
+          ],
+          [
+            0.082,
+            [
+              0.953,
+              0.982,
+              0.748
+            ]
+          ],
+          [
+            0.084,
+            [
+              0.953,
+              0.982,
+              0.748
+            ]
+          ],
+          [
+            0.086,
+            [
+              0.951,
+              0.981,
+              0.743
+            ]
+          ],
+          [
+            0.088,
+            [
+              0.951,
+              0.981,
+              0.743
+            ]
+          ],
+          [
+            0.09,
+            [
+              0.949,
+              0.98,
+              0.738
+            ]
+          ],
+          [
+            0.092,
+            [
+              0.949,
+              0.98,
+              0.738
+            ]
+          ],
+          [
+            0.094,
+            [
+              0.947,
+              0.979,
+              0.733
+            ]
+          ],
+          [
+            0.096,
+            [
+              0.947,
+              0.979,
+              0.733
+            ]
+          ],
+          [
+            0.098,
+            [
+              0.945,
+              0.978,
+              0.728
+            ]
+          ],
+          [
+            0.1,
+            [
+              0.945,
+              0.978,
+              0.728
+            ]
+          ],
+          [
+            0.102,
+            [
+              0.942,
+              0.978,
+              0.723
+            ]
+          ],
+          [
+            0.104,
+            [
+              0.942,
+              0.978,
+              0.723
+            ]
+          ],
+          [
+            0.106,
+            [
+              0.94,
+              0.977,
+              0.718
+            ]
+          ],
+          [
+            0.108,
+            [
+              0.94,
+              0.977,
+              0.718
+            ]
+          ],
+          [
+            0.11,
+            [
+              0.938,
+              0.976,
+              0.713
+            ]
+          ],
+          [
+            0.112,
+            [
+              0.938,
+              0.976,
+              0.713
+            ]
+          ],
+          [
+            0.114,
+            [
+              0.936,
+              0.975,
+              0.708
+            ]
+          ],
+          [
+            0.115,
+            [
+              0.936,
+              0.975,
+              0.708
+            ]
+          ],
+          [
+            0.117,
+            [
+              0.934,
+              0.974,
+              0.703
+            ]
+          ],
+          [
+            0.119,
+            [
+              0.934,
+              0.974,
+              0.703
+            ]
+          ],
+          [
+            0.121,
+            [
+              0.931,
+              0.973,
+              0.698
+            ]
+          ],
+          [
+            0.123,
+            [
+              0.931,
+              0.973,
+              0.698
+            ]
+          ],
+          [
+            0.125,
+            [
+              0.929,
+              0.972,
+              0.694
+            ]
+          ],
+          [
+            0.127,
+            [
+              0.929,
+              0.972,
+              0.694
+            ]
+          ],
+          [
+            0.129,
+            [
+              0.924,
+              0.97,
+              0.695
+            ]
+          ],
+          [
+            0.131,
+            [
+              0.924,
+              0.97,
+              0.695
+            ]
+          ],
+          [
+            0.133,
+            [
+              0.919,
+              0.969,
+              0.695
+            ]
+          ],
+          [
+            0.135,
+            [
+              0.919,
+              0.969,
+              0.695
+            ]
+          ],
+          [
+            0.137,
+            [
+              0.915,
+              0.967,
+              0.695
+            ]
+          ],
+          [
+            0.139,
+            [
+              0.915,
+              0.967,
+              0.695
+            ]
+          ],
+          [
+            0.141,
+            [
+              0.91,
+              0.965,
+              0.696
+            ]
+          ],
+          [
+            0.143,
+            [
+              0.91,
+              0.965,
+              0.696
+            ]
+          ],
+          [
+            0.145,
+            [
+              0.905,
+              0.963,
+              0.696
+            ]
+          ],
+          [
+            0.147,
+            [
+              0.905,
+              0.963,
+              0.696
+            ]
+          ],
+          [
+            0.149,
+            [
+              0.901,
+              0.961,
+              0.696
+            ]
+          ],
+          [
+            0.151,
+            [
+              0.901,
+              0.961,
+              0.696
+            ]
+          ],
+          [
+            0.153,
+            [
+              0.896,
+              0.959,
+              0.697
+            ]
+          ],
+          [
+            0.155,
+            [
+              0.896,
+              0.959,
+              0.697
+            ]
+          ],
+          [
+            0.157,
+            [
+              0.891,
+              0.958,
+              0.697
+            ]
+          ],
+          [
+            0.159,
+            [
+              0.891,
+              0.958,
+              0.697
+            ]
+          ],
+          [
+            0.16,
+            [
+              0.887,
+              0.956,
+              0.697
+            ]
+          ],
+          [
+            0.162,
+            [
+              0.887,
+              0.956,
+              0.697
+            ]
+          ],
+          [
+            0.164,
+            [
+              0.882,
+              0.954,
+              0.698
+            ]
+          ],
+          [
+            0.166,
+            [
+              0.882,
+              0.954,
+              0.698
+            ]
+          ],
+          [
+            0.168,
+            [
+              0.877,
+              0.952,
+              0.698
+            ]
+          ],
+          [
+            0.17,
+            [
+              0.877,
+              0.952,
+              0.698
+            ]
+          ],
+          [
+            0.172,
+            [
+              0.873,
+              0.95,
+              0.699
+            ]
+          ],
+          [
+            0.174,
+            [
+              0.873,
+              0.95,
+              0.699
+            ]
+          ],
+          [
+            0.176,
+            [
+              0.868,
+              0.948,
+              0.699
+            ]
+          ],
+          [
+            0.178,
+            [
+              0.868,
+              0.948,
+              0.699
+            ]
+          ],
+          [
+            0.18,
+            [
+              0.863,
+              0.946,
+              0.699
+            ]
+          ],
+          [
+            0.182,
+            [
+              0.863,
+              0.946,
+              0.699
+            ]
+          ],
+          [
+            0.184,
+            [
+              0.859,
+              0.945,
+              0.7
+            ]
+          ],
+          [
+            0.186,
+            [
+              0.859,
+              0.945,
+              0.7
+            ]
+          ],
+          [
+            0.188,
+            [
+              0.854,
+              0.943,
+              0.7
+            ]
+          ],
+          [
+            0.19,
+            [
+              0.854,
+              0.943,
+              0.7
+            ]
+          ],
+          [
+            0.192,
+            [
+              0.849,
+              0.941,
+              0.7
+            ]
+          ],
+          [
+            0.194,
+            [
+              0.849,
+              0.941,
+              0.7
+            ]
+          ],
+          [
+            0.196,
+            [
+              0.845,
+              0.939,
+              0.701
+            ]
+          ],
+          [
+            0.198,
+            [
+              0.845,
+              0.939,
+              0.701
+            ]
+          ],
+          [
+            0.2,
+            [
+              0.84,
+              0.937,
+              0.701
+            ]
+          ],
+          [
+            0.202,
+            [
+              0.84,
+              0.937,
+              0.701
+            ]
+          ],
+          [
+            0.204,
+            [
+              0.835,
+              0.935,
+              0.702
+            ]
+          ],
+          [
+            0.205,
+            [
+              0.835,
+              0.935,
+              0.702
+            ]
+          ],
+          [
+            0.207,
+            [
+              0.831,
+              0.934,
+              0.702
+            ]
+          ],
+          [
+            0.209,
+            [
+              0.831,
+              0.934,
+              0.702
+            ]
+          ],
+          [
+            0.211,
+            [
+              0.826,
+              0.932,
+              0.702
+            ]
+          ],
+          [
+            0.213,
+            [
+              0.826,
+              0.932,
+              0.702
+            ]
+          ],
+          [
+            0.215,
+            [
+              0.821,
+              0.93,
+              0.703
+            ]
+          ],
+          [
+            0.217,
+            [
+              0.821,
+              0.93,
+              0.703
+            ]
+          ],
+          [
+            0.219,
+            [
+              0.817,
+              0.928,
+              0.703
+            ]
+          ],
+          [
+            0.221,
+            [
+              0.817,
+              0.928,
+              0.703
+            ]
+          ],
+          [
+            0.223,
+            [
+              0.812,
+              0.926,
+              0.703
+            ]
+          ],
+          [
+            0.225,
+            [
+              0.812,
+              0.926,
+              0.703
+            ]
+          ],
+          [
+            0.227,
+            [
+              0.807,
+              0.924,
+              0.704
+            ]
+          ],
+          [
+            0.229,
+            [
+              0.807,
+              0.924,
+              0.704
+            ]
+          ],
+          [
+            0.231,
+            [
+              0.803,
+              0.922,
+              0.704
+            ]
+          ],
+          [
+            0.233,
+            [
+              0.803,
+              0.922,
+              0.704
+            ]
+          ],
+          [
+            0.235,
+            [
+              0.798,
+              0.921,
+              0.704
+            ]
+          ],
+          [
+            0.237,
+            [
+              0.798,
+              0.921,
+              0.704
+            ]
+          ],
+          [
+            0.239,
+            [
+              0.793,
+              0.919,
+              0.705
+            ]
+          ],
+          [
+            0.241,
+            [
+              0.793,
+              0.919,
+              0.705
+            ]
+          ],
+          [
+            0.243,
+            [
+              0.789,
+              0.917,
+              0.705
+            ]
+          ],
+          [
+            0.245,
+            [
+              0.789,
+              0.917,
+              0.705
+            ]
+          ],
+          [
+            0.247,
+            [
+              0.784,
+              0.915,
+              0.706
+            ]
+          ],
+          [
+            0.249,
+            [
+              0.784,
+              0.915,
+              0.706
+            ]
+          ],
+          [
+            0.25,
+            [
+              0.778,
+              0.913,
+              0.706
+            ]
+          ],
+          [
+            0.252,
+            [
+              0.778,
+              0.913,
+              0.706
+            ]
+          ],
+          [
+            0.254,
+            [
+              0.769,
+              0.909,
+              0.707
+            ]
+          ],
+          [
+            0.256,
+            [
+              0.769,
+              0.909,
+              0.707
+            ]
+          ],
+          [
+            0.258,
+            [
+              0.76,
+              0.906,
+              0.708
+            ]
+          ],
+          [
+            0.26,
+            [
+              0.76,
+              0.906,
+              0.708
+            ]
+          ],
+          [
+            0.262,
+            [
+              0.752,
+              0.903,
+              0.709
+            ]
+          ],
+          [
+            0.264,
+            [
+              0.752,
+              0.903,
+              0.709
+            ]
+          ],
+          [
+            0.266,
+            [
+              0.743,
+              0.899,
+              0.71
+            ]
+          ],
+          [
+            0.268,
+            [
+              0.743,
+              0.899,
+              0.71
+            ]
+          ],
+          [
+            0.27,
+            [
+              0.734,
+              0.896,
+              0.71
+            ]
+          ],
+          [
+            0.272,
+            [
+              0.734,
+              0.896,
+              0.71
+            ]
+          ],
+          [
+            0.274,
+            [
+              0.725,
+              0.892,
+              0.711
+            ]
+          ],
+          [
+            0.276,
+            [
+              0.725,
+              0.892,
+              0.711
+            ]
+          ],
+          [
+            0.278,
+            [
+              0.716,
+              0.889,
+              0.712
+            ]
+          ],
+          [
+            0.28,
+            [
+              0.716,
+              0.889,
+              0.712
+            ]
+          ],
+          [
+            0.282,
+            [
+              0.707,
+              0.885,
+              0.713
+            ]
+          ],
+          [
+            0.284,
+            [
+              0.707,
+              0.885,
+              0.713
+            ]
+          ],
+          [
+            0.286,
+            [
+              0.698,
+              0.882,
+              0.714
+            ]
+          ],
+          [
+            0.288,
+            [
+              0.698,
+              0.882,
+              0.714
+            ]
+          ],
+          [
+            0.29,
+            [
+              0.69,
+              0.878,
+              0.715
+            ]
+          ],
+          [
+            0.292,
+            [
+              0.69,
+              0.878,
+              0.715
+            ]
+          ],
+          [
+            0.294,
+            [
+              0.681,
+              0.875,
+              0.716
+            ]
+          ],
+          [
+            0.295,
+            [
+              0.681,
+              0.875,
+              0.716
+            ]
+          ],
+          [
+            0.297,
+            [
+              0.672,
+              0.872,
+              0.716
+            ]
+          ],
+          [
+            0.299,
+            [
+              0.672,
+              0.872,
+              0.716
+            ]
+          ],
+          [
+            0.301,
+            [
+              0.663,
+              0.868,
+              0.717
+            ]
+          ],
+          [
+            0.303,
+            [
+              0.663,
+              0.868,
+              0.717
+            ]
+          ],
+          [
+            0.305,
+            [
+              0.654,
+              0.865,
+              0.718
+            ]
+          ],
+          [
+            0.307,
+            [
+              0.654,
+              0.865,
+              0.718
+            ]
+          ],
+          [
+            0.309,
+            [
+              0.645,
+              0.861,
+              0.719
+            ]
+          ],
+          [
+            0.311,
+            [
+              0.645,
+              0.861,
+              0.719
+            ]
+          ],
+          [
+            0.313,
+            [
+              0.636,
+              0.858,
+              0.72
+            ]
+          ],
+          [
+            0.315,
+            [
+              0.636,
+              0.858,
+              0.72
+            ]
+          ],
+          [
+            0.317,
+            [
+              0.628,
+              0.854,
+              0.721
+            ]
+          ],
+          [
+            0.319,
+            [
+              0.628,
+              0.854,
+              0.721
+            ]
+          ],
+          [
+            0.321,
+            [
+              0.619,
+              0.851,
+              0.722
+            ]
+          ],
+          [
+            0.323,
+            [
+              0.619,
+              0.851,
+              0.722
+            ]
+          ],
+          [
+            0.325,
+            [
+              0.61,
+              0.847,
+              0.722
+            ]
+          ],
+          [
+            0.327,
+            [
+              0.61,
+              0.847,
+              0.722
+            ]
+          ],
+          [
+            0.329,
+            [
+              0.601,
+              0.844,
+              0.723
+            ]
+          ],
+          [
+            0.331,
+            [
+              0.601,
+              0.844,
+              0.723
+            ]
+          ],
+          [
+            0.333,
+            [
+              0.592,
+              0.841,
+              0.724
+            ]
+          ],
+          [
+            0.335,
+            [
+              0.592,
+              0.841,
+              0.724
+            ]
+          ],
+          [
+            0.337,
+            [
+              0.583,
+              0.837,
+              0.725
+            ]
+          ],
+          [
+            0.339,
+            [
+              0.583,
+              0.837,
+              0.725
+            ]
+          ],
+          [
+            0.341,
+            [
+              0.574,
+              0.834,
+              0.726
+            ]
+          ],
+          [
+            0.342,
+            [
+              0.574,
+              0.834,
+              0.726
+            ]
+          ],
+          [
+            0.344,
+            [
+              0.566,
+              0.83,
+              0.727
+            ]
+          ],
+          [
+            0.346,
+            [
+              0.566,
+              0.83,
+              0.727
+            ]
+          ],
+          [
+            0.348,
+            [
+              0.557,
+              0.827,
+              0.728
+            ]
+          ],
+          [
+            0.35,
+            [
+              0.557,
+              0.827,
+              0.728
+            ]
+          ],
+          [
+            0.352,
+            [
+              0.548,
+              0.823,
+              0.728
+            ]
+          ],
+          [
+            0.354,
+            [
+              0.548,
+              0.823,
+              0.728
+            ]
+          ],
+          [
+            0.356,
+            [
+              0.539,
+              0.82,
+              0.729
+            ]
+          ],
+          [
+            0.358,
+            [
+              0.539,
+              0.82,
+              0.729
+            ]
+          ],
+          [
+            0.36,
+            [
+              0.53,
+              0.816,
+              0.73
+            ]
+          ],
+          [
+            0.362,
+            [
+              0.53,
+              0.816,
+              0.73
+            ]
+          ],
+          [
+            0.364,
+            [
+              0.521,
+              0.813,
+              0.731
+            ]
+          ],
+          [
+            0.366,
+            [
+              0.521,
+              0.813,
+              0.731
+            ]
+          ],
+          [
+            0.368,
+            [
+              0.512,
+              0.81,
+              0.732
+            ]
+          ],
+          [
+            0.37,
+            [
+              0.512,
+              0.81,
+              0.732
+            ]
+          ],
+          [
+            0.372,
+            [
+              0.504,
+              0.806,
+              0.733
+            ]
+          ],
+          [
+            0.374,
+            [
+              0.504,
+              0.806,
+              0.733
+            ]
+          ],
+          [
+            0.376,
+            [
+              0.495,
+              0.803,
+              0.734
+            ]
+          ],
+          [
+            0.378,
+            [
+              0.495,
+              0.803,
+              0.734
+            ]
+          ],
+          [
+            0.38,
+            [
+              0.488,
+              0.8,
+              0.735
+            ]
+          ],
+          [
+            0.382,
+            [
+              0.488,
+              0.8,
+              0.735
+            ]
+          ],
+          [
+            0.384,
+            [
+              0.48,
+              0.797,
+              0.736
+            ]
+          ],
+          [
+            0.386,
+            [
+              0.48,
+              0.797,
+              0.736
+            ]
+          ],
+          [
+            0.387,
+            [
+              0.472,
+              0.794,
+              0.737
+            ]
+          ],
+          [
+            0.389,
+            [
+              0.472,
+              0.794,
+              0.737
+            ]
+          ],
+          [
+            0.391,
+            [
+              0.465,
+              0.792,
+              0.738
+            ]
+          ],
+          [
+            0.393,
+            [
+              0.465,
+              0.792,
+              0.738
+            ]
+          ],
+          [
+            0.395,
+            [
+              0.457,
+              0.789,
+              0.739
+            ]
+          ],
+          [
+            0.397,
+            [
+              0.457,
+              0.789,
+              0.739
+            ]
+          ],
+          [
+            0.399,
+            [
+              0.449,
+              0.786,
+              0.74
+            ]
+          ],
+          [
+            0.401,
+            [
+              0.449,
+              0.786,
+              0.74
+            ]
+          ],
+          [
+            0.403,
+            [
+              0.442,
+              0.783,
+              0.741
+            ]
+          ],
+          [
+            0.405,
+            [
+              0.442,
+              0.783,
+              0.741
+            ]
+          ],
+          [
+            0.407,
+            [
+              0.434,
+              0.78,
+              0.743
+            ]
+          ],
+          [
+            0.409,
+            [
+              0.434,
+              0.78,
+              0.743
+            ]
+          ],
+          [
+            0.411,
+            [
+              0.427,
+              0.777,
+              0.744
+            ]
+          ],
+          [
+            0.413,
+            [
+              0.427,
+              0.777,
+              0.744
+            ]
+          ],
+          [
+            0.415,
+            [
+              0.419,
+              0.775,
+              0.745
+            ]
+          ],
+          [
+            0.417,
+            [
+              0.419,
+              0.775,
+              0.745
+            ]
+          ],
+          [
+            0.419,
+            [
+              0.411,
+              0.772,
+              0.746
+            ]
+          ],
+          [
+            0.421,
+            [
+              0.411,
+              0.772,
+              0.746
+            ]
+          ],
+          [
+            0.423,
+            [
+              0.404,
+              0.769,
+              0.747
+            ]
+          ],
+          [
+            0.425,
+            [
+              0.404,
+              0.769,
+              0.747
+            ]
+          ],
+          [
+            0.427,
+            [
+              0.396,
+              0.766,
+              0.748
+            ]
+          ],
+          [
+            0.429,
+            [
+              0.396,
+              0.766,
+              0.748
+            ]
+          ],
+          [
+            0.431,
+            [
+              0.388,
+              0.763,
+              0.749
+            ]
+          ],
+          [
+            0.432,
+            [
+              0.388,
+              0.763,
+              0.749
+            ]
+          ],
+          [
+            0.434,
+            [
+              0.381,
+              0.76,
+              0.75
+            ]
+          ],
+          [
+            0.436,
+            [
+              0.381,
+              0.76,
+              0.75
+            ]
+          ],
+          [
+            0.438,
+            [
+              0.373,
+              0.758,
+              0.751
+            ]
+          ],
+          [
+            0.44,
+            [
+              0.373,
+              0.758,
+              0.751
+            ]
+          ],
+          [
+            0.442,
+            [
+              0.366,
+              0.755,
+              0.753
+            ]
+          ],
+          [
+            0.444,
+            [
+              0.366,
+              0.755,
+              0.753
+            ]
+          ],
+          [
+            0.446,
+            [
+              0.358,
+              0.752,
+              0.754
+            ]
+          ],
+          [
+            0.448,
+            [
+              0.358,
+              0.752,
+              0.754
+            ]
+          ],
+          [
+            0.45,
+            [
+              0.35,
+              0.749,
+              0.755
+            ]
+          ],
+          [
+            0.452,
+            [
+              0.35,
+              0.749,
+              0.755
+            ]
+          ],
+          [
+            0.454,
+            [
+              0.343,
+              0.746,
+              0.756
+            ]
+          ],
+          [
+            0.456,
+            [
+              0.343,
+              0.746,
+              0.756
+            ]
+          ],
+          [
+            0.458,
+            [
+              0.335,
+              0.743,
+              0.757
+            ]
+          ],
+          [
+            0.46,
+            [
+              0.335,
+              0.743,
+              0.757
+            ]
+          ],
+          [
+            0.462,
+            [
+              0.327,
+              0.741,
+              0.758
+            ]
+          ],
+          [
+            0.464,
+            [
+              0.327,
+              0.741,
+              0.758
+            ]
+          ],
+          [
+            0.466,
+            [
+              0.32,
+              0.738,
+              0.759
+            ]
+          ],
+          [
+            0.468,
+            [
+              0.32,
+              0.738,
+              0.759
+            ]
+          ],
+          [
+            0.47,
+            [
+              0.312,
+              0.735,
+              0.76
+            ]
+          ],
+          [
+            0.472,
+            [
+              0.312,
+              0.735,
+              0.76
+            ]
+          ],
+          [
+            0.474,
+            [
+              0.304,
+              0.732,
+              0.761
+            ]
+          ],
+          [
+            0.476,
+            [
+              0.304,
+              0.732,
+              0.761
+            ]
+          ],
+          [
+            0.477,
+            [
+              0.297,
+              0.729,
+              0.763
+            ]
+          ],
+          [
+            0.479,
+            [
+              0.297,
+              0.729,
+              0.763
+            ]
+          ],
+          [
+            0.481,
+            [
+              0.289,
+              0.726,
+              0.764
+            ]
+          ],
+          [
+            0.483,
+            [
+              0.289,
+              0.726,
+              0.764
+            ]
+          ],
+          [
+            0.485,
+            [
+              0.282,
+              0.724,
+              0.765
+            ]
+          ],
+          [
+            0.487,
+            [
+              0.282,
+              0.724,
+              0.765
+            ]
+          ],
+          [
+            0.489,
+            [
+              0.274,
+              0.721,
+              0.766
+            ]
+          ],
+          [
+            0.491,
+            [
+              0.274,
+              0.721,
+              0.766
+            ]
+          ],
+          [
+            0.493,
+            [
+              0.266,
+              0.718,
+              0.767
+            ]
+          ],
+          [
+            0.495,
+            [
+              0.266,
+              0.718,
+              0.767
+            ]
+          ],
+          [
+            0.497,
+            [
+              0.259,
+              0.715,
+              0.768
+            ]
+          ],
+          [
+            0.499,
+            [
+              0.259,
+              0.715,
+              0.768
+            ]
+          ],
+          [
+            0.501,
+            [
+              0.253,
+              0.711,
+              0.768
+            ]
+          ],
+          [
+            0.503,
+            [
+              0.253,
+              0.711,
+              0.768
+            ]
+          ],
+          [
+            0.505,
+            [
+              0.248,
+              0.707,
+              0.768
+            ]
+          ],
+          [
+            0.507,
+            [
+              0.248,
+              0.707,
+              0.768
+            ]
+          ],
+          [
+            0.509,
+            [
+              0.244,
+              0.702,
+              0.767
+            ]
+          ],
+          [
+            0.511,
+            [
+              0.244,
+              0.702,
+              0.767
+            ]
+          ],
+          [
+            0.513,
+            [
+              0.239,
+              0.698,
+              0.767
+            ]
+          ],
+          [
+            0.515,
+            [
+              0.239,
+              0.698,
+              0.767
+            ]
+          ],
+          [
+            0.517,
+            [
+              0.235,
+              0.693,
+              0.766
+            ]
+          ],
+          [
+            0.519,
+            [
+              0.235,
+              0.693,
+              0.766
+            ]
+          ],
+          [
+            0.521,
+            [
+              0.231,
+              0.689,
+              0.766
+            ]
+          ],
+          [
+            0.523,
+            [
+              0.231,
+              0.689,
+              0.766
+            ]
+          ],
+          [
+            0.524,
+            [
+              0.226,
+              0.684,
+              0.765
+            ]
+          ],
+          [
+            0.526,
+            [
+              0.226,
+              0.684,
+              0.765
+            ]
+          ],
+          [
+            0.528,
+            [
+              0.222,
+              0.68,
+              0.765
+            ]
+          ],
+          [
+            0.53,
+            [
+              0.222,
+              0.68,
+              0.765
+            ]
+          ],
+          [
+            0.532,
+            [
+              0.217,
+              0.675,
+              0.764
+            ]
+          ],
+          [
+            0.534,
+            [
+              0.217,
+              0.675,
+              0.764
+            ]
+          ],
+          [
+            0.536,
+            [
+              0.213,
+              0.67,
+              0.764
+            ]
+          ],
+          [
+            0.538,
+            [
+              0.213,
+              0.67,
+              0.764
+            ]
+          ],
+          [
+            0.54,
+            [
+              0.208,
+              0.666,
+              0.763
+            ]
+          ],
+          [
+            0.542,
+            [
+              0.208,
+              0.666,
+              0.763
+            ]
+          ],
+          [
+            0.544,
+            [
+              0.204,
+              0.661,
+              0.763
+            ]
+          ],
+          [
+            0.546,
+            [
+              0.204,
+              0.661,
+              0.763
+            ]
+          ],
+          [
+            0.548,
+            [
+              0.2,
+              0.657,
+              0.762
+            ]
+          ],
+          [
+            0.55,
+            [
+              0.2,
+              0.657,
+              0.762
+            ]
+          ],
+          [
+            0.552,
+            [
+              0.195,
+              0.652,
+              0.762
+            ]
+          ],
+          [
+            0.554,
+            [
+              0.195,
+              0.652,
+              0.762
+            ]
+          ],
+          [
+            0.556,
+            [
+              0.191,
+              0.648,
+              0.761
+            ]
+          ],
+          [
+            0.558,
+            [
+              0.191,
+              0.648,
+              0.761
+            ]
+          ],
+          [
+            0.56,
+            [
+              0.186,
+              0.643,
+              0.761
+            ]
+          ],
+          [
+            0.562,
+            [
+              0.186,
+              0.643,
+              0.761
+            ]
+          ],
+          [
+            0.564,
+            [
+              0.182,
+              0.639,
+              0.761
+            ]
+          ],
+          [
+            0.566,
+            [
+              0.182,
+              0.639,
+              0.761
+            ]
+          ],
+          [
+            0.568,
+            [
+              0.177,
+              0.634,
+              0.76
+            ]
+          ],
+          [
+            0.569,
+            [
+              0.177,
+              0.634,
+              0.76
+            ]
+          ],
+          [
+            0.571,
+            [
+              0.173,
+              0.63,
+              0.76
+            ]
+          ],
+          [
+            0.573,
+            [
+              0.173,
+              0.63,
+              0.76
+            ]
+          ],
+          [
+            0.575,
+            [
+              0.169,
+              0.625,
+              0.759
+            ]
+          ],
+          [
+            0.577,
+            [
+              0.169,
+              0.625,
+              0.759
+            ]
+          ],
+          [
+            0.579,
+            [
+              0.164,
+              0.62,
+              0.759
+            ]
+          ],
+          [
+            0.581,
+            [
+              0.164,
+              0.62,
+              0.759
+            ]
+          ],
+          [
+            0.583,
+            [
+              0.16,
+              0.616,
+              0.758
+            ]
+          ],
+          [
+            0.585,
+            [
+              0.16,
+              0.616,
+              0.758
+            ]
+          ],
+          [
+            0.587,
+            [
+              0.155,
+              0.611,
+              0.758
+            ]
+          ],
+          [
+            0.589,
+            [
+              0.155,
+              0.611,
+              0.758
+            ]
+          ],
+          [
+            0.591,
+            [
+              0.151,
+              0.607,
+              0.757
+            ]
+          ],
+          [
+            0.593,
+            [
+              0.151,
+              0.607,
+              0.757
+            ]
+          ],
+          [
+            0.595,
+            [
+              0.146,
+              0.602,
+              0.757
+            ]
+          ],
+          [
+            0.597,
+            [
+              0.146,
+              0.602,
+              0.757
+            ]
+          ],
+          [
+            0.599,
+            [
+              0.142,
+              0.598,
+              0.756
+            ]
+          ],
+          [
+            0.601,
+            [
+              0.142,
+              0.598,
+              0.756
+            ]
+          ],
+          [
+            0.603,
+            [
+              0.138,
+              0.593,
+              0.756
+            ]
+          ],
+          [
+            0.605,
+            [
+              0.138,
+              0.593,
+              0.756
+            ]
+          ],
+          [
+            0.607,
+            [
+              0.133,
+              0.589,
+              0.755
+            ]
+          ],
+          [
+            0.609,
+            [
+              0.133,
+              0.589,
+              0.755
+            ]
+          ],
+          [
+            0.611,
+            [
+              0.129,
+              0.584,
+              0.755
+            ]
+          ],
+          [
+            0.613,
+            [
+              0.129,
+              0.584,
+              0.755
+            ]
+          ],
+          [
+            0.614,
+            [
+              0.124,
+              0.579,
+              0.754
+            ]
+          ],
+          [
+            0.616,
+            [
+              0.124,
+              0.579,
+              0.754
+            ]
+          ],
+          [
+            0.618,
+            [
+              0.12,
+              0.575,
+              0.754
+            ]
+          ],
+          [
+            0.62,
+            [
+              0.12,
+              0.575,
+              0.754
+            ]
+          ],
+          [
+            0.622,
+            [
+              0.115,
+              0.57,
+              0.753
+            ]
+          ],
+          [
+            0.624,
+            [
+              0.115,
+              0.57,
+              0.753
+            ]
+          ],
+          [
+            0.626,
+            [
+              0.114,
+              0.565,
+              0.751
+            ]
+          ],
+          [
+            0.628,
+            [
+              0.114,
+              0.565,
+              0.751
+            ]
+          ],
+          [
+            0.63,
+            [
+              0.115,
+              0.558,
+              0.748
+            ]
+          ],
+          [
+            0.632,
+            [
+              0.115,
+              0.558,
+              0.748
+            ]
+          ],
+          [
+            0.634,
+            [
+              0.115,
+              0.552,
+              0.745
+            ]
+          ],
+          [
+            0.636,
+            [
+              0.115,
+              0.552,
+              0.745
+            ]
+          ],
+          [
+            0.638,
+            [
+              0.116,
+              0.546,
+              0.742
+            ]
+          ],
+          [
+            0.64,
+            [
+              0.116,
+              0.546,
+              0.742
+            ]
+          ],
+          [
+            0.642,
+            [
+              0.117,
+              0.54,
+              0.739
+            ]
+          ],
+          [
+            0.644,
+            [
+              0.117,
+              0.54,
+              0.739
+            ]
+          ],
+          [
+            0.646,
+            [
+              0.117,
+              0.533,
+              0.736
+            ]
+          ],
+          [
+            0.648,
+            [
+              0.117,
+              0.533,
+              0.736
+            ]
+          ],
+          [
+            0.65,
+            [
+              0.118,
+              0.527,
+              0.733
+            ]
+          ],
+          [
+            0.652,
+            [
+              0.118,
+              0.527,
+              0.733
+            ]
+          ],
+          [
+            0.654,
+            [
+              0.118,
+              0.521,
+              0.73
+            ]
+          ],
+          [
+            0.656,
+            [
+              0.118,
+              0.521,
+              0.73
+            ]
+          ],
+          [
+            0.658,
+            [
+              0.119,
+              0.515,
+              0.727
+            ]
+          ],
+          [
+            0.659,
+            [
+              0.119,
+              0.515,
+              0.727
+            ]
+          ],
+          [
+            0.661,
+            [
+              0.12,
+              0.508,
+              0.725
+            ]
+          ],
+          [
+            0.663,
+            [
+              0.12,
+              0.508,
+              0.725
+            ]
+          ],
+          [
+            0.665,
+            [
+              0.12,
+              0.502,
+              0.722
+            ]
+          ],
+          [
+            0.667,
+            [
+              0.12,
+              0.502,
+              0.722
+            ]
+          ],
+          [
+            0.669,
+            [
+              0.121,
+              0.496,
+              0.719
+            ]
+          ],
+          [
+            0.671,
+            [
+              0.121,
+              0.496,
+              0.719
+            ]
+          ],
+          [
+            0.673,
+            [
+              0.121,
+              0.489,
+              0.716
+            ]
+          ],
+          [
+            0.675,
+            [
+              0.121,
+              0.489,
+              0.716
+            ]
+          ],
+          [
+            0.677,
+            [
+              0.122,
+              0.483,
+              0.713
+            ]
+          ],
+          [
+            0.679,
+            [
+              0.122,
+              0.483,
+              0.713
+            ]
+          ],
+          [
+            0.681,
+            [
+              0.123,
+              0.477,
+              0.71
+            ]
+          ],
+          [
+            0.683,
+            [
+              0.123,
+              0.477,
+              0.71
+            ]
+          ],
+          [
+            0.685,
+            [
+              0.123,
+              0.471,
+              0.707
+            ]
+          ],
+          [
+            0.687,
+            [
+              0.123,
+              0.471,
+              0.707
+            ]
+          ],
+          [
+            0.689,
+            [
+              0.124,
+              0.464,
+              0.704
+            ]
+          ],
+          [
+            0.691,
+            [
+              0.124,
+              0.464,
+              0.704
+            ]
+          ],
+          [
+            0.693,
+            [
+              0.125,
+              0.458,
+              0.701
+            ]
+          ],
+          [
+            0.695,
+            [
+              0.125,
+              0.458,
+              0.701
+            ]
+          ],
+          [
+            0.697,
+            [
+              0.125,
+              0.452,
+              0.698
+            ]
+          ],
+          [
+            0.699,
+            [
+              0.125,
+              0.452,
+              0.698
+            ]
+          ],
+          [
+            0.701,
+            [
+              0.126,
+              0.445,
+              0.695
+            ]
+          ],
+          [
+            0.703,
+            [
+              0.126,
+              0.445,
+              0.695
+            ]
+          ],
+          [
+            0.705,
+            [
+              0.126,
+              0.439,
+              0.692
+            ]
+          ],
+          [
+            0.706,
+            [
+              0.126,
+              0.439,
+              0.692
+            ]
+          ],
+          [
+            0.708,
+            [
+              0.127,
+              0.433,
+              0.689
+            ]
+          ],
+          [
+            0.71,
+            [
+              0.127,
+              0.433,
+              0.689
+            ]
+          ],
+          [
+            0.712,
+            [
+              0.128,
+              0.427,
+              0.686
+            ]
+          ],
+          [
+            0.714,
+            [
+              0.128,
+              0.427,
+              0.686
+            ]
+          ],
+          [
+            0.716,
+            [
+              0.128,
+              0.42,
+              0.683
+            ]
+          ],
+          [
+            0.718,
+            [
+              0.128,
+              0.42,
+              0.683
+            ]
+          ],
+          [
+            0.72,
+            [
+              0.129,
+              0.414,
+              0.68
+            ]
+          ],
+          [
+            0.722,
+            [
+              0.129,
+              0.414,
+              0.68
+            ]
+          ],
+          [
+            0.724,
+            [
+              0.129,
+              0.408,
+              0.677
+            ]
+          ],
+          [
+            0.726,
+            [
+              0.129,
+              0.408,
+              0.677
+            ]
+          ],
+          [
+            0.728,
+            [
+              0.13,
+              0.402,
+              0.674
+            ]
+          ],
+          [
+            0.73,
+            [
+              0.13,
+              0.402,
+              0.674
+            ]
+          ],
+          [
+            0.732,
+            [
+              0.131,
+              0.395,
+              0.671
+            ]
+          ],
+          [
+            0.734,
+            [
+              0.131,
+              0.395,
+              0.671
+            ]
+          ],
+          [
+            0.736,
+            [
+              0.131,
+              0.389,
+              0.668
+            ]
+          ],
+          [
+            0.738,
+            [
+              0.131,
+              0.389,
+              0.668
+            ]
+          ],
+          [
+            0.74,
+            [
+              0.132,
+              0.383,
+              0.665
+            ]
+          ],
+          [
+            0.742,
+            [
+              0.132,
+              0.383,
+              0.665
+            ]
+          ],
+          [
+            0.744,
+            [
+              0.133,
+              0.376,
+              0.663
+            ]
+          ],
+          [
+            0.746,
+            [
+              0.133,
+              0.376,
+              0.663
+            ]
+          ],
+          [
+            0.748,
+            [
+              0.133,
+              0.37,
+              0.66
+            ]
+          ],
+          [
+            0.75,
+            [
+              0.133,
+              0.37,
+              0.66
+            ]
+          ],
+          [
+            0.751,
+            [
+              0.134,
+              0.365,
+              0.657
+            ]
+          ],
+          [
+            0.753,
+            [
+              0.134,
+              0.365,
+              0.657
+            ]
+          ],
+          [
+            0.755,
+            [
+              0.134,
+              0.36,
+              0.655
+            ]
+          ],
+          [
+            0.757,
+            [
+              0.134,
+              0.36,
+              0.655
+            ]
+          ],
+          [
+            0.759,
+            [
+              0.134,
+              0.354,
+              0.652
+            ]
+          ],
+          [
+            0.761,
+            [
+              0.134,
+              0.354,
+              0.652
+            ]
+          ],
+          [
+            0.763,
+            [
+              0.135,
+              0.349,
+              0.65
+            ]
+          ],
+          [
+            0.765,
+            [
+              0.135,
+              0.349,
+              0.65
+            ]
+          ],
+          [
+            0.767,
+            [
+              0.135,
+              0.344,
+              0.647
+            ]
+          ],
+          [
+            0.769,
+            [
+              0.135,
+              0.344,
+              0.647
+            ]
+          ],
+          [
+            0.771,
+            [
+              0.135,
+              0.339,
+              0.645
+            ]
+          ],
+          [
+            0.773,
+            [
+              0.135,
+              0.339,
+              0.645
+            ]
+          ],
+          [
+            0.775,
+            [
+              0.136,
+              0.334,
+              0.642
+            ]
+          ],
+          [
+            0.777,
+            [
+              0.136,
+              0.334,
+              0.642
+            ]
+          ],
+          [
+            0.779,
+            [
+              0.136,
+              0.329,
+              0.64
+            ]
+          ],
+          [
+            0.781,
+            [
+              0.136,
+              0.329,
+              0.64
+            ]
+          ],
+          [
+            0.783,
+            [
+              0.137,
+              0.323,
+              0.637
+            ]
+          ],
+          [
+            0.785,
+            [
+              0.137,
+              0.323,
+              0.637
+            ]
+          ],
+          [
+            0.787,
+            [
+              0.137,
+              0.318,
+              0.635
+            ]
+          ],
+          [
+            0.789,
+            [
+              0.137,
+              0.318,
+              0.635
+            ]
+          ],
+          [
+            0.791,
+            [
+              0.137,
+              0.313,
+              0.632
+            ]
+          ],
+          [
+            0.793,
+            [
+              0.137,
+              0.313,
+              0.632
+            ]
+          ],
+          [
+            0.795,
+            [
+              0.138,
+              0.308,
+              0.63
+            ]
+          ],
+          [
+            0.796,
+            [
+              0.138,
+              0.308,
+              0.63
+            ]
+          ],
+          [
+            0.798,
+            [
+              0.138,
+              0.303,
+              0.627
+            ]
+          ],
+          [
+            0.8,
+            [
+              0.138,
+              0.303,
+              0.627
+            ]
+          ],
+          [
+            0.802,
+            [
+              0.138,
+              0.298,
+              0.625
+            ]
+          ],
+          [
+            0.804,
+            [
+              0.138,
+              0.298,
+              0.625
+            ]
+          ],
+          [
+            0.806,
+            [
+              0.139,
+              0.292,
+              0.623
+            ]
+          ],
+          [
+            0.808,
+            [
+              0.139,
+              0.292,
+              0.623
+            ]
+          ],
+          [
+            0.81,
+            [
+              0.139,
+              0.287,
+              0.62
+            ]
+          ],
+          [
+            0.812,
+            [
+              0.139,
+              0.287,
+              0.62
+            ]
+          ],
+          [
+            0.814,
+            [
+              0.14,
+              0.282,
+              0.618
+            ]
+          ],
+          [
+            0.816,
+            [
+              0.14,
+              0.282,
+              0.618
+            ]
+          ],
+          [
+            0.818,
+            [
+              0.14,
+              0.277,
+              0.615
+            ]
+          ],
+          [
+            0.82,
+            [
+              0.14,
+              0.277,
+              0.615
+            ]
+          ],
+          [
+            0.822,
+            [
+              0.14,
+              0.272,
+              0.613
+            ]
+          ],
+          [
+            0.824,
+            [
+              0.14,
+              0.272,
+              0.613
+            ]
+          ],
+          [
+            0.826,
+            [
+              0.141,
+              0.267,
+              0.61
+            ]
+          ],
+          [
+            0.828,
+            [
+              0.141,
+              0.267,
+              0.61
+            ]
+          ],
+          [
+            0.83,
+            [
+              0.141,
+              0.261,
+              0.608
+            ]
+          ],
+          [
+            0.832,
+            [
+              0.141,
+              0.261,
+              0.608
+            ]
+          ],
+          [
+            0.834,
+            [
+              0.141,
+              0.256,
+              0.605
+            ]
+          ],
+          [
+            0.836,
+            [
+              0.141,
+              0.256,
+              0.605
+            ]
+          ],
+          [
+            0.838,
+            [
+              0.142,
+              0.251,
+              0.603
+            ]
+          ],
+          [
+            0.84,
+            [
+              0.142,
+              0.251,
+              0.603
+            ]
+          ],
+          [
+            0.841,
+            [
+              0.142,
+              0.246,
+              0.6
+            ]
+          ],
+          [
+            0.843,
+            [
+              0.142,
+              0.246,
+              0.6
+            ]
+          ],
+          [
+            0.845,
+            [
+              0.142,
+              0.241,
+              0.598
+            ]
+          ],
+          [
+            0.847,
+            [
+              0.142,
+              0.241,
+              0.598
+            ]
+          ],
+          [
+            0.849,
+            [
+              0.143,
+              0.236,
+              0.595
+            ]
+          ],
+          [
+            0.851,
+            [
+              0.143,
+              0.236,
+              0.595
+            ]
+          ],
+          [
+            0.853,
+            [
+              0.143,
+              0.23,
+              0.593
+            ]
+          ],
+          [
+            0.855,
+            [
+              0.143,
+              0.23,
+              0.593
+            ]
+          ],
+          [
+            0.857,
+            [
+              0.144,
+              0.225,
+              0.591
+            ]
+          ],
+          [
+            0.859,
+            [
+              0.144,
+              0.225,
+              0.591
+            ]
+          ],
+          [
+            0.861,
+            [
+              0.144,
+              0.22,
+              0.588
+            ]
+          ],
+          [
+            0.863,
+            [
+              0.144,
+              0.22,
+              0.588
+            ]
+          ],
+          [
+            0.865,
+            [
+              0.144,
+              0.215,
+              0.586
+            ]
+          ],
+          [
+            0.867,
+            [
+              0.144,
+              0.215,
+              0.586
+            ]
+          ],
+          [
+            0.869,
+            [
+              0.145,
+              0.21,
+              0.583
+            ]
+          ],
+          [
+            0.871,
+            [
+              0.145,
+              0.21,
+              0.583
+            ]
+          ],
+          [
+            0.873,
+            [
+              0.145,
+              0.205,
+              0.581
+            ]
+          ],
+          [
+            0.875,
+            [
+              0.145,
+              0.205,
+              0.581
+            ]
+          ],
+          [
+            0.877,
+            [
+              0.142,
+              0.201,
+              0.574
+            ]
+          ],
+          [
+            0.879,
+            [
+              0.142,
+              0.201,
+              0.574
+            ]
+          ],
+          [
+            0.881,
+            [
+              0.138,
+              0.199,
+              0.567
+            ]
+          ],
+          [
+            0.883,
+            [
+              0.138,
+              0.199,
+              0.567
+            ]
+          ],
+          [
+            0.885,
+            [
+              0.135,
+              0.196,
+              0.559
+            ]
+          ],
+          [
+            0.886,
+            [
+              0.135,
+              0.196,
+              0.559
+            ]
+          ],
+          [
+            0.888,
+            [
+              0.131,
+              0.193,
+              0.552
+            ]
+          ],
+          [
+            0.89,
+            [
+              0.131,
+              0.193,
+              0.552
+            ]
+          ],
+          [
+            0.892,
+            [
+              0.128,
+              0.19,
+              0.544
+            ]
+          ],
+          [
+            0.894,
+            [
+              0.128,
+              0.19,
+              0.544
+            ]
+          ],
+          [
+            0.896,
+            [
+              0.124,
+              0.187,
+              0.537
+            ]
+          ],
+          [
+            0.898,
+            [
+              0.124,
+              0.187,
+              0.537
+            ]
+          ],
+          [
+            0.9,
+            [
+              0.121,
+              0.184,
+              0.53
+            ]
+          ],
+          [
+            0.902,
+            [
+              0.121,
+              0.184,
+              0.53
+            ]
+          ],
+          [
+            0.904,
+            [
+              0.117,
+              0.182,
+              0.522
+            ]
+          ],
+          [
+            0.906,
+            [
+              0.117,
+              0.182,
+              0.522
+            ]
+          ],
+          [
+            0.908,
+            [
+              0.113,
+              0.179,
+              0.515
+            ]
+          ],
+          [
+            0.91,
+            [
+              0.113,
+              0.179,
+              0.515
+            ]
+          ],
+          [
+            0.912,
+            [
+              0.11,
+              0.176,
+              0.507
+            ]
+          ],
+          [
+            0.914,
+            [
+              0.11,
+              0.176,
+              0.507
+            ]
+          ],
+          [
+            0.916,
+            [
+              0.106,
+              0.173,
+              0.5
+            ]
+          ],
+          [
+            0.918,
+            [
+              0.106,
+              0.173,
+              0.5
+            ]
+          ],
+          [
+            0.92,
+            [
+              0.103,
+              0.17,
+              0.493
+            ]
+          ],
+          [
+            0.922,
+            [
+              0.103,
+              0.17,
+              0.493
+            ]
+          ],
+          [
+            0.924,
+            [
+              0.099,
+              0.167,
+              0.485
+            ]
+          ],
+          [
+            0.926,
+            [
+              0.099,
+              0.167,
+              0.485
+            ]
+          ],
+          [
+            0.928,
+            [
+              0.096,
+              0.165,
+              0.478
+            ]
+          ],
+          [
+            0.93,
+            [
+              0.096,
+              0.165,
+              0.478
+            ]
+          ],
+          [
+            0.932,
+            [
+              0.092,
+              0.162,
+              0.471
+            ]
+          ],
+          [
+            0.933,
+            [
+              0.092,
+              0.162,
+              0.471
+            ]
+          ],
+          [
+            0.935,
+            [
+              0.088,
+              0.159,
+              0.463
+            ]
+          ],
+          [
+            0.937,
+            [
+              0.088,
+              0.159,
+              0.463
+            ]
+          ],
+          [
+            0.939,
+            [
+              0.085,
+              0.156,
+              0.456
+            ]
+          ],
+          [
+            0.941,
+            [
+              0.085,
+              0.156,
+              0.456
+            ]
+          ],
+          [
+            0.943,
+            [
+              0.081,
+              0.153,
+              0.448
+            ]
+          ],
+          [
+            0.945,
+            [
+              0.081,
+              0.153,
+              0.448
+            ]
+          ],
+          [
+            0.947,
+            [
+              0.078,
+              0.151,
+              0.441
+            ]
+          ],
+          [
+            0.949,
+            [
+              0.078,
+              0.151,
+              0.441
+            ]
+          ],
+          [
+            0.951,
+            [
+              0.074,
+              0.148,
+              0.434
+            ]
+          ],
+          [
+            0.953,
+            [
+              0.074,
+              0.148,
+              0.434
+            ]
+          ],
+          [
+            0.955,
+            [
+              0.071,
+              0.145,
+              0.426
+            ]
+          ],
+          [
+            0.957,
+            [
+              0.071,
+              0.145,
+              0.426
+            ]
+          ],
+          [
+            0.959,
+            [
+              0.067,
+              0.142,
+              0.419
+            ]
+          ],
+          [
+            0.961,
+            [
+              0.067,
+              0.142,
+              0.419
+            ]
+          ],
+          [
+            0.963,
+            [
+              0.063,
+              0.139,
+              0.412
+            ]
+          ],
+          [
+            0.965,
+            [
+              0.063,
+              0.139,
+              0.412
+            ]
+          ],
+          [
+            0.967,
+            [
+              0.06,
+              0.136,
+              0.404
+            ]
+          ],
+          [
+            0.969,
+            [
+              0.06,
+              0.136,
+              0.404
+            ]
+          ],
+          [
+            0.971,
+            [
+              0.056,
+              0.134,
+              0.397
+            ]
+          ],
+          [
+            0.973,
+            [
+              0.056,
+              0.134,
+              0.397
+            ]
+          ],
+          [
+            0.975,
+            [
+              0.053,
+              0.131,
+              0.389
+            ]
+          ],
+          [
+            0.977,
+            [
+              0.053,
+              0.131,
+              0.389
+            ]
+          ],
+          [
+            0.978,
+            [
+              0.049,
+              0.128,
+              0.382
+            ]
+          ],
+          [
+            0.98,
+            [
+              0.049,
+              0.128,
+              0.382
+            ]
+          ],
+          [
+            0.982,
+            [
+              0.046,
+              0.125,
+              0.375
+            ]
+          ],
+          [
+            0.984,
+            [
+              0.046,
+              0.125,
+              0.375
+            ]
+          ],
+          [
+            0.986,
+            [
+              0.042,
+              0.122,
+              0.367
+            ]
+          ],
+          [
+            0.988,
+            [
+              0.042,
+              0.122,
+              0.367
+            ]
+          ],
+          [
+            0.99,
+            [
+              0.039,
+              0.119,
+              0.36
+            ]
+          ],
+          [
+            0.992,
+            [
+              0.039,
+              0.119,
+              0.36
+            ]
+          ],
+          [
+            0.994,
+            [
+              0.035,
+              0.117,
+              0.352
+            ]
+          ],
+          [
+            0.996,
+            [
+              0.035,
+              0.117,
+              0.352
+            ]
+          ],
+          [
+            0.998,
+            [
+              0.031,
+              0.114,
+              0.345
+            ]
+          ],
+          [
+            1,
+            [
+              0.031,
+              0.114,
+              0.345
+            ]
+          ]
+        ],
+        [
+          [
+            0,
+            [
+              0,
+              0,
+              1
+            ]
+          ],
+          [
+            0.002,
+            [
+              0,
+              0,
+              1
+            ]
+          ],
+          [
+            0.004,
+            [
+              0,
+              0.004,
+              0.998
+            ]
+          ],
+          [
+            0.006,
+            [
+              0,
+              0.004,
+              0.998
+            ]
+          ],
+          [
+            0.008,
+            [
+              0,
+              0.008,
+              0.996
+            ]
+          ],
+          [
+            0.01,
+            [
+              0,
+              0.008,
+              0.996
+            ]
+          ],
+          [
+            0.012,
+            [
+              0,
+              0.012,
+              0.994
+            ]
+          ],
+          [
+            0.014,
+            [
+              0,
+              0.012,
+              0.994
+            ]
+          ],
+          [
+            0.016,
+            [
+              0,
+              0.016,
+              0.992
+            ]
+          ],
+          [
+            0.018,
+            [
+              0,
+              0.016,
+              0.992
+            ]
+          ],
+          [
+            0.02,
+            [
+              0,
+              0.02,
+              0.99
+            ]
+          ],
+          [
+            0.022,
+            [
+              0,
+              0.02,
+              0.99
+            ]
+          ],
+          [
+            0.023,
+            [
+              0,
+              0.024,
+              0.988
+            ]
+          ],
+          [
+            0.025,
+            [
+              0,
+              0.024,
+              0.988
+            ]
+          ],
+          [
+            0.027,
+            [
+              0,
+              0.027,
+              0.986
+            ]
+          ],
+          [
+            0.029,
+            [
+              0,
+              0.027,
+              0.986
+            ]
+          ],
+          [
+            0.031,
+            [
+              0,
+              0.031,
+              0.984
+            ]
+          ],
+          [
+            0.033,
+            [
+              0,
+              0.031,
+              0.984
+            ]
+          ],
+          [
+            0.035,
+            [
+              0,
+              0.035,
+              0.982
+            ]
+          ],
+          [
+            0.037,
+            [
+              0,
+              0.035,
+              0.982
+            ]
+          ],
+          [
+            0.039,
+            [
+              0,
+              0.039,
+              0.98
+            ]
+          ],
+          [
+            0.041,
+            [
+              0,
+              0.039,
+              0.98
+            ]
+          ],
+          [
+            0.043,
+            [
+              0,
+              0.043,
+              0.978
+            ]
+          ],
+          [
+            0.045,
+            [
+              0,
+              0.043,
+              0.978
+            ]
+          ],
+          [
+            0.047,
+            [
+              0,
+              0.047,
+              0.976
+            ]
+          ],
+          [
+            0.049,
+            [
+              0,
+              0.047,
+              0.976
+            ]
+          ],
+          [
+            0.051,
+            [
+              0,
+              0.051,
+              0.975
+            ]
+          ],
+          [
+            0.053,
+            [
+              0,
+              0.051,
+              0.975
+            ]
+          ],
+          [
+            0.055,
+            [
+              0,
+              0.055,
+              0.973
+            ]
+          ],
+          [
+            0.057,
+            [
+              0,
+              0.055,
+              0.973
+            ]
+          ],
+          [
+            0.059,
+            [
+              0,
+              0.059,
+              0.971
+            ]
+          ],
+          [
+            0.061,
+            [
+              0,
+              0.059,
+              0.971
+            ]
+          ],
+          [
+            0.063,
+            [
+              0,
+              0.063,
+              0.969
+            ]
+          ],
+          [
+            0.065,
+            [
+              0,
+              0.063,
+              0.969
+            ]
+          ],
+          [
+            0.067,
+            [
+              0,
+              0.067,
+              0.967
+            ]
+          ],
+          [
+            0.068,
+            [
+              0,
+              0.067,
+              0.967
+            ]
+          ],
+          [
+            0.07,
+            [
+              0,
+              0.071,
+              0.965
+            ]
+          ],
+          [
+            0.072,
+            [
+              0,
+              0.071,
+              0.965
+            ]
+          ],
+          [
+            0.074,
+            [
+              0,
+              0.075,
+              0.963
+            ]
+          ],
+          [
+            0.076,
+            [
+              0,
+              0.075,
+              0.963
+            ]
+          ],
+          [
+            0.078,
+            [
+              0,
+              0.078,
+              0.961
+            ]
+          ],
+          [
+            0.08,
+            [
+              0,
+              0.078,
+              0.961
+            ]
+          ],
+          [
+            0.082,
+            [
+              0,
+              0.082,
+              0.959
+            ]
+          ],
+          [
+            0.084,
+            [
+              0,
+              0.082,
+              0.959
+            ]
+          ],
+          [
+            0.086,
+            [
+              0,
+              0.086,
+              0.957
+            ]
+          ],
+          [
+            0.088,
+            [
+              0,
+              0.086,
+              0.957
+            ]
+          ],
+          [
+            0.09,
+            [
+              0,
+              0.09,
+              0.955
+            ]
+          ],
+          [
+            0.092,
+            [
+              0,
+              0.09,
+              0.955
+            ]
+          ],
+          [
+            0.094,
+            [
+              0,
+              0.094,
+              0.953
+            ]
+          ],
+          [
+            0.096,
+            [
+              0,
+              0.094,
+              0.953
+            ]
+          ],
+          [
+            0.098,
+            [
+              0,
+              0.098,
+              0.951
+            ]
+          ],
+          [
+            0.1,
+            [
+              0,
+              0.098,
+              0.951
+            ]
+          ],
+          [
+            0.102,
+            [
+              0,
+              0.102,
+              0.949
+            ]
+          ],
+          [
+            0.104,
+            [
+              0,
+              0.102,
+              0.949
+            ]
+          ],
+          [
+            0.106,
+            [
+              0,
+              0.106,
+              0.947
+            ]
+          ],
+          [
+            0.108,
+            [
+              0,
+              0.106,
+              0.947
+            ]
+          ],
+          [
+            0.11,
+            [
+              0,
+              0.11,
+              0.945
+            ]
+          ],
+          [
+            0.112,
+            [
+              0,
+              0.11,
+              0.945
+            ]
+          ],
+          [
+            0.114,
+            [
+              0,
+              0.114,
+              0.943
+            ]
+          ],
+          [
+            0.115,
+            [
+              0,
+              0.114,
+              0.943
+            ]
+          ],
+          [
+            0.117,
+            [
+              0,
+              0.118,
+              0.941
+            ]
+          ],
+          [
+            0.119,
+            [
+              0,
+              0.118,
+              0.941
+            ]
+          ],
+          [
+            0.121,
+            [
+              0,
+              0.122,
+              0.939
+            ]
+          ],
+          [
+            0.123,
+            [
+              0,
+              0.122,
+              0.939
+            ]
+          ],
+          [
+            0.125,
+            [
+              0,
+              0.125,
+              0.937
+            ]
+          ],
+          [
+            0.127,
+            [
+              0,
+              0.125,
+              0.937
+            ]
+          ],
+          [
+            0.129,
+            [
+              0,
+              0.129,
+              0.935
+            ]
+          ],
+          [
+            0.131,
+            [
+              0,
+              0.129,
+              0.935
+            ]
+          ],
+          [
+            0.133,
+            [
+              0,
+              0.133,
+              0.933
+            ]
+          ],
+          [
+            0.135,
+            [
+              0,
+              0.133,
+              0.933
+            ]
+          ],
+          [
+            0.137,
+            [
+              0,
+              0.137,
+              0.931
+            ]
+          ],
+          [
+            0.139,
+            [
+              0,
+              0.137,
+              0.931
+            ]
+          ],
+          [
+            0.141,
+            [
+              0,
+              0.141,
+              0.929
+            ]
+          ],
+          [
+            0.143,
+            [
+              0,
+              0.141,
+              0.929
+            ]
+          ],
+          [
+            0.145,
+            [
+              0,
+              0.145,
+              0.927
+            ]
+          ],
+          [
+            0.147,
+            [
+              0,
+              0.145,
+              0.927
+            ]
+          ],
+          [
+            0.149,
+            [
+              0,
+              0.149,
+              0.925
+            ]
+          ],
+          [
+            0.151,
+            [
+              0,
+              0.149,
+              0.925
+            ]
+          ],
+          [
+            0.153,
+            [
+              0,
+              0.153,
+              0.924
+            ]
+          ],
+          [
+            0.155,
+            [
+              0,
+              0.153,
+              0.924
+            ]
+          ],
+          [
+            0.157,
+            [
+              0,
+              0.157,
+              0.922
+            ]
+          ],
+          [
+            0.159,
+            [
+              0,
+              0.157,
+              0.922
+            ]
+          ],
+          [
+            0.16,
+            [
+              0,
+              0.161,
+              0.92
+            ]
+          ],
+          [
+            0.162,
+            [
+              0,
+              0.161,
+              0.92
+            ]
+          ],
+          [
+            0.164,
+            [
+              0,
+              0.165,
+              0.918
+            ]
+          ],
+          [
+            0.166,
+            [
+              0,
+              0.165,
+              0.918
+            ]
+          ],
+          [
+            0.168,
+            [
+              0,
+              0.169,
+              0.916
+            ]
+          ],
+          [
+            0.17,
+            [
+              0,
+              0.169,
+              0.916
+            ]
+          ],
+          [
+            0.172,
+            [
+              0,
+              0.173,
+              0.914
+            ]
+          ],
+          [
+            0.174,
+            [
+              0,
+              0.173,
+              0.914
+            ]
+          ],
+          [
+            0.176,
+            [
+              0,
+              0.176,
+              0.912
+            ]
+          ],
+          [
+            0.178,
+            [
+              0,
+              0.176,
+              0.912
+            ]
+          ],
+          [
+            0.18,
+            [
+              0,
+              0.18,
+              0.91
+            ]
+          ],
+          [
+            0.182,
+            [
+              0,
+              0.18,
+              0.91
+            ]
+          ],
+          [
+            0.184,
+            [
+              0,
+              0.184,
+              0.908
+            ]
+          ],
+          [
+            0.186,
+            [
+              0,
+              0.184,
+              0.908
+            ]
+          ],
+          [
+            0.188,
+            [
+              0,
+              0.188,
+              0.906
+            ]
+          ],
+          [
+            0.19,
+            [
+              0,
+              0.188,
+              0.906
+            ]
+          ],
+          [
+            0.192,
+            [
+              0,
+              0.192,
+              0.904
+            ]
+          ],
+          [
+            0.194,
+            [
+              0,
+              0.192,
+              0.904
+            ]
+          ],
+          [
+            0.196,
+            [
+              0,
+              0.196,
+              0.902
+            ]
+          ],
+          [
+            0.198,
+            [
+              0,
+              0.196,
+              0.902
+            ]
+          ],
+          [
+            0.2,
+            [
+              0,
+              0.2,
+              0.9
+            ]
+          ],
+          [
+            0.202,
+            [
+              0,
+              0.2,
+              0.9
+            ]
+          ],
+          [
+            0.204,
+            [
+              0,
+              0.204,
+              0.898
+            ]
+          ],
+          [
+            0.205,
+            [
+              0,
+              0.204,
+              0.898
+            ]
+          ],
+          [
+            0.207,
+            [
+              0,
+              0.208,
+              0.896
+            ]
+          ],
+          [
+            0.209,
+            [
+              0,
+              0.208,
+              0.896
+            ]
+          ],
+          [
+            0.211,
+            [
+              0,
+              0.212,
+              0.894
+            ]
+          ],
+          [
+            0.213,
+            [
+              0,
+              0.212,
+              0.894
+            ]
+          ],
+          [
+            0.215,
+            [
+              0,
+              0.216,
+              0.892
+            ]
+          ],
+          [
+            0.217,
+            [
+              0,
+              0.216,
+              0.892
+            ]
+          ],
+          [
+            0.219,
+            [
+              0,
+              0.22,
+              0.89
+            ]
+          ],
+          [
+            0.221,
+            [
+              0,
+              0.22,
+              0.89
+            ]
+          ],
+          [
+            0.223,
+            [
+              0,
+              0.224,
+              0.888
+            ]
+          ],
+          [
+            0.225,
+            [
+              0,
+              0.224,
+              0.888
+            ]
+          ],
+          [
+            0.227,
+            [
+              0,
+              0.227,
+              0.886
+            ]
+          ],
+          [
+            0.229,
+            [
+              0,
+              0.227,
+              0.886
+            ]
+          ],
+          [
+            0.231,
+            [
+              0,
+              0.231,
+              0.884
+            ]
+          ],
+          [
+            0.233,
+            [
+              0,
+              0.231,
+              0.884
+            ]
+          ],
+          [
+            0.235,
+            [
+              0,
+              0.235,
+              0.882
+            ]
+          ],
+          [
+            0.237,
+            [
+              0,
+              0.235,
+              0.882
+            ]
+          ],
+          [
+            0.239,
+            [
+              0,
+              0.239,
+              0.88
+            ]
+          ],
+          [
+            0.241,
+            [
+              0,
+              0.239,
+              0.88
+            ]
+          ],
+          [
+            0.243,
+            [
+              0,
+              0.243,
+              0.878
+            ]
+          ],
+          [
+            0.245,
+            [
+              0,
+              0.243,
+              0.878
+            ]
+          ],
+          [
+            0.247,
+            [
+              0,
+              0.247,
+              0.876
+            ]
+          ],
+          [
+            0.249,
+            [
+              0,
+              0.247,
+              0.876
+            ]
+          ],
+          [
+            0.25,
+            [
+              0,
+              0.251,
+              0.875
+            ]
+          ],
+          [
+            0.252,
+            [
+              0,
+              0.251,
+              0.875
+            ]
+          ],
+          [
+            0.254,
+            [
+              0,
+              0.255,
+              0.873
+            ]
+          ],
+          [
+            0.256,
+            [
+              0,
+              0.255,
+              0.873
+            ]
+          ],
+          [
+            0.258,
+            [
+              0,
+              0.259,
+              0.871
+            ]
+          ],
+          [
+            0.26,
+            [
+              0,
+              0.259,
+              0.871
+            ]
+          ],
+          [
+            0.262,
+            [
+              0,
+              0.263,
+              0.869
+            ]
+          ],
+          [
+            0.264,
+            [
+              0,
+              0.263,
+              0.869
+            ]
+          ],
+          [
+            0.266,
+            [
+              0,
+              0.267,
+              0.867
+            ]
+          ],
+          [
+            0.268,
+            [
+              0,
+              0.267,
+              0.867
+            ]
+          ],
+          [
+            0.27,
+            [
+              0,
+              0.271,
+              0.865
+            ]
+          ],
+          [
+            0.272,
+            [
+              0,
+              0.271,
+              0.865
+            ]
+          ],
+          [
+            0.274,
+            [
+              0,
+              0.275,
+              0.863
+            ]
+          ],
+          [
+            0.276,
+            [
+              0,
+              0.275,
+              0.863
+            ]
+          ],
+          [
+            0.278,
+            [
+              0,
+              0.278,
+              0.861
+            ]
+          ],
+          [
+            0.28,
+            [
+              0,
+              0.278,
+              0.861
+            ]
+          ],
+          [
+            0.282,
+            [
+              0,
+              0.282,
+              0.859
+            ]
+          ],
+          [
+            0.284,
+            [
+              0,
+              0.282,
+              0.859
+            ]
+          ],
+          [
+            0.286,
+            [
+              0,
+              0.286,
+              0.857
+            ]
+          ],
+          [
+            0.288,
+            [
+              0,
+              0.286,
+              0.857
+            ]
+          ],
+          [
+            0.29,
+            [
+              0,
+              0.29,
+              0.855
+            ]
+          ],
+          [
+            0.292,
+            [
+              0,
+              0.29,
+              0.855
+            ]
+          ],
+          [
+            0.294,
+            [
+              0,
+              0.294,
+              0.853
+            ]
+          ],
+          [
+            0.295,
+            [
+              0,
+              0.294,
+              0.853
+            ]
+          ],
+          [
+            0.297,
+            [
+              0,
+              0.298,
+              0.851
+            ]
+          ],
+          [
+            0.299,
+            [
+              0,
+              0.298,
+              0.851
+            ]
+          ],
+          [
+            0.301,
+            [
+              0,
+              0.302,
+              0.849
+            ]
+          ],
+          [
+            0.303,
+            [
+              0,
+              0.302,
+              0.849
+            ]
+          ],
+          [
+            0.305,
+            [
+              0,
+              0.306,
+              0.847
+            ]
+          ],
+          [
+            0.307,
+            [
+              0,
+              0.306,
+              0.847
+            ]
+          ],
+          [
+            0.309,
+            [
+              0,
+              0.31,
+              0.845
+            ]
+          ],
+          [
+            0.311,
+            [
+              0,
+              0.31,
+              0.845
+            ]
+          ],
+          [
+            0.313,
+            [
+              0,
+              0.314,
+              0.843
+            ]
+          ],
+          [
+            0.315,
+            [
+              0,
+              0.314,
+              0.843
+            ]
+          ],
+          [
+            0.317,
+            [
+              0,
+              0.318,
+              0.841
+            ]
+          ],
+          [
+            0.319,
+            [
+              0,
+              0.318,
+              0.841
+            ]
+          ],
+          [
+            0.321,
+            [
+              0,
+              0.322,
+              0.839
+            ]
+          ],
+          [
+            0.323,
+            [
+              0,
+              0.322,
+              0.839
+            ]
+          ],
+          [
+            0.325,
+            [
+              0,
+              0.325,
+              0.837
+            ]
+          ],
+          [
+            0.327,
+            [
+              0,
+              0.325,
+              0.837
+            ]
+          ],
+          [
+            0.329,
+            [
+              0,
+              0.329,
+              0.835
+            ]
+          ],
+          [
+            0.331,
+            [
+              0,
+              0.329,
+              0.835
+            ]
+          ],
+          [
+            0.333,
+            [
+              0,
+              0.333,
+              0.833
+            ]
+          ],
+          [
+            0.335,
+            [
+              0,
+              0.333,
+              0.833
+            ]
+          ],
+          [
+            0.337,
+            [
+              0,
+              0.337,
+              0.831
+            ]
+          ],
+          [
+            0.339,
+            [
+              0,
+              0.337,
+              0.831
+            ]
+          ],
+          [
+            0.341,
+            [
+              0,
+              0.341,
+              0.829
+            ]
+          ],
+          [
+            0.342,
+            [
+              0,
+              0.341,
+              0.829
+            ]
+          ],
+          [
+            0.344,
+            [
+              0,
+              0.345,
+              0.827
+            ]
+          ],
+          [
+            0.346,
+            [
+              0,
+              0.345,
+              0.827
+            ]
+          ],
+          [
+            0.348,
+            [
+              0,
+              0.349,
+              0.825
+            ]
+          ],
+          [
+            0.35,
+            [
+              0,
+              0.349,
+              0.825
+            ]
+          ],
+          [
+            0.352,
+            [
+              0,
+              0.353,
+              0.824
+            ]
+          ],
+          [
+            0.354,
+            [
+              0,
+              0.353,
+              0.824
+            ]
+          ],
+          [
+            0.356,
+            [
+              0,
+              0.357,
+              0.822
+            ]
+          ],
+          [
+            0.358,
+            [
+              0,
+              0.357,
+              0.822
+            ]
+          ],
+          [
+            0.36,
+            [
+              0,
+              0.361,
+              0.82
+            ]
+          ],
+          [
+            0.362,
+            [
+              0,
+              0.361,
+              0.82
+            ]
+          ],
+          [
+            0.364,
+            [
+              0,
+              0.365,
+              0.818
+            ]
+          ],
+          [
+            0.366,
+            [
+              0,
+              0.365,
+              0.818
+            ]
+          ],
+          [
+            0.368,
+            [
+              0,
+              0.369,
+              0.816
+            ]
+          ],
+          [
+            0.37,
+            [
+              0,
+              0.369,
+              0.816
+            ]
+          ],
+          [
+            0.372,
+            [
+              0,
+              0.373,
+              0.814
+            ]
+          ],
+          [
+            0.374,
+            [
+              0,
+              0.373,
+              0.814
+            ]
+          ],
+          [
+            0.376,
+            [
+              0,
+              0.376,
+              0.812
+            ]
+          ],
+          [
+            0.378,
+            [
+              0,
+              0.376,
+              0.812
+            ]
+          ],
+          [
+            0.38,
+            [
+              0,
+              0.38,
+              0.81
+            ]
+          ],
+          [
+            0.382,
+            [
+              0,
+              0.38,
+              0.81
+            ]
+          ],
+          [
+            0.384,
+            [
+              0,
+              0.384,
+              0.808
+            ]
+          ],
+          [
+            0.386,
+            [
+              0,
+              0.384,
+              0.808
+            ]
+          ],
+          [
+            0.387,
+            [
+              0,
+              0.388,
+              0.806
+            ]
+          ],
+          [
+            0.389,
+            [
+              0,
+              0.388,
+              0.806
+            ]
+          ],
+          [
+            0.391,
+            [
+              0,
+              0.392,
+              0.804
+            ]
+          ],
+          [
+            0.393,
+            [
+              0,
+              0.392,
+              0.804
+            ]
+          ],
+          [
+            0.395,
+            [
+              0,
+              0.396,
+              0.802
+            ]
+          ],
+          [
+            0.397,
+            [
+              0,
+              0.396,
+              0.802
+            ]
+          ],
+          [
+            0.399,
+            [
+              0,
+              0.4,
+              0.8
+            ]
+          ],
+          [
+            0.401,
+            [
+              0,
+              0.4,
+              0.8
+            ]
+          ],
+          [
+            0.403,
+            [
+              0,
+              0.404,
+              0.798
+            ]
+          ],
+          [
+            0.405,
+            [
+              0,
+              0.404,
+              0.798
+            ]
+          ],
+          [
+            0.407,
+            [
+              0,
+              0.408,
+              0.796
+            ]
+          ],
+          [
+            0.409,
+            [
+              0,
+              0.408,
+              0.796
+            ]
+          ],
+          [
+            0.411,
+            [
+              0,
+              0.412,
+              0.794
+            ]
+          ],
+          [
+            0.413,
+            [
+              0,
+              0.412,
+              0.794
+            ]
+          ],
+          [
+            0.415,
+            [
+              0,
+              0.416,
+              0.792
+            ]
+          ],
+          [
+            0.417,
+            [
+              0,
+              0.416,
+              0.792
+            ]
+          ],
+          [
+            0.419,
+            [
+              0,
+              0.42,
+              0.79
+            ]
+          ],
+          [
+            0.421,
+            [
+              0,
+              0.42,
+              0.79
+            ]
+          ],
+          [
+            0.423,
+            [
+              0,
+              0.424,
+              0.788
+            ]
+          ],
+          [
+            0.425,
+            [
+              0,
+              0.424,
+              0.788
+            ]
+          ],
+          [
+            0.427,
+            [
+              0,
+              0.427,
+              0.786
+            ]
+          ],
+          [
+            0.429,
+            [
+              0,
+              0.427,
+              0.786
+            ]
+          ],
+          [
+            0.431,
+            [
+              0,
+              0.431,
+              0.784
+            ]
+          ],
+          [
+            0.432,
+            [
+              0,
+              0.431,
+              0.784
+            ]
+          ],
+          [
+            0.434,
+            [
+              0,
+              0.435,
+              0.782
+            ]
+          ],
+          [
+            0.436,
+            [
+              0,
+              0.435,
+              0.782
+            ]
+          ],
+          [
+            0.438,
+            [
+              0,
+              0.439,
+              0.78
+            ]
+          ],
+          [
+            0.44,
+            [
+              0,
+              0.439,
+              0.78
+            ]
+          ],
+          [
+            0.442,
+            [
+              0,
+              0.443,
+              0.778
+            ]
+          ],
+          [
+            0.444,
+            [
+              0,
+              0.443,
+              0.778
+            ]
+          ],
+          [
+            0.446,
+            [
+              0,
+              0.447,
+              0.776
+            ]
+          ],
+          [
+            0.448,
+            [
+              0,
+              0.447,
+              0.776
+            ]
+          ],
+          [
+            0.45,
+            [
+              0,
+              0.451,
+              0.775
+            ]
+          ],
+          [
+            0.452,
+            [
+              0,
+              0.451,
+              0.775
+            ]
+          ],
+          [
+            0.454,
+            [
+              0,
+              0.455,
+              0.773
+            ]
+          ],
+          [
+            0.456,
+            [
+              0,
+              0.455,
+              0.773
+            ]
+          ],
+          [
+            0.458,
+            [
+              0,
+              0.459,
+              0.771
+            ]
+          ],
+          [
+            0.46,
+            [
+              0,
+              0.459,
+              0.771
+            ]
+          ],
+          [
+            0.462,
+            [
+              0,
+              0.463,
+              0.769
+            ]
+          ],
+          [
+            0.464,
+            [
+              0,
+              0.463,
+              0.769
+            ]
+          ],
+          [
+            0.466,
+            [
+              0,
+              0.467,
+              0.767
+            ]
+          ],
+          [
+            0.468,
+            [
+              0,
+              0.467,
+              0.767
+            ]
+          ],
+          [
+            0.47,
+            [
+              0,
+              0.471,
+              0.765
+            ]
+          ],
+          [
+            0.472,
+            [
+              0,
+              0.471,
+              0.765
+            ]
+          ],
+          [
+            0.474,
+            [
+              0,
+              0.475,
+              0.763
+            ]
+          ],
+          [
+            0.476,
+            [
+              0,
+              0.475,
+              0.763
+            ]
+          ],
+          [
+            0.477,
+            [
+              0,
+              0.478,
+              0.761
+            ]
+          ],
+          [
+            0.479,
+            [
+              0,
+              0.478,
+              0.761
+            ]
+          ],
+          [
+            0.481,
+            [
+              0,
+              0.482,
+              0.759
+            ]
+          ],
+          [
+            0.483,
+            [
+              0,
+              0.482,
+              0.759
+            ]
+          ],
+          [
+            0.485,
+            [
+              0,
+              0.486,
+              0.757
+            ]
+          ],
+          [
+            0.487,
+            [
+              0,
+              0.486,
+              0.757
+            ]
+          ],
+          [
+            0.489,
+            [
+              0,
+              0.49,
+              0.755
+            ]
+          ],
+          [
+            0.491,
+            [
+              0,
+              0.49,
+              0.755
+            ]
+          ],
+          [
+            0.493,
+            [
+              0,
+              0.494,
+              0.753
+            ]
+          ],
+          [
+            0.495,
+            [
+              0,
+              0.494,
+              0.753
+            ]
+          ],
+          [
+            0.497,
+            [
+              0,
+              0.498,
+              0.751
+            ]
+          ],
+          [
+            0.499,
+            [
+              0,
+              0.498,
+              0.751
+            ]
+          ],
+          [
+            0.501,
+            [
+              0,
+              0.502,
+              0.749
+            ]
+          ],
+          [
+            0.503,
+            [
+              0,
+              0.502,
+              0.749
+            ]
+          ],
+          [
+            0.505,
+            [
+              0,
+              0.506,
+              0.747
+            ]
+          ],
+          [
+            0.507,
+            [
+              0,
+              0.506,
+              0.747
+            ]
+          ],
+          [
+            0.509,
+            [
+              0,
+              0.51,
+              0.745
+            ]
+          ],
+          [
+            0.511,
+            [
+              0,
+              0.51,
+              0.745
+            ]
+          ],
+          [
+            0.513,
+            [
+              0,
+              0.514,
+              0.743
+            ]
+          ],
+          [
+            0.515,
+            [
+              0,
+              0.514,
+              0.743
+            ]
+          ],
+          [
+            0.517,
+            [
+              0,
+              0.518,
+              0.741
+            ]
+          ],
+          [
+            0.519,
+            [
+              0,
+              0.518,
+              0.741
+            ]
+          ],
+          [
+            0.521,
+            [
+              0,
+              0.522,
+              0.739
+            ]
+          ],
+          [
+            0.523,
+            [
+              0,
+              0.522,
+              0.739
+            ]
+          ],
+          [
+            0.524,
+            [
+              0,
+              0.525,
+              0.737
+            ]
+          ],
+          [
+            0.526,
+            [
+              0,
+              0.525,
+              0.737
+            ]
+          ],
+          [
+            0.528,
+            [
+              0,
+              0.529,
+              0.735
+            ]
+          ],
+          [
+            0.53,
+            [
+              0,
+              0.529,
+              0.735
+            ]
+          ],
+          [
+            0.532,
+            [
+              0,
+              0.533,
+              0.733
+            ]
+          ],
+          [
+            0.534,
+            [
+              0,
+              0.533,
+              0.733
+            ]
+          ],
+          [
+            0.536,
+            [
+              0,
+              0.537,
+              0.731
+            ]
+          ],
+          [
+            0.538,
+            [
+              0,
+              0.537,
+              0.731
+            ]
+          ],
+          [
+            0.54,
+            [
+              0,
+              0.541,
+              0.729
+            ]
+          ],
+          [
+            0.542,
+            [
+              0,
+              0.541,
+              0.729
+            ]
+          ],
+          [
+            0.544,
+            [
+              0,
+              0.545,
+              0.727
+            ]
+          ],
+          [
+            0.546,
+            [
+              0,
+              0.545,
+              0.727
+            ]
+          ],
+          [
+            0.548,
+            [
+              0,
+              0.549,
+              0.725
+            ]
+          ],
+          [
+            0.55,
+            [
+              0,
+              0.549,
+              0.725
+            ]
+          ],
+          [
+            0.552,
+            [
+              0,
+              0.553,
+              0.724
+            ]
+          ],
+          [
+            0.554,
+            [
+              0,
+              0.553,
+              0.724
+            ]
+          ],
+          [
+            0.556,
+            [
+              0,
+              0.557,
+              0.722
+            ]
+          ],
+          [
+            0.558,
+            [
+              0,
+              0.557,
+              0.722
+            ]
+          ],
+          [
+            0.56,
+            [
+              0,
+              0.561,
+              0.72
+            ]
+          ],
+          [
+            0.562,
+            [
+              0,
+              0.561,
+              0.72
+            ]
+          ],
+          [
+            0.564,
+            [
+              0,
+              0.565,
+              0.718
+            ]
+          ],
+          [
+            0.566,
+            [
+              0,
+              0.565,
+              0.718
+            ]
+          ],
+          [
+            0.568,
+            [
+              0,
+              0.569,
+              0.716
+            ]
+          ],
+          [
+            0.569,
+            [
+              0,
+              0.569,
+              0.716
+            ]
+          ],
+          [
+            0.571,
+            [
+              0,
+              0.573,
+              0.714
+            ]
+          ],
+          [
+            0.573,
+            [
+              0,
+              0.573,
+              0.714
+            ]
+          ],
+          [
+            0.575,
+            [
+              0,
+              0.576,
+              0.712
+            ]
+          ],
+          [
+            0.577,
+            [
+              0,
+              0.576,
+              0.712
+            ]
+          ],
+          [
+            0.579,
+            [
+              0,
+              0.58,
+              0.71
+            ]
+          ],
+          [
+            0.581,
+            [
+              0,
+              0.58,
+              0.71
+            ]
+          ],
+          [
+            0.583,
+            [
+              0,
+              0.584,
+              0.708
+            ]
+          ],
+          [
+            0.585,
+            [
+              0,
+              0.584,
+              0.708
+            ]
+          ],
+          [
+            0.587,
+            [
+              0,
+              0.588,
+              0.706
+            ]
+          ],
+          [
+            0.589,
+            [
+              0,
+              0.588,
+              0.706
+            ]
+          ],
+          [
+            0.591,
+            [
+              0,
+              0.592,
+              0.704
+            ]
+          ],
+          [
+            0.593,
+            [
+              0,
+              0.592,
+              0.704
+            ]
+          ],
+          [
+            0.595,
+            [
+              0,
+              0.596,
+              0.702
+            ]
+          ],
+          [
+            0.597,
+            [
+              0,
+              0.596,
+              0.702
+            ]
+          ],
+          [
+            0.599,
+            [
+              0,
+              0.6,
+              0.7
+            ]
+          ],
+          [
+            0.601,
+            [
+              0,
+              0.6,
+              0.7
+            ]
+          ],
+          [
+            0.603,
+            [
+              0,
+              0.604,
+              0.698
+            ]
+          ],
+          [
+            0.605,
+            [
+              0,
+              0.604,
+              0.698
+            ]
+          ],
+          [
+            0.607,
+            [
+              0,
+              0.608,
+              0.696
+            ]
+          ],
+          [
+            0.609,
+            [
+              0,
+              0.608,
+              0.696
+            ]
+          ],
+          [
+            0.611,
+            [
+              0,
+              0.612,
+              0.694
+            ]
+          ],
+          [
+            0.613,
+            [
+              0,
+              0.612,
+              0.694
+            ]
+          ],
+          [
+            0.614,
+            [
+              0,
+              0.616,
+              0.692
+            ]
+          ],
+          [
+            0.616,
+            [
+              0,
+              0.616,
+              0.692
+            ]
+          ],
+          [
+            0.618,
+            [
+              0,
+              0.62,
+              0.69
+            ]
+          ],
+          [
+            0.62,
+            [
+              0,
+              0.62,
+              0.69
+            ]
+          ],
+          [
+            0.622,
+            [
+              0,
+              0.624,
+              0.688
+            ]
+          ],
+          [
+            0.624,
+            [
+              0,
+              0.624,
+              0.688
+            ]
+          ],
+          [
+            0.626,
+            [
+              0,
+              0.627,
+              0.686
+            ]
+          ],
+          [
+            0.628,
+            [
+              0,
+              0.627,
+              0.686
+            ]
+          ],
+          [
+            0.63,
+            [
+              0,
+              0.631,
+              0.684
+            ]
+          ],
+          [
+            0.632,
+            [
+              0,
+              0.631,
+              0.684
+            ]
+          ],
+          [
+            0.634,
+            [
+              0,
+              0.635,
+              0.682
+            ]
+          ],
+          [
+            0.636,
+            [
+              0,
+              0.635,
+              0.682
+            ]
+          ],
+          [
+            0.638,
+            [
+              0,
+              0.639,
+              0.68
+            ]
+          ],
+          [
+            0.64,
+            [
+              0,
+              0.639,
+              0.68
+            ]
+          ],
+          [
+            0.642,
+            [
+              0,
+              0.643,
+              0.678
+            ]
+          ],
+          [
+            0.644,
+            [
+              0,
+              0.643,
+              0.678
+            ]
+          ],
+          [
+            0.646,
+            [
+              0,
+              0.647,
+              0.676
+            ]
+          ],
+          [
+            0.648,
+            [
+              0,
+              0.647,
+              0.676
+            ]
+          ],
+          [
+            0.65,
+            [
+              0,
+              0.651,
+              0.675
+            ]
+          ],
+          [
+            0.652,
+            [
+              0,
+              0.651,
+              0.675
+            ]
+          ],
+          [
+            0.654,
+            [
+              0,
+              0.655,
+              0.673
+            ]
+          ],
+          [
+            0.656,
+            [
+              0,
+              0.655,
+              0.673
+            ]
+          ],
+          [
+            0.658,
+            [
+              0,
+              0.659,
+              0.671
+            ]
+          ],
+          [
+            0.659,
+            [
+              0,
+              0.659,
+              0.671
+            ]
+          ],
+          [
+            0.661,
+            [
+              0,
+              0.663,
+              0.669
+            ]
+          ],
+          [
+            0.663,
+            [
+              0,
+              0.663,
+              0.669
+            ]
+          ],
+          [
+            0.665,
+            [
+              0,
+              0.667,
+              0.667
+            ]
+          ],
+          [
+            0.667,
+            [
+              0,
+              0.667,
+              0.667
+            ]
+          ],
+          [
+            0.669,
+            [
+              0,
+              0.671,
+              0.665
+            ]
+          ],
+          [
+            0.671,
+            [
+              0,
+              0.671,
+              0.665
+            ]
+          ],
+          [
+            0.673,
+            [
+              0,
+              0.675,
+              0.663
+            ]
+          ],
+          [
+            0.675,
+            [
+              0,
+              0.675,
+              0.663
+            ]
+          ],
+          [
+            0.677,
+            [
+              0,
+              0.678,
+              0.661
+            ]
+          ],
+          [
+            0.679,
+            [
+              0,
+              0.678,
+              0.661
+            ]
+          ],
+          [
+            0.681,
+            [
+              0,
+              0.682,
+              0.659
+            ]
+          ],
+          [
+            0.683,
+            [
+              0,
+              0.682,
+              0.659
+            ]
+          ],
+          [
+            0.685,
+            [
+              0,
+              0.686,
+              0.657
+            ]
+          ],
+          [
+            0.687,
+            [
+              0,
+              0.686,
+              0.657
+            ]
+          ],
+          [
+            0.689,
+            [
+              0,
+              0.69,
+              0.655
+            ]
+          ],
+          [
+            0.691,
+            [
+              0,
+              0.69,
+              0.655
+            ]
+          ],
+          [
+            0.693,
+            [
+              0,
+              0.694,
+              0.653
+            ]
+          ],
+          [
+            0.695,
+            [
+              0,
+              0.694,
+              0.653
+            ]
+          ],
+          [
+            0.697,
+            [
+              0,
+              0.698,
+              0.651
+            ]
+          ],
+          [
+            0.699,
+            [
+              0,
+              0.698,
+              0.651
+            ]
+          ],
+          [
+            0.701,
+            [
+              0,
+              0.702,
+              0.649
+            ]
+          ],
+          [
+            0.703,
+            [
+              0,
+              0.702,
+              0.649
+            ]
+          ],
+          [
+            0.705,
+            [
+              0,
+              0.706,
+              0.647
+            ]
+          ],
+          [
+            0.706,
+            [
+              0,
+              0.706,
+              0.647
+            ]
+          ],
+          [
+            0.708,
+            [
+              0,
+              0.71,
+              0.645
+            ]
+          ],
+          [
+            0.71,
+            [
+              0,
+              0.71,
+              0.645
+            ]
+          ],
+          [
+            0.712,
+            [
+              0,
+              0.714,
+              0.643
+            ]
+          ],
+          [
+            0.714,
+            [
+              0,
+              0.714,
+              0.643
+            ]
+          ],
+          [
+            0.716,
+            [
+              0,
+              0.718,
+              0.641
+            ]
+          ],
+          [
+            0.718,
+            [
+              0,
+              0.718,
+              0.641
+            ]
+          ],
+          [
+            0.72,
+            [
+              0,
+              0.722,
+              0.639
+            ]
+          ],
+          [
+            0.722,
+            [
+              0,
+              0.722,
+              0.639
+            ]
+          ],
+          [
+            0.724,
+            [
+              0,
+              0.725,
+              0.637
+            ]
+          ],
+          [
+            0.726,
+            [
+              0,
+              0.725,
+              0.637
+            ]
+          ],
+          [
+            0.728,
+            [
+              0,
+              0.729,
+              0.635
+            ]
+          ],
+          [
+            0.73,
+            [
+              0,
+              0.729,
+              0.635
+            ]
+          ],
+          [
+            0.732,
+            [
+              0,
+              0.733,
+              0.633
+            ]
+          ],
+          [
+            0.734,
+            [
+              0,
+              0.733,
+              0.633
+            ]
+          ],
+          [
+            0.736,
+            [
+              0,
+              0.737,
+              0.631
+            ]
+          ],
+          [
+            0.738,
+            [
+              0,
+              0.737,
+              0.631
+            ]
+          ],
+          [
+            0.74,
+            [
+              0,
+              0.741,
+              0.629
+            ]
+          ],
+          [
+            0.742,
+            [
+              0,
+              0.741,
+              0.629
+            ]
+          ],
+          [
+            0.744,
+            [
+              0,
+              0.745,
+              0.627
+            ]
+          ],
+          [
+            0.746,
+            [
+              0,
+              0.745,
+              0.627
+            ]
+          ],
+          [
+            0.748,
+            [
+              0,
+              0.749,
+              0.625
+            ]
+          ],
+          [
+            0.75,
+            [
+              0,
+              0.749,
+              0.625
+            ]
+          ],
+          [
+            0.751,
+            [
+              0,
+              0.753,
+              0.624
+            ]
+          ],
+          [
+            0.753,
+            [
+              0,
+              0.753,
+              0.624
+            ]
+          ],
+          [
+            0.755,
+            [
+              0,
+              0.757,
+              0.622
+            ]
+          ],
+          [
+            0.757,
+            [
+              0,
+              0.757,
+              0.622
+            ]
+          ],
+          [
+            0.759,
+            [
+              0,
+              0.761,
+              0.62
+            ]
+          ],
+          [
+            0.761,
+            [
+              0,
+              0.761,
+              0.62
+            ]
+          ],
+          [
+            0.763,
+            [
+              0,
+              0.765,
+              0.618
+            ]
+          ],
+          [
+            0.765,
+            [
+              0,
+              0.765,
+              0.618
+            ]
+          ],
+          [
+            0.767,
+            [
+              0,
+              0.769,
+              0.616
+            ]
+          ],
+          [
+            0.769,
+            [
+              0,
+              0.769,
+              0.616
+            ]
+          ],
+          [
+            0.771,
+            [
+              0,
+              0.773,
+              0.614
+            ]
+          ],
+          [
+            0.773,
+            [
+              0,
+              0.773,
+              0.614
+            ]
+          ],
+          [
+            0.775,
+            [
+              0,
+              0.776,
+              0.612
+            ]
+          ],
+          [
+            0.777,
+            [
+              0,
+              0.776,
+              0.612
+            ]
+          ],
+          [
+            0.779,
+            [
+              0,
+              0.78,
+              0.61
+            ]
+          ],
+          [
+            0.781,
+            [
+              0,
+              0.78,
+              0.61
+            ]
+          ],
+          [
+            0.783,
+            [
+              0,
+              0.784,
+              0.608
+            ]
+          ],
+          [
+            0.785,
+            [
+              0,
+              0.784,
+              0.608
+            ]
+          ],
+          [
+            0.787,
+            [
+              0,
+              0.788,
+              0.606
+            ]
+          ],
+          [
+            0.789,
+            [
+              0,
+              0.788,
+              0.606
+            ]
+          ],
+          [
+            0.791,
+            [
+              0,
+              0.792,
+              0.604
+            ]
+          ],
+          [
+            0.793,
+            [
+              0,
+              0.792,
+              0.604
+            ]
+          ],
+          [
+            0.795,
+            [
+              0,
+              0.796,
+              0.602
+            ]
+          ],
+          [
+            0.796,
+            [
+              0,
+              0.796,
+              0.602
+            ]
+          ],
+          [
+            0.798,
+            [
+              0,
+              0.8,
+              0.6
+            ]
+          ],
+          [
+            0.8,
+            [
+              0,
+              0.8,
+              0.6
+            ]
+          ],
+          [
+            0.802,
+            [
+              0,
+              0.804,
+              0.598
+            ]
+          ],
+          [
+            0.804,
+            [
+              0,
+              0.804,
+              0.598
+            ]
+          ],
+          [
+            0.806,
+            [
+              0,
+              0.808,
+              0.596
+            ]
+          ],
+          [
+            0.808,
+            [
+              0,
+              0.808,
+              0.596
+            ]
+          ],
+          [
+            0.81,
+            [
+              0,
+              0.812,
+              0.594
+            ]
+          ],
+          [
+            0.812,
+            [
+              0,
+              0.812,
+              0.594
+            ]
+          ],
+          [
+            0.814,
+            [
+              0,
+              0.816,
+              0.592
+            ]
+          ],
+          [
+            0.816,
+            [
+              0,
+              0.816,
+              0.592
+            ]
+          ],
+          [
+            0.818,
+            [
+              0,
+              0.82,
+              0.59
+            ]
+          ],
+          [
+            0.82,
+            [
+              0,
+              0.82,
+              0.59
+            ]
+          ],
+          [
+            0.822,
+            [
+              0,
+              0.824,
+              0.588
+            ]
+          ],
+          [
+            0.824,
+            [
+              0,
+              0.824,
+              0.588
+            ]
+          ],
+          [
+            0.826,
+            [
+              0,
+              0.827,
+              0.586
+            ]
+          ],
+          [
+            0.828,
+            [
+              0,
+              0.827,
+              0.586
+            ]
+          ],
+          [
+            0.83,
+            [
+              0,
+              0.831,
+              0.584
+            ]
+          ],
+          [
+            0.832,
+            [
+              0,
+              0.831,
+              0.584
+            ]
+          ],
+          [
+            0.834,
+            [
+              0,
+              0.835,
+              0.582
+            ]
+          ],
+          [
+            0.836,
+            [
+              0,
+              0.835,
+              0.582
+            ]
+          ],
+          [
+            0.838,
+            [
+              0,
+              0.839,
+              0.58
+            ]
+          ],
+          [
+            0.84,
+            [
+              0,
+              0.839,
+              0.58
+            ]
+          ],
+          [
+            0.841,
+            [
+              0,
+              0.843,
+              0.578
+            ]
+          ],
+          [
+            0.843,
+            [
+              0,
+              0.843,
+              0.578
+            ]
+          ],
+          [
+            0.845,
+            [
+              0,
+              0.847,
+              0.576
+            ]
+          ],
+          [
+            0.847,
+            [
+              0,
+              0.847,
+              0.576
+            ]
+          ],
+          [
+            0.849,
+            [
+              0,
+              0.851,
+              0.575
+            ]
+          ],
+          [
+            0.851,
+            [
+              0,
+              0.851,
+              0.575
+            ]
+          ],
+          [
+            0.853,
+            [
+              0,
+              0.855,
+              0.573
+            ]
+          ],
+          [
+            0.855,
+            [
+              0,
+              0.855,
+              0.573
+            ]
+          ],
+          [
+            0.857,
+            [
+              0,
+              0.859,
+              0.571
+            ]
+          ],
+          [
+            0.859,
+            [
+              0,
+              0.859,
+              0.571
+            ]
+          ],
+          [
+            0.861,
+            [
+              0,
+              0.863,
+              0.569
+            ]
+          ],
+          [
+            0.863,
+            [
+              0,
+              0.863,
+              0.569
+            ]
+          ],
+          [
+            0.865,
+            [
+              0,
+              0.867,
+              0.567
+            ]
+          ],
+          [
+            0.867,
+            [
+              0,
+              0.867,
+              0.567
+            ]
+          ],
+          [
+            0.869,
+            [
+              0,
+              0.871,
+              0.565
+            ]
+          ],
+          [
+            0.871,
+            [
+              0,
+              0.871,
+              0.565
+            ]
+          ],
+          [
+            0.873,
+            [
+              0,
+              0.875,
+              0.563
+            ]
+          ],
+          [
+            0.875,
+            [
+              0,
+              0.875,
+              0.563
+            ]
+          ],
+          [
+            0.877,
+            [
+              0,
+              0.878,
+              0.561
+            ]
+          ],
+          [
+            0.879,
+            [
+              0,
+              0.878,
+              0.561
+            ]
+          ],
+          [
+            0.881,
+            [
+              0,
+              0.882,
+              0.559
+            ]
+          ],
+          [
+            0.883,
+            [
+              0,
+              0.882,
+              0.559
+            ]
+          ],
+          [
+            0.885,
+            [
+              0,
+              0.886,
+              0.557
+            ]
+          ],
+          [
+            0.886,
+            [
+              0,
+              0.886,
+              0.557
+            ]
+          ],
+          [
+            0.888,
+            [
+              0,
+              0.89,
+              0.555
+            ]
+          ],
+          [
+            0.89,
+            [
+              0,
+              0.89,
+              0.555
+            ]
+          ],
+          [
+            0.892,
+            [
+              0,
+              0.894,
+              0.553
+            ]
+          ],
+          [
+            0.894,
+            [
+              0,
+              0.894,
+              0.553
+            ]
+          ],
+          [
+            0.896,
+            [
+              0,
+              0.898,
+              0.551
+            ]
+          ],
+          [
+            0.898,
+            [
+              0,
+              0.898,
+              0.551
+            ]
+          ],
+          [
+            0.9,
+            [
+              0,
+              0.902,
+              0.549
+            ]
+          ],
+          [
+            0.902,
+            [
+              0,
+              0.902,
+              0.549
+            ]
+          ],
+          [
+            0.904,
+            [
+              0,
+              0.906,
+              0.547
+            ]
+          ],
+          [
+            0.906,
+            [
+              0,
+              0.906,
+              0.547
+            ]
+          ],
+          [
+            0.908,
+            [
+              0,
+              0.91,
+              0.545
+            ]
+          ],
+          [
+            0.91,
+            [
+              0,
+              0.91,
+              0.545
+            ]
+          ],
+          [
+            0.912,
+            [
+              0,
+              0.914,
+              0.543
+            ]
+          ],
+          [
+            0.914,
+            [
+              0,
+              0.914,
+              0.543
+            ]
+          ],
+          [
+            0.916,
+            [
+              0,
+              0.918,
+              0.541
+            ]
+          ],
+          [
+            0.918,
+            [
+              0,
+              0.918,
+              0.541
+            ]
+          ],
+          [
+            0.92,
+            [
+              0,
+              0.922,
+              0.539
+            ]
+          ],
+          [
+            0.922,
+            [
+              0,
+              0.922,
+              0.539
+            ]
+          ],
+          [
+            0.924,
+            [
+              0,
+              0.925,
+              0.537
+            ]
+          ],
+          [
+            0.926,
+            [
+              0,
+              0.925,
+              0.537
+            ]
+          ],
+          [
+            0.928,
+            [
+              0,
+              0.929,
+              0.535
+            ]
+          ],
+          [
+            0.93,
+            [
+              0,
+              0.929,
+              0.535
+            ]
+          ],
+          [
+            0.932,
+            [
+              0,
+              0.933,
+              0.533
+            ]
+          ],
+          [
+            0.933,
+            [
+              0,
+              0.933,
+              0.533
+            ]
+          ],
+          [
+            0.935,
+            [
+              0,
+              0.937,
+              0.531
+            ]
+          ],
+          [
+            0.937,
+            [
+              0,
+              0.937,
+              0.531
+            ]
+          ],
+          [
+            0.939,
+            [
+              0,
+              0.941,
+              0.529
+            ]
+          ],
+          [
+            0.941,
+            [
+              0,
+              0.941,
+              0.529
+            ]
+          ],
+          [
+            0.943,
+            [
+              0,
+              0.945,
+              0.527
+            ]
+          ],
+          [
+            0.945,
+            [
+              0,
+              0.945,
+              0.527
+            ]
+          ],
+          [
+            0.947,
+            [
+              0,
+              0.949,
+              0.525
+            ]
+          ],
+          [
+            0.949,
+            [
+              0,
+              0.949,
+              0.525
+            ]
+          ],
+          [
+            0.951,
+            [
+              0,
+              0.953,
+              0.524
+            ]
+          ],
+          [
+            0.953,
+            [
+              0,
+              0.953,
+              0.524
+            ]
+          ],
+          [
+            0.955,
+            [
+              0,
+              0.957,
+              0.522
+            ]
+          ],
+          [
+            0.957,
+            [
+              0,
+              0.957,
+              0.522
+            ]
+          ],
+          [
+            0.959,
+            [
+              0,
+              0.961,
+              0.52
+            ]
+          ],
+          [
+            0.961,
+            [
+              0,
+              0.961,
+              0.52
+            ]
+          ],
+          [
+            0.963,
+            [
+              0,
+              0.965,
+              0.518
+            ]
+          ],
+          [
+            0.965,
+            [
+              0,
+              0.965,
+              0.518
+            ]
+          ],
+          [
+            0.967,
+            [
+              0,
+              0.969,
+              0.516
+            ]
+          ],
+          [
+            0.969,
+            [
+              0,
+              0.969,
+              0.516
+            ]
+          ],
+          [
+            0.971,
+            [
+              0,
+              0.973,
+              0.514
+            ]
+          ],
+          [
+            0.973,
+            [
+              0,
+              0.973,
+              0.514
+            ]
+          ],
+          [
+            0.975,
+            [
+              0,
+              0.976,
+              0.512
+            ]
+          ],
+          [
+            0.977,
+            [
+              0,
+              0.976,
+              0.512
+            ]
+          ],
+          [
+            0.978,
+            [
+              0,
+              0.98,
+              0.51
+            ]
+          ],
+          [
+            0.98,
+            [
+              0,
+              0.98,
+              0.51
+            ]
+          ],
+          [
+            0.982,
+            [
+              0,
+              0.984,
+              0.508
+            ]
+          ],
+          [
+            0.984,
+            [
+              0,
+              0.984,
+              0.508
+            ]
+          ],
+          [
+            0.986,
+            [
+              0,
+              0.988,
+              0.506
+            ]
+          ],
+          [
+            0.988,
+            [
+              0,
+              0.988,
+              0.506
+            ]
+          ],
+          [
+            0.99,
+            [
+              0,
+              0.992,
+              0.504
+            ]
+          ],
+          [
+            0.992,
+            [
+              0,
+              0.992,
+              0.504
+            ]
+          ],
+          [
+            0.994,
+            [
+              0,
+              0.996,
+              0.502
+            ]
+          ],
+          [
+            0.996,
+            [
+              0,
+              0.996,
+              0.502
+            ]
+          ],
+          [
+            0.998,
+            [
+              0,
+              1,
+              0.5
+            ]
+          ],
+          [
+            1,
+            [
+              0,
+              1,
+              0.5
+            ]
+          ]
+        ],
+        [
+          [
+            0,
+            [
+              0,
+              0,
+              0.5
+            ]
+          ],
+          [
+            0.002,
+            [
+              0,
+              0,
+              0.5
+            ]
+          ],
+          [
+            0.004,
+            [
+              0,
+              0,
+              0.518
+            ]
+          ],
+          [
+            0.006,
+            [
+              0,
+              0,
+              0.518
+            ]
+          ],
+          [
+            0.008,
+            [
+              0,
+              0,
+              0.536
+            ]
+          ],
+          [
+            0.01,
+            [
+              0,
+              0,
+              0.536
+            ]
+          ],
+          [
+            0.012,
+            [
+              0,
+              0,
+              0.553
+            ]
+          ],
+          [
+            0.014,
+            [
+              0,
+              0,
+              0.553
+            ]
+          ],
+          [
+            0.016,
+            [
+              0,
+              0,
+              0.571
+            ]
+          ],
+          [
+            0.018,
+            [
+              0,
+              0,
+              0.571
+            ]
+          ],
+          [
+            0.02,
+            [
+              0,
+              0,
+              0.589
+            ]
+          ],
+          [
+            0.022,
+            [
+              0,
+              0,
+              0.589
+            ]
+          ],
+          [
+            0.023,
+            [
+              0,
+              0,
+              0.607
+            ]
+          ],
+          [
+            0.025,
+            [
+              0,
+              0,
+              0.607
+            ]
+          ],
+          [
+            0.027,
+            [
+              0,
+              0,
+              0.625
+            ]
+          ],
+          [
+            0.029,
+            [
+              0,
+              0,
+              0.625
+            ]
+          ],
+          [
+            0.031,
+            [
+              0,
+              0,
+              0.643
+            ]
+          ],
+          [
+            0.033,
+            [
+              0,
+              0,
+              0.643
+            ]
+          ],
+          [
+            0.035,
+            [
+              0,
+              0,
+              0.66
+            ]
+          ],
+          [
+            0.037,
+            [
+              0,
+              0,
+              0.66
+            ]
+          ],
+          [
+            0.039,
+            [
+              0,
+              0,
+              0.678
+            ]
+          ],
+          [
+            0.041,
+            [
+              0,
+              0,
+              0.678
+            ]
+          ],
+          [
+            0.043,
+            [
+              0,
+              0,
+              0.696
+            ]
+          ],
+          [
+            0.045,
+            [
+              0,
+              0,
+              0.696
+            ]
+          ],
+          [
+            0.047,
+            [
+              0,
+              0,
+              0.714
+            ]
+          ],
+          [
+            0.049,
+            [
+              0,
+              0,
+              0.714
+            ]
+          ],
+          [
+            0.051,
+            [
+              0,
+              0,
+              0.732
+            ]
+          ],
+          [
+            0.053,
+            [
+              0,
+              0,
+              0.732
+            ]
+          ],
+          [
+            0.055,
+            [
+              0,
+              0,
+              0.75
+            ]
+          ],
+          [
+            0.057,
+            [
+              0,
+              0,
+              0.75
+            ]
+          ],
+          [
+            0.059,
+            [
+              0,
+              0,
+              0.767
+            ]
+          ],
+          [
+            0.061,
+            [
+              0,
+              0,
+              0.767
+            ]
+          ],
+          [
+            0.063,
+            [
+              0,
+              0,
+              0.785
+            ]
+          ],
+          [
+            0.065,
+            [
+              0,
+              0,
+              0.785
+            ]
+          ],
+          [
+            0.067,
+            [
+              0,
+              0,
+              0.803
+            ]
+          ],
+          [
+            0.068,
+            [
+              0,
+              0,
+              0.803
+            ]
+          ],
+          [
+            0.07,
+            [
+              0,
+              0,
+              0.821
+            ]
+          ],
+          [
+            0.072,
+            [
+              0,
+              0,
+              0.821
+            ]
+          ],
+          [
+            0.074,
+            [
+              0,
+              0,
+              0.839
+            ]
+          ],
+          [
+            0.076,
+            [
+              0,
+              0,
+              0.839
+            ]
+          ],
+          [
+            0.078,
+            [
+              0,
+              0,
+              0.857
+            ]
+          ],
+          [
+            0.08,
+            [
+              0,
+              0,
+              0.857
+            ]
+          ],
+          [
+            0.082,
+            [
+              0,
+              0,
+              0.874
+            ]
+          ],
+          [
+            0.084,
+            [
+              0,
+              0,
+              0.874
+            ]
+          ],
+          [
+            0.086,
+            [
+              0,
+              0,
+              0.892
+            ]
+          ],
+          [
+            0.088,
+            [
+              0,
+              0,
+              0.892
+            ]
+          ],
+          [
+            0.09,
+            [
+              0,
+              0,
+              0.91
+            ]
+          ],
+          [
+            0.092,
+            [
+              0,
+              0,
+              0.91
+            ]
+          ],
+          [
+            0.094,
+            [
+              0,
+              0,
+              0.928
+            ]
+          ],
+          [
+            0.096,
+            [
+              0,
+              0,
+              0.928
+            ]
+          ],
+          [
+            0.098,
+            [
+              0,
+              0,
+              0.946
+            ]
+          ],
+          [
+            0.1,
+            [
+              0,
+              0,
+              0.946
+            ]
+          ],
+          [
+            0.102,
+            [
+              0,
+              0,
+              0.963
+            ]
+          ],
+          [
+            0.104,
+            [
+              0,
+              0,
+              0.963
+            ]
+          ],
+          [
+            0.106,
+            [
+              0,
+              0,
+              0.981
+            ]
+          ],
+          [
+            0.108,
+            [
+              0,
+              0,
+              0.981
+            ]
+          ],
+          [
+            0.11,
+            [
+              0,
+              0,
+              0.999
+            ]
+          ],
+          [
+            0.112,
+            [
+              0,
+              0,
+              0.999
+            ]
+          ],
+          [
+            0.114,
+            [
+              0,
+              0,
+              1
+            ]
+          ],
+          [
+            0.115,
+            [
+              0,
+              0,
+              1
+            ]
+          ],
+          [
+            0.117,
+            [
+              0,
+              0,
+              1
+            ]
+          ],
+          [
+            0.119,
+            [
+              0,
+              0,
+              1
+            ]
+          ],
+          [
+            0.121,
+            [
+              0,
+              0,
+              1
+            ]
+          ],
+          [
+            0.123,
+            [
+              0,
+              0,
+              1
+            ]
+          ],
+          [
+            0.125,
+            [
+              0,
+              0.002,
+              1
+            ]
+          ],
+          [
+            0.127,
+            [
+              0,
+              0.002,
+              1
+            ]
+          ],
+          [
+            0.129,
+            [
+              0,
+              0.018,
+              1
+            ]
+          ],
+          [
+            0.131,
+            [
+              0,
+              0.018,
+              1
+            ]
+          ],
+          [
+            0.133,
+            [
+              0,
+              0.033,
+              1
+            ]
+          ],
+          [
+            0.135,
+            [
+              0,
+              0.033,
+              1
+            ]
+          ],
+          [
+            0.137,
+            [
+              0,
+              0.049,
+              1
+            ]
+          ],
+          [
+            0.139,
+            [
+              0,
+              0.049,
+              1
+            ]
+          ],
+          [
+            0.141,
+            [
+              0,
+              0.065,
+              1
+            ]
+          ],
+          [
+            0.143,
+            [
+              0,
+              0.065,
+              1
+            ]
+          ],
+          [
+            0.145,
+            [
+              0,
+              0.08,
+              1
+            ]
+          ],
+          [
+            0.147,
+            [
+              0,
+              0.08,
+              1
+            ]
+          ],
+          [
+            0.149,
+            [
+              0,
+              0.096,
+              1
+            ]
+          ],
+          [
+            0.151,
+            [
+              0,
+              0.096,
+              1
+            ]
+          ],
+          [
+            0.153,
+            [
+              0,
+              0.112,
+              1
+            ]
+          ],
+          [
+            0.155,
+            [
+              0,
+              0.112,
+              1
+            ]
+          ],
+          [
+            0.157,
+            [
+              0,
+              0.127,
+              1
+            ]
+          ],
+          [
+            0.159,
+            [
+              0,
+              0.127,
+              1
+            ]
+          ],
+          [
+            0.16,
+            [
+              0,
+              0.143,
+              1
+            ]
+          ],
+          [
+            0.162,
+            [
+              0,
+              0.143,
+              1
+            ]
+          ],
+          [
+            0.164,
+            [
+              0,
+              0.159,
+              1
+            ]
+          ],
+          [
+            0.166,
+            [
+              0,
+              0.159,
+              1
+            ]
+          ],
+          [
+            0.168,
+            [
+              0,
+              0.175,
+              1
+            ]
+          ],
+          [
+            0.17,
+            [
+              0,
+              0.175,
+              1
+            ]
+          ],
+          [
+            0.172,
+            [
+              0,
+              0.19,
+              1
+            ]
+          ],
+          [
+            0.174,
+            [
+              0,
+              0.19,
+              1
+            ]
+          ],
+          [
+            0.176,
+            [
+              0,
+              0.206,
+              1
+            ]
+          ],
+          [
+            0.178,
+            [
+              0,
+              0.206,
+              1
+            ]
+          ],
+          [
+            0.18,
+            [
+              0,
+              0.222,
+              1
+            ]
+          ],
+          [
+            0.182,
+            [
+              0,
+              0.222,
+              1
+            ]
+          ],
+          [
+            0.184,
+            [
+              0,
+              0.237,
+              1
+            ]
+          ],
+          [
+            0.186,
+            [
+              0,
+              0.237,
+              1
+            ]
+          ],
+          [
+            0.188,
+            [
+              0,
+              0.253,
+              1
+            ]
+          ],
+          [
+            0.19,
+            [
+              0,
+              0.253,
+              1
+            ]
+          ],
+          [
+            0.192,
+            [
+              0,
+              0.269,
+              1
+            ]
+          ],
+          [
+            0.194,
+            [
+              0,
+              0.269,
+              1
+            ]
+          ],
+          [
+            0.196,
+            [
+              0,
+              0.284,
+              1
+            ]
+          ],
+          [
+            0.198,
+            [
+              0,
+              0.284,
+              1
+            ]
+          ],
+          [
+            0.2,
+            [
+              0,
+              0.3,
+              1
+            ]
+          ],
+          [
+            0.202,
+            [
+              0,
+              0.3,
+              1
+            ]
+          ],
+          [
+            0.204,
+            [
+              0,
+              0.316,
+              1
+            ]
+          ],
+          [
+            0.205,
+            [
+              0,
+              0.316,
+              1
+            ]
+          ],
+          [
+            0.207,
+            [
+              0,
+              0.331,
+              1
+            ]
+          ],
+          [
+            0.209,
+            [
+              0,
+              0.331,
+              1
+            ]
+          ],
+          [
+            0.211,
+            [
+              0,
+              0.347,
+              1
+            ]
+          ],
+          [
+            0.213,
+            [
+              0,
+              0.347,
+              1
+            ]
+          ],
+          [
+            0.215,
+            [
+              0,
+              0.363,
+              1
+            ]
+          ],
+          [
+            0.217,
+            [
+              0,
+              0.363,
+              1
+            ]
+          ],
+          [
+            0.219,
+            [
+              0,
+              0.378,
+              1
+            ]
+          ],
+          [
+            0.221,
+            [
+              0,
+              0.378,
+              1
+            ]
+          ],
+          [
+            0.223,
+            [
+              0,
+              0.394,
+              1
+            ]
+          ],
+          [
+            0.225,
+            [
+              0,
+              0.394,
+              1
+            ]
+          ],
+          [
+            0.227,
+            [
+              0,
+              0.41,
+              1
+            ]
+          ],
+          [
+            0.229,
+            [
+              0,
+              0.41,
+              1
+            ]
+          ],
+          [
+            0.231,
+            [
+              0,
+              0.425,
+              1
+            ]
+          ],
+          [
+            0.233,
+            [
+              0,
+              0.425,
+              1
+            ]
+          ],
+          [
+            0.235,
+            [
+              0,
+              0.441,
+              1
+            ]
+          ],
+          [
+            0.237,
+            [
+              0,
+              0.441,
+              1
+            ]
+          ],
+          [
+            0.239,
+            [
+              0,
+              0.457,
+              1
+            ]
+          ],
+          [
+            0.241,
+            [
+              0,
+              0.457,
+              1
+            ]
+          ],
+          [
+            0.243,
+            [
+              0,
+              0.473,
+              1
+            ]
+          ],
+          [
+            0.245,
+            [
+              0,
+              0.473,
+              1
+            ]
+          ],
+          [
+            0.247,
+            [
+              0,
+              0.488,
+              1
+            ]
+          ],
+          [
+            0.249,
+            [
+              0,
+              0.488,
+              1
+            ]
+          ],
+          [
+            0.25,
+            [
+              0,
+              0.504,
+              1
+            ]
+          ],
+          [
+            0.252,
+            [
+              0,
+              0.504,
+              1
+            ]
+          ],
+          [
+            0.254,
+            [
+              0,
+              0.52,
+              1
+            ]
+          ],
+          [
+            0.256,
+            [
+              0,
+              0.52,
+              1
+            ]
+          ],
+          [
+            0.258,
+            [
+              0,
+              0.535,
+              1
+            ]
+          ],
+          [
+            0.26,
+            [
+              0,
+              0.535,
+              1
+            ]
+          ],
+          [
+            0.262,
+            [
+              0,
+              0.551,
+              1
+            ]
+          ],
+          [
+            0.264,
+            [
+              0,
+              0.551,
+              1
+            ]
+          ],
+          [
+            0.266,
+            [
+              0,
+              0.567,
+              1
+            ]
+          ],
+          [
+            0.268,
+            [
+              0,
+              0.567,
+              1
+            ]
+          ],
+          [
+            0.27,
+            [
+              0,
+              0.582,
+              1
+            ]
+          ],
+          [
+            0.272,
+            [
+              0,
+              0.582,
+              1
+            ]
+          ],
+          [
+            0.274,
+            [
+              0,
+              0.598,
+              1
+            ]
+          ],
+          [
+            0.276,
+            [
+              0,
+              0.598,
+              1
+            ]
+          ],
+          [
+            0.278,
+            [
+              0,
+              0.614,
+              1
+            ]
+          ],
+          [
+            0.28,
+            [
+              0,
+              0.614,
+              1
+            ]
+          ],
+          [
+            0.282,
+            [
+              0,
+              0.629,
+              1
+            ]
+          ],
+          [
+            0.284,
+            [
+              0,
+              0.629,
+              1
+            ]
+          ],
+          [
+            0.286,
+            [
+              0,
+              0.645,
+              1
+            ]
+          ],
+          [
+            0.288,
+            [
+              0,
+              0.645,
+              1
+            ]
+          ],
+          [
+            0.29,
+            [
+              0,
+              0.661,
+              1
+            ]
+          ],
+          [
+            0.292,
+            [
+              0,
+              0.661,
+              1
+            ]
+          ],
+          [
+            0.294,
+            [
+              0,
+              0.676,
+              1
+            ]
+          ],
+          [
+            0.295,
+            [
+              0,
+              0.676,
+              1
+            ]
+          ],
+          [
+            0.297,
+            [
+              0,
+              0.692,
+              1
+            ]
+          ],
+          [
+            0.299,
+            [
+              0,
+              0.692,
+              1
+            ]
+          ],
+          [
+            0.301,
+            [
+              0,
+              0.708,
+              1
+            ]
+          ],
+          [
+            0.303,
+            [
+              0,
+              0.708,
+              1
+            ]
+          ],
+          [
+            0.305,
+            [
+              0,
+              0.724,
+              1
+            ]
+          ],
+          [
+            0.307,
+            [
+              0,
+              0.724,
+              1
+            ]
+          ],
+          [
+            0.309,
+            [
+              0,
+              0.739,
+              1
+            ]
+          ],
+          [
+            0.311,
+            [
+              0,
+              0.739,
+              1
+            ]
+          ],
+          [
+            0.313,
+            [
+              0,
+              0.755,
+              1
+            ]
+          ],
+          [
+            0.315,
+            [
+              0,
+              0.755,
+              1
+            ]
+          ],
+          [
+            0.317,
+            [
+              0,
+              0.771,
+              1
+            ]
+          ],
+          [
+            0.319,
+            [
+              0,
+              0.771,
+              1
+            ]
+          ],
+          [
+            0.321,
+            [
+              0,
+              0.786,
+              1
+            ]
+          ],
+          [
+            0.323,
+            [
+              0,
+              0.786,
+              1
+            ]
+          ],
+          [
+            0.325,
+            [
+              0,
+              0.802,
+              1
+            ]
+          ],
+          [
+            0.327,
+            [
+              0,
+              0.802,
+              1
+            ]
+          ],
+          [
+            0.329,
+            [
+              0,
+              0.818,
+              1
+            ]
+          ],
+          [
+            0.331,
+            [
+              0,
+              0.818,
+              1
+            ]
+          ],
+          [
+            0.333,
+            [
+              0,
+              0.833,
+              1
+            ]
+          ],
+          [
+            0.335,
+            [
+              0,
+              0.833,
+              1
+            ]
+          ],
+          [
+            0.337,
+            [
+              0,
+              0.849,
+              1
+            ]
+          ],
+          [
+            0.339,
+            [
+              0,
+              0.849,
+              1
+            ]
+          ],
+          [
+            0.341,
+            [
+              0,
+              0.865,
+              0.996
+            ]
+          ],
+          [
+            0.342,
+            [
+              0,
+              0.865,
+              0.996
+            ]
+          ],
+          [
+            0.344,
+            [
+              0,
+              0.88,
+              0.984
+            ]
+          ],
+          [
+            0.346,
+            [
+              0,
+              0.88,
+              0.984
+            ]
+          ],
+          [
+            0.348,
+            [
+              0,
+              0.896,
+              0.971
+            ]
+          ],
+          [
+            0.35,
+            [
+              0,
+              0.896,
+              0.971
+            ]
+          ],
+          [
+            0.352,
+            [
+              0.009,
+              0.912,
+              0.958
+            ]
+          ],
+          [
+            0.354,
+            [
+              0.009,
+              0.912,
+              0.958
+            ]
+          ],
+          [
+            0.356,
+            [
+              0.022,
+              0.927,
+              0.946
+            ]
+          ],
+          [
+            0.358,
+            [
+              0.022,
+              0.927,
+              0.946
+            ]
+          ],
+          [
+            0.36,
+            [
+              0.035,
+              0.943,
+              0.933
+            ]
+          ],
+          [
+            0.362,
+            [
+              0.035,
+              0.943,
+              0.933
+            ]
+          ],
+          [
+            0.364,
+            [
+              0.047,
+              0.959,
+              0.92
+            ]
+          ],
+          [
+            0.366,
+            [
+              0.047,
+              0.959,
+              0.92
+            ]
+          ],
+          [
+            0.368,
+            [
+              0.06,
+              0.975,
+              0.908
+            ]
+          ],
+          [
+            0.37,
+            [
+              0.06,
+              0.975,
+              0.908
+            ]
+          ],
+          [
+            0.372,
+            [
+              0.073,
+              0.99,
+              0.895
+            ]
+          ],
+          [
+            0.374,
+            [
+              0.073,
+              0.99,
+              0.895
+            ]
+          ],
+          [
+            0.376,
+            [
+              0.085,
+              1,
+              0.882
+            ]
+          ],
+          [
+            0.378,
+            [
+              0.085,
+              1,
+              0.882
+            ]
+          ],
+          [
+            0.38,
+            [
+              0.098,
+              1,
+              0.87
+            ]
+          ],
+          [
+            0.382,
+            [
+              0.098,
+              1,
+              0.87
+            ]
+          ],
+          [
+            0.384,
+            [
+              0.111,
+              1,
+              0.857
+            ]
+          ],
+          [
+            0.386,
+            [
+              0.111,
+              1,
+              0.857
+            ]
+          ],
+          [
+            0.387,
+            [
+              0.123,
+              1,
+              0.844
+            ]
+          ],
+          [
+            0.389,
+            [
+              0.123,
+              1,
+              0.844
+            ]
+          ],
+          [
+            0.391,
+            [
+              0.136,
+              1,
+              0.832
+            ]
+          ],
+          [
+            0.393,
+            [
+              0.136,
+              1,
+              0.832
+            ]
+          ],
+          [
+            0.395,
+            [
+              0.149,
+              1,
+              0.819
+            ]
+          ],
+          [
+            0.397,
+            [
+              0.149,
+              1,
+              0.819
+            ]
+          ],
+          [
+            0.399,
+            [
+              0.161,
+              1,
+              0.806
+            ]
+          ],
+          [
+            0.401,
+            [
+              0.161,
+              1,
+              0.806
+            ]
+          ],
+          [
+            0.403,
+            [
+              0.174,
+              1,
+              0.794
+            ]
+          ],
+          [
+            0.405,
+            [
+              0.174,
+              1,
+              0.794
+            ]
+          ],
+          [
+            0.407,
+            [
+              0.187,
+              1,
+              0.781
+            ]
+          ],
+          [
+            0.409,
+            [
+              0.187,
+              1,
+              0.781
+            ]
+          ],
+          [
+            0.411,
+            [
+              0.199,
+              1,
+              0.769
+            ]
+          ],
+          [
+            0.413,
+            [
+              0.199,
+              1,
+              0.769
+            ]
+          ],
+          [
+            0.415,
+            [
+              0.212,
+              1,
+              0.756
+            ]
+          ],
+          [
+            0.417,
+            [
+              0.212,
+              1,
+              0.756
+            ]
+          ],
+          [
+            0.419,
+            [
+              0.225,
+              1,
+              0.743
+            ]
+          ],
+          [
+            0.421,
+            [
+              0.225,
+              1,
+              0.743
+            ]
+          ],
+          [
+            0.423,
+            [
+              0.237,
+              1,
+              0.731
+            ]
+          ],
+          [
+            0.425,
+            [
+              0.237,
+              1,
+              0.731
+            ]
+          ],
+          [
+            0.427,
+            [
+              0.25,
+              1,
+              0.718
+            ]
+          ],
+          [
+            0.429,
+            [
+              0.25,
+              1,
+              0.718
+            ]
+          ],
+          [
+            0.431,
+            [
+              0.262,
+              1,
+              0.705
+            ]
+          ],
+          [
+            0.432,
+            [
+              0.262,
+              1,
+              0.705
+            ]
+          ],
+          [
+            0.434,
+            [
+              0.275,
+              1,
+              0.693
+            ]
+          ],
+          [
+            0.436,
+            [
+              0.275,
+              1,
+              0.693
+            ]
+          ],
+          [
+            0.438,
+            [
+              0.288,
+              1,
+              0.68
+            ]
+          ],
+          [
+            0.44,
+            [
+              0.288,
+              1,
+              0.68
+            ]
+          ],
+          [
+            0.442,
+            [
+              0.3,
+              1,
+              0.667
+            ]
+          ],
+          [
+            0.444,
+            [
+              0.3,
+              1,
+              0.667
+            ]
+          ],
+          [
+            0.446,
+            [
+              0.313,
+              1,
+              0.655
+            ]
+          ],
+          [
+            0.448,
+            [
+              0.313,
+              1,
+              0.655
+            ]
+          ],
+          [
+            0.45,
+            [
+              0.326,
+              1,
+              0.642
+            ]
+          ],
+          [
+            0.452,
+            [
+              0.326,
+              1,
+              0.642
+            ]
+          ],
+          [
+            0.454,
+            [
+              0.338,
+              1,
+              0.629
+            ]
+          ],
+          [
+            0.456,
+            [
+              0.338,
+              1,
+              0.629
+            ]
+          ],
+          [
+            0.458,
+            [
+              0.351,
+              1,
+              0.617
+            ]
+          ],
+          [
+            0.46,
+            [
+              0.351,
+              1,
+              0.617
+            ]
+          ],
+          [
+            0.462,
+            [
+              0.364,
+              1,
+              0.604
+            ]
+          ],
+          [
+            0.464,
+            [
+              0.364,
+              1,
+              0.604
+            ]
+          ],
+          [
+            0.466,
+            [
+              0.376,
+              1,
+              0.591
+            ]
+          ],
+          [
+            0.468,
+            [
+              0.376,
+              1,
+              0.591
+            ]
+          ],
+          [
+            0.47,
+            [
+              0.389,
+              1,
+              0.579
+            ]
+          ],
+          [
+            0.472,
+            [
+              0.389,
+              1,
+              0.579
+            ]
+          ],
+          [
+            0.474,
+            [
+              0.402,
+              1,
+              0.566
+            ]
+          ],
+          [
+            0.476,
+            [
+              0.402,
+              1,
+              0.566
+            ]
+          ],
+          [
+            0.477,
+            [
+              0.414,
+              1,
+              0.553
+            ]
+          ],
+          [
+            0.479,
+            [
+              0.414,
+              1,
+              0.553
+            ]
+          ],
+          [
+            0.481,
+            [
+              0.427,
+              1,
+              0.541
+            ]
+          ],
+          [
+            0.483,
+            [
+              0.427,
+              1,
+              0.541
+            ]
+          ],
+          [
+            0.485,
+            [
+              0.44,
+              1,
+              0.528
+            ]
+          ],
+          [
+            0.487,
+            [
+              0.44,
+              1,
+              0.528
+            ]
+          ],
+          [
+            0.489,
+            [
+              0.452,
+              1,
+              0.515
+            ]
+          ],
+          [
+            0.491,
+            [
+              0.452,
+              1,
+              0.515
+            ]
+          ],
+          [
+            0.493,
+            [
+              0.465,
+              1,
+              0.503
+            ]
+          ],
+          [
+            0.495,
+            [
+              0.465,
+              1,
+              0.503
+            ]
+          ],
+          [
+            0.497,
+            [
+              0.478,
+              1,
+              0.49
+            ]
+          ],
+          [
+            0.499,
+            [
+              0.478,
+              1,
+              0.49
+            ]
+          ],
+          [
+            0.501,
+            [
+              0.49,
+              1,
+              0.478
+            ]
+          ],
+          [
+            0.503,
+            [
+              0.49,
+              1,
+              0.478
+            ]
+          ],
+          [
+            0.505,
+            [
+              0.503,
+              1,
+              0.465
+            ]
+          ],
+          [
+            0.507,
+            [
+              0.503,
+              1,
+              0.465
+            ]
+          ],
+          [
+            0.509,
+            [
+              0.515,
+              1,
+              0.452
+            ]
+          ],
+          [
+            0.511,
+            [
+              0.515,
+              1,
+              0.452
+            ]
+          ],
+          [
+            0.513,
+            [
+              0.528,
+              1,
+              0.44
+            ]
+          ],
+          [
+            0.515,
+            [
+              0.528,
+              1,
+              0.44
+            ]
+          ],
+          [
+            0.517,
+            [
+              0.541,
+              1,
+              0.427
+            ]
+          ],
+          [
+            0.519,
+            [
+              0.541,
+              1,
+              0.427
+            ]
+          ],
+          [
+            0.521,
+            [
+              0.553,
+              1,
+              0.414
+            ]
+          ],
+          [
+            0.523,
+            [
+              0.553,
+              1,
+              0.414
+            ]
+          ],
+          [
+            0.524,
+            [
+              0.566,
+              1,
+              0.402
+            ]
+          ],
+          [
+            0.526,
+            [
+              0.566,
+              1,
+              0.402
+            ]
+          ],
+          [
+            0.528,
+            [
+              0.579,
+              1,
+              0.389
+            ]
+          ],
+          [
+            0.53,
+            [
+              0.579,
+              1,
+              0.389
+            ]
+          ],
+          [
+            0.532,
+            [
+              0.591,
+              1,
+              0.376
+            ]
+          ],
+          [
+            0.534,
+            [
+              0.591,
+              1,
+              0.376
+            ]
+          ],
+          [
+            0.536,
+            [
+              0.604,
+              1,
+              0.364
+            ]
+          ],
+          [
+            0.538,
+            [
+              0.604,
+              1,
+              0.364
+            ]
+          ],
+          [
+            0.54,
+            [
+              0.617,
+              1,
+              0.351
+            ]
+          ],
+          [
+            0.542,
+            [
+              0.617,
+              1,
+              0.351
+            ]
+          ],
+          [
+            0.544,
+            [
+              0.629,
+              1,
+              0.338
+            ]
+          ],
+          [
+            0.546,
+            [
+              0.629,
+              1,
+              0.338
+            ]
+          ],
+          [
+            0.548,
+            [
+              0.642,
+              1,
+              0.326
+            ]
+          ],
+          [
+            0.55,
+            [
+              0.642,
+              1,
+              0.326
+            ]
+          ],
+          [
+            0.552,
+            [
+              0.655,
+              1,
+              0.313
+            ]
+          ],
+          [
+            0.554,
+            [
+              0.655,
+              1,
+              0.313
+            ]
+          ],
+          [
+            0.556,
+            [
+              0.667,
+              1,
+              0.3
+            ]
+          ],
+          [
+            0.558,
+            [
+              0.667,
+              1,
+              0.3
+            ]
+          ],
+          [
+            0.56,
+            [
+              0.68,
+              1,
+              0.288
+            ]
+          ],
+          [
+            0.562,
+            [
+              0.68,
+              1,
+              0.288
+            ]
+          ],
+          [
+            0.564,
+            [
+              0.693,
+              1,
+              0.275
+            ]
+          ],
+          [
+            0.566,
+            [
+              0.693,
+              1,
+              0.275
+            ]
+          ],
+          [
+            0.568,
+            [
+              0.705,
+              1,
+              0.262
+            ]
+          ],
+          [
+            0.569,
+            [
+              0.705,
+              1,
+              0.262
+            ]
+          ],
+          [
+            0.571,
+            [
+              0.718,
+              1,
+              0.25
+            ]
+          ],
+          [
+            0.573,
+            [
+              0.718,
+              1,
+              0.25
+            ]
+          ],
+          [
+            0.575,
+            [
+              0.731,
+              1,
+              0.237
+            ]
+          ],
+          [
+            0.577,
+            [
+              0.731,
+              1,
+              0.237
+            ]
+          ],
+          [
+            0.579,
+            [
+              0.743,
+              1,
+              0.225
+            ]
+          ],
+          [
+            0.581,
+            [
+              0.743,
+              1,
+              0.225
+            ]
+          ],
+          [
+            0.583,
+            [
+              0.756,
+              1,
+              0.212
+            ]
+          ],
+          [
+            0.585,
+            [
+              0.756,
+              1,
+              0.212
+            ]
+          ],
+          [
+            0.587,
+            [
+              0.769,
+              1,
+              0.199
+            ]
+          ],
+          [
+            0.589,
+            [
+              0.769,
+              1,
+              0.199
+            ]
+          ],
+          [
+            0.591,
+            [
+              0.781,
+              1,
+              0.187
+            ]
+          ],
+          [
+            0.593,
+            [
+              0.781,
+              1,
+              0.187
+            ]
+          ],
+          [
+            0.595,
+            [
+              0.794,
+              1,
+              0.174
+            ]
+          ],
+          [
+            0.597,
+            [
+              0.794,
+              1,
+              0.174
+            ]
+          ],
+          [
+            0.599,
+            [
+              0.806,
+              1,
+              0.161
+            ]
+          ],
+          [
+            0.601,
+            [
+              0.806,
+              1,
+              0.161
+            ]
+          ],
+          [
+            0.603,
+            [
+              0.819,
+              1,
+              0.149
+            ]
+          ],
+          [
+            0.605,
+            [
+              0.819,
+              1,
+              0.149
+            ]
+          ],
+          [
+            0.607,
+            [
+              0.832,
+              1,
+              0.136
+            ]
+          ],
+          [
+            0.609,
+            [
+              0.832,
+              1,
+              0.136
+            ]
+          ],
+          [
+            0.611,
+            [
+              0.844,
+              1,
+              0.123
+            ]
+          ],
+          [
+            0.613,
+            [
+              0.844,
+              1,
+              0.123
+            ]
+          ],
+          [
+            0.614,
+            [
+              0.857,
+              1,
+              0.111
+            ]
+          ],
+          [
+            0.616,
+            [
+              0.857,
+              1,
+              0.111
+            ]
+          ],
+          [
+            0.618,
+            [
+              0.87,
+              1,
+              0.098
+            ]
+          ],
+          [
+            0.62,
+            [
+              0.87,
+              1,
+              0.098
+            ]
+          ],
+          [
+            0.622,
+            [
+              0.882,
+              1,
+              0.085
+            ]
+          ],
+          [
+            0.624,
+            [
+              0.882,
+              1,
+              0.085
+            ]
+          ],
+          [
+            0.626,
+            [
+              0.895,
+              1,
+              0.073
+            ]
+          ],
+          [
+            0.628,
+            [
+              0.895,
+              1,
+              0.073
+            ]
+          ],
+          [
+            0.63,
+            [
+              0.908,
+              1,
+              0.06
+            ]
+          ],
+          [
+            0.632,
+            [
+              0.908,
+              1,
+              0.06
+            ]
+          ],
+          [
+            0.634,
+            [
+              0.92,
+              1,
+              0.047
+            ]
+          ],
+          [
+            0.636,
+            [
+              0.92,
+              1,
+              0.047
+            ]
+          ],
+          [
+            0.638,
+            [
+              0.933,
+              1,
+              0.035
+            ]
+          ],
+          [
+            0.64,
+            [
+              0.933,
+              1,
+              0.035
+            ]
+          ],
+          [
+            0.642,
+            [
+              0.946,
+              0.988,
+              0.022
+            ]
+          ],
+          [
+            0.644,
+            [
+              0.946,
+              0.988,
+              0.022
+            ]
+          ],
+          [
+            0.646,
+            [
+              0.958,
+              0.974,
+              0.009
+            ]
+          ],
+          [
+            0.648,
+            [
+              0.958,
+              0.974,
+              0.009
+            ]
+          ],
+          [
+            0.65,
+            [
+              0.971,
+              0.959,
+              0
+            ]
+          ],
+          [
+            0.652,
+            [
+              0.971,
+              0.959,
+              0
+            ]
+          ],
+          [
+            0.654,
+            [
+              0.984,
+              0.945,
+              0
+            ]
+          ],
+          [
+            0.656,
+            [
+              0.984,
+              0.945,
+              0
+            ]
+          ],
+          [
+            0.658,
+            [
+              0.996,
+              0.93,
+              0
+            ]
+          ],
+          [
+            0.659,
+            [
+              0.996,
+              0.93,
+              0
+            ]
+          ],
+          [
+            0.661,
+            [
+              1,
+              0.916,
+              0
+            ]
+          ],
+          [
+            0.663,
+            [
+              1,
+              0.916,
+              0
+            ]
+          ],
+          [
+            0.665,
+            [
+              1,
+              0.901,
+              0
+            ]
+          ],
+          [
+            0.667,
+            [
+              1,
+              0.901,
+              0
+            ]
+          ],
+          [
+            0.669,
+            [
+              1,
+              0.887,
+              0
+            ]
+          ],
+          [
+            0.671,
+            [
+              1,
+              0.887,
+              0
+            ]
+          ],
+          [
+            0.673,
+            [
+              1,
+              0.872,
+              0
+            ]
+          ],
+          [
+            0.675,
+            [
+              1,
+              0.872,
+              0
+            ]
+          ],
+          [
+            0.677,
+            [
+              1,
+              0.858,
+              0
+            ]
+          ],
+          [
+            0.679,
+            [
+              1,
+              0.858,
+              0
+            ]
+          ],
+          [
+            0.681,
+            [
+              1,
+              0.843,
+              0
+            ]
+          ],
+          [
+            0.683,
+            [
+              1,
+              0.843,
+              0
+            ]
+          ],
+          [
+            0.685,
+            [
+              1,
+              0.829,
+              0
+            ]
+          ],
+          [
+            0.687,
+            [
+              1,
+              0.829,
+              0
+            ]
+          ],
+          [
+            0.689,
+            [
+              1,
+              0.814,
+              0
+            ]
+          ],
+          [
+            0.691,
+            [
+              1,
+              0.814,
+              0
+            ]
+          ],
+          [
+            0.693,
+            [
+              1,
+              0.8,
+              0
+            ]
+          ],
+          [
+            0.695,
+            [
+              1,
+              0.8,
+              0
+            ]
+          ],
+          [
+            0.697,
+            [
+              1,
+              0.785,
+              0
+            ]
+          ],
+          [
+            0.699,
+            [
+              1,
+              0.785,
+              0
+            ]
+          ],
+          [
+            0.701,
+            [
+              1,
+              0.771,
+              0
+            ]
+          ],
+          [
+            0.703,
+            [
+              1,
+              0.771,
+              0
+            ]
+          ],
+          [
+            0.705,
+            [
+              1,
+              0.756,
+              0
+            ]
+          ],
+          [
+            0.706,
+            [
+              1,
+              0.756,
+              0
+            ]
+          ],
+          [
+            0.708,
+            [
+              1,
+              0.741,
+              0
+            ]
+          ],
+          [
+            0.71,
+            [
+              1,
+              0.741,
+              0
+            ]
+          ],
+          [
+            0.712,
+            [
+              1,
+              0.727,
+              0
+            ]
+          ],
+          [
+            0.714,
+            [
+              1,
+              0.727,
+              0
+            ]
+          ],
+          [
+            0.716,
+            [
+              1,
+              0.712,
+              0
+            ]
+          ],
+          [
+            0.718,
+            [
+              1,
+              0.712,
+              0
+            ]
+          ],
+          [
+            0.72,
+            [
+              1,
+              0.698,
+              0
+            ]
+          ],
+          [
+            0.722,
+            [
+              1,
+              0.698,
+              0
+            ]
+          ],
+          [
+            0.724,
+            [
+              1,
+              0.683,
+              0
+            ]
+          ],
+          [
+            0.726,
+            [
+              1,
+              0.683,
+              0
+            ]
+          ],
+          [
+            0.728,
+            [
+              1,
+              0.669,
+              0
+            ]
+          ],
+          [
+            0.73,
+            [
+              1,
+              0.669,
+              0
+            ]
+          ],
+          [
+            0.732,
+            [
+              1,
+              0.654,
+              0
+            ]
+          ],
+          [
+            0.734,
+            [
+              1,
+              0.654,
+              0
+            ]
+          ],
+          [
+            0.736,
+            [
+              1,
+              0.64,
+              0
+            ]
+          ],
+          [
+            0.738,
+            [
+              1,
+              0.64,
+              0
+            ]
+          ],
+          [
+            0.74,
+            [
+              1,
+              0.625,
+              0
+            ]
+          ],
+          [
+            0.742,
+            [
+              1,
+              0.625,
+              0
+            ]
+          ],
+          [
+            0.744,
+            [
+              1,
+              0.611,
+              0
+            ]
+          ],
+          [
+            0.746,
+            [
+              1,
+              0.611,
+              0
+            ]
+          ],
+          [
+            0.748,
+            [
+              1,
+              0.596,
+              0
+            ]
+          ],
+          [
+            0.75,
+            [
+              1,
+              0.596,
+              0
+            ]
+          ],
+          [
+            0.751,
+            [
+              1,
+              0.582,
+              0
+            ]
+          ],
+          [
+            0.753,
+            [
+              1,
+              0.582,
+              0
+            ]
+          ],
+          [
+            0.755,
+            [
+              1,
+              0.567,
+              0
+            ]
+          ],
+          [
+            0.757,
+            [
+              1,
+              0.567,
+              0
+            ]
+          ],
+          [
+            0.759,
+            [
+              1,
+              0.553,
+              0
+            ]
+          ],
+          [
+            0.761,
+            [
+              1,
+              0.553,
+              0
+            ]
+          ],
+          [
+            0.763,
+            [
+              1,
+              0.538,
+              0
+            ]
+          ],
+          [
+            0.765,
+            [
+              1,
+              0.538,
+              0
+            ]
+          ],
+          [
+            0.767,
+            [
+              1,
+              0.524,
+              0
+            ]
+          ],
+          [
+            0.769,
+            [
+              1,
+              0.524,
+              0
+            ]
+          ],
+          [
+            0.771,
+            [
+              1,
+              0.509,
+              0
+            ]
+          ],
+          [
+            0.773,
+            [
+              1,
+              0.509,
+              0
+            ]
+          ],
+          [
+            0.775,
+            [
+              1,
+              0.495,
+              0
+            ]
+          ],
+          [
+            0.777,
+            [
+              1,
+              0.495,
+              0
+            ]
+          ],
+          [
+            0.779,
+            [
+              1,
+              0.48,
+              0
+            ]
+          ],
+          [
+            0.781,
+            [
+              1,
+              0.48,
+              0
+            ]
+          ],
+          [
+            0.783,
+            [
+              1,
+              0.466,
+              0
+            ]
+          ],
+          [
+            0.785,
+            [
+              1,
+              0.466,
+              0
+            ]
+          ],
+          [
+            0.787,
+            [
+              1,
+              0.451,
+              0
+            ]
+          ],
+          [
+            0.789,
+            [
+              1,
+              0.451,
+              0
+            ]
+          ],
+          [
+            0.791,
+            [
+              1,
+              0.436,
+              0
+            ]
+          ],
+          [
+            0.793,
+            [
+              1,
+              0.436,
+              0
+            ]
+          ],
+          [
+            0.795,
+            [
+              1,
+              0.422,
+              0
+            ]
+          ],
+          [
+            0.796,
+            [
+              1,
+              0.422,
+              0
+            ]
+          ],
+          [
+            0.798,
+            [
+              1,
+              0.407,
+              0
+            ]
+          ],
+          [
+            0.8,
+            [
+              1,
+              0.407,
+              0
+            ]
+          ],
+          [
+            0.802,
+            [
+              1,
+              0.393,
+              0
+            ]
+          ],
+          [
+            0.804,
+            [
+              1,
+              0.393,
+              0
+            ]
+          ],
+          [
+            0.806,
+            [
+              1,
+              0.378,
+              0
+            ]
+          ],
+          [
+            0.808,
+            [
+              1,
+              0.378,
+              0
+            ]
+          ],
+          [
+            0.81,
+            [
+              1,
+              0.364,
+              0
+            ]
+          ],
+          [
+            0.812,
+            [
+              1,
+              0.364,
+              0
+            ]
+          ],
+          [
+            0.814,
+            [
+              1,
+              0.349,
+              0
+            ]
+          ],
+          [
+            0.816,
+            [
+              1,
+              0.349,
+              0
+            ]
+          ],
+          [
+            0.818,
+            [
+              1,
+              0.335,
+              0
+            ]
+          ],
+          [
+            0.82,
+            [
+              1,
+              0.335,
+              0
+            ]
+          ],
+          [
+            0.822,
+            [
+              1,
+              0.32,
+              0
+            ]
+          ],
+          [
+            0.824,
+            [
+              1,
+              0.32,
+              0
+            ]
+          ],
+          [
+            0.826,
+            [
+              1,
+              0.306,
+              0
+            ]
+          ],
+          [
+            0.828,
+            [
+              1,
+              0.306,
+              0
+            ]
+          ],
+          [
+            0.83,
+            [
+              1,
+              0.291,
+              0
+            ]
+          ],
+          [
+            0.832,
+            [
+              1,
+              0.291,
+              0
+            ]
+          ],
+          [
+            0.834,
+            [
+              1,
+              0.277,
+              0
+            ]
+          ],
+          [
+            0.836,
+            [
+              1,
+              0.277,
+              0
+            ]
+          ],
+          [
+            0.838,
+            [
+              1,
+              0.262,
+              0
+            ]
+          ],
+          [
+            0.84,
+            [
+              1,
+              0.262,
+              0
+            ]
+          ],
+          [
+            0.841,
+            [
+              1,
+              0.248,
+              0
+            ]
+          ],
+          [
+            0.843,
+            [
+              1,
+              0.248,
+              0
+            ]
+          ],
+          [
+            0.845,
+            [
+              1,
+              0.233,
+              0
+            ]
+          ],
+          [
+            0.847,
+            [
+              1,
+              0.233,
+              0
+            ]
+          ],
+          [
+            0.849,
+            [
+              1,
+              0.219,
+              0
+            ]
+          ],
+          [
+            0.851,
+            [
+              1,
+              0.219,
+              0
+            ]
+          ],
+          [
+            0.853,
+            [
+              1,
+              0.204,
+              0
+            ]
+          ],
+          [
+            0.855,
+            [
+              1,
+              0.204,
+              0
+            ]
+          ],
+          [
+            0.857,
+            [
+              1,
+              0.19,
+              0
+            ]
+          ],
+          [
+            0.859,
+            [
+              1,
+              0.19,
+              0
+            ]
+          ],
+          [
+            0.861,
+            [
+              1,
+              0.175,
+              0
+            ]
+          ],
+          [
+            0.863,
+            [
+              1,
+              0.175,
+              0
+            ]
+          ],
+          [
+            0.865,
+            [
+              1,
+              0.16,
+              0
+            ]
+          ],
+          [
+            0.867,
+            [
+              1,
+              0.16,
+              0
+            ]
+          ],
+          [
+            0.869,
+            [
+              1,
+              0.146,
+              0
+            ]
+          ],
+          [
+            0.871,
+            [
+              1,
+              0.146,
+              0
+            ]
+          ],
+          [
+            0.873,
+            [
+              1,
+              0.131,
+              0
+            ]
+          ],
+          [
+            0.875,
+            [
+              1,
+              0.131,
+              0
+            ]
+          ],
+          [
+            0.877,
+            [
+              1,
+              0.117,
+              0
+            ]
+          ],
+          [
+            0.879,
+            [
+              1,
+              0.117,
+              0
+            ]
+          ],
+          [
+            0.881,
+            [
+              1,
+              0.102,
+              0
+            ]
+          ],
+          [
+            0.883,
+            [
+              1,
+              0.102,
+              0
+            ]
+          ],
+          [
+            0.885,
+            [
+              1,
+              0.088,
+              0
+            ]
+          ],
+          [
+            0.886,
+            [
+              1,
+              0.088,
+              0
+            ]
+          ],
+          [
+            0.888,
+            [
+              0.999,
+              0.073,
+              0
+            ]
+          ],
+          [
+            0.89,
+            [
+              0.999,
+              0.073,
+              0
+            ]
+          ],
+          [
+            0.892,
+            [
+              0.981,
+              0.059,
+              0
+            ]
+          ],
+          [
+            0.894,
+            [
+              0.981,
+              0.059,
+              0
+            ]
+          ],
+          [
+            0.896,
+            [
+              0.963,
+              0.044,
+              0
+            ]
+          ],
+          [
+            0.898,
+            [
+              0.963,
+              0.044,
+              0
+            ]
+          ],
+          [
+            0.9,
+            [
+              0.946,
+              0.03,
+              0
+            ]
+          ],
+          [
+            0.902,
+            [
+              0.946,
+              0.03,
+              0
+            ]
+          ],
+          [
+            0.904,
+            [
+              0.928,
+              0.015,
+              0
+            ]
+          ],
+          [
+            0.906,
+            [
+              0.928,
+              0.015,
+              0
+            ]
+          ],
+          [
+            0.908,
+            [
+              0.91,
+              0.001,
+              0
+            ]
+          ],
+          [
+            0.91,
+            [
+              0.91,
+              0.001,
+              0
+            ]
+          ],
+          [
+            0.912,
+            [
+              0.892,
+              0,
+              0
+            ]
+          ],
+          [
+            0.914,
+            [
+              0.892,
+              0,
+              0
+            ]
+          ],
+          [
+            0.916,
+            [
+              0.874,
+              0,
+              0
+            ]
+          ],
+          [
+            0.918,
+            [
+              0.874,
+              0,
+              0
+            ]
+          ],
+          [
+            0.92,
+            [
+              0.857,
+              0,
+              0
+            ]
+          ],
+          [
+            0.922,
+            [
+              0.857,
+              0,
+              0
+            ]
+          ],
+          [
+            0.924,
+            [
+              0.839,
+              0,
+              0
+            ]
+          ],
+          [
+            0.926,
+            [
+              0.839,
+              0,
+              0
+            ]
+          ],
+          [
+            0.928,
+            [
+              0.821,
+              0,
+              0
+            ]
+          ],
+          [
+            0.93,
+            [
+              0.821,
+              0,
+              0
+            ]
+          ],
+          [
+            0.932,
+            [
+              0.803,
+              0,
+              0
+            ]
+          ],
+          [
+            0.933,
+            [
+              0.803,
+              0,
+              0
+            ]
+          ],
+          [
+            0.935,
+            [
+              0.785,
+              0,
+              0
+            ]
+          ],
+          [
+            0.937,
+            [
+              0.785,
+              0,
+              0
+            ]
+          ],
+          [
+            0.939,
+            [
+              0.767,
+              0,
+              0
+            ]
+          ],
+          [
+            0.941,
+            [
+              0.767,
+              0,
+              0
+            ]
+          ],
+          [
+            0.943,
+            [
+              0.75,
+              0,
+              0
+            ]
+          ],
+          [
+            0.945,
+            [
+              0.75,
+              0,
+              0
+            ]
+          ],
+          [
+            0.947,
+            [
+              0.732,
+              0,
+              0
+            ]
+          ],
+          [
+            0.949,
+            [
+              0.732,
+              0,
+              0
+            ]
+          ],
+          [
+            0.951,
+            [
+              0.714,
+              0,
+              0
+            ]
+          ],
+          [
+            0.953,
+            [
+              0.714,
+              0,
+              0
+            ]
+          ],
+          [
+            0.955,
+            [
+              0.696,
+              0,
+              0
+            ]
+          ],
+          [
+            0.957,
+            [
+              0.696,
+              0,
+              0
+            ]
+          ],
+          [
+            0.959,
+            [
+              0.678,
+              0,
+              0
+            ]
+          ],
+          [
+            0.961,
+            [
+              0.678,
+              0,
+              0
+            ]
+          ],
+          [
+            0.963,
+            [
+              0.66,
+              0,
+              0
+            ]
+          ],
+          [
+            0.965,
+            [
+              0.66,
+              0,
+              0
+            ]
+          ],
+          [
+            0.967,
+            [
+              0.643,
+              0,
+              0
+            ]
+          ],
+          [
+            0.969,
+            [
+              0.643,
+              0,
+              0
+            ]
+          ],
+          [
+            0.971,
+            [
+              0.625,
+              0,
+              0
+            ]
+          ],
+          [
+            0.973,
+            [
+              0.625,
+              0,
+              0
+            ]
+          ],
+          [
+            0.975,
+            [
+              0.607,
+              0,
+              0
+            ]
+          ],
+          [
+            0.977,
+            [
+              0.607,
+              0,
+              0
+            ]
+          ],
+          [
+            0.978,
+            [
+              0.589,
+              0,
+              0
+            ]
+          ],
+          [
+            0.98,
+            [
+              0.589,
+              0,
+              0
+            ]
+          ],
+          [
+            0.982,
+            [
+              0.571,
+              0,
+              0
+            ]
+          ],
+          [
+            0.984,
+            [
+              0.571,
+              0,
+              0
+            ]
+          ],
+          [
+            0.986,
+            [
+              0.553,
+              0,
+              0
+            ]
+          ],
+          [
+            0.988,
+            [
+              0.553,
+              0,
+              0
+            ]
+          ],
+          [
+            0.99,
+            [
+              0.536,
+              0,
+              0
+            ]
+          ],
+          [
+            0.992,
+            [
+              0.536,
+              0,
+              0
+            ]
+          ],
+          [
+            0.994,
+            [
+              0.518,
+              0,
+              0
+            ]
+          ],
+          [
+            0.996,
+            [
+              0.518,
+              0,
+              0
+            ]
+          ],
+          [
+            0.998,
+            [
+              0.5,
+              0,
+              0
+            ]
+          ],
+          [
+            1,
+            [
+              0.5,
+              0,
+              0
+            ]
+          ]
+        ]
+      ],
+      "colorMap": 0
+    },
+    "bar": false
+  }
+}
\ No newline at end of file
diff --git a/01_Code/physical_computing_interface/simulation/json/setupChiral.json b/01_Code/physical_computing_interface/simulation/json/setupChiral.json
new file mode 100644
index 0000000000000000000000000000000000000000..13fe60a57cd1bdb9e0d2829f6ba1ebb7f64f6781
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/json/setupChiral.json
@@ -0,0 +1,35604 @@
+{
+  "setup": {
+    "nodes": [
+      {
+        "id": "n0",
+        "parent": "11",
+        "degrees_of_freedom": [
+          0,
+          1,
+          2,
+          3,
+          4,
+          5
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 5,
+          "y": -5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n1",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6,
+          7,
+          8,
+          9,
+          10,
+          11
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 0,
+          "y": -5,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n2",
+        "parent": "11",
+        "degrees_of_freedom": [
+          12,
+          13,
+          14,
+          15,
+          16,
+          17
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -5,
+          "y": -5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n3",
+        "parent": "11",
+        "degrees_of_freedom": [
+          18,
+          19,
+          20,
+          21,
+          22,
+          23
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 0,
+          "y": -5,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n4",
+        "parent": "11",
+        "degrees_of_freedom": [
+          24,
+          25,
+          26,
+          27,
+          28,
+          29
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": -5,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n5",
+        "parent": "11",
+        "degrees_of_freedom": [
+          30,
+          31,
+          32,
+          33,
+          34,
+          35
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 2.0203050891044216,
+          "y": -5,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n6",
+        "parent": "11",
+        "degrees_of_freedom": [
+          36,
+          37,
+          38,
+          39,
+          40,
+          41
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 3.140184917367551e-16,
+          "y": -5,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n7",
+        "parent": "11",
+        "degrees_of_freedom": [
+          42,
+          43,
+          44,
+          45,
+          46,
+          47
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": -5,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n8",
+        "parent": "11",
+        "degrees_of_freedom": [
+          48,
+          49,
+          50,
+          51,
+          52,
+          53
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": -5,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n9",
+        "parent": "11",
+        "degrees_of_freedom": [
+          54,
+          55,
+          56,
+          57,
+          58,
+          59
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -2.0203050891044216,
+          "y": -5,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n10",
+        "parent": "11",
+        "degrees_of_freedom": [
+          60,
+          61,
+          62,
+          63,
+          64,
+          65
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -3.140184917367551e-16,
+          "y": -5,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n11",
+        "parent": "11",
+        "degrees_of_freedom": [
+          66,
+          67,
+          68,
+          69,
+          70,
+          71
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": -5,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n12",
+        "parent": "11",
+        "degrees_of_freedom": [
+          72,
+          73,
+          74,
+          75,
+          76,
+          77
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000059898406557911856,
+          "y": -0.000391027123848145,
+          "z": -0.000015153075420643555
+        },
+        "angle": {
+          "x": 0.000007220262473546354,
+          "y": -0.000015347824712467674,
+          "z": 0.000001053611385798665
+        }
+      },
+      {
+        "id": "n13",
+        "parent": "11",
+        "degrees_of_freedom": [
+          78,
+          79,
+          80,
+          81,
+          82,
+          83
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 0,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000015396955015777776,
+          "y": -0.00019271802955209868,
+          "z": -0.0000573954781031277
+        },
+        "angle": {
+          "x": -0.000002200688256579541,
+          "y": 0.00000789743575166897,
+          "z": -0.000006255700604060678
+        }
+      },
+      {
+        "id": "n14",
+        "parent": "11",
+        "degrees_of_freedom": [
+          84,
+          85,
+          86,
+          87,
+          88,
+          89
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 0,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000029419066470174546,
+          "y": -0.00019744177392180598,
+          "z": -0.000003543559251103906
+        },
+        "angle": {
+          "x": -6.255852039696685e-7,
+          "y": -0.000009464502667566315,
+          "z": 2.695816446157062e-7
+        }
+      },
+      {
+        "id": "n15",
+        "parent": "11",
+        "degrees_of_freedom": [
+          90,
+          91,
+          92,
+          93,
+          94,
+          95
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": -3.140184917367551e-16,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00002066008655864299,
+          "y": -0.00019468629377461527,
+          "z": 0.000004342775121329138
+        },
+        "angle": {
+          "x": -0.0000027943164602629907,
+          "y": 2.1094049106207774e-7,
+          "z": -0.000007066217036168508
+        }
+      },
+      {
+        "id": "n16",
+        "parent": "11",
+        "degrees_of_freedom": [
+          96,
+          97,
+          98,
+          99,
+          100,
+          101
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 2.020305089104421,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000038782468173129444,
+          "y": -0.00025672024965814355,
+          "z": -0.000015154359170859503
+        },
+        "angle": {
+          "x": -0.00003063592121654611,
+          "y": 0.000033399851080233323,
+          "z": -0.00002079478535675733
+        }
+      },
+      {
+        "id": "n17",
+        "parent": "11",
+        "degrees_of_freedom": [
+          102,
+          103,
+          104,
+          105,
+          106,
+          107
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 2.857142857142857,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00009773013341870516,
+          "y": -0.0002655635251850443,
+          "z": -0.000027149814079438376
+        },
+        "angle": {
+          "x": 0.0000019461671508245545,
+          "y": -0.000007532438681341809,
+          "z": -0.000008317564800932979
+        }
+      },
+      {
+        "id": "n18",
+        "parent": "11",
+        "degrees_of_freedom": [
+          108,
+          109,
+          110,
+          111,
+          112,
+          113
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 2.0203050891044216,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006161991889285458,
+          "y": -0.00025224913685244194,
+          "z": -0.000040448297100047516
+        },
+        "angle": {
+          "x": 0.00003318947560927817,
+          "y": -0.000026835776265232503,
+          "z": -0.000017136850229851875
+        }
+      },
+      {
+        "id": "n19",
+        "parent": "11",
+        "degrees_of_freedom": [
+          114,
+          115,
+          116,
+          117,
+          118,
+          119
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 3.140184917367551e-16,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004036803567253569,
+          "y": -0.00019544010021945552,
+          "z": -0.00005767815320552281
+        },
+        "angle": {
+          "x": -0.0000029829193920314574,
+          "y": -0.000007108661065568246,
+          "z": -0.000012156784137876784
+        }
+      },
+      {
+        "id": "n20",
+        "parent": "11",
+        "degrees_of_freedom": [
+          120,
+          121,
+          122,
+          123,
+          124,
+          125
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": -2.020305089104421,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000007218548800021375,
+          "y": -0.00013483517813219436,
+          "z": -0.000030423505635386452
+        },
+        "angle": {
+          "x": -0.000038136691836768594,
+          "y": 0.00010025089707628082,
+          "z": -0.00004811960901166816
+        }
+      },
+      {
+        "id": "n21",
+        "parent": "11",
+        "degrees_of_freedom": [
+          126,
+          127,
+          128,
+          129,
+          130,
+          131
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": -2.857142857142857,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00005761522176510542,
+          "y": -0.00012457526056228012,
+          "z": -0.000015746307306792235
+        },
+        "angle": {
+          "x": -1.7911777549132247e-7,
+          "y": 6.345964620722047e-7,
+          "z": -0.00001090544509178891
+        }
+      },
+      {
+        "id": "n22",
+        "parent": "11",
+        "degrees_of_freedom": [
+          132,
+          133,
+          134,
+          135,
+          136,
+          137
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": -2.0203050891044216,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000021846549428979018,
+          "y": -0.00013656763090566805,
+          "z": -0.000005449289226997296
+        },
+        "angle": {
+          "x": 0.00002534636647984731,
+          "y": -0.0000676389125689819,
+          "z": -0.000033049282830918565
+        }
+      },
+      {
+        "id": "n23",
+        "parent": "11",
+        "degrees_of_freedom": [
+          138,
+          139,
+          140,
+          141,
+          142,
+          143
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00005470877225765479,
+          "y": -0.0005110618285616917,
+          "z": -0.00015184955465188525
+        },
+        "angle": {
+          "x": -0.00009560115671417047,
+          "y": -0.000020316930282421632,
+          "z": 0.000008153713054069554
+        }
+      },
+      {
+        "id": "n24",
+        "parent": "11",
+        "degrees_of_freedom": [
+          144,
+          145,
+          146,
+          147,
+          148,
+          149
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 5,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011392005601886269,
+          "y": -0.0004235478418375806,
+          "z": -0.00007612744087966275
+        },
+        "angle": {
+          "x": 0.000015353784040501597,
+          "y": -0.000024830092502073588,
+          "z": -0.00005665060997915037
+        }
+      },
+      {
+        "id": "n25",
+        "parent": "11",
+        "degrees_of_freedom": [
+          150,
+          151,
+          152,
+          153,
+          154,
+          155
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 5,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000003900826604686323,
+          "y": -0.00041275385930274286,
+          "z": -0.00006938732556360601
+        },
+        "angle": {
+          "x": 0.000003644908498134315,
+          "y": -0.000020088325337294473,
+          "z": -5.767853951370377e-7
+        }
+      },
+      {
+        "id": "n26",
+        "parent": "11",
+        "degrees_of_freedom": [
+          156,
+          157,
+          158,
+          159,
+          160,
+          161
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 5,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000056506065504250235,
+          "y": -0.00022705731753515466,
+          "z": -0.00003976611083651209
+        },
+        "angle": {
+          "x": -0.00008930895103031532,
+          "y": -0.000018454490857495034,
+          "z": 0.00006680874670843668
+        }
+      },
+      {
+        "id": "n27",
+        "parent": "11",
+        "degrees_of_freedom": [
+          162,
+          163,
+          164,
+          165,
+          166,
+          167
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.0203050891044216,
+          "y": 5,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003675510875837203,
+          "y": -0.0004316904276353659,
+          "z": -0.00004646108966973091
+        },
+        "angle": {
+          "x": -0.00022667089215278106,
+          "y": -0.000013762553415408675,
+          "z": 0.0001171061136052286
+        }
+      },
+      {
+        "id": "n28",
+        "parent": "11",
+        "degrees_of_freedom": [
+          168,
+          169,
+          170,
+          171,
+          172,
+          173
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 3.140184917367551e-16,
+          "y": 5,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000024832842503977714,
+          "y": -0.0005219200367787076,
+          "z": -0.00007060500515092472
+        },
+        "angle": {
+          "x": 0.00015577197928221798,
+          "y": -0.000014852472227954033,
+          "z": -0.000016375337928296384
+        }
+      },
+      {
+        "id": "n29",
+        "parent": "11",
+        "degrees_of_freedom": [
+          174,
+          175,
+          176,
+          177,
+          178,
+          179
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 5,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000036916124683959965,
+          "y": -0.0003514377398984208,
+          "z": -0.00010083812874062985
+        },
+        "angle": {
+          "x": -0.0005406612081528178,
+          "y": -0.000020176243463088768,
+          "z": -0.0002643343367233036
+        }
+      },
+      {
+        "id": "n30",
+        "parent": "11",
+        "degrees_of_freedom": [
+          180,
+          181,
+          182,
+          183,
+          184,
+          185
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 5,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00005748428006353427,
+          "y": 0.00007334409105939427,
+          "z": -0.00011156063937336897
+        },
+        "angle": {
+          "x": -0.00008221435201761137,
+          "y": -0.00001986167990637684,
+          "z": -0.00010398152067063441
+        }
+      },
+      {
+        "id": "n31",
+        "parent": "11",
+        "degrees_of_freedom": [
+          186,
+          187,
+          188,
+          189,
+          190,
+          191
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.0203050891044216,
+          "y": 5,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008062355591680169,
+          "y": -0.0006902342265197174,
+          "z": -0.00010516450603185159
+        },
+        "angle": {
+          "x": 0.0008213392088441927,
+          "y": -0.000017143590577379628,
+          "z": -0.00042516848786995425
+        }
+      },
+      {
+        "id": "n32",
+        "parent": "11",
+        "degrees_of_freedom": [
+          192,
+          193,
+          194,
+          195,
+          196,
+          197
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -3.140184917367551e-16,
+          "y": 5,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00009172451909361478,
+          "y": -0.0010119862901659662,
+          "z": -0.00007666365511925548
+        },
+        "angle": {
+          "x": -0.000327294815928635,
+          "y": -0.00001574072954790928,
+          "z": -0.000020797447675717193
+        }
+      },
+      {
+        "id": "n33",
+        "parent": "11",
+        "degrees_of_freedom": [
+          198,
+          199,
+          200,
+          201,
+          202,
+          203
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 5,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007787533711060164,
+          "y": -0.0007859526368523306,
+          "z": -0.00004796461291129536
+        },
+        "angle": {
+          "x": 0.0013476204257438116,
+          "y": -0.00001792981417342392,
+          "z": 0.000573107327590638
+        }
+      },
+      {
+        "id": "n34",
+        "parent": "11",
+        "degrees_of_freedom": [
+          204,
+          205,
+          206,
+          207,
+          208,
+          209
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 0,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00001408161514605684,
+          "y": -0.0001981329814576853,
+          "z": -0.00001607765758388789
+        },
+        "angle": {
+          "x": -0.000025292587256381955,
+          "y": 0.00004930576586404225,
+          "z": -0.000001822159725193936
+        }
+      },
+      {
+        "id": "n35",
+        "parent": "11",
+        "degrees_of_freedom": [
+          210,
+          211,
+          212,
+          213,
+          214,
+          215
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 0,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006721476300157365,
+          "y": -0.00021013504870673097,
+          "z": -0.000014103438701465248
+        },
+        "angle": {
+          "x": -0.000024009641315338528,
+          "y": 0.000011709144686858947,
+          "z": 0.0000010436061973047546
+        }
+      },
+      {
+        "id": "n36",
+        "parent": "11",
+        "degrees_of_freedom": [
+          216,
+          217,
+          218,
+          219,
+          220,
+          221
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 3.140184917367551e-16,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000999087059271086,
+          "y": -0.0001301661165439214,
+          "z": -0.000028190719145555967
+        },
+        "angle": {
+          "x": -0.0000022325349296467353,
+          "y": -0.00003303647596460616,
+          "z": -0.000030530590883450236
+        }
+      },
+      {
+        "id": "n37",
+        "parent": "11",
+        "degrees_of_freedom": [
+          222,
+          223,
+          224,
+          225,
+          226,
+          227
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 2.0203050891044216,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001445265422855739,
+          "y": -0.00016079322554297398,
+          "z": -0.000023810863406322967
+        },
+        "angle": {
+          "x": 0.00001334680312079104,
+          "y": 0.00005295211630295085,
+          "z": -1.291551438004117e-7
+        }
+      },
+      {
+        "id": "n38",
+        "parent": "11",
+        "degrees_of_freedom": [
+          228,
+          229,
+          230,
+          231,
+          232,
+          233
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 2.857142857142857,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000252244560307871,
+          "y": -0.00025509420303219786,
+          "z": -0.000015017240786339073
+        },
+        "angle": {
+          "x": 0.00006293430769428995,
+          "y": -0.000023610593624418064,
+          "z": -0.00002719830723702538
+        }
+      },
+      {
+        "id": "n39",
+        "parent": "11",
+        "degrees_of_freedom": [
+          234,
+          235,
+          236,
+          237,
+          238,
+          239
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 2.020305089104421,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000049124797378054046,
+          "y": -0.00032310586817261124,
+          "z": -0.000013133602120594366
+        },
+        "angle": {
+          "x": -0.000034587147967512415,
+          "y": 0.00030884206048571375,
+          "z": -0.0001447381999096257
+        }
+      },
+      {
+        "id": "n40",
+        "parent": "11",
+        "degrees_of_freedom": [
+          240,
+          241,
+          242,
+          243,
+          244,
+          245
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": -3.140184917367551e-16,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003501057347625736,
+          "y": -0.0002827681939355698,
+          "z": 0.00000839287189093833
+        },
+        "angle": {
+          "x": 1.248969098201708e-7,
+          "y": -0.000014185145302106509,
+          "z": -0.0000305309658058059
+        }
+      },
+      {
+        "id": "n41",
+        "parent": "11",
+        "degrees_of_freedom": [
+          246,
+          247,
+          248,
+          249,
+          250,
+          251
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": -2.0203050891044216,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00009540459390414842,
+          "y": -0.0002520570295193406,
+          "z": -0.000005000979746826374
+        },
+        "angle": {
+          "x": 0.000016957316449520875,
+          "y": -0.00019039327583076938,
+          "z": -0.00009282979816938135
+        }
+      },
+      {
+        "id": "n42",
+        "parent": "11",
+        "degrees_of_freedom": [
+          252,
+          253,
+          254,
+          255,
+          256,
+          257
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": -2.857142857142857,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00024120755293769147,
+          "y": -0.00016687556945023098,
+          "z": -0.000017408820198277897
+        },
+        "angle": {
+          "x": 0.00006166215362726874,
+          "y": -0.000023611197460926477,
+          "z": -0.00003386328863139856
+        }
+      },
+      {
+        "id": "n43",
+        "parent": "11",
+        "degrees_of_freedom": [
+          258,
+          259,
+          260,
+          261,
+          262,
+          263
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": -2.020305089104421,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -1.536351563128545e-9,
+          "y": -0.0000965024752908813,
+          "z": -0.000016137011829249523
+        },
+        "angle": {
+          "x": -0.000017405929584404447,
+          "y": 0.0003804999601150983,
+          "z": -0.0001767379856233747
+        }
+      },
+      {
+        "id": "n44",
+        "parent": "11",
+        "degrees_of_freedom": [
+          264,
+          265,
+          266,
+          267,
+          268,
+          269
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": -2.857142857142857,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00001787452169186021,
+          "y": -0.000133419364252071,
+          "z": -0.00021833379937208377
+        },
+        "angle": {
+          "x": 0.0001940480454260564,
+          "y": -0.000027692202283683732,
+          "z": 0.000025235049141897557
+        }
+      },
+      {
+        "id": "n45",
+        "parent": "11",
+        "degrees_of_freedom": [
+          270,
+          271,
+          272,
+          273,
+          274,
+          275
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": -2.020305089104421,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000017413157147243105,
+          "y": -0.000107694676265953,
+          "z": -4.0699365814137244e-10
+        },
+        "angle": {
+          "x": -0.00010188898632450533,
+          "y": -0.0001502732454033263,
+          "z": -0.00001009229907381433
+        }
+      },
+      {
+        "id": "n46",
+        "parent": "11",
+        "degrees_of_freedom": [
+          276,
+          277,
+          278,
+          279,
+          280,
+          281
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 0,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000018135741584689454,
+          "y": -0.0001446683428401156,
+          "z": -0.00008009287012551882
+        },
+        "angle": {
+          "x": -0.000009481157515447215,
+          "y": 0.00007281888487786603,
+          "z": 0.0000020270776459753887
+        }
+      },
+      {
+        "id": "n47",
+        "parent": "11",
+        "degrees_of_freedom": [
+          282,
+          283,
+          284,
+          285,
+          286,
+          287
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 2.020305089104421,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000008218319402389096,
+          "y": -0.00018622983309136195,
+          "z": -0.00003831009490833876
+        },
+        "angle": {
+          "x": 0.000025068887360418612,
+          "y": -0.000010592277250440848,
+          "z": 0.000016046703873450826
+        }
+      },
+      {
+        "id": "n48",
+        "parent": "11",
+        "degrees_of_freedom": [
+          288,
+          289,
+          290,
+          291,
+          292,
+          293
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 2.857142857142857,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000012697743305902074,
+          "y": -0.00023919581414626366,
+          "z": -0.00003873117065182704
+        },
+        "angle": {
+          "x": 0.00007939862684980492,
+          "y": -0.00003309641613360707,
+          "z": 0.000023915798446621405
+        }
+      },
+      {
+        "id": "n49",
+        "parent": "11",
+        "degrees_of_freedom": [
+          294,
+          295,
+          296,
+          297,
+          298,
+          299
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 2.020305089104421,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000002457263550464255,
+          "y": -0.00025620649870725435,
+          "z": -0.00017203981262401154
+        },
+        "angle": {
+          "x": -0.00001745213003729577,
+          "y": -0.00007321331669760623,
+          "z": -0.000018659311329044456
+        }
+      },
+      {
+        "id": "n50",
+        "parent": "11",
+        "degrees_of_freedom": [
+          300,
+          301,
+          302,
+          303,
+          304,
+          305
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 0,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000012683883927477785,
+          "y": -0.0002222156769741176,
+          "z": -0.00019804867166821634
+        },
+        "angle": {
+          "x": -0.000014885460631594014,
+          "y": -0.00006701650082862809,
+          "z": 0.0000016368797885048612
+        }
+      },
+      {
+        "id": "n51",
+        "parent": "11",
+        "degrees_of_freedom": [
+          306,
+          307,
+          308,
+          309,
+          310,
+          311
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": -2.020305089104421,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000002439784640330593,
+          "y": -0.00018752866894344993,
+          "z": -0.00011189362710745992
+        },
+        "angle": {
+          "x": -0.00007781911812507893,
+          "y": 0.00008491905313657556,
+          "z": 0.000018684112781511854
+        }
+      },
+      {
+        "id": "n52",
+        "parent": "11",
+        "degrees_of_freedom": [
+          312,
+          313,
+          314,
+          315,
+          316,
+          317
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 2.857142857142857,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000019051817479384825,
+          "y": -0.0002935725984942396,
+          "z": -0.00009827173719010323
+        },
+        "angle": {
+          "x": -0.00004387388968889892,
+          "y": -0.000007153114264216093,
+          "z": 0.0000015846427797250713
+        }
+      },
+      {
+        "id": "n53",
+        "parent": "11",
+        "degrees_of_freedom": [
+          318,
+          319,
+          320,
+          321,
+          322,
+          323
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 2.020305089104421,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003829461665566739,
+          "y": -0.000269209682827896,
+          "z": -0.00007488535700590194
+        },
+        "angle": {
+          "x": -0.0000017885328241156926,
+          "y": 0.000011946074717149477,
+          "z": -0.000028806383556629496
+        }
+      },
+      {
+        "id": "n54",
+        "parent": "11",
+        "degrees_of_freedom": [
+          324,
+          325,
+          326,
+          327,
+          328,
+          329
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 0,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00005497356168028573,
+          "y": -0.00020772367506002675,
+          "z": -0.000058129045795470726
+        },
+        "angle": {
+          "x": -0.00001490353272005128,
+          "y": -0.000014077248030807277,
+          "z": 7.956227820859201e-7
+        }
+      },
+      {
+        "id": "n55",
+        "parent": "11",
+        "degrees_of_freedom": [
+          330,
+          331,
+          332,
+          333,
+          334,
+          335
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": -2.020305089104421,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003510534821601749,
+          "y": -0.00014493644162043355,
+          "z": -0.000017811978027582925
+        },
+        "angle": {
+          "x": -0.00002842533906819928,
+          "y": 0.00002420634132698327,
+          "z": 0.0000303493126450167
+        }
+      },
+      {
+        "id": "n56",
+        "parent": "11",
+        "degrees_of_freedom": [
+          336,
+          337,
+          338,
+          339,
+          340,
+          341
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": -2.857142857142857,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000014163367814402758,
+          "y": -0.00011674027292886814,
+          "z": -0.00004254566784488322
+        },
+        "angle": {
+          "x": 0.00002821237761369414,
+          "y": 4.6178587392371364e-7,
+          "z": 6.273135992809647e-7
+        }
+      },
+      {
+        "id": "n57",
+        "parent": "11",
+        "degrees_of_freedom": [
+          342,
+          343,
+          344,
+          345,
+          346,
+          347
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": -2.020305089104421,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000021411635923864274,
+          "y": -0.00013938735503503846,
+          "z": -0.000020060972670720664
+        },
+        "angle": {
+          "x": -0.00002508329047495292,
+          "y": -0.000021329576695636322,
+          "z": -0.00002339064966122834
+        }
+      },
+      {
+        "id": "n58",
+        "parent": "11",
+        "degrees_of_freedom": [
+          348,
+          349,
+          350,
+          351,
+          352,
+          353
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 0,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000131605384001976,
+          "y": -0.0002017647146246494,
+          "z": -0.00005326245982448126
+        },
+        "angle": {
+          "x": -0.0000070636504817230824,
+          "y": 0.00002284581799130111,
+          "z": 5.825720770370801e-7
+        }
+      },
+      {
+        "id": "n59",
+        "parent": "11",
+        "degrees_of_freedom": [
+          354,
+          355,
+          356,
+          357,
+          358,
+          359
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 2.020305089104421,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -9.482394412418301e-7,
+          "y": -0.0002659924121577039,
+          "z": -0.000048227443814287795
+        },
+        "angle": {
+          "x": 0.00001506213110933848,
+          "y": -0.000029898368087242636,
+          "z": 0.00002594748988870567
+        }
+      },
+      {
+        "id": "n60",
+        "parent": "11",
+        "degrees_of_freedom": [
+          360,
+          361,
+          362,
+          363,
+          364,
+          365
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 5,
+          "y": -5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n61",
+        "parent": "11",
+        "degrees_of_freedom": [
+          366,
+          367,
+          368,
+          369,
+          370,
+          371
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -5,
+          "y": -5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n62",
+        "parent": "11",
+        "degrees_of_freedom": [
+          372,
+          373,
+          374,
+          375,
+          376,
+          377
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 0,
+          "y": -5,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n63",
+        "parent": "11",
+        "degrees_of_freedom": [
+          378,
+          379,
+          380,
+          381,
+          382,
+          383
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": -5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n64",
+        "parent": "11",
+        "degrees_of_freedom": [
+          384,
+          385,
+          386,
+          387,
+          388,
+          389
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 2.0203050891044216,
+          "y": -5,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n65",
+        "parent": "11",
+        "degrees_of_freedom": [
+          390,
+          391,
+          392,
+          393,
+          394,
+          395
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 3.140184917367551e-16,
+          "y": -5,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n66",
+        "parent": "11",
+        "degrees_of_freedom": [
+          396,
+          397,
+          398,
+          399,
+          400,
+          401
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": -5,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n67",
+        "parent": "11",
+        "degrees_of_freedom": [
+          402,
+          403,
+          404,
+          405,
+          406,
+          407
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": -5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n68",
+        "parent": "11",
+        "degrees_of_freedom": [
+          408,
+          409,
+          410,
+          411,
+          412,
+          413
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -2.0203050891044216,
+          "y": -5,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n69",
+        "parent": "11",
+        "degrees_of_freedom": [
+          414,
+          415,
+          416,
+          417,
+          418,
+          419
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -3.140184917367551e-16,
+          "y": -5,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n70",
+        "parent": "11",
+        "degrees_of_freedom": [
+          420,
+          421,
+          422,
+          423,
+          424,
+          425
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": -5,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n71",
+        "parent": "11",
+        "degrees_of_freedom": [
+          426,
+          427,
+          428,
+          429,
+          430,
+          431
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000041888953150036196,
+          "y": -0.0003937858966274513,
+          "z": 0.000006454579138491498
+        },
+        "angle": {
+          "x": 7.023027096737599e-7,
+          "y": -0.000015665612784548036,
+          "z": -0.000007297412609954264
+        }
+      },
+      {
+        "id": "n72",
+        "parent": "11",
+        "degrees_of_freedom": [
+          432,
+          433,
+          434,
+          435,
+          436,
+          437
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 0,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00001790996827966095,
+          "y": -0.0001931321724776177,
+          "z": 0.000049406287605436944
+        },
+        "angle": {
+          "x": -5.859426631351882e-7,
+          "y": 0.000007541820025743457,
+          "z": 0.000006907660357131902
+        }
+      },
+      {
+        "id": "n73",
+        "parent": "11",
+        "degrees_of_freedom": [
+          438,
+          439,
+          440,
+          441,
+          442,
+          443
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": -3.140184917367551e-16,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000057096117425138945,
+          "y": -0.0001965353455966906,
+          "z": 0.00004951272287279319
+        },
+        "angle": {
+          "x": 5.563383751840487e-7,
+          "y": -0.0000274670367400324,
+          "z": 0.000011999931311861532
+        }
+      },
+      {
+        "id": "n74",
+        "parent": "11",
+        "degrees_of_freedom": [
+          444,
+          445,
+          446,
+          447,
+          448,
+          449
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 2.020305089104421,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000060909843576299996,
+          "y": -0.00025602998815816815,
+          "z": 0.00002824926555104169
+        },
+        "angle": {
+          "x": -0.0000353788894895163,
+          "y": 0.00002282566042424205,
+          "z": -0.00000781406900680884
+        }
+      },
+      {
+        "id": "n75",
+        "parent": "11",
+        "degrees_of_freedom": [
+          450,
+          451,
+          452,
+          453,
+          454,
+          455
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 2.857142857142857,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000546285162008985,
+          "y": -0.00026742298973015305,
+          "z": 0.000014572333405265307
+        },
+        "angle": {
+          "x": -4.875291770135684e-7,
+          "y": -0.000008407066783982774,
+          "z": 0.0000011954875637629108
+        }
+      },
+      {
+        "id": "n76",
+        "parent": "11",
+        "degrees_of_freedom": [
+          456,
+          457,
+          458,
+          459,
+          460,
+          461
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 2.0203050891044216,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003468447536299736,
+          "y": -0.00025610966222664854,
+          "z": 0.0000032891167840880252
+        },
+        "angle": {
+          "x": 0.000028646715106452884,
+          "y": -0.000021139709529022154,
+          "z": -0.000005339063774203893
+        }
+      },
+      {
+        "id": "n77",
+        "parent": "11",
+        "degrees_of_freedom": [
+          462,
+          463,
+          464,
+          465,
+          466,
+          467
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 3.140184917367551e-16,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000328389669060694,
+          "y": -0.00019592855156026052,
+          "z": -0.00001235229187185714
+        },
+        "angle": {
+          "x": 4.931218113989894e-7,
+          "y": 0.000018976951589199937,
+          "z": 0.000006811446413483327
+        }
+      },
+      {
+        "id": "n78",
+        "parent": "11",
+        "degrees_of_freedom": [
+          468,
+          469,
+          470,
+          471,
+          472,
+          473
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": -2.020305089104421,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 7.678272678400584e-7,
+          "y": -0.00013670349698358336,
+          "z": 0.0000013447277212385385
+        },
+        "angle": {
+          "x": -0.000027230002835699274,
+          "y": -0.00013438837715393646,
+          "z": 0.00006306717604239232
+        }
+      },
+      {
+        "id": "n79",
+        "parent": "11",
+        "degrees_of_freedom": [
+          474,
+          475,
+          476,
+          477,
+          478,
+          479
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": -2.857142857142857,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00009739068843526636,
+          "y": -0.00012532174631141115,
+          "z": 0.000012235405036668456
+        },
+        "angle": {
+          "x": 4.5386870864929316e-7,
+          "y": -8.285720077952963e-8,
+          "z": 0.000017615938337693438
+        }
+      },
+      {
+        "id": "n80",
+        "parent": "11",
+        "degrees_of_freedom": [
+          480,
+          481,
+          482,
+          483,
+          484,
+          485
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": -2.0203050891044216,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000007311450680444691,
+          "y": -0.00013628348795323883,
+          "z": 0.000026336515893739983
+        },
+        "angle": {
+          "x": 0.00003639136187104933,
+          "y": 0.00016252060395285944,
+          "z": 0.00007713789295627373
+        }
+      },
+      {
+        "id": "n81",
+        "parent": "11",
+        "degrees_of_freedom": [
+          486,
+          487,
+          488,
+          489,
+          490,
+          491
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004530823103614727,
+          "y": -0.0004717723927088308,
+          "z": -0.0001263455875567803
+        },
+        "angle": {
+          "x": -0.0000659799051349329,
+          "y": -0.000013729984026676014,
+          "z": -0.000004166285226303705
+        }
+      },
+      {
+        "id": "n82",
+        "parent": "11",
+        "degrees_of_freedom": [
+          492,
+          493,
+          494,
+          495,
+          496,
+          497
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 5,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00009135856470380739,
+          "y": -0.00041497451652339803,
+          "z": -0.00006481257007712635
+        },
+        "angle": {
+          "x": 0.000018438051530534558,
+          "y": -0.00002135522947703138,
+          "z": 0.00003707130463703248
+        }
+      },
+      {
+        "id": "n83",
+        "parent": "11",
+        "degrees_of_freedom": [
+          498,
+          499,
+          500,
+          501,
+          502,
+          503
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000044516647418271695,
+          "y": 0.000006565004153140144,
+          "z": -0.00002917932055932137
+        },
+        "angle": {
+          "x": -0.00002769445168102423,
+          "y": -0.00001645504360926007,
+          "z": 0.00005894255654908446
+        }
+      },
+      {
+        "id": "n84",
+        "parent": "11",
+        "degrees_of_freedom": [
+          504,
+          505,
+          506,
+          507,
+          508,
+          509
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.0203050891044216,
+          "y": 5,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006442023045505616,
+          "y": -0.00032199266140273754,
+          "z": -0.00003483674893958115
+        },
+        "angle": {
+          "x": -0.0007489438726248109,
+          "y": -0.000016388985599486373,
+          "z": 0.000326603723182326
+        }
+      },
+      {
+        "id": "n85",
+        "parent": "11",
+        "degrees_of_freedom": [
+          510,
+          511,
+          512,
+          513,
+          514,
+          515
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 3.140184917367551e-16,
+          "y": 5,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007515782870350236,
+          "y": -0.00046874351899643506,
+          "z": -0.00006291720594814734
+        },
+        "angle": {
+          "x": 0.00007355623632447931,
+          "y": -0.00001570485360710262,
+          "z": 0.00003608846897520695
+        }
+      },
+      {
+        "id": "n86",
+        "parent": "11",
+        "degrees_of_freedom": [
+          516,
+          517,
+          518,
+          519,
+          520,
+          521
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 5,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006178299600918738,
+          "y": -0.0004923849914644925,
+          "z": -0.00009122382077326824
+        },
+        "angle": {
+          "x": 0.00005365665688455305,
+          "y": -0.000017181145100192715,
+          "z": 0.00002877034543356817
+        }
+      },
+      {
+        "id": "n87",
+        "parent": "11",
+        "degrees_of_freedom": [
+          522,
+          523,
+          524,
+          525,
+          526,
+          527
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004521286427527726,
+          "y": -0.0005708871149070318,
+          "z": -0.00009967250986214979
+        },
+        "angle": {
+          "x": -0.00002653863920069687,
+          "y": -0.000016123238259553534,
+          "z": 0.000012513457487634415
+        }
+      },
+      {
+        "id": "n88",
+        "parent": "11",
+        "degrees_of_freedom": [
+          528,
+          529,
+          530,
+          531,
+          532,
+          533
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.0203050891044216,
+          "y": 5,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000027062661558422043,
+          "y": -0.0005817255808264213,
+          "z": -0.0000937825323281175
+        },
+        "angle": {
+          "x": -0.0001496033093135349,
+          "y": -0.000013813362457929857,
+          "z": 0.000048976815607311574
+        }
+      },
+      {
+        "id": "n89",
+        "parent": "11",
+        "degrees_of_freedom": [
+          534,
+          535,
+          536,
+          537,
+          538,
+          539
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -3.140184917367551e-16,
+          "y": 5,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000017482228652634546,
+          "y": -0.0005894337191284379,
+          "z": -0.00006840758750698651
+        },
+        "angle": {
+          "x": -0.00011209970428994417,
+          "y": -0.000015127253516743791,
+          "z": 0.000036706316043690395
+        }
+      },
+      {
+        "id": "n90",
+        "parent": "11",
+        "degrees_of_freedom": [
+          540,
+          541,
+          542,
+          543,
+          544,
+          545
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 5,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000030955701198272736,
+          "y": -0.00040952321774517087,
+          "z": -0.000039619359925467083
+        },
+        "angle": {
+          "x": 0.0006621816237562079,
+          "y": -0.00001820912098314979,
+          "z": 0.0003094671898452765
+        }
+      },
+      {
+        "id": "n91",
+        "parent": "11",
+        "degrees_of_freedom": [
+          546,
+          547,
+          548,
+          549,
+          550,
+          551
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 0,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00002874998852930185,
+          "y": -0.000192363379805602,
+          "z": -0.000015753090634445966
+        },
+        "angle": {
+          "x": -0.00003528569827241072,
+          "y": 0.000026481090407162513,
+          "z": 0.00000865487558450753
+        }
+      },
+      {
+        "id": "n92",
+        "parent": "11",
+        "degrees_of_freedom": [
+          552,
+          553,
+          554,
+          555,
+          556,
+          557
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 3.140184917367551e-16,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000008012605345959598,
+          "y": -0.0001331670105434639,
+          "z": -0.000025811531107808395
+        },
+        "angle": {
+          "x": -0.0000036467147715484895,
+          "y": -0.000032889719726019386,
+          "z": 0.000008243658285244537
+        }
+      },
+      {
+        "id": "n93",
+        "parent": "11",
+        "degrees_of_freedom": [
+          558,
+          559,
+          560,
+          561,
+          562,
+          563
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 2.0203050891044216,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003902308537525189,
+          "y": -0.00016261264953066777,
+          "z": -0.00002643788249161135
+        },
+        "angle": {
+          "x": 0.000008976792788852573,
+          "y": 0.00021874151050290316,
+          "z": 0.00009720889102730384
+        }
+      },
+      {
+        "id": "n94",
+        "parent": "11",
+        "degrees_of_freedom": [
+          564,
+          565,
+          566,
+          567,
+          568,
+          569
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 2.857142857142857,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00015257848766762425,
+          "y": -0.0002494681809966249,
+          "z": -0.000019960519746562478
+        },
+        "angle": {
+          "x": 0.000057815573916579714,
+          "y": -0.000012904686546246439,
+          "z": 0.00001530975058066492
+        }
+      },
+      {
+        "id": "n95",
+        "parent": "11",
+        "degrees_of_freedom": [
+          570,
+          571,
+          572,
+          573,
+          574,
+          575
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 2.020305089104421,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00009116532492434176,
+          "y": -0.0003123186477165418,
+          "z": -0.000018648816339925235
+        },
+        "angle": {
+          "x": -0.000031973897473022474,
+          "y": -0.00019191185906996633,
+          "z": 0.00007859851044486922
+        }
+      },
+      {
+        "id": "n96",
+        "parent": "11",
+        "degrees_of_freedom": [
+          576,
+          577,
+          578,
+          579,
+          580,
+          581
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": -3.140184917367551e-16,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006572654443139482,
+          "y": -0.00027315804843721487,
+          "z": 0.000004583014690458466
+        },
+        "angle": {
+          "x": -0.0000030701763472911563,
+          "y": 0.000007081112776494885,
+          "z": 0.00000824408050149028
+        }
+      },
+      {
+        "id": "n97",
+        "parent": "11",
+        "degrees_of_freedom": [
+          582,
+          583,
+          584,
+          585,
+          586,
+          587
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": -2.0203050891044216,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00005213926461266223,
+          "y": -0.0002455403752685917,
+          "z": -0.0000016569992145463673
+        },
+        "angle": {
+          "x": 0.000012963009019191304,
+          "y": 0.00008461233308408151,
+          "z": 0.0000356552813253426
+        }
+      },
+      {
+        "id": "n98",
+        "parent": "11",
+        "degrees_of_freedom": [
+          588,
+          589,
+          590,
+          591,
+          592,
+          593
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": -2.857142857142857,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000019338021853538913,
+          "y": -0.00016602928704297152,
+          "z": -0.000013142836390787687
+        },
+        "angle": {
+          "x": 0.000058299356283232116,
+          "y": -0.000012904078876858462,
+          "z": 0.0000011778973373638982
+        }
+      },
+      {
+        "id": "n99",
+        "parent": "11",
+        "degrees_of_freedom": [
+          594,
+          595,
+          596,
+          597,
+          598,
+          599
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": -2.020305089104421,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 1.5339067468418874e-9,
+          "y": -0.00009778666397320476,
+          "z": -0.00001305121069910418
+        },
+        "angle": {
+          "x": -0.00001738384602205905,
+          "y": 0.00003050354862634348,
+          "z": -0.000014169131961952571
+        }
+      },
+      {
+        "id": "n100",
+        "parent": "11",
+        "degrees_of_freedom": [
+          600,
+          601,
+          602,
+          603,
+          604,
+          605
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 2.857142857142857,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000009658596774520654,
+          "y": -0.0002426197289989606,
+          "z": -0.00022050713013779466
+        },
+        "angle": {
+          "x": -0.00011857880151920195,
+          "y": -0.000022109977089262535,
+          "z": -0.000026244696710547867
+        }
+      },
+      {
+        "id": "n101",
+        "parent": "11",
+        "degrees_of_freedom": [
+          606,
+          607,
+          608,
+          609,
+          610,
+          611
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 2.020305089104421,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000021010238286793817,
+          "y": -0.00018659068683235142,
+          "z": -0.0001659447067583715
+        },
+        "angle": {
+          "x": -0.00008869037436530858,
+          "y": -0.000009729633612483503,
+          "z": -0.000016948812561945227
+        }
+      },
+      {
+        "id": "n102",
+        "parent": "11",
+        "degrees_of_freedom": [
+          612,
+          613,
+          614,
+          615,
+          616,
+          617
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 0,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003114000206425767,
+          "y": -0.0001465132532957579,
+          "z": 0.0000050947839853823775
+        },
+        "angle": {
+          "x": -0.00004106912495179357,
+          "y": 0.0001052382056267413,
+          "z": -0.0000012609859078346342
+        }
+      },
+      {
+        "id": "n103",
+        "parent": "11",
+        "degrees_of_freedom": [
+          618,
+          619,
+          620,
+          621,
+          622,
+          623
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": -2.020305089104421,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00002780449729119764,
+          "y": -0.00011056848787642374,
+          "z": -3.759241901224261e-10
+        },
+        "angle": {
+          "x": 0.000006482198687836239,
+          "y": -0.000009560772053973282,
+          "z": 0.000011211639958249183
+        }
+      },
+      {
+        "id": "n104",
+        "parent": "11",
+        "degrees_of_freedom": [
+          624,
+          625,
+          626,
+          627,
+          628,
+          629
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": -2.857142857142857,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003181120778132086,
+          "y": -0.00013706140666194263,
+          "z": 0.000013890783940009217
+        },
+        "angle": {
+          "x": 0.000027054082712926378,
+          "y": -0.000018081949821733064,
+          "z": -0.00002673179860151956
+        }
+      },
+      {
+        "id": "n105",
+        "parent": "11",
+        "degrees_of_freedom": [
+          630,
+          631,
+          632,
+          633,
+          634,
+          635
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": -2.020305089104421,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000020839092180685057,
+          "y": -0.0001935746965245061,
+          "z": 0.00007306173184643325
+        },
+        "angle": {
+          "x": -0.0001411124640568823,
+          "y": -0.00008773882196498659,
+          "z": -0.00001735554960897756
+        }
+      },
+      {
+        "id": "n106",
+        "parent": "11",
+        "degrees_of_freedom": [
+          636,
+          637,
+          638,
+          639,
+          640,
+          641
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 0,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000006597544297628024,
+          "y": -0.00023136441553681377,
+          "z": -0.00013860545996639674
+        },
+        "angle": {
+          "x": -0.00003704117536100855,
+          "y": 0.00016351167357323736,
+          "z": -0.000002883082102033126
+        }
+      },
+      {
+        "id": "n107",
+        "parent": "11",
+        "degrees_of_freedom": [
+          642,
+          643,
+          644,
+          645,
+          646,
+          647
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 2.020305089104421,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000010742166952731331,
+          "y": -0.00026617647999856273,
+          "z": -0.00007660707494852111
+        },
+        "angle": {
+          "x": 0.00007265678839394203,
+          "y": -0.0001013222407179977,
+          "z": 0.000014527139731393673
+        }
+      },
+      {
+        "id": "n108",
+        "parent": "11",
+        "degrees_of_freedom": [
+          648,
+          649,
+          650,
+          651,
+          652,
+          653
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 5,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000056214939641000026,
+          "y": -0.0004117891997981377,
+          "z": -0.00003868507687754483
+        },
+        "angle": {
+          "x": 0.000021341364853021186,
+          "y": -0.00002116465688855438,
+          "z": -0.0000010236469487945943
+        }
+      },
+      {
+        "id": "n109",
+        "parent": "11",
+        "degrees_of_freedom": [
+          654,
+          655,
+          656,
+          657,
+          658,
+          659
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.0203050891044216,
+          "y": 5,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007861072475727725,
+          "y": -0.00035952280832847667,
+          "z": -0.00004653104565066121
+        },
+        "angle": {
+          "x": -0.000005293053907991158,
+          "y": -0.000014341074745261052,
+          "z": -0.000012173313400915857
+        }
+      },
+      {
+        "id": "n110",
+        "parent": "11",
+        "degrees_of_freedom": [
+          660,
+          661,
+          662,
+          663,
+          664,
+          665
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 3.140184917367551e-16,
+          "y": 5,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008921049867844033,
+          "y": -0.0003324041628204604,
+          "z": -0.00007371045411449488
+        },
+        "angle": {
+          "x": -0.00009119680988762994,
+          "y": -0.000016588202524996276,
+          "z": -0.00004427790125557612
+        }
+      },
+      {
+        "id": "n111",
+        "parent": "11",
+        "degrees_of_freedom": [
+          666,
+          667,
+          668,
+          669,
+          670,
+          671
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 5,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007495807947047893,
+          "y": -0.0001526515717069853,
+          "z": -0.00010555091173638306
+        },
+        "angle": {
+          "x": 0.00032635056849652003,
+          "y": -0.00001999353494423616,
+          "z": -0.00019017025000857483
+        }
+      },
+      {
+        "id": "n112",
+        "parent": "11",
+        "degrees_of_freedom": [
+          672,
+          673,
+          674,
+          675,
+          676,
+          677
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 5,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00005193284266353594,
+          "y": 0.0002681060879414745,
+          "z": -0.00011525574200260177
+        },
+        "angle": {
+          "x": 0.00002843755511068993,
+          "y": -0.000020934228418179007,
+          "z": -0.00008310912534995385
+        }
+      },
+      {
+        "id": "n113",
+        "parent": "11",
+        "degrees_of_freedom": [
+          678,
+          679,
+          680,
+          681,
+          682,
+          683
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.0203050891044216,
+          "y": 5,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000028585778779611557,
+          "y": -0.0002609547163399867,
+          "z": -0.00010752283417090122
+        },
+        "angle": {
+          "x": -0.001364777024439512,
+          "y": -0.000017557654262703366,
+          "z": -0.0005739518012887983
+        }
+      },
+      {
+        "id": "n114",
+        "parent": "11",
+        "degrees_of_freedom": [
+          684,
+          685,
+          686,
+          687,
+          688,
+          689
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -3.140184917367551e-16,
+          "y": 5,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00001678932444877807,
+          "y": -0.0004746293900721016,
+          "z": -0.00007717782533394113
+        },
+        "angle": {
+          "x": 0.00014097539432206764,
+          "y": -0.00001704362958271156,
+          "z": -0.000039854798158955597
+        }
+      },
+      {
+        "id": "n115",
+        "parent": "11",
+        "degrees_of_freedom": [
+          690,
+          691,
+          692,
+          693,
+          694,
+          695
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 5,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003080682958827115,
+          "y": -0.00045235675810681176,
+          "z": -0.000046638346713187806
+        },
+        "angle": {
+          "x": -0.00016291282826449128,
+          "y": -0.00001822899563006287,
+          "z": 0.0000658530179735649
+        }
+      },
+      {
+        "id": "n116",
+        "parent": "11",
+        "degrees_of_freedom": [
+          696,
+          697,
+          698,
+          699,
+          700,
+          701
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 15,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001501800739084125,
+          "y": -0.0005940684990207142,
+          "z": 0.0000012315366084320446
+        },
+        "angle": {
+          "x": 0.000008145611011996684,
+          "y": -0.000052718668374195635,
+          "z": -0.000008923948170751492
+        }
+      },
+      {
+        "id": "n117",
+        "parent": "11",
+        "degrees_of_freedom": [
+          702,
+          703,
+          704,
+          705,
+          706,
+          707
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 10,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00019315372792571913,
+          "y": -0.0005190079454861018,
+          "z": -0.00003274350642684139
+        },
+        "angle": {
+          "x": -0.000008813527272909291,
+          "y": -0.000015210482775090255,
+          "z": -1.016127940682241e-7
+        }
+      },
+      {
+        "id": "n118",
+        "parent": "11",
+        "degrees_of_freedom": [
+          708,
+          709,
+          710,
+          711,
+          712,
+          713
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 10,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000006944841511497601,
+          "y": -0.0004990383998465804,
+          "z": -0.000007621660378023334
+        },
+        "angle": {
+          "x": -0.0000015996041909523037,
+          "y": -0.000004745526955376863,
+          "z": 9.792077277939147e-7
+        }
+      },
+      {
+        "id": "n119",
+        "parent": "11",
+        "degrees_of_freedom": [
+          714,
+          715,
+          716,
+          717,
+          718,
+          719
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 10,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00002408236887991194,
+          "y": -0.0004989668662587463,
+          "z": -0.0000020360550275280525
+        },
+        "angle": {
+          "x": -9.876436634011027e-7,
+          "y": -0.0000201420884610524,
+          "z": -0.000005534213323582003
+        }
+      },
+      {
+        "id": "n120",
+        "parent": "11",
+        "degrees_of_freedom": [
+          720,
+          721,
+          722,
+          723,
+          724,
+          725
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 12.020305089104422,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00005633250462086478,
+          "y": -0.0005297444032158876,
+          "z": -0.000009926713644158998
+        },
+        "angle": {
+          "x": -0.000013193622046068052,
+          "y": 0.00002043815321328807,
+          "z": -0.000022790771549918275
+        }
+      },
+      {
+        "id": "n121",
+        "parent": "11",
+        "degrees_of_freedom": [
+          726,
+          727,
+          728,
+          729,
+          730,
+          731
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 12.857142857142858,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00015635700971520236,
+          "y": -0.0005331446363527707,
+          "z": -0.000015633948897033838
+        },
+        "angle": {
+          "x": 0.0000014024546677884883,
+          "y": -0.0000318713100189248,
+          "z": -0.000007205825185327798
+        }
+      },
+      {
+        "id": "n122",
+        "parent": "11",
+        "degrees_of_freedom": [
+          732,
+          733,
+          734,
+          735,
+          736,
+          737
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 12.020305089104422,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00017402922770288842,
+          "y": -0.0005269833758833,
+          "z": -0.000023196157832207745
+        },
+        "angle": {
+          "x": 0.000017733241001284255,
+          "y": 0.00000393520499991147,
+          "z": 0.000002544449940640701
+        }
+      },
+      {
+        "id": "n123",
+        "parent": "11",
+        "degrees_of_freedom": [
+          738,
+          739,
+          740,
+          741,
+          742,
+          743
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 10,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00017216797315938918,
+          "y": -0.0004970421832924103,
+          "z": -0.00003292539527508134
+        },
+        "angle": {
+          "x": -0.0000011746991450867912,
+          "y": -0.00003168783453024286,
+          "z": -0.000012959449992674395
+        }
+      },
+      {
+        "id": "n124",
+        "parent": "11",
+        "degrees_of_freedom": [
+          744,
+          745,
+          746,
+          747,
+          748,
+          749
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 7.979694910895579,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011727154063882242,
+          "y": -0.000465562827514394,
+          "z": -0.000019210499228907306
+        },
+        "angle": {
+          "x": -0.000019760368861079255,
+          "y": 0.00005227618114917884,
+          "z": -0.00003973598321583623
+        }
+      },
+      {
+        "id": "n125",
+        "parent": "11",
+        "degrees_of_freedom": [
+          750,
+          751,
+          752,
+          753,
+          754,
+          755
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 7.142857142857142,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000006905413580499389,
+          "y": -0.00045967422251748266,
+          "z": -0.000012656787907149904
+        },
+        "angle": {
+          "x": 5.91522620945251e-7,
+          "y": -0.000019958659255493936,
+          "z": -0.000011287874257199784
+        }
+      },
+      {
+        "id": "n126",
+        "parent": "11",
+        "degrees_of_freedom": [
+          756,
+          757,
+          758,
+          759,
+          760,
+          761
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 7.979694910895578,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00002554355671959581,
+          "y": -0.0004680076309887446,
+          "z": -0.000007864708537544311
+        },
+        "angle": {
+          "x": 0.000014177656830615593,
+          "y": -0.00005930452638762467,
+          "z": -0.000022289495547208685
+        }
+      },
+      {
+        "id": "n127",
+        "parent": "11",
+        "degrees_of_freedom": [
+          762,
+          763,
+          764,
+          765,
+          766,
+          767
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 15,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000057474701419829315,
+          "y": -0.0008741874287342915,
+          "z": -0.0005408953239472611
+        },
+        "angle": {
+          "x": -0.00008254450802423232,
+          "y": -0.00009172576082646064,
+          "z": 0.000011793630563570384
+        }
+      },
+      {
+        "id": "n128",
+        "parent": "11",
+        "degrees_of_freedom": [
+          768,
+          769,
+          770,
+          771,
+          772,
+          773
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 15,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000273846020178435,
+          "y": -0.000767466154058,
+          "z": -0.00018425518677303037
+        },
+        "angle": {
+          "x": -0.00013458678619627094,
+          "y": -0.00004868356063491588,
+          "z": -0.00006248632709777432
+        }
+      },
+      {
+        "id": "n129",
+        "parent": "11",
+        "degrees_of_freedom": [
+          774,
+          775,
+          776,
+          777,
+          778,
+          779
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 15,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000054501024822612775,
+          "y": -0.0006220098444949298,
+          "z": -0.00026153833895462664
+        },
+        "angle": {
+          "x": -0.00004610521603577622,
+          "y": -0.000050164493862147604,
+          "z": 0.0000054172564030467445
+        }
+      },
+      {
+        "id": "n130",
+        "parent": "11",
+        "degrees_of_freedom": [
+          780,
+          781,
+          782,
+          783,
+          784,
+          785
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 15,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00012149652906835369,
+          "y": 0.0002505239677844254,
+          "z": -0.00009516664907734353
+        },
+        "angle": {
+          "x": -0.00004839670611932884,
+          "y": -0.00005885670670952699,
+          "z": 0.00016100306666022972
+        }
+      },
+      {
+        "id": "n131",
+        "parent": "11",
+        "degrees_of_freedom": [
+          786,
+          787,
+          788,
+          789,
+          790,
+          791
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.0203050891044216,
+          "y": 15,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000057648348079803446,
+          "y": -0.0005717186669284131,
+          "z": -0.0001225877935825202
+        },
+        "angle": {
+          "x": -0.0013433806871616391,
+          "y": -0.000059467307262014055,
+          "z": 0.0006188496574082006
+        }
+      },
+      {
+        "id": "n132",
+        "parent": "11",
+        "degrees_of_freedom": [
+          792,
+          793,
+          794,
+          795,
+          796,
+          797
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 3.140184917367551e-16,
+          "y": 15,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000009971044428782195,
+          "y": -0.0009123044925300506,
+          "z": -0.0002283995565689899
+        },
+        "angle": {
+          "x": 0.0002741095714775509,
+          "y": -0.00006165264908732082,
+          "z": 0.00004698099047847881
+        }
+      },
+      {
+        "id": "n133",
+        "parent": "11",
+        "degrees_of_freedom": [
+          798,
+          799,
+          800,
+          801,
+          802,
+          803
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 15,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000529349147717582,
+          "y": -0.000794119481753928,
+          "z": -0.0003404359497924062
+        },
+        "angle": {
+          "x": -0.0006919247696398562,
+          "y": -0.00006499667852237411,
+          "z": -0.0002945645817345987
+        }
+      },
+      {
+        "id": "n134",
+        "parent": "11",
+        "degrees_of_freedom": [
+          804,
+          805,
+          806,
+          807,
+          808,
+          809
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 15,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011267030072726068,
+          "y": -0.0005087896443108074,
+          "z": -0.0003730983987145531
+        },
+        "angle": {
+          "x": -0.00004839386682189777,
+          "y": -0.00006143338398416602,
+          "z": -0.00006704277500057915
+        }
+      },
+      {
+        "id": "n135",
+        "parent": "11",
+        "degrees_of_freedom": [
+          810,
+          811,
+          812,
+          813,
+          814,
+          815
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.0203050891044216,
+          "y": 15,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001842905678728062,
+          "y": -0.000989662870303704,
+          "z": -0.00034519312413165573
+        },
+        "angle": {
+          "x": 0.0005192455383093491,
+          "y": -0.00007288879623718042,
+          "z": -0.0002677342686988322
+        }
+      },
+      {
+        "id": "n136",
+        "parent": "11",
+        "degrees_of_freedom": [
+          816,
+          817,
+          818,
+          819,
+          820,
+          821
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -3.140184917367551e-16,
+          "y": 15,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002324172149547602,
+          "y": -0.0011888489296486605,
+          "z": -0.0002258149317405284
+        },
+        "angle": {
+          "x": -0.0003709000461965998,
+          "y": -0.000063127478012151,
+          "z": 0.000046979218255578756
+        }
+      },
+      {
+        "id": "n137",
+        "parent": "11",
+        "degrees_of_freedom": [
+          822,
+          823,
+          824,
+          825,
+          826,
+          827
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 15,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00018606170354071682,
+          "y": -0.0007672682515538087,
+          "z": -0.00012067177108948286
+        },
+        "angle": {
+          "x": 0.001605245156552814,
+          "y": -0.00005760158110690321,
+          "z": 0.000745652974107926
+        }
+      },
+      {
+        "id": "n138",
+        "parent": "11",
+        "degrees_of_freedom": [
+          828,
+          829,
+          830,
+          831,
+          832,
+          833
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 10,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00013898712086872156,
+          "y": -0.0006950386212604025,
+          "z": -0.0004031068505837151
+        },
+        "angle": {
+          "x": -0.0000036552079831094714,
+          "y": -0.00007212013324861519,
+          "z": 0.000029665633494915235
+        }
+      },
+      {
+        "id": "n139",
+        "parent": "11",
+        "degrees_of_freedom": [
+          834,
+          835,
+          836,
+          837,
+          838,
+          839
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 10,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00005175552538395764,
+          "y": -0.0006069894677519231,
+          "z": -0.0003297489936058381
+        },
+        "angle": {
+          "x": -0.000023272644388055282,
+          "y": -0.00005756634157654571,
+          "z": 0.000020298501572275905
+        }
+      },
+      {
+        "id": "n140",
+        "parent": "11",
+        "degrees_of_freedom": [
+          840,
+          841,
+          842,
+          843,
+          844,
+          845
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 10,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00031465436481389447,
+          "y": -0.000693009572292238,
+          "z": -0.00037706485120959384
+        },
+        "angle": {
+          "x": -0.00002774752098227457,
+          "y": 0.0002529689669871717,
+          "z": 0.00006897249311933558
+        }
+      },
+      {
+        "id": "n141",
+        "parent": "11",
+        "degrees_of_freedom": [
+          846,
+          847,
+          848,
+          849,
+          850,
+          851
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 12.020305089104422,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00026621382569451586,
+          "y": -0.0006874496227031768,
+          "z": -0.00041093319446704565
+        },
+        "angle": {
+          "x": -0.00000954515069406293,
+          "y": -0.0007538539250138679,
+          "z": -0.00028699306600324815
+        }
+      },
+      {
+        "id": "n142",
+        "parent": "11",
+        "degrees_of_freedom": [
+          852,
+          853,
+          854,
+          855,
+          856,
+          857
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 12.857142857142858,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00014926830388528093,
+          "y": -0.0007135454040469405,
+          "z": -0.0004147144716246484
+        },
+        "angle": {
+          "x": 0.000009158573996927139,
+          "y": 0.00004694318522219209,
+          "z": -0.000003868543271054331
+        }
+      },
+      {
+        "id": "n143",
+        "parent": "11",
+        "degrees_of_freedom": [
+          858,
+          859,
+          860,
+          861,
+          862,
+          863
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 12.020305089104422,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007653468055881991,
+          "y": -0.0007202928881249462,
+          "z": -0.0004011751786515585
+        },
+        "angle": {
+          "x": -0.00004755448520535732,
+          "y": -0.00039245141669823965,
+          "z": 0.0001514809148451689
+        }
+      },
+      {
+        "id": "n144",
+        "parent": "11",
+        "degrees_of_freedom": [
+          864,
+          865,
+          866,
+          867,
+          868,
+          869
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 10,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000046406700562640264,
+          "y": -0.0006742928736373465,
+          "z": -0.0003416839659276979
+        },
+        "angle": {
+          "x": -0.000026552281417101982,
+          "y": -0.00015908315347590247,
+          "z": 0.0000689732510659799
+        }
+      },
+      {
+        "id": "n145",
+        "parent": "11",
+        "degrees_of_freedom": [
+          870,
+          871,
+          872,
+          873,
+          874,
+          875
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 7.979694910895578,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002499750039362527,
+          "y": -0.0006730633845124706,
+          "z": -0.0003023421830080178
+        },
+        "angle": {
+          "x": -0.000016500435783582385,
+          "y": 0.0007047526382305044,
+          "z": 0.0003743849654513464
+        }
+      },
+      {
+        "id": "n146",
+        "parent": "11",
+        "degrees_of_freedom": [
+          876,
+          877,
+          878,
+          879,
+          880,
+          881
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 7.142857142857142,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0009655011021525593,
+          "y": -0.0006567539206474044,
+          "z": -0.0002960277591756655
+        },
+        "angle": {
+          "x": 0.000002220439017396339,
+          "y": 0.00004694415253492102,
+          "z": 0.00014181421544501896
+        }
+      },
+      {
+        "id": "n147",
+        "parent": "11",
+        "degrees_of_freedom": [
+          882,
+          883,
+          884,
+          885,
+          886,
+          887
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 7.979694910895579,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006029344887806816,
+          "y": -0.0006562307705340196,
+          "z": -0.00031153810677066407
+        },
+        "angle": {
+          "x": -0.00004928677416114804,
+          "y": -0.0014395156909937717,
+          "z": 0.0006673566781257859
+        }
+      },
+      {
+        "id": "n148",
+        "parent": "11",
+        "degrees_of_freedom": [
+          888,
+          889,
+          890,
+          891,
+          892,
+          893
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 7.142857142857142,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00021358329951350375,
+          "y": -0.0005524691095283882,
+          "z": 0.0001658478981630887
+        },
+        "angle": {
+          "x": -0.00029440553807675397,
+          "y": -0.00004964883927050499,
+          "z": 0.00002313925981485208
+        }
+      },
+      {
+        "id": "n149",
+        "parent": "11",
+        "degrees_of_freedom": [
+          894,
+          895,
+          896,
+          897,
+          898,
+          899
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 7.979694910895579,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00020925355134795865,
+          "y": -0.0005295866246247112,
+          "z": 0.000019784132771530795
+        },
+        "angle": {
+          "x": 0.00011292057726654711,
+          "y": 0.00011907098017161242,
+          "z": -0.000006741381011123485
+        }
+      },
+      {
+        "id": "n150",
+        "parent": "11",
+        "degrees_of_freedom": [
+          900,
+          901,
+          902,
+          903,
+          904,
+          905
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 10,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002039211905564636,
+          "y": -0.0005394380800107949,
+          "z": 0.0001482746651795321
+        },
+        "angle": {
+          "x": -0.00002862396594691142,
+          "y": -0.00022264704433022978,
+          "z": 0.000009226226323880494
+        }
+      },
+      {
+        "id": "n151",
+        "parent": "11",
+        "degrees_of_freedom": [
+          906,
+          907,
+          908,
+          909,
+          910,
+          911
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 12.020305089104422,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00017266386055647838,
+          "y": -0.0005639101101091905,
+          "z": -0.00009587387424912432
+        },
+        "angle": {
+          "x": -0.00015583768251433146,
+          "y": 0.0000844742255176464,
+          "z": 0.000023888332428131462
+        }
+      },
+      {
+        "id": "n152",
+        "parent": "11",
+        "degrees_of_freedom": [
+          912,
+          913,
+          914,
+          915,
+          916,
+          917
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 12.857142857142858,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00015747790228643084,
+          "y": -0.0006218808559412921,
+          "z": -0.000055621348950491585
+        },
+        "angle": {
+          "x": -0.0000799307004394253,
+          "y": 0.00005303227333485021,
+          "z": 0.000024807800597827458
+        }
+      },
+      {
+        "id": "n153",
+        "parent": "11",
+        "degrees_of_freedom": [
+          918,
+          919,
+          920,
+          921,
+          922,
+          923
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 12.020305089104422,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00016180024717577386,
+          "y": -0.0006456536735134016,
+          "z": 0.00011840922717330896
+        },
+        "angle": {
+          "x": -0.000060026104156407055,
+          "y": 0.00006127727091602898,
+          "z": -0.000009270810332472636
+        }
+      },
+      {
+        "id": "n154",
+        "parent": "11",
+        "degrees_of_freedom": [
+          924,
+          925,
+          926,
+          927,
+          928,
+          929
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 10,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00016325013567309438,
+          "y": -0.0006345378051295066,
+          "z": 0.0002909584728704487
+        },
+        "angle": {
+          "x": 0.00007405756828319562,
+          "y": 0.0003849821767620438,
+          "z": 0.000008350317937010384
+        }
+      },
+      {
+        "id": "n155",
+        "parent": "11",
+        "degrees_of_freedom": [
+          930,
+          931,
+          932,
+          933,
+          934,
+          935
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 7.979694910895579,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001958405216477569,
+          "y": -0.0006090892336749634,
+          "z": -0.000180827866276111
+        },
+        "angle": {
+          "x": 0.0003676840584269005,
+          "y": -0.0003238956978271224,
+          "z": 0.00002653895856636163
+        }
+      },
+      {
+        "id": "n156",
+        "parent": "11",
+        "degrees_of_freedom": [
+          936,
+          937,
+          938,
+          939,
+          940,
+          941
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 12.857142857142858,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004609436537053018,
+          "y": -0.0005707327390277302,
+          "z": -0.00005060997524877679
+        },
+        "angle": {
+          "x": 0.000090386570730049,
+          "y": -0.00003782342681069777,
+          "z": 0.000009252137360997263
+        }
+      },
+      {
+        "id": "n157",
+        "parent": "11",
+        "degrees_of_freedom": [
+          942,
+          943,
+          944,
+          945,
+          946,
+          947
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 12.020305089104422,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00005403977446411281,
+          "y": -0.0005781003877288532,
+          "z": -0.00020144881076530067
+        },
+        "angle": {
+          "x": -0.00010383007872207613,
+          "y": -0.00011646650164140542,
+          "z": -0.0000045297378794004135
+        }
+      },
+      {
+        "id": "n158",
+        "parent": "11",
+        "degrees_of_freedom": [
+          948,
+          949,
+          950,
+          951,
+          952,
+          953
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 10,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004513924581460886,
+          "y": -0.0005533380050714216,
+          "z": -0.0000893844537785762
+        },
+        "angle": {
+          "x": -0.00002181061171837766,
+          "y": 0.00008111490998032961,
+          "z": 0.000008172325075081934
+        }
+      },
+      {
+        "id": "n159",
+        "parent": "11",
+        "degrees_of_freedom": [
+          954,
+          955,
+          956,
+          957,
+          958,
+          959
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 7.979694910895579,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000018797121525591134,
+          "y": -0.000512253861431046,
+          "z": -0.00011308018268412973
+        },
+        "angle": {
+          "x": 0.000057027714455221,
+          "y": -0.00010964858572272311,
+          "z": 0.00002507808036968373
+        }
+      },
+      {
+        "id": "n160",
+        "parent": "11",
+        "degrees_of_freedom": [
+          960,
+          961,
+          962,
+          963,
+          964,
+          965
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 7.142857142857142,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000014195447929341359,
+          "y": -0.0004788856673520243,
+          "z": 0.00005923398053004064
+        },
+        "angle": {
+          "x": -0.00013660892136525043,
+          "y": -0.00002833799149086485,
+          "z": 0.000008535062382216912
+        }
+      },
+      {
+        "id": "n161",
+        "parent": "11",
+        "degrees_of_freedom": [
+          966,
+          967,
+          968,
+          969,
+          970,
+          971
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 7.979694910895579,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000022152835961748335,
+          "y": -0.0004782225503742722,
+          "z": 0.0000029090652366710728
+        },
+        "angle": {
+          "x": 0.00006755501300479947,
+          "y": 0.00005512587570087559,
+          "z": -0.00000886999147735601
+        }
+      },
+      {
+        "id": "n162",
+        "parent": "11",
+        "degrees_of_freedom": [
+          972,
+          973,
+          974,
+          975,
+          976,
+          977
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 10,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000010599504891009097,
+          "y": -0.0005044561662947805,
+          "z": 0.00009509831515479807
+        },
+        "angle": {
+          "x": -0.000012898811071179393,
+          "y": -0.00014240302659543862,
+          "z": 0.000006338265199138912
+        }
+      },
+      {
+        "id": "n163",
+        "parent": "11",
+        "degrees_of_freedom": [
+          978,
+          979,
+          980,
+          981,
+          982,
+          983
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 12.020305089104422,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00002348844392947234,
+          "y": -0.0005414089261816221,
+          "z": -0.00005104899560152187
+        },
+        "angle": {
+          "x": -0.00008913005224448768,
+          "y": 0.00003833895325059533,
+          "z": 0.000021722992776148683
+        }
+      },
+      {
+        "id": "n164",
+        "parent": "11",
+        "degrees_of_freedom": [
+          984,
+          985,
+          986,
+          987,
+          988,
+          989
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.0203050891044216,
+          "y": 5,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00002313133162690608,
+          "y": -0.0003618034131898863,
+          "z": -0.00003482985672927119
+        },
+        "angle": {
+          "x": 0.0006199101341509263,
+          "y": -0.00001633735100567442,
+          "z": 0.0002807242994493012
+        }
+      },
+      {
+        "id": "n165",
+        "parent": "11",
+        "degrees_of_freedom": [
+          990,
+          991,
+          992,
+          993,
+          994,
+          995
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 3.140184917367551e-16,
+          "y": 5,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000013646327767009366,
+          "y": -0.0005050439097538377,
+          "z": -0.00006393880390678391
+        },
+        "angle": {
+          "x": -0.0000734544990679467,
+          "y": -0.00001620003330377384,
+          "z": 0.0000340293679559725
+        }
+      },
+      {
+        "id": "n166",
+        "parent": "11",
+        "degrees_of_freedom": [
+          996,
+          997,
+          998,
+          999,
+          1000,
+          1001
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 5,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00002793340948513399,
+          "y": -0.0005253452882415659,
+          "z": -0.00009203290492175452
+        },
+        "angle": {
+          "x": 0.0001456345791332606,
+          "y": -0.000016285042541310353,
+          "z": -0.000041876923070655784
+        }
+      },
+      {
+        "id": "n167",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1002,
+          1003,
+          1004,
+          1005,
+          1006,
+          1007
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.0203050891044216,
+          "y": 5,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000639885992893577,
+          "y": -0.0003980707087004396,
+          "z": -0.0000934886316599601
+        },
+        "angle": {
+          "x": 0.0002017394610983141,
+          "y": -0.000014399025280555734,
+          "z": 0.00010588295908139998
+        }
+      },
+      {
+        "id": "n168",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1008,
+          1009,
+          1010,
+          1011,
+          1012,
+          1013
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -3.140184917367551e-16,
+          "y": 5,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007408686639361296,
+          "y": -0.00031583038301075285,
+          "z": -0.00006704909708198534
+        },
+        "angle": {
+          "x": 0.000003531754080499532,
+          "y": -0.000015596801771311782,
+          "z": 0.000036088264287531825
+        }
+      },
+      {
+        "id": "n169",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1014,
+          1015,
+          1016,
+          1017,
+          1018,
+          1019
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 5,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006093154352319387,
+          "y": -0.00022767905201073746,
+          "z": -0.00003809513646529587
+        },
+        "angle": {
+          "x": -0.00014492399673593447,
+          "y": -0.000017677035431926504,
+          "z": 0.00008829298206743982
+        }
+      },
+      {
+        "id": "n170",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1020,
+          1021,
+          1022,
+          1023,
+          1024,
+          1025
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 15,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00014406260301245491,
+          "y": -0.0005894077790433615,
+          "z": -0.00003324732149571271
+        },
+        "angle": {
+          "x": -0.000012058151535177453,
+          "y": -0.000054324476178803,
+          "z": 0.000010022983631774493
+        }
+      },
+      {
+        "id": "n171",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1026,
+          1027,
+          1028,
+          1029,
+          1030,
+          1031
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 10,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00016058849765971276,
+          "y": -0.0004992361323435081,
+          "z": 0.000017780414192059247
+        },
+        "angle": {
+          "x": 4.278971746847758e-7,
+          "y": -0.000012319952251136706,
+          "z": 0.0000017136905945268106
+        }
+      },
+      {
+        "id": "n172",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1032,
+          1033,
+          1034,
+          1035,
+          1036,
+          1037
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 10,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000177927855008192,
+          "y": -0.0004883434472446592,
+          "z": 0.000018250242357346458
+        },
+        "angle": {
+          "x": -0.0000031291861190460182,
+          "y": -0.00006588497083019989,
+          "z": 0.000016982864019793044
+        }
+      },
+      {
+        "id": "n173",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1038,
+          1039,
+          1040,
+          1041,
+          1042,
+          1043
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 12.020305089104422,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00016065549326465243,
+          "y": -0.0005192250016744581,
+          "z": 9.818970756290286e-7
+        },
+        "angle": {
+          "x": -0.000021562702631291343,
+          "y": 0.00010115250099772885,
+          "z": -0.000045032889410118984
+        }
+      },
+      {
+        "id": "n174",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1044,
+          1045,
+          1046,
+          1047,
+          1048,
+          1049
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 12.857142857142858,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00009641136312355367,
+          "y": -0.000528949059548999,
+          "z": -0.000007861317578232297
+        },
+        "angle": {
+          "x": -0.00000446137458314846,
+          "y": -0.000030908550211718745,
+          "z": -0.0000013012275760145952
+        }
+      },
+      {
+        "id": "n175",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1050,
+          1051,
+          1052,
+          1053,
+          1054,
+          1055
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 12.020305089104422,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004703840685856861,
+          "y": -0.0005283565859964297,
+          "z": -0.000011496019028606427
+        },
+        "angle": {
+          "x": 0.000009162127948460029,
+          "y": -0.00006097182350626764,
+          "z": -0.00001488918306309228
+        }
+      },
+      {
+        "id": "n176",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1056,
+          1057,
+          1058,
+          1059,
+          1060,
+          1061
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 10,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003592591933182801,
+          "y": -0.0005002879664382493,
+          "z": -0.000012065048964160706
+        },
+        "angle": {
+          "x": -0.000003075095206129396,
+          "y": 0.000016184017183835466,
+          "z": 0.000009430437882783653
+        }
+      },
+      {
+        "id": "n177",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1062,
+          1063,
+          1064,
+          1065,
+          1066,
+          1067
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 7.979694910895579,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000022734023035521644,
+          "y": -0.00046652885946384977,
+          "z": 3.918474117219476e-7
+        },
+        "angle": {
+          "x": -0.000017501823977041417,
+          "y": -0.00020122186696506982,
+          "z": 0.00008925415436064477
+        }
+      },
+      {
+        "id": "n178",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1068,
+          1069,
+          1070,
+          1071,
+          1072,
+          1073
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 7.142857142857142,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011704067812958533,
+          "y": -0.00045827391776387486,
+          "z": 0.000006992359063773273
+        },
+        "angle": {
+          "x": -0.0000018561065711018529,
+          "y": -0.000018791825566552014,
+          "z": 0.000027714579394954712
+        }
+      },
+      {
+        "id": "n179",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1074,
+          1075,
+          1076,
+          1077,
+          1078,
+          1079
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 7.979694910895578,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008493008318924743,
+          "y": -0.00046231166747596027,
+          "z": 0.00001225670374185366
+        },
+        "angle": {
+          "x": 0.000014791070022854505,
+          "y": 0.0002064630801160132,
+          "z": 0.00011031342601586272
+        }
+      },
+      {
+        "id": "n180",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1080,
+          1081,
+          1082,
+          1083,
+          1084,
+          1085
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 15,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00022846077948014462,
+          "y": -0.0008560686578404649,
+          "z": -0.0005394178044763817
+        },
+        "angle": {
+          "x": -0.00011162755093522614,
+          "y": -0.000060442510310620226,
+          "z": 0.00003153424511641901
+        }
+      },
+      {
+        "id": "n181",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1086,
+          1087,
+          1088,
+          1089,
+          1090,
+          1091
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 15,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0003695964554954213,
+          "y": -0.000702104288909879,
+          "z": -0.0003271123671034225
+        },
+        "angle": {
+          "x": 0.000026749493874188105,
+          "y": -0.00006572795424142905,
+          "z": 0.00007495108315398037
+        }
+      },
+      {
+        "id": "n182",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1092,
+          1093,
+          1094,
+          1095,
+          1096,
+          1097
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 15,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001876346353053188,
+          "y": 0.0002536721864781669,
+          "z": -0.00015672261338763418
+        },
+        "angle": {
+          "x": 0.00003929370528666095,
+          "y": -0.00005186857138488655,
+          "z": 0.0001370139828126031
+        }
+      },
+      {
+        "id": "n183",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1098,
+          1099,
+          1100,
+          1101,
+          1102,
+          1103
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.0203050891044216,
+          "y": 15,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00024761405531048043,
+          "y": -0.0006086500334808617,
+          "z": -0.00018134284630080396
+        },
+        "angle": {
+          "x": -0.0013204037722565343,
+          "y": -0.00006628714821720378,
+          "z": 0.0006177397847103713
+        }
+      },
+      {
+        "id": "n184",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1104,
+          1105,
+          1106,
+          1107,
+          1108,
+          1109
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 3.140184917367551e-16,
+          "y": 15,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00029719006294607405,
+          "y": -0.0009658364580690238,
+          "z": -0.0002941323621917054
+        },
+        "angle": {
+          "x": 0.0001313396946615233,
+          "y": -0.00006266168369468373,
+          "z": 0.00010447123523989447
+        }
+      },
+      {
+        "id": "n185",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1110,
+          1111,
+          1112,
+          1113,
+          1114,
+          1115
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 15,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0002543118574810671,
+          "y": -0.0011032026351948053,
+          "z": -0.00040304443848634
+        },
+        "angle": {
+          "x": -0.0000404722841381672,
+          "y": -0.00006081460440285822,
+          "z": 0.00004372603997013425
+        }
+      },
+      {
+        "id": "n186",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1116,
+          1117,
+          1118,
+          1119,
+          1120,
+          1121
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 15,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00019449972725193006,
+          "y": -0.001434831314178679,
+          "z": -0.00042953582238117145
+        },
+        "angle": {
+          "x": 0.0000392942342914522,
+          "y": -0.00005525324976935001,
+          "z": 0.00007192758930606963
+        }
+      },
+      {
+        "id": "n187",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1122,
+          1123,
+          1124,
+          1125,
+          1126,
+          1127
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.0203050891044216,
+          "y": 15,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00013568016683849143,
+          "y": -0.0009444304610701804,
+          "z": -0.0004025268031444926
+        },
+        "angle": {
+          "x": -0.000956716694803772,
+          "y": -0.00006032848220661586,
+          "z": 0.00042407045118708067
+        }
+      },
+      {
+        "id": "n188",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1128,
+          1129,
+          1130,
+          1131,
+          1132,
+          1133
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -3.140184917367551e-16,
+          "y": 15,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00009275264308372238,
+          "y": -0.0007413001891993887,
+          "z": -0.00029457836038497494
+        },
+        "angle": {
+          "x": -0.000052752315420287666,
+          "y": -0.00006145285526051225,
+          "z": 0.00010447070029086732
+        }
+      },
+      {
+        "id": "n189",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1134,
+          1135,
+          1136,
+          1137,
+          1138,
+          1139
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 15,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00013851708110000985,
+          "y": -0.00044987964546097073,
+          "z": -0.00018683148158401349
+        },
+        "angle": {
+          "x": 0.0008679633547645555,
+          "y": -0.00006071454657921606,
+          "z": 0.00042999294460379983
+        }
+      },
+      {
+        "id": "n190",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1140,
+          1141,
+          1142,
+          1143,
+          1144,
+          1145
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 10,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00021623248236895886,
+          "y": -0.0005829845422342895,
+          "z": -0.00026045454631423243
+        },
+        "angle": {
+          "x": -0.000027080102391908156,
+          "y": -0.00010149165308451562,
+          "z": 0.000008483502531133825
+        }
+      },
+      {
+        "id": "n191",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1146,
+          1147,
+          1148,
+          1149,
+          1150,
+          1151
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 10,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00021522347322900073,
+          "y": -0.0006169235350393868,
+          "z": -0.00031294969846271613
+        },
+        "angle": {
+          "x": -0.000030540883096443244,
+          "y": 0.000046310397181911115,
+          "z": 0.0000747865736838545
+        }
+      },
+      {
+        "id": "n192",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1152,
+          1153,
+          1154,
+          1155,
+          1156,
+          1157
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 12.020305089104422,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0003534837048280602,
+          "y": -0.000607003323691443,
+          "z": -0.0003524411701971136
+        },
+        "angle": {
+          "x": -0.000011749373705006946,
+          "y": 0.00010257416028316902,
+          "z": 0.00009467832379625386
+        }
+      },
+      {
+        "id": "n193",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1158,
+          1159,
+          1160,
+          1161,
+          1162,
+          1163
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 12.857142857142858,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0006872696007955377,
+          "y": -0.0006540749403646116,
+          "z": -0.0003586351273948894
+        },
+        "angle": {
+          "x": 0.000020869000814439515,
+          "y": 0.00003466574364683422,
+          "z": 0.00007066854175260921
+        }
+      },
+      {
+        "id": "n194",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1164,
+          1165,
+          1166,
+          1167,
+          1168,
+          1169
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 12.020305089104422,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00021341501441152002,
+          "y": -0.0006715193805583688,
+          "z": -0.0003458719483290805
+        },
+        "angle": {
+          "x": -0.00005791487003918323,
+          "y": -0.0007163081454248811,
+          "z": 0.0003361774724471557
+        }
+      },
+      {
+        "id": "n195",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1170,
+          1171,
+          1172,
+          1173,
+          1174,
+          1175
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 10,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00001713900314215745,
+          "y": -0.000625240040474363,
+          "z": -0.00027379544536376753
+        },
+        "angle": {
+          "x": -0.000029445568411580936,
+          "y": 0.00002301883408544953,
+          "z": 0.0000747856863461084
+        }
+      },
+      {
+        "id": "n196",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1176,
+          1177,
+          1178,
+          1179,
+          1180,
+          1181
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 7.979694910895578,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00014061089987848227,
+          "y": -0.0006279808833980834,
+          "z": -0.0002368191209084685
+        },
+        "angle": {
+          "x": -0.000011973651846411658,
+          "y": 0.00009933633938102147,
+          "z": 0.00010176812949478324
+        }
+      },
+      {
+        "id": "n197",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1182,
+          1183,
+          1184,
+          1185,
+          1186,
+          1187
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 7.142857142857142,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0005214547657333219,
+          "y": -0.0006005511424108386,
+          "z": -0.0002343897158584953
+        },
+        "angle": {
+          "x": 0.000013060949324627337,
+          "y": 0.00003466398986008876,
+          "z": 0.00007890340604725969
+        }
+      },
+      {
+        "id": "n198",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1188,
+          1189,
+          1190,
+          1191,
+          1192,
+          1193
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 7.979694910895579,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 5.454752634061106e-7,
+          "y": -0.0005856291118864654,
+          "z": -0.0002477475380810177
+        },
+        "angle": {
+          "x": -0.00004318688039230886,
+          "y": -0.0009167462273407556,
+          "z": 0.0004152781301116318
+        }
+      },
+      {
+        "id": "n199",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1194,
+          1195,
+          1196,
+          1197,
+          1198,
+          1199
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 12.857142857142858,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00022939765323360116,
+          "y": -0.0005705152170609589,
+          "z": 0.00016733011543305896
+        },
+        "angle": {
+          "x": 0.00037130172993944747,
+          "y": 0.000064661569995786,
+          "z": 1.6369361494535477e-7
+        }
+      },
+      {
+        "id": "n200",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1200,
+          1201,
+          1202,
+          1203,
+          1204,
+          1205
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 12.020305089104422,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0002254721101298662,
+          "y": -0.0005639780795212624,
+          "z": -0.000012753310173652101
+        },
+        "angle": {
+          "x": -0.000022774136741097573,
+          "y": -0.0000985702980806834,
+          "z": 4.649448847037824e-7
+        }
+      },
+      {
+        "id": "n201",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1206,
+          1207,
+          1208,
+          1209,
+          1210,
+          1211
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 10,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00020866808687962593,
+          "y": -0.0005529457771169259,
+          "z": -0.000049229792214764776
+        },
+        "angle": {
+          "x": 0.000009965001075671045,
+          "y": -0.00001953073565913481,
+          "z": 0.000012128070023058127
+        }
+      },
+      {
+        "id": "n202",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1212,
+          1213,
+          1214,
+          1215,
+          1216,
+          1217
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 7.979694910895579,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00017715515947692369,
+          "y": -0.000522433611890115,
+          "z": -0.00005301816102350937
+        },
+        "angle": {
+          "x": -0.0000013948408243664921,
+          "y": 0.000007894634434644911,
+          "z": 0.000022489601664097648
+        }
+      },
+      {
+        "id": "n203",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1218,
+          1219,
+          1220,
+          1221,
+          1222,
+          1223
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 7.142857142857142,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000162237982564417,
+          "y": -0.0005048477946481325,
+          "z": -0.0000678004188425038
+        },
+        "angle": {
+          "x": 0.00003751524766439473,
+          "y": -0.000008222495067493141,
+          "z": 6.2614656123007e-7
+        }
+      },
+      {
+        "id": "n204",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1224,
+          1225,
+          1226,
+          1227,
+          1228,
+          1229
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 7.979694910895579,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00016157419071126104,
+          "y": -0.0005088079842614062,
+          "z": -0.000019794303969849492
+        },
+        "angle": {
+          "x": -0.000042270605951328895,
+          "y": -0.00004127085541145347,
+          "z": -2.4119487955647187e-7
+        }
+      },
+      {
+        "id": "n205",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1230,
+          1231,
+          1232,
+          1233,
+          1234,
+          1235
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 10,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00017644622890275919,
+          "y": -0.0005166391412158227,
+          "z": -0.00007065683568200918
+        },
+        "angle": {
+          "x": -0.00006291894383714976,
+          "y": -0.00009112031541994715,
+          "z": 0.00001269149415226684
+        }
+      },
+      {
+        "id": "n206",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1236,
+          1237,
+          1238,
+          1239,
+          1240,
+          1241
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 12.020305089104422,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00021467779001709737,
+          "y": -0.0005478803920476165,
+          "z": -0.00027402525393188686
+        },
+        "angle": {
+          "x": -0.00023073997816036403,
+          "y": 0.0003140352876054743,
+          "z": 0.000029072326843108197
+        }
+      },
+      {
+        "id": "n207",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1242,
+          1243,
+          1244,
+          1245,
+          1246,
+          1247
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 15,
+          "y": -5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n208",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1248,
+          1249,
+          1250,
+          1251,
+          1252,
+          1253
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 10,
+          "y": -5,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n209",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1254,
+          1255,
+          1256,
+          1257,
+          1258,
+          1259
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 10,
+          "y": -5,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n210",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1260,
+          1261,
+          1262,
+          1263,
+          1264,
+          1265
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": -5,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n211",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1266,
+          1267,
+          1268,
+          1269,
+          1270,
+          1271
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": -5,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n212",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1272,
+          1273,
+          1274,
+          1275,
+          1276,
+          1277
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 10,
+          "y": -5,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n213",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1278,
+          1279,
+          1280,
+          1281,
+          1282,
+          1283
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": -5,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n214",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1284,
+          1285,
+          1286,
+          1287,
+          1288,
+          1289
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": -5,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n215",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1290,
+          1291,
+          1292,
+          1293,
+          1294,
+          1295
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 7.979694910895578,
+          "y": -5,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n216",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1296,
+          1297,
+          1298,
+          1299,
+          1300,
+          1301
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 10,
+          "y": -5,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n217",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1302,
+          1303,
+          1304,
+          1305,
+          1306,
+          1307
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": -5,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n218",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1308,
+          1309,
+          1310,
+          1311,
+          1312,
+          1313
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006150981339508513,
+          "y": -0.000468379514065843,
+          "z": 0.00011216279916560017
+        },
+        "angle": {
+          "x": 0.0000538384912214758,
+          "y": -0.00001375781219519014,
+          "z": 0.000015917008059786142
+        }
+      },
+      {
+        "id": "n219",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1314,
+          1315,
+          1316,
+          1317,
+          1318,
+          1319
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 0,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000039342498640624346,
+          "y": -0.00020115030898852637,
+          "z": 0.00001896136951449289
+        },
+        "angle": {
+          "x": 0.000034359473385045404,
+          "y": 0.00004220908710856114,
+          "z": -0.000009335222253102213
+        }
+      },
+      {
+        "id": "n220",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1320,
+          1321,
+          1322,
+          1323,
+          1324,
+          1325
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 0,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000723537730838893,
+          "y": -0.00021220442196024698,
+          "z": 0.000020417376600552197
+        },
+        "angle": {
+          "x": 0.000022598644244961486,
+          "y": 0.000010869562010054074,
+          "z": -0.000002073918826174322
+        }
+      },
+      {
+        "id": "n221",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1326,
+          1327,
+          1328,
+          1329,
+          1330,
+          1331
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": -3.140184917367551e-16,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003749191549455773,
+          "y": -0.00013624371548498612,
+          "z": 0.00002990681753327814
+        },
+        "angle": {
+          "x": 0.000003761733442092129,
+          "y": 0.000012970114552885472,
+          "z": -0.00001125633991658759
+        }
+      },
+      {
+        "id": "n222",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1332,
+          1333,
+          1334,
+          1335,
+          1336,
+          1337
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 2.020305089104421,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000532814025475527,
+          "y": -0.00016625647099425994,
+          "z": 0.0000297421410563684
+        },
+        "angle": {
+          "x": -0.000010090168525342486,
+          "y": 0.0000869265344659224,
+          "z": -0.000037404322450868865
+        }
+      },
+      {
+        "id": "n223",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1338,
+          1339,
+          1340,
+          1341,
+          1342,
+          1343
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 2.857142857142857,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00009140396495050808,
+          "y": -0.0002539215622337028,
+          "z": 0.000022128212020722677
+        },
+        "angle": {
+          "x": -0.000059467431883167,
+          "y": -0.00002604815984283074,
+          "z": 0.0000025378192043718715
+        }
+      },
+      {
+        "id": "n224",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1344,
+          1345,
+          1346,
+          1347,
+          1348,
+          1349
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 2.0203050891044216,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00015853018806067423,
+          "y": -0.00031950305650379037,
+          "z": 0.000021291417315065147
+        },
+        "angle": {
+          "x": 0.000029430149415110836,
+          "y": -0.00009517637808585,
+          "z": -0.000021903133258871606
+        }
+      },
+      {
+        "id": "n225",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1350,
+          1351,
+          1352,
+          1353,
+          1354,
+          1355
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 3.140184917367551e-16,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00018633336179632102,
+          "y": -0.0002810775861093365,
+          "z": -1.4793430320884343e-7
+        },
+        "angle": {
+          "x": 0.000003109610630561321,
+          "y": -0.00006506454817204964,
+          "z": -0.000011257457250543133
+        }
+      },
+      {
+        "id": "n226",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1356,
+          1357,
+          1358,
+          1359,
+          1360,
+          1361
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": -2.020305089104421,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00010523952986258381,
+          "y": -0.0002528987723265506,
+          "z": 0.0000053438550186534705
+        },
+        "angle": {
+          "x": -0.000012808178645940082,
+          "y": 0.0004014371425171813,
+          "z": -0.00017619031417895591
+        }
+      },
+      {
+        "id": "n227",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1362,
+          1363,
+          1364,
+          1365,
+          1366,
+          1367
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": -2.857142857142857,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00009053517983794917,
+          "y": -0.00017019391003411132,
+          "z": 0.00001649640152914566
+        },
+        "angle": {
+          "x": -0.000060148140304532526,
+          "y": -0.000026046365184636946,
+          "z": -0.00002505165062282256
+        }
+      },
+      {
+        "id": "n228",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1368,
+          1369,
+          1370,
+          1371,
+          1372,
+          1373
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": -2.0203050891044216,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -5.3469717258772245e-9,
+          "y": -0.0001002724338509158,
+          "z": 0.000016076027369005906
+        },
+        "angle": {
+          "x": 0.000018464601804784518,
+          "y": -0.00014282238359305716,
+          "z": -0.0000663377579969443
+        }
+      },
+      {
+        "id": "n229",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1374,
+          1375,
+          1376,
+          1377,
+          1378,
+          1379
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 5,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011068958899794381,
+          "y": -0.0004197336424423341,
+          "z": 0.00005267386217682346
+        },
+        "angle": {
+          "x": -0.0000054681088386215675,
+          "y": -0.00002247357743643804,
+          "z": -0.000035598757309733736
+        }
+      },
+      {
+        "id": "n230",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1380,
+          1381,
+          1382,
+          1383,
+          1384,
+          1385
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 5,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000018867954631575057,
+          "y": -0.0004060570311930977,
+          "z": 0.00005732963875425533
+        },
+        "angle": {
+          "x": -0.000010375962914680198,
+          "y": -0.000019170707697452033,
+          "z": -0.0000010153744867633866
+        }
+      },
+      {
+        "id": "n231",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1386,
+          1387,
+          1388,
+          1389,
+          1390,
+          1391
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 5,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006009083094767311,
+          "y": -0.0005872219994459419,
+          "z": 0.00008638159504173341
+        },
+        "angle": {
+          "x": 0.000022515806594023625,
+          "y": -0.00001660360778932623,
+          "z": -0.0000069112206609268565
+        }
+      },
+      {
+        "id": "n232",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1392,
+          1393,
+          1394,
+          1395,
+          1396,
+          1397
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 5,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000041997680492359224,
+          "y": -0.0005937709907205874,
+          "z": 0.0000797936234754834
+        },
+        "angle": {
+          "x": 0.00019327460554400899,
+          "y": -0.000014267274742563624,
+          "z": -0.000066993307915504
+        }
+      },
+      {
+        "id": "n233",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1398,
+          1399,
+          1400,
+          1401,
+          1402,
+          1403
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 5,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000032063853443643624,
+          "y": -0.0006024543594659169,
+          "z": 0.000054128371290527004
+        },
+        "angle": {
+          "x": 0.00012808243803180607,
+          "y": -0.00001475224027473823,
+          "z": -0.00003724728927705257
+        }
+      },
+      {
+        "id": "n234",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1404,
+          1405,
+          1406,
+          1407,
+          1408,
+          1409
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 5,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004579998239813304,
+          "y": -0.00041094206966706224,
+          "z": 0.00002824250492866615
+        },
+        "angle": {
+          "x": -0.0007118864329948793,
+          "y": -0.000016714298733211877,
+          "z": -0.0003314240919068607
+        }
+      },
+      {
+        "id": "n235",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1410,
+          1411,
+          1412,
+          1413,
+          1414,
+          1415
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 5,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006220009507183962,
+          "y": 0.00004188254065974436,
+          "z": 0.000019366978815615512
+        },
+        "angle": {
+          "x": 0.00002200526508925789,
+          "y": -0.000016402336989071586,
+          "z": -0.00007121930130618272
+        }
+      },
+      {
+        "id": "n236",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1416,
+          1417,
+          1418,
+          1419,
+          1420,
+          1421
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895578,
+          "y": 5,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008154166460456006,
+          "y": -0.00031922762338924815,
+          "z": 0.00002533025829045585
+        },
+        "angle": {
+          "x": 0.0007685623012641652,
+          "y": -0.000016173574263304596,
+          "z": -0.00033443209845248874
+        }
+      },
+      {
+        "id": "n237",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1422,
+          1423,
+          1424,
+          1425,
+          1426,
+          1427
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 5,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00009149770850680782,
+          "y": -0.0004703982541255533,
+          "z": 0.000052893282167178034
+        },
+        "angle": {
+          "x": -0.00008186259904764006,
+          "y": -0.000014871777111261087,
+          "z": -0.000037986678026276846
+        }
+      },
+      {
+        "id": "n238",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1428,
+          1429,
+          1430,
+          1431,
+          1432,
+          1433
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 5,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007867620430357874,
+          "y": -0.000501687649839,
+          "z": 0.00007893876879610826
+        },
+        "angle": {
+          "x": -0.00011293225922019789,
+          "y": -0.000016106279531499887,
+          "z": -0.000055089593133199945
+        }
+      },
+      {
+        "id": "n239",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1434,
+          1435,
+          1436,
+          1437,
+          1438,
+          1439
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": -2.857142857142857,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003277940443621723,
+          "y": -0.00013839717450141894,
+          "z": -0.000027946173836987028
+        },
+        "angle": {
+          "x": -0.000012301614468551492,
+          "y": -0.000018927959924628887,
+          "z": 0.000025610405918471484
+        }
+      },
+      {
+        "id": "n240",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1440,
+          1441,
+          1442,
+          1443,
+          1444,
+          1445
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": -2.020305089104421,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003103230000617632,
+          "y": -0.00011491567850727628,
+          "z": -3.8190384215037893e-10
+        },
+        "angle": {
+          "x": -0.000013041682401050414,
+          "y": -0.00001923450793307047,
+          "z": -0.000013439959090187687
+        }
+      },
+      {
+        "id": "n241",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1446,
+          1447,
+          1448,
+          1449,
+          1450,
+          1451
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 0,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000039330800672093,
+          "y": -0.00015345616044975166,
+          "z": -0.000010252442958642682
+        },
+        "angle": {
+          "x": 0.000052997924112766576,
+          "y": 0.00014019929590944485,
+          "z": -0.0000012407893424986349
+        }
+      },
+      {
+        "id": "n242",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1452,
+          1453,
+          1454,
+          1455,
+          1456,
+          1457
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 2.020305089104421,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000033543746398862456,
+          "y": -0.0001928978328002454,
+          "z": 0.00021414368276915957
+        },
+        "angle": {
+          "x": 0.0001167181566586548,
+          "y": -0.000013634727849057689,
+          "z": 0.00001569307837661985
+        }
+      },
+      {
+        "id": "n243",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1458,
+          1459,
+          1460,
+          1461,
+          1462,
+          1463
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 2.857142857142857,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000024087462981341363,
+          "y": -0.0002472507691377603,
+          "z": 0.00028427109285190645
+        },
+        "angle": {
+          "x": 0.0001976699461151977,
+          "y": -0.00004716639625712576,
+          "z": 0.000025160449423308965
+        }
+      },
+      {
+        "id": "n244",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1464,
+          1465,
+          1466,
+          1467,
+          1468,
+          1469
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 2.020305089104421,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000023873514483750263,
+          "y": -0.0002669445954429115,
+          "z": 0.000023562967343571394
+        },
+        "angle": {
+          "x": -0.00010807809710249479,
+          "y": -0.00017381124774883914,
+          "z": -0.00001763117928482565
+        }
+      },
+      {
+        "id": "n245",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1470,
+          1471,
+          1472,
+          1473,
+          1474,
+          1475
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 0,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000012596132453469819,
+          "y": -0.0002295199728316252,
+          "z": 0.00009646167765803602
+        },
+        "angle": {
+          "x": 0.000024759628485099922,
+          "y": 0.000146887012127811,
+          "z": -4.6057173680534823e-7
+        }
+      },
+      {
+        "id": "n246",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1476,
+          1477,
+          1478,
+          1479,
+          1480,
+          1481
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": -2.020305089104421,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000021925270630993016,
+          "y": -0.0001929700414964894,
+          "z": -0.00007648090308488506
+        },
+        "angle": {
+          "x": 0.00011534268135010457,
+          "y": -0.00007179997467249318,
+          "z": 0.00001654492815100576
+        }
+      },
+      {
+        "id": "n247",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1482,
+          1483,
+          1484,
+          1485,
+          1486,
+          1487
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 2.857142857142857,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00002829293419539778,
+          "y": -0.000289974281706574,
+          "z": 0.00010308525901317547
+        },
+        "angle": {
+          "x": 0.00004946661358206251,
+          "y": -0.000008412684907357613,
+          "z": -0.000002037983957022297
+        }
+      },
+      {
+        "id": "n248",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1488,
+          1489,
+          1490,
+          1491,
+          1492,
+          1493
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 2.020305089104421,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000009470826753194789,
+          "y": -0.0002619390847126756,
+          "z": 0.00004573262116152665
+        },
+        "angle": {
+          "x": -0.000019701714204341663,
+          "y": -0.00003552017455185159,
+          "z": -0.00002628181145726717
+        }
+      },
+      {
+        "id": "n249",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1494,
+          1495,
+          1496,
+          1497,
+          1498,
+          1499
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 0,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000006929936890827996,
+          "y": -0.00019819391830811826,
+          "z": 0.00005519227635853767
+        },
+        "angle": {
+          "x": 0.000006694258870935158,
+          "y": 0.000027095455806083433,
+          "z": -0.0000019461186217323697
+        }
+      },
+      {
+        "id": "n250",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1500,
+          1501,
+          1502,
+          1503,
+          1504,
+          1505
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": -2.020305089104421,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000016015874967003906,
+          "y": -0.00013771274417151617,
+          "z": 0.000019302910280805142
+        },
+        "angle": {
+          "x": 0.000028405450862484757,
+          "y": -0.000026429835687435394,
+          "z": 0.000022378727823922975
+        }
+      },
+      {
+        "id": "n251",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1506,
+          1507,
+          1508,
+          1509,
+          1510,
+          1511
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": -2.857142857142857,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000016837353151226688,
+          "y": -0.00011597366139864182,
+          "z": 0.00004930667599086522
+        },
+        "angle": {
+          "x": -0.00003362884774663982,
+          "y": -0.0000010151746831024029,
+          "z": -8.959953063181969e-7
+        }
+      },
+      {
+        "id": "n252",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1512,
+          1513,
+          1514,
+          1515,
+          1516,
+          1517
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": -2.020305089104421,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003792009873173635,
+          "y": -0.00014498590723890445,
+          "z": 0.000023026623221940166
+        },
+        "angle": {
+          "x": 0.00003320799828689634,
+          "y": 0.000026950390879249704,
+          "z": -0.00003108288075076128
+        }
+      },
+      {
+        "id": "n253",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1518,
+          1519,
+          1520,
+          1521,
+          1522,
+          1523
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 0,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006026090576554482,
+          "y": -0.00020802070277197468,
+          "z": 0.00007100108745162715
+        },
+        "angle": {
+          "x": 0.000014368482588104652,
+          "y": -0.000024693409718927926,
+          "z": -0.000002256439105900255
+        }
+      },
+      {
+        "id": "n254",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1524,
+          1525,
+          1526,
+          1527,
+          1528,
+          1529
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 2.020305089104421,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004676876215831201,
+          "y": -0.000267598778338154,
+          "z": 0.00007764678020281488
+        },
+        "angle": {
+          "x": -0.000004893072872457945,
+          "y": 0.000015646873768866914,
+          "z": 0.000027078514034404994
+        }
+      },
+      {
+        "id": "n255",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1530,
+          1531,
+          1532,
+          1533,
+          1534,
+          1535
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 15,
+          "y": -5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n256",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1536,
+          1537,
+          1538,
+          1539,
+          1540,
+          1541
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 10,
+          "y": -5,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n257",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1542,
+          1543,
+          1544,
+          1545,
+          1546,
+          1547
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": -5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n258",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1548,
+          1549,
+          1550,
+          1551,
+          1552,
+          1553
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": -5,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n259",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1554,
+          1555,
+          1556,
+          1557,
+          1558,
+          1559
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 10,
+          "y": -5,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n260",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1560,
+          1561,
+          1562,
+          1563,
+          1564,
+          1565
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": -5,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n261",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1566,
+          1567,
+          1568,
+          1569,
+          1570,
+          1571
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": -5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n262",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1572,
+          1573,
+          1574,
+          1575,
+          1576,
+          1577
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 7.979694910895578,
+          "y": -5,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n263",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1578,
+          1579,
+          1580,
+          1581,
+          1582,
+          1583
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 10,
+          "y": -5,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n264",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1584,
+          1585,
+          1586,
+          1587,
+          1588,
+          1589
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": -5,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n265",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1590,
+          1591,
+          1592,
+          1593,
+          1594,
+          1595
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003584681668760264,
+          "y": -0.0004843719773756862,
+          "z": 0.00013117496716117145
+        },
+        "angle": {
+          "x": 0.00006207631281397587,
+          "y": -0.000018429731307443082,
+          "z": -0.000029579574730330763
+        }
+      },
+      {
+        "id": "n266",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1596,
+          1597,
+          1598,
+          1599,
+          1600,
+          1601
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 0,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000004711751724932254,
+          "y": -0.00020449691334718933,
+          "z": 0.000028173170502484357
+        },
+        "angle": {
+          "x": 0.00002746394394935401,
+          "y": 0.00007114189138702623,
+          "z": 0.000001776418565726779
+        }
+      },
+      {
+        "id": "n267",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1602,
+          1603,
+          1604,
+          1605,
+          1606,
+          1607
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": -3.140184917367551e-16,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00012968813112580147,
+          "y": -0.00013482050017865808,
+          "z": 0.00003844406315208876
+        },
+        "angle": {
+          "x": 0.000004985950689141922,
+          "y": -0.00002431945783306384,
+          "z": 0.00004619467477349907
+        }
+      },
+      {
+        "id": "n268",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1608,
+          1609,
+          1610,
+          1611,
+          1612,
+          1613
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 2.020305089104421,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0002186767314161242,
+          "y": -0.00016324059305489498,
+          "z": 0.000038754974934882915
+        },
+        "angle": {
+          "x": -0.000010756275918588536,
+          "y": -0.000024994667939184754,
+          "z": 0.000046433734684177286
+        }
+      },
+      {
+        "id": "n269",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1614,
+          1615,
+          1616,
+          1617,
+          1618,
+          1619
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 2.857142857142857,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0004335172850991608,
+          "y": -0.00025531045151794426,
+          "z": 0.000030631266331340884
+        },
+        "angle": {
+          "x": -0.00006233072974409338,
+          "y": -0.00002262336138990217,
+          "z": 0.00004559583824626344
+        }
+      },
+      {
+        "id": "n270",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1620,
+          1621,
+          1622,
+          1623,
+          1624,
+          1625
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 2.0203050891044216,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00012726258676559139,
+          "y": -0.00032398536756697165,
+          "z": 0.000029373452669775123
+        },
+        "angle": {
+          "x": 0.000031727538335933614,
+          "y": 0.0006725585978967069,
+          "z": 0.00029138026112696
+        }
+      },
+      {
+        "id": "n271",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1626,
+          1627,
+          1628,
+          1629,
+          1630,
+          1631
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 3.140184917367551e-16,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -4.0620357691023794e-7,
+          "y": -0.00028367836697786963,
+          "z": 0.000005946031384634442
+        },
+        "angle": {
+          "x": 0.000003477002774285837,
+          "y": -0.000020929068497656324,
+          "z": 0.00004619583348750132
+        }
+      },
+      {
+        "id": "n272",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1632,
+          1633,
+          1634,
+          1635,
+          1636,
+          1637
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": -2.020305089104421,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00009142166023425876,
+          "y": -0.00025468761916738346,
+          "z": 0.000011664977521954543
+        },
+        "angle": {
+          "x": -0.000013398776332537023,
+          "y": -0.0003229278258382475,
+          "z": 0.0001529679820633718
+        }
+      },
+      {
+        "id": "n273",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1638,
+          1639,
+          1640,
+          1641,
+          1642,
+          1643
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": -2.857142857142857,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00031310967883308556,
+          "y": -0.00016922149614591225,
+          "z": 0.000022276170134976123
+        },
+        "angle": {
+          "x": -0.00006111222602144152,
+          "y": -0.000022625377540467274,
+          "z": 0.000046794500894386935
+        }
+      },
+      {
+        "id": "n274",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1644,
+          1645,
+          1646,
+          1647,
+          1648,
+          1649
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": -2.0203050891044216,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 3.415509227903148e-9,
+          "y": -0.00009944559402160996,
+          "z": 0.000021465409029849625
+        },
+        "angle": {
+          "x": 0.000020137442323624184,
+          "y": 0.0004939242529760643,
+          "z": 0.00022942189526765048
+        }
+      },
+      {
+        "id": "n275",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1650,
+          1651,
+          1652,
+          1653,
+          1654,
+          1655
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 5,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000879370545149805,
+          "y": -0.0004049519485009814,
+          "z": 0.00006334689477196979
+        },
+        "angle": {
+          "x": -0.000020854137622168372,
+          "y": -0.000021151722795393922,
+          "z": 0.000029059409555214633
+        }
+      },
+      {
+        "id": "n276",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1656,
+          1657,
+          1658,
+          1659,
+          1660,
+          1661
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003538736371829912,
+          "y": -0.00023425085437174,
+          "z": 0.00009575623127148759
+        },
+        "angle": {
+          "x": 0.000034151956604264835,
+          "y": -0.00001913026451194762,
+          "z": 0.000022193435210730087
+        }
+      },
+      {
+        "id": "n277",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1662,
+          1663,
+          1664,
+          1665,
+          1666,
+          1667
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 5,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00005810772869957552,
+          "y": -0.00042671159577183554,
+          "z": 0.00008871934881499668
+        },
+        "angle": {
+          "x": -0.00044754719517782124,
+          "y": -0.000016344962597576543,
+          "z": 0.00019073781782228378
+        }
+      },
+      {
+        "id": "n278",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1668,
+          1669,
+          1670,
+          1671,
+          1672,
+          1673
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 5,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006917912395372984,
+          "y": -0.0005008701808308405,
+          "z": 0.0000629199516471909
+        },
+        "angle": {
+          "x": 0.000035781432303650866,
+          "y": -0.000013791382888448881,
+          "z": 0.000018092955264108334
+        }
+      },
+      {
+        "id": "n279",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1674,
+          1675,
+          1676,
+          1677,
+          1678,
+          1679
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 5,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00005720964640511519,
+          "y": -0.0005176122560881496,
+          "z": 0.00003858988730646177
+        },
+        "angle": {
+          "x": -5.341664649755933e-7,
+          "y": -0.000015252191263700166,
+          "z": 0.000006722106070164758
+        }
+      },
+      {
+        "id": "n280",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1680,
+          1681,
+          1682,
+          1683,
+          1684,
+          1685
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003768883436354751,
+          "y": -0.0005539380431962466,
+          "z": 0.00003097375688782827
+        },
+        "angle": {
+          "x": 0.000029641875638192603,
+          "y": -0.000018792386860789323,
+          "z": 0.000017684689801302475
+        }
+      },
+      {
+        "id": "n281",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1686,
+          1687,
+          1688,
+          1689,
+          1690,
+          1691
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895578,
+          "y": 5,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000016968707502432353,
+          "y": -0.0003922218329860934,
+          "z": 0.00003799125384968147
+        },
+        "angle": {
+          "x": -0.00022705358980573722,
+          "y": -0.000014099463886187384,
+          "z": 0.00010948920648706981
+        }
+      },
+      {
+        "id": "n282",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1692,
+          1693,
+          1694,
+          1695,
+          1696,
+          1697
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 5,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000004432052956150433,
+          "y": -0.00032117783779158054,
+          "z": 0.00006141444853393557
+        },
+        "angle": {
+          "x": 0.000025521089478793012,
+          "y": -0.000013700472893365745,
+          "z": 0.000020904211873060642
+        }
+      },
+      {
+        "id": "n283",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1698,
+          1699,
+          1700,
+          1701,
+          1702,
+          1703
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 5,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000016056013218014973,
+          "y": -0.00029592202674564254,
+          "z": 0.00008665742286099934
+        },
+        "angle": {
+          "x": -0.00011946878789930754,
+          "y": -0.000016933005574339735,
+          "z": -0.0000316415613415898
+        }
+      },
+      {
+        "id": "n284",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1704,
+          1705,
+          1706,
+          1707,
+          1708,
+          1709
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 2.857142857142857,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000006309596828643215,
+          "y": -0.00024300314173019474,
+          "z": 0.000040034699221945064
+        },
+        "angle": {
+          "x": -0.00006805229259113782,
+          "y": -0.00003525862130238873,
+          "z": -0.00002574489474586592
+        }
+      },
+      {
+        "id": "n285",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1710,
+          1711,
+          1712,
+          1713,
+          1714,
+          1715
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 2.020305089104421,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00001455015798775472,
+          "y": -0.0001875165525972773,
+          "z": 0.00002575022830156431
+        },
+        "angle": {
+          "x": -0.00005689538597881,
+          "y": -0.00003063731246669033,
+          "z": -0.000016039599603709928
+        }
+      },
+      {
+        "id": "n286",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1716,
+          1717,
+          1718,
+          1719,
+          1720,
+          1721
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 0,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000024135154937984177,
+          "y": -0.00014666886113608334,
+          "z": 0.00011505785308699584
+        },
+        "angle": {
+          "x": 0.000006372803157911041,
+          "y": 0.00012210567136339365,
+          "z": -0.0000016555621888119539
+        }
+      },
+      {
+        "id": "n287",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1722,
+          1723,
+          1724,
+          1725,
+          1726,
+          1727
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": -2.020305089104421,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00002243803121390215,
+          "y": -0.00011001830568038454,
+          "z": 1.192322947261108e-10
+        },
+        "angle": {
+          "x": 0.00014637032283776346,
+          "y": -0.00021587797031547866,
+          "z": 0.000010460771943821983
+        }
+      },
+      {
+        "id": "n288",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1728,
+          1729,
+          1730,
+          1731,
+          1732,
+          1733
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": -2.857142857142857,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000025142254210945176,
+          "y": -0.0001371802773928798,
+          "z": 0.0003136514870890483
+        },
+        "angle": {
+          "x": -0.00026447078451436444,
+          "y": -0.000045702144945318386,
+          "z": -0.000026696435428618095
+        }
+      },
+      {
+        "id": "n289",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1734,
+          1735,
+          1736,
+          1737,
+          1738,
+          1739
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": -2.020305089104421,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000011684400038958445,
+          "y": -0.00019392555343054923,
+          "z": 0.00018466431694267758
+        },
+        "angle": {
+          "x": 0.00004293888831047127,
+          "y": 0.00008163154800894918,
+          "z": -0.000018509383088119185
+        }
+      },
+      {
+        "id": "n290",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1740,
+          1741,
+          1742,
+          1743,
+          1744,
+          1745
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 0,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 6.336011827276576e-7,
+          "y": -0.00023005099809944403,
+          "z": 0.00020310183405763821
+        },
+        "angle": {
+          "x": -0.000004070538064140373,
+          "y": -0.00003185964789718911,
+          "z": -5.117559040890173e-7
+        }
+      },
+      {
+        "id": "n291",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1746,
+          1747,
+          1748,
+          1749,
+          1750,
+          1751
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 2.020305089104421,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000008816241575525404,
+          "y": -0.0002643673922658053,
+          "z": 0.00016821662437267894
+        },
+        "angle": {
+          "x": 0.000010879812179231977,
+          "y": -0.00006795342073647346,
+          "z": 0.000015971373174414587
+        }
+      },
+      {
+        "id": "n292",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1752,
+          1753,
+          1754,
+          1755,
+          1756,
+          1757
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 5,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006323839916615727,
+          "y": -0.0004937684431737894,
+          "z": 0.00008623044530021373
+        },
+        "angle": {
+          "x": 0.000022517455097408802,
+          "y": -0.000016491359994011616,
+          "z": 0.000005904256161775516
+        }
+      },
+      {
+        "id": "n293",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1758,
+          1759,
+          1760,
+          1761,
+          1762,
+          1763
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 5,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008140015576935698,
+          "y": -0.00048146402358873955,
+          "z": 0.00007933533185844625
+        },
+        "angle": {
+          "x": -0.000102793444344181,
+          "y": -0.000014765792367354315,
+          "z": -0.000038689055473417264
+        }
+      },
+      {
+        "id": "n294",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1764,
+          1765,
+          1766,
+          1767,
+          1768,
+          1769
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 5,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007865886903553092,
+          "y": -0.00030519036920227145,
+          "z": 0.00002611066514947959
+        },
+        "angle": {
+          "x": 0.0005666420705545394,
+          "y": -0.000016619129401030115,
+          "z": -0.00027091376382573954
+        }
+      },
+      {
+        "id": "n295",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1770,
+          1771,
+          1772,
+          1773,
+          1774,
+          1775
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 5,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006015531138062273,
+          "y": 0.0000930918979792301,
+          "z": 0.000018063808374805208
+        },
+        "angle": {
+          "x": 0.00002540047352249191,
+          "y": -0.00001734843941716958,
+          "z": -0.00007824174302496337
+        }
+      },
+      {
+        "id": "n296",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1776,
+          1777,
+          1778,
+          1779,
+          1780,
+          1781
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895578,
+          "y": 5,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004058820875684951,
+          "y": -0.000402817097785739,
+          "z": 0.000025180395335908916
+        },
+        "angle": {
+          "x": -0.0007481013848553858,
+          "y": -0.000016600028415922932,
+          "z": -0.0003504016532796473
+        }
+      },
+      {
+        "id": "n297",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1782,
+          1783,
+          1784,
+          1785,
+          1786,
+          1787
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 5,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000044900128002908796,
+          "y": -0.0005735500522148406,
+          "z": 0.00007932765346117992
+        },
+        "angle": {
+          "x": -0.0004543264722131744,
+          "y": -0.000014995614028790763,
+          "z": 0.00017478324423513998
+        }
+      },
+      {
+        "id": "n298",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1788,
+          1789,
+          1790,
+          1791,
+          1792,
+          1793
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 15,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00021982768237303313,
+          "y": -0.0008425590830284763,
+          "z": 0.0004636514589937094
+        },
+        "angle": {
+          "x": 0.00010772451029709513,
+          "y": -0.00005242864125813524,
+          "z": -0.00003777942899818154
+        }
+      },
+      {
+        "id": "n299",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1794,
+          1795,
+          1796,
+          1797,
+          1798,
+          1799
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 10,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00023390960089840287,
+          "y": -0.0005864973226976212,
+          "z": 0.0002132593982088309
+        },
+        "angle": {
+          "x": 0.00002197492223300402,
+          "y": -0.0001254310237509191,
+          "z": -0.000008270260114853348
+        }
+      },
+      {
+        "id": "n300",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1800,
+          1801,
+          1802,
+          1803,
+          1804,
+          1805
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 10,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006310932705165364,
+          "y": -0.0005835689423512979,
+          "z": 0.00026573616533361933
+        },
+        "angle": {
+          "x": 0.000020588807362944058,
+          "y": -0.000049701092140507115,
+          "z": -0.0000167815917797065
+        }
+      },
+      {
+        "id": "n301",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1806,
+          1807,
+          1808,
+          1809,
+          1810,
+          1811
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 10,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00029381756628914246,
+          "y": -0.000592405330245218,
+          "z": 0.00025773580396867623
+        },
+        "angle": {
+          "x": 0.000022815625176954087,
+          "y": 0.00018182059055480465,
+          "z": -0.00007485252457663576
+        }
+      },
+      {
+        "id": "n302",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1812,
+          1813,
+          1814,
+          1815,
+          1816,
+          1817
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 12.020305089104422,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00031883361904270986,
+          "y": -0.0005880085608938011,
+          "z": 0.0002856829482679299
+        },
+        "angle": {
+          "x": 0.000006367103893204723,
+          "y": -0.0002640536387277058,
+          "z": 0.00008278861133544996
+        }
+      },
+      {
+        "id": "n303",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1818,
+          1819,
+          1820,
+          1821,
+          1822,
+          1823
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 12.857142857142858,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000379221549052502,
+          "y": -0.0006421476780053697,
+          "z": 0.00028990550040291726
+        },
+        "angle": {
+          "x": -0.000026923481397934122,
+          "y": 0.000038955663766405686,
+          "z": -0.00002434051618267696
+        }
+      },
+      {
+        "id": "n304",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1824,
+          1825,
+          1826,
+          1827,
+          1828,
+          1829
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 12.020305089104422,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00016143214702775223,
+          "y": -0.0006657971048075828,
+          "z": 0.00028049045798826335
+        },
+        "angle": {
+          "x": 0.00005162253764374955,
+          "y": -0.0002225330763838026,
+          "z": -0.00011678990569871546
+        }
+      },
+      {
+        "id": "n305",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1830,
+          1831,
+          1832,
+          1833,
+          1834,
+          1835
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 10,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007122301330940893,
+          "y": -0.0006244409767941992,
+          "z": 0.0002207908869975163
+        },
+        "angle": {
+          "x": 0.000022021320989507423,
+          "y": -0.00010391311628899123,
+          "z": -0.00007485088634251261
+        }
+      },
+      {
+        "id": "n306",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1836,
+          1837,
+          1838,
+          1839,
+          1840,
+          1841
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 7.979694910895579,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00019290305791068362,
+          "y": -0.0006220918605138521,
+          "z": 0.0001968827859885533
+        },
+        "angle": {
+          "x": 0.000004921931284680269,
+          "y": 0.00040613679076157534,
+          "z": -0.0002551813689521424
+        }
+      },
+      {
+        "id": "n307",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1842,
+          1843,
+          1844,
+          1845,
+          1846,
+          1847
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 7.142857142857142,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0008305645169097449,
+          "y": -0.0005889238043815715,
+          "z": 0.00019795412409186362
+        },
+        "angle": {
+          "x": -0.000019444489616720023,
+          "y": 0.00003895286872323883,
+          "z": -0.00012536288036261092
+        }
+      },
+      {
+        "id": "n308",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1848,
+          1849,
+          1850,
+          1851,
+          1852,
+          1853
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 7.979694910895578,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000035507463995657865,
+          "y": -0.0005664331988753517,
+          "z": 0.00020783895564607035
+        },
+        "angle": {
+          "x": 0.00003390649205731893,
+          "y": -0.0014552389953954566,
+          "z": -0.0006536400028329153
+        }
+      },
+      {
+        "id": "n309",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1854,
+          1855,
+          1856,
+          1857,
+          1858,
+          1859
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 15,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0003696984417771028,
+          "y": -0.0007057898553687936,
+          "z": 0.00026930538565038165
+        },
+        "angle": {
+          "x": -0.000032692278818780616,
+          "y": -0.00006672719240073753,
+          "z": -0.00006887601662928116
+        }
+      },
+      {
+        "id": "n310",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1860,
+          1861,
+          1862,
+          1863,
+          1864,
+          1865
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 15,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00005739193902993269,
+          "y": -0.0006118358199061613,
+          "z": 0.00021379166584202495
+        },
+        "angle": {
+          "x": 0.00004229847309850256,
+          "y": -0.00004613093875139562,
+          "z": -0.0000036978512227522026
+        }
+      },
+      {
+        "id": "n311",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1866,
+          1867,
+          1868,
+          1869,
+          1870,
+          1871
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 15,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00019410110287317454,
+          "y": -0.0009527221489779404,
+          "z": 0.0003686807938145633
+        },
+        "angle": {
+          "x": -0.00003819749268361681,
+          "y": -0.00005356539137780728,
+          "z": 0.000003555227235018894
+        }
+      },
+      {
+        "id": "n312",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1872,
+          1873,
+          1874,
+          1875,
+          1876,
+          1877
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 15,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001375691342109606,
+          "y": -0.0008958673718657578,
+          "z": 0.00034338002619690473
+        },
+        "angle": {
+          "x": 0.0002001563661372329,
+          "y": -0.000054703617086452684,
+          "z": -0.00008071546297106829
+        }
+      },
+      {
+        "id": "n313",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1878,
+          1879,
+          1880,
+          1881,
+          1882,
+          1883
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 15,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00009770208221706908,
+          "y": -0.0008723172023193636,
+          "z": 0.00024481737511903884
+        },
+        "angle": {
+          "x": 0.00023103846505445058,
+          "y": -0.00005666511035597421,
+          "z": -0.0000916341785317433
+        }
+      },
+      {
+        "id": "n314",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1884,
+          1885,
+          1886,
+          1887,
+          1888,
+          1889
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 15,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001397251658303673,
+          "y": -0.00046208332886393377,
+          "z": 0.00014439489885166264
+        },
+        "angle": {
+          "x": -0.0013518944240934316,
+          "y": -0.00005710610003933197,
+          "z": -0.0006512854803953567
+        }
+      },
+      {
+        "id": "n315",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1890,
+          1891,
+          1892,
+          1893,
+          1894,
+          1895
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 15,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00018886450906078215,
+          "y": 0.0005283085417848397,
+          "z": 0.00011610649510709923
+        },
+        "angle": {
+          "x": -0.00003819771023250261,
+          "y": -0.000050595624380421354,
+          "z": -0.00018682346886082703
+        }
+      },
+      {
+        "id": "n316",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1896,
+          1897,
+          1898,
+          1899,
+          1900,
+          1901
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895578,
+          "y": 15,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00024712830641943073,
+          "y": -0.0006164247427628716,
+          "z": 0.0001392495714456796
+        },
+        "angle": {
+          "x": 0.001759455724348646,
+          "y": -0.000061018771191792816,
+          "z": -0.0008223896729819549
+        }
+      },
+      {
+        "id": "n317",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1902,
+          1903,
+          1904,
+          1905,
+          1906,
+          1907
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 15,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00029325501053859514,
+          "y": -0.0010905877584625827,
+          "z": 0.00024262706421171906
+        },
+        "angle": {
+          "x": -0.00030743250872196685,
+          "y": -0.00005762378938212148,
+          "z": -0.00009163391751762409
+        }
+      },
+      {
+        "id": "n318",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1908,
+          1909,
+          1910,
+          1911,
+          1912,
+          1913
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 15,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00025347524327740074,
+          "y": -0.0010502080646226785,
+          "z": 0.00034390052685919555
+        },
+        "angle": {
+          "x": 0.0006377404902532854,
+          "y": -0.00005747813117675887,
+          "z": 0.00024253524712246932
+        }
+      },
+      {
+        "id": "n319",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1914,
+          1915,
+          1916,
+          1917,
+          1918,
+          1919
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 7.142857142857142,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00018872052970337038,
+          "y": -0.0005129683640301875,
+          "z": 0.00007217466073161401
+        },
+        "angle": {
+          "x": -0.00001922670388416572,
+          "y": -0.00001272080220569545,
+          "z": 0.000001934906146705298
+        }
+      },
+      {
+        "id": "n320",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1920,
+          1921,
+          1922,
+          1923,
+          1924,
+          1925
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 7.979694910895579,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00019900426145708715,
+          "y": -0.0005273005232182142,
+          "z": 0.00008178490665998356
+        },
+        "angle": {
+          "x": 0.00000910073338430604,
+          "y": -9.87161977589465e-7,
+          "z": -0.000021674385459252715
+        }
+      },
+      {
+        "id": "n321",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1926,
+          1927,
+          1928,
+          1929,
+          1930,
+          1931
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 10,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002279352161008015,
+          "y": -0.0005568944520036451,
+          "z": 0.00010099737552772076
+        },
+        "angle": {
+          "x": -0.000048970400103746196,
+          "y": -0.00014118349456647322,
+          "z": -0.000010609369311616007
+        }
+      },
+      {
+        "id": "n322",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1932,
+          1933,
+          1934,
+          1935,
+          1936,
+          1937
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 12.020305089104422,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00024169966297741478,
+          "y": -0.0005689374881300679,
+          "z": -0.00011608557154739894
+        },
+        "angle": {
+          "x": -0.00008575136639582953,
+          "y": -0.0000523868460096817,
+          "z": 7.828461038244516e-7
+        }
+      },
+      {
+        "id": "n323",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1938,
+          1939,
+          1940,
+          1941,
+          1942,
+          1943
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 12.857142857142858,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00024371134531625963,
+          "y": -0.0005784623235768173,
+          "z": -0.0002936822942970435
+        },
+        "angle": {
+          "x": -0.00042014493789460514,
+          "y": 0.00008612402354866064,
+          "z": 0.0000018736417924340922
+        }
+      },
+      {
+        "id": "n324",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1944,
+          1945,
+          1946,
+          1947,
+          1948,
+          1949
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 12.020305089104422,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00023108351478985222,
+          "y": -0.0005615727257279353,
+          "z": 0.00023190763036569874
+        },
+        "angle": {
+          "x": 0.0002627274895716885,
+          "y": 0.00036897890372930976,
+          "z": -0.000025297711909087906
+        }
+      },
+      {
+        "id": "n325",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1950,
+          1951,
+          1952,
+          1953,
+          1954,
+          1955
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 10,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002001463689799443,
+          "y": -0.0005326947098686783,
+          "z": 0.000009893676152043306
+        },
+        "angle": {
+          "x": 0.00004987425985293081,
+          "y": -0.00014489384910220188,
+          "z": -0.000009563542583414106
+        }
+      },
+      {
+        "id": "n326",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1956,
+          1957,
+          1958,
+          1959,
+          1960,
+          1961
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 7.979694910895579,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00019013168378805289,
+          "y": -0.0005225712899394678,
+          "z": 0.000030385116697416807
+        },
+        "angle": {
+          "x": -0.0000019009937804021469,
+          "y": -0.000019897354037491113,
+          "z": 0.0000018008165871455892
+        }
+      },
+      {
+        "id": "n327",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1962,
+          1963,
+          1964,
+          1965,
+          1966,
+          1967
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 12.857142857142858,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00005258677961774908,
+          "y": -0.0005607095424342407,
+          "z": 0.000017440773593062116
+        },
+        "angle": {
+          "x": -0.00008581213303580684,
+          "y": -0.00003271772045154993,
+          "z": -0.000007352557291733711
+        }
+      },
+      {
+        "id": "n328",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1968,
+          1969,
+          1970,
+          1971,
+          1972,
+          1973
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 12.020305089104422,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000032291040036215675,
+          "y": -0.0005353017584730209,
+          "z": 0.000024282851407918288
+        },
+        "angle": {
+          "x": 0.00008214737287328302,
+          "y": 0.00003853286016266602,
+          "z": -0.000019554421001687426
+        }
+      },
+      {
+        "id": "n329",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1974,
+          1975,
+          1976,
+          1977,
+          1978,
+          1979
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 10,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000014009338621416412,
+          "y": -0.0005000057563145988,
+          "z": -0.00010770782241373904
+        },
+        "angle": {
+          "x": 0.000010214051912592224,
+          "y": -0.0001320351650228213,
+          "z": -0.0000044774164331866635
+        }
+      },
+      {
+        "id": "n330",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1980,
+          1981,
+          1982,
+          1983,
+          1984,
+          1985
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 7.979694910895579,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000013936114523755166,
+          "y": -0.00047251696068645457,
+          "z": -0.00001871437239750452
+        },
+        "angle": {
+          "x": -0.00006592131430764266,
+          "y": 0.00005486591900509714,
+          "z": 0.000010101120253176527
+        }
+      },
+      {
+        "id": "n331",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1986,
+          1987,
+          1988,
+          1989,
+          1990,
+          1991
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 7.142857142857142,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000018741482707667443,
+          "y": -0.0004705368625686663,
+          "z": -0.00007540980025659504
+        },
+        "angle": {
+          "x": 0.00012585890577569044,
+          "y": -0.000023818472081412303,
+          "z": -0.000007033763133059795
+        }
+      },
+      {
+        "id": "n332",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1992,
+          1993,
+          1994,
+          1995,
+          1996,
+          1997
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 7.979694910895579,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003445526011673753,
+          "y": -0.0005002118392073703,
+          "z": 0.0000785418295830239
+        },
+        "angle": {
+          "x": -0.00005843680506987578,
+          "y": -0.0001009099578598612,
+          "z": -0.000022795198762793104
+        }
+      },
+      {
+        "id": "n333",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1998,
+          1999,
+          2000,
+          2001,
+          2002,
+          2003
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 10,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000567128322569365,
+          "y": -0.0005386420762971572,
+          "z": 0.000045161534940223164
+        },
+        "angle": {
+          "x": 0.000018787550888435006,
+          "y": 0.00008510557473888156,
+          "z": -0.0000061774407889593
+        }
+      },
+      {
+        "id": "n334",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2004,
+          2005,
+          2006,
+          2007,
+          2008,
+          2009
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 12.020305089104422,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006155148132966197,
+          "y": -0.000564191554589841,
+          "z": 0.0001542204150273641
+        },
+        "angle": {
+          "x": 0.00009831262532620251,
+          "y": -0.00010730530101929897,
+          "z": 0.000006399138825168652
+        }
+      },
+      {
+        "id": "n335",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2010,
+          2011,
+          2012,
+          2013,
+          2014,
+          2015
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 5,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000013563272616266169,
+          "y": -0.0002915804414212042,
+          "z": 0.0000886080726013408
+        },
+        "angle": {
+          "x": 0.000438835430669625,
+          "y": -0.000016371433619360954,
+          "z": 0.00016655453226170256
+        }
+      },
+      {
+        "id": "n336",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2016,
+          2017,
+          2018,
+          2019,
+          2020,
+          2021
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 5,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000015153131920358276,
+          "y": -0.0003904149842352231,
+          "z": 0.000037195188522696964
+        },
+        "angle": {
+          "x": -0.00026698364097351145,
+          "y": -0.000014708905740864355,
+          "z": 0.00012327123296233927
+        }
+      },
+      {
+        "id": "n337",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2022,
+          2023,
+          2024,
+          2025,
+          2026,
+          2027
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895578,
+          "y": 5,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00005979433136347713,
+          "y": -0.0005112816467795748,
+          "z": 0.00003819391052839749
+        },
+        "angle": {
+          "x": 0.0003825991323923151,
+          "y": -0.000013832763630020512,
+          "z": 0.00014100512729710096
+        }
+      },
+      {
+        "id": "n338",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2028,
+          2029,
+          2030,
+          2031,
+          2032,
+          2033
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 15,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00005553915727910518,
+          "y": -0.0008343481775937883,
+          "z": 0.00046060635564809833
+        },
+        "angle": {
+          "x": 0.00008295628966175865,
+          "y": -0.00007976081206447368,
+          "z": -0.000025830872453518052
+        }
+      },
+      {
+        "id": "n339",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2034,
+          2035,
+          2036,
+          2037,
+          2038,
+          2039
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 10,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000926703763026376,
+          "y": -0.0006300580215530268,
+          "z": 0.00032854634779007287
+        },
+        "angle": {
+          "x": -0.0000014257384461370828,
+          "y": -0.000056660621434342376,
+          "z": -0.00002576436357753169
+        }
+      },
+      {
+        "id": "n340",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2040,
+          2041,
+          2042,
+          2043,
+          2044,
+          2045
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 10,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00026154923892616745,
+          "y": -0.0006326612352275339,
+          "z": 0.0003031882369770373
+        },
+        "angle": {
+          "x": 0.00002360315237775791,
+          "y": 0.0001350817079176443,
+          "z": -0.000039262708003580186
+        }
+      },
+      {
+        "id": "n341",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2046,
+          2047,
+          2048,
+          2049,
+          2050,
+          2051
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 12.020305089104422,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002414400661003201,
+          "y": -0.000631223514089413,
+          "z": 0.00033098469045702694
+        },
+        "angle": {
+          "x": 0.000005667920458077522,
+          "y": -0.0005460645875085242,
+          "z": 0.000201558829282708
+        }
+      },
+      {
+        "id": "n342",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2052,
+          2053,
+          2054,
+          2055,
+          2056,
+          2057
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 12.857142857142858,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00019289237245293986,
+          "y": -0.0006676445418333994,
+          "z": 0.00033328656583108036
+        },
+        "angle": {
+          "x": -0.00001718004950122717,
+          "y": 0.00006142584585258233,
+          "z": -0.000013221453902701847
+        }
+      },
+      {
+        "id": "n343",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2058,
+          2059,
+          2060,
+          2061,
+          2062,
+          2063
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 12.020305089104422,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000006757619227097944,
+          "y": -0.0006829806027256602,
+          "z": 0.0003226741021068476
+        },
+        "angle": {
+          "x": 0.00004374904165549116,
+          "y": -0.0004160276162515276,
+          "z": -0.0001820266671900749
+        }
+      },
+      {
+        "id": "n344",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2064,
+          2065,
+          2066,
+          2067,
+          2068,
+          2069
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 10,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000089455887642427,
+          "y": -0.0006411638171703244,
+          "z": 0.0002709114987600755
+        },
+        "angle": {
+          "x": 0.000021560779245926327,
+          "y": -0.000012230771771295687,
+          "z": -0.00003926335615478441
+        }
+      },
+      {
+        "id": "n345",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2070,
+          2071,
+          2072,
+          2073,
+          2074,
+          2075
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 7.979694910895579,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00019262448040632997,
+          "y": -0.0006373507030173685,
+          "z": 0.0002409788825350511
+        },
+        "angle": {
+          "x": 0.000011270990865487376,
+          "y": 0.000033560215371160194,
+          "z": -0.000055452439048437306
+        }
+      },
+      {
+        "id": "n346",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2076,
+          2077,
+          2078,
+          2079,
+          2080,
+          2081
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 7.142857142857142,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000441691993903247,
+          "y": -0.0006110124386712345,
+          "z": 0.00023702169097428367
+        },
+        "angle": {
+          "x": -0.00001125790612162448,
+          "y": 0.00006142673483862634,
+          "z": -0.00006530429167548948
+        }
+      },
+      {
+        "id": "n347",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2082,
+          2083,
+          2084,
+          2085,
+          2086,
+          2087
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 7.979694910895578,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000055575264462026675,
+          "y": -0.0006000847788014754,
+          "z": 0.000248183980743071
+        },
+        "angle": {
+          "x": 0.00004072968431446498,
+          "y": -0.000594956744057204,
+          "z": -0.00029737054195432547
+        }
+      },
+      {
+        "id": "n348",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2088,
+          2089,
+          2090,
+          2091,
+          2092,
+          2093
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 15,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00025128978879236993,
+          "y": -0.0007225181740969465,
+          "z": 0.00014469033345444407
+        },
+        "angle": {
+          "x": 0.00015054747698363893,
+          "y": -0.00004580943826988264,
+          "z": 0.0000661438161349453
+        }
+      },
+      {
+        "id": "n349",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2094,
+          2095,
+          2096,
+          2097,
+          2098,
+          2099
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 15,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00010150467367387864,
+          "y": -0.0010906206965717246,
+          "z": 0.0003148820706398045
+        },
+        "angle": {
+          "x": 0.00003168577962652624,
+          "y": -0.000056802896443766646,
+          "z": -0.000046381574465745754
+        }
+      },
+      {
+        "id": "n350",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2100,
+          2101,
+          2102,
+          2103,
+          2104,
+          2105
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 15,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00016713146513738767,
+          "y": -0.0008895997132790697,
+          "z": 0.00028929629928547566
+        },
+        "angle": {
+          "x": 0.0004316114644457834,
+          "y": -0.00006514098007095861,
+          "z": -0.0001877758512313394
+        }
+      },
+      {
+        "id": "n351",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2106,
+          2107,
+          2108,
+          2109,
+          2110,
+          2111
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 15,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0002107932557133049,
+          "y": -0.0008063362328364339,
+          "z": 0.00018178473343684128
+        },
+        "angle": {
+          "x": 0.000014846404062505722,
+          "y": -0.00005732517763137583,
+          "z": -0.00004042658640811855
+        }
+      },
+      {
+        "id": "n352",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2112,
+          2113,
+          2114,
+          2115,
+          2116,
+          2117
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 15,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00016895245192304517,
+          "y": -0.0006982246681992411,
+          "z": 0.00008566976479460176
+        },
+        "angle": {
+          "x": -0.0003775785718708231,
+          "y": -0.000052817150243088755,
+          "z": -0.0001791703243958961
+        }
+      },
+      {
+        "id": "n353",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2118,
+          2119,
+          2120,
+          2121,
+          2122,
+          2123
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 15,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011043337490300333,
+          "y": -0.00043721472540235164,
+          "z": 0.00006214260414898995
+        },
+        "angle": {
+          "x": 0.00003168925933665736,
+          "y": -0.000053805281770766994,
+          "z": -0.00003447322341230205
+        }
+      },
+      {
+        "id": "n354",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2124,
+          2125,
+          2126,
+          2127,
+          2128,
+          2129
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895578,
+          "y": 15,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00005178746352205838,
+          "y": -0.000570184468290334,
+          "z": 0.00008745067542340644
+        },
+        "angle": {
+          "x": 0.0002495909989107689,
+          "y": -0.0000555345319963373,
+          "z": -0.00011151409394866142
+        }
+      },
+      {
+        "id": "n355",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2130,
+          2131,
+          2132,
+          2133,
+          2134,
+          2135
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 15,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000006901918802754171,
+          "y": -0.0006252652505843585,
+          "z": 0.00018418825757339136
+        },
+        "angle": {
+          "x": 0.00004852822988311827,
+          "y": -0.00005582444238576844,
+          "z": -0.000040428545661617324
+        }
+      },
+      {
+        "id": "n356",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2136,
+          2137,
+          2138,
+          2139,
+          2140,
+          2141
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 15,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004510790314190789,
+          "y": -0.0007615665586761458,
+          "z": 0.00028559551606105975
+        },
+        "angle": {
+          "x": -0.00030870161221614446,
+          "y": -0.00005902082750788869,
+          "z": -0.00016672753302264488
+        }
+      },
+      {
+        "id": "n357",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2142,
+          2143,
+          2144,
+          2145,
+          2146,
+          2147
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 12.857142857142858,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00012815404193969112,
+          "y": -0.0005775572710433536,
+          "z": 8.041043826487867e-7
+        },
+        "angle": {
+          "x": 0.00009415862641537765,
+          "y": 0.00006600360896159022,
+          "z": -0.00002019100443188693
+        }
+      },
+      {
+        "id": "n358",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2148,
+          2149,
+          2150,
+          2151,
+          2152,
+          2153
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 12.020305089104422,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000140162967181159,
+          "y": -0.000529541806396662,
+          "z": 0.00005535621521919992
+        },
+        "angle": {
+          "x": 0.00015015802440689855,
+          "y": 0.00008919955990626286,
+          "z": -0.000018733613425134122
+        }
+      },
+      {
+        "id": "n359",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2154,
+          2155,
+          2156,
+          2157,
+          2158,
+          2159
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 10,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00015716905613392382,
+          "y": -0.0005066743360777502,
+          "z": -0.00017336333257565793
+        },
+        "angle": {
+          "x": 0.000023976394283489608,
+          "y": -0.00021543001142659902,
+          "z": -0.0000023785057370105207
+        }
+      },
+      {
+        "id": "n360",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2160,
+          2161,
+          2162,
+          2163,
+          2164,
+          2165
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 7.979694910895579,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001523330663820781,
+          "y": -0.0004908338240579463,
+          "z": -0.000041522775047176964
+        },
+        "angle": {
+          "x": -0.00011246185747767855,
+          "y": 0.0001139603441321396,
+          "z": 0.000009133335706607062
+        }
+      },
+      {
+        "id": "n361",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2166,
+          2167,
+          2168,
+          2169,
+          2170,
+          2171
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 7.142857142857142,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00015480171266638588,
+          "y": -0.0005076103329206046,
+          "z": -0.000177645350252328
+        },
+        "angle": {
+          "x": 0.00028462197053148985,
+          "y": -0.00005051700297110626,
+          "z": -0.000019640170657686697
+        }
+      },
+      {
+        "id": "n362",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2172,
+          2173,
+          2174,
+          2175,
+          2176,
+          2177
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 7.979694910895579,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00014101260738733496,
+          "y": -0.0005562328792963974,
+          "z": 0.00016259715030019306
+        },
+        "angle": {
+          "x": -0.0004272739414570871,
+          "y": -0.0003453944662649244,
+          "z": -0.000021998802982897868
+        }
+      },
+      {
+        "id": "n363",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2178,
+          2179,
+          2180,
+          2181,
+          2182,
+          2183
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 10,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011858483213511409,
+          "y": -0.0005774502325725295,
+          "z": -0.0004115878776665822
+        },
+        "angle": {
+          "x": -0.00009254462564956888,
+          "y": 0.0004627142540293243,
+          "z": -0.000003083641335070576
+        }
+      },
+      {
+        "id": "n364",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2184,
+          2185,
+          2186,
+          2187,
+          2188,
+          2189
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 12.020305089104422,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00012755409133607663,
+          "y": -0.0005923178849666901,
+          "z": -0.00021133896886671994
+        },
+        "angle": {
+          "x": 0.000067143949418082,
+          "y": 0.0000771937043773644,
+          "z": 0.000013941623935023956
+        }
+      }
+    ],
+    "edges": [
+      {
+        "id": "e0",
+        "source": 4,
+        "target": 5,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1",
+        "source": 5,
+        "target": 6,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e2",
+        "source": 6,
+        "target": 7,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e3",
+        "source": 7,
+        "target": 8,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e4",
+        "source": 8,
+        "target": 9,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e5",
+        "source": 9,
+        "target": 10,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e6",
+        "source": 10,
+        "target": 11,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e7",
+        "source": 11,
+        "target": 4,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e8",
+        "source": 0,
+        "target": 5,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e9",
+        "source": 1,
+        "target": 7,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e10",
+        "source": 2,
+        "target": 9,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e11",
+        "source": 3,
+        "target": 11,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e12",
+        "source": 15,
+        "target": 16,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -683.8970947265625
+      },
+      {
+        "id": "e13",
+        "source": 16,
+        "target": 17,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 105.6108627319336
+      },
+      {
+        "id": "e14",
+        "source": 17,
+        "target": 18,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 98.6527328491211
+      },
+      {
+        "id": "e15",
+        "source": 18,
+        "target": 19,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -629.5760498046875
+      },
+      {
+        "id": "e16",
+        "source": 19,
+        "target": 20,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -625.0575561523438
+      },
+      {
+        "id": "e17",
+        "source": 20,
+        "target": 21,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 132.16334533691406
+      },
+      {
+        "id": "e18",
+        "source": 21,
+        "target": 22,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 67.55087280273438
+      },
+      {
+        "id": "e19",
+        "source": 22,
+        "target": 15,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -685.223876953125
+      },
+      {
+        "id": "e20",
+        "source": 14,
+        "target": 16,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -197.13565063476562
+      },
+      {
+        "id": "e21",
+        "source": 12,
+        "target": 18,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -838.9027099609375
+      },
+      {
+        "id": "e22",
+        "source": 13,
+        "target": 20,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -84.65782928466797
+      },
+      {
+        "id": "e23",
+        "source": 0,
+        "target": 22,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -967.435546875
+      },
+      {
+        "id": "e24",
+        "source": 26,
+        "target": 27,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 18.836244583129883
+      },
+      {
+        "id": "e25",
+        "source": 27,
+        "target": 28,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 24.354644775390625
+      },
+      {
+        "id": "e26",
+        "source": 28,
+        "target": 29,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 5.572900772094727
+      },
+      {
+        "id": "e27",
+        "source": 29,
+        "target": 30,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 27.920949935913086
+      },
+      {
+        "id": "e28",
+        "source": 30,
+        "target": 31,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 40.412601470947266
+      },
+      {
+        "id": "e29",
+        "source": 31,
+        "target": 32,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -8.929038047790527
+      },
+      {
+        "id": "e30",
+        "source": 32,
+        "target": 33,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -24.86311912536621
+      },
+      {
+        "id": "e31",
+        "source": 33,
+        "target": 26,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -8.275777816772461
+      },
+      {
+        "id": "e32",
+        "source": 23,
+        "target": 31,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -39.58258056640625
+      },
+      {
+        "id": "e33",
+        "source": 24,
+        "target": 33,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 25.683189392089844
+      },
+      {
+        "id": "e34",
+        "source": 12,
+        "target": 27,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 13.213241577148438
+      },
+      {
+        "id": "e35",
+        "source": 25,
+        "target": 29,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 26.04380226135254
+      },
+      {
+        "id": "e36",
+        "source": 36,
+        "target": 37,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -365.19268798828125
+      },
+      {
+        "id": "e37",
+        "source": 37,
+        "target": 38,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -383.6243591308594
+      },
+      {
+        "id": "e38",
+        "source": 38,
+        "target": 39,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 380.9356384277344
+      },
+      {
+        "id": "e39",
+        "source": 39,
+        "target": 40,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -398.2510986328125
+      },
+      {
+        "id": "e40",
+        "source": 40,
+        "target": 41,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -318.9341735839844
+      },
+      {
+        "id": "e41",
+        "source": 41,
+        "target": 42,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -289.93817138671875
+      },
+      {
+        "id": "e42",
+        "source": 42,
+        "target": 43,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 353.33905029296875
+      },
+      {
+        "id": "e43",
+        "source": 43,
+        "target": 36,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -363.39178466796875
+      },
+      {
+        "id": "e44",
+        "source": 35,
+        "target": 41,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 133.26788330078125
+      },
+      {
+        "id": "e45",
+        "source": 2,
+        "target": 43,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -590.1436157226562
+      },
+      {
+        "id": "e46",
+        "source": 34,
+        "target": 37,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 121.2830810546875
+      },
+      {
+        "id": "e47",
+        "source": 23,
+        "target": 39,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -647.6807250976562
+      },
+      {
+        "id": "e48",
+        "source": 44,
+        "target": 45,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 129.20693969726562
+      },
+      {
+        "id": "e49",
+        "source": 45,
+        "target": 46,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -464.8337097167969
+      },
+      {
+        "id": "e50",
+        "source": 46,
+        "target": 47,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -474.7096862792969
+      },
+      {
+        "id": "e51",
+        "source": 47,
+        "target": 48,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -157.81338500976562
+      },
+      {
+        "id": "e52",
+        "source": 48,
+        "target": 49,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 104.35704803466797
+      },
+      {
+        "id": "e53",
+        "source": 49,
+        "target": 50,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -377.1309509277344
+      },
+      {
+        "id": "e54",
+        "source": 50,
+        "target": 51,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -360.2455139160156
+      },
+      {
+        "id": "e55",
+        "source": 51,
+        "target": 44,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -88.44442749023438
+      },
+      {
+        "id": "e56",
+        "source": 24,
+        "target": 49,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -609.9631958007812
+      },
+      {
+        "id": "e57",
+        "source": 34,
+        "target": 51,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 64.36186218261719
+      },
+      {
+        "id": "e58",
+        "source": 1,
+        "target": 45,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -661.3719482421875
+      },
+      {
+        "id": "e59",
+        "source": 13,
+        "target": 47,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 79.85576629638672
+      },
+      {
+        "id": "e60",
+        "source": 52,
+        "target": 53,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 115.98975372314453
+      },
+      {
+        "id": "e61",
+        "source": 53,
+        "target": 54,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -691.7470092773438
+      },
+      {
+        "id": "e62",
+        "source": 54,
+        "target": 55,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -691.4963989257812
+      },
+      {
+        "id": "e63",
+        "source": 55,
+        "target": 56,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 117.40184020996094
+      },
+      {
+        "id": "e64",
+        "source": 56,
+        "target": 57,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 87.75657653808594
+      },
+      {
+        "id": "e65",
+        "source": 57,
+        "target": 58,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -732.7579345703125
+      },
+      {
+        "id": "e66",
+        "source": 58,
+        "target": 59,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -739.9907836914062
+      },
+      {
+        "id": "e67",
+        "source": 59,
+        "target": 52,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 84.66001892089844
+      },
+      {
+        "id": "e68",
+        "source": 14,
+        "target": 57,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -265.9717712402344
+      },
+      {
+        "id": "e69",
+        "source": 3,
+        "target": 55,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -835.5020141601562
+      },
+      {
+        "id": "e70",
+        "source": 35,
+        "target": 53,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -76.7939453125
+      },
+      {
+        "id": "e71",
+        "source": 25,
+        "target": 59,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -998.4540405273438
+      },
+      {
+        "id": "e72",
+        "source": 63,
+        "target": 64,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e73",
+        "source": 64,
+        "target": 65,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e74",
+        "source": 65,
+        "target": 66,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e75",
+        "source": 66,
+        "target": 67,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e76",
+        "source": 67,
+        "target": 68,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e77",
+        "source": 68,
+        "target": 69,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e78",
+        "source": 69,
+        "target": 70,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e79",
+        "source": 70,
+        "target": 63,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e80",
+        "source": 60,
+        "target": 64,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e81",
+        "source": 3,
+        "target": 66,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e82",
+        "source": 61,
+        "target": 68,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e83",
+        "source": 62,
+        "target": 70,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e84",
+        "source": 73,
+        "target": 74,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -642.4385986328125
+      },
+      {
+        "id": "e85",
+        "source": 74,
+        "target": 75,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 113.53675079345703
+      },
+      {
+        "id": "e86",
+        "source": 75,
+        "target": 76,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 83.61561584472656
+      },
+      {
+        "id": "e87",
+        "source": 76,
+        "target": 77,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -680.6551513671875
+      },
+      {
+        "id": "e88",
+        "source": 77,
+        "target": 78,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -678.7459106445312
+      },
+      {
+        "id": "e89",
+        "source": 78,
+        "target": 79,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 78.28103637695312
+      },
+      {
+        "id": "e90",
+        "source": 79,
+        "target": 80,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 121.17710876464844
+      },
+      {
+        "id": "e91",
+        "source": 80,
+        "target": 73,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -641.9943237304688
+      },
+      {
+        "id": "e92",
+        "source": 72,
+        "target": 74,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -148.218017578125
+      },
+      {
+        "id": "e93",
+        "source": 71,
+        "target": 76,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -934.7946166992188
+      },
+      {
+        "id": "e94",
+        "source": 14,
+        "target": 78,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -250.3297882080078
+      },
+      {
+        "id": "e95",
+        "source": 60,
+        "target": 80,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -816.8279418945312
+      },
+      {
+        "id": "e96",
+        "source": 83,
+        "target": 84,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 32.78806686401367
+      },
+      {
+        "id": "e97",
+        "source": 84,
+        "target": 85,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -11.327420234680176
+      },
+      {
+        "id": "e98",
+        "source": 85,
+        "target": 86,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -20.911216735839844
+      },
+      {
+        "id": "e99",
+        "source": 86,
+        "target": 87,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 20.090715408325195
+      },
+      {
+        "id": "e100",
+        "source": 87,
+        "target": 88,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 20.635419845581055
+      },
+      {
+        "id": "e101",
+        "source": 88,
+        "target": 89,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -11.7901029586792
+      },
+      {
+        "id": "e102",
+        "source": 89,
+        "target": 90,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -19.63299560546875
+      },
+      {
+        "id": "e103",
+        "source": 90,
+        "target": 83,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 61.12857437133789
+      },
+      {
+        "id": "e104",
+        "source": 81,
+        "target": 88,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -26.437246322631836
+      },
+      {
+        "id": "e105",
+        "source": 25,
+        "target": 90,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 78.7957534790039
+      },
+      {
+        "id": "e106",
+        "source": 71,
+        "target": 84,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -37.69554901123047
+      },
+      {
+        "id": "e107",
+        "source": 82,
+        "target": 86,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 43.855224609375
+      },
+      {
+        "id": "e108",
+        "source": 92,
+        "target": 93,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -376.5005187988281
+      },
+      {
+        "id": "e109",
+        "source": 93,
+        "target": 94,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -373.89337158203125
+      },
+      {
+        "id": "e110",
+        "source": 94,
+        "target": 95,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 346.590576171875
+      },
+      {
+        "id": "e111",
+        "source": 95,
+        "target": 96,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -374.3785705566406
+      },
+      {
+        "id": "e112",
+        "source": 96,
+        "target": 97,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -317.2835693359375
+      },
+      {
+        "id": "e113",
+        "source": 97,
+        "target": 98,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -271.854736328125
+      },
+      {
+        "id": "e114",
+        "source": 98,
+        "target": 99,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 357.11248779296875
+      },
+      {
+        "id": "e115",
+        "source": 99,
+        "target": 92,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -381.4407043457031
+      },
+      {
+        "id": "e116",
+        "source": 91,
+        "target": 97,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 151.4596710205078
+      },
+      {
+        "id": "e117",
+        "source": 61,
+        "target": 99,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -613.4320678710938
+      },
+      {
+        "id": "e118",
+        "source": 35,
+        "target": 93,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 137.1664276123047
+      },
+      {
+        "id": "e119",
+        "source": 81,
+        "target": 95,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -596.155029296875
+      },
+      {
+        "id": "e120",
+        "source": 25,
+        "target": 53,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -829.22705078125
+      },
+      {
+        "id": "e121",
+        "source": 35,
+        "target": 55,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -83.43578338623047
+      },
+      {
+        "id": "e122",
+        "source": 3,
+        "target": 57,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -951.3870239257812
+      },
+      {
+        "id": "e123",
+        "source": 14,
+        "target": 59,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -293.749267578125
+      },
+      {
+        "id": "e124",
+        "source": 100,
+        "target": 101,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -150.27471923828125
+      },
+      {
+        "id": "e125",
+        "source": 101,
+        "target": 102,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -454.78472900390625
+      },
+      {
+        "id": "e126",
+        "source": 102,
+        "target": 103,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -438.07476806640625
+      },
+      {
+        "id": "e127",
+        "source": 103,
+        "target": 104,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 88.30426025390625
+      },
+      {
+        "id": "e128",
+        "source": 104,
+        "target": 105,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -157.6273193359375
+      },
+      {
+        "id": "e129",
+        "source": 105,
+        "target": 106,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -404.20245361328125
+      },
+      {
+        "id": "e130",
+        "source": 106,
+        "target": 107,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -419.470458984375
+      },
+      {
+        "id": "e131",
+        "source": 107,
+        "target": 100,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 109.93907928466797
+      },
+      {
+        "id": "e132",
+        "source": 72,
+        "target": 105,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 22.272613525390625
+      },
+      {
+        "id": "e133",
+        "source": 62,
+        "target": 103,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -632.5978393554688
+      },
+      {
+        "id": "e134",
+        "source": 91,
+        "target": 101,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 80.37999725341797
+      },
+      {
+        "id": "e135",
+        "source": 82,
+        "target": 107,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -649.3018188476562
+      },
+      {
+        "id": "e136",
+        "source": 108,
+        "target": 109,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -18.13322639465332
+      },
+      {
+        "id": "e137",
+        "source": 109,
+        "target": 110,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 8.343754768371582
+      },
+      {
+        "id": "e138",
+        "source": 110,
+        "target": 111,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 13.481846809387207
+      },
+      {
+        "id": "e139",
+        "source": 111,
+        "target": 112,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -2.1225345134735107
+      },
+      {
+        "id": "e140",
+        "source": 112,
+        "target": 113,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -24.560470581054688
+      },
+      {
+        "id": "e141",
+        "source": 113,
+        "target": 114,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 9.795709609985352
+      },
+      {
+        "id": "e142",
+        "source": 114,
+        "target": 115,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 17.334232330322266
+      },
+      {
+        "id": "e143",
+        "source": 115,
+        "target": 108,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 32.5879020690918
+      },
+      {
+        "id": "e144",
+        "source": 12,
+        "target": 109,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 17.675823211669922
+      },
+      {
+        "id": "e145",
+        "source": 24,
+        "target": 111,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -20.73546028137207
+      },
+      {
+        "id": "e146",
+        "source": 23,
+        "target": 113,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 27.11745262145996
+      },
+      {
+        "id": "e147",
+        "source": 25,
+        "target": 115,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 5.405173301696777
+      },
+      {
+        "id": "e148",
+        "source": 119,
+        "target": 120,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -348.6686706542969
+      },
+      {
+        "id": "e149",
+        "source": 120,
+        "target": 121,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 54.48617172241211
+      },
+      {
+        "id": "e150",
+        "source": 121,
+        "target": 122,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 63.50155258178711
+      },
+      {
+        "id": "e151",
+        "source": 122,
+        "target": 123,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -328.41436767578125
+      },
+      {
+        "id": "e152",
+        "source": 123,
+        "target": 124,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -326.9856872558594
+      },
+      {
+        "id": "e153",
+        "source": 124,
+        "target": 125,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 52.1506233215332
+      },
+      {
+        "id": "e154",
+        "source": 125,
+        "target": 126,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 16.987262725830078
+      },
+      {
+        "id": "e155",
+        "source": 126,
+        "target": 119,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -361.7958984375
+      },
+      {
+        "id": "e156",
+        "source": 118,
+        "target": 120,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -127.69976806640625
+      },
+      {
+        "id": "e157",
+        "source": 116,
+        "target": 122,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -348.4710693359375
+      },
+      {
+        "id": "e158",
+        "source": 117,
+        "target": 124,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -156.59744262695312
+      },
+      {
+        "id": "e159",
+        "source": 12,
+        "target": 126,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -496.8753967285156
+      },
+      {
+        "id": "e160",
+        "source": 130,
+        "target": 131,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -12.349508285522461
+      },
+      {
+        "id": "e161",
+        "source": 131,
+        "target": 132,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 48.77996063232422
+      },
+      {
+        "id": "e162",
+        "source": 132,
+        "target": 133,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 43.640323638916016
+      },
+      {
+        "id": "e163",
+        "source": 133,
+        "target": 134,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 100.37359619140625
+      },
+      {
+        "id": "e164",
+        "source": 134,
+        "target": 135,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 22.31735610961914
+      },
+      {
+        "id": "e165",
+        "source": 135,
+        "target": 136,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -16.74869728088379
+      },
+      {
+        "id": "e166",
+        "source": 136,
+        "target": 137,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -35.53688049316406
+      },
+      {
+        "id": "e167",
+        "source": 137,
+        "target": 130,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -15.699508666992188
+      },
+      {
+        "id": "e168",
+        "source": 127,
+        "target": 135,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -40.52189636230469
+      },
+      {
+        "id": "e169",
+        "source": 128,
+        "target": 137,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 28.027423858642578
+      },
+      {
+        "id": "e170",
+        "source": 116,
+        "target": 131,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 59.17366409301758
+      },
+      {
+        "id": "e171",
+        "source": 129,
+        "target": 133,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 41.75249481201172
+      },
+      {
+        "id": "e172",
+        "source": 140,
+        "target": 141,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -107.33814239501953
+      },
+      {
+        "id": "e173",
+        "source": 141,
+        "target": 142,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -184.9296112060547
+      },
+      {
+        "id": "e174",
+        "source": 142,
+        "target": 143,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 207.02975463867188
+      },
+      {
+        "id": "e175",
+        "source": 143,
+        "target": 144,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -270.70465087890625
+      },
+      {
+        "id": "e176",
+        "source": 144,
+        "target": 145,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -222.12745666503906
+      },
+      {
+        "id": "e177",
+        "source": 145,
+        "target": 146,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -165.6575164794922
+      },
+      {
+        "id": "e178",
+        "source": 146,
+        "target": 147,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.33416748046875
+      },
+      {
+        "id": "e179",
+        "source": 147,
+        "target": 140,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -122.14234924316406
+      },
+      {
+        "id": "e180",
+        "source": 139,
+        "target": 145,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 119.96402740478516
+      },
+      {
+        "id": "e181",
+        "source": 23,
+        "target": 147,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -254.48568725585938
+      },
+      {
+        "id": "e182",
+        "source": 138,
+        "target": 141,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -18.490482330322266
+      },
+      {
+        "id": "e183",
+        "source": 127,
+        "target": 143,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -408.0523986816406
+      },
+      {
+        "id": "e184",
+        "source": 148,
+        "target": 149,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 65.25515747070312
+      },
+      {
+        "id": "e185",
+        "source": 149,
+        "target": 150,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -152.85841369628906
+      },
+      {
+        "id": "e186",
+        "source": 150,
+        "target": 151,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -146.07241821289062
+      },
+      {
+        "id": "e187",
+        "source": 151,
+        "target": 152,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -111.8702621459961
+      },
+      {
+        "id": "e188",
+        "source": 152,
+        "target": 153,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 70.0230712890625
+      },
+      {
+        "id": "e189",
+        "source": 153,
+        "target": 154,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -148.50238037109375
+      },
+      {
+        "id": "e190",
+        "source": 154,
+        "target": 155,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -151.45057678222656
+      },
+      {
+        "id": "e191",
+        "source": 155,
+        "target": 148,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -72.3721923828125
+      },
+      {
+        "id": "e192",
+        "source": 128,
+        "target": 153,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -316.1920471191406
+      },
+      {
+        "id": "e193",
+        "source": 138,
+        "target": 155,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -9.810335159301758
+      },
+      {
+        "id": "e194",
+        "source": 24,
+        "target": 149,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -285.55181884765625
+      },
+      {
+        "id": "e195",
+        "source": 117,
+        "target": 151,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -68.66216278076172
+      },
+      {
+        "id": "e196",
+        "source": 156,
+        "target": 157,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 139.38534545898438
+      },
+      {
+        "id": "e197",
+        "source": 157,
+        "target": 158,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -360.58099365234375
+      },
+      {
+        "id": "e198",
+        "source": 158,
+        "target": 159,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -382.43072509765625
+      },
+      {
+        "id": "e199",
+        "source": 159,
+        "target": 160,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 45.07111740112305
+      },
+      {
+        "id": "e200",
+        "source": 160,
+        "target": 161,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 49.55135726928711
+      },
+      {
+        "id": "e201",
+        "source": 161,
+        "target": 162,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -349.6963195800781
+      },
+      {
+        "id": "e202",
+        "source": 162,
+        "target": 163,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -350.61273193359375
+      },
+      {
+        "id": "e203",
+        "source": 163,
+        "target": 156,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 132.57156372070312
+      },
+      {
+        "id": "e204",
+        "source": 118,
+        "target": 161,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -64.72517395019531
+      },
+      {
+        "id": "e205",
+        "source": 25,
+        "target": 159,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -616.6204223632812
+      },
+      {
+        "id": "e206",
+        "source": 139,
+        "target": 157,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 119.34607696533203
+      },
+      {
+        "id": "e207",
+        "source": 129,
+        "target": 163,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -410.89849853515625
+      },
+      {
+        "id": "e208",
+        "source": 83,
+        "target": 164,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -40.654510498046875
+      },
+      {
+        "id": "e209",
+        "source": 164,
+        "target": 165,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 32.603172302246094
+      },
+      {
+        "id": "e210",
+        "source": 165,
+        "target": 166,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 33.58930206298828
+      },
+      {
+        "id": "e211",
+        "source": 166,
+        "target": 87,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -6.111968994140625
+      },
+      {
+        "id": "e212",
+        "source": 87,
+        "target": 167,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -20.194326400756836
+      },
+      {
+        "id": "e213",
+        "source": 167,
+        "target": 168,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 10.815901756286621
+      },
+      {
+        "id": "e214",
+        "source": 168,
+        "target": 169,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 14.730422019958496
+      },
+      {
+        "id": "e215",
+        "source": 169,
+        "target": 83,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -26.826324462890625
+      },
+      {
+        "id": "e216",
+        "source": 71,
+        "target": 164,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 63.69144821166992
+      },
+      {
+        "id": "e217",
+        "source": 25,
+        "target": 166,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -43.80432891845703
+      },
+      {
+        "id": "e218",
+        "source": 81,
+        "target": 167,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 24.81275177001953
+      },
+      {
+        "id": "e219",
+        "source": 82,
+        "target": 169,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -41.98529052734375
+      },
+      {
+        "id": "e220",
+        "source": 172,
+        "target": 173,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -300.7531433105469
+      },
+      {
+        "id": "e221",
+        "source": 173,
+        "target": 174,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 61.032859802246094
+      },
+      {
+        "id": "e222",
+        "source": 174,
+        "target": 175,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 42.957763671875
+      },
+      {
+        "id": "e223",
+        "source": 175,
+        "target": 176,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -352.7716064453125
+      },
+      {
+        "id": "e224",
+        "source": 176,
+        "target": 177,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.4854431152344
+      },
+      {
+        "id": "e225",
+        "source": 177,
+        "target": 178,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 40.320369720458984
+      },
+      {
+        "id": "e226",
+        "source": 178,
+        "target": 179,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 45.52549743652344
+      },
+      {
+        "id": "e227",
+        "source": 179,
+        "target": 172,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -298.476806640625
+      },
+      {
+        "id": "e228",
+        "source": 171,
+        "target": 173,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 22.385753631591797
+      },
+      {
+        "id": "e229",
+        "source": 170,
+        "target": 175,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -522.8112182617188
+      },
+      {
+        "id": "e230",
+        "source": 118,
+        "target": 177,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -96.76071166992188
+      },
+      {
+        "id": "e231",
+        "source": 71,
+        "target": 179,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -445.5112609863281
+      },
+      {
+        "id": "e232",
+        "source": 182,
+        "target": 183,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 2.8396291732788086
+      },
+      {
+        "id": "e233",
+        "source": 183,
+        "target": 184,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 36.21205139160156
+      },
+      {
+        "id": "e234",
+        "source": 184,
+        "target": 185,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 28.323617935180664
+      },
+      {
+        "id": "e235",
+        "source": 185,
+        "target": 186,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 21.754785537719727
+      },
+      {
+        "id": "e236",
+        "source": 186,
+        "target": 187,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -33.52614212036133
+      },
+      {
+        "id": "e237",
+        "source": 187,
+        "target": 188,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -22.639469146728516
+      },
+      {
+        "id": "e238",
+        "source": 188,
+        "target": 189,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -14.375818252563477
+      },
+      {
+        "id": "e239",
+        "source": 189,
+        "target": 182,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 123.75141906738281
+      },
+      {
+        "id": "e240",
+        "source": 180,
+        "target": 187,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -0.23980145156383514
+      },
+      {
+        "id": "e241",
+        "source": 129,
+        "target": 189,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 122.37199401855469
+      },
+      {
+        "id": "e242",
+        "source": 170,
+        "target": 183,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 21.65149688720703
+      },
+      {
+        "id": "e243",
+        "source": 181,
+        "target": 185,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -15.406469345092773
+      },
+      {
+        "id": "e244",
+        "source": 191,
+        "target": 192,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -81.59461212158203
+      },
+      {
+        "id": "e245",
+        "source": 192,
+        "target": 193,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -325.6325378417969
+      },
+      {
+        "id": "e246",
+        "source": 193,
+        "target": 194,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 253.35145568847656
+      },
+      {
+        "id": "e247",
+        "source": 194,
+        "target": 195,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -208.17132568359375
+      },
+      {
+        "id": "e248",
+        "source": 195,
+        "target": 196,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -159.3865203857422
+      },
+      {
+        "id": "e249",
+        "source": 196,
+        "target": 197,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -174.79769897460938
+      },
+      {
+        "id": "e250",
+        "source": 197,
+        "target": 198,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 247.64578247070312
+      },
+      {
+        "id": "e251",
+        "source": 198,
+        "target": 191,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -54.33344650268555
+      },
+      {
+        "id": "e252",
+        "source": 190,
+        "target": 196,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 47.40586471557617
+      },
+      {
+        "id": "e253",
+        "source": 81,
+        "target": 198,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -217.5641326904297
+      },
+      {
+        "id": "e254",
+        "source": 139,
+        "target": 192,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -156.5802459716797
+      },
+      {
+        "id": "e255",
+        "source": 180,
+        "target": 194,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -367.76995849609375
+      },
+      {
+        "id": "e256",
+        "source": 129,
+        "target": 157,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -305.0148010253906
+      },
+      {
+        "id": "e257",
+        "source": 139,
+        "target": 159,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -215.71168518066406
+      },
+      {
+        "id": "e258",
+        "source": 25,
+        "target": 161,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -422.9566345214844
+      },
+      {
+        "id": "e259",
+        "source": 118,
+        "target": 163,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 11.760034561157227
+      },
+      {
+        "id": "e260",
+        "source": 199,
+        "target": 200,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -84.07488250732422
+      },
+      {
+        "id": "e261",
+        "source": 200,
+        "target": 201,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -228.0519256591797
+      },
+      {
+        "id": "e262",
+        "source": 201,
+        "target": 202,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -221.2877960205078
+      },
+      {
+        "id": "e263",
+        "source": 202,
+        "target": 203,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 96.74401092529297
+      },
+      {
+        "id": "e264",
+        "source": 203,
+        "target": 204,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -12.377857208251953
+      },
+      {
+        "id": "e265",
+        "source": 204,
+        "target": 205,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -177.33462524414062
+      },
+      {
+        "id": "e266",
+        "source": 205,
+        "target": 206,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -195.2552490234375
+      },
+      {
+        "id": "e267",
+        "source": 206,
+        "target": 199,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 67.73583984375
+      },
+      {
+        "id": "e268",
+        "source": 171,
+        "target": 204,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 51.562347412109375
+      },
+      {
+        "id": "e269",
+        "source": 82,
+        "target": 202,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -339.9481506347656
+      },
+      {
+        "id": "e270",
+        "source": 190,
+        "target": 200,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 25.15617561340332
+      },
+      {
+        "id": "e271",
+        "source": 181,
+        "target": 206,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -339.2471618652344
+      },
+      {
+        "id": "e272",
+        "source": 210,
+        "target": 211,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e273",
+        "source": 211,
+        "target": 212,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e274",
+        "source": 212,
+        "target": 213,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e275",
+        "source": 213,
+        "target": 214,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e276",
+        "source": 214,
+        "target": 215,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e277",
+        "source": 215,
+        "target": 216,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e278",
+        "source": 216,
+        "target": 217,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e279",
+        "source": 217,
+        "target": 210,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e280",
+        "source": 207,
+        "target": 211,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e281",
+        "source": 208,
+        "target": 213,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e282",
+        "source": 0,
+        "target": 215,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e283",
+        "source": 209,
+        "target": 217,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e284",
+        "source": 221,
+        "target": 222,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -379.5357971191406
+      },
+      {
+        "id": "e285",
+        "source": 222,
+        "target": 223,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -363.7379455566406
+      },
+      {
+        "id": "e286",
+        "source": 223,
+        "target": 224,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 354.908935546875
+      },
+      {
+        "id": "e287",
+        "source": 224,
+        "target": 225,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -374.47161865234375
+      },
+      {
+        "id": "e288",
+        "source": 225,
+        "target": 226,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -328.3236389160156
+      },
+      {
+        "id": "e289",
+        "source": 226,
+        "target": 227,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -292.84637451171875
+      },
+      {
+        "id": "e290",
+        "source": 227,
+        "target": 228,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 361.7596740722656
+      },
+      {
+        "id": "e291",
+        "source": 228,
+        "target": 221,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -383.3106384277344
+      },
+      {
+        "id": "e292",
+        "source": 220,
+        "target": 222,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 150.5622100830078
+      },
+      {
+        "id": "e293",
+        "source": 218,
+        "target": 224,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -601.8848266601562
+      },
+      {
+        "id": "e294",
+        "source": 219,
+        "target": 226,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 148.0801544189453
+      },
+      {
+        "id": "e295",
+        "source": 207,
+        "target": 228,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -616.431396484375
+      },
+      {
+        "id": "e296",
+        "source": 231,
+        "target": 232,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 11.488876342773438
+      },
+      {
+        "id": "e297",
+        "source": 232,
+        "target": 233,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -8.835111618041992
+      },
+      {
+        "id": "e298",
+        "source": 233,
+        "target": 234,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -38.19938278198242
+      },
+      {
+        "id": "e299",
+        "source": 234,
+        "target": 235,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 26.393333435058594
+      },
+      {
+        "id": "e300",
+        "source": 235,
+        "target": 236,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 25.960920333862305
+      },
+      {
+        "id": "e301",
+        "source": 236,
+        "target": 237,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -18.516977310180664
+      },
+      {
+        "id": "e302",
+        "source": 237,
+        "target": 238,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -25.768875122070312
+      },
+      {
+        "id": "e303",
+        "source": 238,
+        "target": 231,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -3.2382025718688965
+      },
+      {
+        "id": "e304",
+        "source": 12,
+        "target": 236,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -40.0418701171875
+      },
+      {
+        "id": "e305",
+        "source": 229,
+        "target": 238,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 31.44540023803711
+      },
+      {
+        "id": "e306",
+        "source": 218,
+        "target": 232,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -16.794679641723633
+      },
+      {
+        "id": "e307",
+        "source": 230,
+        "target": 234,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 74.6744155883789
+      },
+      {
+        "id": "e308",
+        "source": 14,
+        "target": 22,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -271.536865234375
+      },
+      {
+        "id": "e309",
+        "source": 0,
+        "target": 20,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -787.7252807617188
+      },
+      {
+        "id": "e310",
+        "source": 13,
+        "target": 18,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -161.51025390625
+      },
+      {
+        "id": "e311",
+        "source": 12,
+        "target": 16,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -926.3644409179688
+      },
+      {
+        "id": "e312",
+        "source": 239,
+        "target": 240,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 101.1339340209961
+      },
+      {
+        "id": "e313",
+        "source": 240,
+        "target": 241,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -444.9188232421875
+      },
+      {
+        "id": "e314",
+        "source": 241,
+        "target": 242,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -469.526123046875
+      },
+      {
+        "id": "e315",
+        "source": 242,
+        "target": 243,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -165.49822998046875
+      },
+      {
+        "id": "e316",
+        "source": 243,
+        "target": 244,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 106.10426330566406
+      },
+      {
+        "id": "e317",
+        "source": 244,
+        "target": 245,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -415.1367492675781
+      },
+      {
+        "id": "e318",
+        "source": 245,
+        "target": 246,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -414.27850341796875
+      },
+      {
+        "id": "e319",
+        "source": 246,
+        "target": 239,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -148.93556213378906
+      },
+      {
+        "id": "e320",
+        "source": 229,
+        "target": 244,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -647.836181640625
+      },
+      {
+        "id": "e321",
+        "source": 13,
+        "target": 246,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 46.20643615722656
+      },
+      {
+        "id": "e322",
+        "source": 208,
+        "target": 240,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -647.4869995117188
+      },
+      {
+        "id": "e323",
+        "source": 219,
+        "target": 242,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 78.58914184570312
+      },
+      {
+        "id": "e324",
+        "source": 247,
+        "target": 248,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 91.37837982177734
+      },
+      {
+        "id": "e325",
+        "source": 248,
+        "target": 249,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -721.841796875
+      },
+      {
+        "id": "e326",
+        "source": 249,
+        "target": 250,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -721.7852783203125
+      },
+      {
+        "id": "e327",
+        "source": 250,
+        "target": 251,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 78.97736358642578
+      },
+      {
+        "id": "e328",
+        "source": 251,
+        "target": 252,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 114.9014892578125
+      },
+      {
+        "id": "e329",
+        "source": 252,
+        "target": 253,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -681.6528930664062
+      },
+      {
+        "id": "e330",
+        "source": 253,
+        "target": 254,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -684.2957153320312
+      },
+      {
+        "id": "e331",
+        "source": 254,
+        "target": 247,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 116.70288848876953
+      },
+      {
+        "id": "e332",
+        "source": 220,
+        "target": 252,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -76.85071563720703
+      },
+      {
+        "id": "e333",
+        "source": 209,
+        "target": 250,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -957.3399658203125
+      },
+      {
+        "id": "e334",
+        "source": 14,
+        "target": 248,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -256.59307861328125
+      },
+      {
+        "id": "e335",
+        "source": 230,
+        "target": 254,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -824.5122680664062
+      },
+      {
+        "id": "e336",
+        "source": 257,
+        "target": 258,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e337",
+        "source": 258,
+        "target": 259,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e338",
+        "source": 259,
+        "target": 260,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e339",
+        "source": 260,
+        "target": 261,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e340",
+        "source": 261,
+        "target": 262,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e341",
+        "source": 262,
+        "target": 263,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e342",
+        "source": 263,
+        "target": 264,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e343",
+        "source": 264,
+        "target": 257,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e344",
+        "source": 255,
+        "target": 258,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e345",
+        "source": 209,
+        "target": 260,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e346",
+        "source": 60,
+        "target": 262,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e347",
+        "source": 256,
+        "target": 264,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e348",
+        "source": 267,
+        "target": 268,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -361.8462219238281
+      },
+      {
+        "id": "e349",
+        "source": 268,
+        "target": 269,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -380.4017028808594
+      },
+      {
+        "id": "e350",
+        "source": 269,
+        "target": 270,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 376.48565673828125
+      },
+      {
+        "id": "e351",
+        "source": 270,
+        "target": 271,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -387.8819885253906
+      },
+      {
+        "id": "e352",
+        "source": 271,
+        "target": 272,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -337.42230224609375
+      },
+      {
+        "id": "e353",
+        "source": 272,
+        "target": 273,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -314.2042541503906
+      },
+      {
+        "id": "e354",
+        "source": 273,
+        "target": 274,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 356.0474853515625
+      },
+      {
+        "id": "e355",
+        "source": 274,
+        "target": 267,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -359.2254638671875
+      },
+      {
+        "id": "e356",
+        "source": 266,
+        "target": 268,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 119.95128631591797
+      },
+      {
+        "id": "e357",
+        "source": 265,
+        "target": 270,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -630.15869140625
+      },
+      {
+        "id": "e358",
+        "source": 220,
+        "target": 272,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 138.3066864013672
+      },
+      {
+        "id": "e359",
+        "source": 255,
+        "target": 274,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -585.5248413085938
+      },
+      {
+        "id": "e360",
+        "source": 276,
+        "target": 277,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 30.092103958129883
+      },
+      {
+        "id": "e361",
+        "source": 277,
+        "target": 278,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 4.878715991973877
+      },
+      {
+        "id": "e362",
+        "source": 278,
+        "target": 279,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -23.97568702697754
+      },
+      {
+        "id": "e363",
+        "source": 279,
+        "target": 280,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -5.95273494720459
+      },
+      {
+        "id": "e364",
+        "source": 280,
+        "target": 281,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 19.83657455444336
+      },
+      {
+        "id": "e365",
+        "source": 281,
+        "target": 282,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 35.92557144165039
+      },
+      {
+        "id": "e366",
+        "source": 282,
+        "target": 283,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -14.803643226623535
+      },
+      {
+        "id": "e367",
+        "source": 283,
+        "target": 276,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 13.834304809570312
+      },
+      {
+        "id": "e368",
+        "source": 71,
+        "target": 281,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 24.400117874145508
+      },
+      {
+        "id": "e369",
+        "source": 230,
+        "target": 283,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 38.95952224731445
+      },
+      {
+        "id": "e370",
+        "source": 265,
+        "target": 277,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -45.005184173583984
+      },
+      {
+        "id": "e371",
+        "source": 275,
+        "target": 279,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 27.05881690979004
+      },
+      {
+        "id": "e372",
+        "source": 72,
+        "target": 80,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -106.73612976074219
+      },
+      {
+        "id": "e373",
+        "source": 60,
+        "target": 78,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -949.1776123046875
+      },
+      {
+        "id": "e374",
+        "source": 14,
+        "target": 76,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -227.2364044189453
+      },
+      {
+        "id": "e375",
+        "source": 71,
+        "target": 74,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -848.2238159179688
+      },
+      {
+        "id": "e376",
+        "source": 230,
+        "target": 248,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -950.08251953125
+      },
+      {
+        "id": "e377",
+        "source": 14,
+        "target": 250,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -288.5706481933594
+      },
+      {
+        "id": "e378",
+        "source": 209,
+        "target": 252,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -822.6801147460938
+      },
+      {
+        "id": "e379",
+        "source": 220,
+        "target": 254,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -82.58639526367188
+      },
+      {
+        "id": "e380",
+        "source": 284,
+        "target": 285,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -186.8586883544922
+      },
+      {
+        "id": "e381",
+        "source": 285,
+        "target": 286,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -467.4075622558594
+      },
+      {
+        "id": "e382",
+        "source": 286,
+        "target": 287,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -455.621826171875
+      },
+      {
+        "id": "e383",
+        "source": 287,
+        "target": 288,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 108.3253402709961
+      },
+      {
+        "id": "e384",
+        "source": 288,
+        "target": 289,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -127.33971405029297
+      },
+      {
+        "id": "e385",
+        "source": 289,
+        "target": 290,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -393.2066955566406
+      },
+      {
+        "id": "e386",
+        "source": 290,
+        "target": 291,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -385.3354187011719
+      },
+      {
+        "id": "e387",
+        "source": 291,
+        "target": 284,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 80.39151000976562
+      },
+      {
+        "id": "e388",
+        "source": 266,
+        "target": 289,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 63.65214920043945
+      },
+      {
+        "id": "e389",
+        "source": 256,
+        "target": 287,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -653.899658203125
+      },
+      {
+        "id": "e390",
+        "source": 72,
+        "target": 285,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 49.43547821044922
+      },
+      {
+        "id": "e391",
+        "source": 275,
+        "target": 291,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -599.6450805664062
+      },
+      {
+        "id": "e392",
+        "source": 292,
+        "target": 293,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -7.956309795379639
+      },
+      {
+        "id": "e393",
+        "source": 293,
+        "target": 237,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 10.838164329528809
+      },
+      {
+        "id": "e394",
+        "source": 237,
+        "target": 294,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 22.11851692199707
+      },
+      {
+        "id": "e395",
+        "source": 294,
+        "target": 295,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -4.847172260284424
+      },
+      {
+        "id": "e396",
+        "source": 295,
+        "target": 296,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -12.52723503112793
+      },
+      {
+        "id": "e397",
+        "source": 296,
+        "target": 233,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 43.933837890625
+      },
+      {
+        "id": "e398",
+        "source": 233,
+        "target": 297,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 30.398645401000977
+      },
+      {
+        "id": "e399",
+        "source": 297,
+        "target": 292,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 8.785649299621582
+      },
+      {
+        "id": "e400",
+        "source": 218,
+        "target": 293,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 16.329233169555664
+      },
+      {
+        "id": "e401",
+        "source": 229,
+        "target": 294,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -33.421669006347656
+      },
+      {
+        "id": "e402",
+        "source": 12,
+        "target": 296,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 55.43294143676758
+      },
+      {
+        "id": "e403",
+        "source": 230,
+        "target": 297,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -29.986675262451172
+      },
+      {
+        "id": "e404",
+        "source": 301,
+        "target": 302,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -90.99510192871094
+      },
+      {
+        "id": "e405",
+        "source": 302,
+        "target": 303,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -337.74969482421875
+      },
+      {
+        "id": "e406",
+        "source": 303,
+        "target": 304,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 243.49136352539062
+      },
+      {
+        "id": "e407",
+        "source": 304,
+        "target": 305,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -210.75062561035156
+      },
+      {
+        "id": "e408",
+        "source": 305,
+        "target": 306,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -155.2915802001953
+      },
+      {
+        "id": "e409",
+        "source": 306,
+        "target": 307,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -160.5540008544922
+      },
+      {
+        "id": "e410",
+        "source": 307,
+        "target": 308,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 243.36219787597656
+      },
+      {
+        "id": "e411",
+        "source": 308,
+        "target": 301,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -67.22836303710938
+      },
+      {
+        "id": "e412",
+        "source": 300,
+        "target": 302,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -158.34149169921875
+      },
+      {
+        "id": "e413",
+        "source": 298,
+        "target": 304,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.6226806640625
+      },
+      {
+        "id": "e414",
+        "source": 299,
+        "target": 306,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 53.505008697509766
+      },
+      {
+        "id": "e415",
+        "source": 218,
+        "target": 308,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -228.873291015625
+      },
+      {
+        "id": "e416",
+        "source": 311,
+        "target": 312,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -23.88490104675293
+      },
+      {
+        "id": "e417",
+        "source": 312,
+        "target": 313,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -12.154267311096191
+      },
+      {
+        "id": "e418",
+        "source": 313,
+        "target": 314,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -5.408549785614014
+      },
+      {
+        "id": "e419",
+        "source": 314,
+        "target": 315,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 100.5632553100586
+      },
+      {
+        "id": "e420",
+        "source": 315,
+        "target": 316,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 12.555134773254395
+      },
+      {
+        "id": "e421",
+        "source": 316,
+        "target": 317,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 41.906280517578125
+      },
+      {
+        "id": "e422",
+        "source": 317,
+        "target": 318,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 27.49233627319336
+      },
+      {
+        "id": "e423",
+        "source": 318,
+        "target": 311,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 2.366889476776123
+      },
+      {
+        "id": "e424",
+        "source": 116,
+        "target": 316,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 23.234851837158203
+      },
+      {
+        "id": "e425",
+        "source": 309,
+        "target": 318,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -29.017009735107422
+      },
+      {
+        "id": "e426",
+        "source": 298,
+        "target": 312,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 4.908137798309326
+      },
+      {
+        "id": "e427",
+        "source": 310,
+        "target": 314,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 93.61642456054688
+      },
+      {
+        "id": "e428",
+        "source": 118,
+        "target": 126,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -143.440673828125
+      },
+      {
+        "id": "e429",
+        "source": 12,
+        "target": 124,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -495.1224060058594
+      },
+      {
+        "id": "e430",
+        "source": 117,
+        "target": 122,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 28.55353546142578
+      },
+      {
+        "id": "e431",
+        "source": 116,
+        "target": 120,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -495.8460388183594
+      },
+      {
+        "id": "e432",
+        "source": 319,
+        "target": 320,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 55.09866714477539
+      },
+      {
+        "id": "e433",
+        "source": 320,
+        "target": 321,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -223.2047119140625
+      },
+      {
+        "id": "e434",
+        "source": 321,
+        "target": 322,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -224.90484619140625
+      },
+      {
+        "id": "e435",
+        "source": 322,
+        "target": 323,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -75.50251007080078
+      },
+      {
+        "id": "e436",
+        "source": 323,
+        "target": 324,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 71.38279724121094
+      },
+      {
+        "id": "e437",
+        "source": 324,
+        "target": 325,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -203.59844970703125
+      },
+      {
+        "id": "e438",
+        "source": 325,
+        "target": 326,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -180.88816833496094
+      },
+      {
+        "id": "e439",
+        "source": 326,
+        "target": 319,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -68.30120849609375
+      },
+      {
+        "id": "e440",
+        "source": 309,
+        "target": 324,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -346.4721374511719
+      },
+      {
+        "id": "e441",
+        "source": 117,
+        "target": 326,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -4.180245876312256
+      },
+      {
+        "id": "e442",
+        "source": 229,
+        "target": 320,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -328.91571044921875
+      },
+      {
+        "id": "e443",
+        "source": 299,
+        "target": 322,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 28.38861083984375
+      },
+      {
+        "id": "e444",
+        "source": 327,
+        "target": 328,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 123.849853515625
+      },
+      {
+        "id": "e445",
+        "source": 328,
+        "target": 329,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -351.3841552734375
+      },
+      {
+        "id": "e446",
+        "source": 329,
+        "target": 330,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -348.7939758300781
+      },
+      {
+        "id": "e447",
+        "source": 330,
+        "target": 331,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 50.51061248779297
+      },
+      {
+        "id": "e448",
+        "source": 331,
+        "target": 332,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 43.37242126464844
+      },
+      {
+        "id": "e449",
+        "source": 332,
+        "target": 333,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -370.2357177734375
+      },
+      {
+        "id": "e450",
+        "source": 333,
+        "target": 334,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -349.23284912109375
+      },
+      {
+        "id": "e451",
+        "source": 334,
+        "target": 327,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 131.90460205078125
+      },
+      {
+        "id": "e452",
+        "source": 300,
+        "target": 332,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -192.18772888183594
+      },
+      {
+        "id": "e453",
+        "source": 230,
+        "target": 330,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -435.3322448730469
+      },
+      {
+        "id": "e454",
+        "source": 118,
+        "target": 328,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 5.233553409576416
+      },
+      {
+        "id": "e455",
+        "source": 310,
+        "target": 334,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -309.1659851074219
+      },
+      {
+        "id": "e456",
+        "source": 276,
+        "target": 335,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -23.976234436035156
+      },
+      {
+        "id": "e457",
+        "source": 335,
+        "target": 282,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 27.03182601928711
+      },
+      {
+        "id": "e458",
+        "source": 282,
+        "target": 336,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 8.734492301940918
+      },
+      {
+        "id": "e459",
+        "source": 336,
+        "target": 280,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 39.4581413269043
+      },
+      {
+        "id": "e460",
+        "source": 280,
+        "target": 337,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -24.541135787963867
+      },
+      {
+        "id": "e461",
+        "source": 337,
+        "target": 278,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 10.863116264343262
+      },
+      {
+        "id": "e462",
+        "source": 265,
+        "target": 335,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 45.36952209472656
+      },
+      {
+        "id": "e463",
+        "source": 230,
+        "target": 336,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 20.227602005004883
+      },
+      {
+        "id": "e464",
+        "source": 71,
+        "target": 337,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 24.931440353393555
+      },
+      {
+        "id": "e465",
+        "source": 275,
+        "target": 277,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -35.50371551513672
+      },
+      {
+        "id": "e466",
+        "source": 340,
+        "target": 341,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -127.70823669433594
+      },
+      {
+        "id": "e467",
+        "source": 341,
+        "target": 342,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -220.38587951660156
+      },
+      {
+        "id": "e468",
+        "source": 342,
+        "target": 343,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 215.023193359375
+      },
+      {
+        "id": "e469",
+        "source": 343,
+        "target": 344,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -258.2576904296875
+      },
+      {
+        "id": "e470",
+        "source": 344,
+        "target": 345,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -205.4753875732422
+      },
+      {
+        "id": "e471",
+        "source": 345,
+        "target": 346,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -188.43162536621094
+      },
+      {
+        "id": "e472",
+        "source": 346,
+        "target": 347,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 198.8480987548828
+      },
+      {
+        "id": "e473",
+        "source": 347,
+        "target": 340,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -124.12234497070312
+      },
+      {
+        "id": "e474",
+        "source": 339,
+        "target": 341,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -22.26812744140625
+      },
+      {
+        "id": "e475",
+        "source": 338,
+        "target": 343,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -398.9844665527344
+      },
+      {
+        "id": "e476",
+        "source": 300,
+        "target": 345,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 80.75470733642578
+      },
+      {
+        "id": "e477",
+        "source": 265,
+        "target": 347,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -250.91006469726562
+      },
+      {
+        "id": "e478",
+        "source": 349,
+        "target": 350,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 20.250722885131836
+      },
+      {
+        "id": "e479",
+        "source": 350,
+        "target": 351,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -11.039097785949707
+      },
+      {
+        "id": "e480",
+        "source": 351,
+        "target": 352,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -25.712970733642578
+      },
+      {
+        "id": "e481",
+        "source": 352,
+        "target": 353,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -9.027311325073242
+      },
+      {
+        "id": "e482",
+        "source": 353,
+        "target": 354,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -12.879143714904785
+      },
+      {
+        "id": "e483",
+        "source": 354,
+        "target": 355,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 61.034942626953125
+      },
+      {
+        "id": "e484",
+        "source": 355,
+        "target": 356,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 48.1417350769043
+      },
+      {
+        "id": "e485",
+        "source": 356,
+        "target": 349,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 75.11280822753906
+      },
+      {
+        "id": "e486",
+        "source": 170,
+        "target": 354,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 72.00106811523438
+      },
+      {
+        "id": "e487",
+        "source": 310,
+        "target": 356,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 15.908750534057617
+      },
+      {
+        "id": "e488",
+        "source": 338,
+        "target": 350,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -31.451765060424805
+      },
+      {
+        "id": "e489",
+        "source": 348,
+        "target": 352,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 22.029170989990234
+      },
+      {
+        "id": "e490",
+        "source": 171,
+        "target": 179,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -134.580078125
+      },
+      {
+        "id": "e491",
+        "source": 71,
+        "target": 177,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -473.37933349609375
+      },
+      {
+        "id": "e492",
+        "source": 118,
+        "target": 175,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -163.83091735839844
+      },
+      {
+        "id": "e493",
+        "source": 170,
+        "target": 173,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -323.9991149902344
+      },
+      {
+        "id": "e494",
+        "source": 310,
+        "target": 328,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -410.49468994140625
+      },
+      {
+        "id": "e495",
+        "source": 118,
+        "target": 330,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -75.80782318115234
+      },
+      {
+        "id": "e496",
+        "source": 230,
+        "target": 332,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -576.5220336914062
+      },
+      {
+        "id": "e497",
+        "source": 300,
+        "target": 334,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 101.36441040039062
+      },
+      {
+        "id": "e498",
+        "source": 357,
+        "target": 358,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -99.87251281738281
+      },
+      {
+        "id": "e499",
+        "source": 358,
+        "target": 359,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -200.55479431152344
+      },
+      {
+        "id": "e500",
+        "source": 359,
+        "target": 360,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -175.38339233398438
+      },
+      {
+        "id": "e501",
+        "source": 360,
+        "target": 361,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 56.78757858276367
+      },
+      {
+        "id": "e502",
+        "source": 361,
+        "target": 362,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -80.49701690673828
+      },
+      {
+        "id": "e503",
+        "source": 362,
+        "target": 363,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -151.17507934570312
+      },
+      {
+        "id": "e504",
+        "source": 363,
+        "target": 364,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -141.35418701171875
+      },
+      {
+        "id": "e505",
+        "source": 364,
+        "target": 357,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 85.09773254394531
+      },
+      {
+        "id": "e506",
+        "source": 339,
+        "target": 362,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -11.815085411071777
+      },
+      {
+        "id": "e507",
+        "source": 275,
+        "target": 360,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -291.2039794921875
+      },
+      {
+        "id": "e508",
+        "source": 171,
+        "target": 358,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -0.8444892168045044
+      },
+      {
+        "id": "e509",
+        "source": 348,
+        "target": 364,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -319.3772277832031
+      }
+    ],
+    "ndofs": 2190,
+    "animation": {
+      "showDisplacement": true,
+      "exageration": 2000,
+      "speed": 3
+    },
+    "viz": {
+      "minStress": -1098.2994445800782,
+      "maxStress": 419.0292022705078,
+      "colorMaps": [
+        [
+          [
+            0,
+            [
+              0.23,
+              0.299,
+              0.754
+            ]
+          ],
+          [
+            0.002,
+            [
+              0.23,
+              0.299,
+              0.754
+            ]
+          ],
+          [
+            0.004,
+            [
+              0.234,
+              0.306,
+              0.76
+            ]
+          ],
+          [
+            0.006,
+            [
+              0.234,
+              0.306,
+              0.76
+            ]
+          ],
+          [
+            0.008,
+            [
+              0.239,
+              0.312,
+              0.766
+            ]
+          ],
+          [
+            0.01,
+            [
+              0.239,
+              0.312,
+              0.766
+            ]
+          ],
+          [
+            0.012,
+            [
+              0.244,
+              0.319,
+              0.772
+            ]
+          ],
+          [
+            0.014,
+            [
+              0.244,
+              0.319,
+              0.772
+            ]
+          ],
+          [
+            0.016,
+            [
+              0.248,
+              0.326,
+              0.778
+            ]
+          ],
+          [
+            0.018,
+            [
+              0.248,
+              0.326,
+              0.778
+            ]
+          ],
+          [
+            0.02,
+            [
+              0.253,
+              0.333,
+              0.784
+            ]
+          ],
+          [
+            0.022,
+            [
+              0.253,
+              0.333,
+              0.784
+            ]
+          ],
+          [
+            0.023,
+            [
+              0.257,
+              0.34,
+              0.79
+            ]
+          ],
+          [
+            0.025,
+            [
+              0.257,
+              0.34,
+              0.79
+            ]
+          ],
+          [
+            0.027,
+            [
+              0.262,
+              0.346,
+              0.796
+            ]
+          ],
+          [
+            0.029,
+            [
+              0.262,
+              0.346,
+              0.796
+            ]
+          ],
+          [
+            0.031,
+            [
+              0.266,
+              0.353,
+              0.802
+            ]
+          ],
+          [
+            0.033,
+            [
+              0.266,
+              0.353,
+              0.802
+            ]
+          ],
+          [
+            0.035,
+            [
+              0.271,
+              0.36,
+              0.807
+            ]
+          ],
+          [
+            0.037,
+            [
+              0.271,
+              0.36,
+              0.807
+            ]
+          ],
+          [
+            0.039,
+            [
+              0.276,
+              0.367,
+              0.813
+            ]
+          ],
+          [
+            0.041,
+            [
+              0.276,
+              0.367,
+              0.813
+            ]
+          ],
+          [
+            0.043,
+            [
+              0.281,
+              0.373,
+              0.818
+            ]
+          ],
+          [
+            0.045,
+            [
+              0.281,
+              0.373,
+              0.818
+            ]
+          ],
+          [
+            0.047,
+            [
+              0.285,
+              0.38,
+              0.823
+            ]
+          ],
+          [
+            0.049,
+            [
+              0.285,
+              0.38,
+              0.823
+            ]
+          ],
+          [
+            0.051,
+            [
+              0.29,
+              0.387,
+              0.829
+            ]
+          ],
+          [
+            0.053,
+            [
+              0.29,
+              0.387,
+              0.829
+            ]
+          ],
+          [
+            0.055,
+            [
+              0.295,
+              0.394,
+              0.834
+            ]
+          ],
+          [
+            0.057,
+            [
+              0.295,
+              0.394,
+              0.834
+            ]
+          ],
+          [
+            0.059,
+            [
+              0.299,
+              0.4,
+              0.84
+            ]
+          ],
+          [
+            0.061,
+            [
+              0.299,
+              0.4,
+              0.84
+            ]
+          ],
+          [
+            0.063,
+            [
+              0.304,
+              0.407,
+              0.845
+            ]
+          ],
+          [
+            0.065,
+            [
+              0.304,
+              0.407,
+              0.845
+            ]
+          ],
+          [
+            0.067,
+            [
+              0.309,
+              0.413,
+              0.85
+            ]
+          ],
+          [
+            0.068,
+            [
+              0.309,
+              0.413,
+              0.85
+            ]
+          ],
+          [
+            0.07,
+            [
+              0.314,
+              0.42,
+              0.855
+            ]
+          ],
+          [
+            0.072,
+            [
+              0.314,
+              0.42,
+              0.855
+            ]
+          ],
+          [
+            0.074,
+            [
+              0.319,
+              0.427,
+              0.86
+            ]
+          ],
+          [
+            0.076,
+            [
+              0.319,
+              0.427,
+              0.86
+            ]
+          ],
+          [
+            0.078,
+            [
+              0.324,
+              0.433,
+              0.865
+            ]
+          ],
+          [
+            0.08,
+            [
+              0.324,
+              0.433,
+              0.865
+            ]
+          ],
+          [
+            0.082,
+            [
+              0.329,
+              0.44,
+              0.87
+            ]
+          ],
+          [
+            0.084,
+            [
+              0.329,
+              0.44,
+              0.87
+            ]
+          ],
+          [
+            0.086,
+            [
+              0.333,
+              0.446,
+              0.874
+            ]
+          ],
+          [
+            0.088,
+            [
+              0.333,
+              0.446,
+              0.874
+            ]
+          ],
+          [
+            0.09,
+            [
+              0.338,
+              0.453,
+              0.879
+            ]
+          ],
+          [
+            0.092,
+            [
+              0.338,
+              0.453,
+              0.879
+            ]
+          ],
+          [
+            0.094,
+            [
+              0.343,
+              0.459,
+              0.884
+            ]
+          ],
+          [
+            0.096,
+            [
+              0.343,
+              0.459,
+              0.884
+            ]
+          ],
+          [
+            0.098,
+            [
+              0.348,
+              0.466,
+              0.888
+            ]
+          ],
+          [
+            0.1,
+            [
+              0.348,
+              0.466,
+              0.888
+            ]
+          ],
+          [
+            0.102,
+            [
+              0.353,
+              0.472,
+              0.893
+            ]
+          ],
+          [
+            0.104,
+            [
+              0.353,
+              0.472,
+              0.893
+            ]
+          ],
+          [
+            0.106,
+            [
+              0.358,
+              0.478,
+              0.897
+            ]
+          ],
+          [
+            0.108,
+            [
+              0.358,
+              0.478,
+              0.897
+            ]
+          ],
+          [
+            0.11,
+            [
+              0.363,
+              0.485,
+              0.901
+            ]
+          ],
+          [
+            0.112,
+            [
+              0.363,
+              0.485,
+              0.901
+            ]
+          ],
+          [
+            0.114,
+            [
+              0.369,
+              0.491,
+              0.905
+            ]
+          ],
+          [
+            0.115,
+            [
+              0.369,
+              0.491,
+              0.905
+            ]
+          ],
+          [
+            0.117,
+            [
+              0.374,
+              0.497,
+              0.909
+            ]
+          ],
+          [
+            0.119,
+            [
+              0.374,
+              0.497,
+              0.909
+            ]
+          ],
+          [
+            0.121,
+            [
+              0.379,
+              0.504,
+              0.914
+            ]
+          ],
+          [
+            0.123,
+            [
+              0.379,
+              0.504,
+              0.914
+            ]
+          ],
+          [
+            0.125,
+            [
+              0.384,
+              0.51,
+              0.918
+            ]
+          ],
+          [
+            0.127,
+            [
+              0.384,
+              0.51,
+              0.918
+            ]
+          ],
+          [
+            0.129,
+            [
+              0.389,
+              0.516,
+              0.921
+            ]
+          ],
+          [
+            0.131,
+            [
+              0.389,
+              0.516,
+              0.921
+            ]
+          ],
+          [
+            0.133,
+            [
+              0.394,
+              0.522,
+              0.925
+            ]
+          ],
+          [
+            0.135,
+            [
+              0.394,
+              0.522,
+              0.925
+            ]
+          ],
+          [
+            0.137,
+            [
+              0.399,
+              0.529,
+              0.928
+            ]
+          ],
+          [
+            0.139,
+            [
+              0.399,
+              0.529,
+              0.928
+            ]
+          ],
+          [
+            0.141,
+            [
+              0.404,
+              0.535,
+              0.932
+            ]
+          ],
+          [
+            0.143,
+            [
+              0.404,
+              0.535,
+              0.932
+            ]
+          ],
+          [
+            0.145,
+            [
+              0.41,
+              0.541,
+              0.936
+            ]
+          ],
+          [
+            0.147,
+            [
+              0.41,
+              0.541,
+              0.936
+            ]
+          ],
+          [
+            0.149,
+            [
+              0.415,
+              0.547,
+              0.939
+            ]
+          ],
+          [
+            0.151,
+            [
+              0.415,
+              0.547,
+              0.939
+            ]
+          ],
+          [
+            0.153,
+            [
+              0.42,
+              0.553,
+              0.943
+            ]
+          ],
+          [
+            0.155,
+            [
+              0.42,
+              0.553,
+              0.943
+            ]
+          ],
+          [
+            0.157,
+            [
+              0.425,
+              0.559,
+              0.946
+            ]
+          ],
+          [
+            0.159,
+            [
+              0.425,
+              0.559,
+              0.946
+            ]
+          ],
+          [
+            0.16,
+            [
+              0.431,
+              0.565,
+              0.949
+            ]
+          ],
+          [
+            0.162,
+            [
+              0.431,
+              0.565,
+              0.949
+            ]
+          ],
+          [
+            0.164,
+            [
+              0.436,
+              0.571,
+              0.952
+            ]
+          ],
+          [
+            0.166,
+            [
+              0.436,
+              0.571,
+              0.952
+            ]
+          ],
+          [
+            0.168,
+            [
+              0.441,
+              0.577,
+              0.955
+            ]
+          ],
+          [
+            0.17,
+            [
+              0.441,
+              0.577,
+              0.955
+            ]
+          ],
+          [
+            0.172,
+            [
+              0.446,
+              0.582,
+              0.957
+            ]
+          ],
+          [
+            0.174,
+            [
+              0.446,
+              0.582,
+              0.957
+            ]
+          ],
+          [
+            0.176,
+            [
+              0.452,
+              0.588,
+              0.96
+            ]
+          ],
+          [
+            0.178,
+            [
+              0.452,
+              0.588,
+              0.96
+            ]
+          ],
+          [
+            0.18,
+            [
+              0.457,
+              0.594,
+              0.963
+            ]
+          ],
+          [
+            0.182,
+            [
+              0.457,
+              0.594,
+              0.963
+            ]
+          ],
+          [
+            0.184,
+            [
+              0.462,
+              0.6,
+              0.966
+            ]
+          ],
+          [
+            0.186,
+            [
+              0.462,
+              0.6,
+              0.966
+            ]
+          ],
+          [
+            0.188,
+            [
+              0.468,
+              0.606,
+              0.969
+            ]
+          ],
+          [
+            0.19,
+            [
+              0.468,
+              0.606,
+              0.969
+            ]
+          ],
+          [
+            0.192,
+            [
+              0.473,
+              0.611,
+              0.971
+            ]
+          ],
+          [
+            0.194,
+            [
+              0.473,
+              0.611,
+              0.971
+            ]
+          ],
+          [
+            0.196,
+            [
+              0.478,
+              0.617,
+              0.973
+            ]
+          ],
+          [
+            0.198,
+            [
+              0.478,
+              0.617,
+              0.973
+            ]
+          ],
+          [
+            0.2,
+            [
+              0.484,
+              0.622,
+              0.975
+            ]
+          ],
+          [
+            0.202,
+            [
+              0.484,
+              0.622,
+              0.975
+            ]
+          ],
+          [
+            0.204,
+            [
+              0.489,
+              0.628,
+              0.977
+            ]
+          ],
+          [
+            0.205,
+            [
+              0.489,
+              0.628,
+              0.977
+            ]
+          ],
+          [
+            0.207,
+            [
+              0.495,
+              0.633,
+              0.979
+            ]
+          ],
+          [
+            0.209,
+            [
+              0.495,
+              0.633,
+              0.979
+            ]
+          ],
+          [
+            0.211,
+            [
+              0.5,
+              0.639,
+              0.981
+            ]
+          ],
+          [
+            0.213,
+            [
+              0.5,
+              0.639,
+              0.981
+            ]
+          ],
+          [
+            0.215,
+            [
+              0.505,
+              0.644,
+              0.983
+            ]
+          ],
+          [
+            0.217,
+            [
+              0.505,
+              0.644,
+              0.983
+            ]
+          ],
+          [
+            0.219,
+            [
+              0.511,
+              0.649,
+              0.985
+            ]
+          ],
+          [
+            0.221,
+            [
+              0.511,
+              0.649,
+              0.985
+            ]
+          ],
+          [
+            0.223,
+            [
+              0.516,
+              0.654,
+              0.986
+            ]
+          ],
+          [
+            0.225,
+            [
+              0.516,
+              0.654,
+              0.986
+            ]
+          ],
+          [
+            0.227,
+            [
+              0.522,
+              0.66,
+              0.988
+            ]
+          ],
+          [
+            0.229,
+            [
+              0.522,
+              0.66,
+              0.988
+            ]
+          ],
+          [
+            0.231,
+            [
+              0.527,
+              0.665,
+              0.989
+            ]
+          ],
+          [
+            0.233,
+            [
+              0.527,
+              0.665,
+              0.989
+            ]
+          ],
+          [
+            0.235,
+            [
+              0.533,
+              0.67,
+              0.99
+            ]
+          ],
+          [
+            0.237,
+            [
+              0.533,
+              0.67,
+              0.99
+            ]
+          ],
+          [
+            0.239,
+            [
+              0.538,
+              0.675,
+              0.992
+            ]
+          ],
+          [
+            0.241,
+            [
+              0.538,
+              0.675,
+              0.992
+            ]
+          ],
+          [
+            0.243,
+            [
+              0.543,
+              0.68,
+              0.993
+            ]
+          ],
+          [
+            0.245,
+            [
+              0.543,
+              0.68,
+              0.993
+            ]
+          ],
+          [
+            0.247,
+            [
+              0.549,
+              0.685,
+              0.994
+            ]
+          ],
+          [
+            0.249,
+            [
+              0.549,
+              0.685,
+              0.994
+            ]
+          ],
+          [
+            0.25,
+            [
+              0.554,
+              0.69,
+              0.996
+            ]
+          ],
+          [
+            0.252,
+            [
+              0.554,
+              0.69,
+              0.996
+            ]
+          ],
+          [
+            0.254,
+            [
+              0.56,
+              0.695,
+              0.996
+            ]
+          ],
+          [
+            0.256,
+            [
+              0.56,
+              0.695,
+              0.996
+            ]
+          ],
+          [
+            0.258,
+            [
+              0.565,
+              0.699,
+              0.997
+            ]
+          ],
+          [
+            0.26,
+            [
+              0.565,
+              0.699,
+              0.997
+            ]
+          ],
+          [
+            0.262,
+            [
+              0.571,
+              0.704,
+              0.997
+            ]
+          ],
+          [
+            0.264,
+            [
+              0.571,
+              0.704,
+              0.997
+            ]
+          ],
+          [
+            0.266,
+            [
+              0.576,
+              0.709,
+              0.998
+            ]
+          ],
+          [
+            0.268,
+            [
+              0.576,
+              0.709,
+              0.998
+            ]
+          ],
+          [
+            0.27,
+            [
+              0.581,
+              0.713,
+              0.998
+            ]
+          ],
+          [
+            0.272,
+            [
+              0.581,
+              0.713,
+              0.998
+            ]
+          ],
+          [
+            0.274,
+            [
+              0.587,
+              0.718,
+              0.999
+            ]
+          ],
+          [
+            0.276,
+            [
+              0.587,
+              0.718,
+              0.999
+            ]
+          ],
+          [
+            0.278,
+            [
+              0.592,
+              0.723,
+              0.999
+            ]
+          ],
+          [
+            0.28,
+            [
+              0.592,
+              0.723,
+              0.999
+            ]
+          ],
+          [
+            0.282,
+            [
+              0.598,
+              0.727,
+              1
+            ]
+          ],
+          [
+            0.284,
+            [
+              0.598,
+              0.727,
+              1
+            ]
+          ],
+          [
+            0.286,
+            [
+              0.603,
+              0.732,
+              1
+            ]
+          ],
+          [
+            0.288,
+            [
+              0.603,
+              0.732,
+              1
+            ]
+          ],
+          [
+            0.29,
+            [
+              0.609,
+              0.736,
+              0.999
+            ]
+          ],
+          [
+            0.292,
+            [
+              0.609,
+              0.736,
+              0.999
+            ]
+          ],
+          [
+            0.294,
+            [
+              0.614,
+              0.74,
+              0.999
+            ]
+          ],
+          [
+            0.295,
+            [
+              0.614,
+              0.74,
+              0.999
+            ]
+          ],
+          [
+            0.297,
+            [
+              0.619,
+              0.744,
+              0.999
+            ]
+          ],
+          [
+            0.299,
+            [
+              0.619,
+              0.744,
+              0.999
+            ]
+          ],
+          [
+            0.301,
+            [
+              0.625,
+              0.748,
+              0.999
+            ]
+          ],
+          [
+            0.303,
+            [
+              0.625,
+              0.748,
+              0.999
+            ]
+          ],
+          [
+            0.305,
+            [
+              0.63,
+              0.753,
+              0.999
+            ]
+          ],
+          [
+            0.307,
+            [
+              0.63,
+              0.753,
+              0.999
+            ]
+          ],
+          [
+            0.309,
+            [
+              0.635,
+              0.757,
+              0.998
+            ]
+          ],
+          [
+            0.311,
+            [
+              0.635,
+              0.757,
+              0.998
+            ]
+          ],
+          [
+            0.313,
+            [
+              0.641,
+              0.761,
+              0.998
+            ]
+          ],
+          [
+            0.315,
+            [
+              0.641,
+              0.761,
+              0.998
+            ]
+          ],
+          [
+            0.317,
+            [
+              0.646,
+              0.764,
+              0.997
+            ]
+          ],
+          [
+            0.319,
+            [
+              0.646,
+              0.764,
+              0.997
+            ]
+          ],
+          [
+            0.321,
+            [
+              0.651,
+              0.768,
+              0.996
+            ]
+          ],
+          [
+            0.323,
+            [
+              0.651,
+              0.768,
+              0.996
+            ]
+          ],
+          [
+            0.325,
+            [
+              0.657,
+              0.772,
+              0.995
+            ]
+          ],
+          [
+            0.327,
+            [
+              0.657,
+              0.772,
+              0.995
+            ]
+          ],
+          [
+            0.329,
+            [
+              0.662,
+              0.775,
+              0.994
+            ]
+          ],
+          [
+            0.331,
+            [
+              0.662,
+              0.775,
+              0.994
+            ]
+          ],
+          [
+            0.333,
+            [
+              0.667,
+              0.779,
+              0.993
+            ]
+          ],
+          [
+            0.335,
+            [
+              0.667,
+              0.779,
+              0.993
+            ]
+          ],
+          [
+            0.337,
+            [
+              0.673,
+              0.783,
+              0.992
+            ]
+          ],
+          [
+            0.339,
+            [
+              0.673,
+              0.783,
+              0.992
+            ]
+          ],
+          [
+            0.341,
+            [
+              0.678,
+              0.787,
+              0.991
+            ]
+          ],
+          [
+            0.342,
+            [
+              0.678,
+              0.787,
+              0.991
+            ]
+          ],
+          [
+            0.344,
+            [
+              0.683,
+              0.79,
+              0.99
+            ]
+          ],
+          [
+            0.346,
+            [
+              0.683,
+              0.79,
+              0.99
+            ]
+          ],
+          [
+            0.348,
+            [
+              0.688,
+              0.793,
+              0.988
+            ]
+          ],
+          [
+            0.35,
+            [
+              0.688,
+              0.793,
+              0.988
+            ]
+          ],
+          [
+            0.352,
+            [
+              0.693,
+              0.796,
+              0.986
+            ]
+          ],
+          [
+            0.354,
+            [
+              0.693,
+              0.796,
+              0.986
+            ]
+          ],
+          [
+            0.356,
+            [
+              0.698,
+              0.799,
+              0.985
+            ]
+          ],
+          [
+            0.358,
+            [
+              0.698,
+              0.799,
+              0.985
+            ]
+          ],
+          [
+            0.36,
+            [
+              0.704,
+              0.803,
+              0.983
+            ]
+          ],
+          [
+            0.362,
+            [
+              0.704,
+              0.803,
+              0.983
+            ]
+          ],
+          [
+            0.364,
+            [
+              0.709,
+              0.806,
+              0.981
+            ]
+          ],
+          [
+            0.366,
+            [
+              0.709,
+              0.806,
+              0.981
+            ]
+          ],
+          [
+            0.368,
+            [
+              0.714,
+              0.809,
+              0.979
+            ]
+          ],
+          [
+            0.37,
+            [
+              0.714,
+              0.809,
+              0.979
+            ]
+          ],
+          [
+            0.372,
+            [
+              0.719,
+              0.812,
+              0.978
+            ]
+          ],
+          [
+            0.374,
+            [
+              0.719,
+              0.812,
+              0.978
+            ]
+          ],
+          [
+            0.376,
+            [
+              0.724,
+              0.815,
+              0.976
+            ]
+          ],
+          [
+            0.378,
+            [
+              0.724,
+              0.815,
+              0.976
+            ]
+          ],
+          [
+            0.38,
+            [
+              0.729,
+              0.817,
+              0.973
+            ]
+          ],
+          [
+            0.382,
+            [
+              0.729,
+              0.817,
+              0.973
+            ]
+          ],
+          [
+            0.384,
+            [
+              0.734,
+              0.82,
+              0.971
+            ]
+          ],
+          [
+            0.386,
+            [
+              0.734,
+              0.82,
+              0.971
+            ]
+          ],
+          [
+            0.387,
+            [
+              0.739,
+              0.823,
+              0.968
+            ]
+          ],
+          [
+            0.389,
+            [
+              0.739,
+              0.823,
+              0.968
+            ]
+          ],
+          [
+            0.391,
+            [
+              0.744,
+              0.825,
+              0.966
+            ]
+          ],
+          [
+            0.393,
+            [
+              0.744,
+              0.825,
+              0.966
+            ]
+          ],
+          [
+            0.395,
+            [
+              0.749,
+              0.828,
+              0.963
+            ]
+          ],
+          [
+            0.397,
+            [
+              0.749,
+              0.828,
+              0.963
+            ]
+          ],
+          [
+            0.399,
+            [
+              0.754,
+              0.83,
+              0.961
+            ]
+          ],
+          [
+            0.401,
+            [
+              0.754,
+              0.83,
+              0.961
+            ]
+          ],
+          [
+            0.403,
+            [
+              0.759,
+              0.833,
+              0.958
+            ]
+          ],
+          [
+            0.405,
+            [
+              0.759,
+              0.833,
+              0.958
+            ]
+          ],
+          [
+            0.407,
+            [
+              0.763,
+              0.835,
+              0.956
+            ]
+          ],
+          [
+            0.409,
+            [
+              0.763,
+              0.835,
+              0.956
+            ]
+          ],
+          [
+            0.411,
+            [
+              0.768,
+              0.837,
+              0.952
+            ]
+          ],
+          [
+            0.413,
+            [
+              0.768,
+              0.837,
+              0.952
+            ]
+          ],
+          [
+            0.415,
+            [
+              0.773,
+              0.839,
+              0.949
+            ]
+          ],
+          [
+            0.417,
+            [
+              0.773,
+              0.839,
+              0.949
+            ]
+          ],
+          [
+            0.419,
+            [
+              0.777,
+              0.841,
+              0.946
+            ]
+          ],
+          [
+            0.421,
+            [
+              0.777,
+              0.841,
+              0.946
+            ]
+          ],
+          [
+            0.423,
+            [
+              0.782,
+              0.843,
+              0.943
+            ]
+          ],
+          [
+            0.425,
+            [
+              0.782,
+              0.843,
+              0.943
+            ]
+          ],
+          [
+            0.427,
+            [
+              0.787,
+              0.845,
+              0.94
+            ]
+          ],
+          [
+            0.429,
+            [
+              0.787,
+              0.845,
+              0.94
+            ]
+          ],
+          [
+            0.431,
+            [
+              0.791,
+              0.847,
+              0.937
+            ]
+          ],
+          [
+            0.432,
+            [
+              0.791,
+              0.847,
+              0.937
+            ]
+          ],
+          [
+            0.434,
+            [
+              0.796,
+              0.849,
+              0.933
+            ]
+          ],
+          [
+            0.436,
+            [
+              0.796,
+              0.849,
+              0.933
+            ]
+          ],
+          [
+            0.438,
+            [
+              0.801,
+              0.85,
+              0.93
+            ]
+          ],
+          [
+            0.44,
+            [
+              0.801,
+              0.85,
+              0.93
+            ]
+          ],
+          [
+            0.442,
+            [
+              0.805,
+              0.852,
+              0.926
+            ]
+          ],
+          [
+            0.444,
+            [
+              0.805,
+              0.852,
+              0.926
+            ]
+          ],
+          [
+            0.446,
+            [
+              0.809,
+              0.853,
+              0.922
+            ]
+          ],
+          [
+            0.448,
+            [
+              0.809,
+              0.853,
+              0.922
+            ]
+          ],
+          [
+            0.45,
+            [
+              0.814,
+              0.854,
+              0.918
+            ]
+          ],
+          [
+            0.452,
+            [
+              0.814,
+              0.854,
+              0.918
+            ]
+          ],
+          [
+            0.454,
+            [
+              0.818,
+              0.856,
+              0.915
+            ]
+          ],
+          [
+            0.456,
+            [
+              0.818,
+              0.856,
+              0.915
+            ]
+          ],
+          [
+            0.458,
+            [
+              0.822,
+              0.857,
+              0.911
+            ]
+          ],
+          [
+            0.46,
+            [
+              0.822,
+              0.857,
+              0.911
+            ]
+          ],
+          [
+            0.462,
+            [
+              0.827,
+              0.858,
+              0.907
+            ]
+          ],
+          [
+            0.464,
+            [
+              0.827,
+              0.858,
+              0.907
+            ]
+          ],
+          [
+            0.466,
+            [
+              0.831,
+              0.86,
+              0.903
+            ]
+          ],
+          [
+            0.468,
+            [
+              0.831,
+              0.86,
+              0.903
+            ]
+          ],
+          [
+            0.47,
+            [
+              0.835,
+              0.861,
+              0.899
+            ]
+          ],
+          [
+            0.472,
+            [
+              0.835,
+              0.861,
+              0.899
+            ]
+          ],
+          [
+            0.474,
+            [
+              0.839,
+              0.861,
+              0.894
+            ]
+          ],
+          [
+            0.476,
+            [
+              0.839,
+              0.861,
+              0.894
+            ]
+          ],
+          [
+            0.477,
+            [
+              0.843,
+              0.862,
+              0.89
+            ]
+          ],
+          [
+            0.479,
+            [
+              0.843,
+              0.862,
+              0.89
+            ]
+          ],
+          [
+            0.481,
+            [
+              0.847,
+              0.862,
+              0.886
+            ]
+          ],
+          [
+            0.483,
+            [
+              0.847,
+              0.862,
+              0.886
+            ]
+          ],
+          [
+            0.485,
+            [
+              0.851,
+              0.863,
+              0.881
+            ]
+          ],
+          [
+            0.487,
+            [
+              0.851,
+              0.863,
+              0.881
+            ]
+          ],
+          [
+            0.489,
+            [
+              0.855,
+              0.864,
+              0.877
+            ]
+          ],
+          [
+            0.491,
+            [
+              0.855,
+              0.864,
+              0.877
+            ]
+          ],
+          [
+            0.493,
+            [
+              0.859,
+              0.864,
+              0.872
+            ]
+          ],
+          [
+            0.495,
+            [
+              0.859,
+              0.864,
+              0.872
+            ]
+          ],
+          [
+            0.497,
+            [
+              0.863,
+              0.865,
+              0.868
+            ]
+          ],
+          [
+            0.499,
+            [
+              0.863,
+              0.865,
+              0.868
+            ]
+          ],
+          [
+            0.501,
+            [
+              0.867,
+              0.864,
+              0.863
+            ]
+          ],
+          [
+            0.503,
+            [
+              0.867,
+              0.864,
+              0.863
+            ]
+          ],
+          [
+            0.505,
+            [
+              0.871,
+              0.862,
+              0.857
+            ]
+          ],
+          [
+            0.507,
+            [
+              0.871,
+              0.862,
+              0.857
+            ]
+          ],
+          [
+            0.509,
+            [
+              0.876,
+              0.86,
+              0.851
+            ]
+          ],
+          [
+            0.511,
+            [
+              0.876,
+              0.86,
+              0.851
+            ]
+          ],
+          [
+            0.513,
+            [
+              0.88,
+              0.858,
+              0.846
+            ]
+          ],
+          [
+            0.515,
+            [
+              0.88,
+              0.858,
+              0.846
+            ]
+          ],
+          [
+            0.517,
+            [
+              0.884,
+              0.856,
+              0.84
+            ]
+          ],
+          [
+            0.519,
+            [
+              0.884,
+              0.856,
+              0.84
+            ]
+          ],
+          [
+            0.521,
+            [
+              0.888,
+              0.854,
+              0.835
+            ]
+          ],
+          [
+            0.523,
+            [
+              0.888,
+              0.854,
+              0.835
+            ]
+          ],
+          [
+            0.524,
+            [
+              0.892,
+              0.852,
+              0.829
+            ]
+          ],
+          [
+            0.526,
+            [
+              0.892,
+              0.852,
+              0.829
+            ]
+          ],
+          [
+            0.528,
+            [
+              0.896,
+              0.85,
+              0.823
+            ]
+          ],
+          [
+            0.53,
+            [
+              0.896,
+              0.85,
+              0.823
+            ]
+          ],
+          [
+            0.532,
+            [
+              0.9,
+              0.848,
+              0.818
+            ]
+          ],
+          [
+            0.534,
+            [
+              0.9,
+              0.848,
+              0.818
+            ]
+          ],
+          [
+            0.536,
+            [
+              0.903,
+              0.845,
+              0.812
+            ]
+          ],
+          [
+            0.538,
+            [
+              0.903,
+              0.845,
+              0.812
+            ]
+          ],
+          [
+            0.54,
+            [
+              0.906,
+              0.842,
+              0.806
+            ]
+          ],
+          [
+            0.542,
+            [
+              0.906,
+              0.842,
+              0.806
+            ]
+          ],
+          [
+            0.544,
+            [
+              0.909,
+              0.839,
+              0.8
+            ]
+          ],
+          [
+            0.546,
+            [
+              0.909,
+              0.839,
+              0.8
+            ]
+          ],
+          [
+            0.548,
+            [
+              0.913,
+              0.837,
+              0.795
+            ]
+          ],
+          [
+            0.55,
+            [
+              0.913,
+              0.837,
+              0.795
+            ]
+          ],
+          [
+            0.552,
+            [
+              0.916,
+              0.834,
+              0.789
+            ]
+          ],
+          [
+            0.554,
+            [
+              0.916,
+              0.834,
+              0.789
+            ]
+          ],
+          [
+            0.556,
+            [
+              0.919,
+              0.831,
+              0.783
+            ]
+          ],
+          [
+            0.558,
+            [
+              0.919,
+              0.831,
+              0.783
+            ]
+          ],
+          [
+            0.56,
+            [
+              0.923,
+              0.829,
+              0.777
+            ]
+          ],
+          [
+            0.562,
+            [
+              0.923,
+              0.829,
+              0.777
+            ]
+          ],
+          [
+            0.564,
+            [
+              0.926,
+              0.826,
+              0.771
+            ]
+          ],
+          [
+            0.566,
+            [
+              0.926,
+              0.826,
+              0.771
+            ]
+          ],
+          [
+            0.568,
+            [
+              0.928,
+              0.822,
+              0.765
+            ]
+          ],
+          [
+            0.569,
+            [
+              0.928,
+              0.822,
+              0.765
+            ]
+          ],
+          [
+            0.571,
+            [
+              0.931,
+              0.819,
+              0.759
+            ]
+          ],
+          [
+            0.573,
+            [
+              0.931,
+              0.819,
+              0.759
+            ]
+          ],
+          [
+            0.575,
+            [
+              0.933,
+              0.816,
+              0.753
+            ]
+          ],
+          [
+            0.577,
+            [
+              0.933,
+              0.816,
+              0.753
+            ]
+          ],
+          [
+            0.579,
+            [
+              0.936,
+              0.812,
+              0.747
+            ]
+          ],
+          [
+            0.581,
+            [
+              0.936,
+              0.812,
+              0.747
+            ]
+          ],
+          [
+            0.583,
+            [
+              0.938,
+              0.809,
+              0.741
+            ]
+          ],
+          [
+            0.585,
+            [
+              0.938,
+              0.809,
+              0.741
+            ]
+          ],
+          [
+            0.587,
+            [
+              0.941,
+              0.806,
+              0.735
+            ]
+          ],
+          [
+            0.589,
+            [
+              0.941,
+              0.806,
+              0.735
+            ]
+          ],
+          [
+            0.591,
+            [
+              0.943,
+              0.802,
+              0.729
+            ]
+          ],
+          [
+            0.593,
+            [
+              0.943,
+              0.802,
+              0.729
+            ]
+          ],
+          [
+            0.595,
+            [
+              0.946,
+              0.799,
+              0.723
+            ]
+          ],
+          [
+            0.597,
+            [
+              0.946,
+              0.799,
+              0.723
+            ]
+          ],
+          [
+            0.599,
+            [
+              0.947,
+              0.795,
+              0.717
+            ]
+          ],
+          [
+            0.601,
+            [
+              0.947,
+              0.795,
+              0.717
+            ]
+          ],
+          [
+            0.603,
+            [
+              0.949,
+              0.791,
+              0.711
+            ]
+          ],
+          [
+            0.605,
+            [
+              0.949,
+              0.791,
+              0.711
+            ]
+          ],
+          [
+            0.607,
+            [
+              0.951,
+              0.787,
+              0.705
+            ]
+          ],
+          [
+            0.609,
+            [
+              0.951,
+              0.787,
+              0.705
+            ]
+          ],
+          [
+            0.611,
+            [
+              0.953,
+              0.783,
+              0.699
+            ]
+          ],
+          [
+            0.613,
+            [
+              0.953,
+              0.783,
+              0.699
+            ]
+          ],
+          [
+            0.614,
+            [
+              0.955,
+              0.779,
+              0.693
+            ]
+          ],
+          [
+            0.616,
+            [
+              0.955,
+              0.779,
+              0.693
+            ]
+          ],
+          [
+            0.618,
+            [
+              0.956,
+              0.775,
+              0.686
+            ]
+          ],
+          [
+            0.62,
+            [
+              0.956,
+              0.775,
+              0.686
+            ]
+          ],
+          [
+            0.622,
+            [
+              0.958,
+              0.771,
+              0.68
+            ]
+          ],
+          [
+            0.624,
+            [
+              0.958,
+              0.771,
+              0.68
+            ]
+          ],
+          [
+            0.626,
+            [
+              0.96,
+              0.767,
+              0.674
+            ]
+          ],
+          [
+            0.628,
+            [
+              0.96,
+              0.767,
+              0.674
+            ]
+          ],
+          [
+            0.63,
+            [
+              0.961,
+              0.763,
+              0.668
+            ]
+          ],
+          [
+            0.632,
+            [
+              0.961,
+              0.763,
+              0.668
+            ]
+          ],
+          [
+            0.634,
+            [
+              0.962,
+              0.758,
+              0.662
+            ]
+          ],
+          [
+            0.636,
+            [
+              0.962,
+              0.758,
+              0.662
+            ]
+          ],
+          [
+            0.638,
+            [
+              0.963,
+              0.754,
+              0.656
+            ]
+          ],
+          [
+            0.64,
+            [
+              0.963,
+              0.754,
+              0.656
+            ]
+          ],
+          [
+            0.642,
+            [
+              0.964,
+              0.749,
+              0.649
+            ]
+          ],
+          [
+            0.644,
+            [
+              0.964,
+              0.749,
+              0.649
+            ]
+          ],
+          [
+            0.646,
+            [
+              0.965,
+              0.745,
+              0.643
+            ]
+          ],
+          [
+            0.648,
+            [
+              0.965,
+              0.745,
+              0.643
+            ]
+          ],
+          [
+            0.65,
+            [
+              0.966,
+              0.74,
+              0.637
+            ]
+          ],
+          [
+            0.652,
+            [
+              0.966,
+              0.74,
+              0.637
+            ]
+          ],
+          [
+            0.654,
+            [
+              0.967,
+              0.736,
+              0.631
+            ]
+          ],
+          [
+            0.656,
+            [
+              0.967,
+              0.736,
+              0.631
+            ]
+          ],
+          [
+            0.658,
+            [
+              0.968,
+              0.731,
+              0.625
+            ]
+          ],
+          [
+            0.659,
+            [
+              0.968,
+              0.731,
+              0.625
+            ]
+          ],
+          [
+            0.661,
+            [
+              0.968,
+              0.726,
+              0.618
+            ]
+          ],
+          [
+            0.663,
+            [
+              0.968,
+              0.726,
+              0.618
+            ]
+          ],
+          [
+            0.665,
+            [
+              0.968,
+              0.721,
+              0.612
+            ]
+          ],
+          [
+            0.667,
+            [
+              0.968,
+              0.721,
+              0.612
+            ]
+          ],
+          [
+            0.669,
+            [
+              0.969,
+              0.716,
+              0.606
+            ]
+          ],
+          [
+            0.671,
+            [
+              0.969,
+              0.716,
+              0.606
+            ]
+          ],
+          [
+            0.673,
+            [
+              0.969,
+              0.711,
+              0.6
+            ]
+          ],
+          [
+            0.675,
+            [
+              0.969,
+              0.711,
+              0.6
+            ]
+          ],
+          [
+            0.677,
+            [
+              0.969,
+              0.706,
+              0.594
+            ]
+          ],
+          [
+            0.679,
+            [
+              0.969,
+              0.706,
+              0.594
+            ]
+          ],
+          [
+            0.681,
+            [
+              0.97,
+              0.701,
+              0.588
+            ]
+          ],
+          [
+            0.683,
+            [
+              0.97,
+              0.701,
+              0.588
+            ]
+          ],
+          [
+            0.685,
+            [
+              0.97,
+              0.696,
+              0.581
+            ]
+          ],
+          [
+            0.687,
+            [
+              0.97,
+              0.696,
+              0.581
+            ]
+          ],
+          [
+            0.689,
+            [
+              0.97,
+              0.69,
+              0.575
+            ]
+          ],
+          [
+            0.691,
+            [
+              0.97,
+              0.69,
+              0.575
+            ]
+          ],
+          [
+            0.693,
+            [
+              0.969,
+              0.685,
+              0.569
+            ]
+          ],
+          [
+            0.695,
+            [
+              0.969,
+              0.685,
+              0.569
+            ]
+          ],
+          [
+            0.697,
+            [
+              0.969,
+              0.679,
+              0.563
+            ]
+          ],
+          [
+            0.699,
+            [
+              0.969,
+              0.679,
+              0.563
+            ]
+          ],
+          [
+            0.701,
+            [
+              0.968,
+              0.674,
+              0.557
+            ]
+          ],
+          [
+            0.703,
+            [
+              0.968,
+              0.674,
+              0.557
+            ]
+          ],
+          [
+            0.705,
+            [
+              0.968,
+              0.668,
+              0.55
+            ]
+          ],
+          [
+            0.706,
+            [
+              0.968,
+              0.668,
+              0.55
+            ]
+          ],
+          [
+            0.708,
+            [
+              0.968,
+              0.663,
+              0.544
+            ]
+          ],
+          [
+            0.71,
+            [
+              0.968,
+              0.663,
+              0.544
+            ]
+          ],
+          [
+            0.712,
+            [
+              0.967,
+              0.657,
+              0.538
+            ]
+          ],
+          [
+            0.714,
+            [
+              0.967,
+              0.657,
+              0.538
+            ]
+          ],
+          [
+            0.716,
+            [
+              0.967,
+              0.652,
+              0.532
+            ]
+          ],
+          [
+            0.718,
+            [
+              0.967,
+              0.652,
+              0.532
+            ]
+          ],
+          [
+            0.72,
+            [
+              0.966,
+              0.646,
+              0.526
+            ]
+          ],
+          [
+            0.722,
+            [
+              0.966,
+              0.646,
+              0.526
+            ]
+          ],
+          [
+            0.724,
+            [
+              0.965,
+              0.64,
+              0.52
+            ]
+          ],
+          [
+            0.726,
+            [
+              0.965,
+              0.64,
+              0.52
+            ]
+          ],
+          [
+            0.728,
+            [
+              0.964,
+              0.634,
+              0.514
+            ]
+          ],
+          [
+            0.73,
+            [
+              0.964,
+              0.634,
+              0.514
+            ]
+          ],
+          [
+            0.732,
+            [
+              0.963,
+              0.628,
+              0.508
+            ]
+          ],
+          [
+            0.734,
+            [
+              0.963,
+              0.628,
+              0.508
+            ]
+          ],
+          [
+            0.736,
+            [
+              0.962,
+              0.622,
+              0.502
+            ]
+          ],
+          [
+            0.738,
+            [
+              0.962,
+              0.622,
+              0.502
+            ]
+          ],
+          [
+            0.74,
+            [
+              0.96,
+              0.616,
+              0.495
+            ]
+          ],
+          [
+            0.742,
+            [
+              0.96,
+              0.616,
+              0.495
+            ]
+          ],
+          [
+            0.744,
+            [
+              0.959,
+              0.61,
+              0.489
+            ]
+          ],
+          [
+            0.746,
+            [
+              0.959,
+              0.61,
+              0.489
+            ]
+          ],
+          [
+            0.748,
+            [
+              0.958,
+              0.604,
+              0.483
+            ]
+          ],
+          [
+            0.75,
+            [
+              0.958,
+              0.604,
+              0.483
+            ]
+          ],
+          [
+            0.751,
+            [
+              0.957,
+              0.598,
+              0.477
+            ]
+          ],
+          [
+            0.753,
+            [
+              0.957,
+              0.598,
+              0.477
+            ]
+          ],
+          [
+            0.755,
+            [
+              0.955,
+              0.592,
+              0.471
+            ]
+          ],
+          [
+            0.757,
+            [
+              0.955,
+              0.592,
+              0.471
+            ]
+          ],
+          [
+            0.759,
+            [
+              0.953,
+              0.585,
+              0.465
+            ]
+          ],
+          [
+            0.761,
+            [
+              0.953,
+              0.585,
+              0.465
+            ]
+          ],
+          [
+            0.763,
+            [
+              0.951,
+              0.579,
+              0.459
+            ]
+          ],
+          [
+            0.765,
+            [
+              0.951,
+              0.579,
+              0.459
+            ]
+          ],
+          [
+            0.767,
+            [
+              0.949,
+              0.572,
+              0.453
+            ]
+          ],
+          [
+            0.769,
+            [
+              0.949,
+              0.572,
+              0.453
+            ]
+          ],
+          [
+            0.771,
+            [
+              0.948,
+              0.566,
+              0.447
+            ]
+          ],
+          [
+            0.773,
+            [
+              0.948,
+              0.566,
+              0.447
+            ]
+          ],
+          [
+            0.775,
+            [
+              0.946,
+              0.56,
+              0.442
+            ]
+          ],
+          [
+            0.777,
+            [
+              0.946,
+              0.56,
+              0.442
+            ]
+          ],
+          [
+            0.779,
+            [
+              0.944,
+              0.553,
+              0.436
+            ]
+          ],
+          [
+            0.781,
+            [
+              0.944,
+              0.553,
+              0.436
+            ]
+          ],
+          [
+            0.783,
+            [
+              0.942,
+              0.546,
+              0.43
+            ]
+          ],
+          [
+            0.785,
+            [
+              0.942,
+              0.546,
+              0.43
+            ]
+          ],
+          [
+            0.787,
+            [
+              0.939,
+              0.54,
+              0.424
+            ]
+          ],
+          [
+            0.789,
+            [
+              0.939,
+              0.54,
+              0.424
+            ]
+          ],
+          [
+            0.791,
+            [
+              0.937,
+              0.533,
+              0.418
+            ]
+          ],
+          [
+            0.793,
+            [
+              0.937,
+              0.533,
+              0.418
+            ]
+          ],
+          [
+            0.795,
+            [
+              0.934,
+              0.526,
+              0.412
+            ]
+          ],
+          [
+            0.796,
+            [
+              0.934,
+              0.526,
+              0.412
+            ]
+          ],
+          [
+            0.798,
+            [
+              0.932,
+              0.519,
+              0.406
+            ]
+          ],
+          [
+            0.8,
+            [
+              0.932,
+              0.519,
+              0.406
+            ]
+          ],
+          [
+            0.802,
+            [
+              0.929,
+              0.512,
+              0.401
+            ]
+          ],
+          [
+            0.804,
+            [
+              0.929,
+              0.512,
+              0.401
+            ]
+          ],
+          [
+            0.806,
+            [
+              0.927,
+              0.505,
+              0.395
+            ]
+          ],
+          [
+            0.808,
+            [
+              0.927,
+              0.505,
+              0.395
+            ]
+          ],
+          [
+            0.81,
+            [
+              0.924,
+              0.499,
+              0.389
+            ]
+          ],
+          [
+            0.812,
+            [
+              0.924,
+              0.499,
+              0.389
+            ]
+          ],
+          [
+            0.814,
+            [
+              0.921,
+              0.491,
+              0.383
+            ]
+          ],
+          [
+            0.816,
+            [
+              0.921,
+              0.491,
+              0.383
+            ]
+          ],
+          [
+            0.818,
+            [
+              0.918,
+              0.484,
+              0.378
+            ]
+          ],
+          [
+            0.82,
+            [
+              0.918,
+              0.484,
+              0.378
+            ]
+          ],
+          [
+            0.822,
+            [
+              0.915,
+              0.477,
+              0.372
+            ]
+          ],
+          [
+            0.824,
+            [
+              0.915,
+              0.477,
+              0.372
+            ]
+          ],
+          [
+            0.826,
+            [
+              0.912,
+              0.47,
+              0.367
+            ]
+          ],
+          [
+            0.828,
+            [
+              0.912,
+              0.47,
+              0.367
+            ]
+          ],
+          [
+            0.83,
+            [
+              0.909,
+              0.462,
+              0.361
+            ]
+          ],
+          [
+            0.832,
+            [
+              0.909,
+              0.462,
+              0.361
+            ]
+          ],
+          [
+            0.834,
+            [
+              0.906,
+              0.455,
+              0.355
+            ]
+          ],
+          [
+            0.836,
+            [
+              0.906,
+              0.455,
+              0.355
+            ]
+          ],
+          [
+            0.838,
+            [
+              0.903,
+              0.448,
+              0.35
+            ]
+          ],
+          [
+            0.84,
+            [
+              0.903,
+              0.448,
+              0.35
+            ]
+          ],
+          [
+            0.841,
+            [
+              0.9,
+              0.441,
+              0.344
+            ]
+          ],
+          [
+            0.843,
+            [
+              0.9,
+              0.441,
+              0.344
+            ]
+          ],
+          [
+            0.845,
+            [
+              0.896,
+              0.433,
+              0.339
+            ]
+          ],
+          [
+            0.847,
+            [
+              0.896,
+              0.433,
+              0.339
+            ]
+          ],
+          [
+            0.849,
+            [
+              0.892,
+              0.425,
+              0.333
+            ]
+          ],
+          [
+            0.851,
+            [
+              0.892,
+              0.425,
+              0.333
+            ]
+          ],
+          [
+            0.853,
+            [
+              0.888,
+              0.418,
+              0.328
+            ]
+          ],
+          [
+            0.855,
+            [
+              0.888,
+              0.418,
+              0.328
+            ]
+          ],
+          [
+            0.857,
+            [
+              0.885,
+              0.41,
+              0.323
+            ]
+          ],
+          [
+            0.859,
+            [
+              0.885,
+              0.41,
+              0.323
+            ]
+          ],
+          [
+            0.861,
+            [
+              0.881,
+              0.402,
+              0.317
+            ]
+          ],
+          [
+            0.863,
+            [
+              0.881,
+              0.402,
+              0.317
+            ]
+          ],
+          [
+            0.865,
+            [
+              0.877,
+              0.395,
+              0.312
+            ]
+          ],
+          [
+            0.867,
+            [
+              0.877,
+              0.395,
+              0.312
+            ]
+          ],
+          [
+            0.869,
+            [
+              0.873,
+              0.387,
+              0.306
+            ]
+          ],
+          [
+            0.871,
+            [
+              0.873,
+              0.387,
+              0.306
+            ]
+          ],
+          [
+            0.873,
+            [
+              0.87,
+              0.379,
+              0.301
+            ]
+          ],
+          [
+            0.875,
+            [
+              0.87,
+              0.379,
+              0.301
+            ]
+          ],
+          [
+            0.877,
+            [
+              0.865,
+              0.371,
+              0.296
+            ]
+          ],
+          [
+            0.879,
+            [
+              0.865,
+              0.371,
+              0.296
+            ]
+          ],
+          [
+            0.881,
+            [
+              0.861,
+              0.363,
+              0.291
+            ]
+          ],
+          [
+            0.883,
+            [
+              0.861,
+              0.363,
+              0.291
+            ]
+          ],
+          [
+            0.885,
+            [
+              0.857,
+              0.355,
+              0.285
+            ]
+          ],
+          [
+            0.886,
+            [
+              0.857,
+              0.355,
+              0.285
+            ]
+          ],
+          [
+            0.888,
+            [
+              0.852,
+              0.346,
+              0.28
+            ]
+          ],
+          [
+            0.89,
+            [
+              0.852,
+              0.346,
+              0.28
+            ]
+          ],
+          [
+            0.892,
+            [
+              0.848,
+              0.338,
+              0.275
+            ]
+          ],
+          [
+            0.894,
+            [
+              0.848,
+              0.338,
+              0.275
+            ]
+          ],
+          [
+            0.896,
+            [
+              0.844,
+              0.33,
+              0.27
+            ]
+          ],
+          [
+            0.898,
+            [
+              0.844,
+              0.33,
+              0.27
+            ]
+          ],
+          [
+            0.9,
+            [
+              0.839,
+              0.322,
+              0.265
+            ]
+          ],
+          [
+            0.902,
+            [
+              0.839,
+              0.322,
+              0.265
+            ]
+          ],
+          [
+            0.904,
+            [
+              0.835,
+              0.314,
+              0.26
+            ]
+          ],
+          [
+            0.906,
+            [
+              0.835,
+              0.314,
+              0.26
+            ]
+          ],
+          [
+            0.908,
+            [
+              0.83,
+              0.305,
+              0.255
+            ]
+          ],
+          [
+            0.91,
+            [
+              0.83,
+              0.305,
+              0.255
+            ]
+          ],
+          [
+            0.912,
+            [
+              0.825,
+              0.296,
+              0.25
+            ]
+          ],
+          [
+            0.914,
+            [
+              0.825,
+              0.296,
+              0.25
+            ]
+          ],
+          [
+            0.916,
+            [
+              0.82,
+              0.287,
+              0.245
+            ]
+          ],
+          [
+            0.918,
+            [
+              0.82,
+              0.287,
+              0.245
+            ]
+          ],
+          [
+            0.92,
+            [
+              0.816,
+              0.278,
+              0.24
+            ]
+          ],
+          [
+            0.922,
+            [
+              0.816,
+              0.278,
+              0.24
+            ]
+          ],
+          [
+            0.924,
+            [
+              0.811,
+              0.269,
+              0.235
+            ]
+          ],
+          [
+            0.926,
+            [
+              0.811,
+              0.269,
+              0.235
+            ]
+          ],
+          [
+            0.928,
+            [
+              0.806,
+              0.26,
+              0.231
+            ]
+          ],
+          [
+            0.93,
+            [
+              0.806,
+              0.26,
+              0.231
+            ]
+          ],
+          [
+            0.932,
+            [
+              0.801,
+              0.251,
+              0.226
+            ]
+          ],
+          [
+            0.933,
+            [
+              0.801,
+              0.251,
+              0.226
+            ]
+          ],
+          [
+            0.935,
+            [
+              0.796,
+              0.242,
+              0.221
+            ]
+          ],
+          [
+            0.937,
+            [
+              0.796,
+              0.242,
+              0.221
+            ]
+          ],
+          [
+            0.939,
+            [
+              0.791,
+              0.231,
+              0.216
+            ]
+          ],
+          [
+            0.941,
+            [
+              0.791,
+              0.231,
+              0.216
+            ]
+          ],
+          [
+            0.943,
+            [
+              0.785,
+              0.221,
+              0.212
+            ]
+          ],
+          [
+            0.945,
+            [
+              0.785,
+              0.221,
+              0.212
+            ]
+          ],
+          [
+            0.947,
+            [
+              0.78,
+              0.21,
+              0.207
+            ]
+          ],
+          [
+            0.949,
+            [
+              0.78,
+              0.21,
+              0.207
+            ]
+          ],
+          [
+            0.951,
+            [
+              0.774,
+              0.2,
+              0.203
+            ]
+          ],
+          [
+            0.953,
+            [
+              0.774,
+              0.2,
+              0.203
+            ]
+          ],
+          [
+            0.955,
+            [
+              0.769,
+              0.189,
+              0.198
+            ]
+          ],
+          [
+            0.957,
+            [
+              0.769,
+              0.189,
+              0.198
+            ]
+          ],
+          [
+            0.959,
+            [
+              0.764,
+              0.179,
+              0.193
+            ]
+          ],
+          [
+            0.961,
+            [
+              0.764,
+              0.179,
+              0.193
+            ]
+          ],
+          [
+            0.963,
+            [
+              0.758,
+              0.168,
+              0.189
+            ]
+          ],
+          [
+            0.965,
+            [
+              0.758,
+              0.168,
+              0.189
+            ]
+          ],
+          [
+            0.967,
+            [
+              0.753,
+              0.158,
+              0.184
+            ]
+          ],
+          [
+            0.969,
+            [
+              0.753,
+              0.158,
+              0.184
+            ]
+          ],
+          [
+            0.971,
+            [
+              0.747,
+              0.14,
+              0.18
+            ]
+          ],
+          [
+            0.973,
+            [
+              0.747,
+              0.14,
+              0.18
+            ]
+          ],
+          [
+            0.975,
+            [
+              0.741,
+              0.122,
+              0.176
+            ]
+          ],
+          [
+            0.977,
+            [
+              0.741,
+              0.122,
+              0.176
+            ]
+          ],
+          [
+            0.978,
+            [
+              0.735,
+              0.104,
+              0.171
+            ]
+          ],
+          [
+            0.98,
+            [
+              0.735,
+              0.104,
+              0.171
+            ]
+          ],
+          [
+            0.982,
+            [
+              0.729,
+              0.087,
+              0.167
+            ]
+          ],
+          [
+            0.984,
+            [
+              0.729,
+              0.087,
+              0.167
+            ]
+          ],
+          [
+            0.986,
+            [
+              0.723,
+              0.069,
+              0.163
+            ]
+          ],
+          [
+            0.988,
+            [
+              0.723,
+              0.069,
+              0.163
+            ]
+          ],
+          [
+            0.99,
+            [
+              0.717,
+              0.051,
+              0.159
+            ]
+          ],
+          [
+            0.992,
+            [
+              0.717,
+              0.051,
+              0.159
+            ]
+          ],
+          [
+            0.994,
+            [
+              0.712,
+              0.033,
+              0.154
+            ]
+          ],
+          [
+            0.996,
+            [
+              0.712,
+              0.033,
+              0.154
+            ]
+          ],
+          [
+            0.998,
+            [
+              0.706,
+              0.016,
+              0.15
+            ]
+          ],
+          [
+            1,
+            [
+              0.706,
+              0.016,
+              0.15
+            ]
+          ]
+        ],
+        [
+          [
+            0,
+            [
+              1,
+              1,
+              0.851
+            ]
+          ],
+          [
+            0.002,
+            [
+              1,
+              1,
+              0.851
+            ]
+          ],
+          [
+            0.004,
+            [
+              0.998,
+              0.999,
+              0.846
+            ]
+          ],
+          [
+            0.006,
+            [
+              0.998,
+              0.999,
+              0.846
+            ]
+          ],
+          [
+            0.008,
+            [
+              0.996,
+              0.998,
+              0.841
+            ]
+          ],
+          [
+            0.01,
+            [
+              0.996,
+              0.998,
+              0.841
+            ]
+          ],
+          [
+            0.012,
+            [
+              0.993,
+              0.997,
+              0.836
+            ]
+          ],
+          [
+            0.014,
+            [
+              0.993,
+              0.997,
+              0.836
+            ]
+          ],
+          [
+            0.016,
+            [
+              0.991,
+              0.997,
+              0.831
+            ]
+          ],
+          [
+            0.018,
+            [
+              0.991,
+              0.997,
+              0.831
+            ]
+          ],
+          [
+            0.02,
+            [
+              0.989,
+              0.996,
+              0.826
+            ]
+          ],
+          [
+            0.022,
+            [
+              0.989,
+              0.996,
+              0.826
+            ]
+          ],
+          [
+            0.023,
+            [
+              0.987,
+              0.995,
+              0.821
+            ]
+          ],
+          [
+            0.025,
+            [
+              0.987,
+              0.995,
+              0.821
+            ]
+          ],
+          [
+            0.027,
+            [
+              0.984,
+              0.994,
+              0.817
+            ]
+          ],
+          [
+            0.029,
+            [
+              0.984,
+              0.994,
+              0.817
+            ]
+          ],
+          [
+            0.031,
+            [
+              0.982,
+              0.993,
+              0.812
+            ]
+          ],
+          [
+            0.033,
+            [
+              0.982,
+              0.993,
+              0.812
+            ]
+          ],
+          [
+            0.035,
+            [
+              0.98,
+              0.992,
+              0.807
+            ]
+          ],
+          [
+            0.037,
+            [
+              0.98,
+              0.992,
+              0.807
+            ]
+          ],
+          [
+            0.039,
+            [
+              0.978,
+              0.991,
+              0.802
+            ]
+          ],
+          [
+            0.041,
+            [
+              0.978,
+              0.991,
+              0.802
+            ]
+          ],
+          [
+            0.043,
+            [
+              0.976,
+              0.991,
+              0.797
+            ]
+          ],
+          [
+            0.045,
+            [
+              0.976,
+              0.991,
+              0.797
+            ]
+          ],
+          [
+            0.047,
+            [
+              0.973,
+              0.99,
+              0.792
+            ]
+          ],
+          [
+            0.049,
+            [
+              0.973,
+              0.99,
+              0.792
+            ]
+          ],
+          [
+            0.051,
+            [
+              0.971,
+              0.989,
+              0.787
+            ]
+          ],
+          [
+            0.053,
+            [
+              0.971,
+              0.989,
+              0.787
+            ]
+          ],
+          [
+            0.055,
+            [
+              0.969,
+              0.988,
+              0.782
+            ]
+          ],
+          [
+            0.057,
+            [
+              0.969,
+              0.988,
+              0.782
+            ]
+          ],
+          [
+            0.059,
+            [
+              0.967,
+              0.987,
+              0.777
+            ]
+          ],
+          [
+            0.061,
+            [
+              0.967,
+              0.987,
+              0.777
+            ]
+          ],
+          [
+            0.063,
+            [
+              0.965,
+              0.986,
+              0.772
+            ]
+          ],
+          [
+            0.065,
+            [
+              0.965,
+              0.986,
+              0.772
+            ]
+          ],
+          [
+            0.067,
+            [
+              0.962,
+              0.985,
+              0.767
+            ]
+          ],
+          [
+            0.068,
+            [
+              0.962,
+              0.985,
+              0.767
+            ]
+          ],
+          [
+            0.07,
+            [
+              0.96,
+              0.984,
+              0.762
+            ]
+          ],
+          [
+            0.072,
+            [
+              0.96,
+              0.984,
+              0.762
+            ]
+          ],
+          [
+            0.074,
+            [
+              0.958,
+              0.984,
+              0.757
+            ]
+          ],
+          [
+            0.076,
+            [
+              0.958,
+              0.984,
+              0.757
+            ]
+          ],
+          [
+            0.078,
+            [
+              0.956,
+              0.983,
+              0.753
+            ]
+          ],
+          [
+            0.08,
+            [
+              0.956,
+              0.983,
+              0.753
+            ]
+          ],
+          [
+            0.082,
+            [
+              0.953,
+              0.982,
+              0.748
+            ]
+          ],
+          [
+            0.084,
+            [
+              0.953,
+              0.982,
+              0.748
+            ]
+          ],
+          [
+            0.086,
+            [
+              0.951,
+              0.981,
+              0.743
+            ]
+          ],
+          [
+            0.088,
+            [
+              0.951,
+              0.981,
+              0.743
+            ]
+          ],
+          [
+            0.09,
+            [
+              0.949,
+              0.98,
+              0.738
+            ]
+          ],
+          [
+            0.092,
+            [
+              0.949,
+              0.98,
+              0.738
+            ]
+          ],
+          [
+            0.094,
+            [
+              0.947,
+              0.979,
+              0.733
+            ]
+          ],
+          [
+            0.096,
+            [
+              0.947,
+              0.979,
+              0.733
+            ]
+          ],
+          [
+            0.098,
+            [
+              0.945,
+              0.978,
+              0.728
+            ]
+          ],
+          [
+            0.1,
+            [
+              0.945,
+              0.978,
+              0.728
+            ]
+          ],
+          [
+            0.102,
+            [
+              0.942,
+              0.978,
+              0.723
+            ]
+          ],
+          [
+            0.104,
+            [
+              0.942,
+              0.978,
+              0.723
+            ]
+          ],
+          [
+            0.106,
+            [
+              0.94,
+              0.977,
+              0.718
+            ]
+          ],
+          [
+            0.108,
+            [
+              0.94,
+              0.977,
+              0.718
+            ]
+          ],
+          [
+            0.11,
+            [
+              0.938,
+              0.976,
+              0.713
+            ]
+          ],
+          [
+            0.112,
+            [
+              0.938,
+              0.976,
+              0.713
+            ]
+          ],
+          [
+            0.114,
+            [
+              0.936,
+              0.975,
+              0.708
+            ]
+          ],
+          [
+            0.115,
+            [
+              0.936,
+              0.975,
+              0.708
+            ]
+          ],
+          [
+            0.117,
+            [
+              0.934,
+              0.974,
+              0.703
+            ]
+          ],
+          [
+            0.119,
+            [
+              0.934,
+              0.974,
+              0.703
+            ]
+          ],
+          [
+            0.121,
+            [
+              0.931,
+              0.973,
+              0.698
+            ]
+          ],
+          [
+            0.123,
+            [
+              0.931,
+              0.973,
+              0.698
+            ]
+          ],
+          [
+            0.125,
+            [
+              0.929,
+              0.972,
+              0.694
+            ]
+          ],
+          [
+            0.127,
+            [
+              0.929,
+              0.972,
+              0.694
+            ]
+          ],
+          [
+            0.129,
+            [
+              0.924,
+              0.97,
+              0.695
+            ]
+          ],
+          [
+            0.131,
+            [
+              0.924,
+              0.97,
+              0.695
+            ]
+          ],
+          [
+            0.133,
+            [
+              0.919,
+              0.969,
+              0.695
+            ]
+          ],
+          [
+            0.135,
+            [
+              0.919,
+              0.969,
+              0.695
+            ]
+          ],
+          [
+            0.137,
+            [
+              0.915,
+              0.967,
+              0.695
+            ]
+          ],
+          [
+            0.139,
+            [
+              0.915,
+              0.967,
+              0.695
+            ]
+          ],
+          [
+            0.141,
+            [
+              0.91,
+              0.965,
+              0.696
+            ]
+          ],
+          [
+            0.143,
+            [
+              0.91,
+              0.965,
+              0.696
+            ]
+          ],
+          [
+            0.145,
+            [
+              0.905,
+              0.963,
+              0.696
+            ]
+          ],
+          [
+            0.147,
+            [
+              0.905,
+              0.963,
+              0.696
+            ]
+          ],
+          [
+            0.149,
+            [
+              0.901,
+              0.961,
+              0.696
+            ]
+          ],
+          [
+            0.151,
+            [
+              0.901,
+              0.961,
+              0.696
+            ]
+          ],
+          [
+            0.153,
+            [
+              0.896,
+              0.959,
+              0.697
+            ]
+          ],
+          [
+            0.155,
+            [
+              0.896,
+              0.959,
+              0.697
+            ]
+          ],
+          [
+            0.157,
+            [
+              0.891,
+              0.958,
+              0.697
+            ]
+          ],
+          [
+            0.159,
+            [
+              0.891,
+              0.958,
+              0.697
+            ]
+          ],
+          [
+            0.16,
+            [
+              0.887,
+              0.956,
+              0.697
+            ]
+          ],
+          [
+            0.162,
+            [
+              0.887,
+              0.956,
+              0.697
+            ]
+          ],
+          [
+            0.164,
+            [
+              0.882,
+              0.954,
+              0.698
+            ]
+          ],
+          [
+            0.166,
+            [
+              0.882,
+              0.954,
+              0.698
+            ]
+          ],
+          [
+            0.168,
+            [
+              0.877,
+              0.952,
+              0.698
+            ]
+          ],
+          [
+            0.17,
+            [
+              0.877,
+              0.952,
+              0.698
+            ]
+          ],
+          [
+            0.172,
+            [
+              0.873,
+              0.95,
+              0.699
+            ]
+          ],
+          [
+            0.174,
+            [
+              0.873,
+              0.95,
+              0.699
+            ]
+          ],
+          [
+            0.176,
+            [
+              0.868,
+              0.948,
+              0.699
+            ]
+          ],
+          [
+            0.178,
+            [
+              0.868,
+              0.948,
+              0.699
+            ]
+          ],
+          [
+            0.18,
+            [
+              0.863,
+              0.946,
+              0.699
+            ]
+          ],
+          [
+            0.182,
+            [
+              0.863,
+              0.946,
+              0.699
+            ]
+          ],
+          [
+            0.184,
+            [
+              0.859,
+              0.945,
+              0.7
+            ]
+          ],
+          [
+            0.186,
+            [
+              0.859,
+              0.945,
+              0.7
+            ]
+          ],
+          [
+            0.188,
+            [
+              0.854,
+              0.943,
+              0.7
+            ]
+          ],
+          [
+            0.19,
+            [
+              0.854,
+              0.943,
+              0.7
+            ]
+          ],
+          [
+            0.192,
+            [
+              0.849,
+              0.941,
+              0.7
+            ]
+          ],
+          [
+            0.194,
+            [
+              0.849,
+              0.941,
+              0.7
+            ]
+          ],
+          [
+            0.196,
+            [
+              0.845,
+              0.939,
+              0.701
+            ]
+          ],
+          [
+            0.198,
+            [
+              0.845,
+              0.939,
+              0.701
+            ]
+          ],
+          [
+            0.2,
+            [
+              0.84,
+              0.937,
+              0.701
+            ]
+          ],
+          [
+            0.202,
+            [
+              0.84,
+              0.937,
+              0.701
+            ]
+          ],
+          [
+            0.204,
+            [
+              0.835,
+              0.935,
+              0.702
+            ]
+          ],
+          [
+            0.205,
+            [
+              0.835,
+              0.935,
+              0.702
+            ]
+          ],
+          [
+            0.207,
+            [
+              0.831,
+              0.934,
+              0.702
+            ]
+          ],
+          [
+            0.209,
+            [
+              0.831,
+              0.934,
+              0.702
+            ]
+          ],
+          [
+            0.211,
+            [
+              0.826,
+              0.932,
+              0.702
+            ]
+          ],
+          [
+            0.213,
+            [
+              0.826,
+              0.932,
+              0.702
+            ]
+          ],
+          [
+            0.215,
+            [
+              0.821,
+              0.93,
+              0.703
+            ]
+          ],
+          [
+            0.217,
+            [
+              0.821,
+              0.93,
+              0.703
+            ]
+          ],
+          [
+            0.219,
+            [
+              0.817,
+              0.928,
+              0.703
+            ]
+          ],
+          [
+            0.221,
+            [
+              0.817,
+              0.928,
+              0.703
+            ]
+          ],
+          [
+            0.223,
+            [
+              0.812,
+              0.926,
+              0.703
+            ]
+          ],
+          [
+            0.225,
+            [
+              0.812,
+              0.926,
+              0.703
+            ]
+          ],
+          [
+            0.227,
+            [
+              0.807,
+              0.924,
+              0.704
+            ]
+          ],
+          [
+            0.229,
+            [
+              0.807,
+              0.924,
+              0.704
+            ]
+          ],
+          [
+            0.231,
+            [
+              0.803,
+              0.922,
+              0.704
+            ]
+          ],
+          [
+            0.233,
+            [
+              0.803,
+              0.922,
+              0.704
+            ]
+          ],
+          [
+            0.235,
+            [
+              0.798,
+              0.921,
+              0.704
+            ]
+          ],
+          [
+            0.237,
+            [
+              0.798,
+              0.921,
+              0.704
+            ]
+          ],
+          [
+            0.239,
+            [
+              0.793,
+              0.919,
+              0.705
+            ]
+          ],
+          [
+            0.241,
+            [
+              0.793,
+              0.919,
+              0.705
+            ]
+          ],
+          [
+            0.243,
+            [
+              0.789,
+              0.917,
+              0.705
+            ]
+          ],
+          [
+            0.245,
+            [
+              0.789,
+              0.917,
+              0.705
+            ]
+          ],
+          [
+            0.247,
+            [
+              0.784,
+              0.915,
+              0.706
+            ]
+          ],
+          [
+            0.249,
+            [
+              0.784,
+              0.915,
+              0.706
+            ]
+          ],
+          [
+            0.25,
+            [
+              0.778,
+              0.913,
+              0.706
+            ]
+          ],
+          [
+            0.252,
+            [
+              0.778,
+              0.913,
+              0.706
+            ]
+          ],
+          [
+            0.254,
+            [
+              0.769,
+              0.909,
+              0.707
+            ]
+          ],
+          [
+            0.256,
+            [
+              0.769,
+              0.909,
+              0.707
+            ]
+          ],
+          [
+            0.258,
+            [
+              0.76,
+              0.906,
+              0.708
+            ]
+          ],
+          [
+            0.26,
+            [
+              0.76,
+              0.906,
+              0.708
+            ]
+          ],
+          [
+            0.262,
+            [
+              0.752,
+              0.903,
+              0.709
+            ]
+          ],
+          [
+            0.264,
+            [
+              0.752,
+              0.903,
+              0.709
+            ]
+          ],
+          [
+            0.266,
+            [
+              0.743,
+              0.899,
+              0.71
+            ]
+          ],
+          [
+            0.268,
+            [
+              0.743,
+              0.899,
+              0.71
+            ]
+          ],
+          [
+            0.27,
+            [
+              0.734,
+              0.896,
+              0.71
+            ]
+          ],
+          [
+            0.272,
+            [
+              0.734,
+              0.896,
+              0.71
+            ]
+          ],
+          [
+            0.274,
+            [
+              0.725,
+              0.892,
+              0.711
+            ]
+          ],
+          [
+            0.276,
+            [
+              0.725,
+              0.892,
+              0.711
+            ]
+          ],
+          [
+            0.278,
+            [
+              0.716,
+              0.889,
+              0.712
+            ]
+          ],
+          [
+            0.28,
+            [
+              0.716,
+              0.889,
+              0.712
+            ]
+          ],
+          [
+            0.282,
+            [
+              0.707,
+              0.885,
+              0.713
+            ]
+          ],
+          [
+            0.284,
+            [
+              0.707,
+              0.885,
+              0.713
+            ]
+          ],
+          [
+            0.286,
+            [
+              0.698,
+              0.882,
+              0.714
+            ]
+          ],
+          [
+            0.288,
+            [
+              0.698,
+              0.882,
+              0.714
+            ]
+          ],
+          [
+            0.29,
+            [
+              0.69,
+              0.878,
+              0.715
+            ]
+          ],
+          [
+            0.292,
+            [
+              0.69,
+              0.878,
+              0.715
+            ]
+          ],
+          [
+            0.294,
+            [
+              0.681,
+              0.875,
+              0.716
+            ]
+          ],
+          [
+            0.295,
+            [
+              0.681,
+              0.875,
+              0.716
+            ]
+          ],
+          [
+            0.297,
+            [
+              0.672,
+              0.872,
+              0.716
+            ]
+          ],
+          [
+            0.299,
+            [
+              0.672,
+              0.872,
+              0.716
+            ]
+          ],
+          [
+            0.301,
+            [
+              0.663,
+              0.868,
+              0.717
+            ]
+          ],
+          [
+            0.303,
+            [
+              0.663,
+              0.868,
+              0.717
+            ]
+          ],
+          [
+            0.305,
+            [
+              0.654,
+              0.865,
+              0.718
+            ]
+          ],
+          [
+            0.307,
+            [
+              0.654,
+              0.865,
+              0.718
+            ]
+          ],
+          [
+            0.309,
+            [
+              0.645,
+              0.861,
+              0.719
+            ]
+          ],
+          [
+            0.311,
+            [
+              0.645,
+              0.861,
+              0.719
+            ]
+          ],
+          [
+            0.313,
+            [
+              0.636,
+              0.858,
+              0.72
+            ]
+          ],
+          [
+            0.315,
+            [
+              0.636,
+              0.858,
+              0.72
+            ]
+          ],
+          [
+            0.317,
+            [
+              0.628,
+              0.854,
+              0.721
+            ]
+          ],
+          [
+            0.319,
+            [
+              0.628,
+              0.854,
+              0.721
+            ]
+          ],
+          [
+            0.321,
+            [
+              0.619,
+              0.851,
+              0.722
+            ]
+          ],
+          [
+            0.323,
+            [
+              0.619,
+              0.851,
+              0.722
+            ]
+          ],
+          [
+            0.325,
+            [
+              0.61,
+              0.847,
+              0.722
+            ]
+          ],
+          [
+            0.327,
+            [
+              0.61,
+              0.847,
+              0.722
+            ]
+          ],
+          [
+            0.329,
+            [
+              0.601,
+              0.844,
+              0.723
+            ]
+          ],
+          [
+            0.331,
+            [
+              0.601,
+              0.844,
+              0.723
+            ]
+          ],
+          [
+            0.333,
+            [
+              0.592,
+              0.841,
+              0.724
+            ]
+          ],
+          [
+            0.335,
+            [
+              0.592,
+              0.841,
+              0.724
+            ]
+          ],
+          [
+            0.337,
+            [
+              0.583,
+              0.837,
+              0.725
+            ]
+          ],
+          [
+            0.339,
+            [
+              0.583,
+              0.837,
+              0.725
+            ]
+          ],
+          [
+            0.341,
+            [
+              0.574,
+              0.834,
+              0.726
+            ]
+          ],
+          [
+            0.342,
+            [
+              0.574,
+              0.834,
+              0.726
+            ]
+          ],
+          [
+            0.344,
+            [
+              0.566,
+              0.83,
+              0.727
+            ]
+          ],
+          [
+            0.346,
+            [
+              0.566,
+              0.83,
+              0.727
+            ]
+          ],
+          [
+            0.348,
+            [
+              0.557,
+              0.827,
+              0.728
+            ]
+          ],
+          [
+            0.35,
+            [
+              0.557,
+              0.827,
+              0.728
+            ]
+          ],
+          [
+            0.352,
+            [
+              0.548,
+              0.823,
+              0.728
+            ]
+          ],
+          [
+            0.354,
+            [
+              0.548,
+              0.823,
+              0.728
+            ]
+          ],
+          [
+            0.356,
+            [
+              0.539,
+              0.82,
+              0.729
+            ]
+          ],
+          [
+            0.358,
+            [
+              0.539,
+              0.82,
+              0.729
+            ]
+          ],
+          [
+            0.36,
+            [
+              0.53,
+              0.816,
+              0.73
+            ]
+          ],
+          [
+            0.362,
+            [
+              0.53,
+              0.816,
+              0.73
+            ]
+          ],
+          [
+            0.364,
+            [
+              0.521,
+              0.813,
+              0.731
+            ]
+          ],
+          [
+            0.366,
+            [
+              0.521,
+              0.813,
+              0.731
+            ]
+          ],
+          [
+            0.368,
+            [
+              0.512,
+              0.81,
+              0.732
+            ]
+          ],
+          [
+            0.37,
+            [
+              0.512,
+              0.81,
+              0.732
+            ]
+          ],
+          [
+            0.372,
+            [
+              0.504,
+              0.806,
+              0.733
+            ]
+          ],
+          [
+            0.374,
+            [
+              0.504,
+              0.806,
+              0.733
+            ]
+          ],
+          [
+            0.376,
+            [
+              0.495,
+              0.803,
+              0.734
+            ]
+          ],
+          [
+            0.378,
+            [
+              0.495,
+              0.803,
+              0.734
+            ]
+          ],
+          [
+            0.38,
+            [
+              0.488,
+              0.8,
+              0.735
+            ]
+          ],
+          [
+            0.382,
+            [
+              0.488,
+              0.8,
+              0.735
+            ]
+          ],
+          [
+            0.384,
+            [
+              0.48,
+              0.797,
+              0.736
+            ]
+          ],
+          [
+            0.386,
+            [
+              0.48,
+              0.797,
+              0.736
+            ]
+          ],
+          [
+            0.387,
+            [
+              0.472,
+              0.794,
+              0.737
+            ]
+          ],
+          [
+            0.389,
+            [
+              0.472,
+              0.794,
+              0.737
+            ]
+          ],
+          [
+            0.391,
+            [
+              0.465,
+              0.792,
+              0.738
+            ]
+          ],
+          [
+            0.393,
+            [
+              0.465,
+              0.792,
+              0.738
+            ]
+          ],
+          [
+            0.395,
+            [
+              0.457,
+              0.789,
+              0.739
+            ]
+          ],
+          [
+            0.397,
+            [
+              0.457,
+              0.789,
+              0.739
+            ]
+          ],
+          [
+            0.399,
+            [
+              0.449,
+              0.786,
+              0.74
+            ]
+          ],
+          [
+            0.401,
+            [
+              0.449,
+              0.786,
+              0.74
+            ]
+          ],
+          [
+            0.403,
+            [
+              0.442,
+              0.783,
+              0.741
+            ]
+          ],
+          [
+            0.405,
+            [
+              0.442,
+              0.783,
+              0.741
+            ]
+          ],
+          [
+            0.407,
+            [
+              0.434,
+              0.78,
+              0.743
+            ]
+          ],
+          [
+            0.409,
+            [
+              0.434,
+              0.78,
+              0.743
+            ]
+          ],
+          [
+            0.411,
+            [
+              0.427,
+              0.777,
+              0.744
+            ]
+          ],
+          [
+            0.413,
+            [
+              0.427,
+              0.777,
+              0.744
+            ]
+          ],
+          [
+            0.415,
+            [
+              0.419,
+              0.775,
+              0.745
+            ]
+          ],
+          [
+            0.417,
+            [
+              0.419,
+              0.775,
+              0.745
+            ]
+          ],
+          [
+            0.419,
+            [
+              0.411,
+              0.772,
+              0.746
+            ]
+          ],
+          [
+            0.421,
+            [
+              0.411,
+              0.772,
+              0.746
+            ]
+          ],
+          [
+            0.423,
+            [
+              0.404,
+              0.769,
+              0.747
+            ]
+          ],
+          [
+            0.425,
+            [
+              0.404,
+              0.769,
+              0.747
+            ]
+          ],
+          [
+            0.427,
+            [
+              0.396,
+              0.766,
+              0.748
+            ]
+          ],
+          [
+            0.429,
+            [
+              0.396,
+              0.766,
+              0.748
+            ]
+          ],
+          [
+            0.431,
+            [
+              0.388,
+              0.763,
+              0.749
+            ]
+          ],
+          [
+            0.432,
+            [
+              0.388,
+              0.763,
+              0.749
+            ]
+          ],
+          [
+            0.434,
+            [
+              0.381,
+              0.76,
+              0.75
+            ]
+          ],
+          [
+            0.436,
+            [
+              0.381,
+              0.76,
+              0.75
+            ]
+          ],
+          [
+            0.438,
+            [
+              0.373,
+              0.758,
+              0.751
+            ]
+          ],
+          [
+            0.44,
+            [
+              0.373,
+              0.758,
+              0.751
+            ]
+          ],
+          [
+            0.442,
+            [
+              0.366,
+              0.755,
+              0.753
+            ]
+          ],
+          [
+            0.444,
+            [
+              0.366,
+              0.755,
+              0.753
+            ]
+          ],
+          [
+            0.446,
+            [
+              0.358,
+              0.752,
+              0.754
+            ]
+          ],
+          [
+            0.448,
+            [
+              0.358,
+              0.752,
+              0.754
+            ]
+          ],
+          [
+            0.45,
+            [
+              0.35,
+              0.749,
+              0.755
+            ]
+          ],
+          [
+            0.452,
+            [
+              0.35,
+              0.749,
+              0.755
+            ]
+          ],
+          [
+            0.454,
+            [
+              0.343,
+              0.746,
+              0.756
+            ]
+          ],
+          [
+            0.456,
+            [
+              0.343,
+              0.746,
+              0.756
+            ]
+          ],
+          [
+            0.458,
+            [
+              0.335,
+              0.743,
+              0.757
+            ]
+          ],
+          [
+            0.46,
+            [
+              0.335,
+              0.743,
+              0.757
+            ]
+          ],
+          [
+            0.462,
+            [
+              0.327,
+              0.741,
+              0.758
+            ]
+          ],
+          [
+            0.464,
+            [
+              0.327,
+              0.741,
+              0.758
+            ]
+          ],
+          [
+            0.466,
+            [
+              0.32,
+              0.738,
+              0.759
+            ]
+          ],
+          [
+            0.468,
+            [
+              0.32,
+              0.738,
+              0.759
+            ]
+          ],
+          [
+            0.47,
+            [
+              0.312,
+              0.735,
+              0.76
+            ]
+          ],
+          [
+            0.472,
+            [
+              0.312,
+              0.735,
+              0.76
+            ]
+          ],
+          [
+            0.474,
+            [
+              0.304,
+              0.732,
+              0.761
+            ]
+          ],
+          [
+            0.476,
+            [
+              0.304,
+              0.732,
+              0.761
+            ]
+          ],
+          [
+            0.477,
+            [
+              0.297,
+              0.729,
+              0.763
+            ]
+          ],
+          [
+            0.479,
+            [
+              0.297,
+              0.729,
+              0.763
+            ]
+          ],
+          [
+            0.481,
+            [
+              0.289,
+              0.726,
+              0.764
+            ]
+          ],
+          [
+            0.483,
+            [
+              0.289,
+              0.726,
+              0.764
+            ]
+          ],
+          [
+            0.485,
+            [
+              0.282,
+              0.724,
+              0.765
+            ]
+          ],
+          [
+            0.487,
+            [
+              0.282,
+              0.724,
+              0.765
+            ]
+          ],
+          [
+            0.489,
+            [
+              0.274,
+              0.721,
+              0.766
+            ]
+          ],
+          [
+            0.491,
+            [
+              0.274,
+              0.721,
+              0.766
+            ]
+          ],
+          [
+            0.493,
+            [
+              0.266,
+              0.718,
+              0.767
+            ]
+          ],
+          [
+            0.495,
+            [
+              0.266,
+              0.718,
+              0.767
+            ]
+          ],
+          [
+            0.497,
+            [
+              0.259,
+              0.715,
+              0.768
+            ]
+          ],
+          [
+            0.499,
+            [
+              0.259,
+              0.715,
+              0.768
+            ]
+          ],
+          [
+            0.501,
+            [
+              0.253,
+              0.711,
+              0.768
+            ]
+          ],
+          [
+            0.503,
+            [
+              0.253,
+              0.711,
+              0.768
+            ]
+          ],
+          [
+            0.505,
+            [
+              0.248,
+              0.707,
+              0.768
+            ]
+          ],
+          [
+            0.507,
+            [
+              0.248,
+              0.707,
+              0.768
+            ]
+          ],
+          [
+            0.509,
+            [
+              0.244,
+              0.702,
+              0.767
+            ]
+          ],
+          [
+            0.511,
+            [
+              0.244,
+              0.702,
+              0.767
+            ]
+          ],
+          [
+            0.513,
+            [
+              0.239,
+              0.698,
+              0.767
+            ]
+          ],
+          [
+            0.515,
+            [
+              0.239,
+              0.698,
+              0.767
+            ]
+          ],
+          [
+            0.517,
+            [
+              0.235,
+              0.693,
+              0.766
+            ]
+          ],
+          [
+            0.519,
+            [
+              0.235,
+              0.693,
+              0.766
+            ]
+          ],
+          [
+            0.521,
+            [
+              0.231,
+              0.689,
+              0.766
+            ]
+          ],
+          [
+            0.523,
+            [
+              0.231,
+              0.689,
+              0.766
+            ]
+          ],
+          [
+            0.524,
+            [
+              0.226,
+              0.684,
+              0.765
+            ]
+          ],
+          [
+            0.526,
+            [
+              0.226,
+              0.684,
+              0.765
+            ]
+          ],
+          [
+            0.528,
+            [
+              0.222,
+              0.68,
+              0.765
+            ]
+          ],
+          [
+            0.53,
+            [
+              0.222,
+              0.68,
+              0.765
+            ]
+          ],
+          [
+            0.532,
+            [
+              0.217,
+              0.675,
+              0.764
+            ]
+          ],
+          [
+            0.534,
+            [
+              0.217,
+              0.675,
+              0.764
+            ]
+          ],
+          [
+            0.536,
+            [
+              0.213,
+              0.67,
+              0.764
+            ]
+          ],
+          [
+            0.538,
+            [
+              0.213,
+              0.67,
+              0.764
+            ]
+          ],
+          [
+            0.54,
+            [
+              0.208,
+              0.666,
+              0.763
+            ]
+          ],
+          [
+            0.542,
+            [
+              0.208,
+              0.666,
+              0.763
+            ]
+          ],
+          [
+            0.544,
+            [
+              0.204,
+              0.661,
+              0.763
+            ]
+          ],
+          [
+            0.546,
+            [
+              0.204,
+              0.661,
+              0.763
+            ]
+          ],
+          [
+            0.548,
+            [
+              0.2,
+              0.657,
+              0.762
+            ]
+          ],
+          [
+            0.55,
+            [
+              0.2,
+              0.657,
+              0.762
+            ]
+          ],
+          [
+            0.552,
+            [
+              0.195,
+              0.652,
+              0.762
+            ]
+          ],
+          [
+            0.554,
+            [
+              0.195,
+              0.652,
+              0.762
+            ]
+          ],
+          [
+            0.556,
+            [
+              0.191,
+              0.648,
+              0.761
+            ]
+          ],
+          [
+            0.558,
+            [
+              0.191,
+              0.648,
+              0.761
+            ]
+          ],
+          [
+            0.56,
+            [
+              0.186,
+              0.643,
+              0.761
+            ]
+          ],
+          [
+            0.562,
+            [
+              0.186,
+              0.643,
+              0.761
+            ]
+          ],
+          [
+            0.564,
+            [
+              0.182,
+              0.639,
+              0.761
+            ]
+          ],
+          [
+            0.566,
+            [
+              0.182,
+              0.639,
+              0.761
+            ]
+          ],
+          [
+            0.568,
+            [
+              0.177,
+              0.634,
+              0.76
+            ]
+          ],
+          [
+            0.569,
+            [
+              0.177,
+              0.634,
+              0.76
+            ]
+          ],
+          [
+            0.571,
+            [
+              0.173,
+              0.63,
+              0.76
+            ]
+          ],
+          [
+            0.573,
+            [
+              0.173,
+              0.63,
+              0.76
+            ]
+          ],
+          [
+            0.575,
+            [
+              0.169,
+              0.625,
+              0.759
+            ]
+          ],
+          [
+            0.577,
+            [
+              0.169,
+              0.625,
+              0.759
+            ]
+          ],
+          [
+            0.579,
+            [
+              0.164,
+              0.62,
+              0.759
+            ]
+          ],
+          [
+            0.581,
+            [
+              0.164,
+              0.62,
+              0.759
+            ]
+          ],
+          [
+            0.583,
+            [
+              0.16,
+              0.616,
+              0.758
+            ]
+          ],
+          [
+            0.585,
+            [
+              0.16,
+              0.616,
+              0.758
+            ]
+          ],
+          [
+            0.587,
+            [
+              0.155,
+              0.611,
+              0.758
+            ]
+          ],
+          [
+            0.589,
+            [
+              0.155,
+              0.611,
+              0.758
+            ]
+          ],
+          [
+            0.591,
+            [
+              0.151,
+              0.607,
+              0.757
+            ]
+          ],
+          [
+            0.593,
+            [
+              0.151,
+              0.607,
+              0.757
+            ]
+          ],
+          [
+            0.595,
+            [
+              0.146,
+              0.602,
+              0.757
+            ]
+          ],
+          [
+            0.597,
+            [
+              0.146,
+              0.602,
+              0.757
+            ]
+          ],
+          [
+            0.599,
+            [
+              0.142,
+              0.598,
+              0.756
+            ]
+          ],
+          [
+            0.601,
+            [
+              0.142,
+              0.598,
+              0.756
+            ]
+          ],
+          [
+            0.603,
+            [
+              0.138,
+              0.593,
+              0.756
+            ]
+          ],
+          [
+            0.605,
+            [
+              0.138,
+              0.593,
+              0.756
+            ]
+          ],
+          [
+            0.607,
+            [
+              0.133,
+              0.589,
+              0.755
+            ]
+          ],
+          [
+            0.609,
+            [
+              0.133,
+              0.589,
+              0.755
+            ]
+          ],
+          [
+            0.611,
+            [
+              0.129,
+              0.584,
+              0.755
+            ]
+          ],
+          [
+            0.613,
+            [
+              0.129,
+              0.584,
+              0.755
+            ]
+          ],
+          [
+            0.614,
+            [
+              0.124,
+              0.579,
+              0.754
+            ]
+          ],
+          [
+            0.616,
+            [
+              0.124,
+              0.579,
+              0.754
+            ]
+          ],
+          [
+            0.618,
+            [
+              0.12,
+              0.575,
+              0.754
+            ]
+          ],
+          [
+            0.62,
+            [
+              0.12,
+              0.575,
+              0.754
+            ]
+          ],
+          [
+            0.622,
+            [
+              0.115,
+              0.57,
+              0.753
+            ]
+          ],
+          [
+            0.624,
+            [
+              0.115,
+              0.57,
+              0.753
+            ]
+          ],
+          [
+            0.626,
+            [
+              0.114,
+              0.565,
+              0.751
+            ]
+          ],
+          [
+            0.628,
+            [
+              0.114,
+              0.565,
+              0.751
+            ]
+          ],
+          [
+            0.63,
+            [
+              0.115,
+              0.558,
+              0.748
+            ]
+          ],
+          [
+            0.632,
+            [
+              0.115,
+              0.558,
+              0.748
+            ]
+          ],
+          [
+            0.634,
+            [
+              0.115,
+              0.552,
+              0.745
+            ]
+          ],
+          [
+            0.636,
+            [
+              0.115,
+              0.552,
+              0.745
+            ]
+          ],
+          [
+            0.638,
+            [
+              0.116,
+              0.546,
+              0.742
+            ]
+          ],
+          [
+            0.64,
+            [
+              0.116,
+              0.546,
+              0.742
+            ]
+          ],
+          [
+            0.642,
+            [
+              0.117,
+              0.54,
+              0.739
+            ]
+          ],
+          [
+            0.644,
+            [
+              0.117,
+              0.54,
+              0.739
+            ]
+          ],
+          [
+            0.646,
+            [
+              0.117,
+              0.533,
+              0.736
+            ]
+          ],
+          [
+            0.648,
+            [
+              0.117,
+              0.533,
+              0.736
+            ]
+          ],
+          [
+            0.65,
+            [
+              0.118,
+              0.527,
+              0.733
+            ]
+          ],
+          [
+            0.652,
+            [
+              0.118,
+              0.527,
+              0.733
+            ]
+          ],
+          [
+            0.654,
+            [
+              0.118,
+              0.521,
+              0.73
+            ]
+          ],
+          [
+            0.656,
+            [
+              0.118,
+              0.521,
+              0.73
+            ]
+          ],
+          [
+            0.658,
+            [
+              0.119,
+              0.515,
+              0.727
+            ]
+          ],
+          [
+            0.659,
+            [
+              0.119,
+              0.515,
+              0.727
+            ]
+          ],
+          [
+            0.661,
+            [
+              0.12,
+              0.508,
+              0.725
+            ]
+          ],
+          [
+            0.663,
+            [
+              0.12,
+              0.508,
+              0.725
+            ]
+          ],
+          [
+            0.665,
+            [
+              0.12,
+              0.502,
+              0.722
+            ]
+          ],
+          [
+            0.667,
+            [
+              0.12,
+              0.502,
+              0.722
+            ]
+          ],
+          [
+            0.669,
+            [
+              0.121,
+              0.496,
+              0.719
+            ]
+          ],
+          [
+            0.671,
+            [
+              0.121,
+              0.496,
+              0.719
+            ]
+          ],
+          [
+            0.673,
+            [
+              0.121,
+              0.489,
+              0.716
+            ]
+          ],
+          [
+            0.675,
+            [
+              0.121,
+              0.489,
+              0.716
+            ]
+          ],
+          [
+            0.677,
+            [
+              0.122,
+              0.483,
+              0.713
+            ]
+          ],
+          [
+            0.679,
+            [
+              0.122,
+              0.483,
+              0.713
+            ]
+          ],
+          [
+            0.681,
+            [
+              0.123,
+              0.477,
+              0.71
+            ]
+          ],
+          [
+            0.683,
+            [
+              0.123,
+              0.477,
+              0.71
+            ]
+          ],
+          [
+            0.685,
+            [
+              0.123,
+              0.471,
+              0.707
+            ]
+          ],
+          [
+            0.687,
+            [
+              0.123,
+              0.471,
+              0.707
+            ]
+          ],
+          [
+            0.689,
+            [
+              0.124,
+              0.464,
+              0.704
+            ]
+          ],
+          [
+            0.691,
+            [
+              0.124,
+              0.464,
+              0.704
+            ]
+          ],
+          [
+            0.693,
+            [
+              0.125,
+              0.458,
+              0.701
+            ]
+          ],
+          [
+            0.695,
+            [
+              0.125,
+              0.458,
+              0.701
+            ]
+          ],
+          [
+            0.697,
+            [
+              0.125,
+              0.452,
+              0.698
+            ]
+          ],
+          [
+            0.699,
+            [
+              0.125,
+              0.452,
+              0.698
+            ]
+          ],
+          [
+            0.701,
+            [
+              0.126,
+              0.445,
+              0.695
+            ]
+          ],
+          [
+            0.703,
+            [
+              0.126,
+              0.445,
+              0.695
+            ]
+          ],
+          [
+            0.705,
+            [
+              0.126,
+              0.439,
+              0.692
+            ]
+          ],
+          [
+            0.706,
+            [
+              0.126,
+              0.439,
+              0.692
+            ]
+          ],
+          [
+            0.708,
+            [
+              0.127,
+              0.433,
+              0.689
+            ]
+          ],
+          [
+            0.71,
+            [
+              0.127,
+              0.433,
+              0.689
+            ]
+          ],
+          [
+            0.712,
+            [
+              0.128,
+              0.427,
+              0.686
+            ]
+          ],
+          [
+            0.714,
+            [
+              0.128,
+              0.427,
+              0.686
+            ]
+          ],
+          [
+            0.716,
+            [
+              0.128,
+              0.42,
+              0.683
+            ]
+          ],
+          [
+            0.718,
+            [
+              0.128,
+              0.42,
+              0.683
+            ]
+          ],
+          [
+            0.72,
+            [
+              0.129,
+              0.414,
+              0.68
+            ]
+          ],
+          [
+            0.722,
+            [
+              0.129,
+              0.414,
+              0.68
+            ]
+          ],
+          [
+            0.724,
+            [
+              0.129,
+              0.408,
+              0.677
+            ]
+          ],
+          [
+            0.726,
+            [
+              0.129,
+              0.408,
+              0.677
+            ]
+          ],
+          [
+            0.728,
+            [
+              0.13,
+              0.402,
+              0.674
+            ]
+          ],
+          [
+            0.73,
+            [
+              0.13,
+              0.402,
+              0.674
+            ]
+          ],
+          [
+            0.732,
+            [
+              0.131,
+              0.395,
+              0.671
+            ]
+          ],
+          [
+            0.734,
+            [
+              0.131,
+              0.395,
+              0.671
+            ]
+          ],
+          [
+            0.736,
+            [
+              0.131,
+              0.389,
+              0.668
+            ]
+          ],
+          [
+            0.738,
+            [
+              0.131,
+              0.389,
+              0.668
+            ]
+          ],
+          [
+            0.74,
+            [
+              0.132,
+              0.383,
+              0.665
+            ]
+          ],
+          [
+            0.742,
+            [
+              0.132,
+              0.383,
+              0.665
+            ]
+          ],
+          [
+            0.744,
+            [
+              0.133,
+              0.376,
+              0.663
+            ]
+          ],
+          [
+            0.746,
+            [
+              0.133,
+              0.376,
+              0.663
+            ]
+          ],
+          [
+            0.748,
+            [
+              0.133,
+              0.37,
+              0.66
+            ]
+          ],
+          [
+            0.75,
+            [
+              0.133,
+              0.37,
+              0.66
+            ]
+          ],
+          [
+            0.751,
+            [
+              0.134,
+              0.365,
+              0.657
+            ]
+          ],
+          [
+            0.753,
+            [
+              0.134,
+              0.365,
+              0.657
+            ]
+          ],
+          [
+            0.755,
+            [
+              0.134,
+              0.36,
+              0.655
+            ]
+          ],
+          [
+            0.757,
+            [
+              0.134,
+              0.36,
+              0.655
+            ]
+          ],
+          [
+            0.759,
+            [
+              0.134,
+              0.354,
+              0.652
+            ]
+          ],
+          [
+            0.761,
+            [
+              0.134,
+              0.354,
+              0.652
+            ]
+          ],
+          [
+            0.763,
+            [
+              0.135,
+              0.349,
+              0.65
+            ]
+          ],
+          [
+            0.765,
+            [
+              0.135,
+              0.349,
+              0.65
+            ]
+          ],
+          [
+            0.767,
+            [
+              0.135,
+              0.344,
+              0.647
+            ]
+          ],
+          [
+            0.769,
+            [
+              0.135,
+              0.344,
+              0.647
+            ]
+          ],
+          [
+            0.771,
+            [
+              0.135,
+              0.339,
+              0.645
+            ]
+          ],
+          [
+            0.773,
+            [
+              0.135,
+              0.339,
+              0.645
+            ]
+          ],
+          [
+            0.775,
+            [
+              0.136,
+              0.334,
+              0.642
+            ]
+          ],
+          [
+            0.777,
+            [
+              0.136,
+              0.334,
+              0.642
+            ]
+          ],
+          [
+            0.779,
+            [
+              0.136,
+              0.329,
+              0.64
+            ]
+          ],
+          [
+            0.781,
+            [
+              0.136,
+              0.329,
+              0.64
+            ]
+          ],
+          [
+            0.783,
+            [
+              0.137,
+              0.323,
+              0.637
+            ]
+          ],
+          [
+            0.785,
+            [
+              0.137,
+              0.323,
+              0.637
+            ]
+          ],
+          [
+            0.787,
+            [
+              0.137,
+              0.318,
+              0.635
+            ]
+          ],
+          [
+            0.789,
+            [
+              0.137,
+              0.318,
+              0.635
+            ]
+          ],
+          [
+            0.791,
+            [
+              0.137,
+              0.313,
+              0.632
+            ]
+          ],
+          [
+            0.793,
+            [
+              0.137,
+              0.313,
+              0.632
+            ]
+          ],
+          [
+            0.795,
+            [
+              0.138,
+              0.308,
+              0.63
+            ]
+          ],
+          [
+            0.796,
+            [
+              0.138,
+              0.308,
+              0.63
+            ]
+          ],
+          [
+            0.798,
+            [
+              0.138,
+              0.303,
+              0.627
+            ]
+          ],
+          [
+            0.8,
+            [
+              0.138,
+              0.303,
+              0.627
+            ]
+          ],
+          [
+            0.802,
+            [
+              0.138,
+              0.298,
+              0.625
+            ]
+          ],
+          [
+            0.804,
+            [
+              0.138,
+              0.298,
+              0.625
+            ]
+          ],
+          [
+            0.806,
+            [
+              0.139,
+              0.292,
+              0.623
+            ]
+          ],
+          [
+            0.808,
+            [
+              0.139,
+              0.292,
+              0.623
+            ]
+          ],
+          [
+            0.81,
+            [
+              0.139,
+              0.287,
+              0.62
+            ]
+          ],
+          [
+            0.812,
+            [
+              0.139,
+              0.287,
+              0.62
+            ]
+          ],
+          [
+            0.814,
+            [
+              0.14,
+              0.282,
+              0.618
+            ]
+          ],
+          [
+            0.816,
+            [
+              0.14,
+              0.282,
+              0.618
+            ]
+          ],
+          [
+            0.818,
+            [
+              0.14,
+              0.277,
+              0.615
+            ]
+          ],
+          [
+            0.82,
+            [
+              0.14,
+              0.277,
+              0.615
+            ]
+          ],
+          [
+            0.822,
+            [
+              0.14,
+              0.272,
+              0.613
+            ]
+          ],
+          [
+            0.824,
+            [
+              0.14,
+              0.272,
+              0.613
+            ]
+          ],
+          [
+            0.826,
+            [
+              0.141,
+              0.267,
+              0.61
+            ]
+          ],
+          [
+            0.828,
+            [
+              0.141,
+              0.267,
+              0.61
+            ]
+          ],
+          [
+            0.83,
+            [
+              0.141,
+              0.261,
+              0.608
+            ]
+          ],
+          [
+            0.832,
+            [
+              0.141,
+              0.261,
+              0.608
+            ]
+          ],
+          [
+            0.834,
+            [
+              0.141,
+              0.256,
+              0.605
+            ]
+          ],
+          [
+            0.836,
+            [
+              0.141,
+              0.256,
+              0.605
+            ]
+          ],
+          [
+            0.838,
+            [
+              0.142,
+              0.251,
+              0.603
+            ]
+          ],
+          [
+            0.84,
+            [
+              0.142,
+              0.251,
+              0.603
+            ]
+          ],
+          [
+            0.841,
+            [
+              0.142,
+              0.246,
+              0.6
+            ]
+          ],
+          [
+            0.843,
+            [
+              0.142,
+              0.246,
+              0.6
+            ]
+          ],
+          [
+            0.845,
+            [
+              0.142,
+              0.241,
+              0.598
+            ]
+          ],
+          [
+            0.847,
+            [
+              0.142,
+              0.241,
+              0.598
+            ]
+          ],
+          [
+            0.849,
+            [
+              0.143,
+              0.236,
+              0.595
+            ]
+          ],
+          [
+            0.851,
+            [
+              0.143,
+              0.236,
+              0.595
+            ]
+          ],
+          [
+            0.853,
+            [
+              0.143,
+              0.23,
+              0.593
+            ]
+          ],
+          [
+            0.855,
+            [
+              0.143,
+              0.23,
+              0.593
+            ]
+          ],
+          [
+            0.857,
+            [
+              0.144,
+              0.225,
+              0.591
+            ]
+          ],
+          [
+            0.859,
+            [
+              0.144,
+              0.225,
+              0.591
+            ]
+          ],
+          [
+            0.861,
+            [
+              0.144,
+              0.22,
+              0.588
+            ]
+          ],
+          [
+            0.863,
+            [
+              0.144,
+              0.22,
+              0.588
+            ]
+          ],
+          [
+            0.865,
+            [
+              0.144,
+              0.215,
+              0.586
+            ]
+          ],
+          [
+            0.867,
+            [
+              0.144,
+              0.215,
+              0.586
+            ]
+          ],
+          [
+            0.869,
+            [
+              0.145,
+              0.21,
+              0.583
+            ]
+          ],
+          [
+            0.871,
+            [
+              0.145,
+              0.21,
+              0.583
+            ]
+          ],
+          [
+            0.873,
+            [
+              0.145,
+              0.205,
+              0.581
+            ]
+          ],
+          [
+            0.875,
+            [
+              0.145,
+              0.205,
+              0.581
+            ]
+          ],
+          [
+            0.877,
+            [
+              0.142,
+              0.201,
+              0.574
+            ]
+          ],
+          [
+            0.879,
+            [
+              0.142,
+              0.201,
+              0.574
+            ]
+          ],
+          [
+            0.881,
+            [
+              0.138,
+              0.199,
+              0.567
+            ]
+          ],
+          [
+            0.883,
+            [
+              0.138,
+              0.199,
+              0.567
+            ]
+          ],
+          [
+            0.885,
+            [
+              0.135,
+              0.196,
+              0.559
+            ]
+          ],
+          [
+            0.886,
+            [
+              0.135,
+              0.196,
+              0.559
+            ]
+          ],
+          [
+            0.888,
+            [
+              0.131,
+              0.193,
+              0.552
+            ]
+          ],
+          [
+            0.89,
+            [
+              0.131,
+              0.193,
+              0.552
+            ]
+          ],
+          [
+            0.892,
+            [
+              0.128,
+              0.19,
+              0.544
+            ]
+          ],
+          [
+            0.894,
+            [
+              0.128,
+              0.19,
+              0.544
+            ]
+          ],
+          [
+            0.896,
+            [
+              0.124,
+              0.187,
+              0.537
+            ]
+          ],
+          [
+            0.898,
+            [
+              0.124,
+              0.187,
+              0.537
+            ]
+          ],
+          [
+            0.9,
+            [
+              0.121,
+              0.184,
+              0.53
+            ]
+          ],
+          [
+            0.902,
+            [
+              0.121,
+              0.184,
+              0.53
+            ]
+          ],
+          [
+            0.904,
+            [
+              0.117,
+              0.182,
+              0.522
+            ]
+          ],
+          [
+            0.906,
+            [
+              0.117,
+              0.182,
+              0.522
+            ]
+          ],
+          [
+            0.908,
+            [
+              0.113,
+              0.179,
+              0.515
+            ]
+          ],
+          [
+            0.91,
+            [
+              0.113,
+              0.179,
+              0.515
+            ]
+          ],
+          [
+            0.912,
+            [
+              0.11,
+              0.176,
+              0.507
+            ]
+          ],
+          [
+            0.914,
+            [
+              0.11,
+              0.176,
+              0.507
+            ]
+          ],
+          [
+            0.916,
+            [
+              0.106,
+              0.173,
+              0.5
+            ]
+          ],
+          [
+            0.918,
+            [
+              0.106,
+              0.173,
+              0.5
+            ]
+          ],
+          [
+            0.92,
+            [
+              0.103,
+              0.17,
+              0.493
+            ]
+          ],
+          [
+            0.922,
+            [
+              0.103,
+              0.17,
+              0.493
+            ]
+          ],
+          [
+            0.924,
+            [
+              0.099,
+              0.167,
+              0.485
+            ]
+          ],
+          [
+            0.926,
+            [
+              0.099,
+              0.167,
+              0.485
+            ]
+          ],
+          [
+            0.928,
+            [
+              0.096,
+              0.165,
+              0.478
+            ]
+          ],
+          [
+            0.93,
+            [
+              0.096,
+              0.165,
+              0.478
+            ]
+          ],
+          [
+            0.932,
+            [
+              0.092,
+              0.162,
+              0.471
+            ]
+          ],
+          [
+            0.933,
+            [
+              0.092,
+              0.162,
+              0.471
+            ]
+          ],
+          [
+            0.935,
+            [
+              0.088,
+              0.159,
+              0.463
+            ]
+          ],
+          [
+            0.937,
+            [
+              0.088,
+              0.159,
+              0.463
+            ]
+          ],
+          [
+            0.939,
+            [
+              0.085,
+              0.156,
+              0.456
+            ]
+          ],
+          [
+            0.941,
+            [
+              0.085,
+              0.156,
+              0.456
+            ]
+          ],
+          [
+            0.943,
+            [
+              0.081,
+              0.153,
+              0.448
+            ]
+          ],
+          [
+            0.945,
+            [
+              0.081,
+              0.153,
+              0.448
+            ]
+          ],
+          [
+            0.947,
+            [
+              0.078,
+              0.151,
+              0.441
+            ]
+          ],
+          [
+            0.949,
+            [
+              0.078,
+              0.151,
+              0.441
+            ]
+          ],
+          [
+            0.951,
+            [
+              0.074,
+              0.148,
+              0.434
+            ]
+          ],
+          [
+            0.953,
+            [
+              0.074,
+              0.148,
+              0.434
+            ]
+          ],
+          [
+            0.955,
+            [
+              0.071,
+              0.145,
+              0.426
+            ]
+          ],
+          [
+            0.957,
+            [
+              0.071,
+              0.145,
+              0.426
+            ]
+          ],
+          [
+            0.959,
+            [
+              0.067,
+              0.142,
+              0.419
+            ]
+          ],
+          [
+            0.961,
+            [
+              0.067,
+              0.142,
+              0.419
+            ]
+          ],
+          [
+            0.963,
+            [
+              0.063,
+              0.139,
+              0.412
+            ]
+          ],
+          [
+            0.965,
+            [
+              0.063,
+              0.139,
+              0.412
+            ]
+          ],
+          [
+            0.967,
+            [
+              0.06,
+              0.136,
+              0.404
+            ]
+          ],
+          [
+            0.969,
+            [
+              0.06,
+              0.136,
+              0.404
+            ]
+          ],
+          [
+            0.971,
+            [
+              0.056,
+              0.134,
+              0.397
+            ]
+          ],
+          [
+            0.973,
+            [
+              0.056,
+              0.134,
+              0.397
+            ]
+          ],
+          [
+            0.975,
+            [
+              0.053,
+              0.131,
+              0.389
+            ]
+          ],
+          [
+            0.977,
+            [
+              0.053,
+              0.131,
+              0.389
+            ]
+          ],
+          [
+            0.978,
+            [
+              0.049,
+              0.128,
+              0.382
+            ]
+          ],
+          [
+            0.98,
+            [
+              0.049,
+              0.128,
+              0.382
+            ]
+          ],
+          [
+            0.982,
+            [
+              0.046,
+              0.125,
+              0.375
+            ]
+          ],
+          [
+            0.984,
+            [
+              0.046,
+              0.125,
+              0.375
+            ]
+          ],
+          [
+            0.986,
+            [
+              0.042,
+              0.122,
+              0.367
+            ]
+          ],
+          [
+            0.988,
+            [
+              0.042,
+              0.122,
+              0.367
+            ]
+          ],
+          [
+            0.99,
+            [
+              0.039,
+              0.119,
+              0.36
+            ]
+          ],
+          [
+            0.992,
+            [
+              0.039,
+              0.119,
+              0.36
+            ]
+          ],
+          [
+            0.994,
+            [
+              0.035,
+              0.117,
+              0.352
+            ]
+          ],
+          [
+            0.996,
+            [
+              0.035,
+              0.117,
+              0.352
+            ]
+          ],
+          [
+            0.998,
+            [
+              0.031,
+              0.114,
+              0.345
+            ]
+          ],
+          [
+            1,
+            [
+              0.031,
+              0.114,
+              0.345
+            ]
+          ]
+        ],
+        [
+          [
+            0,
+            [
+              0,
+              0,
+              1
+            ]
+          ],
+          [
+            0.002,
+            [
+              0,
+              0,
+              1
+            ]
+          ],
+          [
+            0.004,
+            [
+              0,
+              0.004,
+              0.998
+            ]
+          ],
+          [
+            0.006,
+            [
+              0,
+              0.004,
+              0.998
+            ]
+          ],
+          [
+            0.008,
+            [
+              0,
+              0.008,
+              0.996
+            ]
+          ],
+          [
+            0.01,
+            [
+              0,
+              0.008,
+              0.996
+            ]
+          ],
+          [
+            0.012,
+            [
+              0,
+              0.012,
+              0.994
+            ]
+          ],
+          [
+            0.014,
+            [
+              0,
+              0.012,
+              0.994
+            ]
+          ],
+          [
+            0.016,
+            [
+              0,
+              0.016,
+              0.992
+            ]
+          ],
+          [
+            0.018,
+            [
+              0,
+              0.016,
+              0.992
+            ]
+          ],
+          [
+            0.02,
+            [
+              0,
+              0.02,
+              0.99
+            ]
+          ],
+          [
+            0.022,
+            [
+              0,
+              0.02,
+              0.99
+            ]
+          ],
+          [
+            0.023,
+            [
+              0,
+              0.024,
+              0.988
+            ]
+          ],
+          [
+            0.025,
+            [
+              0,
+              0.024,
+              0.988
+            ]
+          ],
+          [
+            0.027,
+            [
+              0,
+              0.027,
+              0.986
+            ]
+          ],
+          [
+            0.029,
+            [
+              0,
+              0.027,
+              0.986
+            ]
+          ],
+          [
+            0.031,
+            [
+              0,
+              0.031,
+              0.984
+            ]
+          ],
+          [
+            0.033,
+            [
+              0,
+              0.031,
+              0.984
+            ]
+          ],
+          [
+            0.035,
+            [
+              0,
+              0.035,
+              0.982
+            ]
+          ],
+          [
+            0.037,
+            [
+              0,
+              0.035,
+              0.982
+            ]
+          ],
+          [
+            0.039,
+            [
+              0,
+              0.039,
+              0.98
+            ]
+          ],
+          [
+            0.041,
+            [
+              0,
+              0.039,
+              0.98
+            ]
+          ],
+          [
+            0.043,
+            [
+              0,
+              0.043,
+              0.978
+            ]
+          ],
+          [
+            0.045,
+            [
+              0,
+              0.043,
+              0.978
+            ]
+          ],
+          [
+            0.047,
+            [
+              0,
+              0.047,
+              0.976
+            ]
+          ],
+          [
+            0.049,
+            [
+              0,
+              0.047,
+              0.976
+            ]
+          ],
+          [
+            0.051,
+            [
+              0,
+              0.051,
+              0.975
+            ]
+          ],
+          [
+            0.053,
+            [
+              0,
+              0.051,
+              0.975
+            ]
+          ],
+          [
+            0.055,
+            [
+              0,
+              0.055,
+              0.973
+            ]
+          ],
+          [
+            0.057,
+            [
+              0,
+              0.055,
+              0.973
+            ]
+          ],
+          [
+            0.059,
+            [
+              0,
+              0.059,
+              0.971
+            ]
+          ],
+          [
+            0.061,
+            [
+              0,
+              0.059,
+              0.971
+            ]
+          ],
+          [
+            0.063,
+            [
+              0,
+              0.063,
+              0.969
+            ]
+          ],
+          [
+            0.065,
+            [
+              0,
+              0.063,
+              0.969
+            ]
+          ],
+          [
+            0.067,
+            [
+              0,
+              0.067,
+              0.967
+            ]
+          ],
+          [
+            0.068,
+            [
+              0,
+              0.067,
+              0.967
+            ]
+          ],
+          [
+            0.07,
+            [
+              0,
+              0.071,
+              0.965
+            ]
+          ],
+          [
+            0.072,
+            [
+              0,
+              0.071,
+              0.965
+            ]
+          ],
+          [
+            0.074,
+            [
+              0,
+              0.075,
+              0.963
+            ]
+          ],
+          [
+            0.076,
+            [
+              0,
+              0.075,
+              0.963
+            ]
+          ],
+          [
+            0.078,
+            [
+              0,
+              0.078,
+              0.961
+            ]
+          ],
+          [
+            0.08,
+            [
+              0,
+              0.078,
+              0.961
+            ]
+          ],
+          [
+            0.082,
+            [
+              0,
+              0.082,
+              0.959
+            ]
+          ],
+          [
+            0.084,
+            [
+              0,
+              0.082,
+              0.959
+            ]
+          ],
+          [
+            0.086,
+            [
+              0,
+              0.086,
+              0.957
+            ]
+          ],
+          [
+            0.088,
+            [
+              0,
+              0.086,
+              0.957
+            ]
+          ],
+          [
+            0.09,
+            [
+              0,
+              0.09,
+              0.955
+            ]
+          ],
+          [
+            0.092,
+            [
+              0,
+              0.09,
+              0.955
+            ]
+          ],
+          [
+            0.094,
+            [
+              0,
+              0.094,
+              0.953
+            ]
+          ],
+          [
+            0.096,
+            [
+              0,
+              0.094,
+              0.953
+            ]
+          ],
+          [
+            0.098,
+            [
+              0,
+              0.098,
+              0.951
+            ]
+          ],
+          [
+            0.1,
+            [
+              0,
+              0.098,
+              0.951
+            ]
+          ],
+          [
+            0.102,
+            [
+              0,
+              0.102,
+              0.949
+            ]
+          ],
+          [
+            0.104,
+            [
+              0,
+              0.102,
+              0.949
+            ]
+          ],
+          [
+            0.106,
+            [
+              0,
+              0.106,
+              0.947
+            ]
+          ],
+          [
+            0.108,
+            [
+              0,
+              0.106,
+              0.947
+            ]
+          ],
+          [
+            0.11,
+            [
+              0,
+              0.11,
+              0.945
+            ]
+          ],
+          [
+            0.112,
+            [
+              0,
+              0.11,
+              0.945
+            ]
+          ],
+          [
+            0.114,
+            [
+              0,
+              0.114,
+              0.943
+            ]
+          ],
+          [
+            0.115,
+            [
+              0,
+              0.114,
+              0.943
+            ]
+          ],
+          [
+            0.117,
+            [
+              0,
+              0.118,
+              0.941
+            ]
+          ],
+          [
+            0.119,
+            [
+              0,
+              0.118,
+              0.941
+            ]
+          ],
+          [
+            0.121,
+            [
+              0,
+              0.122,
+              0.939
+            ]
+          ],
+          [
+            0.123,
+            [
+              0,
+              0.122,
+              0.939
+            ]
+          ],
+          [
+            0.125,
+            [
+              0,
+              0.125,
+              0.937
+            ]
+          ],
+          [
+            0.127,
+            [
+              0,
+              0.125,
+              0.937
+            ]
+          ],
+          [
+            0.129,
+            [
+              0,
+              0.129,
+              0.935
+            ]
+          ],
+          [
+            0.131,
+            [
+              0,
+              0.129,
+              0.935
+            ]
+          ],
+          [
+            0.133,
+            [
+              0,
+              0.133,
+              0.933
+            ]
+          ],
+          [
+            0.135,
+            [
+              0,
+              0.133,
+              0.933
+            ]
+          ],
+          [
+            0.137,
+            [
+              0,
+              0.137,
+              0.931
+            ]
+          ],
+          [
+            0.139,
+            [
+              0,
+              0.137,
+              0.931
+            ]
+          ],
+          [
+            0.141,
+            [
+              0,
+              0.141,
+              0.929
+            ]
+          ],
+          [
+            0.143,
+            [
+              0,
+              0.141,
+              0.929
+            ]
+          ],
+          [
+            0.145,
+            [
+              0,
+              0.145,
+              0.927
+            ]
+          ],
+          [
+            0.147,
+            [
+              0,
+              0.145,
+              0.927
+            ]
+          ],
+          [
+            0.149,
+            [
+              0,
+              0.149,
+              0.925
+            ]
+          ],
+          [
+            0.151,
+            [
+              0,
+              0.149,
+              0.925
+            ]
+          ],
+          [
+            0.153,
+            [
+              0,
+              0.153,
+              0.924
+            ]
+          ],
+          [
+            0.155,
+            [
+              0,
+              0.153,
+              0.924
+            ]
+          ],
+          [
+            0.157,
+            [
+              0,
+              0.157,
+              0.922
+            ]
+          ],
+          [
+            0.159,
+            [
+              0,
+              0.157,
+              0.922
+            ]
+          ],
+          [
+            0.16,
+            [
+              0,
+              0.161,
+              0.92
+            ]
+          ],
+          [
+            0.162,
+            [
+              0,
+              0.161,
+              0.92
+            ]
+          ],
+          [
+            0.164,
+            [
+              0,
+              0.165,
+              0.918
+            ]
+          ],
+          [
+            0.166,
+            [
+              0,
+              0.165,
+              0.918
+            ]
+          ],
+          [
+            0.168,
+            [
+              0,
+              0.169,
+              0.916
+            ]
+          ],
+          [
+            0.17,
+            [
+              0,
+              0.169,
+              0.916
+            ]
+          ],
+          [
+            0.172,
+            [
+              0,
+              0.173,
+              0.914
+            ]
+          ],
+          [
+            0.174,
+            [
+              0,
+              0.173,
+              0.914
+            ]
+          ],
+          [
+            0.176,
+            [
+              0,
+              0.176,
+              0.912
+            ]
+          ],
+          [
+            0.178,
+            [
+              0,
+              0.176,
+              0.912
+            ]
+          ],
+          [
+            0.18,
+            [
+              0,
+              0.18,
+              0.91
+            ]
+          ],
+          [
+            0.182,
+            [
+              0,
+              0.18,
+              0.91
+            ]
+          ],
+          [
+            0.184,
+            [
+              0,
+              0.184,
+              0.908
+            ]
+          ],
+          [
+            0.186,
+            [
+              0,
+              0.184,
+              0.908
+            ]
+          ],
+          [
+            0.188,
+            [
+              0,
+              0.188,
+              0.906
+            ]
+          ],
+          [
+            0.19,
+            [
+              0,
+              0.188,
+              0.906
+            ]
+          ],
+          [
+            0.192,
+            [
+              0,
+              0.192,
+              0.904
+            ]
+          ],
+          [
+            0.194,
+            [
+              0,
+              0.192,
+              0.904
+            ]
+          ],
+          [
+            0.196,
+            [
+              0,
+              0.196,
+              0.902
+            ]
+          ],
+          [
+            0.198,
+            [
+              0,
+              0.196,
+              0.902
+            ]
+          ],
+          [
+            0.2,
+            [
+              0,
+              0.2,
+              0.9
+            ]
+          ],
+          [
+            0.202,
+            [
+              0,
+              0.2,
+              0.9
+            ]
+          ],
+          [
+            0.204,
+            [
+              0,
+              0.204,
+              0.898
+            ]
+          ],
+          [
+            0.205,
+            [
+              0,
+              0.204,
+              0.898
+            ]
+          ],
+          [
+            0.207,
+            [
+              0,
+              0.208,
+              0.896
+            ]
+          ],
+          [
+            0.209,
+            [
+              0,
+              0.208,
+              0.896
+            ]
+          ],
+          [
+            0.211,
+            [
+              0,
+              0.212,
+              0.894
+            ]
+          ],
+          [
+            0.213,
+            [
+              0,
+              0.212,
+              0.894
+            ]
+          ],
+          [
+            0.215,
+            [
+              0,
+              0.216,
+              0.892
+            ]
+          ],
+          [
+            0.217,
+            [
+              0,
+              0.216,
+              0.892
+            ]
+          ],
+          [
+            0.219,
+            [
+              0,
+              0.22,
+              0.89
+            ]
+          ],
+          [
+            0.221,
+            [
+              0,
+              0.22,
+              0.89
+            ]
+          ],
+          [
+            0.223,
+            [
+              0,
+              0.224,
+              0.888
+            ]
+          ],
+          [
+            0.225,
+            [
+              0,
+              0.224,
+              0.888
+            ]
+          ],
+          [
+            0.227,
+            [
+              0,
+              0.227,
+              0.886
+            ]
+          ],
+          [
+            0.229,
+            [
+              0,
+              0.227,
+              0.886
+            ]
+          ],
+          [
+            0.231,
+            [
+              0,
+              0.231,
+              0.884
+            ]
+          ],
+          [
+            0.233,
+            [
+              0,
+              0.231,
+              0.884
+            ]
+          ],
+          [
+            0.235,
+            [
+              0,
+              0.235,
+              0.882
+            ]
+          ],
+          [
+            0.237,
+            [
+              0,
+              0.235,
+              0.882
+            ]
+          ],
+          [
+            0.239,
+            [
+              0,
+              0.239,
+              0.88
+            ]
+          ],
+          [
+            0.241,
+            [
+              0,
+              0.239,
+              0.88
+            ]
+          ],
+          [
+            0.243,
+            [
+              0,
+              0.243,
+              0.878
+            ]
+          ],
+          [
+            0.245,
+            [
+              0,
+              0.243,
+              0.878
+            ]
+          ],
+          [
+            0.247,
+            [
+              0,
+              0.247,
+              0.876
+            ]
+          ],
+          [
+            0.249,
+            [
+              0,
+              0.247,
+              0.876
+            ]
+          ],
+          [
+            0.25,
+            [
+              0,
+              0.251,
+              0.875
+            ]
+          ],
+          [
+            0.252,
+            [
+              0,
+              0.251,
+              0.875
+            ]
+          ],
+          [
+            0.254,
+            [
+              0,
+              0.255,
+              0.873
+            ]
+          ],
+          [
+            0.256,
+            [
+              0,
+              0.255,
+              0.873
+            ]
+          ],
+          [
+            0.258,
+            [
+              0,
+              0.259,
+              0.871
+            ]
+          ],
+          [
+            0.26,
+            [
+              0,
+              0.259,
+              0.871
+            ]
+          ],
+          [
+            0.262,
+            [
+              0,
+              0.263,
+              0.869
+            ]
+          ],
+          [
+            0.264,
+            [
+              0,
+              0.263,
+              0.869
+            ]
+          ],
+          [
+            0.266,
+            [
+              0,
+              0.267,
+              0.867
+            ]
+          ],
+          [
+            0.268,
+            [
+              0,
+              0.267,
+              0.867
+            ]
+          ],
+          [
+            0.27,
+            [
+              0,
+              0.271,
+              0.865
+            ]
+          ],
+          [
+            0.272,
+            [
+              0,
+              0.271,
+              0.865
+            ]
+          ],
+          [
+            0.274,
+            [
+              0,
+              0.275,
+              0.863
+            ]
+          ],
+          [
+            0.276,
+            [
+              0,
+              0.275,
+              0.863
+            ]
+          ],
+          [
+            0.278,
+            [
+              0,
+              0.278,
+              0.861
+            ]
+          ],
+          [
+            0.28,
+            [
+              0,
+              0.278,
+              0.861
+            ]
+          ],
+          [
+            0.282,
+            [
+              0,
+              0.282,
+              0.859
+            ]
+          ],
+          [
+            0.284,
+            [
+              0,
+              0.282,
+              0.859
+            ]
+          ],
+          [
+            0.286,
+            [
+              0,
+              0.286,
+              0.857
+            ]
+          ],
+          [
+            0.288,
+            [
+              0,
+              0.286,
+              0.857
+            ]
+          ],
+          [
+            0.29,
+            [
+              0,
+              0.29,
+              0.855
+            ]
+          ],
+          [
+            0.292,
+            [
+              0,
+              0.29,
+              0.855
+            ]
+          ],
+          [
+            0.294,
+            [
+              0,
+              0.294,
+              0.853
+            ]
+          ],
+          [
+            0.295,
+            [
+              0,
+              0.294,
+              0.853
+            ]
+          ],
+          [
+            0.297,
+            [
+              0,
+              0.298,
+              0.851
+            ]
+          ],
+          [
+            0.299,
+            [
+              0,
+              0.298,
+              0.851
+            ]
+          ],
+          [
+            0.301,
+            [
+              0,
+              0.302,
+              0.849
+            ]
+          ],
+          [
+            0.303,
+            [
+              0,
+              0.302,
+              0.849
+            ]
+          ],
+          [
+            0.305,
+            [
+              0,
+              0.306,
+              0.847
+            ]
+          ],
+          [
+            0.307,
+            [
+              0,
+              0.306,
+              0.847
+            ]
+          ],
+          [
+            0.309,
+            [
+              0,
+              0.31,
+              0.845
+            ]
+          ],
+          [
+            0.311,
+            [
+              0,
+              0.31,
+              0.845
+            ]
+          ],
+          [
+            0.313,
+            [
+              0,
+              0.314,
+              0.843
+            ]
+          ],
+          [
+            0.315,
+            [
+              0,
+              0.314,
+              0.843
+            ]
+          ],
+          [
+            0.317,
+            [
+              0,
+              0.318,
+              0.841
+            ]
+          ],
+          [
+            0.319,
+            [
+              0,
+              0.318,
+              0.841
+            ]
+          ],
+          [
+            0.321,
+            [
+              0,
+              0.322,
+              0.839
+            ]
+          ],
+          [
+            0.323,
+            [
+              0,
+              0.322,
+              0.839
+            ]
+          ],
+          [
+            0.325,
+            [
+              0,
+              0.325,
+              0.837
+            ]
+          ],
+          [
+            0.327,
+            [
+              0,
+              0.325,
+              0.837
+            ]
+          ],
+          [
+            0.329,
+            [
+              0,
+              0.329,
+              0.835
+            ]
+          ],
+          [
+            0.331,
+            [
+              0,
+              0.329,
+              0.835
+            ]
+          ],
+          [
+            0.333,
+            [
+              0,
+              0.333,
+              0.833
+            ]
+          ],
+          [
+            0.335,
+            [
+              0,
+              0.333,
+              0.833
+            ]
+          ],
+          [
+            0.337,
+            [
+              0,
+              0.337,
+              0.831
+            ]
+          ],
+          [
+            0.339,
+            [
+              0,
+              0.337,
+              0.831
+            ]
+          ],
+          [
+            0.341,
+            [
+              0,
+              0.341,
+              0.829
+            ]
+          ],
+          [
+            0.342,
+            [
+              0,
+              0.341,
+              0.829
+            ]
+          ],
+          [
+            0.344,
+            [
+              0,
+              0.345,
+              0.827
+            ]
+          ],
+          [
+            0.346,
+            [
+              0,
+              0.345,
+              0.827
+            ]
+          ],
+          [
+            0.348,
+            [
+              0,
+              0.349,
+              0.825
+            ]
+          ],
+          [
+            0.35,
+            [
+              0,
+              0.349,
+              0.825
+            ]
+          ],
+          [
+            0.352,
+            [
+              0,
+              0.353,
+              0.824
+            ]
+          ],
+          [
+            0.354,
+            [
+              0,
+              0.353,
+              0.824
+            ]
+          ],
+          [
+            0.356,
+            [
+              0,
+              0.357,
+              0.822
+            ]
+          ],
+          [
+            0.358,
+            [
+              0,
+              0.357,
+              0.822
+            ]
+          ],
+          [
+            0.36,
+            [
+              0,
+              0.361,
+              0.82
+            ]
+          ],
+          [
+            0.362,
+            [
+              0,
+              0.361,
+              0.82
+            ]
+          ],
+          [
+            0.364,
+            [
+              0,
+              0.365,
+              0.818
+            ]
+          ],
+          [
+            0.366,
+            [
+              0,
+              0.365,
+              0.818
+            ]
+          ],
+          [
+            0.368,
+            [
+              0,
+              0.369,
+              0.816
+            ]
+          ],
+          [
+            0.37,
+            [
+              0,
+              0.369,
+              0.816
+            ]
+          ],
+          [
+            0.372,
+            [
+              0,
+              0.373,
+              0.814
+            ]
+          ],
+          [
+            0.374,
+            [
+              0,
+              0.373,
+              0.814
+            ]
+          ],
+          [
+            0.376,
+            [
+              0,
+              0.376,
+              0.812
+            ]
+          ],
+          [
+            0.378,
+            [
+              0,
+              0.376,
+              0.812
+            ]
+          ],
+          [
+            0.38,
+            [
+              0,
+              0.38,
+              0.81
+            ]
+          ],
+          [
+            0.382,
+            [
+              0,
+              0.38,
+              0.81
+            ]
+          ],
+          [
+            0.384,
+            [
+              0,
+              0.384,
+              0.808
+            ]
+          ],
+          [
+            0.386,
+            [
+              0,
+              0.384,
+              0.808
+            ]
+          ],
+          [
+            0.387,
+            [
+              0,
+              0.388,
+              0.806
+            ]
+          ],
+          [
+            0.389,
+            [
+              0,
+              0.388,
+              0.806
+            ]
+          ],
+          [
+            0.391,
+            [
+              0,
+              0.392,
+              0.804
+            ]
+          ],
+          [
+            0.393,
+            [
+              0,
+              0.392,
+              0.804
+            ]
+          ],
+          [
+            0.395,
+            [
+              0,
+              0.396,
+              0.802
+            ]
+          ],
+          [
+            0.397,
+            [
+              0,
+              0.396,
+              0.802
+            ]
+          ],
+          [
+            0.399,
+            [
+              0,
+              0.4,
+              0.8
+            ]
+          ],
+          [
+            0.401,
+            [
+              0,
+              0.4,
+              0.8
+            ]
+          ],
+          [
+            0.403,
+            [
+              0,
+              0.404,
+              0.798
+            ]
+          ],
+          [
+            0.405,
+            [
+              0,
+              0.404,
+              0.798
+            ]
+          ],
+          [
+            0.407,
+            [
+              0,
+              0.408,
+              0.796
+            ]
+          ],
+          [
+            0.409,
+            [
+              0,
+              0.408,
+              0.796
+            ]
+          ],
+          [
+            0.411,
+            [
+              0,
+              0.412,
+              0.794
+            ]
+          ],
+          [
+            0.413,
+            [
+              0,
+              0.412,
+              0.794
+            ]
+          ],
+          [
+            0.415,
+            [
+              0,
+              0.416,
+              0.792
+            ]
+          ],
+          [
+            0.417,
+            [
+              0,
+              0.416,
+              0.792
+            ]
+          ],
+          [
+            0.419,
+            [
+              0,
+              0.42,
+              0.79
+            ]
+          ],
+          [
+            0.421,
+            [
+              0,
+              0.42,
+              0.79
+            ]
+          ],
+          [
+            0.423,
+            [
+              0,
+              0.424,
+              0.788
+            ]
+          ],
+          [
+            0.425,
+            [
+              0,
+              0.424,
+              0.788
+            ]
+          ],
+          [
+            0.427,
+            [
+              0,
+              0.427,
+              0.786
+            ]
+          ],
+          [
+            0.429,
+            [
+              0,
+              0.427,
+              0.786
+            ]
+          ],
+          [
+            0.431,
+            [
+              0,
+              0.431,
+              0.784
+            ]
+          ],
+          [
+            0.432,
+            [
+              0,
+              0.431,
+              0.784
+            ]
+          ],
+          [
+            0.434,
+            [
+              0,
+              0.435,
+              0.782
+            ]
+          ],
+          [
+            0.436,
+            [
+              0,
+              0.435,
+              0.782
+            ]
+          ],
+          [
+            0.438,
+            [
+              0,
+              0.439,
+              0.78
+            ]
+          ],
+          [
+            0.44,
+            [
+              0,
+              0.439,
+              0.78
+            ]
+          ],
+          [
+            0.442,
+            [
+              0,
+              0.443,
+              0.778
+            ]
+          ],
+          [
+            0.444,
+            [
+              0,
+              0.443,
+              0.778
+            ]
+          ],
+          [
+            0.446,
+            [
+              0,
+              0.447,
+              0.776
+            ]
+          ],
+          [
+            0.448,
+            [
+              0,
+              0.447,
+              0.776
+            ]
+          ],
+          [
+            0.45,
+            [
+              0,
+              0.451,
+              0.775
+            ]
+          ],
+          [
+            0.452,
+            [
+              0,
+              0.451,
+              0.775
+            ]
+          ],
+          [
+            0.454,
+            [
+              0,
+              0.455,
+              0.773
+            ]
+          ],
+          [
+            0.456,
+            [
+              0,
+              0.455,
+              0.773
+            ]
+          ],
+          [
+            0.458,
+            [
+              0,
+              0.459,
+              0.771
+            ]
+          ],
+          [
+            0.46,
+            [
+              0,
+              0.459,
+              0.771
+            ]
+          ],
+          [
+            0.462,
+            [
+              0,
+              0.463,
+              0.769
+            ]
+          ],
+          [
+            0.464,
+            [
+              0,
+              0.463,
+              0.769
+            ]
+          ],
+          [
+            0.466,
+            [
+              0,
+              0.467,
+              0.767
+            ]
+          ],
+          [
+            0.468,
+            [
+              0,
+              0.467,
+              0.767
+            ]
+          ],
+          [
+            0.47,
+            [
+              0,
+              0.471,
+              0.765
+            ]
+          ],
+          [
+            0.472,
+            [
+              0,
+              0.471,
+              0.765
+            ]
+          ],
+          [
+            0.474,
+            [
+              0,
+              0.475,
+              0.763
+            ]
+          ],
+          [
+            0.476,
+            [
+              0,
+              0.475,
+              0.763
+            ]
+          ],
+          [
+            0.477,
+            [
+              0,
+              0.478,
+              0.761
+            ]
+          ],
+          [
+            0.479,
+            [
+              0,
+              0.478,
+              0.761
+            ]
+          ],
+          [
+            0.481,
+            [
+              0,
+              0.482,
+              0.759
+            ]
+          ],
+          [
+            0.483,
+            [
+              0,
+              0.482,
+              0.759
+            ]
+          ],
+          [
+            0.485,
+            [
+              0,
+              0.486,
+              0.757
+            ]
+          ],
+          [
+            0.487,
+            [
+              0,
+              0.486,
+              0.757
+            ]
+          ],
+          [
+            0.489,
+            [
+              0,
+              0.49,
+              0.755
+            ]
+          ],
+          [
+            0.491,
+            [
+              0,
+              0.49,
+              0.755
+            ]
+          ],
+          [
+            0.493,
+            [
+              0,
+              0.494,
+              0.753
+            ]
+          ],
+          [
+            0.495,
+            [
+              0,
+              0.494,
+              0.753
+            ]
+          ],
+          [
+            0.497,
+            [
+              0,
+              0.498,
+              0.751
+            ]
+          ],
+          [
+            0.499,
+            [
+              0,
+              0.498,
+              0.751
+            ]
+          ],
+          [
+            0.501,
+            [
+              0,
+              0.502,
+              0.749
+            ]
+          ],
+          [
+            0.503,
+            [
+              0,
+              0.502,
+              0.749
+            ]
+          ],
+          [
+            0.505,
+            [
+              0,
+              0.506,
+              0.747
+            ]
+          ],
+          [
+            0.507,
+            [
+              0,
+              0.506,
+              0.747
+            ]
+          ],
+          [
+            0.509,
+            [
+              0,
+              0.51,
+              0.745
+            ]
+          ],
+          [
+            0.511,
+            [
+              0,
+              0.51,
+              0.745
+            ]
+          ],
+          [
+            0.513,
+            [
+              0,
+              0.514,
+              0.743
+            ]
+          ],
+          [
+            0.515,
+            [
+              0,
+              0.514,
+              0.743
+            ]
+          ],
+          [
+            0.517,
+            [
+              0,
+              0.518,
+              0.741
+            ]
+          ],
+          [
+            0.519,
+            [
+              0,
+              0.518,
+              0.741
+            ]
+          ],
+          [
+            0.521,
+            [
+              0,
+              0.522,
+              0.739
+            ]
+          ],
+          [
+            0.523,
+            [
+              0,
+              0.522,
+              0.739
+            ]
+          ],
+          [
+            0.524,
+            [
+              0,
+              0.525,
+              0.737
+            ]
+          ],
+          [
+            0.526,
+            [
+              0,
+              0.525,
+              0.737
+            ]
+          ],
+          [
+            0.528,
+            [
+              0,
+              0.529,
+              0.735
+            ]
+          ],
+          [
+            0.53,
+            [
+              0,
+              0.529,
+              0.735
+            ]
+          ],
+          [
+            0.532,
+            [
+              0,
+              0.533,
+              0.733
+            ]
+          ],
+          [
+            0.534,
+            [
+              0,
+              0.533,
+              0.733
+            ]
+          ],
+          [
+            0.536,
+            [
+              0,
+              0.537,
+              0.731
+            ]
+          ],
+          [
+            0.538,
+            [
+              0,
+              0.537,
+              0.731
+            ]
+          ],
+          [
+            0.54,
+            [
+              0,
+              0.541,
+              0.729
+            ]
+          ],
+          [
+            0.542,
+            [
+              0,
+              0.541,
+              0.729
+            ]
+          ],
+          [
+            0.544,
+            [
+              0,
+              0.545,
+              0.727
+            ]
+          ],
+          [
+            0.546,
+            [
+              0,
+              0.545,
+              0.727
+            ]
+          ],
+          [
+            0.548,
+            [
+              0,
+              0.549,
+              0.725
+            ]
+          ],
+          [
+            0.55,
+            [
+              0,
+              0.549,
+              0.725
+            ]
+          ],
+          [
+            0.552,
+            [
+              0,
+              0.553,
+              0.724
+            ]
+          ],
+          [
+            0.554,
+            [
+              0,
+              0.553,
+              0.724
+            ]
+          ],
+          [
+            0.556,
+            [
+              0,
+              0.557,
+              0.722
+            ]
+          ],
+          [
+            0.558,
+            [
+              0,
+              0.557,
+              0.722
+            ]
+          ],
+          [
+            0.56,
+            [
+              0,
+              0.561,
+              0.72
+            ]
+          ],
+          [
+            0.562,
+            [
+              0,
+              0.561,
+              0.72
+            ]
+          ],
+          [
+            0.564,
+            [
+              0,
+              0.565,
+              0.718
+            ]
+          ],
+          [
+            0.566,
+            [
+              0,
+              0.565,
+              0.718
+            ]
+          ],
+          [
+            0.568,
+            [
+              0,
+              0.569,
+              0.716
+            ]
+          ],
+          [
+            0.569,
+            [
+              0,
+              0.569,
+              0.716
+            ]
+          ],
+          [
+            0.571,
+            [
+              0,
+              0.573,
+              0.714
+            ]
+          ],
+          [
+            0.573,
+            [
+              0,
+              0.573,
+              0.714
+            ]
+          ],
+          [
+            0.575,
+            [
+              0,
+              0.576,
+              0.712
+            ]
+          ],
+          [
+            0.577,
+            [
+              0,
+              0.576,
+              0.712
+            ]
+          ],
+          [
+            0.579,
+            [
+              0,
+              0.58,
+              0.71
+            ]
+          ],
+          [
+            0.581,
+            [
+              0,
+              0.58,
+              0.71
+            ]
+          ],
+          [
+            0.583,
+            [
+              0,
+              0.584,
+              0.708
+            ]
+          ],
+          [
+            0.585,
+            [
+              0,
+              0.584,
+              0.708
+            ]
+          ],
+          [
+            0.587,
+            [
+              0,
+              0.588,
+              0.706
+            ]
+          ],
+          [
+            0.589,
+            [
+              0,
+              0.588,
+              0.706
+            ]
+          ],
+          [
+            0.591,
+            [
+              0,
+              0.592,
+              0.704
+            ]
+          ],
+          [
+            0.593,
+            [
+              0,
+              0.592,
+              0.704
+            ]
+          ],
+          [
+            0.595,
+            [
+              0,
+              0.596,
+              0.702
+            ]
+          ],
+          [
+            0.597,
+            [
+              0,
+              0.596,
+              0.702
+            ]
+          ],
+          [
+            0.599,
+            [
+              0,
+              0.6,
+              0.7
+            ]
+          ],
+          [
+            0.601,
+            [
+              0,
+              0.6,
+              0.7
+            ]
+          ],
+          [
+            0.603,
+            [
+              0,
+              0.604,
+              0.698
+            ]
+          ],
+          [
+            0.605,
+            [
+              0,
+              0.604,
+              0.698
+            ]
+          ],
+          [
+            0.607,
+            [
+              0,
+              0.608,
+              0.696
+            ]
+          ],
+          [
+            0.609,
+            [
+              0,
+              0.608,
+              0.696
+            ]
+          ],
+          [
+            0.611,
+            [
+              0,
+              0.612,
+              0.694
+            ]
+          ],
+          [
+            0.613,
+            [
+              0,
+              0.612,
+              0.694
+            ]
+          ],
+          [
+            0.614,
+            [
+              0,
+              0.616,
+              0.692
+            ]
+          ],
+          [
+            0.616,
+            [
+              0,
+              0.616,
+              0.692
+            ]
+          ],
+          [
+            0.618,
+            [
+              0,
+              0.62,
+              0.69
+            ]
+          ],
+          [
+            0.62,
+            [
+              0,
+              0.62,
+              0.69
+            ]
+          ],
+          [
+            0.622,
+            [
+              0,
+              0.624,
+              0.688
+            ]
+          ],
+          [
+            0.624,
+            [
+              0,
+              0.624,
+              0.688
+            ]
+          ],
+          [
+            0.626,
+            [
+              0,
+              0.627,
+              0.686
+            ]
+          ],
+          [
+            0.628,
+            [
+              0,
+              0.627,
+              0.686
+            ]
+          ],
+          [
+            0.63,
+            [
+              0,
+              0.631,
+              0.684
+            ]
+          ],
+          [
+            0.632,
+            [
+              0,
+              0.631,
+              0.684
+            ]
+          ],
+          [
+            0.634,
+            [
+              0,
+              0.635,
+              0.682
+            ]
+          ],
+          [
+            0.636,
+            [
+              0,
+              0.635,
+              0.682
+            ]
+          ],
+          [
+            0.638,
+            [
+              0,
+              0.639,
+              0.68
+            ]
+          ],
+          [
+            0.64,
+            [
+              0,
+              0.639,
+              0.68
+            ]
+          ],
+          [
+            0.642,
+            [
+              0,
+              0.643,
+              0.678
+            ]
+          ],
+          [
+            0.644,
+            [
+              0,
+              0.643,
+              0.678
+            ]
+          ],
+          [
+            0.646,
+            [
+              0,
+              0.647,
+              0.676
+            ]
+          ],
+          [
+            0.648,
+            [
+              0,
+              0.647,
+              0.676
+            ]
+          ],
+          [
+            0.65,
+            [
+              0,
+              0.651,
+              0.675
+            ]
+          ],
+          [
+            0.652,
+            [
+              0,
+              0.651,
+              0.675
+            ]
+          ],
+          [
+            0.654,
+            [
+              0,
+              0.655,
+              0.673
+            ]
+          ],
+          [
+            0.656,
+            [
+              0,
+              0.655,
+              0.673
+            ]
+          ],
+          [
+            0.658,
+            [
+              0,
+              0.659,
+              0.671
+            ]
+          ],
+          [
+            0.659,
+            [
+              0,
+              0.659,
+              0.671
+            ]
+          ],
+          [
+            0.661,
+            [
+              0,
+              0.663,
+              0.669
+            ]
+          ],
+          [
+            0.663,
+            [
+              0,
+              0.663,
+              0.669
+            ]
+          ],
+          [
+            0.665,
+            [
+              0,
+              0.667,
+              0.667
+            ]
+          ],
+          [
+            0.667,
+            [
+              0,
+              0.667,
+              0.667
+            ]
+          ],
+          [
+            0.669,
+            [
+              0,
+              0.671,
+              0.665
+            ]
+          ],
+          [
+            0.671,
+            [
+              0,
+              0.671,
+              0.665
+            ]
+          ],
+          [
+            0.673,
+            [
+              0,
+              0.675,
+              0.663
+            ]
+          ],
+          [
+            0.675,
+            [
+              0,
+              0.675,
+              0.663
+            ]
+          ],
+          [
+            0.677,
+            [
+              0,
+              0.678,
+              0.661
+            ]
+          ],
+          [
+            0.679,
+            [
+              0,
+              0.678,
+              0.661
+            ]
+          ],
+          [
+            0.681,
+            [
+              0,
+              0.682,
+              0.659
+            ]
+          ],
+          [
+            0.683,
+            [
+              0,
+              0.682,
+              0.659
+            ]
+          ],
+          [
+            0.685,
+            [
+              0,
+              0.686,
+              0.657
+            ]
+          ],
+          [
+            0.687,
+            [
+              0,
+              0.686,
+              0.657
+            ]
+          ],
+          [
+            0.689,
+            [
+              0,
+              0.69,
+              0.655
+            ]
+          ],
+          [
+            0.691,
+            [
+              0,
+              0.69,
+              0.655
+            ]
+          ],
+          [
+            0.693,
+            [
+              0,
+              0.694,
+              0.653
+            ]
+          ],
+          [
+            0.695,
+            [
+              0,
+              0.694,
+              0.653
+            ]
+          ],
+          [
+            0.697,
+            [
+              0,
+              0.698,
+              0.651
+            ]
+          ],
+          [
+            0.699,
+            [
+              0,
+              0.698,
+              0.651
+            ]
+          ],
+          [
+            0.701,
+            [
+              0,
+              0.702,
+              0.649
+            ]
+          ],
+          [
+            0.703,
+            [
+              0,
+              0.702,
+              0.649
+            ]
+          ],
+          [
+            0.705,
+            [
+              0,
+              0.706,
+              0.647
+            ]
+          ],
+          [
+            0.706,
+            [
+              0,
+              0.706,
+              0.647
+            ]
+          ],
+          [
+            0.708,
+            [
+              0,
+              0.71,
+              0.645
+            ]
+          ],
+          [
+            0.71,
+            [
+              0,
+              0.71,
+              0.645
+            ]
+          ],
+          [
+            0.712,
+            [
+              0,
+              0.714,
+              0.643
+            ]
+          ],
+          [
+            0.714,
+            [
+              0,
+              0.714,
+              0.643
+            ]
+          ],
+          [
+            0.716,
+            [
+              0,
+              0.718,
+              0.641
+            ]
+          ],
+          [
+            0.718,
+            [
+              0,
+              0.718,
+              0.641
+            ]
+          ],
+          [
+            0.72,
+            [
+              0,
+              0.722,
+              0.639
+            ]
+          ],
+          [
+            0.722,
+            [
+              0,
+              0.722,
+              0.639
+            ]
+          ],
+          [
+            0.724,
+            [
+              0,
+              0.725,
+              0.637
+            ]
+          ],
+          [
+            0.726,
+            [
+              0,
+              0.725,
+              0.637
+            ]
+          ],
+          [
+            0.728,
+            [
+              0,
+              0.729,
+              0.635
+            ]
+          ],
+          [
+            0.73,
+            [
+              0,
+              0.729,
+              0.635
+            ]
+          ],
+          [
+            0.732,
+            [
+              0,
+              0.733,
+              0.633
+            ]
+          ],
+          [
+            0.734,
+            [
+              0,
+              0.733,
+              0.633
+            ]
+          ],
+          [
+            0.736,
+            [
+              0,
+              0.737,
+              0.631
+            ]
+          ],
+          [
+            0.738,
+            [
+              0,
+              0.737,
+              0.631
+            ]
+          ],
+          [
+            0.74,
+            [
+              0,
+              0.741,
+              0.629
+            ]
+          ],
+          [
+            0.742,
+            [
+              0,
+              0.741,
+              0.629
+            ]
+          ],
+          [
+            0.744,
+            [
+              0,
+              0.745,
+              0.627
+            ]
+          ],
+          [
+            0.746,
+            [
+              0,
+              0.745,
+              0.627
+            ]
+          ],
+          [
+            0.748,
+            [
+              0,
+              0.749,
+              0.625
+            ]
+          ],
+          [
+            0.75,
+            [
+              0,
+              0.749,
+              0.625
+            ]
+          ],
+          [
+            0.751,
+            [
+              0,
+              0.753,
+              0.624
+            ]
+          ],
+          [
+            0.753,
+            [
+              0,
+              0.753,
+              0.624
+            ]
+          ],
+          [
+            0.755,
+            [
+              0,
+              0.757,
+              0.622
+            ]
+          ],
+          [
+            0.757,
+            [
+              0,
+              0.757,
+              0.622
+            ]
+          ],
+          [
+            0.759,
+            [
+              0,
+              0.761,
+              0.62
+            ]
+          ],
+          [
+            0.761,
+            [
+              0,
+              0.761,
+              0.62
+            ]
+          ],
+          [
+            0.763,
+            [
+              0,
+              0.765,
+              0.618
+            ]
+          ],
+          [
+            0.765,
+            [
+              0,
+              0.765,
+              0.618
+            ]
+          ],
+          [
+            0.767,
+            [
+              0,
+              0.769,
+              0.616
+            ]
+          ],
+          [
+            0.769,
+            [
+              0,
+              0.769,
+              0.616
+            ]
+          ],
+          [
+            0.771,
+            [
+              0,
+              0.773,
+              0.614
+            ]
+          ],
+          [
+            0.773,
+            [
+              0,
+              0.773,
+              0.614
+            ]
+          ],
+          [
+            0.775,
+            [
+              0,
+              0.776,
+              0.612
+            ]
+          ],
+          [
+            0.777,
+            [
+              0,
+              0.776,
+              0.612
+            ]
+          ],
+          [
+            0.779,
+            [
+              0,
+              0.78,
+              0.61
+            ]
+          ],
+          [
+            0.781,
+            [
+              0,
+              0.78,
+              0.61
+            ]
+          ],
+          [
+            0.783,
+            [
+              0,
+              0.784,
+              0.608
+            ]
+          ],
+          [
+            0.785,
+            [
+              0,
+              0.784,
+              0.608
+            ]
+          ],
+          [
+            0.787,
+            [
+              0,
+              0.788,
+              0.606
+            ]
+          ],
+          [
+            0.789,
+            [
+              0,
+              0.788,
+              0.606
+            ]
+          ],
+          [
+            0.791,
+            [
+              0,
+              0.792,
+              0.604
+            ]
+          ],
+          [
+            0.793,
+            [
+              0,
+              0.792,
+              0.604
+            ]
+          ],
+          [
+            0.795,
+            [
+              0,
+              0.796,
+              0.602
+            ]
+          ],
+          [
+            0.796,
+            [
+              0,
+              0.796,
+              0.602
+            ]
+          ],
+          [
+            0.798,
+            [
+              0,
+              0.8,
+              0.6
+            ]
+          ],
+          [
+            0.8,
+            [
+              0,
+              0.8,
+              0.6
+            ]
+          ],
+          [
+            0.802,
+            [
+              0,
+              0.804,
+              0.598
+            ]
+          ],
+          [
+            0.804,
+            [
+              0,
+              0.804,
+              0.598
+            ]
+          ],
+          [
+            0.806,
+            [
+              0,
+              0.808,
+              0.596
+            ]
+          ],
+          [
+            0.808,
+            [
+              0,
+              0.808,
+              0.596
+            ]
+          ],
+          [
+            0.81,
+            [
+              0,
+              0.812,
+              0.594
+            ]
+          ],
+          [
+            0.812,
+            [
+              0,
+              0.812,
+              0.594
+            ]
+          ],
+          [
+            0.814,
+            [
+              0,
+              0.816,
+              0.592
+            ]
+          ],
+          [
+            0.816,
+            [
+              0,
+              0.816,
+              0.592
+            ]
+          ],
+          [
+            0.818,
+            [
+              0,
+              0.82,
+              0.59
+            ]
+          ],
+          [
+            0.82,
+            [
+              0,
+              0.82,
+              0.59
+            ]
+          ],
+          [
+            0.822,
+            [
+              0,
+              0.824,
+              0.588
+            ]
+          ],
+          [
+            0.824,
+            [
+              0,
+              0.824,
+              0.588
+            ]
+          ],
+          [
+            0.826,
+            [
+              0,
+              0.827,
+              0.586
+            ]
+          ],
+          [
+            0.828,
+            [
+              0,
+              0.827,
+              0.586
+            ]
+          ],
+          [
+            0.83,
+            [
+              0,
+              0.831,
+              0.584
+            ]
+          ],
+          [
+            0.832,
+            [
+              0,
+              0.831,
+              0.584
+            ]
+          ],
+          [
+            0.834,
+            [
+              0,
+              0.835,
+              0.582
+            ]
+          ],
+          [
+            0.836,
+            [
+              0,
+              0.835,
+              0.582
+            ]
+          ],
+          [
+            0.838,
+            [
+              0,
+              0.839,
+              0.58
+            ]
+          ],
+          [
+            0.84,
+            [
+              0,
+              0.839,
+              0.58
+            ]
+          ],
+          [
+            0.841,
+            [
+              0,
+              0.843,
+              0.578
+            ]
+          ],
+          [
+            0.843,
+            [
+              0,
+              0.843,
+              0.578
+            ]
+          ],
+          [
+            0.845,
+            [
+              0,
+              0.847,
+              0.576
+            ]
+          ],
+          [
+            0.847,
+            [
+              0,
+              0.847,
+              0.576
+            ]
+          ],
+          [
+            0.849,
+            [
+              0,
+              0.851,
+              0.575
+            ]
+          ],
+          [
+            0.851,
+            [
+              0,
+              0.851,
+              0.575
+            ]
+          ],
+          [
+            0.853,
+            [
+              0,
+              0.855,
+              0.573
+            ]
+          ],
+          [
+            0.855,
+            [
+              0,
+              0.855,
+              0.573
+            ]
+          ],
+          [
+            0.857,
+            [
+              0,
+              0.859,
+              0.571
+            ]
+          ],
+          [
+            0.859,
+            [
+              0,
+              0.859,
+              0.571
+            ]
+          ],
+          [
+            0.861,
+            [
+              0,
+              0.863,
+              0.569
+            ]
+          ],
+          [
+            0.863,
+            [
+              0,
+              0.863,
+              0.569
+            ]
+          ],
+          [
+            0.865,
+            [
+              0,
+              0.867,
+              0.567
+            ]
+          ],
+          [
+            0.867,
+            [
+              0,
+              0.867,
+              0.567
+            ]
+          ],
+          [
+            0.869,
+            [
+              0,
+              0.871,
+              0.565
+            ]
+          ],
+          [
+            0.871,
+            [
+              0,
+              0.871,
+              0.565
+            ]
+          ],
+          [
+            0.873,
+            [
+              0,
+              0.875,
+              0.563
+            ]
+          ],
+          [
+            0.875,
+            [
+              0,
+              0.875,
+              0.563
+            ]
+          ],
+          [
+            0.877,
+            [
+              0,
+              0.878,
+              0.561
+            ]
+          ],
+          [
+            0.879,
+            [
+              0,
+              0.878,
+              0.561
+            ]
+          ],
+          [
+            0.881,
+            [
+              0,
+              0.882,
+              0.559
+            ]
+          ],
+          [
+            0.883,
+            [
+              0,
+              0.882,
+              0.559
+            ]
+          ],
+          [
+            0.885,
+            [
+              0,
+              0.886,
+              0.557
+            ]
+          ],
+          [
+            0.886,
+            [
+              0,
+              0.886,
+              0.557
+            ]
+          ],
+          [
+            0.888,
+            [
+              0,
+              0.89,
+              0.555
+            ]
+          ],
+          [
+            0.89,
+            [
+              0,
+              0.89,
+              0.555
+            ]
+          ],
+          [
+            0.892,
+            [
+              0,
+              0.894,
+              0.553
+            ]
+          ],
+          [
+            0.894,
+            [
+              0,
+              0.894,
+              0.553
+            ]
+          ],
+          [
+            0.896,
+            [
+              0,
+              0.898,
+              0.551
+            ]
+          ],
+          [
+            0.898,
+            [
+              0,
+              0.898,
+              0.551
+            ]
+          ],
+          [
+            0.9,
+            [
+              0,
+              0.902,
+              0.549
+            ]
+          ],
+          [
+            0.902,
+            [
+              0,
+              0.902,
+              0.549
+            ]
+          ],
+          [
+            0.904,
+            [
+              0,
+              0.906,
+              0.547
+            ]
+          ],
+          [
+            0.906,
+            [
+              0,
+              0.906,
+              0.547
+            ]
+          ],
+          [
+            0.908,
+            [
+              0,
+              0.91,
+              0.545
+            ]
+          ],
+          [
+            0.91,
+            [
+              0,
+              0.91,
+              0.545
+            ]
+          ],
+          [
+            0.912,
+            [
+              0,
+              0.914,
+              0.543
+            ]
+          ],
+          [
+            0.914,
+            [
+              0,
+              0.914,
+              0.543
+            ]
+          ],
+          [
+            0.916,
+            [
+              0,
+              0.918,
+              0.541
+            ]
+          ],
+          [
+            0.918,
+            [
+              0,
+              0.918,
+              0.541
+            ]
+          ],
+          [
+            0.92,
+            [
+              0,
+              0.922,
+              0.539
+            ]
+          ],
+          [
+            0.922,
+            [
+              0,
+              0.922,
+              0.539
+            ]
+          ],
+          [
+            0.924,
+            [
+              0,
+              0.925,
+              0.537
+            ]
+          ],
+          [
+            0.926,
+            [
+              0,
+              0.925,
+              0.537
+            ]
+          ],
+          [
+            0.928,
+            [
+              0,
+              0.929,
+              0.535
+            ]
+          ],
+          [
+            0.93,
+            [
+              0,
+              0.929,
+              0.535
+            ]
+          ],
+          [
+            0.932,
+            [
+              0,
+              0.933,
+              0.533
+            ]
+          ],
+          [
+            0.933,
+            [
+              0,
+              0.933,
+              0.533
+            ]
+          ],
+          [
+            0.935,
+            [
+              0,
+              0.937,
+              0.531
+            ]
+          ],
+          [
+            0.937,
+            [
+              0,
+              0.937,
+              0.531
+            ]
+          ],
+          [
+            0.939,
+            [
+              0,
+              0.941,
+              0.529
+            ]
+          ],
+          [
+            0.941,
+            [
+              0,
+              0.941,
+              0.529
+            ]
+          ],
+          [
+            0.943,
+            [
+              0,
+              0.945,
+              0.527
+            ]
+          ],
+          [
+            0.945,
+            [
+              0,
+              0.945,
+              0.527
+            ]
+          ],
+          [
+            0.947,
+            [
+              0,
+              0.949,
+              0.525
+            ]
+          ],
+          [
+            0.949,
+            [
+              0,
+              0.949,
+              0.525
+            ]
+          ],
+          [
+            0.951,
+            [
+              0,
+              0.953,
+              0.524
+            ]
+          ],
+          [
+            0.953,
+            [
+              0,
+              0.953,
+              0.524
+            ]
+          ],
+          [
+            0.955,
+            [
+              0,
+              0.957,
+              0.522
+            ]
+          ],
+          [
+            0.957,
+            [
+              0,
+              0.957,
+              0.522
+            ]
+          ],
+          [
+            0.959,
+            [
+              0,
+              0.961,
+              0.52
+            ]
+          ],
+          [
+            0.961,
+            [
+              0,
+              0.961,
+              0.52
+            ]
+          ],
+          [
+            0.963,
+            [
+              0,
+              0.965,
+              0.518
+            ]
+          ],
+          [
+            0.965,
+            [
+              0,
+              0.965,
+              0.518
+            ]
+          ],
+          [
+            0.967,
+            [
+              0,
+              0.969,
+              0.516
+            ]
+          ],
+          [
+            0.969,
+            [
+              0,
+              0.969,
+              0.516
+            ]
+          ],
+          [
+            0.971,
+            [
+              0,
+              0.973,
+              0.514
+            ]
+          ],
+          [
+            0.973,
+            [
+              0,
+              0.973,
+              0.514
+            ]
+          ],
+          [
+            0.975,
+            [
+              0,
+              0.976,
+              0.512
+            ]
+          ],
+          [
+            0.977,
+            [
+              0,
+              0.976,
+              0.512
+            ]
+          ],
+          [
+            0.978,
+            [
+              0,
+              0.98,
+              0.51
+            ]
+          ],
+          [
+            0.98,
+            [
+              0,
+              0.98,
+              0.51
+            ]
+          ],
+          [
+            0.982,
+            [
+              0,
+              0.984,
+              0.508
+            ]
+          ],
+          [
+            0.984,
+            [
+              0,
+              0.984,
+              0.508
+            ]
+          ],
+          [
+            0.986,
+            [
+              0,
+              0.988,
+              0.506
+            ]
+          ],
+          [
+            0.988,
+            [
+              0,
+              0.988,
+              0.506
+            ]
+          ],
+          [
+            0.99,
+            [
+              0,
+              0.992,
+              0.504
+            ]
+          ],
+          [
+            0.992,
+            [
+              0,
+              0.992,
+              0.504
+            ]
+          ],
+          [
+            0.994,
+            [
+              0,
+              0.996,
+              0.502
+            ]
+          ],
+          [
+            0.996,
+            [
+              0,
+              0.996,
+              0.502
+            ]
+          ],
+          [
+            0.998,
+            [
+              0,
+              1,
+              0.5
+            ]
+          ],
+          [
+            1,
+            [
+              0,
+              1,
+              0.5
+            ]
+          ]
+        ],
+        [
+          [
+            0,
+            [
+              0,
+              0,
+              0.5
+            ]
+          ],
+          [
+            0.002,
+            [
+              0,
+              0,
+              0.5
+            ]
+          ],
+          [
+            0.004,
+            [
+              0,
+              0,
+              0.518
+            ]
+          ],
+          [
+            0.006,
+            [
+              0,
+              0,
+              0.518
+            ]
+          ],
+          [
+            0.008,
+            [
+              0,
+              0,
+              0.536
+            ]
+          ],
+          [
+            0.01,
+            [
+              0,
+              0,
+              0.536
+            ]
+          ],
+          [
+            0.012,
+            [
+              0,
+              0,
+              0.553
+            ]
+          ],
+          [
+            0.014,
+            [
+              0,
+              0,
+              0.553
+            ]
+          ],
+          [
+            0.016,
+            [
+              0,
+              0,
+              0.571
+            ]
+          ],
+          [
+            0.018,
+            [
+              0,
+              0,
+              0.571
+            ]
+          ],
+          [
+            0.02,
+            [
+              0,
+              0,
+              0.589
+            ]
+          ],
+          [
+            0.022,
+            [
+              0,
+              0,
+              0.589
+            ]
+          ],
+          [
+            0.023,
+            [
+              0,
+              0,
+              0.607
+            ]
+          ],
+          [
+            0.025,
+            [
+              0,
+              0,
+              0.607
+            ]
+          ],
+          [
+            0.027,
+            [
+              0,
+              0,
+              0.625
+            ]
+          ],
+          [
+            0.029,
+            [
+              0,
+              0,
+              0.625
+            ]
+          ],
+          [
+            0.031,
+            [
+              0,
+              0,
+              0.643
+            ]
+          ],
+          [
+            0.033,
+            [
+              0,
+              0,
+              0.643
+            ]
+          ],
+          [
+            0.035,
+            [
+              0,
+              0,
+              0.66
+            ]
+          ],
+          [
+            0.037,
+            [
+              0,
+              0,
+              0.66
+            ]
+          ],
+          [
+            0.039,
+            [
+              0,
+              0,
+              0.678
+            ]
+          ],
+          [
+            0.041,
+            [
+              0,
+              0,
+              0.678
+            ]
+          ],
+          [
+            0.043,
+            [
+              0,
+              0,
+              0.696
+            ]
+          ],
+          [
+            0.045,
+            [
+              0,
+              0,
+              0.696
+            ]
+          ],
+          [
+            0.047,
+            [
+              0,
+              0,
+              0.714
+            ]
+          ],
+          [
+            0.049,
+            [
+              0,
+              0,
+              0.714
+            ]
+          ],
+          [
+            0.051,
+            [
+              0,
+              0,
+              0.732
+            ]
+          ],
+          [
+            0.053,
+            [
+              0,
+              0,
+              0.732
+            ]
+          ],
+          [
+            0.055,
+            [
+              0,
+              0,
+              0.75
+            ]
+          ],
+          [
+            0.057,
+            [
+              0,
+              0,
+              0.75
+            ]
+          ],
+          [
+            0.059,
+            [
+              0,
+              0,
+              0.767
+            ]
+          ],
+          [
+            0.061,
+            [
+              0,
+              0,
+              0.767
+            ]
+          ],
+          [
+            0.063,
+            [
+              0,
+              0,
+              0.785
+            ]
+          ],
+          [
+            0.065,
+            [
+              0,
+              0,
+              0.785
+            ]
+          ],
+          [
+            0.067,
+            [
+              0,
+              0,
+              0.803
+            ]
+          ],
+          [
+            0.068,
+            [
+              0,
+              0,
+              0.803
+            ]
+          ],
+          [
+            0.07,
+            [
+              0,
+              0,
+              0.821
+            ]
+          ],
+          [
+            0.072,
+            [
+              0,
+              0,
+              0.821
+            ]
+          ],
+          [
+            0.074,
+            [
+              0,
+              0,
+              0.839
+            ]
+          ],
+          [
+            0.076,
+            [
+              0,
+              0,
+              0.839
+            ]
+          ],
+          [
+            0.078,
+            [
+              0,
+              0,
+              0.857
+            ]
+          ],
+          [
+            0.08,
+            [
+              0,
+              0,
+              0.857
+            ]
+          ],
+          [
+            0.082,
+            [
+              0,
+              0,
+              0.874
+            ]
+          ],
+          [
+            0.084,
+            [
+              0,
+              0,
+              0.874
+            ]
+          ],
+          [
+            0.086,
+            [
+              0,
+              0,
+              0.892
+            ]
+          ],
+          [
+            0.088,
+            [
+              0,
+              0,
+              0.892
+            ]
+          ],
+          [
+            0.09,
+            [
+              0,
+              0,
+              0.91
+            ]
+          ],
+          [
+            0.092,
+            [
+              0,
+              0,
+              0.91
+            ]
+          ],
+          [
+            0.094,
+            [
+              0,
+              0,
+              0.928
+            ]
+          ],
+          [
+            0.096,
+            [
+              0,
+              0,
+              0.928
+            ]
+          ],
+          [
+            0.098,
+            [
+              0,
+              0,
+              0.946
+            ]
+          ],
+          [
+            0.1,
+            [
+              0,
+              0,
+              0.946
+            ]
+          ],
+          [
+            0.102,
+            [
+              0,
+              0,
+              0.963
+            ]
+          ],
+          [
+            0.104,
+            [
+              0,
+              0,
+              0.963
+            ]
+          ],
+          [
+            0.106,
+            [
+              0,
+              0,
+              0.981
+            ]
+          ],
+          [
+            0.108,
+            [
+              0,
+              0,
+              0.981
+            ]
+          ],
+          [
+            0.11,
+            [
+              0,
+              0,
+              0.999
+            ]
+          ],
+          [
+            0.112,
+            [
+              0,
+              0,
+              0.999
+            ]
+          ],
+          [
+            0.114,
+            [
+              0,
+              0,
+              1
+            ]
+          ],
+          [
+            0.115,
+            [
+              0,
+              0,
+              1
+            ]
+          ],
+          [
+            0.117,
+            [
+              0,
+              0,
+              1
+            ]
+          ],
+          [
+            0.119,
+            [
+              0,
+              0,
+              1
+            ]
+          ],
+          [
+            0.121,
+            [
+              0,
+              0,
+              1
+            ]
+          ],
+          [
+            0.123,
+            [
+              0,
+              0,
+              1
+            ]
+          ],
+          [
+            0.125,
+            [
+              0,
+              0.002,
+              1
+            ]
+          ],
+          [
+            0.127,
+            [
+              0,
+              0.002,
+              1
+            ]
+          ],
+          [
+            0.129,
+            [
+              0,
+              0.018,
+              1
+            ]
+          ],
+          [
+            0.131,
+            [
+              0,
+              0.018,
+              1
+            ]
+          ],
+          [
+            0.133,
+            [
+              0,
+              0.033,
+              1
+            ]
+          ],
+          [
+            0.135,
+            [
+              0,
+              0.033,
+              1
+            ]
+          ],
+          [
+            0.137,
+            [
+              0,
+              0.049,
+              1
+            ]
+          ],
+          [
+            0.139,
+            [
+              0,
+              0.049,
+              1
+            ]
+          ],
+          [
+            0.141,
+            [
+              0,
+              0.065,
+              1
+            ]
+          ],
+          [
+            0.143,
+            [
+              0,
+              0.065,
+              1
+            ]
+          ],
+          [
+            0.145,
+            [
+              0,
+              0.08,
+              1
+            ]
+          ],
+          [
+            0.147,
+            [
+              0,
+              0.08,
+              1
+            ]
+          ],
+          [
+            0.149,
+            [
+              0,
+              0.096,
+              1
+            ]
+          ],
+          [
+            0.151,
+            [
+              0,
+              0.096,
+              1
+            ]
+          ],
+          [
+            0.153,
+            [
+              0,
+              0.112,
+              1
+            ]
+          ],
+          [
+            0.155,
+            [
+              0,
+              0.112,
+              1
+            ]
+          ],
+          [
+            0.157,
+            [
+              0,
+              0.127,
+              1
+            ]
+          ],
+          [
+            0.159,
+            [
+              0,
+              0.127,
+              1
+            ]
+          ],
+          [
+            0.16,
+            [
+              0,
+              0.143,
+              1
+            ]
+          ],
+          [
+            0.162,
+            [
+              0,
+              0.143,
+              1
+            ]
+          ],
+          [
+            0.164,
+            [
+              0,
+              0.159,
+              1
+            ]
+          ],
+          [
+            0.166,
+            [
+              0,
+              0.159,
+              1
+            ]
+          ],
+          [
+            0.168,
+            [
+              0,
+              0.175,
+              1
+            ]
+          ],
+          [
+            0.17,
+            [
+              0,
+              0.175,
+              1
+            ]
+          ],
+          [
+            0.172,
+            [
+              0,
+              0.19,
+              1
+            ]
+          ],
+          [
+            0.174,
+            [
+              0,
+              0.19,
+              1
+            ]
+          ],
+          [
+            0.176,
+            [
+              0,
+              0.206,
+              1
+            ]
+          ],
+          [
+            0.178,
+            [
+              0,
+              0.206,
+              1
+            ]
+          ],
+          [
+            0.18,
+            [
+              0,
+              0.222,
+              1
+            ]
+          ],
+          [
+            0.182,
+            [
+              0,
+              0.222,
+              1
+            ]
+          ],
+          [
+            0.184,
+            [
+              0,
+              0.237,
+              1
+            ]
+          ],
+          [
+            0.186,
+            [
+              0,
+              0.237,
+              1
+            ]
+          ],
+          [
+            0.188,
+            [
+              0,
+              0.253,
+              1
+            ]
+          ],
+          [
+            0.19,
+            [
+              0,
+              0.253,
+              1
+            ]
+          ],
+          [
+            0.192,
+            [
+              0,
+              0.269,
+              1
+            ]
+          ],
+          [
+            0.194,
+            [
+              0,
+              0.269,
+              1
+            ]
+          ],
+          [
+            0.196,
+            [
+              0,
+              0.284,
+              1
+            ]
+          ],
+          [
+            0.198,
+            [
+              0,
+              0.284,
+              1
+            ]
+          ],
+          [
+            0.2,
+            [
+              0,
+              0.3,
+              1
+            ]
+          ],
+          [
+            0.202,
+            [
+              0,
+              0.3,
+              1
+            ]
+          ],
+          [
+            0.204,
+            [
+              0,
+              0.316,
+              1
+            ]
+          ],
+          [
+            0.205,
+            [
+              0,
+              0.316,
+              1
+            ]
+          ],
+          [
+            0.207,
+            [
+              0,
+              0.331,
+              1
+            ]
+          ],
+          [
+            0.209,
+            [
+              0,
+              0.331,
+              1
+            ]
+          ],
+          [
+            0.211,
+            [
+              0,
+              0.347,
+              1
+            ]
+          ],
+          [
+            0.213,
+            [
+              0,
+              0.347,
+              1
+            ]
+          ],
+          [
+            0.215,
+            [
+              0,
+              0.363,
+              1
+            ]
+          ],
+          [
+            0.217,
+            [
+              0,
+              0.363,
+              1
+            ]
+          ],
+          [
+            0.219,
+            [
+              0,
+              0.378,
+              1
+            ]
+          ],
+          [
+            0.221,
+            [
+              0,
+              0.378,
+              1
+            ]
+          ],
+          [
+            0.223,
+            [
+              0,
+              0.394,
+              1
+            ]
+          ],
+          [
+            0.225,
+            [
+              0,
+              0.394,
+              1
+            ]
+          ],
+          [
+            0.227,
+            [
+              0,
+              0.41,
+              1
+            ]
+          ],
+          [
+            0.229,
+            [
+              0,
+              0.41,
+              1
+            ]
+          ],
+          [
+            0.231,
+            [
+              0,
+              0.425,
+              1
+            ]
+          ],
+          [
+            0.233,
+            [
+              0,
+              0.425,
+              1
+            ]
+          ],
+          [
+            0.235,
+            [
+              0,
+              0.441,
+              1
+            ]
+          ],
+          [
+            0.237,
+            [
+              0,
+              0.441,
+              1
+            ]
+          ],
+          [
+            0.239,
+            [
+              0,
+              0.457,
+              1
+            ]
+          ],
+          [
+            0.241,
+            [
+              0,
+              0.457,
+              1
+            ]
+          ],
+          [
+            0.243,
+            [
+              0,
+              0.473,
+              1
+            ]
+          ],
+          [
+            0.245,
+            [
+              0,
+              0.473,
+              1
+            ]
+          ],
+          [
+            0.247,
+            [
+              0,
+              0.488,
+              1
+            ]
+          ],
+          [
+            0.249,
+            [
+              0,
+              0.488,
+              1
+            ]
+          ],
+          [
+            0.25,
+            [
+              0,
+              0.504,
+              1
+            ]
+          ],
+          [
+            0.252,
+            [
+              0,
+              0.504,
+              1
+            ]
+          ],
+          [
+            0.254,
+            [
+              0,
+              0.52,
+              1
+            ]
+          ],
+          [
+            0.256,
+            [
+              0,
+              0.52,
+              1
+            ]
+          ],
+          [
+            0.258,
+            [
+              0,
+              0.535,
+              1
+            ]
+          ],
+          [
+            0.26,
+            [
+              0,
+              0.535,
+              1
+            ]
+          ],
+          [
+            0.262,
+            [
+              0,
+              0.551,
+              1
+            ]
+          ],
+          [
+            0.264,
+            [
+              0,
+              0.551,
+              1
+            ]
+          ],
+          [
+            0.266,
+            [
+              0,
+              0.567,
+              1
+            ]
+          ],
+          [
+            0.268,
+            [
+              0,
+              0.567,
+              1
+            ]
+          ],
+          [
+            0.27,
+            [
+              0,
+              0.582,
+              1
+            ]
+          ],
+          [
+            0.272,
+            [
+              0,
+              0.582,
+              1
+            ]
+          ],
+          [
+            0.274,
+            [
+              0,
+              0.598,
+              1
+            ]
+          ],
+          [
+            0.276,
+            [
+              0,
+              0.598,
+              1
+            ]
+          ],
+          [
+            0.278,
+            [
+              0,
+              0.614,
+              1
+            ]
+          ],
+          [
+            0.28,
+            [
+              0,
+              0.614,
+              1
+            ]
+          ],
+          [
+            0.282,
+            [
+              0,
+              0.629,
+              1
+            ]
+          ],
+          [
+            0.284,
+            [
+              0,
+              0.629,
+              1
+            ]
+          ],
+          [
+            0.286,
+            [
+              0,
+              0.645,
+              1
+            ]
+          ],
+          [
+            0.288,
+            [
+              0,
+              0.645,
+              1
+            ]
+          ],
+          [
+            0.29,
+            [
+              0,
+              0.661,
+              1
+            ]
+          ],
+          [
+            0.292,
+            [
+              0,
+              0.661,
+              1
+            ]
+          ],
+          [
+            0.294,
+            [
+              0,
+              0.676,
+              1
+            ]
+          ],
+          [
+            0.295,
+            [
+              0,
+              0.676,
+              1
+            ]
+          ],
+          [
+            0.297,
+            [
+              0,
+              0.692,
+              1
+            ]
+          ],
+          [
+            0.299,
+            [
+              0,
+              0.692,
+              1
+            ]
+          ],
+          [
+            0.301,
+            [
+              0,
+              0.708,
+              1
+            ]
+          ],
+          [
+            0.303,
+            [
+              0,
+              0.708,
+              1
+            ]
+          ],
+          [
+            0.305,
+            [
+              0,
+              0.724,
+              1
+            ]
+          ],
+          [
+            0.307,
+            [
+              0,
+              0.724,
+              1
+            ]
+          ],
+          [
+            0.309,
+            [
+              0,
+              0.739,
+              1
+            ]
+          ],
+          [
+            0.311,
+            [
+              0,
+              0.739,
+              1
+            ]
+          ],
+          [
+            0.313,
+            [
+              0,
+              0.755,
+              1
+            ]
+          ],
+          [
+            0.315,
+            [
+              0,
+              0.755,
+              1
+            ]
+          ],
+          [
+            0.317,
+            [
+              0,
+              0.771,
+              1
+            ]
+          ],
+          [
+            0.319,
+            [
+              0,
+              0.771,
+              1
+            ]
+          ],
+          [
+            0.321,
+            [
+              0,
+              0.786,
+              1
+            ]
+          ],
+          [
+            0.323,
+            [
+              0,
+              0.786,
+              1
+            ]
+          ],
+          [
+            0.325,
+            [
+              0,
+              0.802,
+              1
+            ]
+          ],
+          [
+            0.327,
+            [
+              0,
+              0.802,
+              1
+            ]
+          ],
+          [
+            0.329,
+            [
+              0,
+              0.818,
+              1
+            ]
+          ],
+          [
+            0.331,
+            [
+              0,
+              0.818,
+              1
+            ]
+          ],
+          [
+            0.333,
+            [
+              0,
+              0.833,
+              1
+            ]
+          ],
+          [
+            0.335,
+            [
+              0,
+              0.833,
+              1
+            ]
+          ],
+          [
+            0.337,
+            [
+              0,
+              0.849,
+              1
+            ]
+          ],
+          [
+            0.339,
+            [
+              0,
+              0.849,
+              1
+            ]
+          ],
+          [
+            0.341,
+            [
+              0,
+              0.865,
+              0.996
+            ]
+          ],
+          [
+            0.342,
+            [
+              0,
+              0.865,
+              0.996
+            ]
+          ],
+          [
+            0.344,
+            [
+              0,
+              0.88,
+              0.984
+            ]
+          ],
+          [
+            0.346,
+            [
+              0,
+              0.88,
+              0.984
+            ]
+          ],
+          [
+            0.348,
+            [
+              0,
+              0.896,
+              0.971
+            ]
+          ],
+          [
+            0.35,
+            [
+              0,
+              0.896,
+              0.971
+            ]
+          ],
+          [
+            0.352,
+            [
+              0.009,
+              0.912,
+              0.958
+            ]
+          ],
+          [
+            0.354,
+            [
+              0.009,
+              0.912,
+              0.958
+            ]
+          ],
+          [
+            0.356,
+            [
+              0.022,
+              0.927,
+              0.946
+            ]
+          ],
+          [
+            0.358,
+            [
+              0.022,
+              0.927,
+              0.946
+            ]
+          ],
+          [
+            0.36,
+            [
+              0.035,
+              0.943,
+              0.933
+            ]
+          ],
+          [
+            0.362,
+            [
+              0.035,
+              0.943,
+              0.933
+            ]
+          ],
+          [
+            0.364,
+            [
+              0.047,
+              0.959,
+              0.92
+            ]
+          ],
+          [
+            0.366,
+            [
+              0.047,
+              0.959,
+              0.92
+            ]
+          ],
+          [
+            0.368,
+            [
+              0.06,
+              0.975,
+              0.908
+            ]
+          ],
+          [
+            0.37,
+            [
+              0.06,
+              0.975,
+              0.908
+            ]
+          ],
+          [
+            0.372,
+            [
+              0.073,
+              0.99,
+              0.895
+            ]
+          ],
+          [
+            0.374,
+            [
+              0.073,
+              0.99,
+              0.895
+            ]
+          ],
+          [
+            0.376,
+            [
+              0.085,
+              1,
+              0.882
+            ]
+          ],
+          [
+            0.378,
+            [
+              0.085,
+              1,
+              0.882
+            ]
+          ],
+          [
+            0.38,
+            [
+              0.098,
+              1,
+              0.87
+            ]
+          ],
+          [
+            0.382,
+            [
+              0.098,
+              1,
+              0.87
+            ]
+          ],
+          [
+            0.384,
+            [
+              0.111,
+              1,
+              0.857
+            ]
+          ],
+          [
+            0.386,
+            [
+              0.111,
+              1,
+              0.857
+            ]
+          ],
+          [
+            0.387,
+            [
+              0.123,
+              1,
+              0.844
+            ]
+          ],
+          [
+            0.389,
+            [
+              0.123,
+              1,
+              0.844
+            ]
+          ],
+          [
+            0.391,
+            [
+              0.136,
+              1,
+              0.832
+            ]
+          ],
+          [
+            0.393,
+            [
+              0.136,
+              1,
+              0.832
+            ]
+          ],
+          [
+            0.395,
+            [
+              0.149,
+              1,
+              0.819
+            ]
+          ],
+          [
+            0.397,
+            [
+              0.149,
+              1,
+              0.819
+            ]
+          ],
+          [
+            0.399,
+            [
+              0.161,
+              1,
+              0.806
+            ]
+          ],
+          [
+            0.401,
+            [
+              0.161,
+              1,
+              0.806
+            ]
+          ],
+          [
+            0.403,
+            [
+              0.174,
+              1,
+              0.794
+            ]
+          ],
+          [
+            0.405,
+            [
+              0.174,
+              1,
+              0.794
+            ]
+          ],
+          [
+            0.407,
+            [
+              0.187,
+              1,
+              0.781
+            ]
+          ],
+          [
+            0.409,
+            [
+              0.187,
+              1,
+              0.781
+            ]
+          ],
+          [
+            0.411,
+            [
+              0.199,
+              1,
+              0.769
+            ]
+          ],
+          [
+            0.413,
+            [
+              0.199,
+              1,
+              0.769
+            ]
+          ],
+          [
+            0.415,
+            [
+              0.212,
+              1,
+              0.756
+            ]
+          ],
+          [
+            0.417,
+            [
+              0.212,
+              1,
+              0.756
+            ]
+          ],
+          [
+            0.419,
+            [
+              0.225,
+              1,
+              0.743
+            ]
+          ],
+          [
+            0.421,
+            [
+              0.225,
+              1,
+              0.743
+            ]
+          ],
+          [
+            0.423,
+            [
+              0.237,
+              1,
+              0.731
+            ]
+          ],
+          [
+            0.425,
+            [
+              0.237,
+              1,
+              0.731
+            ]
+          ],
+          [
+            0.427,
+            [
+              0.25,
+              1,
+              0.718
+            ]
+          ],
+          [
+            0.429,
+            [
+              0.25,
+              1,
+              0.718
+            ]
+          ],
+          [
+            0.431,
+            [
+              0.262,
+              1,
+              0.705
+            ]
+          ],
+          [
+            0.432,
+            [
+              0.262,
+              1,
+              0.705
+            ]
+          ],
+          [
+            0.434,
+            [
+              0.275,
+              1,
+              0.693
+            ]
+          ],
+          [
+            0.436,
+            [
+              0.275,
+              1,
+              0.693
+            ]
+          ],
+          [
+            0.438,
+            [
+              0.288,
+              1,
+              0.68
+            ]
+          ],
+          [
+            0.44,
+            [
+              0.288,
+              1,
+              0.68
+            ]
+          ],
+          [
+            0.442,
+            [
+              0.3,
+              1,
+              0.667
+            ]
+          ],
+          [
+            0.444,
+            [
+              0.3,
+              1,
+              0.667
+            ]
+          ],
+          [
+            0.446,
+            [
+              0.313,
+              1,
+              0.655
+            ]
+          ],
+          [
+            0.448,
+            [
+              0.313,
+              1,
+              0.655
+            ]
+          ],
+          [
+            0.45,
+            [
+              0.326,
+              1,
+              0.642
+            ]
+          ],
+          [
+            0.452,
+            [
+              0.326,
+              1,
+              0.642
+            ]
+          ],
+          [
+            0.454,
+            [
+              0.338,
+              1,
+              0.629
+            ]
+          ],
+          [
+            0.456,
+            [
+              0.338,
+              1,
+              0.629
+            ]
+          ],
+          [
+            0.458,
+            [
+              0.351,
+              1,
+              0.617
+            ]
+          ],
+          [
+            0.46,
+            [
+              0.351,
+              1,
+              0.617
+            ]
+          ],
+          [
+            0.462,
+            [
+              0.364,
+              1,
+              0.604
+            ]
+          ],
+          [
+            0.464,
+            [
+              0.364,
+              1,
+              0.604
+            ]
+          ],
+          [
+            0.466,
+            [
+              0.376,
+              1,
+              0.591
+            ]
+          ],
+          [
+            0.468,
+            [
+              0.376,
+              1,
+              0.591
+            ]
+          ],
+          [
+            0.47,
+            [
+              0.389,
+              1,
+              0.579
+            ]
+          ],
+          [
+            0.472,
+            [
+              0.389,
+              1,
+              0.579
+            ]
+          ],
+          [
+            0.474,
+            [
+              0.402,
+              1,
+              0.566
+            ]
+          ],
+          [
+            0.476,
+            [
+              0.402,
+              1,
+              0.566
+            ]
+          ],
+          [
+            0.477,
+            [
+              0.414,
+              1,
+              0.553
+            ]
+          ],
+          [
+            0.479,
+            [
+              0.414,
+              1,
+              0.553
+            ]
+          ],
+          [
+            0.481,
+            [
+              0.427,
+              1,
+              0.541
+            ]
+          ],
+          [
+            0.483,
+            [
+              0.427,
+              1,
+              0.541
+            ]
+          ],
+          [
+            0.485,
+            [
+              0.44,
+              1,
+              0.528
+            ]
+          ],
+          [
+            0.487,
+            [
+              0.44,
+              1,
+              0.528
+            ]
+          ],
+          [
+            0.489,
+            [
+              0.452,
+              1,
+              0.515
+            ]
+          ],
+          [
+            0.491,
+            [
+              0.452,
+              1,
+              0.515
+            ]
+          ],
+          [
+            0.493,
+            [
+              0.465,
+              1,
+              0.503
+            ]
+          ],
+          [
+            0.495,
+            [
+              0.465,
+              1,
+              0.503
+            ]
+          ],
+          [
+            0.497,
+            [
+              0.478,
+              1,
+              0.49
+            ]
+          ],
+          [
+            0.499,
+            [
+              0.478,
+              1,
+              0.49
+            ]
+          ],
+          [
+            0.501,
+            [
+              0.49,
+              1,
+              0.478
+            ]
+          ],
+          [
+            0.503,
+            [
+              0.49,
+              1,
+              0.478
+            ]
+          ],
+          [
+            0.505,
+            [
+              0.503,
+              1,
+              0.465
+            ]
+          ],
+          [
+            0.507,
+            [
+              0.503,
+              1,
+              0.465
+            ]
+          ],
+          [
+            0.509,
+            [
+              0.515,
+              1,
+              0.452
+            ]
+          ],
+          [
+            0.511,
+            [
+              0.515,
+              1,
+              0.452
+            ]
+          ],
+          [
+            0.513,
+            [
+              0.528,
+              1,
+              0.44
+            ]
+          ],
+          [
+            0.515,
+            [
+              0.528,
+              1,
+              0.44
+            ]
+          ],
+          [
+            0.517,
+            [
+              0.541,
+              1,
+              0.427
+            ]
+          ],
+          [
+            0.519,
+            [
+              0.541,
+              1,
+              0.427
+            ]
+          ],
+          [
+            0.521,
+            [
+              0.553,
+              1,
+              0.414
+            ]
+          ],
+          [
+            0.523,
+            [
+              0.553,
+              1,
+              0.414
+            ]
+          ],
+          [
+            0.524,
+            [
+              0.566,
+              1,
+              0.402
+            ]
+          ],
+          [
+            0.526,
+            [
+              0.566,
+              1,
+              0.402
+            ]
+          ],
+          [
+            0.528,
+            [
+              0.579,
+              1,
+              0.389
+            ]
+          ],
+          [
+            0.53,
+            [
+              0.579,
+              1,
+              0.389
+            ]
+          ],
+          [
+            0.532,
+            [
+              0.591,
+              1,
+              0.376
+            ]
+          ],
+          [
+            0.534,
+            [
+              0.591,
+              1,
+              0.376
+            ]
+          ],
+          [
+            0.536,
+            [
+              0.604,
+              1,
+              0.364
+            ]
+          ],
+          [
+            0.538,
+            [
+              0.604,
+              1,
+              0.364
+            ]
+          ],
+          [
+            0.54,
+            [
+              0.617,
+              1,
+              0.351
+            ]
+          ],
+          [
+            0.542,
+            [
+              0.617,
+              1,
+              0.351
+            ]
+          ],
+          [
+            0.544,
+            [
+              0.629,
+              1,
+              0.338
+            ]
+          ],
+          [
+            0.546,
+            [
+              0.629,
+              1,
+              0.338
+            ]
+          ],
+          [
+            0.548,
+            [
+              0.642,
+              1,
+              0.326
+            ]
+          ],
+          [
+            0.55,
+            [
+              0.642,
+              1,
+              0.326
+            ]
+          ],
+          [
+            0.552,
+            [
+              0.655,
+              1,
+              0.313
+            ]
+          ],
+          [
+            0.554,
+            [
+              0.655,
+              1,
+              0.313
+            ]
+          ],
+          [
+            0.556,
+            [
+              0.667,
+              1,
+              0.3
+            ]
+          ],
+          [
+            0.558,
+            [
+              0.667,
+              1,
+              0.3
+            ]
+          ],
+          [
+            0.56,
+            [
+              0.68,
+              1,
+              0.288
+            ]
+          ],
+          [
+            0.562,
+            [
+              0.68,
+              1,
+              0.288
+            ]
+          ],
+          [
+            0.564,
+            [
+              0.693,
+              1,
+              0.275
+            ]
+          ],
+          [
+            0.566,
+            [
+              0.693,
+              1,
+              0.275
+            ]
+          ],
+          [
+            0.568,
+            [
+              0.705,
+              1,
+              0.262
+            ]
+          ],
+          [
+            0.569,
+            [
+              0.705,
+              1,
+              0.262
+            ]
+          ],
+          [
+            0.571,
+            [
+              0.718,
+              1,
+              0.25
+            ]
+          ],
+          [
+            0.573,
+            [
+              0.718,
+              1,
+              0.25
+            ]
+          ],
+          [
+            0.575,
+            [
+              0.731,
+              1,
+              0.237
+            ]
+          ],
+          [
+            0.577,
+            [
+              0.731,
+              1,
+              0.237
+            ]
+          ],
+          [
+            0.579,
+            [
+              0.743,
+              1,
+              0.225
+            ]
+          ],
+          [
+            0.581,
+            [
+              0.743,
+              1,
+              0.225
+            ]
+          ],
+          [
+            0.583,
+            [
+              0.756,
+              1,
+              0.212
+            ]
+          ],
+          [
+            0.585,
+            [
+              0.756,
+              1,
+              0.212
+            ]
+          ],
+          [
+            0.587,
+            [
+              0.769,
+              1,
+              0.199
+            ]
+          ],
+          [
+            0.589,
+            [
+              0.769,
+              1,
+              0.199
+            ]
+          ],
+          [
+            0.591,
+            [
+              0.781,
+              1,
+              0.187
+            ]
+          ],
+          [
+            0.593,
+            [
+              0.781,
+              1,
+              0.187
+            ]
+          ],
+          [
+            0.595,
+            [
+              0.794,
+              1,
+              0.174
+            ]
+          ],
+          [
+            0.597,
+            [
+              0.794,
+              1,
+              0.174
+            ]
+          ],
+          [
+            0.599,
+            [
+              0.806,
+              1,
+              0.161
+            ]
+          ],
+          [
+            0.601,
+            [
+              0.806,
+              1,
+              0.161
+            ]
+          ],
+          [
+            0.603,
+            [
+              0.819,
+              1,
+              0.149
+            ]
+          ],
+          [
+            0.605,
+            [
+              0.819,
+              1,
+              0.149
+            ]
+          ],
+          [
+            0.607,
+            [
+              0.832,
+              1,
+              0.136
+            ]
+          ],
+          [
+            0.609,
+            [
+              0.832,
+              1,
+              0.136
+            ]
+          ],
+          [
+            0.611,
+            [
+              0.844,
+              1,
+              0.123
+            ]
+          ],
+          [
+            0.613,
+            [
+              0.844,
+              1,
+              0.123
+            ]
+          ],
+          [
+            0.614,
+            [
+              0.857,
+              1,
+              0.111
+            ]
+          ],
+          [
+            0.616,
+            [
+              0.857,
+              1,
+              0.111
+            ]
+          ],
+          [
+            0.618,
+            [
+              0.87,
+              1,
+              0.098
+            ]
+          ],
+          [
+            0.62,
+            [
+              0.87,
+              1,
+              0.098
+            ]
+          ],
+          [
+            0.622,
+            [
+              0.882,
+              1,
+              0.085
+            ]
+          ],
+          [
+            0.624,
+            [
+              0.882,
+              1,
+              0.085
+            ]
+          ],
+          [
+            0.626,
+            [
+              0.895,
+              1,
+              0.073
+            ]
+          ],
+          [
+            0.628,
+            [
+              0.895,
+              1,
+              0.073
+            ]
+          ],
+          [
+            0.63,
+            [
+              0.908,
+              1,
+              0.06
+            ]
+          ],
+          [
+            0.632,
+            [
+              0.908,
+              1,
+              0.06
+            ]
+          ],
+          [
+            0.634,
+            [
+              0.92,
+              1,
+              0.047
+            ]
+          ],
+          [
+            0.636,
+            [
+              0.92,
+              1,
+              0.047
+            ]
+          ],
+          [
+            0.638,
+            [
+              0.933,
+              1,
+              0.035
+            ]
+          ],
+          [
+            0.64,
+            [
+              0.933,
+              1,
+              0.035
+            ]
+          ],
+          [
+            0.642,
+            [
+              0.946,
+              0.988,
+              0.022
+            ]
+          ],
+          [
+            0.644,
+            [
+              0.946,
+              0.988,
+              0.022
+            ]
+          ],
+          [
+            0.646,
+            [
+              0.958,
+              0.974,
+              0.009
+            ]
+          ],
+          [
+            0.648,
+            [
+              0.958,
+              0.974,
+              0.009
+            ]
+          ],
+          [
+            0.65,
+            [
+              0.971,
+              0.959,
+              0
+            ]
+          ],
+          [
+            0.652,
+            [
+              0.971,
+              0.959,
+              0
+            ]
+          ],
+          [
+            0.654,
+            [
+              0.984,
+              0.945,
+              0
+            ]
+          ],
+          [
+            0.656,
+            [
+              0.984,
+              0.945,
+              0
+            ]
+          ],
+          [
+            0.658,
+            [
+              0.996,
+              0.93,
+              0
+            ]
+          ],
+          [
+            0.659,
+            [
+              0.996,
+              0.93,
+              0
+            ]
+          ],
+          [
+            0.661,
+            [
+              1,
+              0.916,
+              0
+            ]
+          ],
+          [
+            0.663,
+            [
+              1,
+              0.916,
+              0
+            ]
+          ],
+          [
+            0.665,
+            [
+              1,
+              0.901,
+              0
+            ]
+          ],
+          [
+            0.667,
+            [
+              1,
+              0.901,
+              0
+            ]
+          ],
+          [
+            0.669,
+            [
+              1,
+              0.887,
+              0
+            ]
+          ],
+          [
+            0.671,
+            [
+              1,
+              0.887,
+              0
+            ]
+          ],
+          [
+            0.673,
+            [
+              1,
+              0.872,
+              0
+            ]
+          ],
+          [
+            0.675,
+            [
+              1,
+              0.872,
+              0
+            ]
+          ],
+          [
+            0.677,
+            [
+              1,
+              0.858,
+              0
+            ]
+          ],
+          [
+            0.679,
+            [
+              1,
+              0.858,
+              0
+            ]
+          ],
+          [
+            0.681,
+            [
+              1,
+              0.843,
+              0
+            ]
+          ],
+          [
+            0.683,
+            [
+              1,
+              0.843,
+              0
+            ]
+          ],
+          [
+            0.685,
+            [
+              1,
+              0.829,
+              0
+            ]
+          ],
+          [
+            0.687,
+            [
+              1,
+              0.829,
+              0
+            ]
+          ],
+          [
+            0.689,
+            [
+              1,
+              0.814,
+              0
+            ]
+          ],
+          [
+            0.691,
+            [
+              1,
+              0.814,
+              0
+            ]
+          ],
+          [
+            0.693,
+            [
+              1,
+              0.8,
+              0
+            ]
+          ],
+          [
+            0.695,
+            [
+              1,
+              0.8,
+              0
+            ]
+          ],
+          [
+            0.697,
+            [
+              1,
+              0.785,
+              0
+            ]
+          ],
+          [
+            0.699,
+            [
+              1,
+              0.785,
+              0
+            ]
+          ],
+          [
+            0.701,
+            [
+              1,
+              0.771,
+              0
+            ]
+          ],
+          [
+            0.703,
+            [
+              1,
+              0.771,
+              0
+            ]
+          ],
+          [
+            0.705,
+            [
+              1,
+              0.756,
+              0
+            ]
+          ],
+          [
+            0.706,
+            [
+              1,
+              0.756,
+              0
+            ]
+          ],
+          [
+            0.708,
+            [
+              1,
+              0.741,
+              0
+            ]
+          ],
+          [
+            0.71,
+            [
+              1,
+              0.741,
+              0
+            ]
+          ],
+          [
+            0.712,
+            [
+              1,
+              0.727,
+              0
+            ]
+          ],
+          [
+            0.714,
+            [
+              1,
+              0.727,
+              0
+            ]
+          ],
+          [
+            0.716,
+            [
+              1,
+              0.712,
+              0
+            ]
+          ],
+          [
+            0.718,
+            [
+              1,
+              0.712,
+              0
+            ]
+          ],
+          [
+            0.72,
+            [
+              1,
+              0.698,
+              0
+            ]
+          ],
+          [
+            0.722,
+            [
+              1,
+              0.698,
+              0
+            ]
+          ],
+          [
+            0.724,
+            [
+              1,
+              0.683,
+              0
+            ]
+          ],
+          [
+            0.726,
+            [
+              1,
+              0.683,
+              0
+            ]
+          ],
+          [
+            0.728,
+            [
+              1,
+              0.669,
+              0
+            ]
+          ],
+          [
+            0.73,
+            [
+              1,
+              0.669,
+              0
+            ]
+          ],
+          [
+            0.732,
+            [
+              1,
+              0.654,
+              0
+            ]
+          ],
+          [
+            0.734,
+            [
+              1,
+              0.654,
+              0
+            ]
+          ],
+          [
+            0.736,
+            [
+              1,
+              0.64,
+              0
+            ]
+          ],
+          [
+            0.738,
+            [
+              1,
+              0.64,
+              0
+            ]
+          ],
+          [
+            0.74,
+            [
+              1,
+              0.625,
+              0
+            ]
+          ],
+          [
+            0.742,
+            [
+              1,
+              0.625,
+              0
+            ]
+          ],
+          [
+            0.744,
+            [
+              1,
+              0.611,
+              0
+            ]
+          ],
+          [
+            0.746,
+            [
+              1,
+              0.611,
+              0
+            ]
+          ],
+          [
+            0.748,
+            [
+              1,
+              0.596,
+              0
+            ]
+          ],
+          [
+            0.75,
+            [
+              1,
+              0.596,
+              0
+            ]
+          ],
+          [
+            0.751,
+            [
+              1,
+              0.582,
+              0
+            ]
+          ],
+          [
+            0.753,
+            [
+              1,
+              0.582,
+              0
+            ]
+          ],
+          [
+            0.755,
+            [
+              1,
+              0.567,
+              0
+            ]
+          ],
+          [
+            0.757,
+            [
+              1,
+              0.567,
+              0
+            ]
+          ],
+          [
+            0.759,
+            [
+              1,
+              0.553,
+              0
+            ]
+          ],
+          [
+            0.761,
+            [
+              1,
+              0.553,
+              0
+            ]
+          ],
+          [
+            0.763,
+            [
+              1,
+              0.538,
+              0
+            ]
+          ],
+          [
+            0.765,
+            [
+              1,
+              0.538,
+              0
+            ]
+          ],
+          [
+            0.767,
+            [
+              1,
+              0.524,
+              0
+            ]
+          ],
+          [
+            0.769,
+            [
+              1,
+              0.524,
+              0
+            ]
+          ],
+          [
+            0.771,
+            [
+              1,
+              0.509,
+              0
+            ]
+          ],
+          [
+            0.773,
+            [
+              1,
+              0.509,
+              0
+            ]
+          ],
+          [
+            0.775,
+            [
+              1,
+              0.495,
+              0
+            ]
+          ],
+          [
+            0.777,
+            [
+              1,
+              0.495,
+              0
+            ]
+          ],
+          [
+            0.779,
+            [
+              1,
+              0.48,
+              0
+            ]
+          ],
+          [
+            0.781,
+            [
+              1,
+              0.48,
+              0
+            ]
+          ],
+          [
+            0.783,
+            [
+              1,
+              0.466,
+              0
+            ]
+          ],
+          [
+            0.785,
+            [
+              1,
+              0.466,
+              0
+            ]
+          ],
+          [
+            0.787,
+            [
+              1,
+              0.451,
+              0
+            ]
+          ],
+          [
+            0.789,
+            [
+              1,
+              0.451,
+              0
+            ]
+          ],
+          [
+            0.791,
+            [
+              1,
+              0.436,
+              0
+            ]
+          ],
+          [
+            0.793,
+            [
+              1,
+              0.436,
+              0
+            ]
+          ],
+          [
+            0.795,
+            [
+              1,
+              0.422,
+              0
+            ]
+          ],
+          [
+            0.796,
+            [
+              1,
+              0.422,
+              0
+            ]
+          ],
+          [
+            0.798,
+            [
+              1,
+              0.407,
+              0
+            ]
+          ],
+          [
+            0.8,
+            [
+              1,
+              0.407,
+              0
+            ]
+          ],
+          [
+            0.802,
+            [
+              1,
+              0.393,
+              0
+            ]
+          ],
+          [
+            0.804,
+            [
+              1,
+              0.393,
+              0
+            ]
+          ],
+          [
+            0.806,
+            [
+              1,
+              0.378,
+              0
+            ]
+          ],
+          [
+            0.808,
+            [
+              1,
+              0.378,
+              0
+            ]
+          ],
+          [
+            0.81,
+            [
+              1,
+              0.364,
+              0
+            ]
+          ],
+          [
+            0.812,
+            [
+              1,
+              0.364,
+              0
+            ]
+          ],
+          [
+            0.814,
+            [
+              1,
+              0.349,
+              0
+            ]
+          ],
+          [
+            0.816,
+            [
+              1,
+              0.349,
+              0
+            ]
+          ],
+          [
+            0.818,
+            [
+              1,
+              0.335,
+              0
+            ]
+          ],
+          [
+            0.82,
+            [
+              1,
+              0.335,
+              0
+            ]
+          ],
+          [
+            0.822,
+            [
+              1,
+              0.32,
+              0
+            ]
+          ],
+          [
+            0.824,
+            [
+              1,
+              0.32,
+              0
+            ]
+          ],
+          [
+            0.826,
+            [
+              1,
+              0.306,
+              0
+            ]
+          ],
+          [
+            0.828,
+            [
+              1,
+              0.306,
+              0
+            ]
+          ],
+          [
+            0.83,
+            [
+              1,
+              0.291,
+              0
+            ]
+          ],
+          [
+            0.832,
+            [
+              1,
+              0.291,
+              0
+            ]
+          ],
+          [
+            0.834,
+            [
+              1,
+              0.277,
+              0
+            ]
+          ],
+          [
+            0.836,
+            [
+              1,
+              0.277,
+              0
+            ]
+          ],
+          [
+            0.838,
+            [
+              1,
+              0.262,
+              0
+            ]
+          ],
+          [
+            0.84,
+            [
+              1,
+              0.262,
+              0
+            ]
+          ],
+          [
+            0.841,
+            [
+              1,
+              0.248,
+              0
+            ]
+          ],
+          [
+            0.843,
+            [
+              1,
+              0.248,
+              0
+            ]
+          ],
+          [
+            0.845,
+            [
+              1,
+              0.233,
+              0
+            ]
+          ],
+          [
+            0.847,
+            [
+              1,
+              0.233,
+              0
+            ]
+          ],
+          [
+            0.849,
+            [
+              1,
+              0.219,
+              0
+            ]
+          ],
+          [
+            0.851,
+            [
+              1,
+              0.219,
+              0
+            ]
+          ],
+          [
+            0.853,
+            [
+              1,
+              0.204,
+              0
+            ]
+          ],
+          [
+            0.855,
+            [
+              1,
+              0.204,
+              0
+            ]
+          ],
+          [
+            0.857,
+            [
+              1,
+              0.19,
+              0
+            ]
+          ],
+          [
+            0.859,
+            [
+              1,
+              0.19,
+              0
+            ]
+          ],
+          [
+            0.861,
+            [
+              1,
+              0.175,
+              0
+            ]
+          ],
+          [
+            0.863,
+            [
+              1,
+              0.175,
+              0
+            ]
+          ],
+          [
+            0.865,
+            [
+              1,
+              0.16,
+              0
+            ]
+          ],
+          [
+            0.867,
+            [
+              1,
+              0.16,
+              0
+            ]
+          ],
+          [
+            0.869,
+            [
+              1,
+              0.146,
+              0
+            ]
+          ],
+          [
+            0.871,
+            [
+              1,
+              0.146,
+              0
+            ]
+          ],
+          [
+            0.873,
+            [
+              1,
+              0.131,
+              0
+            ]
+          ],
+          [
+            0.875,
+            [
+              1,
+              0.131,
+              0
+            ]
+          ],
+          [
+            0.877,
+            [
+              1,
+              0.117,
+              0
+            ]
+          ],
+          [
+            0.879,
+            [
+              1,
+              0.117,
+              0
+            ]
+          ],
+          [
+            0.881,
+            [
+              1,
+              0.102,
+              0
+            ]
+          ],
+          [
+            0.883,
+            [
+              1,
+              0.102,
+              0
+            ]
+          ],
+          [
+            0.885,
+            [
+              1,
+              0.088,
+              0
+            ]
+          ],
+          [
+            0.886,
+            [
+              1,
+              0.088,
+              0
+            ]
+          ],
+          [
+            0.888,
+            [
+              0.999,
+              0.073,
+              0
+            ]
+          ],
+          [
+            0.89,
+            [
+              0.999,
+              0.073,
+              0
+            ]
+          ],
+          [
+            0.892,
+            [
+              0.981,
+              0.059,
+              0
+            ]
+          ],
+          [
+            0.894,
+            [
+              0.981,
+              0.059,
+              0
+            ]
+          ],
+          [
+            0.896,
+            [
+              0.963,
+              0.044,
+              0
+            ]
+          ],
+          [
+            0.898,
+            [
+              0.963,
+              0.044,
+              0
+            ]
+          ],
+          [
+            0.9,
+            [
+              0.946,
+              0.03,
+              0
+            ]
+          ],
+          [
+            0.902,
+            [
+              0.946,
+              0.03,
+              0
+            ]
+          ],
+          [
+            0.904,
+            [
+              0.928,
+              0.015,
+              0
+            ]
+          ],
+          [
+            0.906,
+            [
+              0.928,
+              0.015,
+              0
+            ]
+          ],
+          [
+            0.908,
+            [
+              0.91,
+              0.001,
+              0
+            ]
+          ],
+          [
+            0.91,
+            [
+              0.91,
+              0.001,
+              0
+            ]
+          ],
+          [
+            0.912,
+            [
+              0.892,
+              0,
+              0
+            ]
+          ],
+          [
+            0.914,
+            [
+              0.892,
+              0,
+              0
+            ]
+          ],
+          [
+            0.916,
+            [
+              0.874,
+              0,
+              0
+            ]
+          ],
+          [
+            0.918,
+            [
+              0.874,
+              0,
+              0
+            ]
+          ],
+          [
+            0.92,
+            [
+              0.857,
+              0,
+              0
+            ]
+          ],
+          [
+            0.922,
+            [
+              0.857,
+              0,
+              0
+            ]
+          ],
+          [
+            0.924,
+            [
+              0.839,
+              0,
+              0
+            ]
+          ],
+          [
+            0.926,
+            [
+              0.839,
+              0,
+              0
+            ]
+          ],
+          [
+            0.928,
+            [
+              0.821,
+              0,
+              0
+            ]
+          ],
+          [
+            0.93,
+            [
+              0.821,
+              0,
+              0
+            ]
+          ],
+          [
+            0.932,
+            [
+              0.803,
+              0,
+              0
+            ]
+          ],
+          [
+            0.933,
+            [
+              0.803,
+              0,
+              0
+            ]
+          ],
+          [
+            0.935,
+            [
+              0.785,
+              0,
+              0
+            ]
+          ],
+          [
+            0.937,
+            [
+              0.785,
+              0,
+              0
+            ]
+          ],
+          [
+            0.939,
+            [
+              0.767,
+              0,
+              0
+            ]
+          ],
+          [
+            0.941,
+            [
+              0.767,
+              0,
+              0
+            ]
+          ],
+          [
+            0.943,
+            [
+              0.75,
+              0,
+              0
+            ]
+          ],
+          [
+            0.945,
+            [
+              0.75,
+              0,
+              0
+            ]
+          ],
+          [
+            0.947,
+            [
+              0.732,
+              0,
+              0
+            ]
+          ],
+          [
+            0.949,
+            [
+              0.732,
+              0,
+              0
+            ]
+          ],
+          [
+            0.951,
+            [
+              0.714,
+              0,
+              0
+            ]
+          ],
+          [
+            0.953,
+            [
+              0.714,
+              0,
+              0
+            ]
+          ],
+          [
+            0.955,
+            [
+              0.696,
+              0,
+              0
+            ]
+          ],
+          [
+            0.957,
+            [
+              0.696,
+              0,
+              0
+            ]
+          ],
+          [
+            0.959,
+            [
+              0.678,
+              0,
+              0
+            ]
+          ],
+          [
+            0.961,
+            [
+              0.678,
+              0,
+              0
+            ]
+          ],
+          [
+            0.963,
+            [
+              0.66,
+              0,
+              0
+            ]
+          ],
+          [
+            0.965,
+            [
+              0.66,
+              0,
+              0
+            ]
+          ],
+          [
+            0.967,
+            [
+              0.643,
+              0,
+              0
+            ]
+          ],
+          [
+            0.969,
+            [
+              0.643,
+              0,
+              0
+            ]
+          ],
+          [
+            0.971,
+            [
+              0.625,
+              0,
+              0
+            ]
+          ],
+          [
+            0.973,
+            [
+              0.625,
+              0,
+              0
+            ]
+          ],
+          [
+            0.975,
+            [
+              0.607,
+              0,
+              0
+            ]
+          ],
+          [
+            0.977,
+            [
+              0.607,
+              0,
+              0
+            ]
+          ],
+          [
+            0.978,
+            [
+              0.589,
+              0,
+              0
+            ]
+          ],
+          [
+            0.98,
+            [
+              0.589,
+              0,
+              0
+            ]
+          ],
+          [
+            0.982,
+            [
+              0.571,
+              0,
+              0
+            ]
+          ],
+          [
+            0.984,
+            [
+              0.571,
+              0,
+              0
+            ]
+          ],
+          [
+            0.986,
+            [
+              0.553,
+              0,
+              0
+            ]
+          ],
+          [
+            0.988,
+            [
+              0.553,
+              0,
+              0
+            ]
+          ],
+          [
+            0.99,
+            [
+              0.536,
+              0,
+              0
+            ]
+          ],
+          [
+            0.992,
+            [
+              0.536,
+              0,
+              0
+            ]
+          ],
+          [
+            0.994,
+            [
+              0.518,
+              0,
+              0
+            ]
+          ],
+          [
+            0.996,
+            [
+              0.518,
+              0,
+              0
+            ]
+          ],
+          [
+            0.998,
+            [
+              0.5,
+              0,
+              0
+            ]
+          ],
+          [
+            1,
+            [
+              0.5,
+              0,
+              0
+            ]
+          ]
+        ]
+      ],
+      "colorMap": 0
+    },
+    "bar": false
+  }
+}
\ No newline at end of file
diff --git a/01_Code/physical_computing_interface/simulation/json/setupChiral3.json b/01_Code/physical_computing_interface/simulation/json/setupChiral3.json
new file mode 100644
index 0000000000000000000000000000000000000000..bd33977185a1e882ec602fe89ca32ecf92479ef8
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/json/setupChiral3.json
@@ -0,0 +1,74434 @@
+{
+  "setup": {
+    "nodes": [
+      {
+        "id": "n0",
+        "parent": "11",
+        "degrees_of_freedom": [
+          0,
+          1,
+          2,
+          3,
+          4,
+          5
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 5,
+          "y": -5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n1",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6,
+          7,
+          8,
+          9,
+          10,
+          11
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 0,
+          "y": -5,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n2",
+        "parent": "11",
+        "degrees_of_freedom": [
+          12,
+          13,
+          14,
+          15,
+          16,
+          17
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -5,
+          "y": -5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n3",
+        "parent": "11",
+        "degrees_of_freedom": [
+          18,
+          19,
+          20,
+          21,
+          22,
+          23
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 0,
+          "y": -5,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n4",
+        "parent": "11",
+        "degrees_of_freedom": [
+          24,
+          25,
+          26,
+          27,
+          28,
+          29
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": -5,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n5",
+        "parent": "11",
+        "degrees_of_freedom": [
+          30,
+          31,
+          32,
+          33,
+          34,
+          35
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 2.0203050891044216,
+          "y": -5,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n6",
+        "parent": "11",
+        "degrees_of_freedom": [
+          36,
+          37,
+          38,
+          39,
+          40,
+          41
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 3.140184917367551e-16,
+          "y": -5,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n7",
+        "parent": "11",
+        "degrees_of_freedom": [
+          42,
+          43,
+          44,
+          45,
+          46,
+          47
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": -5,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n8",
+        "parent": "11",
+        "degrees_of_freedom": [
+          48,
+          49,
+          50,
+          51,
+          52,
+          53
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": -5,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n9",
+        "parent": "11",
+        "degrees_of_freedom": [
+          54,
+          55,
+          56,
+          57,
+          58,
+          59
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -2.0203050891044216,
+          "y": -5,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n10",
+        "parent": "11",
+        "degrees_of_freedom": [
+          60,
+          61,
+          62,
+          63,
+          64,
+          65
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -3.140184917367551e-16,
+          "y": -5,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n11",
+        "parent": "11",
+        "degrees_of_freedom": [
+          66,
+          67,
+          68,
+          69,
+          70,
+          71
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": -5,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n12",
+        "parent": "11",
+        "degrees_of_freedom": [
+          72,
+          73,
+          74,
+          75,
+          76,
+          77
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006127054474367485,
+          "y": -0.0005764219598477146,
+          "z": -0.00007638816988533589
+        },
+        "angle": {
+          "x": -0.0000019006746924249295,
+          "y": -0.000008548681036030396,
+          "z": 0.000003013162245068095
+        }
+      },
+      {
+        "id": "n13",
+        "parent": "11",
+        "degrees_of_freedom": [
+          78,
+          79,
+          80,
+          81,
+          82,
+          83
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 0,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000009569548046759798,
+          "y": -0.00028571762654177625,
+          "z": -0.00010777000743863096
+        },
+        "angle": {
+          "x": -0.000006622576169758562,
+          "y": 0.000014662372358721586,
+          "z": -0.000007927134747995262
+        }
+      },
+      {
+        "id": "n14",
+        "parent": "11",
+        "degrees_of_freedom": [
+          84,
+          85,
+          86,
+          87,
+          88,
+          89
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 0,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 6.115830716494401e-7,
+          "y": -0.00028307506231904986,
+          "z": -0.000034745841276784984
+        },
+        "angle": {
+          "x": -0.000006064924516595151,
+          "y": -0.0000033821795274807894,
+          "z": -1.4713928190740948e-8
+        }
+      },
+      {
+        "id": "n15",
+        "parent": "11",
+        "degrees_of_freedom": [
+          90,
+          91,
+          92,
+          93,
+          94,
+          95
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": -3.140184917367551e-16,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000014578194319754071,
+          "y": -0.0002771800324804563,
+          "z": -0.000019602894802517637
+        },
+        "angle": {
+          "x": -0.000009386268329808981,
+          "y": -0.000006886624854111889,
+          "z": -0.000008717503787093083
+        }
+      },
+      {
+        "id": "n16",
+        "parent": "11",
+        "degrees_of_freedom": [
+          96,
+          97,
+          98,
+          99,
+          100,
+          101
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 2.020305089104421,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004229528969680477,
+          "y": -0.0003714592911443493,
+          "z": -0.00005648025341231486
+        },
+        "angle": {
+          "x": -0.00004924003441013519,
+          "y": 0.00004792127439237459,
+          "z": -0.000029768509322254585
+        }
+      },
+      {
+        "id": "n17",
+        "parent": "11",
+        "degrees_of_freedom": [
+          102,
+          103,
+          104,
+          105,
+          106,
+          107
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 2.857142857142857,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00012196071904202409,
+          "y": -0.00039109489440707724,
+          "z": -0.00007539437718710755
+        },
+        "angle": {
+          "x": -0.000002486071211121955,
+          "y": -0.00000535439583019665,
+          "z": -0.000012606219301004874
+        }
+      },
+      {
+        "id": "n18",
+        "parent": "11",
+        "degrees_of_freedom": [
+          108,
+          109,
+          110,
+          111,
+          112,
+          113
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 2.0203050891044216,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000057555076855349864,
+          "y": -0.00037678526296035095,
+          "z": -0.00009187793468356992
+        },
+        "angle": {
+          "x": 0.00004372045592178046,
+          "y": -0.00005261206629698934,
+          "z": -0.000030987825802928826
+        }
+      },
+      {
+        "id": "n19",
+        "parent": "11",
+        "degrees_of_freedom": [
+          114,
+          115,
+          116,
+          117,
+          118,
+          119
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 3.140184917367551e-16,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000025595995668574682,
+          "y": -0.0002959407580447984,
+          "z": -0.00010808508175088611
+        },
+        "angle": {
+          "x": -0.000009587243042159157,
+          "y": 0.000003030462737377417,
+          "z": -0.000012988705630439005
+        }
+      },
+      {
+        "id": "n20",
+        "parent": "11",
+        "degrees_of_freedom": [
+          120,
+          121,
+          122,
+          123,
+          124,
+          125
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": -2.020305089104421,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000012910790322815035,
+          "y": -0.00020148098081930986,
+          "z": -0.00005842098828322429
+        },
+        "angle": {
+          "x": -0.00006220052598546832,
+          "y": 0.00010558641441872815,
+          "z": -0.00004757422950501538
+        }
+      },
+      {
+        "id": "n21",
+        "parent": "11",
+        "degrees_of_freedom": [
+          126,
+          127,
+          128,
+          129,
+          130,
+          131
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": -2.857142857142857,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000053452008288899775,
+          "y": -0.0001826741788125608,
+          "z": -0.00003477877168440209
+        },
+        "angle": {
+          "x": -0.000003973010382698029,
+          "y": 0.0000014980951436545792,
+          "z": -0.000009100002101653562
+        }
+      },
+      {
+        "id": "n22",
+        "parent": "11",
+        "degrees_of_freedom": [
+          132,
+          133,
+          134,
+          135,
+          136,
+          137
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": -2.0203050891044216,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00000161292496482119,
+          "y": -0.0001970078213880183,
+          "z": -0.00002304540200854616
+        },
+        "angle": {
+          "x": 0.000029730692901087793,
+          "y": -0.00006837391386896984,
+          "z": -0.00003213002884479446
+        }
+      },
+      {
+        "id": "n23",
+        "parent": "11",
+        "degrees_of_freedom": [
+          138,
+          139,
+          140,
+          141,
+          142,
+          143
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000045376803669656656,
+          "y": -0.0006552311690138593,
+          "z": -0.00011723094882094128
+        },
+        "angle": {
+          "x": -0.00009965171562005181,
+          "y": -0.0000055183585737048576,
+          "z": 0.0000055380590526361155
+        }
+      },
+      {
+        "id": "n24",
+        "parent": "11",
+        "degrees_of_freedom": [
+          144,
+          145,
+          146,
+          147,
+          148,
+          149
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 5,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007949883194846103,
+          "y": -0.0006056016012145995,
+          "z": -0.0000949751030616181
+        },
+        "angle": {
+          "x": 0.0000015392310848041018,
+          "y": -0.00001032816106206127,
+          "z": -0.00007392048856027853
+        }
+      },
+      {
+        "id": "n25",
+        "parent": "11",
+        "degrees_of_freedom": [
+          150,
+          151,
+          152,
+          153,
+          154,
+          155
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 5,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": 1.3798290402499141e-8,
+          "y": -0.0005923843206117704,
+          "z": -0.00008891351162851928
+        },
+        "angle": {
+          "x": -0.000006071012025554741,
+          "y": -0.00001096021361719583,
+          "z": -0.000009053425653134453
+        }
+      },
+      {
+        "id": "n26",
+        "parent": "11",
+        "degrees_of_freedom": [
+          156,
+          157,
+          158,
+          159,
+          160,
+          161
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 5,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004980312132016755,
+          "y": -0.0003427628712535605,
+          "z": -0.00008350989691214072
+        },
+        "angle": {
+          "x": -0.00010147118260025388,
+          "y": -0.000007115131980994271,
+          "z": 0.0000829677523963722
+        }
+      },
+      {
+        "id": "n27",
+        "parent": "11",
+        "degrees_of_freedom": [
+          162,
+          163,
+          164,
+          165,
+          166,
+          167
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.0203050891044216,
+          "y": 5,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000042736267126770904,
+          "y": -0.0006166093615372127,
+          "z": -0.00008665868951419579
+        },
+        "angle": {
+          "x": -0.00033163715800038683,
+          "y": -0.000005063622646087242,
+          "z": 0.00016683630038726895
+        }
+      },
+      {
+        "id": "n28",
+        "parent": "11",
+        "degrees_of_freedom": [
+          168,
+          169,
+          170,
+          171,
+          172,
+          173
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 3.140184917367551e-16,
+          "y": 5,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000343039542518728,
+          "y": -0.0007379065439882641,
+          "z": -0.0000928635598299773
+        },
+        "angle": {
+          "x": 0.0002235029723516984,
+          "y": -0.0000041906530835042935,
+          "z": -0.000026942880641811607
+        }
+      },
+      {
+        "id": "n29",
+        "parent": "11",
+        "degrees_of_freedom": [
+          174,
+          175,
+          176,
+          177,
+          178,
+          179
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 5,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003479769803631925,
+          "y": -0.0004851320456467893,
+          "z": -0.00010388283543915325
+        },
+        "angle": {
+          "x": -0.0007796693806157891,
+          "y": -0.000008436493155516496,
+          "z": -0.0003841105947779016
+        }
+      },
+      {
+        "id": "n30",
+        "parent": "11",
+        "degrees_of_freedom": [
+          180,
+          181,
+          182,
+          183,
+          184,
+          185
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 5,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004586905113259864,
+          "y": 0.00014411144126016785,
+          "z": -0.00010780582514534089
+        },
+        "angle": {
+          "x": -0.0000912645440717244,
+          "y": -0.000009353640840618196,
+          "z": -0.0001432153742907414
+        }
+      },
+      {
+        "id": "n31",
+        "parent": "11",
+        "degrees_of_freedom": [
+          186,
+          187,
+          188,
+          189,
+          190,
+          191
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.0203050891044216,
+          "y": 5,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00005592961827891487,
+          "y": -0.0008633920827297179,
+          "z": -0.00010475666949358845
+        },
+        "angle": {
+          "x": 0.001140844994495974,
+          "y": -0.000005927463993312462,
+          "z": -0.0005813244075546423
+        }
+      },
+      {
+        "id": "n32",
+        "parent": "11",
+        "degrees_of_freedom": [
+          192,
+          193,
+          194,
+          195,
+          196,
+          197
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -3.140184917367551e-16,
+          "y": 5,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000615863909578695,
+          "y": -0.001288579675473449,
+          "z": -0.00009562379791351924
+        },
+        "angle": {
+          "x": -0.00041623816693341987,
+          "y": -0.0000051599624048427225,
+          "z": -0.000033304741766947905
+        }
+      },
+      {
+        "id": "n33",
+        "parent": "11",
+        "degrees_of_freedom": [
+          198,
+          199,
+          200,
+          201,
+          202,
+          203
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 5,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000587690051904647,
+          "y": -0.001017119138855471,
+          "z": -0.00008574794083671528
+        },
+        "angle": {
+          "x": 0.0015797916550857715,
+          "y": -0.00000610813783254991,
+          "z": 0.00067489123807611
+        }
+      },
+      {
+        "id": "n34",
+        "parent": "11",
+        "degrees_of_freedom": [
+          204,
+          205,
+          206,
+          207,
+          208,
+          209
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 0,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003627929327289444,
+          "y": -0.0002882957670558257,
+          "z": 0.000023959296926272404
+        },
+        "angle": {
+          "x": -0.00004856375524979564,
+          "y": 0.00007164280723123878,
+          "z": -0.000007664864049975665
+        }
+      },
+      {
+        "id": "n35",
+        "parent": "11",
+        "degrees_of_freedom": [
+          210,
+          211,
+          212,
+          213,
+          214,
+          215
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 0,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000097011070813752,
+          "y": -0.00028911960569334076,
+          "z": -8.019076287780866e-8
+        },
+        "angle": {
+          "x": -0.000028222494944679125,
+          "y": 0.0000155908670364615,
+          "z": -0.0000038340555212078655
+        }
+      },
+      {
+        "id": "n36",
+        "parent": "11",
+        "degrees_of_freedom": [
+          216,
+          217,
+          218,
+          219,
+          220,
+          221
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 3.140184917367551e-16,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001571194299779932,
+          "y": -0.00016875647860164336,
+          "z": -0.000010144469079943254
+        },
+        "angle": {
+          "x": 0.000005185464597983968,
+          "y": -0.00005250321504563754,
+          "z": -0.000047818833582684096
+        }
+      },
+      {
+        "id": "n37",
+        "parent": "11",
+        "degrees_of_freedom": [
+          222,
+          223,
+          224,
+          225,
+          226,
+          227
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 2.0203050891044216,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00022636689694653238,
+          "y": -0.00021576674983523,
+          "z": 0.000006562899237580777
+        },
+        "angle": {
+          "x": 0.000021268925296625755,
+          "y": 0.0001053446301081736,
+          "z": 0.000007988691492968814
+        }
+      },
+      {
+        "id": "n38",
+        "parent": "11",
+        "degrees_of_freedom": [
+          228,
+          229,
+          230,
+          231,
+          232,
+          233
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 2.857142857142857,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0003935461097372367,
+          "y": -0.00033999110131356815,
+          "z": 0.00002121120630290968
+        },
+        "angle": {
+          "x": 0.00008649868953323537,
+          "y": -0.000041590993806104217,
+          "z": -0.00004396105030867014
+        }
+      },
+      {
+        "id": "n39",
+        "parent": "11",
+        "degrees_of_freedom": [
+          234,
+          235,
+          236,
+          237,
+          238,
+          239
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 2.020305089104421,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00005831334745087521,
+          "y": -0.0004360622678904798,
+          "z": 0.000020815128102917125
+        },
+        "angle": {
+          "x": -0.00003411448977640222,
+          "y": 0.0005556293686021298,
+          "z": -0.0002551104592615901
+        }
+      },
+      {
+        "id": "n40",
+        "parent": "11",
+        "degrees_of_freedom": [
+          240,
+          241,
+          242,
+          243,
+          244,
+          245
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": -3.140184917367551e-16,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008054499665651462,
+          "y": -0.0003886033369717099,
+          "z": 0.00003302697346104777
+        },
+        "angle": {
+          "x": 0.00000729765481948087,
+          "y": -0.00003067910297257591,
+          "z": -0.000047819230019951786
+        }
+      },
+      {
+        "id": "n41",
+        "parent": "11",
+        "degrees_of_freedom": [
+          246,
+          247,
+          248,
+          249,
+          250,
+          251
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": -2.0203050891044216,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00016805642625899116,
+          "y": -0.00034206386434031084,
+          "z": 0.000005209611943643121
+        },
+        "angle": {
+          "x": 0.000027614161474936785,
+          "y": -0.00023344729767656814,
+          "z": -0.00011950844394708272
+        }
+      },
+      {
+        "id": "n42",
+        "parent": "11",
+        "degrees_of_freedom": [
+          252,
+          253,
+          254,
+          255,
+          256,
+          257
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": -2.857142857142857,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00037932649886913413,
+          "y": -0.00022523010799298344,
+          "z": -0.000013731987978695668
+        },
+        "angle": {
+          "x": 0.00008625003772759054,
+          "y": -0.00004159163430965543,
+          "z": -0.000051677074594252826
+        }
+      },
+      {
+        "id": "n43",
+        "parent": "11",
+        "degrees_of_freedom": [
+          258,
+          259,
+          260,
+          261,
+          262,
+          263
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": -2.020305089104421,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -1.4874906575444635e-9,
+          "y": -0.0001265967941531805,
+          "z": -0.000009336212667427188
+        },
+        "angle": {
+          "x": -0.000015855251943392123,
+          "y": 0.0005983787867073952,
+          "z": -0.00027794058968840787
+        }
+      },
+      {
+        "id": "n44",
+        "parent": "11",
+        "degrees_of_freedom": [
+          264,
+          265,
+          266,
+          267,
+          268,
+          269
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": -2.857142857142857,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000011436618657628905,
+          "y": -0.00019919909525198238,
+          "z": -0.00019009062912018993
+        },
+        "angle": {
+          "x": 0.00017254288405703255,
+          "y": -0.00002262009694080183,
+          "z": 0.000039614549594786575
+        }
+      },
+      {
+        "id": "n45",
+        "parent": "11",
+        "degrees_of_freedom": [
+          270,
+          271,
+          272,
+          273,
+          274,
+          275
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": -2.020305089104421,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000088684403344587,
+          "y": -0.00015321722605799468,
+          "z": -7.551155115595768e-10
+        },
+        "angle": {
+          "x": -0.00008870902047512056,
+          "y": -0.00013083411498512591,
+          "z": -0.000009064576289071527
+        }
+      },
+      {
+        "id": "n46",
+        "parent": "11",
+        "degrees_of_freedom": [
+          276,
+          277,
+          278,
+          279,
+          280,
+          281
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 0,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000004101394494696725,
+          "y": -0.00020478446653933045,
+          "z": -0.00006973312107098645
+        },
+        "angle": {
+          "x": -0.00001917032919582828,
+          "y": 0.00003704713608022324,
+          "z": 0.000009410880560877652
+        }
+      },
+      {
+        "id": "n47",
+        "parent": "11",
+        "degrees_of_freedom": [
+          282,
+          283,
+          284,
+          285,
+          286,
+          287
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 2.020305089104421,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000027788179486716528,
+          "y": -0.0002704730532198599,
+          "z": -0.00007746057002598709
+        },
+        "angle": {
+          "x": -0.000011177320039036937,
+          "y": 0.00001775038212181241,
+          "z": 0.000025295635602216103
+        }
+      },
+      {
+        "id": "n48",
+        "parent": "11",
+        "degrees_of_freedom": [
+          288,
+          289,
+          290,
+          291,
+          292,
+          293
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 2.857142857142857,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000048993951787200266,
+          "y": -0.00034821613701420905,
+          "z": -0.00005095302427413182
+        },
+        "angle": {
+          "x": 0.0000573475023860056,
+          "y": -0.000010633558027581113,
+          "z": 0.00003645759757552682
+        }
+      },
+      {
+        "id": "n49",
+        "parent": "11",
+        "degrees_of_freedom": [
+          294,
+          295,
+          296,
+          297,
+          298,
+          299
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 2.020305089104421,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000050711743428182374,
+          "y": -0.00038288901318149395,
+          "z": -0.00012042661583252216
+        },
+        "angle": {
+          "x": -0.000020543954957916244,
+          "y": -0.00004289725273661017,
+          "z": -0.000018411871646118484
+        }
+      },
+      {
+        "id": "n50",
+        "parent": "11",
+        "degrees_of_freedom": [
+          300,
+          301,
+          302,
+          303,
+          304,
+          305
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 0,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004771553618160712,
+          "y": -0.00033804397209899733,
+          "z": -0.00011481948709199971
+        },
+        "angle": {
+          "x": -0.000007183841456673279,
+          "y": -0.00001064288352871891,
+          "z": 0.000009938844647811856
+        }
+      },
+      {
+        "id": "n51",
+        "parent": "11",
+        "degrees_of_freedom": [
+          306,
+          307,
+          308,
+          309,
+          310,
+          311
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": -2.020305089104421,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000015253096196086068,
+          "y": -0.0002821586476955923,
+          "z": -0.00009139961720183774
+        },
+        "angle": {
+          "x": -0.00003841784018241686,
+          "y": 0.00006476284373861947,
+          "z": 0.000029395131844843642
+        }
+      },
+      {
+        "id": "n52",
+        "parent": "11",
+        "degrees_of_freedom": [
+          312,
+          313,
+          314,
+          315,
+          316,
+          317
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 2.857142857142857,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000029574555487828714,
+          "y": -0.0004203199726417168,
+          "z": -0.0000878661173720974
+        },
+        "angle": {
+          "x": -0.000027688775728569043,
+          "y": -0.0000017332456065344634,
+          "z": 4.202990344265578e-7
+        }
+      },
+      {
+        "id": "n53",
+        "parent": "11",
+        "degrees_of_freedom": [
+          318,
+          319,
+          320,
+          321,
+          322,
+          323
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 2.020305089104421,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00005660812701891558,
+          "y": -0.000382205988698001,
+          "z": -0.00006745701563715543
+        },
+        "angle": {
+          "x": -0.000011257561972398398,
+          "y": 0.0000061712919372248216,
+          "z": -0.000041513550754797244
+        }
+      },
+      {
+        "id": "n54",
+        "parent": "11",
+        "degrees_of_freedom": [
+          324,
+          325,
+          326,
+          327,
+          328,
+          329
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 0,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008106984273147554,
+          "y": -0.00029457646201000215,
+          "z": -0.00003618428679705189
+        },
+        "angle": {
+          "x": -0.000015510972963349986,
+          "y": 0.000001933650009103205,
+          "z": 9.134362715488472e-7
+        }
+      },
+      {
+        "id": "n55",
+        "parent": "11",
+        "degrees_of_freedom": [
+          330,
+          331,
+          332,
+          333,
+          334,
+          335
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": -2.020305089104421,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00005310403372685053,
+          "y": -0.0002056403961039222,
+          "z": -0.000008147857133726807
+        },
+        "angle": {
+          "x": -0.000020326476819119875,
+          "y": 0.000019590296669808156,
+          "z": 0.00004298704405467151
+        }
+      },
+      {
+        "id": "n56",
+        "parent": "11",
+        "degrees_of_freedom": [
+          336,
+          337,
+          338,
+          339,
+          340,
+          341
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": -2.857142857142857,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00002317354708755738,
+          "y": -0.00016682150592803606,
+          "z": -0.000029457151338117483
+        },
+        "angle": {
+          "x": 0.00001560683448901777,
+          "y": 0.0000037713819698236164,
+          "z": 1.847528277617659e-7
+        }
+      },
+      {
+        "id": "n57",
+        "parent": "11",
+        "degrees_of_freedom": [
+          342,
+          343,
+          344,
+          345,
+          346,
+          347
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": -2.020305089104421,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 5.628788861989848e-7,
+          "y": -0.00019994924836049774,
+          "z": -0.000024645656382718545
+        },
+        "angle": {
+          "x": -0.000019639107806408463,
+          "y": -0.00000989312781444795,
+          "z": -0.00003326085975731748
+        }
+      },
+      {
+        "id": "n58",
+        "parent": "11",
+        "degrees_of_freedom": [
+          348,
+          349,
+          350,
+          351,
+          352,
+          353
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 0,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000015452100930562136,
+          "y": -0.0002900736442710795,
+          "z": -0.00005609933874827015
+        },
+        "angle": {
+          "x": -0.000009241961089679373,
+          "y": 0.00001530752358985549,
+          "z": 0.000001170011114161468
+        }
+      },
+      {
+        "id": "n59",
+        "parent": "11",
+        "degrees_of_freedom": [
+          354,
+          355,
+          356,
+          357,
+          358,
+          359
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 2.020305089104421,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000005041469979935639,
+          "y": -0.00038319976799769834,
+          "z": -0.00006193318415909225
+        },
+        "angle": {
+          "x": 0.0000025995059324380717,
+          "y": -0.000013180565279607756,
+          "z": 0.00003726002193699799
+        }
+      },
+      {
+        "id": "n60",
+        "parent": "11",
+        "degrees_of_freedom": [
+          360,
+          361,
+          362,
+          363,
+          364,
+          365
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 5,
+          "y": -5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n61",
+        "parent": "11",
+        "degrees_of_freedom": [
+          366,
+          367,
+          368,
+          369,
+          370,
+          371
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -5,
+          "y": -5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n62",
+        "parent": "11",
+        "degrees_of_freedom": [
+          372,
+          373,
+          374,
+          375,
+          376,
+          377
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 0,
+          "y": -5,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n63",
+        "parent": "11",
+        "degrees_of_freedom": [
+          378,
+          379,
+          380,
+          381,
+          382,
+          383
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": -5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n64",
+        "parent": "11",
+        "degrees_of_freedom": [
+          384,
+          385,
+          386,
+          387,
+          388,
+          389
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 2.0203050891044216,
+          "y": -5,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n65",
+        "parent": "11",
+        "degrees_of_freedom": [
+          390,
+          391,
+          392,
+          393,
+          394,
+          395
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 3.140184917367551e-16,
+          "y": -5,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n66",
+        "parent": "11",
+        "degrees_of_freedom": [
+          396,
+          397,
+          398,
+          399,
+          400,
+          401
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": -5,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n67",
+        "parent": "11",
+        "degrees_of_freedom": [
+          402,
+          403,
+          404,
+          405,
+          406,
+          407
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": -5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n68",
+        "parent": "11",
+        "degrees_of_freedom": [
+          408,
+          409,
+          410,
+          411,
+          412,
+          413
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -2.0203050891044216,
+          "y": -5,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n69",
+        "parent": "11",
+        "degrees_of_freedom": [
+          414,
+          415,
+          416,
+          417,
+          418,
+          419
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -3.140184917367551e-16,
+          "y": -5,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n70",
+        "parent": "11",
+        "degrees_of_freedom": [
+          420,
+          421,
+          422,
+          423,
+          424,
+          425
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": -5,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n71",
+        "parent": "11",
+        "degrees_of_freedom": [
+          426,
+          427,
+          428,
+          429,
+          430,
+          431
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000007375324998276995,
+          "y": -0.000573141582481275,
+          "z": -0.00004296401627897174
+        },
+        "angle": {
+          "x": -0.00000705638991157361,
+          "y": -0.00000916538026814789,
+          "z": 2.4343725210459205e-7
+        }
+      },
+      {
+        "id": "n72",
+        "parent": "11",
+        "degrees_of_freedom": [
+          432,
+          433,
+          434,
+          435,
+          436,
+          437
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 0,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00002489927090760473,
+          "y": -0.00028172266274326287,
+          "z": -0.0000016246699992069685
+        },
+        "angle": {
+          "x": -0.0000030016146933206397,
+          "y": -0.0000046079730786703585,
+          "z": 0.0000023598616772761394
+        }
+      },
+      {
+        "id": "n73",
+        "parent": "11",
+        "degrees_of_freedom": [
+          438,
+          439,
+          440,
+          441,
+          442,
+          443
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": -3.140184917367551e-16,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000020366641833108408,
+          "y": -0.00027896723551028025,
+          "z": 0.000017055236541480598
+        },
+        "angle": {
+          "x": -0.000004500050933481329,
+          "y": -0.00000986352912313192,
+          "z": 0.0000027314534219760496
+        }
+      },
+      {
+        "id": "n74",
+        "parent": "11",
+        "degrees_of_freedom": [
+          444,
+          445,
+          446,
+          447,
+          448,
+          449
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 2.020305089104421,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00001779583600626506,
+          "y": -0.0003680612123850235,
+          "z": -0.00001361996941448994
+        },
+        "angle": {
+          "x": -0.000046567227630877706,
+          "y": 6.127442555603198e-7,
+          "z": -0.000001963375093396032
+        }
+      },
+      {
+        "id": "n75",
+        "parent": "11",
+        "degrees_of_freedom": [
+          450,
+          451,
+          452,
+          453,
+          454,
+          455
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 2.857142857142857,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000004039593751578064,
+          "y": -0.00039008252923029884,
+          "z": -0.00002803152783506492
+        },
+        "angle": {
+          "x": -0.0000027463544767665162,
+          "y": -0.000004851801620024673,
+          "z": -0.0000010222748615596812
+        }
+      },
+      {
+        "id": "n76",
+        "parent": "11",
+        "degrees_of_freedom": [
+          456,
+          457,
+          458,
+          459,
+          460,
+          461
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 2.0203050891044216,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000019664943738746818,
+          "y": -0.0003734340622944034,
+          "z": -0.00003874320840709309
+        },
+        "angle": {
+          "x": 0.00003747895830033661,
+          "y": -1.591371026989181e-7,
+          "z": -3.540781811396128e-7
+        }
+      },
+      {
+        "id": "n77",
+        "parent": "11",
+        "degrees_of_freedom": [
+          462,
+          463,
+          464,
+          465,
+          466,
+          467
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 3.140184917367551e-16,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000004235015724623381,
+          "y": -0.0002897111915035743,
+          "z": -0.000052643783072390654
+        },
+        "angle": {
+          "x": -0.000004988866605763612,
+          "y": 0.000004217445080275738,
+          "z": 2.02367080829085e-7
+        }
+      },
+      {
+        "id": "n78",
+        "parent": "11",
+        "degrees_of_freedom": [
+          468,
+          469,
+          470,
+          471,
+          472,
+          473
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": -2.020305089104421,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 5.551018872082317e-7,
+          "y": -0.00019956719476979808,
+          "z": -0.000021913523108949578
+        },
+        "angle": {
+          "x": -0.000045885387431320904,
+          "y": -0.000021546190693133173,
+          "z": 0.00001030210254682283
+        }
+      },
+      {
+        "id": "n79",
+        "parent": "11",
+        "degrees_of_freedom": [
+          474,
+          475,
+          476,
+          477,
+          478,
+          479
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": -2.857142857142857,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00001966931656493607,
+          "y": -0.00017920539584494836,
+          "z": -0.000007870750127654386
+        },
+        "angle": {
+          "x": -0.0000016679403328745974,
+          "y": -7.942529048833456e-7,
+          "z": 0.00000395610479578794
+        }
+      },
+      {
+        "id": "n80",
+        "parent": "11",
+        "degrees_of_freedom": [
+          480,
+          481,
+          482,
+          483,
+          484,
+          485
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": -2.0203050891044216,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000064290927864266216,
+          "y": -0.00019693527835052497,
+          "z": 0.0000026707251169845917
+        },
+        "angle": {
+          "x": 0.000036669426973552195,
+          "y": 0.000027807666197273836,
+          "z": 0.00001505933381127126
+        }
+      },
+      {
+        "id": "n81",
+        "parent": "11",
+        "degrees_of_freedom": [
+          486,
+          487,
+          488,
+          489,
+          490,
+          491
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003081788888989356,
+          "y": -0.0006379493039198182,
+          "z": -0.00011605968007597794
+        },
+        "angle": {
+          "x": -0.00007249446676707465,
+          "y": -0.000009023354731803054,
+          "z": 0.000010455505550007162
+        }
+      },
+      {
+        "id": "n82",
+        "parent": "11",
+        "degrees_of_freedom": [
+          492,
+          493,
+          494,
+          495,
+          496,
+          497
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 5,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006509836150592759,
+          "y": -0.000591845454930122,
+          "z": -0.00007289612636194268
+        },
+        "angle": {
+          "x": 0.0000011931070231889818,
+          "y": -0.000011605842636477861,
+          "z": 0.000007080420951308833
+        }
+      },
+      {
+        "id": "n83",
+        "parent": "11",
+        "degrees_of_freedom": [
+          498,
+          499,
+          500,
+          501,
+          502,
+          503
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000021394892242763324,
+          "y": -0.00039533296019520246,
+          "z": -0.00006031822622980541
+        },
+        "angle": {
+          "x": -0.00002360161163186567,
+          "y": -0.000011099135309893124,
+          "z": 0.00003223644801260808
+        }
+      },
+      {
+        "id": "n84",
+        "parent": "11",
+        "degrees_of_freedom": [
+          504,
+          505,
+          506,
+          507,
+          508,
+          509
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.0203050891044216,
+          "y": 5,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000030150719682701913,
+          "y": -0.0005505099692663431,
+          "z": -0.00006439899175570777
+        },
+        "angle": {
+          "x": -0.00031882518591478775,
+          "y": -0.000009248861182786175,
+          "z": 0.0001418033956330618
+        }
+      },
+      {
+        "id": "n85",
+        "parent": "11",
+        "degrees_of_freedom": [
+          510,
+          511,
+          512,
+          513,
+          514,
+          515
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 3.140184917367551e-16,
+          "y": 5,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003988185159230939,
+          "y": -0.0006202712134964111,
+          "z": -0.00007743118804844365
+        },
+        "angle": {
+          "x": 0.00007906143591984706,
+          "y": -0.0000075264584083951804,
+          "z": 0.0000017165877396992252
+        }
+      },
+      {
+        "id": "n86",
+        "parent": "11",
+        "degrees_of_freedom": [
+          516,
+          517,
+          518,
+          519,
+          520,
+          521
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 5,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000355457967157774,
+          "y": -0.0005577091797665374,
+          "z": -0.00009361713726724856
+        },
+        "angle": {
+          "x": -0.00014042322303561546,
+          "y": -0.000011417305036236161,
+          "z": -0.00007647040341478193
+        }
+      },
+      {
+        "id": "n87",
+        "parent": "11",
+        "degrees_of_freedom": [
+          522,
+          523,
+          524,
+          525,
+          526,
+          527
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000026391196509793205,
+          "y": -0.0004166905161007573,
+          "z": -0.00010032798751887169
+        },
+        "angle": {
+          "x": -0.000027698414510611912,
+          "y": -0.000011053483882022318,
+          "z": -0.000029593576940968855
+        }
+      },
+      {
+        "id": "n88",
+        "parent": "11",
+        "degrees_of_freedom": [
+          528,
+          529,
+          530,
+          531,
+          532,
+          533
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.0203050891044216,
+          "y": 5,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000016243806113511287,
+          "y": -0.0006720970033829439,
+          "z": -0.00009660218921975527
+        },
+        "angle": {
+          "x": 0.00041330817446093114,
+          "y": -0.000007801777803902757,
+          "z": -0.00019214521889947763
+        }
+      },
+      {
+        "id": "n89",
+        "parent": "11",
+        "degrees_of_freedom": [
+          534,
+          535,
+          536,
+          537,
+          538,
+          539
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -3.140184917367551e-16,
+          "y": 5,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000009804736771862188,
+          "y": -0.0007768156281304869,
+          "z": -0.00008376553336394015
+        },
+        "angle": {
+          "x": -0.0001349283720701212,
+          "y": -0.000007630326920736775,
+          "z": 0.000004350304612054572
+        }
+      },
+      {
+        "id": "n90",
+        "parent": "11",
+        "degrees_of_freedom": [
+          540,
+          541,
+          542,
+          543,
+          544,
+          545
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 5,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00001630603593431225,
+          "y": -0.000655707768364756,
+          "z": -0.00006813531669686258
+        },
+        "angle": {
+          "x": 0.0005505862204945326,
+          "y": -0.000010741751480834353,
+          "z": 0.00024405185128420693
+        }
+      },
+      {
+        "id": "n91",
+        "parent": "11",
+        "degrees_of_freedom": [
+          546,
+          547,
+          548,
+          549,
+          550,
+          551
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 0,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011840285823009582,
+          "y": -0.00031217901897628955,
+          "z": -0.000006276692207072672
+        },
+        "angle": {
+          "x": -0.000026042298370291238,
+          "y": 0.0000080320448145119,
+          "z": 0.000006444046115307483
+        }
+      },
+      {
+        "id": "n92",
+        "parent": "11",
+        "degrees_of_freedom": [
+          552,
+          553,
+          554,
+          555,
+          556,
+          557
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 3.140184917367551e-16,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000015066856185806444,
+          "y": -0.00018070252006256054,
+          "z": -0.000022579555299625352
+        },
+        "angle": {
+          "x": 0.000002237555998772429,
+          "y": 0.000014748441240390444,
+          "z": -0.00000575295329636735
+        }
+      },
+      {
+        "id": "n93",
+        "parent": "11",
+        "degrees_of_freedom": [
+          558,
+          559,
+          560,
+          561,
+          562,
+          563
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 2.0203050891044216,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000012001943245731507,
+          "y": -0.0002271210528981834,
+          "z": -0.00001074840690673501
+        },
+        "angle": {
+          "x": 0.000018912610457458785,
+          "y": 0.00006831175067978516,
+          "z": 0.000011777800684910102
+        }
+      },
+      {
+        "id": "n94",
+        "parent": "11",
+        "degrees_of_freedom": [
+          564,
+          565,
+          566,
+          567,
+          568,
+          569
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 2.857142857142857,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008806981210168448,
+          "y": -0.0003503253954524802,
+          "z": 0.000001698733606181142
+        },
+        "angle": {
+          "x": 0.00008478639000817235,
+          "y": -0.000006847313273877123,
+          "z": -0.000016201680434265853
+        }
+      },
+      {
+        "id": "n95",
+        "parent": "11",
+        "degrees_of_freedom": [
+          570,
+          571,
+          572,
+          573,
+          574,
+          575
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 2.020305089104421,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000021024386833581884,
+          "y": -0.0004435140236321222,
+          "z": 3.10117731435676e-7
+        },
+        "angle": {
+          "x": -0.00003418812027032673,
+          "y": 0.00018275835659608427,
+          "z": -0.00008464417400955741
+        }
+      },
+      {
+        "id": "n96",
+        "parent": "11",
+        "degrees_of_freedom": [
+          576,
+          577,
+          578,
+          579,
+          580,
+          581
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": -3.140184917367551e-16,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007065238606035828,
+          "y": -0.00039702612063630664,
+          "z": 0.00001831056420777892
+        },
+        "angle": {
+          "x": 0.000002772585303751741,
+          "y": -0.000034203358436365134,
+          "z": -0.000009343419911166395
+        }
+      },
+      {
+        "id": "n97",
+        "parent": "11",
+        "degrees_of_freedom": [
+          582,
+          583,
+          584,
+          585,
+          586,
+          587
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": -2.0203050891044216,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006303503308460195,
+          "y": -0.00035444116849620217,
+          "z": -0.0000025130338870500217
+        },
+        "angle": {
+          "x": 0.00002524089583248651,
+          "y": -0.00006700864490520898,
+          "z": -0.000019535014386424196
+        }
+      },
+      {
+        "id": "n98",
+        "parent": "11",
+        "degrees_of_freedom": [
+          588,
+          589,
+          590,
+          591,
+          592,
+          593
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": -2.857142857142857,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003392677675814612,
+          "y": -0.00023424703386983875,
+          "z": -0.000020044966049625098
+        },
+        "angle": {
+          "x": 0.00008754823968337898,
+          "y": -0.000012607620797145316,
+          "z": 0.000001105390369329748
+        }
+      },
+      {
+        "id": "n99",
+        "parent": "11",
+        "degrees_of_freedom": [
+          594,
+          595,
+          596,
+          597,
+          598,
+          599
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": -2.020305089104421,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000017451560316552338,
+          "y": -0.00013462790522631742,
+          "z": -0.000016080234682067963
+        },
+        "angle": {
+          "x": -0.000019764918131888248,
+          "y": 0.00007178671024965781,
+          "z": -0.000027325769651137974
+        }
+      },
+      {
+        "id": "n100",
+        "parent": "11",
+        "degrees_of_freedom": [
+          600,
+          601,
+          602,
+          603,
+          604,
+          605
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 2.857142857142857,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006535329694838822,
+          "y": -0.0004214766719464039,
+          "z": -0.00008196226153544998
+        },
+        "angle": {
+          "x": -0.00003524461305820361,
+          "y": -0.000005025988441448716,
+          "z": 0.00000407771725905519
+        }
+      },
+      {
+        "id": "n101",
+        "parent": "11",
+        "degrees_of_freedom": [
+          606,
+          607,
+          608,
+          609,
+          610,
+          611
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 2.020305089104421,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008967946945306084,
+          "y": -0.000391615334311715,
+          "z": -0.00006210708538158564
+        },
+        "angle": {
+          "x": -0.000009670631911722348,
+          "y": 0.000006332107987116597,
+          "z": -0.00003718885791317282
+        }
+      },
+      {
+        "id": "n102",
+        "parent": "11",
+        "degrees_of_freedom": [
+          612,
+          613,
+          614,
+          615,
+          616,
+          617
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 0,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00010204267155807687,
+          "y": -0.0003064396121297275,
+          "z": -0.000033700395924445145
+        },
+        "angle": {
+          "x": -0.000014606136531519101,
+          "y": 8.160378567214704e-7,
+          "z": 0.000007196610282151992
+        }
+      },
+      {
+        "id": "n103",
+        "parent": "11",
+        "degrees_of_freedom": [
+          618,
+          619,
+          620,
+          621,
+          622,
+          623
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": -2.020305089104421,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006303550198460156,
+          "y": -0.00021211679225459376,
+          "z": -0.0000066594852518904005
+        },
+        "angle": {
+          "x": -0.000019357436016106278,
+          "y": 0.000018685972262055023,
+          "z": 0.00004697486093773955
+        }
+      },
+      {
+        "id": "n104",
+        "parent": "11",
+        "degrees_of_freedom": [
+          624,
+          625,
+          626,
+          627,
+          628,
+          629
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": -2.857142857142857,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003199341902909071,
+          "y": -0.00016859166401910595,
+          "z": -0.000027450586659073605
+        },
+        "angle": {
+          "x": 0.000022598005254243407,
+          "y": 7.422733448211816e-7,
+          "z": 0.000001592796026696583
+        }
+      },
+      {
+        "id": "n105",
+        "parent": "11",
+        "degrees_of_freedom": [
+          630,
+          631,
+          632,
+          633,
+          634,
+          635
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": -2.020305089104421,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000012443773505828278,
+          "y": -0.0001982645217898509,
+          "z": -0.000010419945791719038
+        },
+        "angle": {
+          "x": -0.000015486922360732853,
+          "y": -0.000014467848030957637,
+          "z": -0.000029755288271971993
+        }
+      },
+      {
+        "id": "n106",
+        "parent": "11",
+        "degrees_of_freedom": [
+          636,
+          637,
+          638,
+          639,
+          640,
+          641
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 0,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00000727010226352444,
+          "y": -0.00028349121688721416,
+          "z": -0.000029747902318614763
+        },
+        "angle": {
+          "x": -0.000008057278656257917,
+          "y": 0.000003732188199104277,
+          "z": 0.000006582829939129917
+        }
+      },
+      {
+        "id": "n107",
+        "parent": "11",
+        "degrees_of_freedom": [
+          642,
+          643,
+          644,
+          645,
+          646,
+          647
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 2.020305089104421,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000037528407524945915,
+          "y": -0.0003779335262624648,
+          "z": -0.000042829379859133304
+        },
+        "angle": {
+          "x": 0.000001701646668391322,
+          "y": -0.00001956463514302516,
+          "z": 0.00004005598788043108
+        }
+      },
+      {
+        "id": "n108",
+        "parent": "11",
+        "degrees_of_freedom": [
+          648,
+          649,
+          650,
+          651,
+          652,
+          653
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 5,
+          "y": -5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n109",
+        "parent": "11",
+        "degrees_of_freedom": [
+          654,
+          655,
+          656,
+          657,
+          658,
+          659
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -5,
+          "y": -5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n110",
+        "parent": "11",
+        "degrees_of_freedom": [
+          660,
+          661,
+          662,
+          663,
+          664,
+          665
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 0,
+          "y": -5,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n111",
+        "parent": "11",
+        "degrees_of_freedom": [
+          666,
+          667,
+          668,
+          669,
+          670,
+          671
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": -5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n112",
+        "parent": "11",
+        "degrees_of_freedom": [
+          672,
+          673,
+          674,
+          675,
+          676,
+          677
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 2.0203050891044216,
+          "y": -5,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n113",
+        "parent": "11",
+        "degrees_of_freedom": [
+          678,
+          679,
+          680,
+          681,
+          682,
+          683
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 3.140184917367551e-16,
+          "y": -5,
+          "z": 17.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n114",
+        "parent": "11",
+        "degrees_of_freedom": [
+          684,
+          685,
+          686,
+          687,
+          688,
+          689
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": -5,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n115",
+        "parent": "11",
+        "degrees_of_freedom": [
+          690,
+          691,
+          692,
+          693,
+          694,
+          695
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": -5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n116",
+        "parent": "11",
+        "degrees_of_freedom": [
+          696,
+          697,
+          698,
+          699,
+          700,
+          701
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -2.0203050891044216,
+          "y": -5,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n117",
+        "parent": "11",
+        "degrees_of_freedom": [
+          702,
+          703,
+          704,
+          705,
+          706,
+          707
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -3.140184917367551e-16,
+          "y": -5,
+          "z": 22.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n118",
+        "parent": "11",
+        "degrees_of_freedom": [
+          708,
+          709,
+          710,
+          711,
+          712,
+          713
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": -5,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n119",
+        "parent": "11",
+        "degrees_of_freedom": [
+          714,
+          715,
+          716,
+          717,
+          718,
+          719
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006702513183061129,
+          "y": -0.0005706174393340137,
+          "z": -0.000009633214338184643
+        },
+        "angle": {
+          "x": -0.00000822004092185738,
+          "y": -0.000009734287205036067,
+          "z": -0.000010836304552929936
+        }
+      },
+      {
+        "id": "n120",
+        "parent": "11",
+        "degrees_of_freedom": [
+          720,
+          721,
+          722,
+          723,
+          724,
+          725
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 0,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000011021962165948259,
+          "y": -0.0002726679171671268,
+          "z": 0.00007024922891841937
+        },
+        "angle": {
+          "x": -0.0000026846944467198106,
+          "y": 0.000013447988695381521,
+          "z": 0.000010486215521732277
+        }
+      },
+      {
+        "id": "n121",
+        "parent": "11",
+        "degrees_of_freedom": [
+          726,
+          727,
+          728,
+          729,
+          730,
+          731
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": -3.140184917367551e-16,
+          "z": 22.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000044353384347287877,
+          "y": -0.000279211738729372,
+          "z": 0.00007087091165309198
+        },
+        "angle": {
+          "x": -3.7630800479776355e-7,
+          "y": -0.0000016181245750265074,
+          "z": 0.000017417524803855967
+        }
+      },
+      {
+        "id": "n122",
+        "parent": "11",
+        "degrees_of_freedom": [
+          732,
+          733,
+          734,
+          735,
+          736,
+          737
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 2.020305089104421,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008281357893075004,
+          "y": -0.00036562483883706756,
+          "z": 0.00003686392422667909
+        },
+        "angle": {
+          "x": -0.000053693638113099025,
+          "y": -0.00008769575265428927,
+          "z": 0.00004606110543601688
+        }
+      },
+      {
+        "id": "n123",
+        "parent": "11",
+        "degrees_of_freedom": [
+          738,
+          739,
+          740,
+          741,
+          742,
+          743
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 2.857142857142857,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00016203099281913568,
+          "y": -0.0003858362430107432,
+          "z": 0.000016511669045420663
+        },
+        "angle": {
+          "x": -0.0000034922452444451438,
+          "y": -0.00000510917733809268,
+          "z": 0.000015072939235679414
+        }
+      },
+      {
+        "id": "n124",
+        "parent": "11",
+        "degrees_of_freedom": [
+          744,
+          745,
+          746,
+          747,
+          748,
+          749
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 2.0203050891044216,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006898612552207457,
+          "y": -0.00037188036905817925,
+          "z": 0.000002009873432845077
+        },
+        "angle": {
+          "x": 0.00003876052144022896,
+          "y": 0.00008851909442985021,
+          "z": 0.000046386143097717736
+        }
+      },
+      {
+        "id": "n125",
+        "parent": "11",
+        "degrees_of_freedom": [
+          750,
+          751,
+          752,
+          753,
+          754,
+          755
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 3.140184917367551e-16,
+          "z": 17.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000036092806337890364,
+          "y": -0.00028468648421008395,
+          "z": -0.00001652817686245499
+        },
+        "angle": {
+          "x": -7.084762165130503e-7,
+          "y": -0.0000012730740628067812,
+          "z": 0.000012850458550036994
+        }
+      },
+      {
+        "id": "n126",
+        "parent": "11",
+        "degrees_of_freedom": [
+          756,
+          757,
+          758,
+          759,
+          760,
+          761
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": -2.020305089104421,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000005330199334883964,
+          "y": -0.00019724117922990478,
+          "z": 0.000003822653024916471
+        },
+        "angle": {
+          "x": -0.000038750452176690514,
+          "y": -0.00009949427756873593,
+          "z": 0.000049366257515025486
+        }
+      },
+      {
+        "id": "n127",
+        "parent": "11",
+        "degrees_of_freedom": [
+          762,
+          763,
+          764,
+          765,
+          766,
+          767
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": -2.857142857142857,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008257069324907321,
+          "y": -0.00017947605757484862,
+          "z": 0.000019173420880876613
+        },
+        "angle": {
+          "x": -3.886434418749532e-7,
+          "y": 0.000002217981331666793,
+          "z": 0.000015194938372656206
+        }
+      },
+      {
+        "id": "n128",
+        "parent": "11",
+        "degrees_of_freedom": [
+          768,
+          769,
+          770,
+          771,
+          772,
+          773
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": -2.0203050891044216,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000031849672182105786,
+          "y": -0.00019405951335008898,
+          "z": 0.00003881205994761082
+        },
+        "angle": {
+          "x": 0.000051644077342830764,
+          "y": 0.00014237507546543832,
+          "z": 0.0000665373589077162
+        }
+      },
+      {
+        "id": "n129",
+        "parent": "11",
+        "degrees_of_freedom": [
+          774,
+          775,
+          776,
+          777,
+          778,
+          779
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007696516361833152,
+          "y": -0.0006466458114966589,
+          "z": -0.00010775579358602998
+        },
+        "angle": {
+          "x": -0.00007320049459052329,
+          "y": -0.000009047020747049384,
+          "z": -0.000019328426855047164
+        }
+      },
+      {
+        "id": "n130",
+        "parent": "11",
+        "degrees_of_freedom": [
+          780,
+          781,
+          782,
+          783,
+          784,
+          785
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 5,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00009942848732337863,
+          "y": -0.0005876003057475682,
+          "z": -0.0000652729470770121
+        },
+        "angle": {
+          "x": 0.000014344013928015405,
+          "y": -0.000013169557004050799,
+          "z": 0.00005286634703792717
+        }
+      },
+      {
+        "id": "n131",
+        "parent": "11",
+        "degrees_of_freedom": [
+          786,
+          787,
+          788,
+          789,
+          790,
+          791
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000744335013797331,
+          "y": -0.00005097190314231731,
+          "z": -0.00004028031285354666
+        },
+        "angle": {
+          "x": -0.00003320453011052071,
+          "y": -0.000008997387306952962,
+          "z": 0.00007340657260623582
+        }
+      },
+      {
+        "id": "n132",
+        "parent": "11",
+        "degrees_of_freedom": [
+          792,
+          793,
+          794,
+          795,
+          796,
+          797
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.0203050891044216,
+          "y": 5,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008541828520915099,
+          "y": -0.00046241357599116503,
+          "z": -0.000043318138345711326
+        },
+        "angle": {
+          "x": -0.0009696894023117611,
+          "y": -0.00001293139913915111,
+          "z": 0.00042042336587543245
+        }
+      },
+      {
+        "id": "n133",
+        "parent": "11",
+        "degrees_of_freedom": [
+          798,
+          799,
+          800,
+          801,
+          802,
+          803
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 3.140184917367551e-16,
+          "y": 5,
+          "z": 22.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00009331248028173482,
+          "y": -0.0006473717474233481,
+          "z": -0.00006428789413198967
+        },
+        "angle": {
+          "x": 0.000053825721645740574,
+          "y": -0.00001106955038920032,
+          "z": 0.0000593902618932547
+        }
+      },
+      {
+        "id": "n134",
+        "parent": "11",
+        "degrees_of_freedom": [
+          804,
+          805,
+          806,
+          807,
+          808,
+          809
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 5,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000839882704814041,
+          "y": -0.0007422430176748616,
+          "z": -0.00008325721696693535
+        },
+        "angle": {
+          "x": 0.00023858443782433206,
+          "y": -0.00001113656009913509,
+          "z": 0.00012387808870259115
+        }
+      },
+      {
+        "id": "n135",
+        "parent": "11",
+        "degrees_of_freedom": [
+          810,
+          811,
+          812,
+          813,
+          814,
+          815
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007653992204117915,
+          "y": -0.000993662919848009,
+          "z": -0.00008901757412169468
+        },
+        "angle": {
+          "x": -0.000029791257587852086,
+          "y": -0.000008686901183573113,
+          "z": 0.00004324527240201904
+        }
+      },
+      {
+        "id": "n136",
+        "parent": "11",
+        "degrees_of_freedom": [
+          816,
+          817,
+          818,
+          819,
+          820,
+          821
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.0203050891044216,
+          "y": 5,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006694036914808906,
+          "y": -0.0008341458490702607,
+          "z": -0.00008570161400852802
+        },
+        "angle": {
+          "x": -0.0005783275293990174,
+          "y": -0.000008672036375912801,
+          "z": 0.00023063010932513272
+        }
+      },
+      {
+        "id": "n137",
+        "parent": "11",
+        "degrees_of_freedom": [
+          822,
+          823,
+          824,
+          825,
+          826,
+          827
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -3.140184917367551e-16,
+          "y": 5,
+          "z": 17.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000620757930382223,
+          "y": -0.000770194047162599,
+          "z": -0.00006880038328405504
+        },
+        "angle": {
+          "x": -0.00009064425996919604,
+          "y": -0.000010212272248428501,
+          "z": 0.00005949559844561485
+        }
+      },
+      {
+        "id": "n138",
+        "parent": "11",
+        "degrees_of_freedom": [
+          828,
+          829,
+          830,
+          831,
+          832,
+          833
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 5,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007255751204543293,
+          "y": -0.0005545331048312783,
+          "z": -0.00004932636687427182
+        },
+        "angle": {
+          "x": 0.0007643494497956536,
+          "y": -0.000012550158747716141,
+          "z": 0.0003604940273453603
+        }
+      },
+      {
+        "id": "n139",
+        "parent": "11",
+        "degrees_of_freedom": [
+          834,
+          835,
+          836,
+          837,
+          838,
+          839
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 0,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00001741903688782226,
+          "y": -0.00027444523597865833,
+          "z": -0.000018514930365220126
+        },
+        "angle": {
+          "x": -0.00005349284838845846,
+          "y": 0.000040727151023610885,
+          "z": 0.000014851642328620108
+        }
+      },
+      {
+        "id": "n140",
+        "parent": "11",
+        "degrees_of_freedom": [
+          840,
+          841,
+          842,
+          843,
+          844,
+          845
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 3.140184917367551e-16,
+          "z": 17.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00009165984146326095,
+          "y": -0.00019085921125943552,
+          "z": -0.00002173144020585263
+        },
+        "angle": {
+          "x": 0.00000116198558053419,
+          "y": 0.000028388776783268926,
+          "z": 0.00002868703962170272
+        }
+      },
+      {
+        "id": "n141",
+        "parent": "11",
+        "degrees_of_freedom": [
+          846,
+          847,
+          848,
+          849,
+          850,
+          851
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 2.0203050891044216,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00013580327759394768,
+          "y": -0.00023960272478872974,
+          "z": -0.000011842258504880727
+        },
+        "angle": {
+          "x": 0.000018508656477224188,
+          "y": 0.00014366644313263655,
+          "z": 0.00006944370672766575
+        }
+      },
+      {
+        "id": "n142",
+        "parent": "11",
+        "degrees_of_freedom": [
+          852,
+          853,
+          854,
+          855,
+          856,
+          857
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 2.857142857142857,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00024237375271770456,
+          "y": -0.0003568615098271488,
+          "z": 0.0000016624715265600802
+        },
+        "angle": {
+          "x": 0.00008170929135843484,
+          "y": -0.000010767198846848604,
+          "z": 0.000014842982611238496
+        }
+      },
+      {
+        "id": "n143",
+        "parent": "11",
+        "degrees_of_freedom": [
+          858,
+          859,
+          860,
+          861,
+          862,
+          863
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 2.020305089104421,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00017931004585913766,
+          "y": -0.000448170648881321,
+          "z": 0.000001889935705378381
+        },
+        "angle": {
+          "x": -0.00003339594788260427,
+          "y": -0.00031158059118968287,
+          "z": 0.00012119638809497748
+        }
+      },
+      {
+        "id": "n144",
+        "parent": "11",
+        "degrees_of_freedom": [
+          864,
+          865,
+          866,
+          867,
+          868,
+          869
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": -3.140184917367551e-16,
+          "z": 22.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001531883233335792,
+          "y": -0.00039854506404954235,
+          "z": 0.000018601778530904024
+        },
+        "angle": {
+          "x": 0.0000022590441037847467,
+          "y": -0.00004992443087082302,
+          "z": 0.000028687089732808418
+        }
+      },
+      {
+        "id": "n145",
+        "parent": "11",
+        "degrees_of_freedom": [
+          870,
+          871,
+          872,
+          873,
+          874,
+          875
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": -2.0203050891044216,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004350926446656808,
+          "y": -0.0003547518955510994,
+          "z": 0.000001907835510454472
+        },
+        "angle": {
+          "x": 0.000021271173327496222,
+          "y": 0.00045436571653895055,
+          "z": 0.00020698049777731327
+        }
+      },
+      {
+        "id": "n146",
+        "parent": "11",
+        "degrees_of_freedom": [
+          876,
+          877,
+          878,
+          879,
+          880,
+          881
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": -2.857142857142857,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00022127790899027062,
+          "y": -0.00023975776495772802,
+          "z": -0.000015342881932064067
+        },
+        "angle": {
+          "x": 0.00008474951677232433,
+          "y": -0.000010766986131527998,
+          "z": 0.00004253090974435229
+        }
+      },
+      {
+        "id": "n147",
+        "parent": "11",
+        "degrees_of_freedom": [
+          882,
+          883,
+          884,
+          885,
+          886,
+          887
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": -2.020305089104421,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -2.768262298422973e-9,
+          "y": -0.00014107788379941433,
+          "z": -0.000013547999113448906
+        },
+        "angle": {
+          "x": -0.000021168555779291412,
+          "y": -0.00034905114729539736,
+          "z": 0.000162132098255742
+        }
+      },
+      {
+        "id": "n148",
+        "parent": "11",
+        "degrees_of_freedom": [
+          888,
+          889,
+          890,
+          891,
+          892,
+          893
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 2.857142857142857,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000009764487411832658,
+          "y": -0.0003419949566769024,
+          "z": -0.00033068628806875837
+        },
+        "angle": {
+          "x": -0.00019838285327237904,
+          "y": -0.000041214790078130736,
+          "z": -0.00003828926120948758
+        }
+      },
+      {
+        "id": "n149",
+        "parent": "11",
+        "degrees_of_freedom": [
+          894,
+          895,
+          896,
+          897,
+          898,
+          899
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 2.020305089104421,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000008335983216849323,
+          "y": -0.0002612082425931557,
+          "z": -0.00024793830701441645
+        },
+        "angle": {
+          "x": -0.00013660001884894426,
+          "y": -0.000015623255457172844,
+          "z": -0.0000248228747728961
+        }
+      },
+      {
+        "id": "n150",
+        "parent": "11",
+        "degrees_of_freedom": [
+          900,
+          901,
+          902,
+          903,
+          904,
+          905
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 0,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000027101220405463114,
+          "y": -0.0002022747492464577,
+          "z": 0.00001496126852077982
+        },
+        "angle": {
+          "x": -0.00006136148106898553,
+          "y": 0.00016601858509923722,
+          "z": -0.000004939831802560162
+        }
+      },
+      {
+        "id": "n151",
+        "parent": "11",
+        "degrees_of_freedom": [
+          906,
+          907,
+          908,
+          909,
+          910,
+          911
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": -2.020305089104421,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000029420063423447263,
+          "y": -0.00015294682718319647,
+          "z": -4.663221153626612e-10
+        },
+        "angle": {
+          "x": 0.000019034031407209242,
+          "y": -0.000028073246626824015,
+          "z": 0.000012816005394250263
+        }
+      },
+      {
+        "id": "n152",
+        "parent": "11",
+        "degrees_of_freedom": [
+          912,
+          913,
+          914,
+          915,
+          916,
+          917
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": -2.857142857142857,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003528598127820864,
+          "y": -0.0001944571549345859,
+          "z": 0.000040787718842610146
+        },
+        "angle": {
+          "x": 0.000020414355349095335,
+          "y": -0.000028645038269001718,
+          "z": -0.00003885491232282986
+        }
+      },
+      {
+        "id": "n153",
+        "parent": "11",
+        "degrees_of_freedom": [
+          918,
+          919,
+          920,
+          921,
+          922,
+          923
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": -2.020305089104421,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000016929691741519144,
+          "y": -0.00027565596608350695,
+          "z": 0.00011574294779519685
+        },
+        "angle": {
+          "x": -0.0001985088607312658,
+          "y": -0.00011932599791507376,
+          "z": -0.000025642193143554528
+        }
+      },
+      {
+        "id": "n154",
+        "parent": "11",
+        "degrees_of_freedom": [
+          924,
+          925,
+          926,
+          927,
+          928,
+          929
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 0,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000007513976980635557,
+          "y": -0.00033117146558811803,
+          "z": -0.00018544917629950147
+        },
+        "angle": {
+          "x": -0.000048791843919978056,
+          "y": 0.00024212309079634856,
+          "z": -0.000006901145524915752
+        }
+      },
+      {
+        "id": "n155",
+        "parent": "11",
+        "degrees_of_freedom": [
+          930,
+          931,
+          932,
+          933,
+          934,
+          935
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 2.020305089104421,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000007678740500793252,
+          "y": -0.00037903609968292936,
+          "z": -0.00008140567265109407
+        },
+        "angle": {
+          "x": 0.0001238586032822136,
+          "y": -0.00017469139476960967,
+          "z": 0.000018039816692920713
+        }
+      },
+      {
+        "id": "n156",
+        "parent": "11",
+        "degrees_of_freedom": [
+          936,
+          937,
+          938,
+          939,
+          940,
+          941
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 5,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000051121675884731816,
+          "y": -0.0006919083544238802,
+          "z": -0.00007889713238020258
+        },
+        "angle": {
+          "x": 0.000040558538789284665,
+          "y": -0.000014339162307580825,
+          "z": -0.000007486268109228591
+        }
+      },
+      {
+        "id": "n157",
+        "parent": "11",
+        "degrees_of_freedom": [
+          942,
+          943,
+          944,
+          945,
+          946,
+          947
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.0203050891044216,
+          "y": 5,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006487544390179219,
+          "y": -0.0005624408428692444,
+          "z": -0.00008383433371015078
+        },
+        "angle": {
+          "x": -0.0001581892967803995,
+          "y": -0.0000037723865577151774,
+          "z": -0.00008024704629679002
+        }
+      },
+      {
+        "id": "n158",
+        "parent": "11",
+        "degrees_of_freedom": [
+          948,
+          949,
+          950,
+          951,
+          952,
+          953
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 3.140184917367551e-16,
+          "y": 5,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006774089824231198,
+          "y": -0.0005009464538720438,
+          "z": -0.00009278300875079902
+        },
+        "angle": {
+          "x": -0.00014112060524257866,
+          "y": -0.000006151550359274816,
+          "z": -0.0000767052291171552
+        }
+      },
+      {
+        "id": "n159",
+        "parent": "11",
+        "degrees_of_freedom": [
+          954,
+          955,
+          956,
+          957,
+          958,
+          959
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 5,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006178382963955866,
+          "y": -0.00020326184905991682,
+          "z": -0.00010537715995541304
+        },
+        "angle": {
+          "x": 0.0006006184145779906,
+          "y": -0.000008242697292830733,
+          "z": -0.0003364568175790642
+        }
+      },
+      {
+        "id": "n160",
+        "parent": "11",
+        "degrees_of_freedom": [
+          960,
+          961,
+          962,
+          963,
+          964,
+          965
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 5,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004735799913687454,
+          "y": 0.0004964197694061184,
+          "z": -0.00010920514390190476
+        },
+        "angle": {
+          "x": 0.00005076609181017551,
+          "y": -0.000011923766798739224,
+          "z": -0.00013956187048490092
+        }
+      },
+      {
+        "id": "n161",
+        "parent": "11",
+        "degrees_of_freedom": [
+          966,
+          967,
+          968,
+          969,
+          970,
+          971
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.0203050891044216,
+          "y": 5,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003427317172426441,
+          "y": -0.00039889124957812234,
+          "z": -0.00010528236605443722
+        },
+        "angle": {
+          "x": -0.0019606457877638416,
+          "y": -0.000006716845003126227,
+          "z": -0.000848210421810471
+        }
+      },
+      {
+        "id": "n162",
+        "parent": "11",
+        "degrees_of_freedom": [
+          972,
+          973,
+          974,
+          975,
+          976,
+          977
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -3.140184917367551e-16,
+          "y": 5,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00002722843250491163,
+          "y": -0.0007618735747873199,
+          "z": -0.00009434366122785691
+        },
+        "angle": {
+          "x": 0.00023244471415997887,
+          "y": -0.000006572438697322425,
+          "z": -0.00007034279531594938
+        }
+      },
+      {
+        "id": "n163",
+        "parent": "11",
+        "degrees_of_freedom": [
+          978,
+          979,
+          980,
+          981,
+          982,
+          983
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 5,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003077055634104715,
+          "y": -0.000735818503718196,
+          "z": -0.00008125114025531227
+        },
+        "angle": {
+          "x": -0.00033305794610492893,
+          "y": -0.000008236048354834045,
+          "z": 0.0001270999071255722
+        }
+      },
+      {
+        "id": "n164",
+        "parent": "11",
+        "degrees_of_freedom": [
+          984,
+          985,
+          986,
+          987,
+          988,
+          989
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 15,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00015277002034628367,
+          "y": -0.0009833120389322698,
+          "z": -0.00012319554814920887
+        },
+        "angle": {
+          "x": -0.0000010653832112632133,
+          "y": -0.00002202317010903255,
+          "z": 7.877488244614568e-7
+        }
+      },
+      {
+        "id": "n165",
+        "parent": "11",
+        "degrees_of_freedom": [
+          990,
+          991,
+          992,
+          993,
+          994,
+          995
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 10,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00018508411618107712,
+          "y": -0.0008119634855336806,
+          "z": -0.00014690185326631476
+        },
+        "angle": {
+          "x": -0.000012916888246513136,
+          "y": -0.000016771006760989144,
+          "z": -0.000003503604134562885
+        }
+      },
+      {
+        "id": "n166",
+        "parent": "11",
+        "degrees_of_freedom": [
+          996,
+          997,
+          998,
+          999,
+          1000,
+          1001
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 10,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004218177197175425,
+          "y": -0.0007793275111401966,
+          "z": -0.0000894451972687125
+        },
+        "angle": {
+          "x": -0.000006182141165935334,
+          "y": -0.000010687748841940042,
+          "z": 0.0000012021691461249947
+        }
+      },
+      {
+        "id": "n167",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1002,
+          1003,
+          1004,
+          1005,
+          1006,
+          1007
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 10,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00009173470278050001,
+          "y": -0.0007751017822106945,
+          "z": -0.00008174973234145958
+        },
+        "angle": {
+          "x": -0.000006525231578492068,
+          "y": 0.000018192487831025864,
+          "z": -0.000011592687110009152
+        }
+      },
+      {
+        "id": "n168",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1008,
+          1009,
+          1010,
+          1011,
+          1012,
+          1013
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 12.020305089104422,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00010522508113014569,
+          "y": -0.000841404580876879,
+          "z": -0.00010886256819666256
+        },
+        "angle": {
+          "x": -0.00003559475025309316,
+          "y": -0.000049494560603119316,
+          "z": 0.000010721766304879206
+        }
+      },
+      {
+        "id": "n169",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1014,
+          1015,
+          1016,
+          1017,
+          1018,
+          1019
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 12.857142857142858,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00015011028276790201,
+          "y": -0.0008568874288052733,
+          "z": -0.00012411397274225732
+        },
+        "angle": {
+          "x": -0.000004482752851049217,
+          "y": -0.000018071788681447326,
+          "z": -0.0000020044214287531047
+        }
+      },
+      {
+        "id": "n170",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1020,
+          1021,
+          1022,
+          1023,
+          1024,
+          1025
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 12.020305089104422,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00017208780633938743,
+          "y": -0.0008516663276082542,
+          "z": -0.00013629068506709454
+        },
+        "angle": {
+          "x": 0.000029496848133812056,
+          "y": 0.00001571875559670963,
+          "z": 0.000008325777204270284
+        }
+      },
+      {
+        "id": "n171",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1026,
+          1027,
+          1028,
+          1029,
+          1030,
+          1031
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 10,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001760894861865939,
+          "y": -0.0007951445646046104,
+          "z": -0.00014694405123261183
+        },
+        "angle": {
+          "x": -0.00000668528567699223,
+          "y": -0.00004771654987694326,
+          "z": -0.000015718540524507183
+        }
+      },
+      {
+        "id": "n172",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1032,
+          1033,
+          1034,
+          1035,
+          1036,
+          1037
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 7.979694910895579,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00010022909685864534,
+          "y": -0.0007281464493803745,
+          "z": -0.0001121023843627755
+        },
+        "angle": {
+          "x": -0.000044173559993387,
+          "y": 0.0001568161264171467,
+          "z": -0.00008641525830657209
+        }
+      },
+      {
+        "id": "n173",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1038,
+          1039,
+          1040,
+          1041,
+          1042,
+          1043
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 7.142857142857142,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007059796478853253,
+          "y": -0.0007103106908669005,
+          "z": -0.00009521660551352569
+        },
+        "angle": {
+          "x": -0.000005552318036796641,
+          "y": -0.000011452499578750777,
+          "z": -0.00002530683863919245
+        }
+      },
+      {
+        "id": "n174",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1044,
+          1045,
+          1046,
+          1047,
+          1048,
+          1049
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 7.979694910895578,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000047795965266435466,
+          "y": -0.0007176208297424682,
+          "z": -0.00008648001402868269
+        },
+        "angle": {
+          "x": 0.00002382778875789711,
+          "y": -0.00017427503011176111,
+          "z": -0.00008125679997867373
+        }
+      },
+      {
+        "id": "n175",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1050,
+          1051,
+          1052,
+          1053,
+          1054,
+          1055
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 15,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001419444788641652,
+          "y": -0.0011466994130137382,
+          "z": -0.0003445129744581141
+        },
+        "angle": {
+          "x": -0.00006809824796460998,
+          "y": -0.000032927564146573415,
+          "z": 0.000005293133474433082
+        }
+      },
+      {
+        "id": "n176",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1056,
+          1057,
+          1058,
+          1059,
+          1060,
+          1061
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 15,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00024031924486281114,
+          "y": -0.0010758662084483976,
+          "z": -0.0002209428256961662
+        },
+        "angle": {
+          "x": 0.00000516213260164006,
+          "y": -0.00004129091178827757,
+          "z": -0.000045570007334746755
+        }
+      },
+      {
+        "id": "n177",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1062,
+          1063,
+          1064,
+          1065,
+          1066,
+          1067
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 15,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000045914190405525095,
+          "y": -0.0010041706270868562,
+          "z": -0.00021200747406678548
+        },
+        "angle": {
+          "x": -0.000005024597227709808,
+          "y": -0.00003095088945876997,
+          "z": -0.000006121077827811904
+        }
+      },
+      {
+        "id": "n178",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1068,
+          1069,
+          1070,
+          1071,
+          1072,
+          1073
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 15,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001466033762918302,
+          "y": -0.0002798801875690024,
+          "z": -0.0001608511618444309
+        },
+        "angle": {
+          "x": -0.00008693701461904504,
+          "y": -0.000029575855613825786,
+          "z": 0.0001565243263485857
+        }
+      },
+      {
+        "id": "n179",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1074,
+          1075,
+          1076,
+          1077,
+          1078,
+          1079
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.0203050891044216,
+          "y": 15,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011499805747718721,
+          "y": -0.0010012196734893312,
+          "z": -0.00017177885444964706
+        },
+        "angle": {
+          "x": -0.0010916038475826037,
+          "y": -0.00002283652381352806,
+          "z": 0.0005130685493242187
+        }
+      },
+      {
+        "id": "n180",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1080,
+          1081,
+          1082,
+          1083,
+          1084,
+          1085
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 3.140184917367551e-16,
+          "y": 15,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00009447130562333688,
+          "y": -0.001304239659817759,
+          "z": -0.00021179629002371402
+        },
+        "angle": {
+          "x": 0.0003964748632762643,
+          "y": -0.000024665160359077395,
+          "z": -0.00001170603405427696
+        }
+      },
+      {
+        "id": "n181",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1086,
+          1087,
+          1088,
+          1089,
+          1090,
+          1091
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 15,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011355071882621645,
+          "y": -0.0009436889245763731,
+          "z": -0.00026185492926525064
+        },
+        "angle": {
+          "x": -0.0012707551302926243,
+          "y": -0.000033052200868472085,
+          "z": -0.0006025019964611226
+        }
+      },
+      {
+        "id": "n182",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1092,
+          1093,
+          1094,
+          1095,
+          1096,
+          1097
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 15,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00014715286038310748,
+          "y": -0.00006302486034695664,
+          "z": -0.0002792763810434986
+        },
+        "angle": {
+          "x": -0.00008144626554533334,
+          "y": -0.000032371998940220756,
+          "z": -0.0001833588003251661
+        }
+      },
+      {
+        "id": "n183",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1098,
+          1099,
+          1100,
+          1101,
+          1102,
+          1103
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.0203050891044216,
+          "y": 15,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001847180084788707,
+          "y": -0.0012778897533849026,
+          "z": -0.000268657067300431
+        },
+        "angle": {
+          "x": 0.0016353547171356934,
+          "y": -0.000028185664743849584,
+          "z": -0.0007916804257381937
+        }
+      },
+      {
+        "id": "n184",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1104,
+          1105,
+          1106,
+          1107,
+          1108,
+          1109
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -3.140184917367551e-16,
+          "y": 15,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00020321158093833757,
+          "y": -0.0017853344377837224,
+          "z": -0.00022169696597409928
+        },
+        "angle": {
+          "x": -0.0005648577020383917,
+          "y": -0.000025995012294424563,
+          "z": -0.00001512845111861496
+        }
+      },
+      {
+        "id": "n185",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1110,
+          1111,
+          1112,
+          1113,
+          1114,
+          1115
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 15,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00018063688814267287,
+          "y": -0.0013473899398589216,
+          "z": -0.00017431290071350571
+        },
+        "angle": {
+          "x": 0.0020320223577673536,
+          "y": -0.00002948904692307643,
+          "z": 0.0009043485654069587
+        }
+      },
+      {
+        "id": "n186",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1116,
+          1117,
+          1118,
+          1119,
+          1120,
+          1121
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 10,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00015301046324299667,
+          "y": -0.0009018883551920561,
+          "z": -0.00026092051037178497
+        },
+        "angle": {
+          "x": -0.000019142389079099692,
+          "y": -0.000013205337241278705,
+          "z": 0.00000804748396480804
+        }
+      },
+      {
+        "id": "n187",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1122,
+          1123,
+          1124,
+          1125,
+          1126,
+          1127
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 10,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000035460308784669915,
+          "y": -0.0008355028795932392,
+          "z": -0.00024451750001688367
+        },
+        "angle": {
+          "x": -0.000023795405905176903,
+          "y": -0.00001691722318097168,
+          "z": 0.000008401956135041743
+        }
+      },
+      {
+        "id": "n188",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1128,
+          1129,
+          1130,
+          1131,
+          1132,
+          1133
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 10,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000038031249824081095,
+          "y": -0.0008518433774455922,
+          "z": -0.00027281001580538636
+        },
+        "angle": {
+          "x": -0.0000028107687682290416,
+          "y": 0.000011001719686411642,
+          "z": -0.000006252690637490188
+        }
+      },
+      {
+        "id": "n189",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1134,
+          1135,
+          1136,
+          1137,
+          1138,
+          1139
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 12.020305089104422,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006203759624524705,
+          "y": -0.0008742751705334241,
+          "z": -0.00026479037343608836
+        },
+        "angle": {
+          "x": 0.000013492770658085315,
+          "y": -0.00021925727268092853,
+          "z": -0.00008766152449894947
+        }
+      },
+      {
+        "id": "n190",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1140,
+          1141,
+          1142,
+          1143,
+          1144,
+          1145
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 12.857142857142858,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001199940560493832,
+          "y": -0.0009395255979240607,
+          "z": -0.0002555228776615372
+        },
+        "angle": {
+          "x": 0.00004345598741089806,
+          "y": 0.000009010101211443921,
+          "z": -0.000006956830670243513
+        }
+      },
+      {
+        "id": "n191",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1146,
+          1147,
+          1148,
+          1149,
+          1150,
+          1151
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 12.020305089104422,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00009844389043556291,
+          "y": -0.0009865806273253578,
+          "z": -0.0002505717246284985
+        },
+        "angle": {
+          "x": -0.000029500052603721514,
+          "y": -0.000056156928968908446,
+          "z": 0.00001608319249074416
+        }
+      },
+      {
+        "id": "n192",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1152,
+          1153,
+          1154,
+          1155,
+          1156,
+          1157
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 10,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008951758454743685,
+          "y": -0.0009429101209896248,
+          "z": -0.00023187400229919254
+        },
+        "angle": {
+          "x": -0.000002490524760570881,
+          "y": 0.000007018339940476869,
+          "z": -0.000006252596148171074
+        }
+      },
+      {
+        "id": "n193",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1158,
+          1159,
+          1160,
+          1161,
+          1162,
+          1163
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 7.979694910895578,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006884481841408405,
+          "y": -0.0009120825324300207,
+          "z": -0.00023374701425454752
+        },
+        "angle": {
+          "x": 0.000007736185680849142,
+          "y": -0.00022529532587941046,
+          "z": -0.00008838795839321382
+        }
+      },
+      {
+        "id": "n194",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1164,
+          1165,
+          1166,
+          1167,
+          1168,
+          1169
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 7.142857142857142,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000018935829223406138,
+          "y": -0.0008579022265205547,
+          "z": -0.00024113931536732367
+        },
+        "angle": {
+          "x": 0.00003555977810311983,
+          "y": 0.000009010218804256186,
+          "z": -0.000005548498354549554
+        }
+      },
+      {
+        "id": "n195",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1170,
+          1171,
+          1172,
+          1173,
+          1174,
+          1175
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 7.979694910895579,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003243823132578119,
+          "y": -0.0008182942823734446,
+          "z": -0.0002487539187962415
+        },
+        "angle": {
+          "x": -0.000031899186370681265,
+          "y": 0.00004811400026232488,
+          "z": -0.000019373818834539872
+        }
+      },
+      {
+        "id": "n196",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1176,
+          1177,
+          1178,
+          1179,
+          1180,
+          1181
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 7.142857142857142,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00020496481127510078,
+          "y": -0.0007999036655899106,
+          "z": -0.0001890462026324824
+        },
+        "angle": {
+          "x": 0.00007508618246220369,
+          "y": -0.000028059123234135614,
+          "z": 0.000028144419280288823
+        }
+      },
+      {
+        "id": "n197",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1182,
+          1183,
+          1184,
+          1185,
+          1186,
+          1187
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 7.979694910895579,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00020421930656993183,
+          "y": -0.0007739444443062377,
+          "z": -0.00006952325448469474
+        },
+        "angle": {
+          "x": -0.00004389996548534999,
+          "y": -0.00007734478542749073,
+          "z": -0.00001316064195183534
+        }
+      },
+      {
+        "id": "n198",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1188,
+          1189,
+          1190,
+          1191,
+          1192,
+          1193
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 10,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00020064872455650542,
+          "y": -0.000799927497134728,
+          "z": -0.00009348955278349342
+        },
+        "angle": {
+          "x": -0.00003797604284592105,
+          "y": -0.0000630431606799413,
+          "z": 0.000009492042319654044
+        }
+      },
+      {
+        "id": "n199",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1194,
+          1195,
+          1196,
+          1197,
+          1198,
+          1199
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 12.020305089104422,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00016971357421919305,
+          "y": -0.0008372174753279655,
+          "z": -0.00022296962669895187
+        },
+        "angle": {
+          "x": -0.00007441402618770071,
+          "y": 0.000024925931072783003,
+          "z": 0.000024863328497890354
+        }
+      },
+      {
+        "id": "n200",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1200,
+          1201,
+          1202,
+          1203,
+          1204,
+          1205
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 12.857142857142858,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000151688365641567,
+          "y": -0.0009029016123241134,
+          "z": -0.00023488405078468848
+        },
+        "angle": {
+          "x": 0.000043582295541265794,
+          "y": -0.000023949701476349593,
+          "z": 0.000029425999555342464
+        }
+      },
+      {
+        "id": "n201",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1206,
+          1207,
+          1208,
+          1209,
+          1210,
+          1211
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 12.020305089104422,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00015456254248465658,
+          "y": -0.0009322957551398897,
+          "z": -0.00031974112329339786
+        },
+        "angle": {
+          "x": 0.000006504670991847221,
+          "y": -0.000039307827693676396,
+          "z": -0.000011087036874337353
+        }
+      },
+      {
+        "id": "n202",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1212,
+          1213,
+          1214,
+          1215,
+          1216,
+          1217
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 10,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001581772822590106,
+          "y": -0.000904510604328599,
+          "z": -0.0003657764873574937
+        },
+        "angle": {
+          "x": -0.00003386669664156507,
+          "y": -0.00013677232220899943,
+          "z": 0.000008118466598512946
+        }
+      },
+      {
+        "id": "n203",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1218,
+          1219,
+          1220,
+          1221,
+          1222,
+          1223
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 7.979694910895579,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00018633157730329062,
+          "y": -0.0008643689161035151,
+          "z": -0.00018289919214109355
+        },
+        "angle": {
+          "x": -0.00011078815510643483,
+          "y": 0.00004893261515766611,
+          "z": 0.00002536639004586411
+        }
+      },
+      {
+        "id": "n204",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1224,
+          1225,
+          1226,
+          1227,
+          1228,
+          1229
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 12.857142857142858,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000014807006160801762,
+          "y": -0.0008880522086724323,
+          "z": -0.00018643534138316117
+        },
+        "angle": {
+          "x": -0.0000017853410057151695,
+          "y": -0.00002041567530133571,
+          "z": 0.0000033346259094262847
+        }
+      },
+      {
+        "id": "n205",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1230,
+          1231,
+          1232,
+          1233,
+          1234,
+          1235
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 12.020305089104422,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000005482126957235547,
+          "y": -0.0008674291585547075,
+          "z": -0.00022518092715577347
+        },
+        "angle": {
+          "x": -0.00002291640135722812,
+          "y": -0.000027674209997571673,
+          "z": -0.000027789815531660565
+        }
+      },
+      {
+        "id": "n206",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1236,
+          1237,
+          1238,
+          1239,
+          1240,
+          1241
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 10,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000023876358486085018,
+          "y": -0.0008055129974760131,
+          "z": -0.0002000135840336856
+        },
+        "angle": {
+          "x": -0.000018485598126096564,
+          "y": -0.000013342103467460586,
+          "z": -9.19008440829147e-7
+        }
+      },
+      {
+        "id": "n207",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1242,
+          1243,
+          1244,
+          1245,
+          1246,
+          1247
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 7.979694910895579,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000006674374632684302,
+          "y": -0.0007421343763343346,
+          "z": -0.00015251583464496676
+        },
+        "angle": {
+          "x": -0.00001475872668725318,
+          "y": -0.000018704527313325464,
+          "z": 0.00003072249261584091
+        }
+      },
+      {
+        "id": "n208",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1248,
+          1249,
+          1250,
+          1251,
+          1252,
+          1253
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 7.142857142857142,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000014502182661979927,
+          "y": -0.0007109078024789292,
+          "z": -0.00010269541204239042
+        },
+        "angle": {
+          "x": -0.000026388789335027626,
+          "y": -0.00001365028312065717,
+          "z": 0.0000021870152841872506
+        }
+      },
+      {
+        "id": "n209",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1254,
+          1255,
+          1256,
+          1257,
+          1258,
+          1259
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 7.979694910895579,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003117579028154302,
+          "y": -0.00073258952304975,
+          "z": -0.00009704126590384848
+        },
+        "angle": {
+          "x": -0.00000975399999572473,
+          "y": -0.000006996836795514092,
+          "z": -0.000025008765799729922
+        }
+      },
+      {
+        "id": "n210",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1260,
+          1261,
+          1262,
+          1263,
+          1264,
+          1265
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 10,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000047251863194523244,
+          "y": -0.0007953059764731628,
+          "z": -0.00011124421823892683
+        },
+        "angle": {
+          "x": -0.00001188249948838701,
+          "y": -0.0000115043438381071,
+          "z": -0.0000017464435345073315
+        }
+      },
+      {
+        "id": "n211",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1266,
+          1267,
+          1268,
+          1269,
+          1270,
+          1271
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 12.020305089104422,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003563181821073794,
+          "y": -0.0008581945411126666,
+          "z": -0.00014470167880181156
+        },
+        "angle": {
+          "x": -0.00000994952670353186,
+          "y": -0.000015539716963602235,
+          "z": 0.000026437070617260792
+        }
+      },
+      {
+        "id": "n212",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1272,
+          1273,
+          1274,
+          1275,
+          1276,
+          1277
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.0203050891044216,
+          "y": 5,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000004530590115721449,
+          "y": -0.0006025511933760703,
+          "z": -0.00006374135000662715
+        },
+        "angle": {
+          "x": 0.0002288760233308259,
+          "y": -0.000008275579303031504,
+          "z": 0.00011469247954034976
+        }
+      },
+      {
+        "id": "n213",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1278,
+          1279,
+          1280,
+          1281,
+          1282,
+          1283
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 3.140184917367551e-16,
+          "y": 5,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000001259009658981066,
+          "y": -0.000681441547770218,
+          "z": -0.0000807875163535908
+        },
+        "angle": {
+          "x": -0.00009125316896839304,
+          "y": -0.000009817098691632043,
+          "z": 8.461016215340887e-7
+        }
+      },
+      {
+        "id": "n214",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1284,
+          1285,
+          1286,
+          1287,
+          1288,
+          1289
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 5,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000011010826559696763,
+          "y": -0.0006076035983229807,
+          "z": -0.00009719784554824542
+        },
+        "angle": {
+          "x": 0.0003628070214372336,
+          "y": -0.000008973664350800955,
+          "z": -0.00015902491148181205
+        }
+      },
+      {
+        "id": "n215",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1290,
+          1291,
+          1292,
+          1293,
+          1294,
+          1295
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.0203050891044216,
+          "y": 5,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004113380095321535,
+          "y": -0.0005057768490466571,
+          "z": -0.00009638408033686932
+        },
+        "angle": {
+          "x": -0.0003452114839611454,
+          "y": -0.000008798187161593648,
+          "z": -0.00013682975128882565
+        }
+      },
+      {
+        "id": "n216",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1296,
+          1297,
+          1298,
+          1299,
+          1300,
+          1301
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -3.140184917367551e-16,
+          "y": 5,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000047534033813734415,
+          "y": -0.00054484237640105,
+          "z": -0.00008025880965433578
+        },
+        "angle": {
+          "x": 0.00004451990795191278,
+          "y": -0.000009456663708337192,
+          "z": -0.0000016273384957762486
+        }
+      },
+      {
+        "id": "n217",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1302,
+          1303,
+          1304,
+          1305,
+          1306,
+          1307
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 5,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000040092358824717364,
+          "y": -0.0005093959627182904,
+          "z": -0.00006302267073303692
+        },
+        "angle": {
+          "x": -0.000011174983860761136,
+          "y": -0.000010181318996059652,
+          "z": 0.000020652282339988616
+        }
+      },
+      {
+        "id": "n218",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1308,
+          1309,
+          1310,
+          1311,
+          1312,
+          1313
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 15,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000004990526578916954,
+          "y": -0.0009670951666047487,
+          "z": -0.00010143809248810286
+        },
+        "angle": {
+          "x": -0.000007137398520451502,
+          "y": -0.000022521976181586347,
+          "z": 6.83721657344317e-7
+        }
+      },
+      {
+        "id": "n219",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1314,
+          1315,
+          1316,
+          1317,
+          1318,
+          1319
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 10,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006527213229389502,
+          "y": -0.0007743089491118271,
+          "z": -0.000053271308745416134
+        },
+        "angle": {
+          "x": -0.000006196601773887285,
+          "y": -0.000010143293328303725,
+          "z": 0.000003967654429756519
+        }
+      },
+      {
+        "id": "n220",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1320,
+          1321,
+          1322,
+          1323,
+          1324,
+          1325
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 10,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00005037239998039926,
+          "y": -0.000764671059303823,
+          "z": -0.000044469540351749664
+        },
+        "angle": {
+          "x": -0.00000599333572059113,
+          "y": -0.000020420690295873032,
+          "z": 0.0000024066952984271137
+        }
+      },
+      {
+        "id": "n221",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1326,
+          1327,
+          1328,
+          1329,
+          1330,
+          1331
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 12.020305089104422,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003791286936862296,
+          "y": -0.0008282311081158317,
+          "z": -0.00007166117592148267
+        },
+        "angle": {
+          "x": -0.00003564976543709922,
+          "y": -7.164744076069794e-7,
+          "z": -0.000005912451786442668
+        }
+      },
+      {
+        "id": "n222",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1332,
+          1333,
+          1334,
+          1335,
+          1336,
+          1337
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 12.857142857142858,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000024729724738633,
+          "y": -0.0008441164809794137,
+          "z": -0.00008446534689875416
+        },
+        "angle": {
+          "x": -0.0000039276104835730435,
+          "y": -0.000015252525615251263,
+          "z": -0.000002125821766428112
+        }
+      },
+      {
+        "id": "n223",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1338,
+          1339,
+          1340,
+          1341,
+          1342,
+          1343
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 12.020305089104422,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00001856370615567655,
+          "y": -0.0008360941800100533,
+          "z": -0.00009233444382670385
+        },
+        "angle": {
+          "x": 0.00002370217773799368,
+          "y": -0.000005235607176921414,
+          "z": 6.304815433765532e-8
+        }
+      },
+      {
+        "id": "n224",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1344,
+          1345,
+          1346,
+          1347,
+          1348,
+          1349
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 10,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000020959860662631628,
+          "y": -0.0007810284500667084,
+          "z": -0.00009858450220266253
+        },
+        "angle": {
+          "x": -0.0000057461545094227035,
+          "y": -0.000004545629493846802,
+          "z": -0.0000010456625232980882
+        }
+      },
+      {
+        "id": "n225",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1350,
+          1351,
+          1352,
+          1353,
+          1354,
+          1355
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 7.979694910895579,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000015748108709140945,
+          "y": -0.0007170424003296479,
+          "z": -0.00007161777716175345
+        },
+        "angle": {
+          "x": -0.000036163386836382614,
+          "y": -0.000034556429027132044,
+          "z": 0.000010917414208622184
+        }
+      },
+      {
+        "id": "n226",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1356,
+          1357,
+          1358,
+          1359,
+          1360,
+          1361
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 7.142857142857142,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000013471832454683623,
+          "y": -0.0007004052203416237,
+          "z": -0.00005900956064737879
+        },
+        "angle": {
+          "x": -0.0000038731191108269205,
+          "y": -0.000009713729489100021,
+          "z": 0.0000034868632842554827
+        }
+      },
+      {
+        "id": "n227",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1362,
+          1363,
+          1364,
+          1365,
+          1366,
+          1367
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 7.979694910895578,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00002865430665868375,
+          "y": -0.0007092079777058705,
+          "z": -0.00005110815169220141
+        },
+        "angle": {
+          "x": 0.00002485249546492523,
+          "y": 0.000032617502851801434,
+          "z": 0.000019805888431902476
+        }
+      },
+      {
+        "id": "n228",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1368,
+          1369,
+          1370,
+          1371,
+          1372,
+          1373
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 15,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000023716307595344704,
+          "y": -0.0011005171933601164,
+          "z": -0.00032417822810729336
+        },
+        "angle": {
+          "x": -0.00005228411415788001,
+          "y": -0.00003182687970081207,
+          "z": 0.000019031590639289892
+        }
+      },
+      {
+        "id": "n229",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1374,
+          1375,
+          1376,
+          1377,
+          1378,
+          1379
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 15,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00010147760018640083,
+          "y": -0.0010021443884690488,
+          "z": -0.00019494610971957076
+        },
+        "angle": {
+          "x": -0.0000013914616140826213,
+          "y": -0.000029498173607605923,
+          "z": 0.000004939316551007473
+        }
+      },
+      {
+        "id": "n230",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1380,
+          1381,
+          1382,
+          1383,
+          1384,
+          1385
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 15,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000017514957466525825,
+          "y": -0.0007219358573593768,
+          "z": -0.00014797174754056495
+        },
+        "angle": {
+          "x": -0.000017200556523835904,
+          "y": -0.000028079394968049335,
+          "z": 0.00004552123969056036
+        }
+      },
+      {
+        "id": "n231",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1386,
+          1387,
+          1388,
+          1389,
+          1390,
+          1391
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.0203050891044216,
+          "y": 15,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004580717454879011,
+          "y": -0.0009563322624734547,
+          "z": -0.0001579320034455391
+        },
+        "angle": {
+          "x": -0.00040141526326080255,
+          "y": -0.000024113133195923052,
+          "z": 0.00018405744886893066
+        }
+      },
+      {
+        "id": "n232",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1392,
+          1393,
+          1394,
+          1395,
+          1396,
+          1397
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 3.140184917367551e-16,
+          "y": 15,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006539011709473919,
+          "y": -0.0010570953686658954,
+          "z": -0.00019824872613359955
+        },
+        "angle": {
+          "x": 0.00010386260215058908,
+          "y": -0.000023653154450232672,
+          "z": 0.000006067866415526638
+        }
+      },
+      {
+        "id": "n233",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1398,
+          1399,
+          1400,
+          1401,
+          1402,
+          1403
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 15,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000046414400923074314,
+          "y": -0.0009840260625136453,
+          "z": -0.00024481702810328466
+        },
+        "angle": {
+          "x": -0.00021883530974913112,
+          "y": -0.00003053520716454498,
+          "z": -0.00010867631386190383
+        }
+      },
+      {
+        "id": "n234",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1404,
+          1405,
+          1406,
+          1407,
+          1408,
+          1409
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 15,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00002144397099301414,
+          "y": -0.0008113974409269897,
+          "z": -0.0002624308939243035
+        },
+        "angle": {
+          "x": -0.000020044740175002456,
+          "y": -0.000029059307800167753,
+          "z": -0.00003445093436242342
+        }
+      },
+      {
+        "id": "n235",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1410,
+          1411,
+          1412,
+          1413,
+          1414,
+          1415
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.0203050891044216,
+          "y": 15,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000013363226242669502,
+          "y": -0.0010731173088025215,
+          "z": -0.0002531290926128817
+        },
+        "angle": {
+          "x": 0.0005323676327515306,
+          "y": -0.000025460551432784587,
+          "z": -0.00023520324307195595
+        }
+      },
+      {
+        "id": "n236",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1416,
+          1417,
+          1418,
+          1419,
+          1420,
+          1421
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -3.140184917367551e-16,
+          "y": 15,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000029113417099760364,
+          "y": -0.0011813252907416786,
+          "z": -0.00020970664502103627
+        },
+        "angle": {
+          "x": -0.00014926592173662305,
+          "y": -0.00002438132385660891,
+          "z": 0.000007690156029387414
+        }
+      },
+      {
+        "id": "n237",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1422,
+          1423,
+          1424,
+          1425,
+          1426,
+          1427
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 15,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000006308393673739429,
+          "y": -0.0010397103580701067,
+          "z": -0.00016460975599634798
+        },
+        "angle": {
+          "x": 0.0005857470106689003,
+          "y": -0.000028700132135799802,
+          "z": 0.00026565712120293536
+        }
+      },
+      {
+        "id": "n238",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1428,
+          1429,
+          1430,
+          1431,
+          1432,
+          1433
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 10,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00014475190765339416,
+          "y": -0.0008486574595939773,
+          "z": -0.00022504148826584474
+        },
+        "angle": {
+          "x": -0.000020849142926843432,
+          "y": -0.00002189056088062709,
+          "z": 0.000012875226284594606
+        }
+      },
+      {
+        "id": "n239",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1434,
+          1435,
+          1436,
+          1437,
+          1438,
+          1439
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 10,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00015172087405145103,
+          "y": -0.0008062006545130681,
+          "z": -0.00025470242985919787
+        },
+        "angle": {
+          "x": -0.000006187061961585965,
+          "y": 0.00007039142987771097,
+          "z": 0.000010574814773870413
+        }
+      },
+      {
+        "id": "n240",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1440,
+          1441,
+          1442,
+          1443,
+          1444,
+          1445
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 12.020305089104422,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011718433723755061,
+          "y": -0.0008240081059174239,
+          "z": -0.00025098297613646226
+        },
+        "angle": {
+          "x": 0.000012828942454724498,
+          "y": -0.0002355260241174556,
+          "z": -0.00009842015111732801
+        }
+      },
+      {
+        "id": "n241",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1446,
+          1447,
+          1448,
+          1449,
+          1450,
+          1451
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 12.857142857142858,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000027429932786777853,
+          "y": -0.0009017488024941588,
+          "z": -0.00024213240330551848
+        },
+        "angle": {
+          "x": 0.000052469425997151124,
+          "y": 0.000025924954627252333,
+          "z": -0.000006820109692842317
+        }
+      },
+      {
+        "id": "n242",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1452,
+          1453,
+          1454,
+          1455,
+          1456,
+          1457
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 12.020305089104422,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000015619621457574787,
+          "y": -0.0009590441645500124,
+          "z": -0.00023961271422835137
+        },
+        "angle": {
+          "x": -0.000028857810313512746,
+          "y": -0.000007579113641742895,
+          "z": 0.000004188541818566324
+        }
+      },
+      {
+        "id": "n243",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1458,
+          1459,
+          1460,
+          1461,
+          1462,
+          1463
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 10,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00001336858219010035,
+          "y": -0.0009206835840562351,
+          "z": -0.00021616504521984904
+        },
+        "angle": {
+          "x": -0.000005567878187323917,
+          "y": -0.000021968367279331545,
+          "z": 0.000008439084175096343
+        }
+      },
+      {
+        "id": "n244",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1464,
+          1465,
+          1466,
+          1467,
+          1468,
+          1469
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 7.979694910895578,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000025650376884483484,
+          "y": -0.0008955710395160943,
+          "z": -0.00021551436834133203
+        },
+        "angle": {
+          "x": 0.000008389873564979673,
+          "y": -0.00010168141320501939,
+          "z": -0.000018906904608110456
+        }
+      },
+      {
+        "id": "n245",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1470,
+          1471,
+          1472,
+          1473,
+          1474,
+          1475
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 7.142857142857142,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00012622596926754661,
+          "y": -0.0008268154378149594,
+          "z": -0.00022247172029388413
+        },
+        "angle": {
+          "x": 0.00004573748173495719,
+          "y": 0.0000224984965003713,
+          "z": 0.00002583406749836846
+        }
+      },
+      {
+        "id": "n246",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1476,
+          1477,
+          1478,
+          1479,
+          1480,
+          1481
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 7.979694910895579,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006844491111596633,
+          "y": -0.0007764780208648954,
+          "z": -0.0002266574276704917
+        },
+        "angle": {
+          "x": -0.000030457749590031088,
+          "y": -0.00022337989077487991,
+          "z": 0.00011360194564946231
+        }
+      },
+      {
+        "id": "n247",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1482,
+          1483,
+          1484,
+          1485,
+          1486,
+          1487
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 12.857142857142858,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00010767857119663771,
+          "y": -0.0008880387891101822,
+          "z": -0.00016044148547702627
+        },
+        "angle": {
+          "x": -0.0000018745994744657722,
+          "y": -0.000021107251281084055,
+          "z": 0.000006906375427042528
+        }
+      },
+      {
+        "id": "n248",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1488,
+          1489,
+          1490,
+          1491,
+          1492,
+          1493
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 12.020305089104422,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001251841853351512,
+          "y": -0.00087535542709388,
+          "z": -0.000200701549858324
+        },
+        "angle": {
+          "x": -0.00003112783543078475,
+          "y": -0.000032015174523660644,
+          "z": -0.000023429580586236868
+        }
+      },
+      {
+        "id": "n249",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1494,
+          1495,
+          1496,
+          1497,
+          1498,
+          1499
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 10,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00013334218310322656,
+          "y": -0.0008179424268702367,
+          "z": -0.00016222945794280356
+        },
+        "angle": {
+          "x": -0.000019605032714272276,
+          "y": 6.200552270784802e-8,
+          "z": 0.000004477287935988258
+        }
+      },
+      {
+        "id": "n250",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1500,
+          1501,
+          1502,
+          1503,
+          1504,
+          1505
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 7.979694910895579,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00010574188558985514,
+          "y": -0.0007514275331280917,
+          "z": -0.00012386110590907392
+        },
+        "angle": {
+          "x": -0.000006642070287703867,
+          "y": -0.000026974785368665185,
+          "z": 0.000034941282364665066
+        }
+      },
+      {
+        "id": "n251",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1506,
+          1507,
+          1508,
+          1509,
+          1510,
+          1511
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 7.142857142857142,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008125634785270714,
+          "y": -0.0007113330126420269,
+          "z": -0.0000643578749065731
+        },
+        "angle": {
+          "x": -0.00003405051846976557,
+          "y": -0.000015211694090686662,
+          "z": 0.000006491901925131907
+        }
+      },
+      {
+        "id": "n252",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1512,
+          1513,
+          1514,
+          1515,
+          1516,
+          1517
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 7.979694910895579,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000679039182141855,
+          "y": -0.0007249712946785292,
+          "z": -0.00006184417442457
+        },
+        "angle": {
+          "x": -0.000001243572940017154,
+          "y": -0.000002032741610400697,
+          "z": -0.00002153172989530751
+        }
+      },
+      {
+        "id": "n253",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1518,
+          1519,
+          1520,
+          1521,
+          1522,
+          1523
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 10,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006159762378915152,
+          "y": -0.0007846423464835864,
+          "z": -0.00006374398936389535
+        },
+        "angle": {
+          "x": -0.000013930638902358584,
+          "y": -0.000030710948488543826,
+          "z": 0.0000035642092350346443
+        }
+      },
+      {
+        "id": "n254",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1524,
+          1525,
+          1526,
+          1527,
+          1528,
+          1529
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 12.020305089104422,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008308452171943998,
+          "y": -0.0008512057891749351,
+          "z": -0.00011704395767463874
+        },
+        "angle": {
+          "x": -0.000020858411436844327,
+          "y": -0.000012034727119176376,
+          "z": 0.00003013425725070939
+        }
+      },
+      {
+        "id": "n255",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1530,
+          1531,
+          1532,
+          1533,
+          1534,
+          1535
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.0203050891044216,
+          "y": 5,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00005946497964704949,
+          "y": -0.0005173348336243649,
+          "z": -0.00004293669592863265
+        },
+        "angle": {
+          "x": 0.00084043502525357,
+          "y": -0.000012259419828665797,
+          "z": 0.00037550825769533386
+        }
+      },
+      {
+        "id": "n256",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1536,
+          1537,
+          1538,
+          1539,
+          1540,
+          1541
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 3.140184917367551e-16,
+          "y": 5,
+          "z": 17.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00005528355181308995,
+          "y": -0.0006981692285789784,
+          "z": -0.00006579608300631705
+        },
+        "angle": {
+          "x": -0.0000576605193930933,
+          "y": -0.000012130678342985376,
+          "z": 0.000055029483192667055
+        }
+      },
+      {
+        "id": "n257",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1542,
+          1543,
+          1544,
+          1545,
+          1546,
+          1547
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 5,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006754682636010862,
+          "y": -0.0007824984975562466,
+          "z": -0.00008458556248659715
+        },
+        "angle": {
+          "x": 0.00002853396373004852,
+          "y": -0.000009696739081958569,
+          "z": 0.000027509059122461044
+        }
+      },
+      {
+        "id": "n258",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1548,
+          1549,
+          1550,
+          1551,
+          1552,
+          1553
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.0203050891044216,
+          "y": 5,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008763680398380692,
+          "y": -0.0006273002976558068,
+          "z": -0.00008537612777250521
+        },
+        "angle": {
+          "x": 0.0006342499555659405,
+          "y": -0.000009550937268391042,
+          "z": 0.0002939388242688471
+        }
+      },
+      {
+        "id": "n259",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1554,
+          1555,
+          1556,
+          1557,
+          1558,
+          1559
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -3.140184917367551e-16,
+          "y": 5,
+          "z": 22.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00009353787351823909,
+          "y": -0.00046101492364011696,
+          "z": -0.00006688626737848042
+        },
+        "angle": {
+          "x": -0.00003151272310505372,
+          "y": -0.000011032112865162856,
+          "z": 0.000059389964490985305
+        }
+      },
+      {
+        "id": "n260",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1560,
+          1561,
+          1562,
+          1563,
+          1564,
+          1565
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 5,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008342380998001752,
+          "y": -0.00034747168831664166,
+          "z": -0.000046572874741013247
+        },
+        "angle": {
+          "x": -0.00018957242658495109,
+          "y": -0.000012348439675208187,
+          "z": 0.00011443865254819033
+        }
+      },
+      {
+        "id": "n261",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1566,
+          1567,
+          1568,
+          1569,
+          1570,
+          1571
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 15,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00015160372979863742,
+          "y": -0.0009602701547733815,
+          "z": -0.00007850437811728768
+        },
+        "angle": {
+          "x": -0.000010942023080455103,
+          "y": -0.00002252082467391393,
+          "z": -0.000004759486461432886
+        }
+      },
+      {
+        "id": "n262",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1572,
+          1573,
+          1574,
+          1575,
+          1576,
+          1577
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 10,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00018057971900368707,
+          "y": -0.0007705107877580715,
+          "z": 0.000002026403106482233
+        },
+        "angle": {
+          "x": -0.000001638389415119687,
+          "y": -0.00001623921215961589,
+          "z": 0.000008988418194566339
+        }
+      },
+      {
+        "id": "n263",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1578,
+          1579,
+          1580,
+          1581,
+          1582,
+          1583
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 10,
+          "z": 22.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00016663961498914557,
+          "y": -0.0007571830756429751,
+          "z": 0.0000021111971649837835
+        },
+        "angle": {
+          "x": -0.000005858838851086607,
+          "y": -0.00003901776809990635,
+          "z": 0.000020921406546535455
+        }
+      },
+      {
+        "id": "n264",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1584,
+          1585,
+          1586,
+          1587,
+          1588,
+          1589
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 12.020305089104422,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00018223967673596656,
+          "y": -0.0008207072259614712,
+          "z": -0.00003029372695801222
+        },
+        "angle": {
+          "x": -0.00004166518682444725,
+          "y": -0.00006457982832098746,
+          "z": 0.000028351828610992934
+        }
+      },
+      {
+        "id": "n265",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1590,
+          1591,
+          1592,
+          1593,
+          1594,
+          1595
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 12.857142857142858,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0002076571178620447,
+          "y": -0.000836954854438402,
+          "z": -0.000047388385806209585
+        },
+        "angle": {
+          "x": -0.0000059812268549657215,
+          "y": -0.000015865140166215997,
+          "z": 0.00000952154196379043
+        }
+      },
+      {
+        "id": "n266",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1596,
+          1597,
+          1598,
+          1599,
+          1600,
+          1601
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 12.020305089104422,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001242568619174725,
+          "y": -0.0008323618975626248,
+          "z": -0.00005633217427527321
+        },
+        "angle": {
+          "x": 0.00002159799339788114,
+          "y": 0.0000496415944644902,
+          "z": 0.00003107463492082209
+        }
+      },
+      {
+        "id": "n267",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1602,
+          1603,
+          1604,
+          1605,
+          1606,
+          1607
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 10,
+          "z": 17.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000947828348814084,
+          "y": -0.0007777949418447888,
+          "z": -0.00006044863292751141
+        },
+        "angle": {
+          "x": -0.000006103303923726475,
+          "y": 0.000013867976835977435,
+          "z": 0.00001681983968795383
+        }
+      },
+      {
+        "id": "n268",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1608,
+          1609,
+          1610,
+          1611,
+          1612,
+          1613
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 7.979694910895579,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000042098285449233406,
+          "y": -0.0007134391245565568,
+          "z": -0.00003405334561527206
+        },
+        "angle": {
+          "x": -0.000035406282092424485,
+          "y": -0.00018833505490502018,
+          "z": 0.00008991634163220584
+        }
+      },
+      {
+        "id": "n269",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1614,
+          1615,
+          1616,
+          1617,
+          1618,
+          1619
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 7.142857142857142,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00009733702926936298,
+          "y": -0.0006966130528433565,
+          "z": -0.000019972735648721665
+        },
+        "angle": {
+          "x": -0.000004666133626358359,
+          "y": -0.000009284795908796834,
+          "z": 0.000028219498550379394
+        }
+      },
+      {
+        "id": "n270",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1620,
+          1621,
+          1622,
+          1623,
+          1624,
+          1625
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 7.979694910895578,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008573642879816988,
+          "y": -0.0007027838218570308,
+          "z": -0.000009144729640973172
+        },
+        "angle": {
+          "x": 0.000028905289556591383,
+          "y": 0.0001924367773451204,
+          "z": 0.00010114584998179919
+        }
+      },
+      {
+        "id": "n271",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1626,
+          1627,
+          1628,
+          1629,
+          1630,
+          1631
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 15,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001646717644099178,
+          "y": -0.0011131535943700707,
+          "z": -0.00029320598083382296
+        },
+        "angle": {
+          "x": -0.000050117911430253604,
+          "y": -0.00002389839252806143,
+          "z": 0.000010725678883790428
+        }
+      },
+      {
+        "id": "n272",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1632,
+          1633,
+          1634,
+          1635,
+          1636,
+          1637
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 15,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00024622712399454934,
+          "y": -0.001010245197545564,
+          "z": -0.00018953993887988884
+        },
+        "angle": {
+          "x": 0.00002311584915002437,
+          "y": -0.000037316873586200516,
+          "z": 0.00003102401333233097
+        }
+      },
+      {
+        "id": "n273",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1638,
+          1639,
+          1640,
+          1641,
+          1642,
+          1643
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 15,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00016119441939888826,
+          "y": -0.0006326256997437424,
+          "z": -0.0001315603642741264
+        },
+        "angle": {
+          "x": -0.00002597348976819875,
+          "y": -0.000026661256582010485,
+          "z": 0.00004828202839648521
+        }
+      },
+      {
+        "id": "n274",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1644,
+          1645,
+          1646,
+          1647,
+          1648,
+          1649
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.0203050891044216,
+          "y": 15,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00019118679255396108,
+          "y": -0.0008904661975082005,
+          "z": -0.00014138854007826571
+        },
+        "angle": {
+          "x": -0.0006083615907912285,
+          "y": -0.000026788211148953653,
+          "z": 0.0002634264340870516
+        }
+      },
+      {
+        "id": "n275",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1650,
+          1651,
+          1652,
+          1653,
+          1654,
+          1655
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 3.140184917367551e-16,
+          "y": 15,
+          "z": 22.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00021058173231135307,
+          "y": -0.0010055260387667108,
+          "z": -0.00018670150283315795
+        },
+        "angle": {
+          "x": 0.00003647640528902306,
+          "y": -0.000025484779652655504,
+          "z": 0.00003585156400567087
+        }
+      },
+      {
+        "id": "n276",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1656,
+          1657,
+          1658,
+          1659,
+          1660,
+          1661
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 15,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00019072051416947194,
+          "y": -0.0010595361489296863,
+          "z": -0.00023300166432396155
+        },
+        "angle": {
+          "x": 0.00019076732524526277,
+          "y": -0.000027920684310086044,
+          "z": 0.0000899917889674176
+        }
+      },
+      {
+        "id": "n277",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1662,
+          1663,
+          1664,
+          1665,
+          1666,
+          1667
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 15,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00016403080554257824,
+          "y": -0.0012036256776480478,
+          "z": -0.0002465354331895281
+        },
+        "angle": {
+          "x": -0.000024297491254944226,
+          "y": -0.000026615627682293645,
+          "z": 0.000022375499349309015
+        }
+      },
+      {
+        "id": "n278",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1668,
+          1669,
+          1670,
+          1671,
+          1672,
+          1673
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.0203050891044216,
+          "y": 15,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00013379259627911951,
+          "y": -0.0011407528449585132,
+          "z": -0.0002368925514024366
+        },
+        "angle": {
+          "x": -0.0001196082358124389,
+          "y": -0.000023166531696338323,
+          "z": 0.000052315690562391595
+        }
+      },
+      {
+        "id": "n279",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1674,
+          1675,
+          1676,
+          1677,
+          1678,
+          1679
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -3.140184917367551e-16,
+          "y": 15,
+          "z": 17.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011826431155733208,
+          "y": -0.0011157040055463073,
+          "z": -0.00019485200874502177
+        },
+        "angle": {
+          "x": -0.00007142831932177747,
+          "y": -0.00002467899704034165,
+          "z": 0.00003611405576178282
+        }
+      },
+      {
+        "id": "n280",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1680,
+          1681,
+          1682,
+          1683,
+          1684,
+          1685
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 15,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001402851241752432,
+          "y": -0.00097110726044429,
+          "z": -0.00014858321749958042
+        },
+        "angle": {
+          "x": 0.0005054329871445262,
+          "y": -0.00002896340970762756,
+          "z": 0.00023923286627671586
+        }
+      },
+      {
+        "id": "n281",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1686,
+          1687,
+          1688,
+          1689,
+          1690,
+          1691
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 10,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001961644988152055,
+          "y": -0.0008443481479740092,
+          "z": -0.00022316088363121366
+        },
+        "angle": {
+          "x": -0.00004402741943804096,
+          "y": -0.00008139814883601821,
+          "z": 0.00001640131176311876
+        }
+      },
+      {
+        "id": "n282",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1692,
+          1693,
+          1694,
+          1695,
+          1696,
+          1697
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 10,
+          "z": 17.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001672075851280177,
+          "y": -0.0008159357398038216,
+          "z": -0.00023633430299254248
+        },
+        "angle": {
+          "x": -0.000003436545410338896,
+          "y": 0.00004017377541432317,
+          "z": 0.00006715522386531991
+        }
+      },
+      {
+        "id": "n283",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1698,
+          1699,
+          1700,
+          1701,
+          1702,
+          1703
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 12.020305089104422,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00029253957404289853,
+          "y": -0.0008367400787905083,
+          "z": -0.00022828211009919927
+        },
+        "angle": {
+          "x": 0.000015100220481730429,
+          "y": 0.00026965688484141916,
+          "z": 0.00014828838839153047
+        }
+      },
+      {
+        "id": "n284",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1704,
+          1705,
+          1706,
+          1707,
+          1708,
+          1709
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 12.857142857142858,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0005951084237175867,
+          "y": -0.0009157814611377471,
+          "z": -0.00021817442577840232
+        },
+        "angle": {
+          "x": 0.00005433610322630154,
+          "y": 0.000031243265626946564,
+          "z": 0.00006399530498961654
+        }
+      },
+      {
+        "id": "n285",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1710,
+          1711,
+          1712,
+          1713,
+          1714,
+          1715
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 12.020305089104422,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00016630187163912952,
+          "y": -0.0009755063001055487,
+          "z": -0.00021675689096256926
+        },
+        "angle": {
+          "x": -0.000025410217513642415,
+          "y": -0.0006797963223515705,
+          "z": 0.00031538466757250947
+        }
+      },
+      {
+        "id": "n286",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1716,
+          1717,
+          1718,
+          1719,
+          1720,
+          1721
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 10,
+          "z": 22.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00001131343170157053,
+          "y": -0.0009386855548195256,
+          "z": -0.00019908085393100512
+        },
+        "angle": {
+          "x": -0.0000029427800502848126,
+          "y": 0.000022307045357063705,
+          "z": 0.00006715343297960584
+        }
+      },
+      {
+        "id": "n287",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1722,
+          1723,
+          1724,
+          1725,
+          1726,
+          1727
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 7.979694910895578,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00015159392587049689,
+          "y": -0.0009121376882464333,
+          "z": -0.0002011614492639808
+        },
+        "angle": {
+          "x": 0.000008630014856794875,
+          "y": 0.00004557726005842709,
+          "z": 0.00007538080847335456
+        }
+      },
+      {
+        "id": "n288",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1728,
+          1729,
+          1730,
+          1731,
+          1732,
+          1733
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 7.142857142857142,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0004902620960807545,
+          "y": -0.0008417187540774938,
+          "z": -0.00020936012811836858
+        },
+        "angle": {
+          "x": 0.000048394471214887827,
+          "y": 0.00003124051781515614,
+          "z": 0.00007031214196023647
+        }
+      },
+      {
+        "id": "n289",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1734,
+          1735,
+          1736,
+          1737,
+          1738,
+          1739
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 7.979694910895579,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000025362389870630824,
+          "y": -0.0007868048946060672,
+          "z": -0.0002132776865979245
+        },
+        "angle": {
+          "x": -0.00002800587442957576,
+          "y": -0.0009454095911509777,
+          "z": 0.00041561028956599397
+        }
+      },
+      {
+        "id": "n290",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1740,
+          1741,
+          1742,
+          1743,
+          1744,
+          1745
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 12.857142857142858,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000190300795903739,
+          "y": -0.0008564333603433604,
+          "z": 0.00005626463413161435
+        },
+        "angle": {
+          "x": 0.00021815669938973558,
+          "y": 0.00002807889420371922,
+          "z": -0.000018232738228908306
+        }
+      },
+      {
+        "id": "n291",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1746,
+          1747,
+          1748,
+          1749,
+          1750,
+          1751
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 12.020305089104422,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00020176832107415629,
+          "y": -0.0008173272965396303,
+          "z": -0.00006956931169697401
+        },
+        "angle": {
+          "x": -0.00004070748228050557,
+          "y": -0.0000791463147833577,
+          "z": -0.000011544142169508034
+        }
+      },
+      {
+        "id": "n292",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1752,
+          1753,
+          1754,
+          1755,
+          1756,
+          1757
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 10,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00020861366402207657,
+          "y": -0.0007844649566023425,
+          "z": -0.00005356031814678516
+        },
+        "angle": {
+          "x": -0.000005056124452136054,
+          "y": 0.000006923837649372519,
+          "z": -1.3109510830496097e-7
+        }
+      },
+      {
+        "id": "n293",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1758,
+          1759,
+          1760,
+          1761,
+          1762,
+          1763
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 7.979694910895579,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001984473847794248,
+          "y": -0.0007472391070348067,
+          "z": -0.000049139580129052244
+        },
+        "angle": {
+          "x": -0.000014124646663667539,
+          "y": 0.000028817352627733483,
+          "z": 0.0000185685158788236
+        }
+      },
+      {
+        "id": "n294",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1764,
+          1765,
+          1766,
+          1767,
+          1768,
+          1769
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 7.142857142857142,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00019111207241513667,
+          "y": -0.0007560811019507919,
+          "z": -0.00009553936745378285
+        },
+        "angle": {
+          "x": 0.00005908402965387827,
+          "y": -0.0000015066913628140634,
+          "z": -0.000016907045358806205
+        }
+      },
+      {
+        "id": "n295",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1770,
+          1771,
+          1772,
+          1773,
+          1774,
+          1775
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 7.979694910895579,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00018156785848639218,
+          "y": -0.0007936339239046389,
+          "z": -0.00004305162978821813
+        },
+        "angle": {
+          "x": -0.000041134443636420314,
+          "y": -0.000043018555383921856,
+          "z": -0.000010903678126079543
+        }
+      },
+      {
+        "id": "n296",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1776,
+          1777,
+          1778,
+          1779,
+          1780,
+          1781
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 10,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00017675925714599392,
+          "y": -0.0008300743008932913,
+          "z": -0.00009015624056588249
+        },
+        "angle": {
+          "x": -0.00003464166249763331,
+          "y": -0.000027343534982565093,
+          "z": -1.1795763170312081e-7
+        }
+      },
+      {
+        "id": "n297",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1782,
+          1783,
+          1784,
+          1785,
+          1786,
+          1787
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 12.020305089104422,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00018377330463848062,
+          "y": -0.000869509217303505,
+          "z": -0.00018302505358562052
+        },
+        "angle": {
+          "x": -0.0001147091025478684,
+          "y": 0.00016595637446092292,
+          "z": 0.000015742972320868107
+        }
+      },
+      {
+        "id": "n298",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1788,
+          1789,
+          1790,
+          1791,
+          1792,
+          1793
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 15,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00014396788128340582,
+          "y": -0.0003928523245673666,
+          "z": -0.000160312433252391
+        },
+        "angle": {
+          "x": 0.000029018046254409986,
+          "y": -0.00003485827512913621,
+          "z": 0.00011210062348785518
+        }
+      },
+      {
+        "id": "n299",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1794,
+          1795,
+          1796,
+          1797,
+          1798,
+          1799
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.0203050891044216,
+          "y": 15,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001812674212663491,
+          "y": -0.000972246679389249,
+          "z": -0.00017273677572602776
+        },
+        "angle": {
+          "x": 0.0009460975307817664,
+          "y": -0.00002348523921481581,
+          "z": 0.00043499561676018164
+        }
+      },
+      {
+        "id": "n300",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1800,
+          1801,
+          1802,
+          1803,
+          1804,
+          1805
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 3.140184917367551e-16,
+          "y": 15,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00019874140121254637,
+          "y": -0.001208005575726297,
+          "z": -0.00021728583344056036
+        },
+        "angle": {
+          "x": -0.00036365828904938907,
+          "y": -0.000027247169803003234,
+          "z": -0.00002941471992578249
+        }
+      },
+      {
+        "id": "n301",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1806,
+          1807,
+          1808,
+          1809,
+          1810,
+          1811
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 15,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00017535050084250333,
+          "y": -0.0008351180986616618,
+          "z": -0.0002697187199041278
+        },
+        "angle": {
+          "x": 0.0010991713024308884,
+          "y": -0.000032990964764967406,
+          "z": -0.000545261760526316
+        }
+      },
+      {
+        "id": "n302",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1812,
+          1813,
+          1814,
+          1815,
+          1816,
+          1817
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 15,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00013737729611816883,
+          "y": 0.00005489173832756957,
+          "z": -0.00028567273133067934
+        },
+        "angle": {
+          "x": 0.00003451127382638566,
+          "y": -0.00003435091915801468,
+          "z": -0.00016750613736944608
+        }
+      },
+      {
+        "id": "n303",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1818,
+          1819,
+          1820,
+          1821,
+          1822,
+          1823
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.0203050891044216,
+          "y": 15,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000099213240059547,
+          "y": -0.0009694540773857707,
+          "z": -0.0002731027780054237
+        },
+        "angle": {
+          "x": -0.001992395415826512,
+          "y": -0.000028362702491388096,
+          "z": -0.0008827842354211155
+        }
+      },
+      {
+        "id": "n304",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1824,
+          1825,
+          1826,
+          1827,
+          1828,
+          1829
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -3.140184917367551e-16,
+          "y": 15,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007976863356258073,
+          "y": -0.0013895176584701973,
+          "z": -0.00022414869778197223
+        },
+        "angle": {
+          "x": 0.00042718726422286146,
+          "y": -0.000027666464608511713,
+          "z": -0.00002599075310768811
+        }
+      },
+      {
+        "id": "n305",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1830,
+          1831,
+          1832,
+          1833,
+          1834,
+          1835
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 15,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00010256663043372361,
+          "y": -0.0010946078067013178,
+          "z": -0.0001739739162311847
+        },
+        "angle": {
+          "x": -0.0012675752823887389,
+          "y": -0.00003034763641059399,
+          "z": 0.0005718570355872361
+        }
+      },
+      {
+        "id": "n306",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1836,
+          1837,
+          1838,
+          1839,
+          1840,
+          1841
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 25,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00019591067244609876,
+          "y": -0.001188452461278152,
+          "z": -0.00016131758122432967
+        },
+        "angle": {
+          "x": -4.836537261108301e-7,
+          "y": -0.00003591073316083428,
+          "z": -0.0000060212297527902694
+        }
+      },
+      {
+        "id": "n307",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1842,
+          1843,
+          1844,
+          1845,
+          1846,
+          1847
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 20,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002777752995504491,
+          "y": -0.0011352881494527459,
+          "z": -0.00016629629379033594
+        },
+        "angle": {
+          "x": -0.00001739569737308014,
+          "y": -0.000020276028479222795,
+          "z": 0.000003944830630096082
+        }
+      },
+      {
+        "id": "n308",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1848,
+          1849,
+          1850,
+          1851,
+          1852,
+          1853
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 20,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006655534284467241,
+          "y": -0.0010737077446741302,
+          "z": -0.00013767771386373638
+        },
+        "angle": {
+          "x": -0.0000069611169130603934,
+          "y": -0.00001745013900153783,
+          "z": 0.0000037922919695084134
+        }
+      },
+      {
+        "id": "n309",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1854,
+          1855,
+          1856,
+          1857,
+          1858,
+          1859
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 20,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00013267850026083428,
+          "y": -0.001078316849092265,
+          "z": -0.00013362955876388086
+        },
+        "angle": {
+          "x": -0.000006049543698644457,
+          "y": 0.00001641912147601988,
+          "z": -8.993546162423919e-7
+        }
+      },
+      {
+        "id": "n310",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1860,
+          1861,
+          1862,
+          1863,
+          1864,
+          1865
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 22.020305089104422,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00012186252455735333,
+          "y": -0.0011138950546641904,
+          "z": -0.00015216229292496948
+        },
+        "angle": {
+          "x": -0.000020822525091930357,
+          "y": -0.00014763682756295925,
+          "z": 0.00005609495955696452
+        }
+      },
+      {
+        "id": "n311",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1866,
+          1867,
+          1868,
+          1869,
+          1870,
+          1871
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 22.857142857142858,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00010343226511679163,
+          "y": -0.0011267680646131826,
+          "z": -0.00016193856288322254
+        },
+        "angle": {
+          "x": -0.000007366322907974082,
+          "y": -0.000026327678395588254,
+          "z": 0.000012197452864855429
+        }
+      },
+      {
+        "id": "n312",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1872,
+          1873,
+          1874,
+          1875,
+          1876,
+          1877
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 22.020305089104422,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002244014480270005,
+          "y": -0.00113081218532008,
+          "z": -0.00016677046657804842
+        },
+        "angle": {
+          "x": 0.000011120816663231762,
+          "y": 0.00013836681306706906,
+          "z": 0.00006941748750587264
+        }
+      },
+      {
+        "id": "n313",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1878,
+          1879,
+          1880,
+          1881,
+          1882,
+          1883
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 20,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00027132654476170315,
+          "y": -0.0011049851110366757,
+          "z": -0.00016633677140526895
+        },
+        "angle": {
+          "x": -0.000006511292164980456,
+          "y": -0.00006494591080227355,
+          "z": -0.0000034726837499255186
+        }
+      },
+      {
+        "id": "n314",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1884,
+          1885,
+          1886,
+          1887,
+          1888,
+          1889
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 17.979694910895578,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00020955316451519679,
+          "y": -0.0010685802997171532,
+          "z": -0.00014288470342406682
+        },
+        "angle": {
+          "x": -0.000026097491534457225,
+          "y": 0.0001026500600226801,
+          "z": -0.00006171860688133656
+        }
+      },
+      {
+        "id": "n315",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1890,
+          1891,
+          1892,
+          1893,
+          1894,
+          1895
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 17.142857142857142,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006810078897184092,
+          "y": -0.0010528366981454671,
+          "z": -0.0001330988938279159
+        },
+        "angle": {
+          "x": -0.000007950395406582417,
+          "y": -0.000022199137240499874,
+          "z": -0.000016569501394934723
+        }
+      },
+      {
+        "id": "n316",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1896,
+          1897,
+          1898,
+          1899,
+          1900,
+          1901
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 17.979694910895578,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011601412880515478,
+          "y": -0.0010514691152078547,
+          "z": -0.00013092928176995522
+        },
+        "angle": {
+          "x": 0.000008907804335272202,
+          "y": -0.00012713772689162123,
+          "z": -0.000052662633400167106
+        }
+      },
+      {
+        "id": "n317",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1902,
+          1903,
+          1904,
+          1905,
+          1906,
+          1907
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 25,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00012361851997840978,
+          "y": -0.0014541735167856215,
+          "z": -0.0006275950873448741
+        },
+        "angle": {
+          "x": -0.00007033029846712791,
+          "y": -0.00008775921590315076,
+          "z": 0.0004116855985210537
+        }
+      },
+      {
+        "id": "n318",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1908,
+          1909,
+          1910,
+          1911,
+          1912,
+          1913
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 25,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0003306851315546218,
+          "y": -0.0013894312392350807,
+          "z": -0.00030690518767031056
+        },
+        "angle": {
+          "x": -0.0006917588740371689,
+          "y": -0.000048742538009065096,
+          "z": -0.00005340562705766889
+        }
+      },
+      {
+        "id": "n319",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1914,
+          1915,
+          1916,
+          1917,
+          1918,
+          1919
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 25,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00001123968247330871,
+          "y": -0.0012074231406490616,
+          "z": -0.0003555813204013298
+        },
+        "angle": {
+          "x": -0.000022607083499302923,
+          "y": -0.00004999783407950283,
+          "z": 0.000003338359112269751
+        }
+      },
+      {
+        "id": "n320",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1920,
+          1921,
+          1922,
+          1923,
+          1924,
+          1925
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 25,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00018213666586536017,
+          "y": -0.00007175426611469245,
+          "z": -0.00022547530902841816
+        },
+        "angle": {
+          "x": 0.0003688848660106299,
+          "y": -0.000053799746459534414,
+          "z": 0.00006024896223880356
+        }
+      },
+      {
+        "id": "n321",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1926,
+          1927,
+          1928,
+          1929,
+          1930,
+          1931
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.0203050891044216,
+          "y": 25,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001252080314773863,
+          "y": -0.0011612956708111687,
+          "z": -0.0002490960973634158
+        },
+        "angle": {
+          "x": -0.0017749998180059902,
+          "y": -0.000047299796963097874,
+          "z": 0.0008182274749604174
+        }
+      },
+      {
+        "id": "n322",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1932,
+          1933,
+          1934,
+          1935,
+          1936,
+          1937
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 3.140184917367551e-16,
+          "y": 25,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008375570046680861,
+          "y": -0.0016126007319258637,
+          "z": -0.00033551394543406205
+        },
+        "angle": {
+          "x": 0.0004587100616036595,
+          "y": -0.000052512487815764143,
+          "z": 0.000028492364367395374
+        }
+      },
+      {
+        "id": "n323",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1938,
+          1939,
+          1940,
+          1941,
+          1942,
+          1943
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 25,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001205262756895223,
+          "y": -0.0012961734300187561,
+          "z": -0.00043553875087292614
+        },
+        "angle": {
+          "x": -0.001329766293656106,
+          "y": -0.00006057045712816534,
+          "z": -0.0006038306717942637
+        }
+      },
+      {
+        "id": "n324",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1944,
+          1945,
+          1946,
+          1947,
+          1948,
+          1949
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 25,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00017485949972488273,
+          "y": -0.0005322424092512191,
+          "z": -0.00046702999348446005
+        },
+        "angle": {
+          "x": 0.0003688882845844622,
+          "y": -0.00005670479127328258,
+          "z": -0.0000032665301723061047
+        }
+      },
+      {
+        "id": "n325",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1950,
+          1951,
+          1952,
+          1953,
+          1954,
+          1955
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.0203050891044216,
+          "y": 25,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00024193975615238814,
+          "y": 0.0001943570853161301,
+          "z": -0.00044295012436729343
+        },
+        "angle": {
+          "x": 0.002270295396082948,
+          "y": -0.0000657155868687149,
+          "z": -0.0006755162365979588
+        }
+      },
+      {
+        "id": "n326",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1956,
+          1957,
+          1958,
+          1959,
+          1960,
+          1961
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -3.140184917367551e-16,
+          "y": 25,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002848791399750147,
+          "y": 0.0004953218153107657,
+          "z": -0.00033821516227332526
+        },
+        "angle": {
+          "x": 0.0002790617699918667,
+          "y": -0.00005450294298632118,
+          "z": 0.000028490266016646086
+        }
+      },
+      {
+        "id": "n327",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1962,
+          1963,
+          1964,
+          1965,
+          1966,
+          1967
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 25,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00024410013876782657,
+          "y": 0.0003292274792778509,
+          "z": -0.0002472288562568129
+        },
+        "angle": {
+          "x": -0.003047568593480708,
+          "y": -0.00005085601077358078,
+          "z": -0.0011476505071416827
+        }
+      },
+      {
+        "id": "n328",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1968,
+          1969,
+          1970,
+          1971,
+          1972,
+          1973
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 20,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002445894194357213,
+          "y": -0.00131289198983803,
+          "z": -0.0005072688587018689
+        },
+        "angle": {
+          "x": -0.000016005572172605055,
+          "y": 0.0005164782809895583,
+          "z": 0.000021436109753772086
+        }
+      },
+      {
+        "id": "n329",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1974,
+          1975,
+          1976,
+          1977,
+          1978,
+          1979
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 20,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000009778462801048466,
+          "y": -0.001197204063443737,
+          "z": -0.000461139675376579
+        },
+        "angle": {
+          "x": -0.000018050220256837527,
+          "y": -0.00004374589474915901,
+          "z": 0.00002124271314290355
+        }
+      },
+      {
+        "id": "n330",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1980,
+          1981,
+          1982,
+          1983,
+          1984,
+          1985
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 20,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0004169947929754213,
+          "y": -0.0012866381740970264,
+          "z": -0.0004964388867566231
+        },
+        "angle": {
+          "x": -0.000019402085815741643,
+          "y": 0.0005960079116639778,
+          "z": -0.0003085440315869241
+        }
+      },
+      {
+        "id": "n331",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1986,
+          1987,
+          1988,
+          1989,
+          1990,
+          1991
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 22.020305089104422,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0016460603387809531,
+          "y": -0.0012861521183689221,
+          "z": -0.0005217082687440415
+        },
+        "angle": {
+          "x": -0.000007879000179400357,
+          "y": -0.002711363504679462,
+          "z": -0.001477876033293185
+        }
+      },
+      {
+        "id": "n332",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1992,
+          1993,
+          1994,
+          1995,
+          1996,
+          1997
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 22.857142857142858,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0046132991246421165,
+          "y": -0.0013090006778571006,
+          "z": -0.0005244699525529659
+        },
+        "angle": {
+          "x": 0.000008949029996961573,
+          "y": 0.000022502174542956818,
+          "z": -0.000511312288985472
+        }
+      },
+      {
+        "id": "n333",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1998,
+          1999,
+          2000,
+          2001,
+          2002,
+          2003
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 22.020305089104422,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0017369695924170675,
+          "y": -0.0013166439596728064,
+          "z": -0.0005134866818786121
+        },
+        "angle": {
+          "x": -0.0000385444891491584,
+          "y": 0.007880990410753947,
+          "z": -0.0032897105999094046
+        }
+      },
+      {
+        "id": "n334",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2004,
+          2005,
+          2006,
+          2007,
+          2008,
+          2009
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 20,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0005455515363453,
+          "y": -0.0012752743973598296,
+          "z": -0.0004697345920727734
+        },
+        "angle": {
+          "x": -0.000018496065103415166,
+          "y": -0.0005510191150145567,
+          "z": -0.0003085437190085748
+        }
+      },
+      {
+        "id": "n335",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2010,
+          2011,
+          2012,
+          2013,
+          2014,
+          2015
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 17.979694910895578,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00027636235349409293,
+          "y": -0.0012680594664439158,
+          "z": -0.00044204666424676564
+        },
+        "angle": {
+          "x": -0.00001148539398027171,
+          "y": -0.0013997330863898313,
+          "z": -0.0006086095824343926
+        }
+      },
+      {
+        "id": "n336",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2016,
+          2017,
+          2018,
+          2019,
+          2020,
+          2021
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 17.142857142857142,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0003735254432697356,
+          "y": -0.0012586097525919269,
+          "z": -0.0004391354268761239
+        },
+        "angle": {
+          "x": 0.000001352026418837578,
+          "y": 0.00002250025439288476,
+          "z": -0.00010577588940349517
+        }
+      },
+      {
+        "id": "n337",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2022,
+          2023,
+          2024,
+          2025,
+          2026,
+          2027
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 17.979694910895578,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00018545392284841474,
+          "y": -0.0012567796164216943,
+          "z": -0.0004515609356703395
+        },
+        "angle": {
+          "x": -0.00003460700378141159,
+          "y": 0.0007916103055084855,
+          "z": -0.00037769896131535044
+        }
+      },
+      {
+        "id": "n338",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2028,
+          2029,
+          2030,
+          2031,
+          2032,
+          2033
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 17.142857142857142,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00031216763250519283,
+          "y": -0.0011896326941502732,
+          "z": -0.0015655980881170448
+        },
+        "angle": {
+          "x": 0.0005946087506174192,
+          "y": -0.00046818009519158693,
+          "z": 0.000024433588563941448
+        }
+      },
+      {
+        "id": "n339",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2034,
+          2035,
+          2036,
+          2037,
+          2038,
+          2039
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 17.979694910895578,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0003060640686173784,
+          "y": -0.0011593220462582177,
+          "z": -0.00012214063449159923
+        },
+        "angle": {
+          "x": -0.0006275048211980932,
+          "y": -0.0009743956327622998,
+          "z": -3.7191867401858503e-7
+        }
+      },
+      {
+        "id": "n340",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2040,
+          2041,
+          2042,
+          2043,
+          2044,
+          2045
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 20,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002900936916923025,
+          "y": -0.0011634049781172192,
+          "z": -0.0005744805593341814
+        },
+        "angle": {
+          "x": -0.000034575441988293404,
+          "y": 0.00045706176739509396,
+          "z": 0.000013654960095434082
+        }
+      },
+      {
+        "id": "n341",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2046,
+          2047,
+          2048,
+          2049,
+          2050,
+          2051
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 22.020305089104422,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002516328240410312,
+          "y": -0.0011894574257463428,
+          "z": -0.0002618471249398735
+        },
+        "angle": {
+          "x": 0.00023364540495096945,
+          "y": -0.00019048167617784703,
+          "z": 0.0000262755942593725
+        }
+      },
+      {
+        "id": "n342",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2052,
+          2053,
+          2054,
+          2055,
+          2056,
+          2057
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 22.857142857142858,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002345358826669316,
+          "y": -0.0012515692159981127,
+          "z": -0.0004511537408905593
+        },
+        "angle": {
+          "x": -0.001372011539210029,
+          "y": 0.0004746040653005668,
+          "z": 0.000027171979886303556
+        }
+      },
+      {
+        "id": "n343",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2058,
+          2059,
+          2060,
+          2061,
+          2062,
+          2063
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 22.020305089104422,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00024287156919670485,
+          "y": -0.0012824068363913807,
+          "z": 0.0016558423268224984
+        },
+        "angle": {
+          "x": 0.00006731748419003814,
+          "y": 0.001070793355487931,
+          "z": -0.000003801532649278881
+        }
+      },
+      {
+        "id": "n344",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2064,
+          2065,
+          2066,
+          2067,
+          2068,
+          2069
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 20,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00025542923542604644,
+          "y": -0.001273549882060427,
+          "z": 0.0024159205803045616
+        },
+        "angle": {
+          "x": 0.000908208054965361,
+          "y": 0.0031008825576913086,
+          "z": 0.000012627903989289027
+        }
+      },
+      {
+        "id": "n345",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2070,
+          2071,
+          2072,
+          2073,
+          2074,
+          2075
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 17.979694910895578,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002921493434350833,
+          "y": -0.0012456367246188773,
+          "z": -0.0020138735609480374
+        },
+        "angle": {
+          "x": 0.0027576870097263994,
+          "y": -0.0013641561061545993,
+          "z": 0.000025752117231600824
+        }
+      },
+      {
+        "id": "n346",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2076,
+          2077,
+          2078,
+          2079,
+          2080,
+          2081
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 22.857142857142858,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000014019996446796092,
+          "y": -0.0011561453865467862,
+          "z": -0.00025601395235611306
+        },
+        "angle": {
+          "x": 0.000037932452670021105,
+          "y": -0.000037151470200151896,
+          "z": 0.000009698701759331781
+        }
+      },
+      {
+        "id": "n347",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2082,
+          2083,
+          2084,
+          2085,
+          2086,
+          2087
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 22.020305089104422,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000007046984010428661,
+          "y": -0.0011642445373260613,
+          "z": -0.000361559070414894
+        },
+        "angle": {
+          "x": -0.00005320661107041806,
+          "y": -0.00007303817162137286,
+          "z": -0.000004162009284314246
+        }
+      },
+      {
+        "id": "n348",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2088,
+          2089,
+          2090,
+          2091,
+          2092,
+          2093
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 20,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000016142077429566596,
+          "y": -0.0011399467347040623,
+          "z": -0.00031507375296435864
+        },
+        "angle": {
+          "x": -0.000016783434688701147,
+          "y": 0.000015097354612789062,
+          "z": 0.00000806899302315529
+        }
+      },
+      {
+        "id": "n349",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2094,
+          2095,
+          2096,
+          2097,
+          2098,
+          2099
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 17.979694910895578,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000041847623985942514,
+          "y": -0.0010995293386287007,
+          "z": -0.00029385652597030924
+        },
+        "angle": {
+          "x": 0.000017718778817367275,
+          "y": -0.00006799617613569291,
+          "z": 0.00002445730304447962
+        }
+      },
+      {
+        "id": "n350",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2100,
+          2101,
+          2102,
+          2103,
+          2104,
+          2105
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 17.142857142857142,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00005923073115512039,
+          "y": -0.0010669560403385688,
+          "z": -0.0001715035623300105
+        },
+        "angle": {
+          "x": -0.00006999041486706434,
+          "y": -0.000031523043814602055,
+          "z": 0.000008527633329811336
+        }
+      },
+      {
+        "id": "n351",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2106,
+          2107,
+          2108,
+          2109,
+          2110,
+          2111
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 17.979694910895578,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006259936847274063,
+          "y": -0.0010652892891315413,
+          "z": -0.00016629187462776596
+        },
+        "angle": {
+          "x": 0.000019038896267562316,
+          "y": 0.0000052113409927889155,
+          "z": -0.000007812276101051477
+        }
+      },
+      {
+        "id": "n352",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2112,
+          2113,
+          2114,
+          2115,
+          2116,
+          2117
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 20,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000058858070467049674,
+          "y": -0.0010898149022721014,
+          "z": -0.00013179300866780056
+        },
+        "angle": {
+          "x": -0.000011698250104705095,
+          "y": -0.00006970366181517263,
+          "z": 0.000006324564280435923
+        }
+      },
+      {
+        "id": "n353",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2118,
+          2119,
+          2120,
+          2121,
+          2122,
+          2123
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 22.020305089104422,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003623734943279496,
+          "y": -0.0011258861243617644,
+          "z": -0.0002139554809950727
+        },
+        "angle": {
+          "x": -0.000039539852514549076,
+          "y": -0.000003197026719206514,
+          "z": 0.000021988314068771387
+        }
+      },
+      {
+        "id": "n354",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2124,
+          2125,
+          2126,
+          2127,
+          2128,
+          2129
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.0203050891044216,
+          "y": 15,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000018040422546966712,
+          "y": -0.000996551276956769,
+          "z": -0.00015769113324087653
+        },
+        "angle": {
+          "x": 0.0003413774287332297,
+          "y": -0.000023690237503692384,
+          "z": 0.0001667253270858784
+        }
+      },
+      {
+        "id": "n355",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2130,
+          2131,
+          2132,
+          2133,
+          2134,
+          2135
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 3.140184917367551e-16,
+          "y": 15,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000031873796636505146,
+          "y": -0.001104696432633924,
+          "z": -0.00020251413854917058
+        },
+        "angle": {
+          "x": -0.00011417484162265214,
+          "y": -0.000025987423509496397,
+          "z": 0.000005152943611494348
+        }
+      },
+      {
+        "id": "n356",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2136,
+          2137,
+          2138,
+          2139,
+          2140,
+          2141
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 15,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000008333212786953635,
+          "y": -0.001021749816007152,
+          "z": -0.00024878945435001705
+        },
+        "angle": {
+          "x": 0.000387984827396658,
+          "y": -0.000027255484073766463,
+          "z": -0.00017187711251772817
+        }
+      },
+      {
+        "id": "n357",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2142,
+          2143,
+          2144,
+          2145,
+          2146,
+          2147
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.0203050891044216,
+          "y": 15,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00005962041221272905,
+          "y": -0.0009541464485568383,
+          "z": -0.0002525700416724062
+        },
+        "angle": {
+          "x": -0.00048343417183702294,
+          "y": -0.000026913404899442497,
+          "z": -0.0001957305953798371
+        }
+      },
+      {
+        "id": "n358",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2148,
+          2149,
+          2150,
+          2151,
+          2152,
+          2153
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -3.140184917367551e-16,
+          "y": 15,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007633544991363306,
+          "y": -0.0010160946843170795,
+          "z": -0.00020586126104655346
+        },
+        "angle": {
+          "x": 0.00008508688939514796,
+          "y": -0.000026029935872265488,
+          "z": 0.0000032296474682093783
+        }
+      },
+      {
+        "id": "n359",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2154,
+          2155,
+          2156,
+          2157,
+          2158,
+          2159
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 15,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00005365276271356245,
+          "y": -0.0009356349597256356,
+          "z": -0.00015960738071069748
+        },
+        "angle": {
+          "x": -0.00019785601108364252,
+          "y": -0.000027693147899812488,
+          "z": 0.00010530749138983423
+        }
+      },
+      {
+        "id": "n360",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2160,
+          2161,
+          2162,
+          2163,
+          2164,
+          2165
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 25,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004155350387549882,
+          "y": -0.0011583164481993385,
+          "z": -0.00016399145749416367
+        },
+        "angle": {
+          "x": -0.000009581510732292033,
+          "y": -0.00004461154323853817,
+          "z": -2.0676099231074823e-7
+        }
+      },
+      {
+        "id": "n361",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2166,
+          2167,
+          2168,
+          2169,
+          2170,
+          2171
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 20,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00010911684851678622,
+          "y": -0.0010646926068206594,
+          "z": -0.00012129612500316091
+        },
+        "angle": {
+          "x": -0.000006396749868897406,
+          "y": -0.000014886986608541685,
+          "z": 0.000005136649192135425
+        }
+      },
+      {
+        "id": "n362",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2172,
+          2173,
+          2174,
+          2175,
+          2176,
+          2177
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 20,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008421071084756901,
+          "y": -0.0010557542225722019,
+          "z": -0.0001169394888977205
+        },
+        "angle": {
+          "x": -0.0000061788866479828545,
+          "y": -0.000016341558282380918,
+          "z": 0.000009140575418489689
+        }
+      },
+      {
+        "id": "n363",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2178,
+          2179,
+          2180,
+          2181,
+          2182,
+          2183
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 22.020305089104422,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00009074062948899674,
+          "y": -0.0010886932109952703,
+          "z": -0.00013609805044735292
+        },
+        "angle": {
+          "x": -0.000020685794483358838,
+          "y": -0.00005862579168975352,
+          "z": 0.000022277843604660764
+        }
+      },
+      {
+        "id": "n364",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2184,
+          2185,
+          2186,
+          2187,
+          2188,
+          2189
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 22.857142857142858,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000092696172794138,
+          "y": -0.0010996026945932363,
+          "z": -0.00014381338119569297
+        },
+        "angle": {
+          "x": -0.00000504527716629912,
+          "y": -0.00002682833650238698,
+          "z": 0.000009223334574408153
+        }
+      },
+      {
+        "id": "n365",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2190,
+          2191,
+          2192,
+          2193,
+          2194,
+          2195
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 22.020305089104422,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000010757813812278631,
+          "y": -0.0010991641316242145,
+          "z": -0.00014592504647165162
+        },
+        "angle": {
+          "x": 0.000007506682361300763,
+          "y": 0.00008523399473248941,
+          "z": 0.00004703093980077779
+        }
+      },
+      {
+        "id": "n366",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2196,
+          2197,
+          2198,
+          2199,
+          2200,
+          2201
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 20,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004789009432220715,
+          "y": -0.0010747515837009978,
+          "z": -0.00014266161010698962
+        },
+        "angle": {
+          "x": -0.000006002709839056605,
+          "y": -0.000029893637763066557,
+          "z": 0.000004514789813640931
+        }
+      },
+      {
+        "id": "n367",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2202,
+          2203,
+          2204,
+          2205,
+          2206,
+          2207
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 17.979694910895578,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000349900907972526,
+          "y": -0.0010409546036776953,
+          "z": -0.00012422578923002088
+        },
+        "angle": {
+          "x": -0.00002064440743912902,
+          "y": -0.000025418900010205963,
+          "z": 0.000004745091847085364
+        }
+      },
+      {
+        "id": "n368",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2208,
+          2209,
+          2210,
+          2211,
+          2212,
+          2213
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 17.142857142857142,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00001765524067416413,
+          "y": -0.00102973803199055,
+          "z": -0.00011697767153780624
+        },
+        "angle": {
+          "x": -0.000004562548102506534,
+          "y": -0.000019407005257666395,
+          "z": 0.000004431937207384191
+        }
+      },
+      {
+        "id": "n369",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2214,
+          2215,
+          2216,
+          2217,
+          2218,
+          2219
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 17.979694910895578,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00005033031767996486,
+          "y": -0.0010314260143670327,
+          "z": -0.00011467881477742245
+        },
+        "angle": {
+          "x": 0.000009074754330502475,
+          "y": 0.00003798353001523335,
+          "z": 0.000026534934969831724
+        }
+      },
+      {
+        "id": "n370",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2220,
+          2221,
+          2222,
+          2223,
+          2224,
+          2225
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 25,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00013645089782848426,
+          "y": -0.0014255967994925042,
+          "z": -0.0005750785183658216
+        },
+        "angle": {
+          "x": -0.00007173480099709351,
+          "y": -0.00006307209048552865,
+          "z": 0.00004082069211429353
+        }
+      },
+      {
+        "id": "n371",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2226,
+          2227,
+          2228,
+          2229,
+          2230,
+          2231
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 25,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00019985494120652598,
+          "y": -0.0012087102830964436,
+          "z": -0.0003750243415026673
+        },
+        "angle": {
+          "x": -0.00003800201579733119,
+          "y": -0.00004270569586809688,
+          "z": 0.000011710712101806988
+        }
+      },
+      {
+        "id": "n372",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2232,
+          2233,
+          2234,
+          2235,
+          2236,
+          2237
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 25,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008279875585662648,
+          "y": -0.0005250869964950239,
+          "z": -0.00026353828503044685
+        },
+        "angle": {
+          "x": 0.000003267686168436425,
+          "y": -0.00003337171550527966,
+          "z": 0.00010579469919727602
+        }
+      },
+      {
+        "id": "n373",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2238,
+          2239,
+          2240,
+          2241,
+          2242,
+          2243
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.0203050891044216,
+          "y": 25,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00012223413503527445,
+          "y": -0.0011358968223844578,
+          "z": -0.0002796953512948853
+        },
+        "angle": {
+          "x": -0.0010111913943309807,
+          "y": -0.00004808341560430955,
+          "z": 0.00046428545167517127
+        }
+      },
+      {
+        "id": "n374",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2244,
+          2245,
+          2246,
+          2247,
+          2248,
+          2249
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 3.140184917367551e-16,
+          "y": 25,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00015765629227559928,
+          "y": -0.0013883513545830202,
+          "z": -0.0003597649801222646
+        },
+        "angle": {
+          "x": 0.00014281350635087997,
+          "y": -0.000044169984142634245,
+          "z": 0.0000561084069171053
+        }
+      },
+      {
+        "id": "n375",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2250,
+          2251,
+          2252,
+          2253,
+          2254,
+          2255
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 25,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000125995846812382,
+          "y": -0.0014017822112884736,
+          "z": -0.0004376430060537076
+        },
+        "angle": {
+          "x": -0.00022241279623514177,
+          "y": -0.0000449952849223493,
+          "z": -0.00007284409582956921
+        }
+      },
+      {
+        "id": "n376",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2256,
+          2257,
+          2258,
+          2259,
+          2260,
+          2261
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 25,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00009226138346936323,
+          "y": -0.0014355369926010806,
+          "z": -0.00045992989848624404
+        },
+        "angle": {
+          "x": 0.0000025524710147102314,
+          "y": -0.00003628394975377111,
+          "z": 0.0000068677107073054
+        }
+      },
+      {
+        "id": "n377",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2262,
+          2263,
+          2264,
+          2265,
+          2266,
+          2267
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.0203050891044216,
+          "y": 25,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000050403937243779736,
+          "y": -0.001390803651571068,
+          "z": -0.0004424903748594339
+        },
+        "angle": {
+          "x": 0.000002741228327994272,
+          "y": -0.00004809500455115119,
+          "z": 0.000006975539488097069
+        }
+      },
+      {
+        "id": "n378",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2268,
+          2269,
+          2270,
+          2271,
+          2272,
+          2273
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -3.140184917367551e-16,
+          "y": 25,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000018850266509704836,
+          "y": -0.0013717232834146794,
+          "z": -0.00036231488297240545
+        },
+        "angle": {
+          "x": -0.00013699390903646323,
+          "y": -0.000043584694639726255,
+          "z": 0.000056554131345096875
+        }
+      },
+      {
+        "id": "n379",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2274,
+          2275,
+          2276,
+          2277,
+          2278,
+          2279
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 25,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00005389743716904327,
+          "y": -0.0011233594063957753,
+          "z": -0.0002862798242272866
+        },
+        "angle": {
+          "x": 0.0008299983869206709,
+          "y": -0.00004449246159735631,
+          "z": 0.00039826293495440326
+        }
+      },
+      {
+        "id": "n380",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2280,
+          2281,
+          2282,
+          2283,
+          2284,
+          2285
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 20,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001708818562871817,
+          "y": -0.0012090469293273372,
+          "z": -0.0004324993423997333
+        },
+        "angle": {
+          "x": -0.00001812971336175472,
+          "y": -0.000045792344757747196,
+          "z": 0.00002298052917481644
+        }
+      },
+      {
+        "id": "n381",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2286,
+          2287,
+          2288,
+          2289,
+          2290,
+          2291
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 20,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0002475920805066893,
+          "y": -0.0012093825934833507,
+          "z": -0.00045721199106447263
+        },
+        "angle": {
+          "x": -0.0000145930598673919,
+          "y": 0.00011872110106278105,
+          "z": 0.00004394672629313255
+        }
+      },
+      {
+        "id": "n382",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2292,
+          2293,
+          2294,
+          2295,
+          2296,
+          2297
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 22.020305089104422,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0002521228685953695,
+          "y": -0.0012092584185570345,
+          "z": -0.00046919415981355777
+        },
+        "angle": {
+          "x": 0.0000025366056174049863,
+          "y": -0.00034849364392372864,
+          "z": -0.00012141341160873746
+        }
+      },
+      {
+        "id": "n383",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2298,
+          2299,
+          2300,
+          2301,
+          2302,
+          2303
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 22.857142857142858,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00026172869853067083,
+          "y": -0.00126033787794159,
+          "z": -0.00046715017135454936
+        },
+        "angle": {
+          "x": 0.000030587753391113123,
+          "y": 0.00004066094625103249,
+          "z": 0.0000159984981190797
+        }
+      },
+      {
+        "id": "n384",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2304,
+          2305,
+          2306,
+          2307,
+          2308,
+          2309
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 22.020305089104422,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008849452163314397,
+          "y": -0.0012915661915468717,
+          "z": -0.00046166973999234534
+        },
+        "angle": {
+          "x": -0.00003288501914183525,
+          "y": -0.0001750805476576505,
+          "z": 0.00009209966778068256
+        }
+      },
+      {
+        "id": "n385",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2310,
+          2311,
+          2312,
+          2313,
+          2314,
+          2315
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 20,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000017290510930237916,
+          "y": -0.0012583647396235684,
+          "z": -0.00042750842064278845
+        },
+        "angle": {
+          "x": -0.000012118696960652765,
+          "y": -0.00003811570413001857,
+          "z": 0.000043500443134104505
+        }
+      },
+      {
+        "id": "n386",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2316,
+          2317,
+          2318,
+          2319,
+          2320,
+          2321
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 17.979694910895578,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011770683648757119,
+          "y": -0.0012492360002918418,
+          "z": -0.0004133810115838445
+        },
+        "angle": {
+          "x": -0.000002983435171617983,
+          "y": 0.00010633408782092692,
+          "z": 0.00009474600862535911
+        }
+      },
+      {
+        "id": "n387",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2322,
+          2323,
+          2324,
+          2325,
+          2326,
+          2327
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 17.142857142857142,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00044495211156973726,
+          "y": -0.001212285480880362,
+          "z": -0.00041321015968850055
+        },
+        "angle": {
+          "x": 0.000021444582402380476,
+          "y": 0.000039944488658739845,
+          "z": 0.0000714488095943727
+        }
+      },
+      {
+        "id": "n388",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2328,
+          2329,
+          2330,
+          2331,
+          2332,
+          2333
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 17.979694910895578,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000044360393886082546,
+          "y": -0.001189706125150788,
+          "z": -0.0004190754545998742
+        },
+        "angle": {
+          "x": -0.000028982148822901283,
+          "y": -0.0007279044834136554,
+          "z": 0.00034309949964013
+        }
+      },
+      {
+        "id": "n389",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2334,
+          2335,
+          2336,
+          2337,
+          2338,
+          2339
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 22.857142857142858,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00017712872944859054,
+          "y": -0.0011572468624975005,
+          "z": -0.0002223493936687897
+        },
+        "angle": {
+          "x": 0.0000501258619098963,
+          "y": -0.00003447812019743119,
+          "z": 0.00001347053990605439
+        }
+      },
+      {
+        "id": "n390",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2340,
+          2341,
+          2342,
+          2343,
+          2344,
+          2345
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 22.020305089104422,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001816550225512806,
+          "y": -0.0011729317650172157,
+          "z": -0.00033323358370826526
+        },
+        "angle": {
+          "x": -0.00007433704463481129,
+          "y": -0.00008496414829140348,
+          "z": -4.6856159781903997e-7
+        }
+      },
+      {
+        "id": "n391",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2346,
+          2347,
+          2348,
+          2349,
+          2350,
+          2351
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 20,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00016445747710115325,
+          "y": -0.001151604620981002,
+          "z": -0.0002544670298969235
+        },
+        "angle": {
+          "x": -0.00001862948916684985,
+          "y": 0.00004895975745919595,
+          "z": 0.000012226738493889175
+        }
+      },
+      {
+        "id": "n392",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2352,
+          2353,
+          2354,
+          2355,
+          2356,
+          2357
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 17.979694910895578,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00013029451920452078,
+          "y": -0.0011074847689587814,
+          "z": -0.00025764325604601165
+        },
+        "angle": {
+          "x": 0.00003595346526442027,
+          "y": -0.00008338121643316487,
+          "z": 0.000028625251919197747
+        }
+      },
+      {
+        "id": "n393",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2358,
+          2359,
+          2360,
+          2361,
+          2362,
+          2363
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 17.142857142857142,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00010904192386394504,
+          "y": -0.0010662176389359635,
+          "z": -0.00011936859783414131
+        },
+        "angle": {
+          "x": -0.00009276559693791046,
+          "y": -0.000029994515308643183,
+          "z": 0.00001276438376549792
+        }
+      },
+      {
+        "id": "n394",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2364,
+          2365,
+          2366,
+          2367,
+          2368,
+          2369
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 17.979694910895578,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00010806288833729231,
+          "y": -0.0010568246114383908,
+          "z": -0.0001363534947930593
+        },
+        "angle": {
+          "x": 0.00003803912817883062,
+          "y": 0.000024117101895904447,
+          "z": -0.000004829340577470207
+        }
+      },
+      {
+        "id": "n395",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2370,
+          2371,
+          2372,
+          2373,
+          2374,
+          2375
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 20,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011937024842437399,
+          "y": -0.0010789900082912032,
+          "z": -0.0000782435131906688
+        },
+        "angle": {
+          "x": -0.00001424654711251666,
+          "y": -0.00010469538296376064,
+          "z": 0.000010481716400607087
+        }
+      },
+      {
+        "id": "n396",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2376,
+          2377,
+          2378,
+          2379,
+          2380,
+          2381
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 22.020305089104422,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00015071615112376887,
+          "y": -0.001119056292205929,
+          "z": -0.00019535967295052892
+        },
+        "angle": {
+          "x": -0.00006451308593801247,
+          "y": 0.000014075123774502786,
+          "z": 0.00002636181934589949
+        }
+      },
+      {
+        "id": "n397",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2382,
+          2383,
+          2384,
+          2385,
+          2386,
+          2387
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.0203050891044216,
+          "y": 15,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00012645691558636437,
+          "y": -0.0009493288252134261,
+          "z": -0.00014035219868762823
+        },
+        "angle": {
+          "x": 0.0005184086567504862,
+          "y": -0.000025072175155223587,
+          "z": 0.00023686140861593424
+        }
+      },
+      {
+        "id": "n398",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2388,
+          2389,
+          2390,
+          2391,
+          2392,
+          2393
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 3.140184917367551e-16,
+          "y": 15,
+          "z": 17.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011228444486562292,
+          "y": -0.0010735354249519252,
+          "z": -0.00018648118768626522
+        },
+        "angle": {
+          "x": -0.00005211733946081414,
+          "y": -0.000026243265539259037,
+          "z": 0.000033499173262550024
+        }
+      },
+      {
+        "id": "n399",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2394,
+          2395,
+          2396,
+          2397,
+          2398,
+          2399
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 15,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001364281614725603,
+          "y": -0.001110514419613747,
+          "z": -0.00023284928990866544
+        },
+        "angle": {
+          "x": 0.00005832116126440966,
+          "y": -0.000027421916090116922,
+          "z": -0.000003895986206615908
+        }
+      },
+      {
+        "id": "n400",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2400,
+          2401,
+          2402,
+          2403,
+          2404,
+          2405
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.0203050891044216,
+          "y": 15,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00019620528979481824,
+          "y": -0.0009922589500597568,
+          "z": -0.00023665376331437706
+        },
+        "angle": {
+          "x": 0.00013985483716767548,
+          "y": -0.000024060381271726617,
+          "z": 0.00008965139091968826
+        }
+      },
+      {
+        "id": "n401",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2406,
+          2407,
+          2408,
+          2409,
+          2410,
+          2411
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -3.140184917367551e-16,
+          "y": 15,
+          "z": 22.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00021299820669592952,
+          "y": -0.0008964500616893975,
+          "z": -0.0001929760832736561
+        },
+        "angle": {
+          "x": -0.000013472900616313225,
+          "y": -0.000025642323347871166,
+          "z": 0.00003585105550497775
+        }
+      },
+      {
+        "id": "n402",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2412,
+          2413,
+          2414,
+          2415,
+          2416,
+          2417
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 15,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001911926456201847,
+          "y": -0.0008231904512418048,
+          "z": -0.0001452611994582937
+        },
+        "angle": {
+          "x": -0.00007049559313713914,
+          "y": -0.000029345542048582734,
+          "z": 0.000055602401333810085
+        }
+      },
+      {
+        "id": "n403",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2418,
+          2419,
+          2420,
+          2421,
+          2422,
+          2423
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 25,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00026649539667952473,
+          "y": -0.001151771089785497,
+          "z": -0.00016657590030205214
+        },
+        "angle": {
+          "x": -0.000017528702359250453,
+          "y": -0.00004728338983176694,
+          "z": 0.000007354048995493011
+        }
+      },
+      {
+        "id": "n404",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2424,
+          2425,
+          2426,
+          2427,
+          2428,
+          2429
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 20,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0002873696404000793,
+          "y": -0.0010560813157070967,
+          "z": -0.00009583472493399516
+        },
+        "angle": {
+          "x": -0.0000029103460845869386,
+          "y": -0.00001302575443110048,
+          "z": 0.0000031087967519584482
+        }
+      },
+      {
+        "id": "n405",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2430,
+          2431,
+          2432,
+          2433,
+          2434,
+          2435
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 20,
+          "z": 22.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00025412818646443,
+          "y": -0.00104297966249671,
+          "z": -0.00009557038427196438
+        },
+        "angle": {
+          "x": -0.000006960651818197859,
+          "y": -0.000009509165383964412,
+          "z": 0.000018269476484155162
+        }
+      },
+      {
+        "id": "n406",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2436,
+          2437,
+          2438,
+          2439,
+          2440,
+          2441
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 22.020305089104422,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00028817696817787203,
+          "y": -0.0010771018518803343,
+          "z": -0.00011946253568019671
+        },
+        "angle": {
+          "x": -0.000025674159753704137,
+          "y": -0.00011355336252712944,
+          "z": 0.00005348774515871383
+        }
+      },
+      {
+        "id": "n407",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2442,
+          2443,
+          2444,
+          2445,
+          2446,
+          2447
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 22.857142857142858,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00035843962451643656,
+          "y": -0.00109130412081514,
+          "z": -0.000130175458690604
+        },
+        "angle": {
+          "x": -0.0000085884556497341,
+          "y": -0.000027591690367197366,
+          "z": 0.00002152878754610963
+        }
+      },
+      {
+        "id": "n408",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2448,
+          2449,
+          2450,
+          2451,
+          2452,
+          2453
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 22.020305089104422,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00018265882653691978,
+          "y": -0.0010952301205197498,
+          "z": -0.00013195316778449125
+        },
+        "angle": {
+          "x": 0.000005019032391880598,
+          "y": 0.00015328327843558103,
+          "z": 0.00008391084735600707
+        }
+      },
+      {
+        "id": "n409",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2454,
+          2455,
+          2456,
+          2457,
+          2458,
+          2459
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 20,
+          "z": 17.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011479298897275037,
+          "y": -0.0010714064251377275,
+          "z": -0.00012552226896664882
+        },
+        "angle": {
+          "x": -0.000007182878975083745,
+          "y": -0.00003925803368847897,
+          "z": 0.000014270353533850968
+        }
+      },
+      {
+        "id": "n410",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2460,
+          2461,
+          2462,
+          2463,
+          2464,
+          2465
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 17.979694910895578,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011263241240899533,
+          "y": -0.0010358287088951012,
+          "z": -0.00010552925194704326
+        },
+        "angle": {
+          "x": -0.000021695871643285542,
+          "y": -0.000043616886434230736,
+          "z": 0.000017378264591637244
+        }
+      },
+      {
+        "id": "n411",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2466,
+          2467,
+          2468,
+          2469,
+          2470,
+          2471
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 17.142857142857142,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00009547848169107263,
+          "y": -0.0010221726312137254,
+          "z": -0.00009685880076957278
+        },
+        "angle": {
+          "x": -0.000007011475671564604,
+          "y": -0.00002117569075792995,
+          "z": 0.000011010957368901162
+        }
+      },
+      {
+        "id": "n412",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2472,
+          2473,
+          2474,
+          2475,
+          2476,
+          2477
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 17.979694910895578,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00020416415341059654,
+          "y": -0.0010202218497356425,
+          "z": -0.00009387885251422291
+        },
+        "angle": {
+          "x": 0.000009560656354390351,
+          "y": 0.00004496779606165804,
+          "z": 0.000035963077088040725
+        }
+      },
+      {
+        "id": "n413",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2478,
+          2479,
+          2480,
+          2481,
+          2482,
+          2483
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 25,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00034977315422240123,
+          "y": -0.0014631766593721797,
+          "z": -0.0006233667186888259
+        },
+        "angle": {
+          "x": -0.00010431185835744973,
+          "y": -0.000052677756679296685,
+          "z": 0.0000541478660541412
+        }
+      },
+      {
+        "id": "n414",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2484,
+          2485,
+          2486,
+          2487,
+          2488,
+          2489
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 25,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0004954162801252413,
+          "y": -0.0012698033016777493,
+          "z": -0.00042785678342890796
+        },
+        "angle": {
+          "x": 0.0000532706667028591,
+          "y": -0.00006978572205106596,
+          "z": 0.00007097429566942342
+        }
+      },
+      {
+        "id": "n415",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2490,
+          2491,
+          2492,
+          2493,
+          2494,
+          2495
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 25,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00031185455014102364,
+          "y": -0.0004051995331103659,
+          "z": -0.0002795280220244961
+        },
+        "angle": {
+          "x": 0.00003167273184104076,
+          "y": -0.00004504889283425961,
+          "z": 0.00011885474011622713
+        }
+      },
+      {
+        "id": "n416",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2496,
+          2497,
+          2498,
+          2499,
+          2500,
+          2501
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.0203050891044216,
+          "y": 25,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0003647485937207687,
+          "y": -0.0011483564413498845,
+          "z": -0.0003011704070326707
+        },
+        "angle": {
+          "x": -0.0011793586948714626,
+          "y": -0.00006105318297225432,
+          "z": 0.0005470179330370462
+        }
+      },
+      {
+        "id": "n417",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2502,
+          2503,
+          2504,
+          2505,
+          2506,
+          2507
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 3.140184917367551e-16,
+          "y": 25,
+          "z": 22.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00041225616509490927,
+          "y": -0.0014561808529084536,
+          "z": -0.00040363132863946465
+        },
+        "angle": {
+          "x": 0.00011808661825210491,
+          "y": -0.000057001327080006524,
+          "z": 0.00008830211093665772
+        }
+      },
+      {
+        "id": "n418",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2508,
+          2509,
+          2510,
+          2511,
+          2512,
+          2513
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 25,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0003745318121053553,
+          "y": -0.0015663663937859082,
+          "z": -0.00050383222235023
+        },
+        "angle": {
+          "x": 0.000002902495819266435,
+          "y": -0.000056625671961351824,
+          "z": 0.0000475778207535301
+        }
+      },
+      {
+        "id": "n419",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2514,
+          2515,
+          2516,
+          2517,
+          2518,
+          2519
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 25,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0003197165344353601,
+          "y": -0.0018323750994444345,
+          "z": -0.000527838567286639
+        },
+        "angle": {
+          "x": 0.000031671268817214117,
+          "y": -0.000049818884968084616,
+          "z": 0.000057748922444192255
+        }
+      },
+      {
+        "id": "n420",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2520,
+          2521,
+          2522,
+          2523,
+          2524,
+          2525
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.0203050891044216,
+          "y": 25,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0002678138334310416,
+          "y": -0.0014383956581880885,
+          "z": -0.0005031178326783458
+        },
+        "angle": {
+          "x": -0.0005701231114383748,
+          "y": -0.00005404262218386551,
+          "z": 0.00027051522767797563
+        }
+      },
+      {
+        "id": "n421",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2526,
+          2527,
+          2528,
+          2529,
+          2530,
+          2531
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -3.140184917367551e-16,
+          "y": 25,
+          "z": 17.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00022933178453321638,
+          "y": -0.00127520344084579,
+          "z": -0.0004054445639027816
+        },
+        "angle": {
+          "x": -0.000054746439476141514,
+          "y": -0.00005588919019791389,
+          "z": 0.0000883026244601077
+        }
+      },
+      {
+        "id": "n422",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2532,
+          2533,
+          2534,
+          2535,
+          2536,
+          2537
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 25,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00027099414639358106,
+          "y": -0.0010203834080996792,
+          "z": -0.00030740313610432175
+        },
+        "angle": {
+          "x": 0.000705837701913214,
+          "y": -0.00005509789206230998,
+          "z": 0.00035720920249967083
+        }
+      },
+      {
+        "id": "n423",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2538,
+          2539,
+          2540,
+          2541,
+          2542,
+          2543
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 20,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00033556211906125795,
+          "y": -0.0011940054890783498,
+          "z": -0.00039265936574208214
+        },
+        "angle": {
+          "x": -0.00003292271746555818,
+          "y": -0.00009538272594879556,
+          "z": 0.00001906955841868255
+        }
+      },
+      {
+        "id": "n424",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2544,
+          2545,
+          2546,
+          2547,
+          2548,
+          2549
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 20,
+          "z": 17.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00034767644218118863,
+          "y": -0.0012231988277927534,
+          "z": -0.00042522184148747225
+        },
+        "angle": {
+          "x": -0.000021250493800550788,
+          "y": 0.000046348732016069983,
+          "z": 0.00006161501214072642
+        }
+      },
+      {
+        "id": "n425",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2550,
+          2551,
+          2552,
+          2553,
+          2554,
+          2555
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 22.020305089104422,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00045472815038071727,
+          "y": -0.001218076868361425,
+          "z": -0.0004513847991282184
+        },
+        "angle": {
+          "x": -0.000006099957470142214,
+          "y": 0.000008849021254422287,
+          "z": 0.000048356067887750105
+        }
+      },
+      {
+        "id": "n426",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2556,
+          2557,
+          2558,
+          2559,
+          2560,
+          2561
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 22.857142857142858,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0007131676926877162,
+          "y": -0.0012695421348094139,
+          "z": -0.0004559138791348507
+        },
+        "angle": {
+          "x": 0.0000251719781182087,
+          "y": 0.00005792332236154847,
+          "z": 0.00006570560232686788
+        }
+      },
+      {
+        "id": "n427",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2562,
+          2563,
+          2564,
+          2565,
+          2566,
+          2567
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 22.020305089104422,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000220685529775217,
+          "y": -0.0012909760204315901,
+          "z": -0.0004473524488531803
+        },
+        "angle": {
+          "x": -0.00004911954239057753,
+          "y": -0.0005093465352217021,
+          "z": 0.0002662650054946903
+        }
+      },
+      {
+        "id": "n428",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2568,
+          2569,
+          2570,
+          2571,
+          2572,
+          2573
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 20,
+          "z": 22.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000016694714824821432,
+          "y": -0.0012501369222952358,
+          "z": -0.0003920566406352967
+        },
+        "angle": {
+          "x": -0.000020288155350663458,
+          "y": 0.00006949363972494251,
+          "z": 0.0000616136495036434
+        }
+      },
+      {
+        "id": "n429",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2574,
+          2575,
+          2576,
+          2577,
+          2578,
+          2579
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 17.979694910895578,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007098609961657619,
+          "y": -0.0012471718735535123,
+          "z": -0.0003686321042241861
+        },
+        "angle": {
+          "x": -0.000006505402888401718,
+          "y": -0.00023735050470020372,
+          "z": -0.000046871825847363686
+        }
+      },
+      {
+        "id": "n430",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2580,
+          2581,
+          2582,
+          2583,
+          2584,
+          2585
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 17.142857142857142,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002826681539435607,
+          "y": -0.0012204296202956873,
+          "z": -0.0003695141592803226
+        },
+        "angle": {
+          "x": 0.000015980723640935554,
+          "y": 0.00005792121212718979,
+          "z": 0.000057522637062641534
+        }
+      },
+      {
+        "id": "n431",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2586,
+          2587,
+          2588,
+          2589,
+          2590,
+          2591
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 17.979694910895578,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00016305182601558785,
+          "y": -0.0012005687840518687,
+          "z": -0.0003793471488438325
+        },
+        "angle": {
+          "x": -0.000030438271559309435,
+          "y": -0.0007064548887452042,
+          "z": 0.0003277706082954568
+        }
+      },
+      {
+        "id": "n432",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2592,
+          2593,
+          2594,
+          2595,
+          2596,
+          2597
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 22.857142857142858,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0003661950709129471,
+          "y": -0.0011459296271663175,
+          "z": -0.000017519679675875673
+        },
+        "angle": {
+          "x": 0.0003498420738915789,
+          "y": 0.00006697809337178193,
+          "z": 0.0000035541355704437424
+        }
+      },
+      {
+        "id": "n433",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2598,
+          2599,
+          2600,
+          2601,
+          2602,
+          2603
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 22.020305089104422,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0003602751143026337,
+          "y": -0.0011481490665416552,
+          "z": -0.00017496476179177232
+        },
+        "angle": {
+          "x": -0.000018471783376434576,
+          "y": -0.00008558279211878563,
+          "z": 0.000005048296133978314
+        }
+      },
+      {
+        "id": "n434",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2604,
+          2605,
+          2606,
+          2607,
+          2608,
+          2609
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.857142857142857,
+          "y": 20,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000339082281955587,
+          "y": -0.0011379009696595702,
+          "z": -0.00020926482916993827
+        },
+        "angle": {
+          "x": 0.000005219441472286869,
+          "y": -0.000028386737562258355,
+          "z": 0.00001217051586571535
+        }
+      },
+      {
+        "id": "n435",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2610,
+          2611,
+          2612,
+          2613,
+          2614,
+          2615
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -2.020305089104421,
+          "y": 17.979694910895578,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0003104368925688731,
+          "y": -0.0011064956312979602,
+          "z": -0.00019605470424783068
+        },
+        "angle": {
+          "x": -0.000013371321379329678,
+          "y": 0.000016495717603302837,
+          "z": 0.000020545231347525156
+        }
+      },
+      {
+        "id": "n436",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2616,
+          2617,
+          2618,
+          2619,
+          2620,
+          2621
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 17.142857142857142,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0002914438866721724,
+          "y": -0.0010861198163670018,
+          "z": -0.00021819137005411283
+        },
+        "angle": {
+          "x": 0.00006665579268101382,
+          "y": -0.00001665266750227,
+          "z": 0.000004678938609792262
+        }
+      },
+      {
+        "id": "n437",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2622,
+          2623,
+          2624,
+          2625,
+          2626,
+          2627
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 17.979694910895578,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00028940205483035946,
+          "y": -0.0010799268221061344,
+          "z": -0.00012876781987343898
+        },
+        "angle": {
+          "x": -0.00012588515812025051,
+          "y": -0.00009640571877204596,
+          "z": 0.0000033133380496656683
+        }
+      },
+      {
+        "id": "n438",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2628,
+          2629,
+          2630,
+          2631,
+          2632,
+          2633
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.857142857142857,
+          "y": 20,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0003092668680493587,
+          "y": -0.0010863641232874107,
+          "z": -0.0003024183904061513
+        },
+        "angle": {
+          "x": -0.000078411158593854,
+          "y": 0.000018206691844598874,
+          "z": 0.000014142907128822494
+        }
+      },
+      {
+        "id": "n439",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2634,
+          2635,
+          2636,
+          2637,
+          2638,
+          2639
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 2.020305089104421,
+          "y": 22.020305089104422,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00034892587408862823,
+          "y": -0.0011193020170380595,
+          "z": -0.0004455968764509623
+        },
+        "angle": {
+          "x": -0.00019149091961612224,
+          "y": 0.0002912054319403775,
+          "z": 0.0000294720076517286
+        }
+      },
+      {
+        "id": "n440",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2640,
+          2641,
+          2642,
+          2643,
+          2644,
+          2645
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 15,
+          "y": -5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n441",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2646,
+          2647,
+          2648,
+          2649,
+          2650,
+          2651
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 10,
+          "y": -5,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n442",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2652,
+          2653,
+          2654,
+          2655,
+          2656,
+          2657
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 10,
+          "y": -5,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n443",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2658,
+          2659,
+          2660,
+          2661,
+          2662,
+          2663
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": -5,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n444",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2664,
+          2665,
+          2666,
+          2667,
+          2668,
+          2669
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": -5,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n445",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2670,
+          2671,
+          2672,
+          2673,
+          2674,
+          2675
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 10,
+          "y": -5,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n446",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2676,
+          2677,
+          2678,
+          2679,
+          2680,
+          2681
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": -5,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n447",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2682,
+          2683,
+          2684,
+          2685,
+          2686,
+          2687
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": -5,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n448",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2688,
+          2689,
+          2690,
+          2691,
+          2692,
+          2693
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 7.979694910895578,
+          "y": -5,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n449",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2694,
+          2695,
+          2696,
+          2697,
+          2698,
+          2699
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 10,
+          "y": -5,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n450",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2700,
+          2701,
+          2702,
+          2703,
+          2704,
+          2705
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": -5,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n451",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2706,
+          2707,
+          2708,
+          2709,
+          2710,
+          2711
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008022951977192783,
+          "y": -0.0005750329253582077,
+          "z": 0.000002470338163816408
+        },
+        "angle": {
+          "x": 0.00000921462435688672,
+          "y": -0.000009825476871971282,
+          "z": 0.000011203490069919117
+        }
+      },
+      {
+        "id": "n452",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2712,
+          2713,
+          2714,
+          2715,
+          2716,
+          2717
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 0,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000014952596633590354,
+          "y": -0.0002769954065899694,
+          "z": -0.00007464983403524757
+        },
+        "angle": {
+          "x": 0.0000011438560818302115,
+          "y": 0.000014397052279635786,
+          "z": -0.000010753805848127543
+        }
+      },
+      {
+        "id": "n453",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2718,
+          2719,
+          2720,
+          2721,
+          2722,
+          2723
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 0,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000306743753282146,
+          "y": -0.0002828983239372127,
+          "z": -0.0000016604365919606187
+        },
+        "angle": {
+          "x": 0.000001954218537246279,
+          "y": -0.000004799339465942721,
+          "z": -0.0000027842858952051242
+        }
+      },
+      {
+        "id": "n454",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2724,
+          2725,
+          2726,
+          2727,
+          2728,
+          2729
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": -3.140184917367551e-16,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00005112554897003724,
+          "y": -0.0002858806370072355,
+          "z": 0.000013054071509430507
+        },
+        "angle": {
+          "x": -4.414878612617341e-7,
+          "y": 0.000008781481184026609,
+          "z": -0.0000148731844976382
+        }
+      },
+      {
+        "id": "n455",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2730,
+          2731,
+          2732,
+          2733,
+          2734,
+          2735
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 2.020305089104421,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000803815882086606,
+          "y": -0.00037466283487113213,
+          "z": -0.000007769143939415786
+        },
+        "angle": {
+          "x": -0.000040320051097981715,
+          "y": 0.00006627386042052219,
+          "z": -0.00003697534402678045
+        }
+      },
+      {
+        "id": "n456",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2736,
+          2737,
+          2738,
+          2739,
+          2740,
+          2741
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 2.857142857142857,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00016453990386343316,
+          "y": -0.00038889451604425885,
+          "z": -0.000022940134213702693
+        },
+        "angle": {
+          "x": 0.000003153418500957111,
+          "y": -0.0000050226792530845096,
+          "z": -0.000013543773490049104
+        }
+      },
+      {
+        "id": "n457",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2742,
+          2743,
+          2744,
+          2745,
+          2746,
+          2747
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 2.0203050891044216,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00009391224495293849,
+          "y": -0.00036886545202901227,
+          "z": -0.00004309830317895727
+        },
+        "angle": {
+          "x": 0.000052932997986737054,
+          "y": -0.00006390903710928776,
+          "z": -0.000036138799275032456
+        }
+      },
+      {
+        "id": "n458",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2748,
+          2749,
+          2750,
+          2751,
+          2752,
+          2753
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 3.140184917367551e-16,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00005905383328321132,
+          "y": -0.00028270452332669605,
+          "z": -0.0000752802631743511
+        },
+        "angle": {
+          "x": -8.078204797238408e-7,
+          "y": -0.000011556269323957524,
+          "z": -0.000019404844554394737
+        }
+      },
+      {
+        "id": "n459",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2754,
+          2755,
+          2756,
+          2757,
+          2758,
+          2759
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": -2.020305089104421,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000048539572080947536,
+          "y": -0.00019613446850608583,
+          "z": -0.00004092431024542123
+        },
+        "angle": {
+          "x": -0.000053144721689649466,
+          "y": 0.0001867190793726513,
+          "z": -0.00008773024150747456
+        }
+      },
+      {
+        "id": "n460",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2760,
+          2761,
+          2762,
+          2763,
+          2764,
+          2765
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": -2.857142857142857,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011246851035297298,
+          "y": -0.0001809890701619095,
+          "z": -0.000020689538075898302
+        },
+        "angle": {
+          "x": -9.154619154218752e-8,
+          "y": 0.000002247662363121414,
+          "z": -0.00002073427529726499
+        }
+      },
+      {
+        "id": "n461",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2766,
+          2767,
+          2768,
+          2769,
+          2770,
+          2771
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": -2.0203050891044216,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000007172146831238389,
+          "y": -0.00019847097735902326,
+          "z": -0.000005576855724792985
+        },
+        "angle": {
+          "x": 0.000038110038514189084,
+          "y": -0.0001433949191652782,
+          "z": -0.00007045121343494757
+        }
+      },
+      {
+        "id": "n462",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2772,
+          2773,
+          2774,
+          2775,
+          2776,
+          2777
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 5,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00010335695581931072,
+          "y": -0.0005797414454645449,
+          "z": -0.00002847904863512832
+        },
+        "angle": {
+          "x": 0.000002499139461900107,
+          "y": -0.000014528753633007414,
+          "z": -0.00004353433243059863
+        }
+      },
+      {
+        "id": "n463",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2778,
+          2779,
+          2780,
+          2781,
+          2782,
+          2783
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 5,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003913109607852131,
+          "y": -0.0005684621259046955,
+          "z": -0.000016703344455978405
+        },
+        "angle": {
+          "x": -0.0000010767859594691434,
+          "y": -0.000011517225872156428,
+          "z": -0.000005218109840680666
+        }
+      },
+      {
+        "id": "n464",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2784,
+          2785,
+          2786,
+          2787,
+          2788,
+          2789
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 5,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007085115881846042,
+          "y": -0.000652185225083571,
+          "z": -0.000008665598417722919
+        },
+        "angle": {
+          "x": -0.0000046389328078199294,
+          "y": -0.000009689694679050105,
+          "z": 0.0000024343718903704073
+        }
+      },
+      {
+        "id": "n465",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2790,
+          2791,
+          2792,
+          2793,
+          2794,
+          2795
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 5,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006085222476658734,
+          "y": -0.0006626127897288382,
+          "z": -0.00001276521145622802
+        },
+        "angle": {
+          "x": 0.00016744125714499963,
+          "y": -0.000007721985730287168,
+          "z": -0.000055313473802995194
+        }
+      },
+      {
+        "id": "n466",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2796,
+          2797,
+          2798,
+          2799,
+          2800,
+          2801
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 5,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000507822522482318,
+          "y": -0.0006783179714930246,
+          "z": -0.000025786999350675756
+        },
+        "angle": {
+          "x": 0.00010394340675165965,
+          "y": -0.00000913958463478885,
+          "z": -0.00002770714324663975
+        }
+      },
+      {
+        "id": "n467",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2802,
+          2803,
+          2804,
+          2805,
+          2806,
+          2807
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 5,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000059313724881588185,
+          "y": -0.0005266973955977187,
+          "z": -0.000042094671054411183
+        },
+        "angle": {
+          "x": -0.0005088724952618051,
+          "y": -0.00001184488714568079,
+          "z": -0.0002437730455417202
+        }
+      },
+      {
+        "id": "n468",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2808,
+          2809,
+          2810,
+          2811,
+          2812,
+          2813
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 5,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006742521368694586,
+          "y": -0.00016177792270868655,
+          "z": -0.00004940708151009905
+        },
+        "angle": {
+          "x": 0.0000018301839035279235,
+          "y": -0.000010153301541810904,
+          "z": -0.00006321456339680539
+        }
+      },
+      {
+        "id": "n469",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2814,
+          2815,
+          2816,
+          2817,
+          2818,
+          2819
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895578,
+          "y": 5,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008077145205914503,
+          "y": -0.0005193105212436728,
+          "z": -0.00004620878543821997
+        },
+        "angle": {
+          "x": 0.0007319507731491605,
+          "y": -0.00001241884905901197,
+          "z": -0.00032135328569514454
+        }
+      },
+      {
+        "id": "n470",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2820,
+          2821,
+          2822,
+          2823,
+          2824,
+          2825
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 5,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008999453382613226,
+          "y": -0.0006717175056079114,
+          "z": -0.000027716848764446835
+        },
+        "angle": {
+          "x": -0.00010163283057492259,
+          "y": -0.00000931238257490594,
+          "z": -0.000032096184883892395
+        }
+      },
+      {
+        "id": "n471",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2826,
+          2827,
+          2828,
+          2829,
+          2830,
+          2831
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 5,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008238793192936253,
+          "y": -0.0006695790653369275,
+          "z": -0.000012494902114339685
+        },
+        "angle": {
+          "x": -0.000003229639171726188,
+          "y": -0.000009239493628400934,
+          "z": -1.5904894893436266e-7
+        }
+      },
+      {
+        "id": "n472",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2832,
+          2833,
+          2834,
+          2835,
+          2836,
+          2837
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": -2.857142857142857,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000030003069840878747,
+          "y": -0.00019739050179663615,
+          "z": -0.00013704236368065548
+        },
+        "angle": {
+          "x": 0.00008126161208528677,
+          "y": -0.00003417261217135159,
+          "z": 0.00003905666667911143
+        }
+      },
+      {
+        "id": "n473",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2838,
+          2839,
+          2840,
+          2841,
+          2842,
+          2843
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": -2.020305089104421,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000026095396492859243,
+          "y": -0.00015557267524718974,
+          "z": -4.844405436375089e-10
+        },
+        "angle": {
+          "x": -0.00006395318507424701,
+          "y": -0.00009432255350144472,
+          "z": -0.000013056342111737729
+        }
+      },
+      {
+        "id": "n474",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2844,
+          2845,
+          2846,
+          2847,
+          2848,
+          2849
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 0,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00002432404327301432,
+          "y": -0.00020685626387875443,
+          "z": -0.00005027275634815008
+        },
+        "angle": {
+          "x": -0.000007286060835514862,
+          "y": 0.00004248397842409453,
+          "z": 0.000004279429173794663
+        }
+      },
+      {
+        "id": "n475",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2850,
+          2851,
+          2852,
+          2853,
+          2854,
+          2855
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 2.020305089104421,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000007665603435103898,
+          "y": -0.0002666569561439384,
+          "z": -0.00002944060424623271
+        },
+        "angle": {
+          "x": 0.000005599422629137878,
+          "y": 0.000011375731895626197,
+          "z": 0.00002376916823799351
+        }
+      },
+      {
+        "id": "n476",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2856,
+          2857,
+          2858,
+          2859,
+          2860,
+          2861
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 2.857142857142857,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000006832025030533186,
+          "y": -0.0003465641717951097,
+          "z": -0.0000017724270207294617
+        },
+        "angle": {
+          "x": 0.00005447532922218774,
+          "y": -0.000008869392534788388,
+          "z": 0.00003743841809325618
+        }
+      },
+      {
+        "id": "n477",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2862,
+          2863,
+          2864,
+          2865,
+          2866,
+          2867
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 2.020305089104421,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000003701634276968834,
+          "y": -0.0003800939192281112,
+          "z": -0.00006527830710592297
+        },
+        "angle": {
+          "x": -0.000012463000767275186,
+          "y": -0.00003659612843939199,
+          "z": -0.00002049107120367081
+        }
+      },
+      {
+        "id": "n478",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2868,
+          2869,
+          2870,
+          2871,
+          2872,
+          2873
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 0,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00001176458269422696,
+          "y": -0.00033235897226616736,
+          "z": -0.00007072428486262395
+        },
+        "angle": {
+          "x": 0.000018017155319034422,
+          "y": 0.00003698944478712772,
+          "z": 0.0000031573634063831173
+        }
+      },
+      {
+        "id": "n479",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2874,
+          2875,
+          2876,
+          2877,
+          2878,
+          2879
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": -2.020305089104421,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000009041396655793733,
+          "y": -0.0002793570540074279,
+          "z": -0.00013807861338769684
+        },
+        "angle": {
+          "x": 0.00004049978781423558,
+          "y": -0.000017288410564009705,
+          "z": 0.00002677808571509319
+        }
+      },
+      {
+        "id": "n480",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2880,
+          2881,
+          2882,
+          2883,
+          2884,
+          2885
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 2.857142857142857,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00002353000081979775,
+          "y": -0.00040150351530433696,
+          "z": -0.000015006445609962803
+        },
+        "angle": {
+          "x": 0.0000032907888125076247,
+          "y": -0.000005235218456552708,
+          "z": -5.635827863549237e-7
+        }
+      },
+      {
+        "id": "n481",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2886,
+          2887,
+          2888,
+          2889,
+          2890,
+          2891
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 2.020305089104421,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000006142156719022298,
+          "y": -0.00036584058715174897,
+          "z": -0.000027866942595545688
+        },
+        "angle": {
+          "x": -0.0000035791459482550886,
+          "y": -0.0000073827763935636616,
+          "z": -0.00003584513998500481
+        }
+      },
+      {
+        "id": "n482",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2892,
+          2893,
+          2894,
+          2895,
+          2896,
+          2897
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 0,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000017704223671044033,
+          "y": -0.00027924921228988903,
+          "z": -0.00002634291927534907
+        },
+        "angle": {
+          "x": -0.00000381754917075309,
+          "y": -0.0000071136494000912725,
+          "z": -0.0000034248611461085755
+        }
+      },
+      {
+        "id": "n483",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2898,
+          2899,
+          2900,
+          2901,
+          2902,
+          2903
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": -2.020305089104421,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000006378188057713721,
+          "y": -0.00019682110746629855,
+          "z": -0.000012912954158141662
+        },
+        "angle": {
+          "x": -0.000005188410926087045,
+          "y": -0.000002959415146204661,
+          "z": 0.000031489805828291874
+        }
+      },
+      {
+        "id": "n484",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2904,
+          2905,
+          2906,
+          2907,
+          2908,
+          2909
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": -2.857142857142857,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000008030523262795331,
+          "y": -0.0001642855606454595,
+          "z": -0.000003175432552460299
+        },
+        "angle": {
+          "x": -0.0000073206806673038675,
+          "y": -0.0000016431523914167512,
+          "z": 1.2993067630504392e-7
+        }
+      },
+      {
+        "id": "n485",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2910,
+          2911,
+          2912,
+          2913,
+          2914,
+          2915
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": -2.020305089104421,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00002475038109150171,
+          "y": -0.00019842071375733157,
+          "z": -0.000005690357582974766
+        },
+        "angle": {
+          "x": -0.000002657170113337651,
+          "y": -1.4450885242027335e-7,
+          "z": -0.00003525033287266834
+        }
+      },
+      {
+        "id": "n486",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2916,
+          2917,
+          2918,
+          2919,
+          2920,
+          2921
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 0,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004869200462382665,
+          "y": -0.00028588971364505294,
+          "z": -0.000010850386919243899
+        },
+        "angle": {
+          "x": -4.6427909960294477e-7,
+          "y": 0.0000049930536684133035,
+          "z": -0.000003908555590384669
+        }
+      },
+      {
+        "id": "n487",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2922,
+          2923,
+          2924,
+          2925,
+          2926,
+          2927
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 2.020305089104421,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003819168384914314,
+          "y": -0.00036961586961140313,
+          "z": -0.000007653661933938176
+        },
+        "angle": {
+          "x": 0.0000034448583567060506,
+          "y": -0.000004600977435891245,
+          "z": 0.00003188322089238922
+        }
+      },
+      {
+        "id": "n488",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2928,
+          2929,
+          2930,
+          2931,
+          2932,
+          2933
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 15,
+          "y": -5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n489",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2934,
+          2935,
+          2936,
+          2937,
+          2938,
+          2939
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 10,
+          "y": -5,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n490",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2940,
+          2941,
+          2942,
+          2943,
+          2944,
+          2945
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": -5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n491",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2946,
+          2947,
+          2948,
+          2949,
+          2950,
+          2951
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": -5,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n492",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2952,
+          2953,
+          2954,
+          2955,
+          2956,
+          2957
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 10,
+          "y": -5,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n493",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2958,
+          2959,
+          2960,
+          2961,
+          2962,
+          2963
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": -5,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n494",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2964,
+          2965,
+          2966,
+          2967,
+          2968,
+          2969
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": -5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n495",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2970,
+          2971,
+          2972,
+          2973,
+          2974,
+          2975
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 7.979694910895578,
+          "y": -5,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n496",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2976,
+          2977,
+          2978,
+          2979,
+          2980,
+          2981
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 10,
+          "y": -5,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n497",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2982,
+          2983,
+          2984,
+          2985,
+          2986,
+          2987
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": -5,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n498",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2988,
+          2989,
+          2990,
+          2991,
+          2992,
+          2993
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000021519721757576718,
+          "y": -0.0005707907208864982,
+          "z": 0.000036150533053316634
+        },
+        "angle": {
+          "x": 0.000006453165226722125,
+          "y": -0.000009480102518720664,
+          "z": 0.000001122855606987184
+        }
+      },
+      {
+        "id": "n499",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2994,
+          2995,
+          2996,
+          2997,
+          2998,
+          2999
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 0,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000036087918397787136,
+          "y": -0.00028171799729155746,
+          "z": 0.00003040485841823034
+        },
+        "angle": {
+          "x": 0.000005584725106798216,
+          "y": -0.000004091000929624874,
+          "z": 1.1500361635845939e-7
+        }
+      },
+      {
+        "id": "n500",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3000,
+          3001,
+          3002,
+          3003,
+          3004,
+          3005
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": -3.140184917367551e-16,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000014522058894589134,
+          "y": -0.0002876473501796777,
+          "z": 0.000048656386267060177
+        },
+        "angle": {
+          "x": 0.000004174464679704424,
+          "y": 0.000007875287714255593,
+          "z": -0.0000024192845547564584
+        }
+      },
+      {
+        "id": "n501",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3006,
+          3007,
+          3008,
+          3009,
+          3010,
+          3011
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 2.020305089104421,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000014512645794915544,
+          "y": -0.0003715470302813837,
+          "z": 0.000033616108662392084
+        },
+        "angle": {
+          "x": -0.000037903831766539385,
+          "y": -0.0000044930668481833405,
+          "z": 8.703689654418024e-7
+        }
+      },
+      {
+        "id": "n502",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3012,
+          3013,
+          3014,
+          3015,
+          3016,
+          3017
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 2.857142857142857,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000022743012010561493,
+          "y": -0.0003887534038873706,
+          "z": 0.000022717621331319544
+        },
+        "angle": {
+          "x": 0.000002124212660061547,
+          "y": -0.000005118217767301752,
+          "z": 8.176894012763958e-9
+        }
+      },
+      {
+        "id": "n503",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3018,
+          3019,
+          3020,
+          3021,
+          3022,
+          3023
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 2.0203050891044216,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003106682659693715,
+          "y": -0.00036748934764795174,
+          "z": 0.000008762532872416114
+        },
+        "angle": {
+          "x": 0.000045507603866933674,
+          "y": 0.0000033981175384369407,
+          "z": 0.0000019359383158077706
+        }
+      },
+      {
+        "id": "n504",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3024,
+          3025,
+          3026,
+          3027,
+          3028,
+          3029
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 3.140184917367551e-16,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000031096114456851015,
+          "y": -0.0002793666874444911,
+          "z": -0.000020330839805517788
+        },
+        "angle": {
+          "x": 0.000003663221205263164,
+          "y": -0.000013676167149482383,
+          "z": -0.000005183956034169221
+        }
+      },
+      {
+        "id": "n505",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3030,
+          3031,
+          3032,
+          3033,
+          3034,
+          3035
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": -2.020305089104421,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000008235923309230655,
+          "y": -0.00019698490349392042,
+          "z": -0.000004491847517324232
+        },
+        "angle": {
+          "x": -0.000037464780495309386,
+          "y": 0.00005539966051569375,
+          "z": -0.000028522739292311125
+        }
+      },
+      {
+        "id": "n506",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3036,
+          3037,
+          3038,
+          3039,
+          3040,
+          3041
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": -2.857142857142857,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000038700486111968176,
+          "y": -0.0001786563532850552,
+          "z": 0.000006251533966864507
+        },
+        "angle": {
+          "x": 0.0000011020093985736304,
+          "y": -6.827351831272468e-7,
+          "z": -0.000007611422273900621
+        }
+      },
+      {
+        "id": "n507",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3042,
+          3043,
+          3044,
+          3045,
+          3046,
+          3047
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": -2.0203050891044216,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000013507862176291785,
+          "y": -0.00019853833306581297,
+          "z": 0.000019676732970701338
+        },
+        "angle": {
+          "x": 0.00004463978917517242,
+          "y": -0.00004765002153030882,
+          "z": -0.000023133675664323336
+        }
+      },
+      {
+        "id": "n508",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3048,
+          3049,
+          3050,
+          3051,
+          3052,
+          3053
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 5,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000025412691913004735,
+          "y": -0.0005656667862915737,
+          "z": 0.000009338134322563002
+        },
+        "angle": {
+          "x": 0.0000011142313465600563,
+          "y": -0.000011386782126939818,
+          "z": 0.000003920937463271183
+        }
+      },
+      {
+        "id": "n509",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3054,
+          3055,
+          3056,
+          3057,
+          3058,
+          3059
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000012024554249061525,
+          "y": -0.0005497206453852439,
+          "z": 0.00001678798858946791
+        },
+        "angle": {
+          "x": -9.793700613655051e-7,
+          "y": -0.000010834074473163774,
+          "z": 0.000003809330975053125
+        }
+      },
+      {
+        "id": "n510",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3060,
+          3061,
+          3062,
+          3063,
+          3064,
+          3065
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 5,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000029695516725790037,
+          "y": -0.0005696881636986217,
+          "z": 0.00001516280650245164
+        },
+        "angle": {
+          "x": -0.00005730131558494944,
+          "y": -0.000009377816356178976,
+          "z": 0.000023815894753556838
+        }
+      },
+      {
+        "id": "n511",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3066,
+          3067,
+          3068,
+          3069,
+          3070,
+          3071
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 5,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000014132480108840013,
+          "y": -0.0005782546483716617,
+          "z": 1.2155916016775893e-7
+        },
+        "angle": {
+          "x": 0.000012152425823425428,
+          "y": -0.000009395280201843736,
+          "z": -6.461083437820094e-7
+        }
+      },
+      {
+        "id": "n512",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3072,
+          3073,
+          3074,
+          3075,
+          3076,
+          3077
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 5,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00000531970253096484,
+          "y": -0.0005669020514003592,
+          "z": -0.000016639188797198315
+        },
+        "angle": {
+          "x": -0.00003159978926500712,
+          "y": -0.000012211099952149664,
+          "z": -0.0000160905804593031
+        }
+      },
+      {
+        "id": "n513",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3078,
+          3079,
+          3080,
+          3081,
+          3082,
+          3083
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000036294798724826122,
+          "y": -0.0005378290620213962,
+          "z": -0.000024553291465855232
+        },
+        "angle": {
+          "x": -7.396590789897997e-7,
+          "y": -0.000011932056985202781,
+          "z": -0.000005297798086623531
+        }
+      },
+      {
+        "id": "n514",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3084,
+          3085,
+          3086,
+          3087,
+          3088,
+          3089
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895578,
+          "y": 5,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000015864419813249396,
+          "y": -0.0005703979754746911,
+          "z": -0.00002083001282075215
+        },
+        "angle": {
+          "x": 0.00007154691525498136,
+          "y": -0.000009905882302950565,
+          "z": -0.00003076951875659092
+        }
+      },
+      {
+        "id": "n515",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3090,
+          3091,
+          3092,
+          3093,
+          3094,
+          3095
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 5,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000272847650029335,
+          "y": -0.0005830285517699284,
+          "z": -0.00000660552866380808
+        },
+        "angle": {
+          "x": -0.000013738467993121796,
+          "y": -0.000008846395679039317,
+          "z": -7.954942534318748e-7
+        }
+      },
+      {
+        "id": "n516",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3096,
+          3097,
+          3098,
+          3099,
+          3100,
+          3101
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 5,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000019237038911345204,
+          "y": -0.000573845658804708,
+          "z": 0.000009125011743940476
+        },
+        "angle": {
+          "x": 0.00002633589047421032,
+          "y": -0.000011553419191196079,
+          "z": 0.0000133329468543607
+        }
+      },
+      {
+        "id": "n517",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3102,
+          3103,
+          3104,
+          3105,
+          3106,
+          3107
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 2.857142857142857,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00001519529078480628,
+          "y": -0.00039966949875026815,
+          "z": 0.000006993473211185164
+        },
+        "angle": {
+          "x": -0.000005170575210735203,
+          "y": -0.000005032654135532851,
+          "z": 3.819419303305798e-7
+        }
+      },
+      {
+        "id": "n518",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3108,
+          3109,
+          3110,
+          3111,
+          3112,
+          3113
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 2.020305089104421,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003009369377849544,
+          "y": -0.0003673001343239642,
+          "z": 0.0000015832881018102678
+        },
+        "angle": {
+          "x": -0.000003632877648810296,
+          "y": -0.000003756637358985361,
+          "z": -0.000032445112039096376
+        }
+      },
+      {
+        "id": "n519",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3114,
+          3115,
+          3116,
+          3117,
+          3118,
+          3119
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 0,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004294303216413329,
+          "y": -0.00028343834810124255,
+          "z": 0.000006027964877998053
+        },
+        "angle": {
+          "x": -5.984076680694926e-7,
+          "y": 0.00000401527751498497,
+          "z": 0.0000025646746840227257
+        }
+      },
+      {
+        "id": "n520",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3120,
+          3121,
+          3122,
+          3123,
+          3124,
+          3125
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": -2.020305089104421,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000021423887890422645,
+          "y": -0.00019729910387817024,
+          "z": 0.0000037523679731522826
+        },
+        "angle": {
+          "x": 9.85869181540559e-7,
+          "y": 6.365559094144819e-7,
+          "z": 0.00003437072878690297
+        }
+      },
+      {
+        "id": "n521",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3126,
+          3127,
+          3128,
+          3129,
+          3130,
+          3131
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": -2.857142857142857,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000005377175286810044,
+          "y": -0.00016375168428206364,
+          "z": 0.0000010515690604697475
+        },
+        "angle": {
+          "x": 0.000006927704669914486,
+          "y": -0.0000013867665218035804,
+          "z": -1.6999219818711832e-7
+        }
+      },
+      {
+        "id": "n522",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3132,
+          3133,
+          3134,
+          3135,
+          3136,
+          3137
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": -2.020305089104421,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000009222223120441618,
+          "y": -0.00019653082908425602,
+          "z": 0.000009945501330976946
+        },
+        "angle": {
+          "x": 0.000003445958203043271,
+          "y": -0.000003266821949842966,
+          "z": -0.00003195717241591464
+        }
+      },
+      {
+        "id": "n523",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3138,
+          3139,
+          3140,
+          3141,
+          3142,
+          3143
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 0,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000022546676424968576,
+          "y": -0.00027942590308252687,
+          "z": 0.00002007039806439956
+        },
+        "angle": {
+          "x": 0.000002856308367831328,
+          "y": -0.000005459703805548579,
+          "z": 0.0000021689893671601023
+        }
+      },
+      {
+        "id": "n524",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3144,
+          3145,
+          3146,
+          3147,
+          3148,
+          3149
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 2.020305089104421,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000001291552498800615,
+          "y": -0.00036495932662510846,
+          "z": 0.000021057522022183115
+        },
+        "angle": {
+          "x": 0.000003600994498279518,
+          "y": -0.000008026876635589448,
+          "z": 0.00003471817257396875
+        }
+      },
+      {
+        "id": "n525",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3150,
+          3151,
+          3152,
+          3153,
+          3154,
+          3155
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 15,
+          "y": -5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n526",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3156,
+          3157,
+          3158,
+          3159,
+          3160,
+          3161
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 10,
+          "y": -5,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n527",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3162,
+          3163,
+          3164,
+          3165,
+          3166,
+          3167
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": -5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n528",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3168,
+          3169,
+          3170,
+          3171,
+          3172,
+          3173
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": -5,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n529",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3174,
+          3175,
+          3176,
+          3177,
+          3178,
+          3179
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 10,
+          "y": -5,
+          "z": 17.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n530",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3180,
+          3181,
+          3182,
+          3183,
+          3184,
+          3185
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": -5,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n531",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3186,
+          3187,
+          3188,
+          3189,
+          3190,
+          3191
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": -5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n532",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3192,
+          3193,
+          3194,
+          3195,
+          3196,
+          3197
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 7.979694910895578,
+          "y": -5,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n533",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3198,
+          3199,
+          3200,
+          3201,
+          3202,
+          3203
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 10,
+          "y": -5,
+          "z": 22.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n534",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3204,
+          3205,
+          3206,
+          3207,
+          3208,
+          3209
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": -5,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n535",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3210,
+          3211,
+          3212,
+          3213,
+          3214,
+          3215
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004708820200643956,
+          "y": -0.00058331876905838,
+          "z": 0.00006785874871910055
+        },
+        "angle": {
+          "x": 0.000005141417383283542,
+          "y": -0.000009231792878525805,
+          "z": -0.000005008219831312894
+        }
+      },
+      {
+        "id": "n536",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3216,
+          3217,
+          3218,
+          3219,
+          3220,
+          3221
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 0,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000031526154353087053,
+          "y": -0.000291250861448312,
+          "z": 0.00010310511769511958
+        },
+        "angle": {
+          "x": 0.000005774614901534472,
+          "y": 0.000010072491305687027,
+          "z": 0.00000788246174462313
+        }
+      },
+      {
+        "id": "n537",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3222,
+          3223,
+          3224,
+          3225,
+          3226,
+          3227
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": -3.140184917367551e-16,
+          "z": 22.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000028994497423491798,
+          "y": -0.0002993741424865262,
+          "z": 0.00010338003639069293
+        },
+        "angle": {
+          "x": 0.00000809360754454482,
+          "y": -0.0000014929635316806095,
+          "z": 0.000011781733229697324
+        }
+      },
+      {
+        "id": "n538",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3228,
+          3229,
+          3230,
+          3231,
+          3232,
+          3233
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 2.020305089104421,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00005428648635263737,
+          "y": -0.00038251266351843307,
+          "z": 0.0000842716582724367
+        },
+        "angle": {
+          "x": -0.00004565390099598111,
+          "y": -0.000050731466942907266,
+          "z": 0.000027485136983211038
+        }
+      },
+      {
+        "id": "n539",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3234,
+          3235,
+          3236,
+          3237,
+          3238,
+          3239
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 2.857142857142857,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00010235615099803117,
+          "y": -0.0003954823427277752,
+          "z": 0.00006740194658104414
+        },
+        "angle": {
+          "x": 0.0000036442125912655247,
+          "y": -0.000006420521963365869,
+          "z": 0.00001011384962657121
+        }
+      },
+      {
+        "id": "n540",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3240,
+          3241,
+          3242,
+          3243,
+          3244,
+          3245
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 2.0203050891044216,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000034838881114123525,
+          "y": -0.0003737745459386951,
+          "z": 0.00004881943251976654
+        },
+        "angle": {
+          "x": 0.000048292547310289786,
+          "y": 0.00003962041342085631,
+          "z": 0.000024686786510008072
+        }
+      },
+      {
+        "id": "n541",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3246,
+          3247,
+          3248,
+          3249,
+          3250,
+          3251
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 3.140184917367551e-16,
+          "z": 17.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000012253099515071648,
+          "y": -0.0002796632224424589,
+          "z": 0.000014393599054115124
+        },
+        "angle": {
+          "x": 0.000007883083612959398,
+          "y": -0.000004366517727202254,
+          "z": 0.000007430086136153608
+        }
+      },
+      {
+        "id": "n542",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3252,
+          3253,
+          3254,
+          3255,
+          3256,
+          3257
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": -2.020305089104421,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000003024549826474164,
+          "y": -0.00019790432946906802,
+          "z": 0.000020298075941958218
+        },
+        "angle": {
+          "x": -0.000030987807521286675,
+          "y": -0.00006972242312523339,
+          "z": 0.000032241860754784104
+        }
+      },
+      {
+        "id": "n543",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3258,
+          3259,
+          3260,
+          3261,
+          3262,
+          3263
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": -2.857142857142857,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00005289843251767875,
+          "y": -0.00018445745304162495,
+          "z": 0.000032339609610127436
+        },
+        "angle": {
+          "x": 0.0000047026716222512525,
+          "y": 5.610334629229787e-7,
+          "z": 0.000009097901243823497
+        }
+      },
+      {
+        "id": "n544",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3264,
+          3265,
+          3266,
+          3267,
+          3268,
+          3269
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": -2.0203050891044216,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000012037657351377141,
+          "y": -0.00020452653286509237,
+          "z": 0.000055839202353240384
+        },
+        "angle": {
+          "x": 0.00006164677984764275,
+          "y": 0.00009888588729979226,
+          "z": 0.00004556598608946445
+        }
+      },
+      {
+        "id": "n545",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3270,
+          3271,
+          3272,
+          3273,
+          3274,
+          3275
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 5,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008947228907274243,
+          "y": -0.0005728507914147993,
+          "z": 0.000020239689049827837
+        },
+        "angle": {
+          "x": -0.000007667960212465812,
+          "y": -0.000014000366322135276,
+          "z": 0.00003982279745589736
+        }
+      },
+      {
+        "id": "n546",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3276,
+          3277,
+          3278,
+          3279,
+          3280,
+          3281
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000052637232988810324,
+          "y": -0.00039425973613361657,
+          "z": 0.000042073371221090436
+        },
+        "angle": {
+          "x": -0.000006667677235734714,
+          "y": -0.000011806624897938362,
+          "z": 0.000026884708729022547
+        }
+      },
+      {
+        "id": "n547",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3282,
+          3283,
+          3284,
+          3285,
+          3286,
+          3287
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 5,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006694366664624306,
+          "y": -0.0005403950829127807,
+          "z": 0.000037719399568120035
+        },
+        "angle": {
+          "x": -0.0003577116662196487,
+          "y": -0.000012745149265896551,
+          "z": 0.0001541365241100924
+        }
+      },
+      {
+        "id": "n548",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3288,
+          3289,
+          3290,
+          3291,
+          3292,
+          3293
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 5,
+          "z": 22.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007652161934435653,
+          "y": -0.0006108334156207451,
+          "z": 0.000019611077888884845
+        },
+        "angle": {
+          "x": 0.000016847187968633537,
+          "y": -0.000008659617298089108,
+          "z": 0.000024849396895635703
+        }
+      },
+      {
+        "id": "n549",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3294,
+          3295,
+          3296,
+          3297,
+          3298,
+          3299
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 5,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006979023710773379,
+          "y": -0.0006573164614911196,
+          "z": 0.000005164482230238966
+        },
+        "angle": {
+          "x": 0.00017868258470929955,
+          "y": -0.000008708349849581795,
+          "z": 0.00008105453373352709
+        }
+      },
+      {
+        "id": "n550",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3300,
+          3301,
+          3302,
+          3303,
+          3304,
+          3305
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00005914791170737715,
+          "y": -0.0007473243140525715,
+          "z": 8.605997258574256e-7
+        },
+        "angle": {
+          "x": 0.0000029725119570754986,
+          "y": -0.000011082253803373165,
+          "z": 0.000016804658279341427
+        }
+      },
+      {
+        "id": "n551",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3306,
+          3307,
+          3308,
+          3309,
+          3310,
+          3311
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895578,
+          "y": 5,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000047806399458685425,
+          "y": -0.0006485109868820324,
+          "z": 0.000005193615459496679
+        },
+        "angle": {
+          "x": -0.0003232829384276688,
+          "y": -0.00000751477899595223,
+          "z": 0.00013062635528675732
+        }
+      },
+      {
+        "id": "n552",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3312,
+          3313,
+          3314,
+          3315,
+          3316,
+          3317
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 5,
+          "z": 17.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000037935556284878284,
+          "y": -0.000612210021066782,
+          "z": 0.00001706782479329685
+        },
+        "angle": {
+          "x": -0.000011663892280721857,
+          "y": -0.000008022799374912813,
+          "z": 0.000018840614691359807
+        }
+      },
+      {
+        "id": "n553",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3318,
+          3319,
+          3320,
+          3321,
+          3322,
+          3323
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 5,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004147045279308856,
+          "y": -0.0005553783914764994,
+          "z": 0.00003524115607516522
+        },
+        "angle": {
+          "x": 0.00025888316875350575,
+          "y": -0.00001241630522860215,
+          "z": 0.00011763209446200781
+        }
+      },
+      {
+        "id": "n554",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3324,
+          3325,
+          3326,
+          3327,
+          3328,
+          3329
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 2.857142857142857,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000011163780528108817,
+          "y": -0.0003446707126185603,
+          "z": -0.0000034430627364560794
+        },
+        "angle": {
+          "x": -0.00006154919018753651,
+          "y": -0.000011537283560257052,
+          "z": -0.000038466244880780036
+        }
+      },
+      {
+        "id": "n555",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3330,
+          3331,
+          3332,
+          3333,
+          3334,
+          3335
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 2.020305089104421,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00000414909309072065,
+          "y": -0.00026352586423399667,
+          "z": 0.000024754818016666655
+        },
+        "angle": {
+          "x": -0.000004968607108887214,
+          "y": 0.000011899197304867652,
+          "z": -0.000024351955370973817
+        }
+      },
+      {
+        "id": "n556",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3336,
+          3337,
+          3338,
+          3339,
+          3340,
+          3341
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 0,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000023491762256593795,
+          "y": -0.00020371238512330623,
+          "z": 0.000044750592628235903
+        },
+        "angle": {
+          "x": 0.000006126394335901608,
+          "y": 0.00003868485024702648,
+          "z": -0.000005839027516765688
+        }
+      },
+      {
+        "id": "n557",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3342,
+          3343,
+          3344,
+          3345,
+          3346,
+          3347
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": -2.020305089104421,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000028113388938048557,
+          "y": -0.00015411315761732514,
+          "z": 4.542486968203012e-10
+        },
+        "angle": {
+          "x": 0.00005692828363046258,
+          "y": -0.00008396174722147216,
+          "z": 0.000011971747627540562
+        }
+      },
+      {
+        "id": "n558",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3348,
+          3349,
+          3350,
+          3351,
+          3352,
+          3353
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": -2.857142857142857,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003550440329609541,
+          "y": -0.0001980383240595914,
+          "z": 0.0001219891271768929
+        },
+        "angle": {
+          "x": -0.00007320886285801936,
+          "y": -0.000030057213363507672,
+          "z": -0.00004040681258732489
+        }
+      },
+      {
+        "id": "n559",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3354,
+          3355,
+          3356,
+          3357,
+          3358,
+          3359
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": -2.020305089104421,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000016413737685122006,
+          "y": -0.0002828089916697753,
+          "z": 0.00012144983246057203
+        },
+        "angle": {
+          "x": -0.000022323306271373574,
+          "y": -0.00000897959771054449,
+          "z": -0.000027364479476020805
+        }
+      },
+      {
+        "id": "n560",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3360,
+          3361,
+          3362,
+          3363,
+          3364,
+          3365
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 0,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000008051866517094199,
+          "y": -0.0003367407677701057,
+          "z": 0.00008386445660938234
+        },
+        "angle": {
+          "x": -0.000012393506452713051,
+          "y": 0.000014992966525378978,
+          "z": -0.000005772855655225684
+        }
+      },
+      {
+        "id": "n561",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3366,
+          3367,
+          3368,
+          3369,
+          3370,
+          3371
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 2.020305089104421,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000006092085661655642,
+          "y": -0.00038198662480747335,
+          "z": 0.00007137245564921399
+        },
+        "angle": {
+          "x": 0.000011052065736179633,
+          "y": -0.00004160971161767516,
+          "z": 0.000017370517410483004
+        }
+      },
+      {
+        "id": "n562",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3372,
+          3373,
+          3374,
+          3375,
+          3376,
+          3377
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 5,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000074267444834497,
+          "y": -0.000593771866096584,
+          "z": -0.000007216543216600217
+        },
+        "angle": {
+          "x": -9.270660263483367e-8,
+          "y": -0.000012387614106013176,
+          "z": 0.000010444714418237507
+        }
+      },
+      {
+        "id": "n563",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3378,
+          3379,
+          3380,
+          3381,
+          3382,
+          3383
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 5,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008641720878507812,
+          "y": -0.000652980866968167,
+          "z": -0.000012512892706718883
+        },
+        "angle": {
+          "x": -0.00011979817774893286,
+          "y": -0.000006898900033184192,
+          "z": -0.00003222530773171519
+        }
+      },
+      {
+        "id": "n564",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3384,
+          3385,
+          3386,
+          3387,
+          3388,
+          3389
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 5,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008168766236428737,
+          "y": -0.0005047981711696396,
+          "z": -0.00004577322792520924
+        },
+        "angle": {
+          "x": 0.0006644506664915908,
+          "y": -0.000011470122094657335,
+          "z": -0.0003049678762474596
+        }
+      },
+      {
+        "id": "n565",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3390,
+          3391,
+          3392,
+          3393,
+          3394,
+          3395
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 5,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006843708629396887,
+          "y": -0.00011761096498292893,
+          "z": -0.0000516258222096257
+        },
+        "angle": {
+          "x": 0.00000752130014448006,
+          "y": -0.000012670286644011054,
+          "z": -0.00006927127070201309
+        }
+      },
+      {
+        "id": "n566",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3396,
+          3397,
+          3398,
+          3399,
+          3400,
+          3401
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895578,
+          "y": 5,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000053738656650921754,
+          "y": -0.0005220953294046874,
+          "z": -0.00004669089900045009
+        },
+        "angle": {
+          "x": -0.0007687332815265808,
+          "y": -0.000011945469330829734,
+          "z": -0.0003402816300274166
+        }
+      },
+      {
+        "id": "n567",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3402,
+          3403,
+          3404,
+          3405,
+          3406,
+          3407
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 5,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00005781532085305002,
+          "y": -0.0006539310215560874,
+          "z": -0.000009930667965087018
+        },
+        "angle": {
+          "x": -0.0002513635074974604,
+          "y": -0.00000851939513389048,
+          "z": 0.00009963009697675582
+        }
+      },
+      {
+        "id": "n568",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3408,
+          3409,
+          3410,
+          3411,
+          3412,
+          3413
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 15,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00017091732957439637,
+          "y": -0.0009678835359694923,
+          "z": 0.00005516905135704979
+        },
+        "angle": {
+          "x": 0.000010187684515559086,
+          "y": -0.000021451700657335782,
+          "z": 0.0000052801763375041675
+        }
+      },
+      {
+        "id": "n569",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3414,
+          3415,
+          3416,
+          3417,
+          3418,
+          3419
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 10,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00019982294635414639,
+          "y": -0.0007833795340218676,
+          "z": -0.00001663735764412426
+        },
+        "angle": {
+          "x": -0.0000020191112891404114,
+          "y": -0.000017227690428586793,
+          "z": -0.000009529769092223643
+        }
+      },
+      {
+        "id": "n570",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3420,
+          3421,
+          3422,
+          3423,
+          3424,
+          3425
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 10,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008201487238236626,
+          "y": -0.0007765789633884381,
+          "z": 0.000039062942348390855
+        },
+        "angle": {
+          "x": 0.0000037209568744741996,
+          "y": -0.000009515688972797828,
+          "z": -0.0000040687340502669214
+        }
+      },
+      {
+        "id": "n571",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3426,
+          3427,
+          3428,
+          3429,
+          3430,
+          3431
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 10,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00012878386233975976,
+          "y": -0.0007809165072594485,
+          "z": 0.00004637591308852591
+        },
+        "angle": {
+          "x": 0.0000037373988461199837,
+          "y": 0.00003474236931722974,
+          "z": -0.00001807576917066162
+        }
+      },
+      {
+        "id": "n572",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3432,
+          3433,
+          3434,
+          3435,
+          3436,
+          3437
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 12.020305089104422,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00014374009083725276,
+          "y": -0.0008375255326975473,
+          "z": 0.00003791252880965881
+        },
+        "angle": {
+          "x": -0.000024216236829723455,
+          "y": -0.00001116083622201697,
+          "z": -0.0000034255347652757807
+        }
+      },
+      {
+        "id": "n573",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3438,
+          3439,
+          3440,
+          3441,
+          3442,
+          3443
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 12.857142857142858,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00019187809006308092,
+          "y": -0.0008438147395058741,
+          "z": 0.000027789532494216965
+        },
+        "angle": {
+          "x": 0.000004283215908865531,
+          "y": -0.000015837232112071758,
+          "z": -0.0000033511741837110455
+        }
+      },
+      {
+        "id": "n574",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3444,
+          3445,
+          3446,
+          3447,
+          3448,
+          3449
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 12.020305089104422,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00020171695541786766,
+          "y": -0.0008293277246951702,
+          "z": 0.00001153510643858096
+        },
+        "angle": {
+          "x": 0.000039454495301389935,
+          "y": -0.000008934266250494948,
+          "z": -0.0000024896017450797627
+        }
+      },
+      {
+        "id": "n575",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3450,
+          3451,
+          3452,
+          3453,
+          3454,
+          3455
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 10,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00020080911522756705,
+          "y": -0.0007669461384773214,
+          "z": -0.00001667361093056068
+        },
+        "angle": {
+          "x": 0.000003420360518928237,
+          "y": -0.0000599511078672254,
+          "z": -0.000022105817395211283
+        }
+      },
+      {
+        "id": "n576",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3456,
+          3457,
+          3458,
+          3459,
+          3460,
+          3461
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 7.979694910895579,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00009956250747548441,
+          "y": -0.0007100946034097184,
+          "z": -9.890086130327528e-7
+        },
+        "angle": {
+          "x": -0.00003163527503126654,
+          "y": 0.00026492812844395577,
+          "z": -0.00013538899726089763
+        }
+      },
+      {
+        "id": "n577",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3462,
+          3463,
+          3464,
+          3465,
+          3466,
+          3467
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 7.142857142857142,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00013283836008829046,
+          "y": -0.0007023163969492887,
+          "z": 0.000010847141928025982
+        },
+        "angle": {
+          "x": 0.0000032365240714365883,
+          "y": -0.000009371705053027036,
+          "z": -0.00003683044646330489
+        }
+      },
+      {
+        "id": "n578",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3468,
+          3469,
+          3470,
+          3471,
+          3472,
+          3473
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 7.979694910895578,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000055680126380340955,
+          "y": -0.0007179721919927823,
+          "z": 0.00002397192793458154
+        },
+        "angle": {
+          "x": 0.0000332933840021593,
+          "y": -0.0002619755055355175,
+          "z": -0.00012456043079422957
+        }
+      },
+      {
+        "id": "n579",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3474,
+          3475,
+          3476,
+          3477,
+          3478,
+          3479
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 15,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00024447232756483027,
+          "y": -0.0009945252457710517,
+          "z": -0.000027020083124788278
+        },
+        "angle": {
+          "x": -0.000005742366821198073,
+          "y": -0.00003533507132939948,
+          "z": -0.000024168422166550365
+        }
+      },
+      {
+        "id": "n580",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3480,
+          3481,
+          3482,
+          3483,
+          3484,
+          3485
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 15,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000823191105004813,
+          "y": -0.000957595979781115,
+          "z": -0.000019122133694355677
+        },
+        "angle": {
+          "x": -4.5183121984700237e-7,
+          "y": -0.000026988796928925533,
+          "z": -0.0000029732418097001207
+        }
+      },
+      {
+        "id": "n581",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3486,
+          3487,
+          3488,
+          3489,
+          3490,
+          3491
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 15,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00016073319984300633,
+          "y": -0.0009875396412037812,
+          "z": 0.000021080924577014218
+        },
+        "angle": {
+          "x": -0.0000013797117026111082,
+          "y": -0.00002573141742441543,
+          "z": 0.000004970884248617946
+        }
+      },
+      {
+        "id": "n582",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3492,
+          3493,
+          3494,
+          3495,
+          3496,
+          3497
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 15,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00013317720151800983,
+          "y": -0.0010161355854295022,
+          "z": 0.00001033897546818787
+        },
+        "angle": {
+          "x": 0.000050366894372814834,
+          "y": -0.0000213336343357868,
+          "z": -0.000011760680512771613
+        }
+      },
+      {
+        "id": "n583",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3498,
+          3499,
+          3500,
+          3501,
+          3502,
+          3503
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 15,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011408512504108303,
+          "y": -0.0010342359037812435,
+          "z": -0.00002553236571039599
+        },
+        "angle": {
+          "x": 0.00006135003247288513,
+          "y": -0.000020836072898889865,
+          "z": -0.00001240588349326287
+        }
+      },
+      {
+        "id": "n584",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3504,
+          3505,
+          3506,
+          3507,
+          3508,
+          3509
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 15,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00013173085805544534,
+          "y": -0.0009536996407770459,
+          "z": -0.00006255708874100116
+        },
+        "angle": {
+          "x": -0.0003086776902490527,
+          "y": -0.000024654284719263118,
+          "z": -0.00014290708990084301
+        }
+      },
+      {
+        "id": "n585",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3510,
+          3511,
+          3512,
+          3513,
+          3514,
+          3515
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 15,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001589218862864559,
+          "y": -0.0007623653075362675,
+          "z": -0.00007552373397643231
+        },
+        "angle": {
+          "x": 0.0000010967332682844578,
+          "y": -0.000026347158573866705,
+          "z": -0.00003295098246265891
+        }
+      },
+      {
+        "id": "n586",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3516,
+          3517,
+          3518,
+          3519,
+          3520,
+          3521
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895578,
+          "y": 15,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00018979856128996123,
+          "y": -0.0009476135842314503,
+          "z": -0.00006595757980148023
+        },
+        "angle": {
+          "x": 0.00039926969532683485,
+          "y": -0.00002433407199478983,
+          "z": -0.00017329203461348685
+        }
+      },
+      {
+        "id": "n587",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3522,
+          3523,
+          3524,
+          3525,
+          3526,
+          3527
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 15,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00020775029873728787,
+          "y": -0.0010255862750671225,
+          "z": -0.000026390965226439892
+        },
+        "angle": {
+          "x": -0.00005832204224816025,
+          "y": -0.00002131134766918548,
+          "z": -0.000014384201588948608
+        }
+      },
+      {
+        "id": "n588",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3528,
+          3529,
+          3530,
+          3531,
+          3532,
+          3533
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 15,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00019046437185922923,
+          "y": -0.0010157538075910427,
+          "z": 0.000010962289058217025
+        },
+        "angle": {
+          "x": -0.00001705226261500658,
+          "y": -0.000023133627733565466,
+          "z": -0.000002133820272887581
+        }
+      },
+      {
+        "id": "n589",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3534,
+          3535,
+          3536,
+          3537,
+          3538,
+          3539
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 7.142857142857142,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002031148297177865,
+          "y": -0.0007455237904034369,
+          "z": -0.00003070941872517409
+        },
+        "angle": {
+          "x": -6.541108139885039e-7,
+          "y": -0.000019589407815415682,
+          "z": 0.00002509796724270762
+        }
+      },
+      {
+        "id": "n590",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3540,
+          3541,
+          3542,
+          3543,
+          3544,
+          3545
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 7.979694910895579,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00020070663257379032,
+          "y": -0.0007253617415927789,
+          "z": 0.000008319782152651141
+        },
+        "angle": {
+          "x": -0.0000010409668483147753,
+          "y": -0.00001974966212226311,
+          "z": -0.00001575251008045206
+        }
+      },
+      {
+        "id": "n591",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3546,
+          3547,
+          3548,
+          3549,
+          3550,
+          3551
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 10,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00020891423045799924,
+          "y": -0.0007558978958415005,
+          "z": 0.000022743942687742126
+        },
+        "angle": {
+          "x": -0.000019890296718583888,
+          "y": -0.00006525591237994743,
+          "z": 0.0000017258292207654823
+        }
+      },
+      {
+        "id": "n592",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3552,
+          3553,
+          3554,
+          3555,
+          3556,
+          3557
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 12.020305089104422,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001942436533345189,
+          "y": -0.0007887149649071703,
+          "z": -0.0000720491468411831
+        },
+        "angle": {
+          "x": -0.000054532696621737284,
+          "y": 0.000018378183202311827,
+          "z": 0.000018238265438218227
+        }
+      },
+      {
+        "id": "n593",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3558,
+          3559,
+          3560,
+          3561,
+          3562,
+          3563
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 12.857142857142858,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00018178531775481073,
+          "y": -0.0008444614803010658,
+          "z": -0.00008055456699081196
+        },
+        "angle": {
+          "x": -0.000004638641081143761,
+          "y": -0.0000022885632028005072,
+          "z": 0.00002579374499746695
+        }
+      },
+      {
+        "id": "n594",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3564,
+          3565,
+          3566,
+          3567,
+          3568,
+          3569
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 12.020305089104422,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00018377923213523407,
+          "y": -0.0008688075908921299,
+          "z": -0.00008129639317550069
+        },
+        "angle": {
+          "x": 0.000024982441950822797,
+          "y": 0.000009980862809690267,
+          "z": -0.000012311440345625226
+        }
+      },
+      {
+        "id": "n595",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3570,
+          3571,
+          3572,
+          3573,
+          3574,
+          3575
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 10,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00017979544191953803,
+          "y": -0.000837389062727665,
+          "z": -0.00012341608669761046
+        },
+        "angle": {
+          "x": -0.0000025894712750158467,
+          "y": -0.00005658344888520508,
+          "z": 0.0000023093084752518373
+        }
+      },
+      {
+        "id": "n596",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3576,
+          3577,
+          3578,
+          3579,
+          3580,
+          3581
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 7.979694910895579,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001936749641257881,
+          "y": -0.0008014333129312641,
+          "z": -0.00007083338888510067
+        },
+        "angle": {
+          "x": -0.00002148732351135216,
+          "y": -0.000010960009005886848,
+          "z": 0.000017998703066079797
+        }
+      },
+      {
+        "id": "n597",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3582,
+          3583,
+          3584,
+          3585,
+          3586,
+          3587
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 12.857142857142858,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006975419125453463,
+          "y": -0.0008491288485098541,
+          "z": -0.000017674469471071123
+        },
+        "angle": {
+          "x": 0.000004651710441640873,
+          "y": -0.00001726145366319449,
+          "z": -1.0200788971032148e-7
+        }
+      },
+      {
+        "id": "n598",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3588,
+          3589,
+          3590,
+          3591,
+          3592,
+          3593
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 12.020305089104422,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000054185315726786536,
+          "y": -0.0008257526961854052,
+          "z": -0.000055364382446555626
+        },
+        "angle": {
+          "x": -0.0000052109906669503765,
+          "y": -0.000019748610456677763,
+          "z": -0.000024942173773899444
+        }
+      },
+      {
+        "id": "n599",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3594,
+          3595,
+          3596,
+          3597,
+          3598,
+          3599
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 10,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003558692093692167,
+          "y": -0.0007656654095352343,
+          "z": -0.00006102589119348673
+        },
+        "angle": {
+          "x": -0.0000023806302644074743,
+          "y": -0.00001231130554376803,
+          "z": -0.0000034714935639003738
+        }
+      },
+      {
+        "id": "n600",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3600,
+          3601,
+          3602,
+          3603,
+          3604,
+          3605
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 7.979694910895579,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000042935047294654305,
+          "y": -0.0007080835222044098,
+          "z": -0.00004608225352001454
+        },
+        "angle": {
+          "x": -0.0000018186372547610242,
+          "y": -0.000013063916703632366,
+          "z": 0.000023253506797197415
+        }
+      },
+      {
+        "id": "n601",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3606,
+          3607,
+          3608,
+          3609,
+          3610,
+          3611
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 7.142857142857142,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000054652112902627,
+          "y": -0.0006849150893884692,
+          "z": -0.00001813488583572277
+        },
+        "angle": {
+          "x": -0.0000030909291983877443,
+          "y": -0.000012560943850002792,
+          "z": -4.112432349604587e-7
+        }
+      },
+      {
+        "id": "n602",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3612,
+          3613,
+          3614,
+          3615,
+          3616,
+          3617
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 7.979694910895579,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000687958403982214,
+          "y": -0.0007112058293334812,
+          "z": 0.000004639265546718188
+        },
+        "angle": {
+          "x": -2.2163584616780767e-8,
+          "y": -0.000011265795756097866,
+          "z": -0.00002683994665904851
+        }
+      },
+      {
+        "id": "n603",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3618,
+          3619,
+          3620,
+          3621,
+          3622,
+          3623
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 10,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008897557499575174,
+          "y": -0.0007721016529353324,
+          "z": 0.000014269184323448115
+        },
+        "angle": {
+          "x": 0.0000019397495661286104,
+          "y": -0.000006972150254644786,
+          "z": -0.000003791095073087744
+        }
+      },
+      {
+        "id": "n604",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3624,
+          3625,
+          3626,
+          3627,
+          3628,
+          3629
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 12.020305089104422,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000830143716886933,
+          "y": -0.0008279612585201184,
+          "z": 0.000012229982927069452
+        },
+        "angle": {
+          "x": 0.000005502264220537592,
+          "y": -0.00001601566029492585,
+          "z": 0.000021338879990068893
+        }
+      },
+      {
+        "id": "n605",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3630,
+          3631,
+          3632,
+          3633,
+          3634,
+          3635
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 5,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000025578737882021416,
+          "y": -0.0005729094473182159,
+          "z": 0.00001206689927344389
+        },
+        "angle": {
+          "x": 0.000022784670697383012,
+          "y": -0.0000096118373436191,
+          "z": 0.000012251192485572567
+        }
+      },
+      {
+        "id": "n606",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3636,
+          3637,
+          3638,
+          3639,
+          3640,
+          3641
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 5,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000020447706313198893,
+          "y": -0.0005689732962309676,
+          "z": -0.000022242546290957716
+        },
+        "angle": {
+          "x": 0.00007857630699288124,
+          "y": -0.000008291422489161256,
+          "z": -0.00003351922585996324
+        }
+      },
+      {
+        "id": "n607",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3642,
+          3643,
+          3644,
+          3645,
+          3646,
+          3647
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895578,
+          "y": 5,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000011627852853476155,
+          "y": -0.0005661354439297409,
+          "z": -0.000019412575208753438
+        },
+        "angle": {
+          "x": -0.00005152802726807732,
+          "y": -0.000010071835173889577,
+          "z": -0.00002327856810804165
+        }
+      },
+      {
+        "id": "n608",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3648,
+          3649,
+          3650,
+          3651,
+          3652,
+          3653
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 15,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000026428114646932232,
+          "y": -0.0009632160419834766,
+          "z": 0.00007837715527083457
+        },
+        "angle": {
+          "x": 0.0000055312895697228194,
+          "y": -0.000021818030945158623,
+          "z": 4.383769015954691e-7
+        }
+      },
+      {
+        "id": "n609",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3654,
+          3655,
+          3656,
+          3657,
+          3658,
+          3659
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 10,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000024998010557543233,
+          "y": -0.0007729431341546646,
+          "z": 0.00007502919084860958
+        },
+        "angle": {
+          "x": 0.000004526285280424788,
+          "y": -0.000009939140360171795,
+          "z": -2.884385491476605e-7
+        }
+      },
+      {
+        "id": "n610",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3660,
+          3661,
+          3662,
+          3663,
+          3664,
+          3665
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 10,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -1.0442255526555835e-7,
+          "y": -0.0007748030558570213,
+          "z": 0.00008417367899198939
+        },
+        "angle": {
+          "x": 0.000003858464296532624,
+          "y": -7.139696522229622e-8,
+          "z": -3.741937110369267e-7
+        }
+      },
+      {
+        "id": "n611",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3666,
+          3667,
+          3668,
+          3669,
+          3670,
+          3671
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 12.020305089104422,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000019540135061101176,
+          "y": -0.0008310183848984953,
+          "z": 0.00007453581515844892
+        },
+        "angle": {
+          "x": -0.000025676318082118028,
+          "y": -0.000017224760512415538,
+          "z": 0.0000042797551715392095
+        }
+      },
+      {
+        "id": "n612",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3672,
+          3673,
+          3674,
+          3675,
+          3676,
+          3677
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 12.857142857142858,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000017671607918095845,
+          "y": -0.0008409045718806397,
+          "z": 0.00006573227430639711
+        },
+        "angle": {
+          "x": 0.0000020576150412518223,
+          "y": -0.00001545042181773002,
+          "z": 0.000002241739206136324
+        }
+      },
+      {
+        "id": "n613",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3678,
+          3679,
+          3680,
+          3681,
+          3682,
+          3683
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 12.020305089104422,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00005900907636141247,
+          "y": -0.000827141826728865,
+          "z": 0.00005386084911264067
+        },
+        "angle": {
+          "x": 0.00003335736641666336,
+          "y": 0.000006461459519035384,
+          "z": 0.000008578064744395192
+        }
+      },
+      {
+        "id": "n614",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3684,
+          3685,
+          3686,
+          3687,
+          3688,
+          3689
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 10,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007167961106607455,
+          "y": -0.0007652432427999118,
+          "z": 0.00003029981275259348
+        },
+        "angle": {
+          "x": 0.000004054515581588393,
+          "y": -0.00002505293680014675,
+          "z": -0.0000039746371344887595
+        }
+      },
+      {
+        "id": "n615",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3690,
+          3691,
+          3692,
+          3693,
+          3694,
+          3695
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 7.979694910895579,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004241963819540695,
+          "y": -0.0007083884333127991,
+          "z": 0.00004033580565982702
+        },
+        "angle": {
+          "x": -0.00002684376117343947,
+          "y": 0.000055263508704429596,
+          "z": -0.000030960129581933456
+        }
+      },
+      {
+        "id": "n616",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3696,
+          3697,
+          3698,
+          3699,
+          3700,
+          3701
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 7.142857142857142,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00001747233985574599,
+          "y": -0.0006977445921711379,
+          "z": 0.00004903638861633535
+        },
+        "angle": {
+          "x": 0.0000021645179942750977,
+          "y": -0.000009674057751862965,
+          "z": -0.000006590582910991398
+        }
+      },
+      {
+        "id": "n617",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3702,
+          3703,
+          3704,
+          3705,
+          3706,
+          3707
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 7.979694910895578,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000020433717272865074,
+          "y": -0.0007126251501118155,
+          "z": 0.00006064873879623112
+        },
+        "angle": {
+          "x": 0.000033994048825719624,
+          "y": -0.000054470779883420544,
+          "z": -0.000021017969595509996
+        }
+      },
+      {
+        "id": "n618",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3708,
+          3709,
+          3710,
+          3711,
+          3712,
+          3713
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 15,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006201763339750429,
+          "y": -0.0009528605692745379,
+          "z": -0.0000022619362588028393
+        },
+        "angle": {
+          "x": -8.284141111198657e-7,
+          "y": -0.00002665849514679778,
+          "z": 0.0000027427577184634744
+        }
+      },
+      {
+        "id": "n619",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3714,
+          3715,
+          3716,
+          3717,
+          3718,
+          3719
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 15,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00001614769480780591,
+          "y": -0.0009252503366311717,
+          "z": 0.00003571909327289386
+        },
+        "angle": {
+          "x": -4.795356242438619e-7,
+          "y": -0.000025356844233847722,
+          "z": 0.00000637259343790804
+        }
+      },
+      {
+        "id": "n620",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3720,
+          3721,
+          3722,
+          3723,
+          3724,
+          3725
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 15,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00001544481483807974,
+          "y": -0.0009602306712000102,
+          "z": 0.00002698413415431625
+        },
+        "angle": {
+          "x": -0.00007821116972539985,
+          "y": -0.000023011629702089792,
+          "z": 0.00003361042195148113
+        }
+      },
+      {
+        "id": "n621",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3726,
+          3727,
+          3728,
+          3729,
+          3730,
+          3731
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 15,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000036071217283852675,
+          "y": -0.0009739482115930957,
+          "z": -0.000008787390775240157
+        },
+        "angle": {
+          "x": 0.000016939296784298602,
+          "y": -0.000020261194127531458,
+          "z": -2.7503749673709615e-7
+        }
+      },
+      {
+        "id": "n622",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3732,
+          3733,
+          3734,
+          3735,
+          3736,
+          3737
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 15,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000018365990437788206,
+          "y": -0.0009595488217205201,
+          "z": -0.000044636543286596386
+        },
+        "angle": {
+          "x": -0.000054811630586625506,
+          "y": -0.000023704178132980506,
+          "z": -0.00002545922553135439
+        }
+      },
+      {
+        "id": "n623",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3738,
+          3739,
+          3740,
+          3741,
+          3742,
+          3743
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 15,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000065385899847292315,
+          "y": -0.0009245887199180812,
+          "z": -0.000057936428122392364
+        },
+        "angle": {
+          "x": -0.0000011055120451720335,
+          "y": -0.0000266448009835314,
+          "z": -0.000006410218092809654
+        }
+      },
+      {
+        "id": "n624",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3744,
+          3745,
+          3746,
+          3747,
+          3748,
+          3749
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895578,
+          "y": 15,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003613309142134298,
+          "y": -0.000963789400005792,
+          "z": -0.00004827095231292081
+        },
+        "angle": {
+          "x": 0.00008138586636734582,
+          "y": -0.000022955865135615863,
+          "z": -0.00003534703656371486
+        }
+      },
+      {
+        "id": "n625",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3750,
+          3751,
+          3752,
+          3753,
+          3754,
+          3755
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 15,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00005579053464718767,
+          "y": -0.0009788335340753657,
+          "z": -0.00001215993772451581
+        },
+        "angle": {
+          "x": -0.000018869357420520056,
+          "y": -0.000020072215989951924,
+          "z": 1.1518086458388394e-7
+        }
+      },
+      {
+        "id": "n626",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3756,
+          3757,
+          3758,
+          3759,
+          3760,
+          3761
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 15,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003888800346771548,
+          "y": -0.0009631728432411783,
+          "z": 0.00002282703420503589
+        },
+        "angle": {
+          "x": 0.00005886045403880083,
+          "y": -0.00002289350424318076,
+          "z": 0.000027417810959458235
+        }
+      },
+      {
+        "id": "n627",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3762,
+          3763,
+          3764,
+          3765,
+          3766,
+          3767
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 12.857142857142858,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000051734371966254953,
+          "y": -0.0008450894899358177,
+          "z": 0.0000031149988499514736
+        },
+        "angle": {
+          "x": -0.0000030850870778747203,
+          "y": -0.000017257461480343947,
+          "z": 3.182058309671701e-7
+        }
+      },
+      {
+        "id": "n628",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3768,
+          3769,
+          3770,
+          3771,
+          3772,
+          3773
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 12.020305089104422,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000649787762043851,
+          "y": -0.0008242397266460042,
+          "z": -0.00002812871232845228
+        },
+        "angle": {
+          "x": -0.000009290746990692388,
+          "y": -0.000018283737469173342,
+          "z": -0.000021414195221746577
+        }
+      },
+      {
+        "id": "n629",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3774,
+          3775,
+          3776,
+          3777,
+          3778,
+          3779
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 10,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007165988136715677,
+          "y": -0.0007684096900918589,
+          "z": -0.000024147226400908994
+        },
+        "angle": {
+          "x": -0.000003805459776967164,
+          "y": -0.0000041235830612323344,
+          "z": 0.000003354293575265737
+        }
+      },
+      {
+        "id": "n630",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3780,
+          3781,
+          3782,
+          3783,
+          3784,
+          3785
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 7.979694910895579,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000052169170099384374,
+          "y": -0.0007078507839573184,
+          "z": -0.00001326419637063255
+        },
+        "angle": {
+          "x": 2.6042127598076104e-7,
+          "y": -0.00001302199769010977,
+          "z": 0.00002671535069812095
+        }
+      },
+      {
+        "id": "n631",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3786,
+          3787,
+          3788,
+          3789,
+          3790,
+          3791
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 7.142857142857142,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003791662963401475,
+          "y": -0.000681633675121826,
+          "z": 0.000012893614957581214
+        },
+        "angle": {
+          "x": -0.0000011650067960263437,
+          "y": -0.000012481555895393834,
+          "z": 4.562713275567715e-7
+        }
+      },
+      {
+        "id": "n632",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3792,
+          3793,
+          3794,
+          3795,
+          3796,
+          3797
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 7.979694910895579,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000026050158199598664,
+          "y": -0.0007046439497747525,
+          "z": 0.000037101572187545916
+        },
+        "angle": {
+          "x": 0.000002338100165379813,
+          "y": -0.000010980525070601215,
+          "z": -0.000023223217846190517
+        }
+      },
+      {
+        "id": "n633",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3798,
+          3799,
+          3800,
+          3801,
+          3802,
+          3803
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 10,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000018273721125526622,
+          "y": -0.0007619828720388762,
+          "z": 0.000051260077165333036
+        },
+        "angle": {
+          "x": 6.599219269578825e-7,
+          "y": -0.000015472791093091283,
+          "z": 0.000003176564990757812
+        }
+      },
+      {
+        "id": "n634",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3804,
+          3805,
+          3806,
+          3807,
+          3808,
+          3809
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 12.020305089104422,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003630052792943106,
+          "y": -0.0008215618411563436,
+          "z": 0.000039522135612341424
+        },
+        "angle": {
+          "x": 0.0000013353600197092297,
+          "y": -0.000017544277191430928,
+          "z": 0.00002468495523153984
+        }
+      },
+      {
+        "id": "n635",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3810,
+          3811,
+          3812,
+          3813,
+          3814,
+          3815
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 5,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000043976996670010534,
+          "y": -0.0006480527038710697,
+          "z": 0.0000030593025820241603
+        },
+        "angle": {
+          "x": 0.00000722408737024083,
+          "y": -0.000007561802787716606,
+          "z": 0.000013689463036282057
+        }
+      },
+      {
+        "id": "n636",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3816,
+          3817,
+          3818,
+          3819,
+          3820,
+          3821
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895578,
+          "y": 5,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007267387839559201,
+          "y": -0.0006513104011471472,
+          "z": 0.00000534163355663376
+        },
+        "angle": {
+          "x": 0.00037034341244163437,
+          "y": -0.000006701885478295481,
+          "z": 0.0001477019651297865
+        }
+      },
+      {
+        "id": "n637",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3822,
+          3823,
+          3824,
+          3825,
+          3826,
+          3827
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 15,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001267901252814751,
+          "y": -0.0009798166070734049,
+          "z": 0.00010002379059249781
+        },
+        "angle": {
+          "x": 0.0000026906523557149297,
+          "y": -0.00002209021507360671,
+          "z": -0.0000030832652665293085
+        }
+      },
+      {
+        "id": "n638",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3828,
+          3829,
+          3830,
+          3831,
+          3832,
+          3833
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 10,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001577196625094346,
+          "y": -0.0008004889420411364,
+          "z": 0.0001308866422665596
+        },
+        "angle": {
+          "x": 0.0000069856041608091565,
+          "y": -0.000014396831007963245,
+          "z": 0.000003714404944721476
+        }
+      },
+      {
+        "id": "n639",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3834,
+          3835,
+          3836,
+          3837,
+          3838,
+          3839
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 10,
+          "z": 22.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00013932447046578528,
+          "y": -0.0007916446203963041,
+          "z": 0.00013098065916301787
+        },
+        "angle": {
+          "x": 0.0000036846410466482427,
+          "y": -0.000029021442656364436,
+          "z": 0.000015551536306995396
+        }
+      },
+      {
+        "id": "n640",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3840,
+          3841,
+          3842,
+          3843,
+          3844,
+          3845
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 12.020305089104422,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00015068114745210167,
+          "y": -0.0008486185868662292,
+          "z": 0.00011554440600972538
+        },
+        "angle": {
+          "x": -0.0000316027182028959,
+          "y": -0.000042146975999611506,
+          "z": 0.000018713556140337672
+        }
+      },
+      {
+        "id": "n641",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3846,
+          3847,
+          3848,
+          3849,
+          3850,
+          3851
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 12.857142857142858,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00016683362768969795,
+          "y": -0.0008541572525068364,
+          "z": 0.00010315061731941465
+        },
+        "angle": {
+          "x": 0.000004257745556480001,
+          "y": -0.00001736689669888968,
+          "z": 0.000008473972829960862
+        }
+      },
+      {
+        "id": "n642",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3852,
+          3853,
+          3854,
+          3855,
+          3856,
+          3857
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 12.020305089104422,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000861406344452273,
+          "y": -0.0008380805475859791,
+          "z": 0.00008940899851265
+        },
+        "angle": {
+          "x": 0.000032760167035982456,
+          "y": 0.000016714402486913287,
+          "z": 0.000019045039297081907
+        }
+      },
+      {
+        "id": "n643",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3858,
+          3859,
+          3860,
+          3861,
+          3862,
+          3863
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 10,
+          "z": 17.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000057382392187931064,
+          "y": -0.0007748299913447126,
+          "z": 0.00006751240898592015
+        },
+        "angle": {
+          "x": 0.0000036036823386189786,
+          "y": 3.4178382272319284e-7,
+          "z": 0.000011778029247153124
+        }
+      },
+      {
+        "id": "n644",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3864,
+          3865,
+          3866,
+          3867,
+          3868,
+          3869
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 7.979694910895579,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000028052098684275566,
+          "y": -0.0007171457203182305,
+          "z": 0.0000764410044434224
+        },
+        "angle": {
+          "x": -0.00002499608702874634,
+          "y": -0.0001213885543344872,
+          "z": 0.000056294630459498606
+        }
+      },
+      {
+        "id": "n645",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3870,
+          3871,
+          3872,
+          3873,
+          3874,
+          3875
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 7.142857142857142,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000054021840749655676,
+          "y": -0.0007113120587006392,
+          "z": 0.00008596954968779018
+        },
+        "angle": {
+          "x": 0.000005567870049536582,
+          "y": -0.000011312879052263982,
+          "z": 0.000018855455589234468
+        }
+      },
+      {
+        "id": "n646",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3876,
+          3877,
+          3878,
+          3879,
+          3880,
+          3881
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 7.979694910895578,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007939528834317622,
+          "y": -0.0007285754100779988,
+          "z": 0.00010193222939501226
+        },
+        "angle": {
+          "x": 0.00004027718433929884,
+          "y": 0.00010840354634721974,
+          "z": 0.00006266007327680621
+        }
+      },
+      {
+        "id": "n647",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3882,
+          3883,
+          3884,
+          3885,
+          3886,
+          3887
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 15,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00021690112019111235,
+          "y": -0.0009773281221627252,
+          "z": 0.000004233302893278968
+        },
+        "angle": {
+          "x": 0.0000010879984298294665,
+          "y": -0.000032706693644406136,
+          "z": 0.000022328134002027052
+        }
+      },
+      {
+        "id": "n648",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3888,
+          3889,
+          3890,
+          3891,
+          3892,
+          3893
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 15,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00013351119394371181,
+          "y": -0.0008587921118189218,
+          "z": 0.00005298757517196063
+        },
+        "angle": {
+          "x": -0.000002347769984687431,
+          "y": -0.000027772762388213068,
+          "z": 0.000016800656030074707
+        }
+      },
+      {
+        "id": "n649",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3894,
+          3895,
+          3896,
+          3897,
+          3898,
+          3899
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 15,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000165860379917627,
+          "y": -0.0009519300784791598,
+          "z": 0.00004227874317337909
+        },
+        "angle": {
+          "x": -0.00021674803492041845,
+          "y": -0.00002545319529610227,
+          "z": 0.00009358821784762415
+        }
+      },
+      {
+        "id": "n650",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3900,
+          3901,
+          3902,
+          3903,
+          3904,
+          3905
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 15,
+          "z": 22.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00018525464618479598,
+          "y": -0.0009936198129760628,
+          "z": 0.000003660646759428591
+        },
+        "angle": {
+          "x": 0.0000206520967361177,
+          "y": -0.000020219161336247416,
+          "z": 0.000010640333013609467
+        }
+      },
+      {
+        "id": "n651",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3906,
+          3907,
+          3908,
+          3909,
+          3910,
+          3911
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 15,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00016888669078719804,
+          "y": -0.0010031333606799076,
+          "z": -0.00003156395512626349
+        },
+        "angle": {
+          "x": 0.00007296247919512162,
+          "y": -0.000021692413018400498,
+          "z": 0.000029013092660982347
+        }
+      },
+      {
+        "id": "n652",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3912,
+          3913,
+          3914,
+          3915,
+          3916,
+          3917
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 15,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001413432530572752,
+          "y": -0.001015517454826023,
+          "z": -0.00004214281422392021
+        },
+        "angle": {
+          "x": 6.790512077767984e-7,
+          "y": -0.00002698454502628257,
+          "z": 0.000002593032455045435
+        }
+      },
+      {
+        "id": "n653",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3918,
+          3919,
+          3920,
+          3921,
+          3922,
+          3923
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895578,
+          "y": 15,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011194029531289883,
+          "y": -0.001000635813737082,
+          "z": -0.00003149993328926776
+        },
+        "angle": {
+          "x": -0.00010283816051827457,
+          "y": -0.00002157629559316082,
+          "z": 0.000038767606287445273
+        }
+      },
+      {
+        "id": "n654",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3924,
+          3925,
+          3926,
+          3927,
+          3928,
+          3929
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 15,
+          "z": 17.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00009244455799668007,
+          "y": -0.0009955047619368712,
+          "z": 0.0000032059724089688856
+        },
+        "angle": {
+          "x": -0.000019533068154992813,
+          "y": -0.000019622456384825828,
+          "z": 0.000008753732018947822
+        }
+      },
+      {
+        "id": "n655",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3930,
+          3931,
+          3932,
+          3933,
+          3934,
+          3935
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 15,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00010424943382803092,
+          "y": -0.0009576617587720041,
+          "z": 0.00004074175062140582
+        },
+        "angle": {
+          "x": 0.0001868195979710918,
+          "y": -0.000023835973572605595,
+          "z": 0.00008269580222584328
+        }
+      },
+      {
+        "id": "n656",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3936,
+          3937,
+          3938,
+          3939,
+          3940,
+          3941
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 12.857142857142858,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001587420014965753,
+          "y": -0.0008312174999179588,
+          "z": 0.00004891308597401643
+        },
+        "angle": {
+          "x": -0.000009766437220760894,
+          "y": -0.00000494096041837655,
+          "z": -0.00002558008713812767
+        }
+      },
+      {
+        "id": "n657",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3942,
+          3943,
+          3944,
+          3945,
+          3946,
+          3947
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 12.020305089104422,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00017203479705413217,
+          "y": -0.0007760236340349649,
+          "z": 0.00004710374393108816
+        },
+        "angle": {
+          "x": 0.000053949613616455995,
+          "y": 0.000021451064792586344,
+          "z": -0.000018301141905770964
+        }
+      },
+      {
+        "id": "n658",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3948,
+          3949,
+          3950,
+          3951,
+          3952,
+          3953
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 10,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00018641618262285012,
+          "y": -0.0007430782351280648,
+          "z": -0.000043939859495756495
+        },
+        "angle": {
+          "x": 0.000019303178697577584,
+          "y": -0.00006219281398645695,
+          "z": -0.0000016379835434942538
+        }
+      },
+      {
+        "id": "n659",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3954,
+          3955,
+          3956,
+          3957,
+          3958,
+          3959
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 7.979694910895579,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00017870868616486527,
+          "y": -0.0007129401843394005,
+          "z": -0.000030892844782612165
+        },
+        "angle": {
+          "x": 0.000010345740356498396,
+          "y": -0.000040567751248429926,
+          "z": 0.000014920306155683238
+        }
+      },
+      {
+        "id": "n660",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3960,
+          3961,
+          3962,
+          3963,
+          3964,
+          3965
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 7.142857142857142,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00018040879601665538,
+          "y": -0.0007339365625089572,
+          "z": 0.000042408685364624114
+        },
+        "angle": {
+          "x": -0.00002499603838767521,
+          "y": -0.00002592870127083138,
+          "z": -0.000025090419092060482
+        }
+      },
+      {
+        "id": "n661",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3966,
+          3967,
+          3968,
+          3969,
+          3970,
+          3971
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 7.979694910895579,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00016956309635344417,
+          "y": -0.0007895781285300828,
+          "z": 0.00007387491762161196
+        },
+        "angle": {
+          "x": 0.000013489053052629068,
+          "y": -0.000009987623909863612,
+          "z": -0.000018280875434315735
+        }
+      },
+      {
+        "id": "n662",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3972,
+          3973,
+          3974,
+          3975,
+          3976,
+          3977
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 10,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00015581721813370854,
+          "y": -0.0008250748906312815,
+          "z": 0.00010948495816858439
+        },
+        "angle": {
+          "x": -0.00000168454615676927,
+          "y": -0.00004661995776064666,
+          "z": -0.000002044940656661303
+        }
+      },
+      {
+        "id": "n663",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3978,
+          3979,
+          3980,
+          3981,
+          3982,
+          3983
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 12.020305089104422,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00016009934803291038,
+          "y": -0.0008557196981057977,
+          "z": 0.00006706827076286467
+        },
+        "angle": {
+          "x": -0.00002085031003283396,
+          "y": -3.4988907900512054e-7,
+          "z": 0.000011918429374168675
+        }
+      },
+      {
+        "id": "n664",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3984,
+          3985,
+          3986,
+          3987,
+          3988,
+          3989
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 15,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001646313521226317,
+          "y": -0.0009468577592533898,
+          "z": 0.000021366135673681703
+        },
+        "angle": {
+          "x": 0.0000012328107368366668,
+          "y": -0.00002826513995083272,
+          "z": 0.000010549673709559814
+        }
+      },
+      {
+        "id": "n665",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3990,
+          3991,
+          3992,
+          3993,
+          3994,
+          3995
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 15,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00019494547597001462,
+          "y": -0.0010046761134021448,
+          "z": 0.00001053397058623701
+        },
+        "angle": {
+          "x": -0.00002061852912041297,
+          "y": -0.00001976260839129631,
+          "z": 0.000002837266119335651
+        }
+      },
+      {
+        "id": "n666",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3996,
+          3997,
+          3998,
+          3999,
+          4000,
+          4001
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 15,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00018966055952549638,
+          "y": -0.0009390765393149388,
+          "z": -0.00006618400173984148
+        },
+        "angle": {
+          "x": 0.00033155963701186414,
+          "y": -0.000025138881705355105,
+          "z": -0.00015355374419161964
+        }
+      },
+      {
+        "id": "n667",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4002,
+          4003,
+          4004,
+          4005,
+          4006,
+          4007
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 15,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00015775532851469297,
+          "y": -0.0007390376748727899,
+          "z": -0.00007797368479260105
+        },
+        "angle": {
+          "x": 0.000005104195217312426,
+          "y": -0.000028444519530542983,
+          "z": -0.00003614994876224866
+        }
+      },
+      {
+        "id": "n668",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4008,
+          4009,
+          4010,
+          4011,
+          4012,
+          4013
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895578,
+          "y": 15,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00012628041978170735,
+          "y": -0.0009521410327222976,
+          "z": -0.00006680788186152758
+        },
+        "angle": {
+          "x": -0.0004153603163166422,
+          "y": -0.00002370864227738144,
+          "z": -0.00018282219399990224
+        }
+      },
+      {
+        "id": "n669",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4014,
+          4015,
+          4016,
+          4017,
+          4018,
+          4019
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 15,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00013091507313796137,
+          "y": -0.0010096070933134373,
+          "z": 0.000011473947472022241
+        },
+        "angle": {
+          "x": -0.00019418558861843138,
+          "y": -0.000022628175885699784,
+          "z": 0.00007962729369186373
+        }
+      },
+      {
+        "id": "n670",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4020,
+          4021,
+          4022,
+          4023,
+          4024,
+          4025
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 25,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00027376264813196356,
+          "y": -0.0011604676975966123,
+          "z": 0.00011992717670899164
+        },
+        "angle": {
+          "x": 0.000013985433699298907,
+          "y": -0.00004378686402615451,
+          "z": -0.000006483013392386288
+        }
+      },
+      {
+        "id": "n671",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4026,
+          4027,
+          4028,
+          4029,
+          4030,
+          4031
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 20,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00030566481780229033,
+          "y": -0.0010731441823569928,
+          "z": 0.00006243404946625518
+        },
+        "angle": {
+          "x": -0.0000011082907168222814,
+          "y": -0.00001526340078520227,
+          "z": -0.0000033466111021173006
+        }
+      },
+      {
+        "id": "n672",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4032,
+          4033,
+          4034,
+          4035,
+          4036,
+          4037
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 20,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00012418626999701103,
+          "y": -0.0010667158326418322,
+          "z": 0.00008817411289549929
+        },
+        "angle": {
+          "x": 0.000003582670702056391,
+          "y": -0.000014114366800129526,
+          "z": -0.000004533344718835791
+        }
+      },
+      {
+        "id": "n673",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4038,
+          4039,
+          4040,
+          4041,
+          4042,
+          4043
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 20,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00018551201465011595,
+          "y": -0.0010746103628034708,
+          "z": 0.00009243926751661754
+        },
+        "angle": {
+          "x": 0.0000045412426445197715,
+          "y": 0.00002697734316041815,
+          "z": -0.000013107952771224072
+        }
+      },
+      {
+        "id": "n674",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4044,
+          4045,
+          4046,
+          4047,
+          4048,
+          4049
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 22.020305089104422,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00019514366004065473,
+          "y": -0.001100419259399614,
+          "z": 0.00009388734283964784
+        },
+        "angle": {
+          "x": -0.0000081277784100228,
+          "y": -0.00006586634266112186,
+          "z": 0.00001821955365437027
+        }
+      },
+      {
+        "id": "n675",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4050,
+          4051,
+          4052,
+          4053,
+          4054,
+          4055
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 22.857142857142858,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00022980779788690992,
+          "y": -0.001099858045020521,
+          "z": 0.00009059793292067099
+        },
+        "angle": {
+          "x": 0.000005432158721031081,
+          "y": -0.000026820256430303614,
+          "z": 0.0000029169140204851906
+        }
+      },
+      {
+        "id": "n676",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4056,
+          4057,
+          4058,
+          4059,
+          4060,
+          4061
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 22.020305089104422,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002978080852658872,
+          "y": -0.001089208609587591,
+          "z": 0.00008114955455136704
+        },
+        "angle": {
+          "x": 0.000022687652513233666,
+          "y": 0.00009227238050159303,
+          "z": 0.00004352474823915149
+        }
+      },
+      {
+        "id": "n677",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4062,
+          4063,
+          4064,
+          4065,
+          4066,
+          4067
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 20,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00032124784959557405,
+          "y": -0.001056797917106819,
+          "z": 0.00006225563565646764
+        },
+        "angle": {
+          "x": 0.000004237812975738461,
+          "y": -0.00007448483248802203,
+          "z": -0.000016930636868931116
+        }
+      },
+      {
+        "id": "n678",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4068,
+          4069,
+          4070,
+          4071,
+          4072,
+          4073
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 17.979694910895578,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00022002405160163744,
+          "y": -0.0010314542105823161,
+          "z": 0.00006544417086054956
+        },
+        "angle": {
+          "x": -0.00001260744312793592,
+          "y": 0.00024398672000456968,
+          "z": -0.00012802961266499547
+        }
+      },
+      {
+        "id": "n679",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4074,
+          4075,
+          4076,
+          4077,
+          4078,
+          4079
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 17.142857142857142,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000012940454354216515,
+          "y": -0.0010303479343179022,
+          "z": 0.00006969289681369295
+        },
+        "angle": {
+          "x": 0.00000430367270113419,
+          "y": -0.000020687306629346446,
+          "z": -0.000032955471639243115
+        }
+      },
+      {
+        "id": "n680",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4080,
+          4081,
+          4082,
+          4083,
+          4084,
+          4085
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 17.979694910895578,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001307289693356394,
+          "y": -0.0010412250223825424,
+          "z": 0.00007705442313069363
+        },
+        "angle": {
+          "x": 0.000018936039255619093,
+          "y": -0.0002480837597853231,
+          "z": -0.0001118544882916457
+        }
+      },
+      {
+        "id": "n681",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4086,
+          4087,
+          4088,
+          4089,
+          4090,
+          4091
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 25,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0003555741715125189,
+          "y": -0.001259593675040127,
+          "z": -0.000009853113765925529
+        },
+        "angle": {
+          "x": -0.00011077691280646927,
+          "y": -0.00005040432444289686,
+          "z": -0.00004871768702417753
+        }
+      },
+      {
+        "id": "n682",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4092,
+          4093,
+          4094,
+          4095,
+          4096,
+          4097
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 25,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00010493586107488335,
+          "y": -0.0011512977876780353,
+          "z": -0.00002030195261157454
+        },
+        "angle": {
+          "x": 5.497802211312379e-7,
+          "y": -0.00004068591751771297,
+          "z": -0.0000024221774224987583
+        }
+      },
+      {
+        "id": "n683",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4098,
+          4099,
+          4100,
+          4101,
+          4102,
+          4103
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 25,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00023435532677129175,
+          "y": -0.0010127920428985241,
+          "z": 0.000055525313702335614
+        },
+        "angle": {
+          "x": -0.00002017115857952672,
+          "y": -0.00003153835683194143,
+          "z": 0.00003298487881884839
+        }
+      },
+      {
+        "id": "n684",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4104,
+          4105,
+          4106,
+          4107,
+          4108,
+          4109
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 25,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00020160175030143593,
+          "y": -0.001160525235598385,
+          "z": 0.00003967305622454446
+        },
+        "angle": {
+          "x": -0.0002329244389635223,
+          "y": -0.000033641471291148555,
+          "z": 0.00010820455187851679
+        }
+      },
+      {
+        "id": "n685",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4110,
+          4111,
+          4112,
+          4113,
+          4114,
+          4115
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 25,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00017125073706814327,
+          "y": -0.0012217186125439879,
+          "z": -0.000014952525958152113
+        },
+        "angle": {
+          "x": 0.00008890489094314836,
+          "y": -0.00003137958052800128,
+          "z": -0.000005579144937697516
+        }
+      },
+      {
+        "id": "n686",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4116,
+          4117,
+          4118,
+          4119,
+          4120,
+          4121
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 25,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00019072678905842955,
+          "y": -0.0011341139446355165,
+          "z": -0.00007443366087610311
+        },
+        "angle": {
+          "x": -0.000309480913718554,
+          "y": -0.00003643924606315147,
+          "z": -0.0001464300675330467
+        }
+      },
+      {
+        "id": "n687",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4122,
+          4123,
+          4124,
+          4125,
+          4126,
+          4127
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 25,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002242723688223865,
+          "y": -0.0009226161871789043,
+          "z": -0.00009186204884169941
+        },
+        "angle": {
+          "x": -0.000020170892903996955,
+          "y": -0.00003279917028873824,
+          "z": -0.000044143624924289305
+        }
+      },
+      {
+        "id": "n688",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4128,
+          4129,
+          4130,
+          4131,
+          4132,
+          4133
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895578,
+          "y": 25,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002609973297879645,
+          "y": -0.0012156169536284241,
+          "z": -0.00007723163501063048
+        },
+        "angle": {
+          "x": 0.00040590751368408393,
+          "y": -0.00003635769480712544,
+          "z": -0.00019478514512643214
+        }
+      },
+      {
+        "id": "n689",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4134,
+          4135,
+          4136,
+          4137,
+          4138,
+          4139
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 25,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00029063341526768514,
+          "y": -0.001336981714557005,
+          "z": -0.00001792412822793609
+        },
+        "angle": {
+          "x": -0.0001292469592618161,
+          "y": -0.000032947110888398075,
+          "z": -0.0000055793234773876264
+        }
+      },
+      {
+        "id": "n690",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4140,
+          4141,
+          4142,
+          4143,
+          4144,
+          4145
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 25,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002695065096820886,
+          "y": -0.0012420288565537952,
+          "z": 0.000041217688847485314
+        },
+        "angle": {
+          "x": 0.000336927874929581,
+          "y": -0.000034392702768107616,
+          "z": 0.0001592383909734574
+        }
+      },
+      {
+        "id": "n691",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4146,
+          4147,
+          4148,
+          4149,
+          4150,
+          4151
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 17.142857142857142,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002992252405147336,
+          "y": -0.0010799243831667127,
+          "z": 0.0001478273081498841
+        },
+        "angle": {
+          "x": -0.00020262853000451253,
+          "y": -0.000024252445746232372,
+          "z": 0.000015335330500162477
+        }
+      },
+      {
+        "id": "n692",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4152,
+          4153,
+          4154,
+          4155,
+          4156,
+          4157
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 17.979694910895578,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00029786910154920023,
+          "y": -0.0010661555576402992,
+          "z": 0.00002725743715916954
+        },
+        "angle": {
+          "x": 0.00008159550200474242,
+          "y": 0.00009347699543780576,
+          "z": -0.00000742137234473614
+        }
+      },
+      {
+        "id": "n693",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4158,
+          4159,
+          4160,
+          4161,
+          4162,
+          4163
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 20,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0003018418494219059,
+          "y": -0.0010781807567705718,
+          "z": 0.0001138802284337926
+        },
+        "angle": {
+          "x": -0.0000031040402200205855,
+          "y": -0.00011100584456904611,
+          "z": 0.0000021424277804206357
+        }
+      },
+      {
+        "id": "n694",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4164,
+          4165,
+          4166,
+          4167,
+          4168,
+          4169
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 22.020305089104422,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000286941518855294,
+          "y": -0.0010964943452530685,
+          "z": 0.000014715204130963117
+        },
+        "angle": {
+          "x": -0.00005902877028196055,
+          "y": 0.00002400839589936183,
+          "z": 0.000016003358154091788
+        }
+      },
+      {
+        "id": "n695",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4170,
+          4171,
+          4172,
+          4173,
+          4174,
+          4175
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 22.857142857142858,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002746534292466765,
+          "y": -0.0011367450399467883,
+          "z": 0.000013822028929688215
+        },
+        "angle": {
+          "x": -0.0001227627940297442,
+          "y": 0.0000504079348651076,
+          "z": 0.000017504420766313082
+        }
+      },
+      {
+        "id": "n696",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4176,
+          4177,
+          4178,
+          4179,
+          4180,
+          4181
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 22.020305089104422,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002742188482698102,
+          "y": -0.0011525665756855527,
+          "z": 0.00021839400898693471
+        },
+        "angle": {
+          "x": -0.000011047739332128806,
+          "y": 0.00009668183707368555,
+          "z": -0.000008728516943468858
+        }
+      },
+      {
+        "id": "n697",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4182,
+          4183,
+          4184,
+          4185,
+          4186,
+          4187
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 20,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00027435214846206844,
+          "y": -0.0011362975814681652,
+          "z": 0.00032162066099523066
+        },
+        "angle": {
+          "x": 0.00007155640006798885,
+          "y": 0.00029610556396984225,
+          "z": 0.000004570967462240598
+        }
+      },
+      {
+        "id": "n698",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4188,
+          4189,
+          4190,
+          4191,
+          4192,
+          4193
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 17.979694910895578,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00029038025412646187,
+          "y": -0.001115125247636555,
+          "z": -0.00007073744104605002
+        },
+        "angle": {
+          "x": 0.00028852086980612145,
+          "y": -0.0002276934387304144,
+          "z": 0.000013502864478130975
+        }
+      },
+      {
+        "id": "n699",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4194,
+          4195,
+          4196,
+          4197,
+          4198,
+          4199
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 22.857142857142858,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000976874789799877,
+          "y": -0.0011004686395498695,
+          "z": -0.00001710604909239605
+        },
+        "angle": {
+          "x": 0.0000049929329959249875,
+          "y": -0.00002912166542302559,
+          "z": 2.3821365251692814e-7
+        }
+      },
+      {
+        "id": "n700",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4200,
+          4201,
+          4202,
+          4203,
+          4204,
+          4205
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 22.020305089104422,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008400398059762148,
+          "y": -0.001089048837645458,
+          "z": -0.00007859861030124045
+        },
+        "angle": {
+          "x": -0.000008491854301359757,
+          "y": -0.00003244961142796834,
+          "z": -0.000013692590533307552
+        }
+      },
+      {
+        "id": "n701",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4206,
+          4207,
+          4208,
+          4209,
+          4210,
+          4211
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 20,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007380376070969493,
+          "y": -0.0010589784353085554,
+          "z": -0.0000879673438851819
+        },
+        "angle": {
+          "x": -0.000002542197507716694,
+          "y": -0.00001695627959132544,
+          "z": -0.00000124089453593941
+        }
+      },
+      {
+        "id": "n702",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4212,
+          4213,
+          4214,
+          4215,
+          4216,
+          4217
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 17.979694910895578,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008062834402568878,
+          "y": -0.0010290350270955038,
+          "z": -0.00006895676612784733
+        },
+        "angle": {
+          "x": 0.000001522409351810207,
+          "y": -0.000025639517335211744,
+          "z": 0.000014311006216209795
+        }
+      },
+      {
+        "id": "n703",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4218,
+          4219,
+          4220,
+          4221,
+          4222,
+          4223
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 17.142857142857142,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00009163910340325999,
+          "y": -0.0010151356864879558,
+          "z": -0.00001711697814513917
+        },
+        "angle": {
+          "x": -0.0000030889895714266293,
+          "y": -0.000024705114862833134,
+          "z": 2.111640277628131e-7
+        }
+      },
+      {
+        "id": "n704",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4224,
+          4225,
+          4226,
+          4227,
+          4228,
+          4229
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 17.979694910895578,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00010340267773778662,
+          "y": -0.0010291112933678763,
+          "z": 0.00002955283288081587
+        },
+        "angle": {
+          "x": 1.379811076377721e-7,
+          "y": -0.0000223927609611123,
+          "z": -0.000015647561016563383
+        }
+      },
+      {
+        "id": "n705",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4230,
+          4231,
+          4232,
+          4233,
+          4234,
+          4235
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 20,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011596454755586212,
+          "y": -0.0010602667450991682,
+          "z": 0.0000487973335038364
+        },
+        "angle": {
+          "x": 0.000001659090335413265,
+          "y": -0.000019126695890232116,
+          "z": -0.000002017077831704478
+        }
+      },
+      {
+        "id": "n706",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4236,
+          4237,
+          4238,
+          4239,
+          4240,
+          4241
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 22.020305089104422,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011091797719416072,
+          "y": -0.0010888019218244541,
+          "z": 0.00003602994859015756
+        },
+        "angle": {
+          "x": 0.0000046341895877245995,
+          "y": -0.000026715435081278694,
+          "z": 0.000012814873298440878
+        }
+      },
+      {
+        "id": "n707",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4242,
+          4243,
+          4244,
+          4245,
+          4246,
+          4247
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 15,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004630782041465264,
+          "y": -0.0009625605769460102,
+          "z": 0.00002613932821280367
+        },
+        "angle": {
+          "x": 0.00005301959748847079,
+          "y": -0.000020919365253061616,
+          "z": 0.00002546642567099497
+        }
+      },
+      {
+        "id": "n708",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4248,
+          4249,
+          4250,
+          4251,
+          4252,
+          4253
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 15,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003857888494238099,
+          "y": -0.0009626483703974201,
+          "z": -0.00004831282313843157
+        },
+        "angle": {
+          "x": 0.00008615349472051544,
+          "y": -0.000021992991592693676,
+          "z": -0.00003724443925163037
+        }
+      },
+      {
+        "id": "n709",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4254,
+          4255,
+          4256,
+          4257,
+          4258,
+          4259
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895578,
+          "y": 15,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000025866035936545043,
+          "y": -0.0009588875482255258,
+          "z": -0.00004792465956915987
+        },
+        "angle": {
+          "x": -0.00006340772265045716,
+          "y": -0.000021666000370005583,
+          "z": -0.00002862114117229659
+        }
+      },
+      {
+        "id": "n710",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4260,
+          4261,
+          4262,
+          4263,
+          4264,
+          4265
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 25,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00005101645135249504,
+          "y": -0.0011544648041101225,
+          "z": 0.00011923343920702248
+        },
+        "angle": {
+          "x": 0.000006302230636836283,
+          "y": -0.000041919280155767416,
+          "z": 7.802557943659956e-7
+        }
+      },
+      {
+        "id": "n711",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4266,
+          4267,
+          4268,
+          4269,
+          4270,
+          4271
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 20,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004897776084257313,
+          "y": -0.0010641116476582681,
+          "z": 0.00010578650993299132
+        },
+        "angle": {
+          "x": 0.000004583650128927168,
+          "y": -0.000016354320819290577,
+          "z": -0.0000023720187693370002
+        }
+      },
+      {
+        "id": "n712",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4272,
+          4273,
+          4274,
+          4275,
+          4276,
+          4277
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 20,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00001905997354340585,
+          "y": -0.0010661258779842994,
+          "z": 0.0001104001638149604
+        },
+        "angle": {
+          "x": 0.000003748583706265547,
+          "y": -0.000015033080459765984,
+          "z": -0.0000030080257680603224
+        }
+      },
+      {
+        "id": "n713",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4278,
+          4279,
+          4280,
+          4281,
+          4282,
+          4283
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 22.020305089104422,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000020385939056922716,
+          "y": -0.0010922405857426393,
+          "z": 0.00010925500337806226
+        },
+        "angle": {
+          "x": -0.000010364336524584418,
+          "y": 0.00002569439207131791,
+          "z": -0.00001917992574288671
+        }
+      },
+      {
+        "id": "n714",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4284,
+          4285,
+          4286,
+          4287,
+          4288,
+          4289
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 22.857142857142858,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006648052298467534,
+          "y": -0.0010956261707810307,
+          "z": 0.00010572712824610784
+        },
+        "angle": {
+          "x": 0.000002265041427258554,
+          "y": -0.000026210185597032573,
+          "z": -0.0000026015175019454394
+        }
+      },
+      {
+        "id": "n715",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4290,
+          4291,
+          4292,
+          4293,
+          4294,
+          4295
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 22.020305089104422,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00010119082022470959,
+          "y": -0.001087854303806167,
+          "z": 0.00009905844130981413
+        },
+        "angle": {
+          "x": 0.000018123182478449796,
+          "y": -0.000007924981942357375,
+          "z": 0.0000020906370802527552
+        }
+      },
+      {
+        "id": "n716",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4296,
+          4297,
+          4298,
+          4299,
+          4300,
+          4301
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 20,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001099739750027059,
+          "y": -0.0010565617205152784,
+          "z": 0.00008410570683715655
+        },
+        "angle": {
+          "x": 0.000003879782987233082,
+          "y": -0.00003012876090917901,
+          "z": -0.0000075322404232893035
+        }
+      },
+      {
+        "id": "n717",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4302,
+          4303,
+          4304,
+          4305,
+          4306,
+          4307
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 17.979694910895578,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006833132512641108,
+          "y": -0.001030211774076165,
+          "z": 0.00008601476201438834
+        },
+        "angle": {
+          "x": -0.000011678563644372003,
+          "y": 0.00007078184241993843,
+          "z": -0.00004143689517318673
+        }
+      },
+      {
+        "id": "n718",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4308,
+          4309,
+          4310,
+          4311,
+          4312,
+          4313
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 17.142857142857142,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00001869713265579991,
+          "y": -0.0010258647553896597,
+          "z": 0.00008957229653375606
+        },
+        "angle": {
+          "x": 0.000002070540358884075,
+          "y": -0.000018951707122867722,
+          "z": -0.000007938661084567718
+        }
+      },
+      {
+        "id": "n719",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4314,
+          4315,
+          4316,
+          4317,
+          4318,
+          4319
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 17.979694910895578,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000014998037355995173,
+          "y": -0.0010343035272846743,
+          "z": 0.0000958377248103294
+        },
+        "angle": {
+          "x": 0.000018290146872500496,
+          "y": -0.000059784019098545095,
+          "z": -0.000020602432037018605
+        }
+      },
+      {
+        "id": "n720",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4320,
+          4321,
+          4322,
+          4323,
+          4324,
+          4325
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 25,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00009254823185375533,
+          "y": -0.0011465946736811574,
+          "z": -0.000020785182755242365
+        },
+        "angle": {
+          "x": -0.0000028765883499370256,
+          "y": -0.000040830160301624846,
+          "z": 0.0000031775747068112875
+        }
+      },
+      {
+        "id": "n721",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4326,
+          4327,
+          4328,
+          4329,
+          4330,
+          4331
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 25,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00001182800109187635,
+          "y": -0.0010226370221324756,
+          "z": 0.00004566802869831385
+        },
+        "angle": {
+          "x": 9.053794617559746e-9,
+          "y": -0.000025169427920201863,
+          "z": 0.00002578106149350916
+        }
+      },
+      {
+        "id": "n722",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4332,
+          4333,
+          4334,
+          4335,
+          4336,
+          4337
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 25,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000016546855080078406,
+          "y": -0.001169864014335878,
+          "z": 0.00003314236298844231
+        },
+        "angle": {
+          "x": -0.00020073451309346173,
+          "y": -0.000033118026899740163,
+          "z": 0.00009669604743758481
+        }
+      },
+      {
+        "id": "n723",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4338,
+          4339,
+          4340,
+          4341,
+          4342,
+          4343
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 25,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000043013804277981206,
+          "y": -0.0012306623776538474,
+          "z": -0.000019430662946047602
+        },
+        "angle": {
+          "x": 0.00006830868220510961,
+          "y": -0.000028851200974346244,
+          "z": 0.0000015162061347676662
+        }
+      },
+      {
+        "id": "n724",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4344,
+          4345,
+          4346,
+          4347,
+          4348,
+          4349
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 25,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00002358488535198632,
+          "y": -0.0011771340891261572,
+          "z": -0.00007184333535759111
+        },
+        "angle": {
+          "x": -0.0002475282574373146,
+          "y": -0.00003146830897674644,
+          "z": -0.00011009040053519332
+        }
+      },
+      {
+        "id": "n725",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4350,
+          4351,
+          4352,
+          4353,
+          4354,
+          4355
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 25,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 2.0156976757553374e-7,
+          "y": -0.0010483518390720632,
+          "z": -0.00008696084045819224
+        },
+        "angle": {
+          "x": -2.3088991531985812e-7,
+          "y": -0.000025124387472461087,
+          "z": -0.00002259901620551451
+        }
+      },
+      {
+        "id": "n726",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4356,
+          4357,
+          4358,
+          4359,
+          4360,
+          4361
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895578,
+          "y": 25,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000286471394392215,
+          "y": -0.0011778440521197505,
+          "z": -0.00007435031215813157
+        },
+        "angle": {
+          "x": 0.00016420553594116583,
+          "y": -0.000033639162849129866,
+          "z": -0.00008067753381072589
+        }
+      },
+      {
+        "id": "n727",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4362,
+          4363,
+          4364,
+          4365,
+          4366,
+          4367
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 25,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000055324063765118397,
+          "y": -0.0012312964501186457,
+          "z": -0.000021471713608289605
+        },
+        "angle": {
+          "x": -0.00006853063785016428,
+          "y": -0.00002879252576250663,
+          "z": 0.000001665854971115625
+        }
+      },
+      {
+        "id": "n728",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4368,
+          4369,
+          4370,
+          4371,
+          4372,
+          4373
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 25,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000035909066679514284,
+          "y": -0.0011700507185611554,
+          "z": 0.000030674797736551755
+        },
+        "angle": {
+          "x": 0.000260351446758056,
+          "y": -0.00003134332314459276,
+          "z": 0.00011788459832204558
+        }
+      },
+      {
+        "id": "n729",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4374,
+          4375,
+          4376,
+          4377,
+          4378,
+          4379
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 22.857142857142858,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008355319240081164,
+          "y": -0.001095718480591688,
+          "z": -0.000015151096543870376
+        },
+        "angle": {
+          "x": -0.0000029503384132066306,
+          "y": -0.000029392203992091227,
+          "z": 4.1446594863270857e-7
+        }
+      },
+      {
+        "id": "n730",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4380,
+          4381,
+          4382,
+          4383,
+          4384,
+          4385
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 22.020305089104422,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00009644811481417311,
+          "y": -0.0010852834857620222,
+          "z": -0.00007052333631653695
+        },
+        "angle": {
+          "x": -0.000008907837120802806,
+          "y": -0.000029573048714231396,
+          "z": -0.000012242038712866696
+        }
+      },
+      {
+        "id": "n731",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4386,
+          4387,
+          4388,
+          4389,
+          4390,
+          4391
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 20,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00009984334640643019,
+          "y": -0.0010572867199864357,
+          "z": -0.00007693292076476728
+        },
+        "angle": {
+          "x": -0.000003874513828572718,
+          "y": -0.000016809031650663343,
+          "z": 0.000002974606861194074
+        }
+      },
+      {
+        "id": "n732",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4392,
+          4393,
+          4394,
+          4395,
+          4396,
+          4397
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 17.979694910895578,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008526334579308209,
+          "y": -0.0010253045605401528,
+          "z": -0.000055209638862284356
+        },
+        "angle": {
+          "x": -4.0539903453577963e-7,
+          "y": -0.00002457171408261703,
+          "z": 0.000016612209937498043
+        }
+      },
+      {
+        "id": "n733",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4398,
+          4399,
+          4400,
+          4401,
+          4402,
+          4403
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 17.142857142857142,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007238344856308238,
+          "y": -0.001010133949379769,
+          "z": -0.000003928341357460274
+        },
+        "angle": {
+          "x": -0.0000021539635674927162,
+          "y": -0.000024812396834572265,
+          "z": 2.839949873136812e-7
+        }
+      },
+      {
+        "id": "n734",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4404,
+          4405,
+          4406,
+          4407,
+          4408,
+          4409
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 17.979694910895578,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006155540760637488,
+          "y": -0.0010228323773722235,
+          "z": 0.00004374790723992918
+        },
+        "angle": {
+          "x": -0.0000013113854712257205,
+          "y": -0.00002349842699222575,
+          "z": -0.000013537572913318861
+        }
+      },
+      {
+        "id": "n735",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4410,
+          4411,
+          4412,
+          4413,
+          4414,
+          4415
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 20,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000056645436165926195,
+          "y": -0.001051980277219562,
+          "z": 0.0000613213090183958
+        },
+        "angle": {
+          "x": 4.874411679585112e-7,
+          "y": -0.000020156634752782462,
+          "z": 0.000002290453030445187
+        }
+      },
+      {
+        "id": "n736",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4416,
+          4417,
+          4418,
+          4419,
+          4420,
+          4421
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 22.020305089104422,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006897462481658247,
+          "y": -0.001082777001960392,
+          "z": 0.00004515904179963537
+        },
+        "angle": {
+          "x": 0.000004173321968975976,
+          "y": -0.000030056094360093806,
+          "z": 0.000014644968204242036
+        }
+      },
+      {
+        "id": "n737",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4422,
+          4423,
+          4424,
+          4425,
+          4426,
+          4427
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 15,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00010883997729113472,
+          "y": -0.0009998979375203771,
+          "z": -0.00003242112676789697
+        },
+        "angle": {
+          "x": 0.00006803892623262776,
+          "y": -0.00002207037347907057,
+          "z": -0.000021783568681775872
+        }
+      },
+      {
+        "id": "n738",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4428,
+          4429,
+          4430,
+          4431,
+          4432,
+          4433
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895578,
+          "y": 15,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001735008454225925,
+          "y": -0.0009991333680975964,
+          "z": -0.00003222065377287166
+        },
+        "angle": {
+          "x": 0.00014457342440431537,
+          "y": -0.000019417144079738002,
+          "z": 0.000053588936746800824
+        }
+      },
+      {
+        "id": "n739",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4434,
+          4435,
+          4436,
+          4437,
+          4438,
+          4439
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 25,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00018199981145071163,
+          "y": -0.0011746599305049819,
+          "z": 0.00011818436201058158
+        },
+        "angle": {
+          "x": -0.0000018798118401445101,
+          "y": -0.000034382947751589465,
+          "z": 0.000007010714221845026
+        }
+      },
+      {
+        "id": "n740",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4440,
+          4441,
+          4442,
+          4443,
+          4444,
+          4445
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 20,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00023752360507520596,
+          "y": -0.0011048203172412364,
+          "z": 0.00013382942739454464
+        },
+        "angle": {
+          "x": 0.000009582786951292041,
+          "y": -0.00001630788464018477,
+          "z": -0.000002473431285514716
+        }
+      },
+      {
+        "id": "n741",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4446,
+          4447,
+          4448,
+          4449,
+          4450,
+          4451
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 20,
+          "z": 22.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00019762573270873369,
+          "y": -0.0010874082785707307,
+          "z": 0.00013394868547777431
+        },
+        "angle": {
+          "x": 0.0000033533948675797725,
+          "y": -0.000010734603185337353,
+          "z": 0.000006005756597384124
+        }
+      },
+      {
+        "id": "n742",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4452,
+          4453,
+          4454,
+          4455,
+          4456,
+          4457
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 22.020305089104422,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00020215023265478002,
+          "y": -0.0011138585764247295,
+          "z": 0.0001291027701138942
+        },
+        "angle": {
+          "x": -0.000013803563125263156,
+          "y": -0.00003760553975793869,
+          "z": 0.00001460919038151925
+        }
+      },
+      {
+        "id": "n743",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4458,
+          4459,
+          4460,
+          4461,
+          4462,
+          4463
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 22.857142857142858,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0002062398959836305,
+          "y": -0.0011136467366105608,
+          "z": 0.00012351166939267609
+        },
+        "angle": {
+          "x": 0.000004305665691103423,
+          "y": -0.000024400238259004093,
+          "z": 0.000009043509577684636
+        }
+      },
+      {
+        "id": "n744",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4464,
+          4465,
+          4466,
+          4467,
+          4468,
+          4469
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 22.020305089104422,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00010697509065191378,
+          "y": -0.001103659671208553,
+          "z": 0.00011564799626754479
+        },
+        "angle": {
+          "x": 0.00001765462256079885,
+          "y": 0.00003702438664665583,
+          "z": 0.00002986350211700329
+        }
+      },
+      {
+        "id": "n745",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4470,
+          4471,
+          4472,
+          4473,
+          4474,
+          4475
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 20,
+          "z": 17.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006868878558141192,
+          "y": -0.0010712181734785617,
+          "z": 0.00010248471055427036
+        },
+        "angle": {
+          "x": 0.0000030701890589374234,
+          "y": -0.0000343932464995167,
+          "z": 0.0000037166631424435215
+        }
+      },
+      {
+        "id": "n746",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4476,
+          4477,
+          4478,
+          4479,
+          4480,
+          4481
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 17.979694910895578,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000879656522587402,
+          "y": -0.0010435561201711937,
+          "z": 0.00010456735430565868
+        },
+        "angle": {
+          "x": -0.000010972264535593195,
+          "y": 0.000019124039503968878,
+          "z": -0.000014307688581046213
+        }
+      },
+      {
+        "id": "n747",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4482,
+          4483,
+          4484,
+          4485,
+          4486,
+          4487
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 17.142857142857142,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001276708676099754,
+          "y": -0.001043505789813192,
+          "z": 0.0001082769476073841
+        },
+        "angle": {
+          "x": 0.000005452597712702027,
+          "y": -0.000020727728679741326,
+          "z": 6.78903986444237e-7
+        }
+      },
+      {
+        "id": "n748",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4488,
+          4489,
+          4490,
+          4491,
+          4492,
+          4493
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 17.979694910895578,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000175134995621031,
+          "y": -0.0010555011241468264,
+          "z": 0.00011679327622761561
+        },
+        "angle": {
+          "x": 0.000021533490388394648,
+          "y": -0.00003296031906061447,
+          "z": -0.000002749100971002015
+        }
+      },
+      {
+        "id": "n749",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4494,
+          4495,
+          4496,
+          4497,
+          4498,
+          4499
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 25,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00034117065258021655,
+          "y": -0.0012406000853322327,
+          "z": -0.0000321527448074255
+        },
+        "angle": {
+          "x": 0.00011260514506686288,
+          "y": -0.00005002154414969308,
+          "z": 0.000052045676729395165
+        }
+      },
+      {
+        "id": "n750",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4500,
+          4501,
+          4502,
+          4503,
+          4504,
+          4505
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 25,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00021088586496394304,
+          "y": -0.001054213597088506,
+          "z": 0.000050431798561922635
+        },
+        "angle": {
+          "x": 0.00002072186616504396,
+          "y": -0.00003203919861350526,
+          "z": 0.000018425064895716704
+        }
+      },
+      {
+        "id": "n751",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4506,
+          4507,
+          4508,
+          4509,
+          4510,
+          4511
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 25,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00024667947469164924,
+          "y": -0.001201364813983766,
+          "z": 0.00003583629743337432
+        },
+        "angle": {
+          "x": -0.0001767729113945232,
+          "y": -0.00003632903211468095,
+          "z": 0.00008825030615883281
+        }
+      },
+      {
+        "id": "n752",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4512,
+          4513,
+          4514,
+          4515,
+          4516,
+          4517
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 25,
+          "z": 22.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0002765713124611353,
+          "y": -0.0012623181226819595,
+          "z": -0.000023613836692188077
+        },
+        "angle": {
+          "x": 0.000050389219000460515,
+          "y": -0.000033093688224620024,
+          "z": 0.000007936906053681496
+        }
+      },
+      {
+        "id": "n753",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4518,
+          4519,
+          4520,
+          4521,
+          4522,
+          4523
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 25,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00025573131788644783,
+          "y": -0.0012389361781775384,
+          "z": -0.00008291538344126805
+        },
+        "angle": {
+          "x": -0.00008670959819956062,
+          "y": -0.000034267677187522626,
+          "z": -0.000040535448920907884
+        }
+      },
+      {
+        "id": "n754",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4524,
+          4525,
+          4526,
+          4527,
+          4528,
+          4529
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 25,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00022203570509656567,
+          "y": -0.0011824838001721037,
+          "z": -0.00009723277939590798
+        },
+        "angle": {
+          "x": 0.000020723142942650173,
+          "y": -0.00003074866226995826,
+          "z": -0.0000025525146368920674
+        }
+      },
+      {
+        "id": "n755",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4530,
+          4531,
+          4532,
+          4533,
+          4534,
+          4535
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895578,
+          "y": 25,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00018996101131055025,
+          "y": -0.001155203037565605,
+          "z": -0.00008128266336260427
+        },
+        "angle": {
+          "x": -0.00005015047263653874,
+          "y": -0.00003460575237908895,
+          "z": 0.00002250481496238978
+        }
+      },
+      {
+        "id": "n756",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4536,
+          4537,
+          4538,
+          4539,
+          4540,
+          4541
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 25,
+          "z": 17.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00015901713705976207,
+          "y": -0.0011439037630202149,
+          "z": -0.000025896118732177516
+        },
+        "angle": {
+          "x": -0.000008944261982324685,
+          "y": -0.00003143506588398463,
+          "z": 0.000007936002278145983
+        }
+      },
+      {
+        "id": "n757",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4542,
+          4543,
+          4544,
+          4545,
+          4546,
+          4547
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 25,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00017826182937420867,
+          "y": -0.0011176346936791449,
+          "z": 0.000033264757437637776
+        },
+        "angle": {
+          "x": 0.00005934605032171815,
+          "y": -0.00003609722251788602,
+          "z": 0.00003208049832754962
+        }
+      },
+      {
+        "id": "n758",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4548,
+          4549,
+          4550,
+          4551,
+          4552,
+          4553
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 22.857142857142858,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00025348275718073036,
+          "y": -0.0011159312379950225,
+          "z": -0.00006581395107558283
+        },
+        "angle": {
+          "x": 0.00011823917319404884,
+          "y": 0.00005041771673324176,
+          "z": -0.000015657798426817475
+        }
+      },
+      {
+        "id": "n759",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4554,
+          4555,
+          4556,
+          4557,
+          4558,
+          4559
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 22.020305089104422,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0002654256621950999,
+          "y": -0.0010786236814719838,
+          "z": -0.00006290177973728387
+        },
+        "angle": {
+          "x": 0.00004735932144083005,
+          "y": 0.000021058323468323643,
+          "z": -0.000015027788559224919
+        }
+      },
+      {
+        "id": "n760",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4560,
+          4561,
+          4562,
+          4563,
+          4564,
+          4565
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.142857142857142,
+          "y": 20,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0002759569507875022,
+          "y": -0.0010614004319943915,
+          "z": -0.00014095967996348725
+        },
+        "angle": {
+          "x": -0.0000010639639716824368,
+          "y": -0.00009584582469126165,
+          "z": 5.130465006270572e-7
+        }
+      },
+      {
+        "id": "n761",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4566,
+          4567,
+          4568,
+          4569,
+          4570,
+          4571
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 7.979694910895579,
+          "y": 17.979694910895578,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0002670921078625446,
+          "y": -0.0010477690234271938,
+          "z": -0.00005860272621775097
+        },
+        "angle": {
+          "x": -0.00007165886426378696,
+          "y": 0.00007458539231627883,
+          "z": 0.00000897773072322441
+        }
+      },
+      {
+        "id": "n762",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4572,
+          4573,
+          4574,
+          4575,
+          4576,
+          4577
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 17.142857142857142,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0002643760414120609,
+          "y": -0.0010582289757701657,
+          "z": -0.0001493211530486007
+        },
+        "angle": {
+          "x": 0.00018278193705508757,
+          "y": -0.0000308074351412261,
+          "z": -0.000013294557560252147
+        }
+      },
+      {
+        "id": "n763",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4578,
+          4579,
+          4580,
+          4581,
+          4582,
+          4583
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 17.979694910895578,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0002540780303042978,
+          "y": -0.001089161910355511,
+          "z": 0.00006587825180233295
+        },
+        "angle": {
+          "x": -0.00031732711710061816,
+          "y": -0.00023795964739164302,
+          "z": -0.00001224394133834859
+        }
+      },
+      {
+        "id": "n764",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4584,
+          4585,
+          4586,
+          4587,
+          4588,
+          4589
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.857142857142858,
+          "y": 20,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00024306757345880192,
+          "y": -0.001108446509107564,
+          "z": -0.00037608618621801955
+        },
+        "angle": {
+          "x": -0.00008228917973541913,
+          "y": 0.0003294726763460599,
+          "z": -0.000001307994362387661
+        }
+      },
+      {
+        "id": "n765",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4590,
+          4591,
+          4592,
+          4593,
+          4594,
+          4595
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 12.020305089104422,
+          "y": 22.020305089104422,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0002500044301465388,
+          "y": -0.0011269838091626395,
+          "z": -0.0002666201375358389
+        },
+        "angle": {
+          "x": 0.000015707702142644076,
+          "y": 0.00009288767752249557,
+          "z": 0.00001192045437238192
+        }
+      },
+      {
+        "id": "n766",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4596,
+          4597,
+          4598,
+          4599,
+          4600,
+          4601
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 25,
+          "y": -5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n767",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4602,
+          4603,
+          4604,
+          4605,
+          4606,
+          4607
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 20,
+          "y": -5,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n768",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4608,
+          4609,
+          4610,
+          4611,
+          4612,
+          4613
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 20,
+          "y": -5,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n769",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4614,
+          4615,
+          4616,
+          4617,
+          4618,
+          4619
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 22.857142857142858,
+          "y": -5,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n770",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4620,
+          4621,
+          4622,
+          4623,
+          4624,
+          4625
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": -5,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n771",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4626,
+          4627,
+          4628,
+          4629,
+          4630,
+          4631
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 20,
+          "y": -5,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n772",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4632,
+          4633,
+          4634,
+          4635,
+          4636,
+          4637
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": -5,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n773",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4638,
+          4639,
+          4640,
+          4641,
+          4642,
+          4643
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 17.142857142857142,
+          "y": -5,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n774",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4644,
+          4645,
+          4646,
+          4647,
+          4648,
+          4649
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": -5,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n775",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4650,
+          4651,
+          4652,
+          4653,
+          4654,
+          4655
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 20,
+          "y": -5,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n776",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4656,
+          4657,
+          4658,
+          4659,
+          4660,
+          4661
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": -5,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n777",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4662,
+          4663,
+          4664,
+          4665,
+          4666,
+          4667
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008800013855385991,
+          "y": -0.0006529444452605066,
+          "z": 0.00010232422529890549
+        },
+        "angle": {
+          "x": 0.00006471548718714836,
+          "y": -0.000009987343858452525,
+          "z": 0.00002961919193999351
+        }
+      },
+      {
+        "id": "n778",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4668,
+          4669,
+          4670,
+          4671,
+          4672,
+          4673
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 0,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000027739609529315828,
+          "y": -0.00028415624473674496,
+          "z": 0.000021585028922410732
+        },
+        "angle": {
+          "x": 0.00005356018976519214,
+          "y": 0.000053130140607959244,
+          "z": -0.000015411780108988623
+        }
+      },
+      {
+        "id": "n779",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4674,
+          4675,
+          4676,
+          4677,
+          4678,
+          4679
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 0,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001242649197406165,
+          "y": -0.0003175524882225937,
+          "z": 0.000011269323068613106
+        },
+        "angle": {
+          "x": 0.0000254219591852697,
+          "y": 0.000006679245432875613,
+          "z": -0.000007083674805023008
+        }
+      },
+      {
+        "id": "n780",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4680,
+          4681,
+          4682,
+          4683,
+          4684,
+          4685
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": -3.140184917367551e-16,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00010630077030228617,
+          "y": -0.0001958617251827732,
+          "z": 0.000025709013854808608
+        },
+        "angle": {
+          "x": -6.982597696054449e-7,
+          "y": 0.00003751926485204901,
+          "z": -0.00003164648087266203
+        }
+      },
+      {
+        "id": "n781",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4686,
+          4687,
+          4688,
+          4689,
+          4690,
+          4691
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 2.020305089104421,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001498085298755951,
+          "y": -0.0002452144329089171,
+          "z": 0.000016014438131635033
+        },
+        "angle": {
+          "x": -0.000018912067299292642,
+          "y": 0.00012979821006157816,
+          "z": -0.00006427219839253971
+        }
+      },
+      {
+        "id": "n782",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4692,
+          4693,
+          4694,
+          4695,
+          4696,
+          4697
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 2.857142857142857,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00025484702476514577,
+          "y": -0.0003650208308859475,
+          "z": 0.000002043032756454164
+        },
+        "angle": {
+          "x": -0.00008392649532430641,
+          "y": -0.0000215798367495061,
+          "z": -0.000010752178416503734
+        }
+      },
+      {
+        "id": "n783",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4698,
+          4699,
+          4700,
+          4701,
+          4702,
+          4703
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 2.0203050891044216,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00023700351207260273,
+          "y": -0.0004591856391200545,
+          "z": 0.0000022184200609848356
+        },
+        "angle": {
+          "x": 0.00003270248174013905,
+          "y": -0.0003369472071910829,
+          "z": -0.0001222515595378053
+        }
+      },
+      {
+        "id": "n784",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4704,
+          4705,
+          4706,
+          4707,
+          4708,
+          4709
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 3.140184917367551e-16,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002296118700935571,
+          "y": -0.0004090124735359214,
+          "z": -0.000014547349321540286
+        },
+        "angle": {
+          "x": -0.0000017000767786764484,
+          "y": -0.00008067812675674887,
+          "z": -0.000031646971163584964
+        }
+      },
+      {
+        "id": "n785",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4710,
+          4711,
+          4712,
+          4713,
+          4714,
+          4715
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": -2.020305089104421,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008719115331927992,
+          "y": -0.0003646083741754758,
+          "z": 9.990238134658859e-7
+        },
+        "angle": {
+          "x": -0.000021062704305403464,
+          "y": 0.0006259323205735131,
+          "z": -0.00028147134896086714
+        }
+      },
+      {
+        "id": "n786",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4716,
+          4717,
+          4718,
+          4719,
+          4720,
+          4721
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": -2.857142857142857,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000256641698704557,
+          "y": -0.0002459540388130024,
+          "z": 0.000018096957428791306
+        },
+        "angle": {
+          "x": -0.00008706840874196362,
+          "y": -0.000021579047080146708,
+          "z": -0.000052541344255122304
+        }
+      },
+      {
+        "id": "n787",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4722,
+          4723,
+          4724,
+          4725,
+          4726,
+          4727
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": -2.0203050891044216,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -2.1128093550319672e-9,
+          "y": -0.00014483822192807108,
+          "z": 0.000016124251380741364
+        },
+        "angle": {
+          "x": 0.00002241920961162562,
+          "y": -0.00040484751442572306,
+          "z": -0.0001880469876522973
+        }
+      },
+      {
+        "id": "n788",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4728,
+          4729,
+          4730,
+          4731,
+          4732,
+          4733
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 5,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011334097604445242,
+          "y": -0.0005959408076085473,
+          "z": 0.00005810689160274363
+        },
+        "angle": {
+          "x": -0.000004074945485378103,
+          "y": -0.000014339209416915777,
+          "z": -0.0000503459030842904
+        }
+      },
+      {
+        "id": "n789",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4734,
+          4735,
+          4736,
+          4737,
+          4738,
+          4739
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 5,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007708857992030838,
+          "y": -0.0005946621749646175,
+          "z": 0.00006598852390605318
+        },
+        "angle": {
+          "x": -0.0000032119562514118936,
+          "y": -0.000011832077686109168,
+          "z": -0.00000819441101984399
+        }
+      },
+      {
+        "id": "n790",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4740,
+          4741,
+          4742,
+          4743,
+          4744,
+          4745
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.857142857142858,
+          "y": 5,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008648774198334219,
+          "y": -0.0010053362222510512,
+          "z": 0.00008239083089080371
+        },
+        "angle": {
+          "x": 0.000025498843795611903,
+          "y": -0.000009422038786917714,
+          "z": -0.00003689732015694981
+        }
+      },
+      {
+        "id": "n791",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4746,
+          4747,
+          4748,
+          4749,
+          4750,
+          4751
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 5,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007608974909880805,
+          "y": -0.0008467686176235317,
+          "z": 0.00007862842467565444
+        },
+        "angle": {
+          "x": 0.0005813031206619342,
+          "y": -0.00000954419517381445,
+          "z": -0.0002330054372700736
+        }
+      },
+      {
+        "id": "n792",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4752,
+          4753,
+          4754,
+          4755,
+          4756,
+          4757
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 5,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007028342806035554,
+          "y": -0.0007887038184231921,
+          "z": 0.000060221585436088386
+        },
+        "angle": {
+          "x": 0.00012045260878556671,
+          "y": -0.000011147760045950949,
+          "z": -0.00006161244606001381
+        }
+      },
+      {
+        "id": "n793",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4758,
+          4759,
+          4760,
+          4761,
+          4762,
+          4763
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 5,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008276856996782183,
+          "y": -0.0005457934069299801,
+          "z": 0.0000418972826758303
+        },
+        "angle": {
+          "x": -0.000840373738322414,
+          "y": -0.00001186378572636638,
+          "z": -0.00039842155184151876
+        }
+      },
+      {
+        "id": "n794",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4764,
+          4765,
+          4766,
+          4767,
+          4768,
+          4769
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.142857142857142,
+          "y": 5,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000087247496673671,
+          "y": 0.000029010364375023147,
+          "z": 0.00003435917434245788
+        },
+        "angle": {
+          "x": 0.000024695716544394738,
+          "y": -0.000007897877264187418,
+          "z": -0.00009150244248484537
+        }
+      },
+      {
+        "id": "n795",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4770,
+          4771,
+          4772,
+          4773,
+          4774,
+          4775
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 5,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00009839364696358487,
+          "y": -0.0004419279373400572,
+          "z": 0.00003711539034056563
+        },
+        "angle": {
+          "x": 0.0010804557501096486,
+          "y": -0.000013253270976022647,
+          "z": -0.00046369900547867245
+        }
+      },
+      {
+        "id": "n796",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4776,
+          4777,
+          4778,
+          4779,
+          4780,
+          4781
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 5,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00010625892889577985,
+          "y": -0.0006383345451473639,
+          "z": 0.00005853529396964195
+        },
+        "angle": {
+          "x": -0.00006782376989414781,
+          "y": -0.000011079901594522598,
+          "z": -0.00006262979232577605
+        }
+      },
+      {
+        "id": "n797",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4782,
+          4783,
+          4784,
+          4785,
+          4786,
+          4787
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 5,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00009631318747391868,
+          "y": -0.000742220228301148,
+          "z": 0.00007701780666167298
+        },
+        "angle": {
+          "x": -0.0003275085885294475,
+          "y": -0.000011149917168191146,
+          "z": -0.00016210261521156993
+        }
+      },
+      {
+        "id": "n798",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4788,
+          4789,
+          4790,
+          4791,
+          4792,
+          4793
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": -2.857142857142857,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003915778811015539,
+          "y": -0.00019848611916282012,
+          "z": -0.00005486790262418504
+        },
+        "angle": {
+          "x": -0.0000060470247740754945,
+          "y": -0.00002966368940373589,
+          "z": 0.000038827666670513275
+        }
+      },
+      {
+        "id": "n799",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4794,
+          4795,
+          4796,
+          4797,
+          4798,
+          4799
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": -2.020305089104421,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003403464239014078,
+          "y": -0.000158525194824348,
+          "z": 1.3993296093582833e-9
+        },
+        "angle": {
+          "x": -0.0000256044374329797,
+          "y": -0.00003776457068416724,
+          "z": -0.000014772137289030708
+        }
+      },
+      {
+        "id": "n800",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4800,
+          4801,
+          4802,
+          4803,
+          4804,
+          4805
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.857142857142858,
+          "y": 0,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003562270169496472,
+          "y": -0.00021025694052646335,
+          "z": -0.00002012440292326231
+        },
+        "angle": {
+          "x": 0.00007130139091239948,
+          "y": 0.00019618652640471826,
+          "z": 0.0000030824262186479153
+        }
+      },
+      {
+        "id": "n801",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4806,
+          4807,
+          4808,
+          4809,
+          4810,
+          4811
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 2.020305089104421,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000019861626998446545,
+          "y": -0.0002691924969946136,
+          "z": 0.00028810246344217075
+        },
+        "angle": {
+          "x": 0.0001606271295571711,
+          "y": -0.000019464956873438475,
+          "z": 0.00002418819229287789
+        }
+      },
+      {
+        "id": "n802",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4812,
+          4813,
+          4814,
+          4815,
+          4816,
+          4817
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 2.857142857142857,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000002836477598017848,
+          "y": -0.00034977309260924406,
+          "z": 0.0003831960389982262
+        },
+        "angle": {
+          "x": 0.0002611091489887872,
+          "y": -0.00006108606202092013,
+          "z": 0.00003809852356961709
+        }
+      },
+      {
+        "id": "n803",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4818,
+          4819,
+          4820,
+          4821,
+          4822,
+          4823
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 2.020305089104421,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000004348209592171133,
+          "y": -0.00038513206590848114,
+          "z": 0.00004127752840752751
+        },
+        "angle": {
+          "x": -0.00015170736990555115,
+          "y": -0.00023208012996728323,
+          "z": -0.000019901448087567364
+        }
+      },
+      {
+        "id": "n804",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4824,
+          4825,
+          4826,
+          4827,
+          4828,
+          4829
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.142857142857142,
+          "y": 0,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 1.1538970066650695e-7,
+          "y": -0.0003352554841993415,
+          "z": 0.00015355905960699718
+        },
+        "angle": {
+          "x": 0.000039879033188143195,
+          "y": 0.00023044994245285022,
+          "z": 0.000004777983009201617
+        }
+      },
+      {
+        "id": "n805",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4830,
+          4831,
+          4832,
+          4833,
+          4834,
+          4835
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": -2.020305089104421,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000021483820251293216,
+          "y": -0.00027996515718183707,
+          "z": -0.00011985797729658109
+        },
+        "angle": {
+          "x": 0.00017944737001061175,
+          "y": -0.0001064979124165925,
+          "z": 0.00002535046871235635
+        }
+      },
+      {
+        "id": "n806",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4836,
+          4837,
+          4838,
+          4839,
+          4840,
+          4841
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 2.857142857142857,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007382076971635289,
+          "y": -0.00042410784614923397,
+          "z": 0.00007935268607324845
+        },
+        "angle": {
+          "x": 0.00003438131446898899,
+          "y": -0.000005808433489952989,
+          "z": -0.0000046020089314912415
+        }
+      },
+      {
+        "id": "n807",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4842,
+          4843,
+          4844,
+          4845,
+          4846,
+          4847
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 2.020305089104421,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000045233450041434036,
+          "y": -0.00037934088573893227,
+          "z": 0.000039325948812718315
+        },
+        "angle": {
+          "x": -0.000003209644585473185,
+          "y": -0.00002066685146703802,
+          "z": -0.00004092256865528686
+        }
+      },
+      {
+        "id": "n808",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4848,
+          4849,
+          4850,
+          4851,
+          4852,
+          4853
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.142857142857142,
+          "y": 0,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000012655321929306514,
+          "y": -0.00028385292665683516,
+          "z": 0.00002837473973685153
+        },
+        "angle": {
+          "x": 0.000007395290734453724,
+          "y": 0.000004683226701155739,
+          "z": -0.00000783382948276258
+        }
+      },
+      {
+        "id": "n809",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4854,
+          4855,
+          4856,
+          4857,
+          4858,
+          4859
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": -2.020305089104421,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00001562655176213351,
+          "y": -0.00019904055027962102,
+          "z": 0.000009585321163153294
+        },
+        "angle": {
+          "x": 0.000015524400204851757,
+          "y": -0.000015194661681880527,
+          "z": 0.00002912758542549362
+        }
+      },
+      {
+        "id": "n810",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4860,
+          4861,
+          4862,
+          4863,
+          4864,
+          4865
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": -2.857142857142857,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003453251601546388,
+          "y": -0.00017005336147566638,
+          "z": 0.00002797486306374362
+        },
+        "angle": {
+          "x": -0.00002254998494264374,
+          "y": 6.9098700964425e-8,
+          "z": -0.0000019460606133545037
+        }
+      },
+      {
+        "id": "n811",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4866,
+          4867,
+          4868,
+          4869,
+          4870,
+          4871
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": -2.020305089104421,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006625159988733089,
+          "y": -0.00021493312753245245,
+          "z": 0.000008623035830943701
+        },
+        "angle": {
+          "x": 0.000020143797478171512,
+          "y": 0.000018260603652938296,
+          "z": -0.00004821346275357245
+        }
+      },
+      {
+        "id": "n812",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4872,
+          4873,
+          4874,
+          4875,
+          4876,
+          4877
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.857142857142858,
+          "y": 0,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00010773131915280427,
+          "y": -0.00031068332210515567,
+          "z": 0.00003766507359502456
+        },
+        "angle": {
+          "x": 0.000014067129883790564,
+          "y": -0.000002910277156072352,
+          "z": -0.000008416980706385482
+        }
+      },
+      {
+        "id": "n813",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4878,
+          4879,
+          4880,
+          4881,
+          4882,
+          4883
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 2.020305089104421,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000976273794834836,
+          "y": -0.00039548102774138324,
+          "z": 0.0000618362466789491
+        },
+        "angle": {
+          "x": 0.000007702612030055191,
+          "y": 0.000005954508431333044,
+          "z": 0.00003636371868489461
+        }
+      },
+      {
+        "id": "n814",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4884,
+          4885,
+          4886,
+          4887,
+          4888,
+          4889
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 25,
+          "y": -5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n815",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4890,
+          4891,
+          4892,
+          4893,
+          4894,
+          4895
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 20,
+          "y": -5,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n816",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4896,
+          4897,
+          4898,
+          4899,
+          4900,
+          4901
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 22.857142857142858,
+          "y": -5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n817",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4902,
+          4903,
+          4904,
+          4905,
+          4906,
+          4907
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": -5,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n818",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4908,
+          4909,
+          4910,
+          4911,
+          4912,
+          4913
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 20,
+          "y": -5,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n819",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4914,
+          4915,
+          4916,
+          4917,
+          4918,
+          4919
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": -5,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n820",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4920,
+          4921,
+          4922,
+          4923,
+          4924,
+          4925
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 17.142857142857142,
+          "y": -5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n821",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4926,
+          4927,
+          4928,
+          4929,
+          4930,
+          4931
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": -5,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n822",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4932,
+          4933,
+          4934,
+          4935,
+          4936,
+          4937
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 20,
+          "y": -5,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n823",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4938,
+          4939,
+          4940,
+          4941,
+          4942,
+          4943
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": -5,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n824",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4944,
+          4945,
+          4946,
+          4947,
+          4948,
+          4949
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000038705547282934753,
+          "y": -0.0006340978191209249,
+          "z": 0.0001111612059136153
+        },
+        "angle": {
+          "x": 0.00006178445968917509,
+          "y": -0.000010192435123156088,
+          "z": -0.000009675558519218499
+        }
+      },
+      {
+        "id": "n825",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4950,
+          4951,
+          4952,
+          4953,
+          4954,
+          4955
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 0,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000963818301428514,
+          "y": -0.00028587768048419197,
+          "z": 0.000013298220746442498
+        },
+        "angle": {
+          "x": 0.000026035096696969578,
+          "y": 0.000012411873277829473,
+          "z": 0.000003590651659129148
+        }
+      },
+      {
+        "id": "n826",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4956,
+          4957,
+          4958,
+          4959,
+          4960,
+          4961
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": -3.140184917367551e-16,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000028292702663038458,
+          "y": -0.0001831375983321152,
+          "z": 0.00003089826667859825
+        },
+        "angle": {
+          "x": -6.901762645805065e-7,
+          "y": 0.000023789165298964758,
+          "z": 0.000003053461984568696
+        }
+      },
+      {
+        "id": "n827",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4962,
+          4963,
+          4964,
+          4965,
+          4966,
+          4967
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 2.020305089104421,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 9.733235696344411e-8,
+          "y": -0.00022875039511854482,
+          "z": 0.00002013519695930895
+        },
+        "angle": {
+          "x": -0.000019462818447551113,
+          "y": 0.00004532196315662609,
+          "z": -0.0000032155733020833782
+        }
+      },
+      {
+        "id": "n828",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4968,
+          4969,
+          4970,
+          4971,
+          4972,
+          4973
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 2.857142857142857,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007821186315858859,
+          "y": -0.0003526324334746145,
+          "z": 0.00000683562576811998
+        },
+        "angle": {
+          "x": -0.00008602233477970859,
+          "y": -0.0000070952102515572124,
+          "z": 0.000016660624751737838
+        }
+      },
+      {
+        "id": "n829",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4974,
+          4975,
+          4976,
+          4977,
+          4978,
+          4979
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 2.0203050891044216,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003388607215813166,
+          "y": -0.00044796939575781513,
+          "z": 0.000008225942269198926
+        },
+        "angle": {
+          "x": 0.00003303820259150289,
+          "y": 0.00017761932423447738,
+          "z": 0.00008331100296417123
+        }
+      },
+      {
+        "id": "n830",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4980,
+          4981,
+          4982,
+          4983,
+          4984,
+          4985
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 3.140184917367551e-16,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008455986512117475,
+          "y": -0.0004013551009935184,
+          "z": -0.000010436698746830082
+        },
+        "angle": {
+          "x": -0.000001430244298411846,
+          "y": -0.00004348259415279368,
+          "z": 0.000006483590843425043
+        }
+      },
+      {
+        "id": "n831",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4986,
+          4987,
+          4988,
+          4989,
+          4990,
+          4991
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": -2.020305089104421,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006245786728580506,
+          "y": -0.00035908750027838416,
+          "z": 0.000007642952079926019
+        },
+        "angle": {
+          "x": -0.00002416951507226091,
+          "y": -0.00002008169575676658,
+          "z": -0.0000031338360393800416
+        }
+      },
+      {
+        "id": "n832",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4992,
+          4993,
+          4994,
+          4995,
+          4996,
+          4997
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": -2.857142857142857,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000001140736312352295,
+          "y": -0.000236786948954862,
+          "z": 0.000024502421832670293
+        },
+        "angle": {
+          "x": -0.0000884535430417744,
+          "y": -0.000012598332077424836,
+          "z": -0.0000071235557844523075
+        }
+      },
+      {
+        "id": "n833",
+        "parent": "11",
+        "degrees_of_freedom": [
+          4998,
+          4999,
+          5000,
+          5001,
+          5002,
+          5003
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": -2.0203050891044216,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000016672725968885158,
+          "y": -0.00013644668802029737,
+          "z": 0.000020744831272729664
+        },
+        "angle": {
+          "x": 0.00002188427238933086,
+          "y": 0.00001565338461680276,
+          "z": 0.0000015209817599481275
+        }
+      },
+      {
+        "id": "n834",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5004,
+          5005,
+          5006,
+          5007,
+          5008,
+          5009
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 5,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000010457181847269314,
+          "y": -0.000579031938556146,
+          "z": 0.00008245381665888511
+        },
+        "angle": {
+          "x": 0.0000021751740524717307,
+          "y": -0.00001047067829537853,
+          "z": 0.000002949532242078018
+        }
+      },
+      {
+        "id": "n835",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5010,
+          5011,
+          5012,
+          5013,
+          5014,
+          5015
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.857142857142858,
+          "y": 5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003784656816267984,
+          "y": -0.00054155536250001,
+          "z": 0.0000932356100476888
+        },
+        "angle": {
+          "x": 0.000022498552186124073,
+          "y": -0.000011572553693847242,
+          "z": 0.000008307787892953864
+        }
+      },
+      {
+        "id": "n836",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5016,
+          5017,
+          5018,
+          5019,
+          5020,
+          5021
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 5,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000023415489426755944,
+          "y": -0.0006289889928387043,
+          "z": 0.00009048125932408434
+        },
+        "angle": {
+          "x": -0.00023297392955601667,
+          "y": -0.000008012193491903197,
+          "z": 0.00009574695543460496
+        }
+      },
+      {
+        "id": "n837",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5022,
+          5023,
+          5024,
+          5025,
+          5026,
+          5027
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 5,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000014965913673896766,
+          "y": -0.0006561039928999661,
+          "z": 0.0000769178916833707
+        },
+        "angle": {
+          "x": 0.00005861515265049459,
+          "y": -0.00000824162086032266,
+          "z": -0.000010229100536982747
+        }
+      },
+      {
+        "id": "n838",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5028,
+          5029,
+          5030,
+          5031,
+          5032,
+          5033
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 5,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000019307062041933928,
+          "y": -0.0005851161115994901,
+          "z": 0.00006077064678638961
+        },
+        "angle": {
+          "x": -0.0002370164761168946,
+          "y": -0.000009854440783619998,
+          "z": -0.00011186701254996398
+        }
+      },
+      {
+        "id": "n839",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5034,
+          5035,
+          5036,
+          5037,
+          5038,
+          5039
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.142857142857142,
+          "y": 5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003226040883642178,
+          "y": -0.0004357052508944605,
+          "z": 0.00005382810539701132
+        },
+        "angle": {
+          "x": 0.000013642817725375235,
+          "y": -0.000012768947555493046,
+          "z": -0.000020362389578989585
+        }
+      },
+      {
+        "id": "n840",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5040,
+          5041,
+          5042,
+          5043,
+          5044,
+          5045
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 5,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000044697242403880486,
+          "y": -0.000522300111023925,
+          "z": 0.000058097771926127094
+        },
+        "angle": {
+          "x": 0.00025833277671141497,
+          "y": -0.000009894267744568667,
+          "z": -0.00010533026111803074
+        }
+      },
+      {
+        "id": "n841",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5046,
+          5047,
+          5048,
+          5049,
+          5050,
+          5051
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 5,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000055671950115950924,
+          "y": -0.0005528456349215622,
+          "z": 0.00007201529597152982
+        },
+        "angle": {
+          "x": -0.0000224755956002474,
+          "y": -0.000008172253374189303,
+          "z": -0.000004709224904036453
+        }
+      },
+      {
+        "id": "n842",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5052,
+          5053,
+          5054,
+          5055,
+          5056,
+          5057
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 5,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004960228787043339,
+          "y": -0.0005488528698725392,
+          "z": 0.00008728877034444663
+        },
+        "angle": {
+          "x": -0.00011481371171560443,
+          "y": -0.0000109654502463882,
+          "z": -0.00003926733997697521
+        }
+      },
+      {
+        "id": "n843",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5058,
+          5059,
+          5060,
+          5061,
+          5062,
+          5063
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 2.857142857142857,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000031377862278670674,
+          "y": -0.0004122078500286361,
+          "z": 0.00008876164783519245
+        },
+        "angle": {
+          "x": 0.000027533198254217973,
+          "y": -0.0000029115000537163862,
+          "z": -0.0000012979219557102443
+        }
+      },
+      {
+        "id": "n844",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5064,
+          5065,
+          5066,
+          5067,
+          5068,
+          5069
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 2.020305089104421,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000007508498965111506,
+          "y": -0.00037505809667206857,
+          "z": 0.000060464330906970976
+        },
+        "angle": {
+          "x": -0.000003916131278711208,
+          "y": -0.000015009225243572639,
+          "z": -0.00003594659433263182
+        }
+      },
+      {
+        "id": "n845",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5070,
+          5071,
+          5072,
+          5073,
+          5074,
+          5075
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.142857142857142,
+          "y": 0,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000012631163619929398,
+          "y": -0.0002847439162237172,
+          "z": 0.00005552641784709506
+        },
+        "angle": {
+          "x": 0.000009163504953421826,
+          "y": 0.000016049060836737664,
+          "z": -0.0000013873333533567603
+        }
+      },
+      {
+        "id": "n846",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5076,
+          5077,
+          5078,
+          5079,
+          5080,
+          5081
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": -2.020305089104421,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000001525709369384906,
+          "y": -0.00019720050479270996,
+          "z": 0.000023727574282093093
+        },
+        "angle": {
+          "x": 0.000020297455050419924,
+          "y": -0.000011349397005400137,
+          "z": 0.00003245831520617741
+        }
+      },
+      {
+        "id": "n847",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5082,
+          5083,
+          5084,
+          5085,
+          5086,
+          5087
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": -2.857142857142857,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000240848264413671,
+          "y": -0.0001646749635873265,
+          "z": 0.000030651105524339106
+        },
+        "angle": {
+          "x": -0.000014276958221233804,
+          "y": 0.000002244210604792636,
+          "z": -2.1120904610231608e-7
+        }
+      },
+      {
+        "id": "n848",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5088,
+          5089,
+          5090,
+          5091,
+          5092,
+          5093
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": -2.020305089104421,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00005300306755221606,
+          "y": -0.0002031000438918895,
+          "z": 0.000013679632404197222
+        },
+        "angle": {
+          "x": 0.00002211625612324489,
+          "y": 0.00001804635288398353,
+          "z": -0.000042429458200226394
+        }
+      },
+      {
+        "id": "n849",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5094,
+          5095,
+          5096,
+          5097,
+          5098,
+          5099
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.857142857142858,
+          "y": 0,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008062297341532888,
+          "y": -0.0002908666070087346,
+          "z": 0.00004657275535715188
+        },
+        "angle": {
+          "x": 0.00001500047785438601,
+          "y": -0.000005071805920067468,
+          "z": -0.0000010333158318238383
+        }
+      },
+      {
+        "id": "n850",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5100,
+          5101,
+          5102,
+          5103,
+          5104,
+          5105
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 2.020305089104421,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00005731839731624739,
+          "y": -0.0003767369918365075,
+          "z": 0.00007097731505403417
+        },
+        "angle": {
+          "x": 0.000007890626672223168,
+          "y": 0.000006153728702152552,
+          "z": 0.00004009771118585589
+        }
+      },
+      {
+        "id": "n851",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5106,
+          5107,
+          5108,
+          5109,
+          5110,
+          5111
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 25,
+          "y": -5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n852",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5112,
+          5113,
+          5114,
+          5115,
+          5116,
+          5117
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 20,
+          "y": -5,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n853",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5118,
+          5119,
+          5120,
+          5121,
+          5122,
+          5123
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 22.857142857142858,
+          "y": -5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n854",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5124,
+          5125,
+          5126,
+          5127,
+          5128,
+          5129
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": -5,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n855",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5130,
+          5131,
+          5132,
+          5133,
+          5134,
+          5135
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 20,
+          "y": -5,
+          "z": 17.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n856",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5136,
+          5137,
+          5138,
+          5139,
+          5140,
+          5141
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": -5,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n857",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5142,
+          5143,
+          5144,
+          5145,
+          5146,
+          5147
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 17.142857142857142,
+          "y": -5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n858",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5148,
+          5149,
+          5150,
+          5151,
+          5152,
+          5153
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": -5,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n859",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5154,
+          5155,
+          5156,
+          5157,
+          5158,
+          5159
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 20,
+          "y": -5,
+          "z": 22.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n860",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5160,
+          5161,
+          5162,
+          5163,
+          5164,
+          5165
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": -5,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n861",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5166,
+          5167,
+          5168,
+          5169,
+          5170,
+          5171
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003492189159982143,
+          "y": -0.0006207173450295109,
+          "z": 0.00011818720035276647
+        },
+        "angle": {
+          "x": 0.00006095606249993346,
+          "y": -0.000009176669790879508,
+          "z": -0.000014342032766449299
+        }
+      },
+      {
+        "id": "n862",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5172,
+          5173,
+          5174,
+          5175,
+          5176,
+          5177
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 0,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000019117863187830014,
+          "y": -0.00030680030891088914,
+          "z": 0.000003498057653559367
+        },
+        "angle": {
+          "x": 0.000055854474496133185,
+          "y": 0.00006944013166762031,
+          "z": 0.000007378618992481066
+        }
+      },
+      {
+        "id": "n863",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5178,
+          5179,
+          5180,
+          5181,
+          5182,
+          5183
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": -3.140184917367551e-16,
+          "z": 22.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001789881150338019,
+          "y": -0.0001798830228816166,
+          "z": 0.00003328122235283556
+        },
+        "angle": {
+          "x": 0.0000021836412123710116,
+          "y": -0.00007339950949193052,
+          "z": 0.00004966844937646593
+        }
+      },
+      {
+        "id": "n864",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5184,
+          5185,
+          5186,
+          5187,
+          5188,
+          5189
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 2.020305089104421,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00023512652209329592,
+          "y": -0.0002213480715000939,
+          "z": 0.000029728035351322415
+        },
+        "angle": {
+          "x": -0.00001382020320041069,
+          "y": 0.00014346313913109107,
+          "z": -0.00002700417431579525
+        }
+      },
+      {
+        "id": "n865",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5190,
+          5191,
+          5192,
+          5193,
+          5194,
+          5195
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 2.857142857142857,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00037065646228905434,
+          "y": -0.000338665639397621,
+          "z": 0.000017848157532745057
+        },
+        "angle": {
+          "x": -0.00008188754047471351,
+          "y": -0.00003870058066459237,
+          "z": 0.00003740046752905216
+        }
+      },
+      {
+        "id": "n866",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5196,
+          5197,
+          5198,
+          5199,
+          5200,
+          5201
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 2.0203050891044216,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007875219158884372,
+          "y": -0.00043136482345476775,
+          "z": 0.000017299653645367448
+        },
+        "angle": {
+          "x": 0.00003456003127434714,
+          "y": 0.0005512923381456328,
+          "z": 0.00024599454041015134
+        }
+      },
+      {
+        "id": "n867",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5202,
+          5203,
+          5204,
+          5205,
+          5206,
+          5207
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 3.140184917367551e-16,
+          "z": 17.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000421597045526093,
+          "y": -0.00038162680616759474,
+          "z": -0.0000046457905558846965
+        },
+        "angle": {
+          "x": 0.0000012252268983688626,
+          "y": -0.000004000911457319121,
+          "z": 0.000049669448077020036
+        }
+      },
+      {
+        "id": "n868",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5208,
+          5209,
+          5210,
+          5211,
+          5212,
+          5213
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": -2.020305089104421,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001563753480952042,
+          "y": -0.00034034245100691827,
+          "z": 0.000007156272040528043
+        },
+        "angle": {
+          "x": -0.000019960615194675403,
+          "y": -0.0003506865149859535,
+          "z": 0.0001722405764856616
+        }
+      },
+      {
+        "id": "n869",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5214,
+          5215,
+          5216,
+          5217,
+          5218,
+          5219
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": -2.857142857142857,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00043211017930853783,
+          "y": -0.00022694376222984574,
+          "z": 0.000022356163567198906
+        },
+        "angle": {
+          "x": -0.0000821068315924227,
+          "y": -0.00003870237634715472,
+          "z": 0.00006193662694382247
+        }
+      },
+      {
+        "id": "n870",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5220,
+          5221,
+          5222,
+          5223,
+          5224,
+          5225
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": -2.0203050891044216,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -2.617721116273838e-9,
+          "y": -0.00013288810978242608,
+          "z": 0.000019984980373257402
+        },
+        "angle": {
+          "x": 0.00002245651376061095,
+          "y": 0.000681627787559958,
+          "z": 0.00031661093664030464
+        }
+      },
+      {
+        "id": "n871",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5226,
+          5227,
+          5228,
+          5229,
+          5230,
+          5231
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 5,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006619487376576087,
+          "y": -0.0006052690407239629,
+          "z": 0.000087756417985069
+        },
+        "angle": {
+          "x": -0.000008862667935893297,
+          "y": -0.000009363545010026301,
+          "z": 0.00003809192709014964
+        }
+      },
+      {
+        "id": "n872",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5232,
+          5233,
+          5234,
+          5235,
+          5236,
+          5237
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.857142857142858,
+          "y": 5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000034509539188202595,
+          "y": -0.0005898440757770696,
+          "z": 0.00010255363449875419
+        },
+        "angle": {
+          "x": 0.000013061383223533418,
+          "y": -0.00001278420687463421,
+          "z": -0.00000368351093137682
+        }
+      },
+      {
+        "id": "n873",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5238,
+          5239,
+          5240,
+          5241,
+          5242,
+          5243
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 5,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004915741506681651,
+          "y": -0.0005961137580108402,
+          "z": 0.00009857438630412013
+        },
+        "angle": {
+          "x": -0.00014946807604228462,
+          "y": -0.000008082881800504087,
+          "z": 0.000054267749139279284
+        }
+      },
+      {
+        "id": "n874",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5244,
+          5245,
+          5246,
+          5247,
+          5248,
+          5249
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 5,
+          "z": 22.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000055290286518711684,
+          "y": -0.000600252418586035,
+          "z": 0.00008746848265409803
+        },
+        "angle": {
+          "x": -0.000027270408688210957,
+          "y": -0.0000052410282871211275,
+          "z": 0.000011552943062470882
+        }
+      },
+      {
+        "id": "n875",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5250,
+          5251,
+          5252,
+          5253,
+          5254,
+          5255
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 5,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00005263234224391402,
+          "y": -0.0006500329485691828,
+          "z": 0.00007910661898975095
+        },
+        "angle": {
+          "x": 0.0003216167002298865,
+          "y": -0.000004476328901366665,
+          "z": 0.00013441460766751425
+        }
+      },
+      {
+        "id": "n876",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5256,
+          5257,
+          5258,
+          5259,
+          5260,
+          5261
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.142857142857142,
+          "y": 5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000039539913263911105,
+          "y": -0.0007664916832966497,
+          "z": 0.00007519790508766849
+        },
+        "angle": {
+          "x": 0.000015061556352707346,
+          "y": -0.00001237678086666873,
+          "z": 0.00002554249645119233
+        }
+      },
+      {
+        "id": "n877",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5262,
+          5263,
+          5264,
+          5265,
+          5266,
+          5267
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 5,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000023295879951678654,
+          "y": -0.000591035995105727,
+          "z": 0.00007778329440601875
+        },
+        "angle": {
+          "x": -0.0002762042948011065,
+          "y": -0.00000648025967859596,
+          "z": 0.00012803203056601186
+        }
+      },
+      {
+        "id": "n878",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5268,
+          5269,
+          5270,
+          5271,
+          5272,
+          5273
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 5,
+          "z": 17.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000016403958524760854,
+          "y": -0.0005199014651880656,
+          "z": 0.00008616784596325079
+        },
+        "angle": {
+          "x": 0.00005539307949703802,
+          "y": -0.000004880887974587293,
+          "z": 0.000010306197416890756
+        }
+      },
+      {
+        "id": "n879",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5274,
+          5275,
+          5276,
+          5277,
+          5278,
+          5279
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 5,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000019869170268405687,
+          "y": -0.0005414770887059887,
+          "z": 0.00009781021387022414
+        },
+        "angle": {
+          "x": -0.00008740070147867339,
+          "y": -0.000009172126771361612,
+          "z": -0.000039690649578418386
+        }
+      },
+      {
+        "id": "n880",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5280,
+          5281,
+          5282,
+          5283,
+          5284,
+          5285
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 2.857142857142857,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000028413960958800496,
+          "y": -0.0003673508053020891,
+          "z": 0.00006461322266179075
+        },
+        "angle": {
+          "x": -0.000052945297062040665,
+          "y": -0.000011959274739123763,
+          "z": -0.00004046947960026007
+        }
+      },
+      {
+        "id": "n881",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5286,
+          5287,
+          5288,
+          5289,
+          5290,
+          5291
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 2.020305089104421,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00001009735857268281,
+          "y": -0.00028206437508242714,
+          "z": 0.0000847584650255132
+        },
+        "angle": {
+          "x": 0.000014457829709961509,
+          "y": 0.000015960011178968927,
+          "z": -0.000026310571850573507
+        }
+      },
+      {
+        "id": "n882",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5292,
+          5293,
+          5294,
+          5295,
+          5296,
+          5297
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.142857142857142,
+          "y": 0,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000012283046024062715,
+          "y": -0.0002161911319721412,
+          "z": 0.00006890515816134167
+        },
+        "angle": {
+          "x": 0.000020976656760456376,
+          "y": 0.00003169781630866342,
+          "z": -0.000007691019934418753
+        }
+      },
+      {
+        "id": "n883",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5298,
+          5299,
+          5300,
+          5301,
+          5302,
+          5303
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": -2.020305089104421,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000020788699702792232,
+          "y": -0.0001629636043445257,
+          "z": -3.821173485025498e-11
+        },
+        "angle": {
+          "x": 0.00008765736695059379,
+          "y": -0.00012928362102398728,
+          "z": 0.000011288743984578955
+        }
+      },
+      {
+        "id": "n884",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5304,
+          5305,
+          5306,
+          5307,
+          5308,
+          5309
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": -2.857142857142857,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000026218958609918216,
+          "y": -0.00021091923485054627,
+          "z": 0.00018783744330893323
+        },
+        "angle": {
+          "x": -0.0001661669533212588,
+          "y": -0.00002414618378778399,
+          "z": -0.0000426447636316019
+        }
+      },
+      {
+        "id": "n885",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5310,
+          5311,
+          5312,
+          5313,
+          5314,
+          5315
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": -2.020305089104421,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000024034685861806778,
+          "y": -0.00029987743302763934,
+          "z": 0.00009756528985470571
+        },
+        "angle": {
+          "x": 0.000049706188778578024,
+          "y": 0.00006527140536592676,
+          "z": -0.000029596754671356913
+        }
+      },
+      {
+        "id": "n886",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5316,
+          5317,
+          5318,
+          5319,
+          5320,
+          5321
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.857142857142858,
+          "y": 0,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00002444376497763034,
+          "y": -0.000358937217351,
+          "z": 0.0001433654003224544
+        },
+        "angle": {
+          "x": 0.000008789757502763835,
+          "y": -0.000033509628207496447,
+          "z": -0.0000067967657403943986
+        }
+      },
+      {
+        "id": "n887",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5322,
+          5323,
+          5324,
+          5325,
+          5326,
+          5327
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 2.020305089104421,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00002431155035995138,
+          "y": -0.00040751173030793657,
+          "z": 0.00013308124955650638
+        },
+        "angle": {
+          "x": 0.000010800290839619832,
+          "y": -0.00003836355538878327,
+          "z": 0.000017418777273052702
+        }
+      },
+      {
+        "id": "n888",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5328,
+          5329,
+          5330,
+          5331,
+          5332,
+          5333
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.857142857142858,
+          "y": 5,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00009056537909506886,
+          "y": -0.0008877978006243967,
+          "z": 0.0000822502506128946
+        },
+        "angle": {
+          "x": 0.00002549869607545982,
+          "y": -0.000008828114697109446,
+          "z": -0.00002077906326395153
+        }
+      },
+      {
+        "id": "n889",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5334,
+          5335,
+          5336,
+          5337,
+          5338,
+          5339
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 5,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00010044978679300579,
+          "y": -0.0007167860444224429,
+          "z": 0.00007798954666347736
+        },
+        "angle": {
+          "x": -0.0004726109189854929,
+          "y": -0.000010254796678160747,
+          "z": -0.00019728592729304487
+        }
+      },
+      {
+        "id": "n890",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5340,
+          5341,
+          5342,
+          5343,
+          5344,
+          5345
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 5,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000960912325664622,
+          "y": -0.00042537371269838137,
+          "z": 0.0000385344153646603
+        },
+        "angle": {
+          "x": 0.000693695961136194,
+          "y": -0.00001228131944766491,
+          "z": -0.0003359794243039534
+        }
+      },
+      {
+        "id": "n891",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5346,
+          5347,
+          5348,
+          5349,
+          5350,
+          5351
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.142857142857142,
+          "y": 5,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008585540839572378,
+          "y": 0.0000859142630084338,
+          "z": 0.0000320128945348978
+        },
+        "angle": {
+          "x": 0.000029565951935014213,
+          "y": -0.000010955732735494936,
+          "z": -0.0000993057956956737
+        }
+      },
+      {
+        "id": "n892",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5352,
+          5353,
+          5354,
+          5355,
+          5356,
+          5357
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 5,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007276290798318466,
+          "y": -0.0005377210259675137,
+          "z": 0.000036485492493034975
+        },
+        "angle": {
+          "x": -0.0010573318449776607,
+          "y": -0.00001287659958512086,
+          "z": -0.00048171388546253634
+        }
+      },
+      {
+        "id": "n893",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5358,
+          5359,
+          5360,
+          5361,
+          5362,
+          5363
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 5,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000815384739594976,
+          "y": -0.0008213345566032807,
+          "z": 0.000077877206260379
+        },
+        "angle": {
+          "x": -0.0003316637684504495,
+          "y": -0.000009353450176029638,
+          "z": 0.00010589546809049004
+        }
+      },
+      {
+        "id": "n894",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5364,
+          5365,
+          5366,
+          5367,
+          5368,
+          5369
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 15,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00017906131056542141,
+          "y": -0.0011140907841284279,
+          "z": 0.0002530677043708612
+        },
+        "angle": {
+          "x": 0.000041947773857948225,
+          "y": -0.000022784751287785182,
+          "z": -0.0000037982251370305808
+        }
+      },
+      {
+        "id": "n895",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5370,
+          5371,
+          5372,
+          5373,
+          5374,
+          5375
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 10,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000211528825189393,
+          "y": -0.0008558847961183132,
+          "z": 0.00020248159539574992
+        },
+        "angle": {
+          "x": 0.000042255064849484684,
+          "y": -0.00008463583728060985,
+          "z": -0.000016854954910736253
+        }
+      },
+      {
+        "id": "n896",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5376,
+          5377,
+          5378,
+          5379,
+          5380,
+          5381
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 10,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00015976398344278887,
+          "y": -0.0008480289443015809,
+          "z": 0.0001990060801323061
+        },
+        "angle": {
+          "x": 0.000018394283531080745,
+          "y": -0.00002006331101785723,
+          "z": -0.000011975409043553758
+        }
+      },
+      {
+        "id": "n897",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5382,
+          5383,
+          5384,
+          5385,
+          5386,
+          5387
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 10,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002836848625822279,
+          "y": -0.0008139966026150364,
+          "z": 0.00021214173603257994
+        },
+        "angle": {
+          "x": 6.176330988381367e-7,
+          "y": 0.00019837471531556955,
+          "z": -0.00007549003004305594
+        }
+      },
+      {
+        "id": "n898",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5388,
+          5389,
+          5390,
+          5391,
+          5392,
+          5393
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 12.020305089104422,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002963570564530938,
+          "y": -0.000837631947546169,
+          "z": 0.00019979313547573523
+        },
+        "angle": {
+          "x": -0.000017408015002103712,
+          "y": -0.00014366982933871584,
+          "z": 0.00004544135018238771
+        }
+      },
+      {
+        "id": "n899",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5394,
+          5395,
+          5396,
+          5397,
+          5398,
+          5399
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 12.857142857142858,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00032694756689744144,
+          "y": -0.0009204597717921896,
+          "z": 0.00018859780121125358
+        },
+        "angle": {
+          "x": -0.00005782760358995616,
+          "y": 0.00002172605039598077,
+          "z": -0.000013034526210271931
+        }
+      },
+      {
+        "id": "n900",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5400,
+          5401,
+          5402,
+          5403,
+          5404,
+          5405
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 12.020305089104422,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00020857206993293541,
+          "y": -0.0009842252222426664,
+          "z": 0.0001888164039851708
+        },
+        "angle": {
+          "x": 0.000021998915040085107,
+          "y": -0.00024788820076275173,
+          "z": -0.00010835715398824168
+        }
+      },
+      {
+        "id": "n901",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5406,
+          5407,
+          5408,
+          5409,
+          5410,
+          5411
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 10,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00015954011806717584,
+          "y": -0.0009493059558009627,
+          "z": 0.00017651409438226523
+        },
+        "angle": {
+          "x": 2.2000818194726417e-7,
+          "y": -0.0001549246046410602,
+          "z": -0.00007548948619611646
+        }
+      },
+      {
+        "id": "n902",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5412,
+          5413,
+          5414,
+          5415,
+          5416,
+          5417
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 7.979694910895579,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00014878550541900685,
+          "y": -0.0009203872088543705,
+          "z": 0.00018307723058748308
+        },
+        "angle": {
+          "x": -0.000011206425325346358,
+          "y": 0.0006679118847057528,
+          "z": -0.0003664063223061014
+        }
+      },
+      {
+        "id": "n903",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5418,
+          5419,
+          5420,
+          5421,
+          5422,
+          5423
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 7.142857142857142,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0008931510035475264,
+          "y": -0.0008456941651568148,
+          "z": 0.00019254426693029423
+        },
+        "angle": {
+          "x": -0.00005230297249949866,
+          "y": 0.00002172501979946468,
+          "z": -0.00013794498305533162
+        }
+      },
+      {
+        "id": "n904",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5424,
+          5425,
+          5426,
+          5427,
+          5428,
+          5429
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 7.979694910895578,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006100255911679402,
+          "y": -0.000786234058368204,
+          "z": 0.00019479731108142424
+        },
+        "angle": {
+          "x": 0.000024522670818503935,
+          "y": -0.0016214894602701831,
+          "z": -0.0007189091202107293
+        }
+      },
+      {
+        "id": "n905",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5430,
+          5431,
+          5432,
+          5433,
+          5434,
+          5435
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 15,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002600149445001279,
+          "y": -0.0010213843224210512,
+          "z": 0.00015728997689623545
+        },
+        "angle": {
+          "x": -0.0000168861970038232,
+          "y": -0.00003679064678567813,
+          "z": -0.00002892009892917447
+        }
+      },
+      {
+        "id": "n906",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5436,
+          5437,
+          5438,
+          5439,
+          5440,
+          5441
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 15,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011823766698597596,
+          "y": -0.0010019286714623976,
+          "z": 0.00016236280899505187
+        },
+        "angle": {
+          "x": -6.90235011579373e-7,
+          "y": -0.00002785109684559112,
+          "z": -0.000005389409941826424
+        }
+      },
+      {
+        "id": "n907",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5442,
+          5443,
+          5444,
+          5445,
+          5446,
+          5447
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.857142857142858,
+          "y": 15,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00017654846411851083,
+          "y": -0.0009001116792771527,
+          "z": 0.00021041728400012213
+        },
+        "angle": {
+          "x": 0.000019685031409705493,
+          "y": -0.000026193685409369772,
+          "z": 0.00003580973495252028
+        }
+      },
+      {
+        "id": "n908",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5448,
+          5449,
+          5450,
+          5451,
+          5452,
+          5453
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 15,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00014813423771603895,
+          "y": -0.001144881344175216,
+          "z": 0.00019967701668118946
+        },
+        "angle": {
+          "x": -0.00036227656056934433,
+          "y": -0.000023063047137808064,
+          "z": 0.00017104928261689527
+        }
+      },
+      {
+        "id": "n909",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5454,
+          5455,
+          5456,
+          5457,
+          5458,
+          5459
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 15,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001331795797738024,
+          "y": -0.0012504705377417086,
+          "z": 0.00015844133049481145
+        },
+        "angle": {
+          "x": 0.00023838587460399397,
+          "y": -0.00002299601520402557,
+          "z": -0.00003657760786400029
+        }
+      },
+      {
+        "id": "n910",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5460,
+          5461,
+          5462,
+          5463,
+          5464,
+          5465
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 15,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00015475888017702457,
+          "y": -0.0009665432981256872,
+          "z": 0.00011915299643569406
+        },
+        "angle": {
+          "x": -0.0010226374792687606,
+          "y": -0.000024954639183200223,
+          "z": -0.00048074538018954324
+        }
+      },
+      {
+        "id": "n911",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5466,
+          5467,
+          5468,
+          5469,
+          5470,
+          5471
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.142857142857142,
+          "y": 15,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00017849665112813418,
+          "y": -0.0002878644517328234,
+          "z": 0.00010580937528736556
+        },
+        "angle": {
+          "x": 0.000019118888144923253,
+          "y": -0.00002429611196743211,
+          "z": -0.00011179942188674973
+        }
+      },
+      {
+        "id": "n912",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5472,
+          5473,
+          5474,
+          5475,
+          5476,
+          5477
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 15,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00020741770212847648,
+          "y": -0.0008868931412356552,
+          "z": 0.00011500995331714754
+        },
+        "angle": {
+          "x": 0.0011478204626509997,
+          "y": -0.000025423219443147505,
+          "z": -0.0005102261067727958
+        }
+      },
+      {
+        "id": "n913",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5478,
+          5479,
+          5480,
+          5481,
+          5482,
+          5483
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 15,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002252198104301084,
+          "y": -0.001135694946723912,
+          "z": 0.00015760810467919007
+        },
+        "angle": {
+          "x": -0.0001982147336828095,
+          "y": -0.000023257984171104646,
+          "z": -0.00003707708164594591
+        }
+      },
+      {
+        "id": "n914",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5484,
+          5485,
+          5486,
+          5487,
+          5488,
+          5489
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 15,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00020589580712217248,
+          "y": -0.001064596087777205,
+          "z": 0.00019881981734798954
+        },
+        "angle": {
+          "x": 0.00025437995742525285,
+          "y": -0.00002545189438731359,
+          "z": 0.00011859115486651888
+        }
+      },
+      {
+        "id": "n915",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5490,
+          5491,
+          5492,
+          5493,
+          5494,
+          5495
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 7.142857142857142,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002066945299948105,
+          "y": -0.000765929548617383,
+          "z": 0.00008188533101194777
+        },
+        "angle": {
+          "x": -0.00002991111177971432,
+          "y": -0.000008948914448244828,
+          "z": 0.000017860874281732444
+        }
+      },
+      {
+        "id": "n916",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5496,
+          5497,
+          5498,
+          5499,
+          5500,
+          5501
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 7.979694910895579,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00021258970079322332,
+          "y": -0.0007564280192265474,
+          "z": 0.0000749341240503855
+        },
+        "angle": {
+          "x": 0.000011096507011502222,
+          "y": 0.000008036990765650042,
+          "z": -0.00001903344264712253
+        }
+      },
+      {
+        "id": "n917",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5502,
+          5503,
+          5504,
+          5505,
+          5506,
+          5507
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.857142857142858,
+          "y": 10,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00022370261007093699,
+          "y": -0.00079457460805546,
+          "z": 0.00009062677525221065
+        },
+        "angle": {
+          "x": -0.000009719533113880416,
+          "y": -0.00004221733893674714,
+          "z": -3.5766818005046613e-7
+        }
+      },
+      {
+        "id": "n918",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5508,
+          5509,
+          5510,
+          5511,
+          5512,
+          5513
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 12.020305089104422,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00021762919357070214,
+          "y": -0.0008278447441544479,
+          "z": 0.00003566127123164935
+        },
+        "angle": {
+          "x": -0.0000055851421466433794,
+          "y": -0.00005219870862164653,
+          "z": 0.00001151662189690189
+        }
+      },
+      {
+        "id": "n919",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5514,
+          5515,
+          5516,
+          5517,
+          5518,
+          5519
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 12.857142857142858,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00020624855802147963,
+          "y": -0.0008677742065119395,
+          "z": -0.00007446986639641741
+        },
+        "angle": {
+          "x": -0.00018992806372660037,
+          "y": 0.000024158676443929562,
+          "z": 0.000018806200108681408
+        }
+      },
+      {
+        "id": "n920",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5520,
+          5521,
+          5522,
+          5523,
+          5524,
+          5525
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 12.020305089104422,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002001909397594323,
+          "y": -0.0008818591491128391,
+          "z": 0.00013327702554222673
+        },
+        "angle": {
+          "x": 0.00010815450079818449,
+          "y": 0.0001476284351773489,
+          "z": -0.000015485641953149948
+        }
+      },
+      {
+        "id": "n921",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5526,
+          5527,
+          5528,
+          5529,
+          5530,
+          5531
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.142857142857142,
+          "y": 10,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00019337994175700767,
+          "y": -0.0008423868917055979,
+          "z": 0.00003831306908528524
+        },
+        "angle": {
+          "x": 0.000023388045610777315,
+          "y": -0.00005701576343324053,
+          "z": 1.337457441383062e-7
+        }
+      },
+      {
+        "id": "n922",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5532,
+          5533,
+          5534,
+          5535,
+          5536,
+          5537
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 7.979694910895579,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00019831364137536166,
+          "y": -0.0008055681275532732,
+          "z": 0.000038775029553901285
+        },
+        "angle": {
+          "x": 0.000010393235702660357,
+          "y": -0.000025643522676448023,
+          "z": 0.000011178159400052508
+        }
+      },
+      {
+        "id": "n923",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5538,
+          5539,
+          5540,
+          5541,
+          5542,
+          5543
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 12.857142857142858,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001233438518999659,
+          "y": -0.0008887635860680489,
+          "z": 0.00013457477061255485
+        },
+        "angle": {
+          "x": 2.329644441803811e-7,
+          "y": -0.00001982287585257249,
+          "z": -0.000006875156419337839
+        }
+      },
+      {
+        "id": "n924",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5544,
+          5545,
+          5546,
+          5547,
+          5548,
+          5549
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 12.020305089104422,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00009918906139455405,
+          "y": -0.0008522035971924338,
+          "z": 0.00009508582613812955
+        },
+        "angle": {
+          "x": 0.000017281377861501724,
+          "y": -0.000011641143439054904,
+          "z": -0.000029828970633156792
+        }
+      },
+      {
+        "id": "n925",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5550,
+          5551,
+          5552,
+          5553,
+          5554,
+          5555
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.142857142857142,
+          "y": 10,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007761556825145413,
+          "y": -0.0007859557264389269,
+          "z": 0.0000494790267476318
+        },
+        "angle": {
+          "x": 0.000011327035836812837,
+          "y": -0.000027721540765225914,
+          "z": -0.0000038065806714936144
+        }
+      },
+      {
+        "id": "n926",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5556,
+          5557,
+          5558,
+          5559,
+          5560,
+          5561
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 7.979694910895579,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008323116762954894,
+          "y": -0.000726765441973338,
+          "z": 0.000050269085439242726
+        },
+        "angle": {
+          "x": 5.810781296850298e-8,
+          "y": -0.000002221274903770012,
+          "z": 0.000021124015651627736
+        }
+      },
+      {
+        "id": "n927",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5562,
+          5563,
+          5564,
+          5565,
+          5566,
+          5567
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 7.142857142857142,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00009626476228417012,
+          "y": -0.00071347238042927,
+          "z": 0.00005439562154531766
+        },
+        "angle": {
+          "x": 0.000029830192261213376,
+          "y": -0.000014321260320056476,
+          "z": -0.000006514053229987172
+        }
+      },
+      {
+        "id": "n928",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5568,
+          5569,
+          5570,
+          5571,
+          5572,
+          5573
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 7.979694910895579,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00012063309982460492,
+          "y": -0.0007534494618401647,
+          "z": 0.00010844823079171364
+        },
+        "angle": {
+          "x": 0.000004552709650652508,
+          "y": -0.000025023547401163464,
+          "z": -0.000034839516958255517
+        }
+      },
+      {
+        "id": "n929",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5574,
+          5575,
+          5576,
+          5577,
+          5578,
+          5579
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.857142857142858,
+          "y": 10,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00014835855279220965,
+          "y": -0.0008194615934978213,
+          "z": 0.00014098798287245505
+        },
+        "angle": {
+          "x": 0.000016736789940991194,
+          "y": 8.729793684258932e-8,
+          "z": -0.000004577173990098026
+        }
+      },
+      {
+        "id": "n930",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5580,
+          5581,
+          5582,
+          5583,
+          5584,
+          5585
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 12.020305089104422,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001404545925852875,
+          "y": -0.0008762337033967444,
+          "z": 0.00017367381193511303
+        },
+        "angle": {
+          "x": 0.000027397798442538985,
+          "y": -0.00002995486852130029,
+          "z": 0.000023174229126415885
+        }
+      },
+      {
+        "id": "n931",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5586,
+          5587,
+          5588,
+          5589,
+          5590,
+          5591
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 5,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00005056781724118187,
+          "y": -0.0005437894162878272,
+          "z": 0.00008838288668055112
+        },
+        "angle": {
+          "x": 0.00012820594369796759,
+          "y": -0.0000094912466618277,
+          "z": 0.0000475928928463813
+        }
+      },
+      {
+        "id": "n932",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5592,
+          5593,
+          5594,
+          5595,
+          5596,
+          5597
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 5,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00005023316374618693,
+          "y": -0.0005212063443172468,
+          "z": 0.000056711529157268025
+        },
+        "angle": {
+          "x": 0.000016821372642446716,
+          "y": -0.000009130279062066585,
+          "z": -0.00002014609262382732
+        }
+      },
+      {
+        "id": "n933",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5598,
+          5599,
+          5600,
+          5601,
+          5602,
+          5603
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 15,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004103643071533304,
+          "y": -0.0010824214271563045,
+          "z": 0.00027345108045152063
+        },
+        "angle": {
+          "x": 0.00004358179424669336,
+          "y": -0.00002778868283137768,
+          "z": -0.000015967272538761783
+        }
+      },
+      {
+        "id": "n934",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5604,
+          5605,
+          5606,
+          5607,
+          5608,
+          5609
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 10,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000050628224926698025,
+          "y": -0.0008102605478247831,
+          "z": 0.00020829280152118718
+        },
+        "angle": {
+          "x": 0.000019896408424755842,
+          "y": -0.000013906250948507028,
+          "z": -0.0000055370036692614725
+        }
+      },
+      {
+        "id": "n935",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5610,
+          5611,
+          5612,
+          5613,
+          5614,
+          5615
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 10,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011906794045923675,
+          "y": -0.0007853202864311309,
+          "z": 0.00022245741650042458
+        },
+        "angle": {
+          "x": 0.0000016973102265299755,
+          "y": 0.00003632505810574002,
+          "z": -0.000008513751416879488
+        }
+      },
+      {
+        "id": "n936",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5616,
+          5617,
+          5618,
+          5619,
+          5620,
+          5621
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 12.020305089104422,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00010825614162746106,
+          "y": -0.0008059745451684436,
+          "z": 0.0002118056767482091
+        },
+        "angle": {
+          "x": -0.000016283618182792665,
+          "y": -0.0001128767291437999,
+          "z": 0.00004495330433394567
+        }
+      },
+      {
+        "id": "n937",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5622,
+          5623,
+          5624,
+          5625,
+          5626,
+          5627
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 12.857142857142858,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000766969774539123,
+          "y": -0.0008892514809939223,
+          "z": 0.00020178526932302507
+        },
+        "angle": {
+          "x": -0.00005714410918776784,
+          "y": 0.000018406177720607036,
+          "z": -7.459586635103046e-7
+        }
+      },
+      {
+        "id": "n938",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5628,
+          5629,
+          5630,
+          5631,
+          5632,
+          5633
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 12.020305089104422,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003661257761083187,
+          "y": -0.0009513965544682822,
+          "z": 0.00020192828782400411
+        },
+        "angle": {
+          "x": 0.000024108025895047368,
+          "y": -0.000058965179014989656,
+          "z": -0.000027384596588195794
+        }
+      },
+      {
+        "id": "n939",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5634,
+          5635,
+          5636,
+          5637,
+          5638,
+          5639
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 10,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000022269435322693257,
+          "y": -0.0009165911924374258,
+          "z": 0.00018640827257425442
+        },
+        "angle": {
+          "x": 0.0000012582861855617483,
+          "y": -0.0000024457548531021424,
+          "z": -0.000006685771214317703
+        }
+      },
+      {
+        "id": "n940",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5640,
+          5641,
+          5642,
+          5643,
+          5644,
+          5645
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 7.979694910895579,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000038329137081682965,
+          "y": -0.0008887282006895643,
+          "z": 0.00019303133578701435
+        },
+        "angle": {
+          "x": -0.00001228511399097671,
+          "y": -0.00015817160238626235,
+          "z": 0.00004765546154336099
+        }
+      },
+      {
+        "id": "n941",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5646,
+          5647,
+          5648,
+          5649,
+          5650,
+          5651
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 7.142857142857142,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000046133329668892276,
+          "y": -0.0008153704802159913,
+          "z": 0.00020185125786661184
+        },
+        "angle": {
+          "x": -0.000050407913416493416,
+          "y": 0.000015473439375282067,
+          "z": -0.000014453503294096217
+        }
+      },
+      {
+        "id": "n942",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5652,
+          5653,
+          5654,
+          5655,
+          5656,
+          5657
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 7.979694910895578,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006908333435014187,
+          "y": -0.0007595407732637905,
+          "z": 0.00020350985697811864
+        },
+        "angle": {
+          "x": 0.000024503788099255034,
+          "y": -0.00011389119332256016,
+          "z": -0.000060907007387098005
+        }
+      },
+      {
+        "id": "n943",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5658,
+          5659,
+          5660,
+          5661,
+          5662,
+          5663
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 15,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000027280346605329798,
+          "y": -0.0009839402893234387,
+          "z": 0.00017760629099816404
+        },
+        "angle": {
+          "x": 0.000002361042343223008,
+          "y": -0.000027285455735688977,
+          "z": 0.0000015863086294130728
+        }
+      },
+      {
+        "id": "n944",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5664,
+          5665,
+          5666,
+          5667,
+          5668,
+          5669
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.857142857142858,
+          "y": 15,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000040702522038078534,
+          "y": -0.0009415140688754746,
+          "z": 0.00022061586629218695
+        },
+        "angle": {
+          "x": 0.000017026494167455975,
+          "y": -0.00002791257543832389,
+          "z": 0.000012460155059750316
+        }
+      },
+      {
+        "id": "n945",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5670,
+          5671,
+          5672,
+          5673,
+          5674,
+          5675
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 15,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00000759538144082596,
+          "y": -0.0010424987384564585,
+          "z": 0.00021080977559374876
+        },
+        "angle": {
+          "x": -0.0002841895138167351,
+          "y": -0.000023391900556406465,
+          "z": 0.00011653330244272802
+        }
+      },
+      {
+        "id": "n946",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5676,
+          5677,
+          5678,
+          5679,
+          5680,
+          5681
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 15,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000010319667102130354,
+          "y": -0.0010766823150356705,
+          "z": 0.00017307451589080602
+        },
+        "angle": {
+          "x": 0.00007820823566783275,
+          "y": -0.000020927390130494843,
+          "z": -0.00001401618121665743
+        }
+      },
+      {
+        "id": "n947",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5682,
+          5683,
+          5684,
+          5685,
+          5686,
+          5687
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 15,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000052214822039908064,
+          "y": -0.0009799705046519929,
+          "z": 0.00013451323568310067
+        },
+        "angle": {
+          "x": -0.00032722644639361046,
+          "y": -0.00002375756976285474,
+          "z": -0.00015493658127502022
+        }
+      },
+      {
+        "id": "n948",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5688,
+          5689,
+          5690,
+          5691,
+          5692,
+          5693
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.142857142857142,
+          "y": 15,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003613462138437966,
+          "y": -0.0007649415813206388,
+          "z": 0.0001213535076506993
+        },
+        "angle": {
+          "x": 0.0000095875004489153,
+          "y": -0.00002815379496707695,
+          "z": -0.000033433148592251354
+        }
+      },
+      {
+        "id": "n949",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5694,
+          5695,
+          5696,
+          5697,
+          5698,
+          5699
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 15,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00006657270388297655,
+          "y": -0.0009343450061826371,
+          "z": 0.00013136653618896966
+        },
+        "angle": {
+          "x": 0.00033604317059205644,
+          "y": -0.000023258130692454238,
+          "z": -0.00014763569827433692
+        }
+      },
+      {
+        "id": "n950",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5700,
+          5701,
+          5702,
+          5703,
+          5704,
+          5705
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 15,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008628457489890999,
+          "y": -0.0010006458392715697,
+          "z": 0.0001687037970991248
+        },
+        "angle": {
+          "x": -0.00005159655267639999,
+          "y": -0.000021089732935203263,
+          "z": -0.000009379321952950308
+        }
+      },
+      {
+        "id": "n951",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5706,
+          5707,
+          5708,
+          5709,
+          5710,
+          5711
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 15,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000683116966754815,
+          "y": -0.000982305093347889,
+          "z": 0.0002068168908754864
+        },
+        "angle": {
+          "x": 0.0000019558639712391268,
+          "y": -0.0000254044122126023,
+          "z": 0.000008031164608149224
+        }
+      },
+      {
+        "id": "n952",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5712,
+          5713,
+          5714,
+          5715,
+          5716,
+          5717
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 12.857142857142858,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000022522416863496082,
+          "y": -0.0008707271147330844,
+          "z": 0.00015918199210354558
+        },
+        "angle": {
+          "x": 0.0000019947344915349255,
+          "y": -0.000017646631236425364,
+          "z": -0.0000029585820052749534
+        }
+      },
+      {
+        "id": "n953",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5718,
+          5719,
+          5720,
+          5721,
+          5722,
+          5723
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 12.020305089104422,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000021605193132708987,
+          "y": -0.0008427160631823468,
+          "z": 0.0001227493109965074
+        },
+        "angle": {
+          "x": 0.000007505730917643753,
+          "y": -0.000014045021131771146,
+          "z": -0.000024488363682169995
+        }
+      },
+      {
+        "id": "n954",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5724,
+          5725,
+          5726,
+          5727,
+          5728,
+          5729
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.142857142857142,
+          "y": 10,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003045675667961378,
+          "y": -0.0007818238217258481,
+          "z": 0.00009533448485413833
+        },
+        "angle": {
+          "x": 0.000009731005482562204,
+          "y": -0.00000956458610536605,
+          "z": 0.0000028370882022183165
+        }
+      },
+      {
+        "id": "n955",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5730,
+          5731,
+          5732,
+          5733,
+          5734,
+          5735
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 7.979694910895579,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000012417973610421986,
+          "y": -0.0007188923173172306,
+          "z": 0.00008392764618422115
+        },
+        "angle": {
+          "x": 0.000008136241495599934,
+          "y": -0.000006606259602405748,
+          "z": 0.000025855058189672877
+        }
+      },
+      {
+        "id": "n956",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5736,
+          5737,
+          5738,
+          5739,
+          5740,
+          5741
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 7.142857142857142,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000004749264726228503,
+          "y": -0.0006966097775630685,
+          "z": 0.00009032772348980197
+        },
+        "angle": {
+          "x": 0.00002110645141307049,
+          "y": -0.00001187633004396976,
+          "z": -0.0000020040942842029123
+        }
+      },
+      {
+        "id": "n957",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5742,
+          5743,
+          5744,
+          5745,
+          5746,
+          5747
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 7.979694910895579,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000024879931165531085,
+          "y": -0.0007266617421986696,
+          "z": 0.0001320531579239419
+        },
+        "angle": {
+          "x": 0.00001164382420438804,
+          "y": -0.0000158982422180028,
+          "z": -0.000029241929664023017
+        }
+      },
+      {
+        "id": "n958",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5748,
+          5749,
+          5750,
+          5751,
+          5752,
+          5753
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.857142857142858,
+          "y": 10,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000039187004153539745,
+          "y": -0.000787859185954989,
+          "z": 0.00017089473633188145
+        },
+        "angle": {
+          "x": 0.000015402689464571135,
+          "y": -0.000010432208862048388,
+          "z": 0.0000023539322707822358
+        }
+      },
+      {
+        "id": "n959",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5754,
+          5755,
+          5756,
+          5757,
+          5758,
+          5759
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 12.020305089104422,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000018314838574967252,
+          "y": -0.0008494898087542013,
+          "z": 0.00019227613648283313
+        },
+        "angle": {
+          "x": 0.000019322935059750202,
+          "y": -0.000023505325607449365,
+          "z": 0.000028374644903664755
+        }
+      },
+      {
+        "id": "n960",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5760,
+          5761,
+          5762,
+          5763,
+          5764,
+          5765
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 15,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011612972625325069,
+          "y": -0.0010810037079509785,
+          "z": 0.0002856066495159665
+        },
+        "angle": {
+          "x": 0.000044117265686060756,
+          "y": -0.000028346390972941857,
+          "z": -0.000016242706729364966
+        }
+      },
+      {
+        "id": "n961",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5766,
+          5767,
+          5768,
+          5769,
+          5770,
+          5771
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 10,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011970243463630739,
+          "y": -0.0008513390850136152,
+          "z": 0.00021972916397115395
+        },
+        "angle": {
+          "x": 0.0000240189806544467,
+          "y": -0.0000052787761543122094,
+          "z": -0.0000015151543888884476
+        }
+      },
+      {
+        "id": "n962",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5772,
+          5773,
+          5774,
+          5775,
+          5776,
+          5777
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 10,
+          "z": 22.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000058549885329849496,
+          "y": -0.0007920918397278502,
+          "z": 0.00023175444352522407
+        },
+        "angle": {
+          "x": 0.000003958678133569377,
+          "y": -0.000018978766180202786,
+          "z": 0.000021793973525658416
+        }
+      },
+      {
+        "id": "n963",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5778,
+          5779,
+          5780,
+          5781,
+          5782,
+          5783
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 12.020305089104422,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000942525621665389,
+          "y": -0.0008156446452981483,
+          "z": 0.00022778739586744334
+        },
+        "angle": {
+          "x": -0.000011452770406238929,
+          "y": -0.00017172968356536333,
+          "z": 0.00007579948428981059
+        }
+      },
+      {
+        "id": "n964",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5784,
+          5785,
+          5786,
+          5787,
+          5788,
+          5789
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 12.857142857142858,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00018044622411229514,
+          "y": -0.0008875039942600324,
+          "z": 0.0002190263926065928
+        },
+        "angle": {
+          "x": -0.00004921760457828153,
+          "y": 0.00000872506209526391,
+          "z": 0.000011999111516473554
+        }
+      },
+      {
+        "id": "n965",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5790,
+          5791,
+          5792,
+          5793,
+          5794,
+          5795
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 12.020305089104422,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001295070994258274,
+          "y": -0.0009422753900927345,
+          "z": 0.00021627620032830042
+        },
+        "angle": {
+          "x": 0.000026275250838781636,
+          "y": 0.00010807612276632267,
+          "z": 0.0000471250329552276
+        }
+      },
+      {
+        "id": "n966",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5796,
+          5797,
+          5798,
+          5799,
+          5800,
+          5801
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 10,
+          "z": 17.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00010840717485620362,
+          "y": -0.0009016080690378031,
+          "z": 0.00019815456544078667
+        },
+        "angle": {
+          "x": 0.0000034500061985593647,
+          "y": 0.0000364292068221413,
+          "z": 0.000021794177461589367
+        }
+      },
+      {
+        "id": "n967",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5802,
+          5803,
+          5804,
+          5805,
+          5806,
+          5807
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 7.979694910895579,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00002633651561384038,
+          "y": -0.0008722285669616169,
+          "z": 0.00019865319378036588
+        },
+        "angle": {
+          "x": -0.00000798032837525199,
+          "y": -0.00042071005093470494,
+          "z": 0.0001834172100025555
+        }
+      },
+      {
+        "id": "n968",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5808,
+          5809,
+          5810,
+          5811,
+          5812,
+          5813
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 7.142857142857142,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00017179799318845897,
+          "y": -0.0008071580722571818,
+          "z": 0.00020576453451644523
+        },
+        "angle": {
+          "x": -0.000043914808919759586,
+          "y": 0.000008724508192181011,
+          "z": 0.000031588826238317195
+        }
+      },
+      {
+        "id": "n969",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5814,
+          5815,
+          5816,
+          5817,
+          5818,
+          5819
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 7.979694910895578,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000008917127385341356,
+          "y": -0.0007581062424349144,
+          "z": 0.0002097680639250174
+        },
+        "angle": {
+          "x": 0.000027852604256377265,
+          "y": 0.0003477876278750686,
+          "z": 0.00015146540769816138
+        }
+      },
+      {
+        "id": "n970",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5820,
+          5821,
+          5822,
+          5823,
+          5824,
+          5825
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 15,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001951002860961895,
+          "y": -0.0010338515429696201,
+          "z": 0.00018368414705896503
+        },
+        "angle": {
+          "x": -0.0000029502105558539024,
+          "y": -0.00003047125050716563,
+          "z": 0.000021139372911403846
+        }
+      },
+      {
+        "id": "n971",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5826,
+          5827,
+          5828,
+          5829,
+          5830,
+          5831
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.857142857142858,
+          "y": 15,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001152920813072275,
+          "y": -0.0011806109047865603,
+          "z": 0.00023277518537765307
+        },
+        "angle": {
+          "x": 0.000013375893627385145,
+          "y": -0.000031763550507598715,
+          "z": -0.000028299654744945962
+        }
+      },
+      {
+        "id": "n972",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5832,
+          5833,
+          5834,
+          5835,
+          5836,
+          5837
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 15,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001512788156989329,
+          "y": -0.0010449767169908113,
+          "z": 0.00022131310999478032
+        },
+        "angle": {
+          "x": 0.00009509277947410614,
+          "y": -0.000024772970732432035,
+          "z": -0.0000576871629147408
+        }
+      },
+      {
+        "id": "n973",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5838,
+          5839,
+          5840,
+          5841,
+          5842,
+          5843
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 15,
+          "z": 22.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00016835341885669512,
+          "y": -0.0009872293666007108,
+          "z": 0.00018319036087504354
+        },
+        "angle": {
+          "x": -0.00006228583389720619,
+          "y": -0.000019914090297536412,
+          "z": -0.0000025415104782889677
+        }
+      },
+      {
+        "id": "n974",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5844,
+          5845,
+          5846,
+          5847,
+          5848,
+          5849
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 15,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001530528175884515,
+          "y": -0.0010337284162285434,
+          "z": 0.00014823979736446118
+        },
+        "angle": {
+          "x": 0.00030495504752070334,
+          "y": -0.00002107593127149984,
+          "z": 0.0001277939256006413
+        }
+      },
+      {
+        "id": "n975",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5850,
+          5851,
+          5852,
+          5853,
+          5854,
+          5855
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.142857142857142,
+          "y": 15,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011983186963147974,
+          "y": -0.001149767407738716,
+          "z": 0.00013687466234911505
+        },
+        "angle": {
+          "x": 0.000011344143334034058,
+          "y": -0.000030323371236701425,
+          "z": 0.000024482959494955273
+        }
+      },
+      {
+        "id": "n976",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5856,
+          5857,
+          5858,
+          5859,
+          5860,
+          5861
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 15,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008406496506031263,
+          "y": -0.000986000977690509,
+          "z": 0.00014715716889877688
+        },
+        "angle": {
+          "x": -0.00027067389081230183,
+          "y": -0.000022675200597151617,
+          "z": 0.00012468756145022044
+        }
+      },
+      {
+        "id": "n977",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5862,
+          5863,
+          5864,
+          5865,
+          5866,
+          5867
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 15,
+          "z": 17.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006509358617891503,
+          "y": -0.0009166008723561108,
+          "z": 0.00018138799114670969
+        },
+        "angle": {
+          "x": 0.00008700570248452105,
+          "y": -0.000019188319203152585,
+          "z": -0.0000012751258336949637
+        }
+      },
+      {
+        "id": "n978",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5868,
+          5869,
+          5870,
+          5871,
+          5872,
+          5873
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 15,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007989210426726488,
+          "y": -0.0009928202438976514,
+          "z": 0.00021981749788898094
+        },
+        "angle": {
+          "x": -0.00022850721505368845,
+          "y": -0.000026195749840162237,
+          "z": -0.0001133220474156882
+        }
+      },
+      {
+        "id": "n979",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5874,
+          5875,
+          5876,
+          5877,
+          5878,
+          5879
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 12.857142857142858,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001302094513338972,
+          "y": -0.0008783744113128332,
+          "z": 0.0001807853097312511
+        },
+        "angle": {
+          "x": -0.00004801383978750691,
+          "y": -0.000016368134966648822,
+          "z": -0.00002795655274893928
+        }
+      },
+      {
+        "id": "n980",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5880,
+          5881,
+          5882,
+          5883,
+          5884,
+          5885
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 12.020305089104422,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00014344185686326216,
+          "y": -0.0008170193595615683,
+          "z": 0.00018789644236321133
+        },
+        "angle": {
+          "x": 0.00008586579499687082,
+          "y": 0.000039086564722378694,
+          "z": -0.000020684369170731488
+        }
+      },
+      {
+        "id": "n981",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5886,
+          5887,
+          5888,
+          5889,
+          5890,
+          5891
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.142857142857142,
+          "y": 10,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001599964542419387,
+          "y": -0.0007807388050018936,
+          "z": 0.00004713044340700599
+        },
+        "angle": {
+          "x": 0.000036000714531538606,
+          "y": -0.0000812984269887792,
+          "z": -0.000002156979659702249
+        }
+      },
+      {
+        "id": "n982",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5892,
+          5893,
+          5894,
+          5895,
+          5896,
+          5897
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 7.979694910895579,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00015285754132194506,
+          "y": -0.0007489015546148708,
+          "z": 0.00004243163763309982
+        },
+        "angle": {
+          "x": 0.0000298606387000532,
+          "y": -0.00006647508169372767,
+          "z": 0.00001504551829374606
+        }
+      },
+      {
+        "id": "n983",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5898,
+          5899,
+          5900,
+          5901,
+          5902,
+          5903
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 7.142857142857142,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001543506237227735,
+          "y": -0.0007722527079063626,
+          "z": 0.00015174309452793726
+        },
+        "angle": {
+          "x": -0.00006308253603842918,
+          "y": -0.000027976742921629835,
+          "z": -0.000026949310312790525
+        }
+      },
+      {
+        "id": "n984",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5904,
+          5905,
+          5906,
+          5907,
+          5908,
+          5909
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 7.979694910895579,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00014130917766299778,
+          "y": -0.0008321074526851729,
+          "z": 0.00015547482292865408
+        },
+        "angle": {
+          "x": 0.00007473854732406919,
+          "y": 0.000029110589331204636,
+          "z": -0.000020339202245463466
+        }
+      },
+      {
+        "id": "n985",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5910,
+          5911,
+          5912,
+          5913,
+          5914,
+          5915
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.857142857142858,
+          "y": 10,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00012679589523000592,
+          "y": -0.0008705922072922202,
+          "z": 0.00028210865844416555
+        },
+        "angle": {
+          "x": 0.00002439212144619927,
+          "y": -0.00009243642455551068,
+          "z": -0.0000015692753706572725
+        }
+      },
+      {
+        "id": "n986",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5916,
+          5917,
+          5918,
+          5919,
+          5920,
+          5921
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 12.020305089104422,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00013306147878915198,
+          "y": -0.0009041809520800275,
+          "z": 0.00025403379052182646
+        },
+        "angle": {
+          "x": 0.0000013535927826987915,
+          "y": -0.00003681684460251624,
+          "z": 0.00001359226369143602
+        }
+      },
+      {
+        "id": "n987",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5922,
+          5923,
+          5924,
+          5925,
+          5926,
+          5927
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.857142857142858,
+          "y": 15,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00018153611904783525,
+          "y": -0.0008338405056203711,
+          "z": 0.0002089701335181138
+        },
+        "angle": {
+          "x": 0.00001968543695253322,
+          "y": -0.000025329338708690433,
+          "z": 0.0000448976175888926
+        }
+      },
+      {
+        "id": "n988",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5928,
+          5929,
+          5930,
+          5931,
+          5932,
+          5933
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 15,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00021003597245765286,
+          "y": -0.0010502554839174724,
+          "z": 0.0001988543296289428
+        },
+        "angle": {
+          "x": 0.00043372375999518105,
+          "y": -0.00002308459190997862,
+          "z": 0.00019108683251937265
+        }
+      },
+      {
+        "id": "n989",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5934,
+          5935,
+          5936,
+          5937,
+          5938,
+          5939
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 15,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002056174460523152,
+          "y": -0.0008775399592314252,
+          "z": 0.00011522034615041044
+        },
+        "angle": {
+          "x": 0.0008496562029618467,
+          "y": -0.000026371694351866113,
+          "z": -0.0004099104950915589
+        }
+      },
+      {
+        "id": "n990",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5940,
+          5941,
+          5942,
+          5943,
+          5944,
+          5945
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.142857142857142,
+          "y": 15,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00017561106610660616,
+          "y": -0.0002556484536781727,
+          "z": 0.00010278336252074363
+        },
+        "angle": {
+          "x": 0.00002185411266042179,
+          "y": -0.000027402113433835495,
+          "z": -0.00011621727416586638
+        }
+      },
+      {
+        "id": "n991",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5946,
+          5947,
+          5948,
+          5949,
+          5950,
+          5951
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 15,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00014527090216883134,
+          "y": -0.0009619542381265447,
+          "z": 0.0001138732526532162
+        },
+        "angle": {
+          "x": -0.001124009729493349,
+          "y": -0.00002484886828924403,
+          "z": -0.0005203202226426273
+        }
+      },
+      {
+        "id": "n992",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5952,
+          5953,
+          5954,
+          5955,
+          5956,
+          5957
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 15,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00015413444712878023,
+          "y": -0.0011305410805494184,
+          "z": 0.00019757669437422596
+        },
+        "angle": {
+          "x": -0.0007145572105518637,
+          "y": -0.000023560123820745945,
+          "z": 0.0003046869715100542
+        }
+      },
+      {
+        "id": "n993",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5958,
+          5959,
+          5960,
+          5961,
+          5962,
+          5963
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 25,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00034657598792238605,
+          "y": -0.0014577975308641673,
+          "z": 0.0005412725999985844
+        },
+        "angle": {
+          "x": 0.00010066081361249122,
+          "y": -0.000047979309960735195,
+          "z": 0.000014701271349433468
+        }
+      },
+      {
+        "id": "n994",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5964,
+          5965,
+          5966,
+          5967,
+          5968,
+          5969
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 20,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0003444441781196212,
+          "y": -0.0012013626644851968,
+          "z": 0.00033118471433046196
+        },
+        "angle": {
+          "x": 0.000029281538748734657,
+          "y": -0.0000011588658935988204,
+          "z": -0.000018610295671314394
+        }
+      },
+      {
+        "id": "n995",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5970,
+          5971,
+          5972,
+          5973,
+          5974,
+          5975
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 20,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00018335632338173003,
+          "y": -0.0011981987034137644,
+          "z": 0.0003614495418534764
+        },
+        "angle": {
+          "x": 0.00001567268869038983,
+          "y": -0.00003910939784291414,
+          "z": -0.00002112028137656695
+        }
+      },
+      {
+        "id": "n996",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5976,
+          5977,
+          5978,
+          5979,
+          5980,
+          5981
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 20,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00028369827275849757,
+          "y": -0.0012113500288022804,
+          "z": 0.00035895301658662993
+        },
+        "angle": {
+          "x": 0.000016275650751512558,
+          "y": -0.000010478306233524133,
+          "z": -0.00006038218189033949
+        }
+      },
+      {
+        "id": "n997",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5982,
+          5983,
+          5984,
+          5985,
+          5986,
+          5987
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 22.020305089104422,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0004353877862412183,
+          "y": -0.0012101067549397026,
+          "z": 0.0003774929491765714
+        },
+        "angle": {
+          "x": 0.000002356462861281416,
+          "y": 0.00022353138515548664,
+          "z": -0.00014311731867027618
+        }
+      },
+      {
+        "id": "n998",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5988,
+          5989,
+          5990,
+          5991,
+          5992,
+          5993
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 22.857142857142858,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0008016021693801314,
+          "y": -0.0012660263511506979,
+          "z": 0.0003804720696092895
+        },
+        "angle": {
+          "x": -0.000029214985659582702,
+          "y": -0.000017835170979118245,
+          "z": -0.00005778206670364404
+        }
+      },
+      {
+        "id": "n999",
+        "parent": "11",
+        "degrees_of_freedom": [
+          5994,
+          5995,
+          5996,
+          5997,
+          5998,
+          5999
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 22.020305089104422,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0005074501427877447,
+          "y": -0.0012918017765243264,
+          "z": 0.00037404634046248996
+        },
+        "angle": {
+          "x": 0.000044673813175070334,
+          "y": -0.0007974251718643006,
+          "z": -0.00033340940912677305
+        }
+      },
+      {
+        "id": "n1000",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6000,
+          6001,
+          6002,
+          6003,
+          6004,
+          6005
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 20,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0003856069410705065,
+          "y": -0.0012542833626815644,
+          "z": 0.00032705977889573127
+        },
+        "angle": {
+          "x": 0.000015445640541846688,
+          "y": -0.000025188672618491012,
+          "z": -0.000060382812397480057
+        }
+      },
+      {
+        "id": "n1001",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6006,
+          6007,
+          6008,
+          6009,
+          6010,
+          6011
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 17.979694910895578,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00022160612202446047,
+          "y": -0.0012479043318350765,
+          "z": 0.000312100635624369
+        },
+        "angle": {
+          "x": 0.0000018764340748999262,
+          "y": 0.00045196093975446717,
+          "z": -0.00022908040793182503
+        }
+      },
+      {
+        "id": "n1002",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6012,
+          6013,
+          6014,
+          6015,
+          6016,
+          6017
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 17.142857142857142,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001743266070607618,
+          "y": -0.0012168748681089018,
+          "z": 0.00031522431855671184
+        },
+        "angle": {
+          "x": -0.00002042880496253918,
+          "y": -0.00001783414210494072,
+          "z": -0.00006298297141843334
+        }
+      },
+      {
+        "id": "n1003",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6018,
+          6019,
+          6020,
+          6021,
+          6022,
+          6023
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 17.979694910895578,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00014954598469448747,
+          "y": -0.0011918598433006127,
+          "z": 0.0003227755904936751
+        },
+        "angle": {
+          "x": 0.000024677094261617762,
+          "y": -0.0005720767298569839,
+          "z": -0.0002589374660260757
+        }
+      },
+      {
+        "id": "n1004",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6024,
+          6025,
+          6026,
+          6027,
+          6028,
+          6029
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 25,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0004933378299930655,
+          "y": -0.001278911595900053,
+          "z": 0.0003578881540021679
+        },
+        "angle": {
+          "x": 0.0000448628510803624,
+          "y": -0.00006915905290554318,
+          "z": -0.00006737197174734743
+        }
+      },
+      {
+        "id": "n1005",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6030,
+          6031,
+          6032,
+          6033,
+          6034,
+          6035
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 25,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00020532193038451288,
+          "y": -0.0012056318576777344,
+          "z": 0.00031122457802152146
+        },
+        "angle": {
+          "x": 0.00003337623514358655,
+          "y": -0.00003971790008348723,
+          "z": -0.000010196449353351031
+        }
+      },
+      {
+        "id": "n1006",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6036,
+          6037,
+          6038,
+          6039,
+          6040,
+          6041
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.857142857142858,
+          "y": 25,
+          "z": -3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000320812656365901,
+          "y": -0.002330627717402058,
+          "z": 0.00045444672218236925
+        },
+        "angle": {
+          "x": -0.00002961582565334992,
+          "y": -0.00004778607314968228,
+          "z": -0.00009549446588968224
+        }
+      },
+      {
+        "id": "n1007",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6042,
+          6043,
+          6044,
+          6045,
+          6046,
+          6047
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 25,
+          "z": 2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00027124067734330597,
+          "y": -0.0017251110315480859,
+          "z": 0.00043115410295824333
+        },
+        "angle": {
+          "x": 0.0015091928565159546,
+          "y": -0.00005014061190823107,
+          "z": -0.000639545997906959
+        }
+      },
+      {
+        "id": "n1008",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6048,
+          6049,
+          6050,
+          6051,
+          6052,
+          6053
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 25,
+          "z": 2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002351957935889321,
+          "y": -0.0014742972344487354,
+          "z": 0.0003403633673019865
+        },
+        "angle": {
+          "x": 0.000109184497813627,
+          "y": -0.0000521086819634347,
+          "z": -0.00014456811960231864
+        }
+      },
+      {
+        "id": "n1009",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6054,
+          6055,
+          6056,
+          6057,
+          6058,
+          6059
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 25,
+          "z": 2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00027389562676084637,
+          "y": -0.0010407439503220546,
+          "z": 0.00024865929437308166
+        },
+        "angle": {
+          "x": -0.0014194055603172003,
+          "y": -0.000051656472401381056,
+          "z": -0.0006850065421266236
+        }
+      },
+      {
+        "id": "n1010",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6060,
+          6061,
+          6062,
+          6063,
+          6064,
+          6065
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.142857142857142,
+          "y": 25,
+          "z": 3.140184917367551e-16
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0003141841241910477,
+          "y": 0.000005952654773679881,
+          "z": 0.00022271296691753597
+        },
+        "angle": {
+          "x": -0.000029614392693830688,
+          "y": -0.00004330436189055207,
+          "z": -0.00019364266444492592
+        }
+      },
+      {
+        "id": "n1011",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6066,
+          6067,
+          6068,
+          6069,
+          6070,
+          6071
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 25,
+          "z": -2.020305089104421
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0003646511994054501,
+          "y": -0.0011604095493549505,
+          "z": 0.00024311102313069065
+        },
+        "angle": {
+          "x": 0.0018400440973437239,
+          "y": -0.00005629643245135753,
+          "z": -0.0008546680779149181
+        }
+      },
+      {
+        "id": "n1012",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6072,
+          6073,
+          6074,
+          6075,
+          6076,
+          6077
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 25,
+          "z": -2.857142857142857
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0004091077920437817,
+          "y": -0.0016435346857283275,
+          "z": 0.0003377363355023386
+        },
+        "angle": {
+          "x": -0.00016841983706094711,
+          "y": -0.0000529789544492523,
+          "z": -0.0001445687537059029
+        }
+      },
+      {
+        "id": "n1013",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6078,
+          6079,
+          6080,
+          6081,
+          6082,
+          6083
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 25,
+          "z": -2.0203050891044216
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0003739957235096677,
+          "y": -0.0018447791751223038,
+          "z": 0.0004317787530504256
+        },
+        "angle": {
+          "x": 0.000028735358434881695,
+          "y": -0.00005371844820345355,
+          "z": -0.0000748636157645821
+        }
+      },
+      {
+        "id": "n1014",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6084,
+          6085,
+          6086,
+          6087,
+          6088,
+          6089
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 17.142857142857142,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00030613725666114026,
+          "y": -0.0010980588161134707,
+          "z": 0.0000954455684950788
+        },
+        "angle": {
+          "x": 0.000060085612816177,
+          "y": -0.000017608424949524145,
+          "z": -0.000002973463316994781
+        }
+      },
+      {
+        "id": "n1015",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6090,
+          6091,
+          6092,
+          6093,
+          6094,
+          6095
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 17.979694910895578,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0003224682497637402,
+          "y": -0.0011157116135989277,
+          "z": 0.0001813019103177336
+        },
+        "angle": {
+          "x": -0.000028860953182262383,
+          "y": -0.000054451311240351184,
+          "z": -0.000019513139728967177
+        }
+      },
+      {
+        "id": "n1016",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6096,
+          6097,
+          6098,
+          6099,
+          6100,
+          6101
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.857142857142858,
+          "y": 20,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00034879935266455685,
+          "y": -0.0011461953272617572,
+          "z": 0.0001685608448962074
+        },
+        "angle": {
+          "x": 0.00005088018038567483,
+          "y": 0.00013806090768336287,
+          "z": -0.000010988026616400421
+        }
+      },
+      {
+        "id": "n1017",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6102,
+          6103,
+          6104,
+          6105,
+          6106,
+          6107
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 22.020305089104422,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00036771431176821205,
+          "y": -0.0011572797492739309,
+          "z": 0.00038688900294599015
+        },
+        "angle": {
+          "x": 0.00013950206895625068,
+          "y": -0.00007589123197246943,
+          "z": -0.000004067034284255661
+        }
+      },
+      {
+        "id": "n1018",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6108,
+          6109,
+          6110,
+          6111,
+          6112,
+          6113
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 22.857142857142858,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0003724109726826459,
+          "y": -0.0011573420347703773,
+          "z": 0.00035030613093068924
+        },
+        "angle": {
+          "x": 0.00013696543912182564,
+          "y": -0.00007484051644152073,
+          "z": -0.000002119449133968564
+        }
+      },
+      {
+        "id": "n1019",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6114,
+          6115,
+          6116,
+          6117,
+          6118,
+          6119
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 22.020305089104422,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0003566372553741407,
+          "y": -0.001134496529798325,
+          "z": 0.00008448751814333175
+        },
+        "angle": {
+          "x": 0.0000035384618878274944,
+          "y": -0.00013010777165874796,
+          "z": -0.000027078973841462478
+        }
+      },
+      {
+        "id": "n1020",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6120,
+          6121,
+          6122,
+          6123,
+          6124,
+          6125
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.142857142857142,
+          "y": 20,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00032161305430348375,
+          "y": -0.0011030960403916857,
+          "z": -0.00003154039502726281
+        },
+        "angle": {
+          "x": -0.000006351894459380221,
+          "y": -0.00015398524616472897,
+          "z": -0.000012154164840323624
+        }
+      },
+      {
+        "id": "n1021",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6126,
+          6127,
+          6128,
+          6129,
+          6130,
+          6131
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 17.979694910895578,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0003048083220233131,
+          "y": -0.0010952732954903008,
+          "z": 0.00011015307810434854
+        },
+        "angle": {
+          "x": -0.00008829994407101771,
+          "y": 0.00004385485848164719,
+          "z": -0.0000023738722181963643
+        }
+      },
+      {
+        "id": "n1022",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6132,
+          6133,
+          6134,
+          6135,
+          6136,
+          6137
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 22.857142857142858,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001864773178296345,
+          "y": -0.0011542342631049465,
+          "z": 0.0001784069503053425
+        },
+        "angle": {
+          "x": -0.00004305726794816033,
+          "y": -0.00003079325186937479,
+          "z": -0.000012220033388576471
+        }
+      },
+      {
+        "id": "n1023",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6138,
+          6139,
+          6140,
+          6141,
+          6142,
+          6143
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 22.020305089104422,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000161825346492084,
+          "y": -0.001118680229878622,
+          "z": 0.0001529551078374333
+        },
+        "angle": {
+          "x": 0.00005487104255970338,
+          "y": 0.00001085098005082355,
+          "z": -0.000024794125297443983
+        }
+      },
+      {
+        "id": "n1024",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6144,
+          6145,
+          6146,
+          6147,
+          6148,
+          6149
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.142857142857142,
+          "y": 20,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00013342253899752422,
+          "y": -0.0010798542651671665,
+          "z": 0.000052625625337149106
+        },
+        "angle": {
+          "x": 0.000011348165447096116,
+          "y": -0.00009163012661203718,
+          "z": -0.00000918909658885049
+        }
+      },
+      {
+        "id": "n1025",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6150,
+          6151,
+          6152,
+          6153,
+          6154,
+          6155
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 17.979694910895578,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00012423896705306213,
+          "y": -0.0010569515332819817,
+          "z": 0.00010565527907445272
+        },
+        "angle": {
+          "x": -0.00003398704401616436,
+          "y": 0.000020411204024366105,
+          "z": 0.000005551516578686622
+        }
+      },
+      {
+        "id": "n1026",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6156,
+          6157,
+          6158,
+          6159,
+          6160,
+          6161
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 17.142857142857142,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001259015409256051,
+          "y": -0.0010646317595347755,
+          "z": 0.00009307025081283777
+        },
+        "angle": {
+          "x": 0.00007899234166209428,
+          "y": -0.000026542447473515562,
+          "z": -0.000011733880652610104
+        }
+      },
+      {
+        "id": "n1027",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6162,
+          6163,
+          6164,
+          6165,
+          6166,
+          6167
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 17.979694910895578,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00014591146782985762,
+          "y": -0.001103278551527316,
+          "z": 0.0002126928059287449
+        },
+        "angle": {
+          "x": -0.000033448493501690395,
+          "y": -0.00007296089303925739,
+          "z": -0.00002696607775048788
+        }
+      },
+      {
+        "id": "n1028",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6168,
+          6169,
+          6170,
+          6171,
+          6172,
+          6173
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.857142857142858,
+          "y": 20,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00017716800253771958,
+          "y": -0.0011454817272184572,
+          "z": 0.00020603411934470864
+        },
+        "angle": {
+          "x": 0.000015614211393677817,
+          "y": 0.000045736016992219105,
+          "z": -0.000010830339753819335
+        }
+      },
+      {
+        "id": "n1029",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6174,
+          6175,
+          6176,
+          6177,
+          6178,
+          6179
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 22.020305089104422,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00019155307803616023,
+          "y": -0.0011673204640226056,
+          "z": 0.00027592271426410647
+        },
+        "angle": {
+          "x": 0.00006561411783566672,
+          "y": -0.00007472540447468741,
+          "z": 0.0000017471119883766216
+        }
+      },
+      {
+        "id": "n1030",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6180,
+          6181,
+          6182,
+          6183,
+          6184,
+          6185
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 15,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007306317259432906,
+          "y": -0.000978942140428123,
+          "z": 0.00021000365968789353
+        },
+        "angle": {
+          "x": 0.00023026851938608348,
+          "y": -0.000024366053639269005,
+          "z": 0.00008937606804356333
+        }
+      },
+      {
+        "id": "n1031",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6186,
+          6187,
+          6188,
+          6189,
+          6190,
+          6191
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 15,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000693542987515957,
+          "y": -0.0009342791270964398,
+          "z": 0.00013132327038548316
+        },
+        "angle": {
+          "x": 0.00014310376221723066,
+          "y": -0.000022740032084069853,
+          "z": -0.00007943350561134856
+        }
+      },
+      {
+        "id": "n1032",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6192,
+          6193,
+          6194,
+          6195,
+          6196,
+          6197
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 25,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00013169527869172733,
+          "y": -0.0014034675563701397,
+          "z": 0.00048708423931870026
+        },
+        "angle": {
+          "x": 0.000071569836753442,
+          "y": -0.000054141672898708076,
+          "z": -0.00003942432461720276
+        }
+      },
+      {
+        "id": "n1033",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6198,
+          6199,
+          6200,
+          6201,
+          6202,
+          6203
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 20,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000007347840045658067,
+          "y": -0.001158955815599713,
+          "z": 0.00037533747672432153
+        },
+        "angle": {
+          "x": 0.000014884346674253456,
+          "y": -0.00003366931536010435,
+          "z": -0.000016677255606618844
+        }
+      },
+      {
+        "id": "n1034",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6204,
+          6205,
+          6206,
+          6207,
+          6208,
+          6209
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 20,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00012634925067791735,
+          "y": -0.0011749553648910563,
+          "z": 0.0003782690868530539
+        },
+        "angle": {
+          "x": 0.000009089557158675506,
+          "y": -0.000007551739859508887,
+          "z": -0.00003185722670104423
+        }
+      },
+      {
+        "id": "n1035",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6210,
+          6211,
+          6212,
+          6213,
+          6214,
+          6215
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 22.020305089104422,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002078744892343538,
+          "y": -0.0011782444974582835,
+          "z": 0.0003818682172264393
+        },
+        "angle": {
+          "x": -0.000006445501912966808,
+          "y": 0.000031957248231122166,
+          "z": -0.000045574392194283676
+        }
+      },
+      {
+        "id": "n1036",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6216,
+          6217,
+          6218,
+          6219,
+          6220,
+          6221
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 22.857142857142858,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0004027788019107533,
+          "y": -0.0012364028887559499,
+          "z": 0.000378803169101722
+        },
+        "angle": {
+          "x": -0.000035883854393263274,
+          "y": 0.00003368539363896865,
+          "z": -0.000045934086094106885
+        }
+      },
+      {
+        "id": "n1037",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6222,
+          6223,
+          6224,
+          6225,
+          6226,
+          6227
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 22.020305089104422,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007272215487179723,
+          "y": -0.0012725866096502518,
+          "z": 0.0003761116382859379
+        },
+        "angle": {
+          "x": 0.000029066815599287637,
+          "y": -0.0004001621782387126,
+          "z": -0.00019907107604894567
+        }
+      },
+      {
+        "id": "n1038",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6228,
+          6229,
+          6230,
+          6231,
+          6232,
+          6233
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 20,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006319832920896006,
+          "y": -0.0012430058662951423,
+          "z": 0.00035028821102902865
+        },
+        "angle": {
+          "x": 0.00000678844193609058,
+          "y": 0.00007389305158330613,
+          "z": -0.00003121566525024036
+        }
+      },
+      {
+        "id": "n1039",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6234,
+          6235,
+          6236,
+          6237,
+          6238,
+          6239
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 17.979694910895578,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000754456265629062,
+          "y": -0.0012307199939159993,
+          "z": 0.0003457319905016021
+        },
+        "angle": {
+          "x": -0.0000020293234390691206,
+          "y": -0.0003202704948583552,
+          "z": 0.00010789075226160807
+        }
+      },
+      {
+        "id": "n1040",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6240,
+          6241,
+          6242,
+          6243,
+          6244,
+          6245
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 17.142857142857142,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001069279750525979,
+          "y": -0.00118835670672817,
+          "z": 0.0003478866166178498
+        },
+        "angle": {
+          "x": -0.00002681239525742933,
+          "y": 0.00003265643155406014,
+          "z": -0.000017138926066283144
+        }
+      },
+      {
+        "id": "n1041",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6246,
+          6247,
+          6248,
+          6249,
+          6250,
+          6251
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 17.979694910895578,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00005746314307137981,
+          "y": -0.0011596437230429531,
+          "z": 0.0003509223924253614
+        },
+        "angle": {
+          "x": 0.000022351274290403124,
+          "y": -0.00022355669277718672,
+          "z": -0.00010797516017848098
+        }
+      },
+      {
+        "id": "n1042",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6252,
+          6253,
+          6254,
+          6255,
+          6256,
+          6257
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 25,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": -800,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000005182982997616704,
+          "y": -0.0011862128975545616,
+          "z": 0.00029396888082733265
+        },
+        "angle": {
+          "x": 0.000018995133903168955,
+          "y": -0.00004539772241521136,
+          "z": -0.000001121557793409112
+        }
+      },
+      {
+        "id": "n1043",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6258,
+          6259,
+          6260,
+          6261,
+          6262,
+          6263
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.857142857142858,
+          "y": 25,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00009676545358960984,
+          "y": -0.0014739574738597424,
+          "z": 0.0003889868848392257
+        },
+        "angle": {
+          "x": -7.033544441806612e-7,
+          "y": -0.00003546932137311446,
+          "z": -0.000017254047826590562
+        }
+      },
+      {
+        "id": "n1044",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6264,
+          6265,
+          6266,
+          6267,
+          6268,
+          6269
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 25,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00005647314277955448,
+          "y": -0.0013734634005048356,
+          "z": 0.00037267007537711635
+        },
+        "angle": {
+          "x": 0.00009461967671674083,
+          "y": -0.000042818156912265844,
+          "z": -0.000051207073874438474
+        }
+      },
+      {
+        "id": "n1045",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6270,
+          6271,
+          6272,
+          6273,
+          6274,
+          6275
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 25,
+          "z": 12.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00002737282537597126,
+          "y": -0.0013310440418953637,
+          "z": 0.00030077724266774555
+        },
+        "angle": {
+          "x": 0.00009526199154357731,
+          "y": -0.0000395811803393014,
+          "z": -0.00005168568837916352
+        }
+      },
+      {
+        "id": "n1046",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6276,
+          6277,
+          6278,
+          6279,
+          6280,
+          6281
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 25,
+          "z": 12.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000058782014000752564,
+          "y": -0.001129186832331922,
+          "z": 0.0002307853436012278
+        },
+        "angle": {
+          "x": -0.0006918504030541445,
+          "y": -0.000041312588853551146,
+          "z": -0.00032972055402573065
+        }
+      },
+      {
+        "id": "n1047",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6282,
+          6283,
+          6284,
+          6285,
+          6286,
+          6287
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.142857142857142,
+          "y": 25,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008817333615115345,
+          "y": -0.0006437718802977249,
+          "z": 0.00020974725300866508
+        },
+        "angle": {
+          "x": -0.0000017304481632289351,
+          "y": -0.00003260621865494873,
+          "z": -0.00008547603815025127
+        }
+      },
+      {
+        "id": "n1048",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6288,
+          6289,
+          6290,
+          6291,
+          6292,
+          6293
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 25,
+          "z": 7.979694910895579
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00012644262071383118,
+          "y": -0.0011352258914303578,
+          "z": 0.000224944101395427
+        },
+        "angle": {
+          "x": 0.0008168536578731527,
+          "y": -0.000043919317432010775,
+          "z": -0.0003746390222999398
+        }
+      },
+      {
+        "id": "n1049",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6294,
+          6295,
+          6296,
+          6297,
+          6298,
+          6299
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 25,
+          "z": 7.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001596924165283748,
+          "y": -0.0013380021267072654,
+          "z": 0.0002974029897429847
+        },
+        "angle": {
+          "x": -0.00009769856169586678,
+          "y": -0.00004004194840972599,
+          "z": -0.00005104506540937034
+        }
+      },
+      {
+        "id": "n1050",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6300,
+          6301,
+          6302,
+          6303,
+          6304,
+          6305
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 25,
+          "z": 7.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00013148646508510625,
+          "y": -0.001377262420717221,
+          "z": 0.0003686918956000174
+        },
+        "angle": {
+          "x": 0.0000949049524005426,
+          "y": -0.00004163163789263007,
+          "z": 0.000016799815914636906
+        }
+      },
+      {
+        "id": "n1051",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6306,
+          6307,
+          6308,
+          6309,
+          6310,
+          6311
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 22.857142857142858,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000003634139223471969,
+          "y": -0.001134975025188207,
+          "z": 0.00021475390533515996
+        },
+        "angle": {
+          "x": -0.000025973767772983797,
+          "y": -0.00003188590460477972,
+          "z": -0.000007323667376409855
+        }
+      },
+      {
+        "id": "n1052",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6312,
+          6313,
+          6314,
+          6315,
+          6316,
+          6317
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 22.020305089104422,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000023376961494083896,
+          "y": -0.0011094416842644989,
+          "z": 0.00017338279441360142
+        },
+        "angle": {
+          "x": 0.00002992592730484999,
+          "y": -0.000006782781363907075,
+          "z": -0.000019540132171511074
+        }
+      },
+      {
+        "id": "n1053",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6318,
+          6319,
+          6320,
+          6321,
+          6322,
+          6323
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.142857142857142,
+          "y": 20,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004114768346247754,
+          "y": -0.0010747407422859005,
+          "z": 0.0001075582599421794
+        },
+        "angle": {
+          "x": 0.00000926870487691016,
+          "y": -0.00005609613509915275,
+          "z": -0.000004080759920899665
+        }
+      },
+      {
+        "id": "n1054",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6324,
+          6325,
+          6326,
+          6327,
+          6328,
+          6329
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 17.979694910895578,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004060447059720644,
+          "y": -0.0010477488796446011,
+          "z": 0.00013562047375883677
+        },
+        "angle": {
+          "x": -0.000014312029274512172,
+          "y": 0.000001390407913618993,
+          "z": 0.000009980696668638364
+        }
+      },
+      {
+        "id": "n1055",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6330,
+          6331,
+          6332,
+          6333,
+          6334,
+          6335
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 17.142857142857142,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000035196326992189686,
+          "y": -0.0010462325257125185,
+          "z": 0.00014482159362340087
+        },
+        "angle": {
+          "x": 0.0000531276484398205,
+          "y": -0.000026568755294131895,
+          "z": -0.000007052314529718978
+        }
+      },
+      {
+        "id": "n1056",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6336,
+          6337,
+          6338,
+          6339,
+          6340,
+          6341
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 17.979694910895578,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000019340755775707355,
+          "y": -0.0010751053088425438,
+          "z": 0.0002429411801445929
+        },
+        "angle": {
+          "x": -0.000014383407103855209,
+          "y": -0.00005450800615720495,
+          "z": -0.000021929565669200344
+        }
+      },
+      {
+        "id": "n1057",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6342,
+          6343,
+          6344,
+          6345,
+          6346,
+          6347
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.857142857142858,
+          "y": 20,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000012891852751106754,
+          "y": -0.0011125415747531015,
+          "z": 0.0002596222628236186
+        },
+        "angle": {
+          "x": 0.000014052601669984224,
+          "y": 0.000013917471356119586,
+          "z": -0.000005436287249665793
+        }
+      },
+      {
+        "id": "n1058",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6348,
+          6349,
+          6350,
+          6351,
+          6352,
+          6353
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 22.020305089104422,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000004955157872805996,
+          "y": -0.0011381062340092452,
+          "z": 0.0002995966914459061
+        },
+        "angle": {
+          "x": 0.000044157094758880204,
+          "y": -0.00005898634051265407,
+          "z": 0.000006647980634767255
+        }
+      },
+      {
+        "id": "n1059",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6354,
+          6355,
+          6356,
+          6357,
+          6358,
+          6359
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 25,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011825515690436409,
+          "y": -0.0013958970128376217,
+          "z": 0.000532365599862224
+        },
+        "angle": {
+          "x": 0.00007217801451431184,
+          "y": -0.00007554422718843639,
+          "z": -0.000043542650890427925
+        }
+      },
+      {
+        "id": "n1060",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6360,
+          6361,
+          6362,
+          6363,
+          6364,
+          6365
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 20,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00018819642365411302,
+          "y": -0.0012229721949775082,
+          "z": 0.00041595658810101194
+        },
+        "angle": {
+          "x": 0.000010225346127704973,
+          "y": -0.000008033511235694245,
+          "z": -0.000016592691173630766
+        }
+      },
+      {
+        "id": "n1061",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6366,
+          6367,
+          6368,
+          6369,
+          6370,
+          6371
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 20,
+          "z": 22.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00005480095899972232,
+          "y": -0.0012025780682433738,
+          "z": 0.00040455580517051616
+        },
+        "angle": {
+          "x": 0.000016461802762006758,
+          "y": 0.00003045211234170423,
+          "z": -0.000009491902759459178
+        }
+      },
+      {
+        "id": "n1062",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6372,
+          6373,
+          6374,
+          6375,
+          6376,
+          6377
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 22.020305089104422,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00005781768923695531,
+          "y": -0.0012061355232424842,
+          "z": 0.0004244078534299613
+        },
+        "angle": {
+          "x": 0.0000037115541491807528,
+          "y": -0.0001946914238746072,
+          "z": 0.00007010829485877646
+        }
+      },
+      {
+        "id": "n1063",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6378,
+          6379,
+          6380,
+          6381,
+          6382,
+          6383
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 22.857142857142858,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00006510069401098431,
+          "y": -0.0012411427388668971,
+          "z": 0.0004253475108655781
+        },
+        "angle": {
+          "x": -0.000018197844086996915,
+          "y": 0.000024056976292232548,
+          "z": -0.000007230882175658933
+        }
+      },
+      {
+        "id": "n1064",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6384,
+          6385,
+          6386,
+          6387,
+          6388,
+          6389
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 22.020305089104422,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001550224255064069,
+          "y": -0.0012588052272312095,
+          "z": 0.0004168871945084543
+        },
+        "angle": {
+          "x": 0.00003602117125687787,
+          "y": -0.00006564973418420319,
+          "z": -0.00003894695095820216
+        }
+      },
+      {
+        "id": "n1065",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6390,
+          6391,
+          6392,
+          6393,
+          6394,
+          6395
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 20,
+          "z": 17.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00019226913143107513,
+          "y": -0.0012212284540668193,
+          "z": 0.0003782560762462177
+        },
+        "angle": {
+          "x": 0.00001480156835674139,
+          "y": 0.000017661194439841495,
+          "z": -0.000009492073734838208
+        }
+      },
+      {
+        "id": "n1066",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6396,
+          6397,
+          6398,
+          6399,
+          6400,
+          6401
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 17.979694910895578,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00019995665193921496,
+          "y": -0.0012122577921664804,
+          "z": 0.00035860376687035783
+        },
+        "angle": {
+          "x": 0.000006337195745182943,
+          "y": -0.00026201713152237033,
+          "z": 0.00008938918388190704
+        }
+      },
+      {
+        "id": "n1067",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6402,
+          6403,
+          6404,
+          6405,
+          6406,
+          6407
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 17.142857142857142,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00021851491390393674,
+          "y": -0.001188295271500131,
+          "z": 0.0003576002991233509
+        },
+        "angle": {
+          "x": -0.000012469845915876087,
+          "y": 0.000024057300765934765,
+          "z": -0.000011753156653911459
+        }
+      },
+      {
+        "id": "n1068",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6408,
+          6409,
+          6410,
+          6411,
+          6412,
+          6413
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 17.979694910895578,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00010275127431907316,
+          "y": -0.001174635483220472,
+          "z": 0.0003660804037116593
+        },
+        "angle": {
+          "x": 0.000029855230598580807,
+          "y": -0.0001548866948687565,
+          "z": -0.00007501919253600807
+        }
+      },
+      {
+        "id": "n1069",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6414,
+          6415,
+          6416,
+          6417,
+          6418,
+          6419
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 25,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0003058409668547593,
+          "y": -0.0013259160224347113,
+          "z": 0.00025338161441357466
+        },
+        "angle": {
+          "x": 0.00015100695915326338,
+          "y": -0.000046769380176097965,
+          "z": 0.00005835177378850947
+        }
+      },
+      {
+        "id": "n1070",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6420,
+          6421,
+          6422,
+          6423,
+          6424,
+          6425
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.857142857142858,
+          "y": 25,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00015988955374675833,
+          "y": -0.001507971578773976,
+          "z": 0.00039433619153679734
+        },
+        "angle": {
+          "x": 0.00002532301824945261,
+          "y": -0.00005220504950239582,
+          "z": -0.00003619037770006164
+        }
+      },
+      {
+        "id": "n1071",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6426,
+          6427,
+          6428,
+          6429,
+          6430,
+          6431
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 25,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00022108454112262308,
+          "y": -0.0013523296114811428,
+          "z": 0.00037258023468650603
+        },
+        "angle": {
+          "x": 0.00015522909540471074,
+          "y": -0.00005787446072770498,
+          "z": -0.00008211908581482309
+        }
+      },
+      {
+        "id": "n1072",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6432,
+          6433,
+          6434,
+          6435,
+          6436,
+          6437
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 25,
+          "z": 22.857142857142858
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00025958264753574693,
+          "y": -0.0012878605386190125,
+          "z": 0.00027978406010796027
+        },
+        "angle": {
+          "x": -0.000016070730382732356,
+          "y": -0.00004874508958836183,
+          "z": -0.000021555523707647852
+        }
+      },
+      {
+        "id": "n1073",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6438,
+          6439,
+          6440,
+          6441,
+          6442,
+          6443
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 25,
+          "z": 22.020305089104422
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00022321435784502733,
+          "y": -0.001250288688860186,
+          "z": 0.00019754227106399302
+        },
+        "angle": {
+          "x": -0.00003681705210564524,
+          "y": -0.000046368029268821586,
+          "z": -0.000028890359435160712
+        }
+      },
+      {
+        "id": "n1074",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6444,
+          6445,
+          6446,
+          6447,
+          6448,
+          6449
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.142857142857142,
+          "y": 25,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00016668121957522767,
+          "y": -0.0011595820243077192,
+          "z": 0.000177696929070329
+        },
+        "angle": {
+          "x": 0.000025323318179618444,
+          "y": -0.000049042012504439096,
+          "z": -0.000006920560169230072
+        }
+      },
+      {
+        "id": "n1075",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6450,
+          6451,
+          6452,
+          6453,
+          6454,
+          6455
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 25,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011480137963758108,
+          "y": -0.0011479675309253965,
+          "z": 0.00019914383215147684
+        },
+        "angle": {
+          "x": 0.00003699482509391297,
+          "y": -0.00004290278697889911,
+          "z": -0.000011047206913536256
+        }
+      },
+      {
+        "id": "n1076",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6456,
+          6457,
+          6458,
+          6459,
+          6460,
+          6461
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 25,
+          "z": 17.142857142857142
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007646687401439174,
+          "y": -0.0011431571266346011,
+          "z": 0.000276418075325629
+        },
+        "angle": {
+          "x": 0.00006671670837729269,
+          "y": -0.000046868220640310485,
+          "z": -0.00002155564136284703
+        }
+      },
+      {
+        "id": "n1077",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6462,
+          6463,
+          6464,
+          6465,
+          6466,
+          6467
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 25,
+          "z": 17.979694910895578
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00010867545361042003,
+          "y": -0.0012500089487977846,
+          "z": 0.00036618304429473787
+        },
+        "angle": {
+          "x": -0.00031728346635781507,
+          "y": -0.0000546999065659758,
+          "z": -0.0001573201172436843
+        }
+      },
+      {
+        "id": "n1078",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6468,
+          6469,
+          6470,
+          6471,
+          6472,
+          6473
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 22.857142857142858,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00020041017593365172,
+          "y": -0.0011891706210211093,
+          "z": 0.00020069371124019353
+        },
+        "angle": {
+          "x": 0.0001802564338249999,
+          "y": 0.00007520334786148528,
+          "z": -0.00002081476187288016
+        }
+      },
+      {
+        "id": "n1079",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6474,
+          6475,
+          6476,
+          6477,
+          6478,
+          6479
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 22.020305089104422,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0002131763030814083,
+          "y": -0.001140473513015554,
+          "z": 0.00020178206495924972
+        },
+        "angle": {
+          "x": 0.00008848740953077295,
+          "y": 0.000037191389510816745,
+          "z": -0.000019556421131092052
+        }
+      },
+      {
+        "id": "n1080",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6480,
+          6481,
+          6482,
+          6483,
+          6484,
+          6485
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.142857142857142,
+          "y": 20,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00023436957659727256,
+          "y": -0.0011165440599537869,
+          "z": 0.00005413361575902582
+        },
+        "angle": {
+          "x": 0.00002189036912355664,
+          "y": -0.00012358807859086306,
+          "z": -0.000005401079461671005
+        }
+      },
+      {
+        "id": "n1081",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6486,
+          6487,
+          6488,
+          6489,
+          6490,
+          6491
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 17.979694910895578,
+          "y": 17.979694910895578,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00023713143589208877,
+          "y": -0.0011041910194414333,
+          "z": 0.0001133315588187608
+        },
+        "angle": {
+          "x": -0.00003823646783461893,
+          "y": 0.000021571011578573262,
+          "z": 0.000004720908482960108
+        }
+      },
+      {
+        "id": "n1082",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6492,
+          6493,
+          6494,
+          6495,
+          6496,
+          6497
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 17.142857142857142,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00024002693026558422,
+          "y": -0.0011251903915436353,
+          "z": 0.00010174926213207451
+        },
+        "angle": {
+          "x": 0.00016800970294876552,
+          "y": -0.00006385895487743053,
+          "z": -0.00001961897841217516
+        }
+      },
+      {
+        "id": "n1083",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6498,
+          6499,
+          6500,
+          6501,
+          6502,
+          6503
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 17.979694910895578,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00022512437188914203,
+          "y": -0.0011708284869999422,
+          "z": 0.0003713607959741051
+        },
+        "angle": {
+          "x": -0.00044912549762279847,
+          "y": -0.00031948467329706516,
+          "z": -0.000020049415807003254
+        }
+      },
+      {
+        "id": "n1084",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6504,
+          6505,
+          6506,
+          6507,
+          6508,
+          6509
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.857142857142858,
+          "y": 20,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0002012934068336845,
+          "y": -0.001193570431551863,
+          "z": -0.0002686531474541267
+        },
+        "angle": {
+          "x": -0.00011717191118025567,
+          "y": 0.00048192221758632767,
+          "z": -0.000005896382422605335
+        }
+      },
+      {
+        "id": "n1085",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6510,
+          6511,
+          6512,
+          6513,
+          6514,
+          6515
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 22.020305089104422,
+          "y": 22.020305089104422,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00020226098395319757,
+          "y": -0.0012075881959603826,
+          "z": -0.00010208547983432956
+        },
+        "angle": {
+          "x": 0.000024588016784029877,
+          "y": 0.00013968330784955445,
+          "z": 0.000010076281237263326
+        }
+      }
+    ],
+    "edges": [
+      {
+        "id": "e0",
+        "source": 4,
+        "target": 5,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1",
+        "source": 5,
+        "target": 6,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e2",
+        "source": 6,
+        "target": 7,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e3",
+        "source": 7,
+        "target": 8,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e4",
+        "source": 8,
+        "target": 9,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e5",
+        "source": 9,
+        "target": 10,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e6",
+        "source": 10,
+        "target": 11,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e7",
+        "source": 11,
+        "target": 4,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e8",
+        "source": 0,
+        "target": 5,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e9",
+        "source": 1,
+        "target": 7,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e10",
+        "source": 2,
+        "target": 9,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e11",
+        "source": 3,
+        "target": 11,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e12",
+        "source": 15,
+        "target": 16,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1001.3475341796875
+      },
+      {
+        "id": "e13",
+        "source": 16,
+        "target": 17,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 136.64244079589844
+      },
+      {
+        "id": "e14",
+        "source": 17,
+        "target": 18,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 133.79733276367188
+      },
+      {
+        "id": "e15",
+        "source": 18,
+        "target": 19,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -939.5859985351562
+      },
+      {
+        "id": "e16",
+        "source": 19,
+        "target": 20,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -936.5052490234375
+      },
+      {
+        "id": "e17",
+        "source": 20,
+        "target": 21,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 200.92037963867188
+      },
+      {
+        "id": "e18",
+        "source": 21,
+        "target": 22,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 73.46440887451172
+      },
+      {
+        "id": "e19",
+        "source": 22,
+        "target": 15,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -998.0792846679688
+      },
+      {
+        "id": "e20",
+        "source": 14,
+        "target": 16,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -263.42437744140625
+      },
+      {
+        "id": "e21",
+        "source": 12,
+        "target": 18,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1304.521484375
+      },
+      {
+        "id": "e22",
+        "source": 13,
+        "target": 20,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -53.5609130859375
+      },
+      {
+        "id": "e23",
+        "source": 0,
+        "target": 22,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1466.6005859375
+      },
+      {
+        "id": "e24",
+        "source": 26,
+        "target": 27,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -2.8087847232818604
+      },
+      {
+        "id": "e25",
+        "source": 27,
+        "target": 28,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 74.30078125
+      },
+      {
+        "id": "e26",
+        "source": 28,
+        "target": 29,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 51.593204498291016
+      },
+      {
+        "id": "e27",
+        "source": 29,
+        "target": 30,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -8.40219783782959
+      },
+      {
+        "id": "e28",
+        "source": 30,
+        "target": 31,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 14.170991897583008
+      },
+      {
+        "id": "e29",
+        "source": 31,
+        "target": 32,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 23.749845504760742
+      },
+      {
+        "id": "e30",
+        "source": 32,
+        "target": 33,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 16.13898277282715
+      },
+      {
+        "id": "e31",
+        "source": 33,
+        "target": 26,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -18.704586029052734
+      },
+      {
+        "id": "e32",
+        "source": 23,
+        "target": 31,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 14.449507713317871
+      },
+      {
+        "id": "e33",
+        "source": 24,
+        "target": 33,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -33.3013916015625
+      },
+      {
+        "id": "e34",
+        "source": 12,
+        "target": 27,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 79.80635070800781
+      },
+      {
+        "id": "e35",
+        "source": 25,
+        "target": 29,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -59.42049789428711
+      },
+      {
+        "id": "e36",
+        "source": 36,
+        "target": 37,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -508.1236267089844
+      },
+      {
+        "id": "e37",
+        "source": 37,
+        "target": 38,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -466.51611328125
+      },
+      {
+        "id": "e38",
+        "source": 38,
+        "target": 39,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 499.35357666015625
+      },
+      {
+        "id": "e39",
+        "source": 39,
+        "target": 40,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -537.4116821289062
+      },
+      {
+        "id": "e40",
+        "source": 40,
+        "target": 41,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -443.8288879394531
+      },
+      {
+        "id": "e41",
+        "source": 41,
+        "target": 42,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -373.2995300292969
+      },
+      {
+        "id": "e42",
+        "source": 42,
+        "target": 43,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 462.1101379394531
+      },
+      {
+        "id": "e43",
+        "source": 43,
+        "target": 36,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -530.1146850585938
+      },
+      {
+        "id": "e44",
+        "source": 35,
+        "target": 41,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 211.11126708984375
+      },
+      {
+        "id": "e45",
+        "source": 2,
+        "target": 43,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -829.5181884765625
+      },
+      {
+        "id": "e46",
+        "source": 34,
+        "target": 37,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 219.197265625
+      },
+      {
+        "id": "e47",
+        "source": 23,
+        "target": 39,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -866.0997924804688
+      },
+      {
+        "id": "e48",
+        "source": 44,
+        "target": 45,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 208.8540802001953
+      },
+      {
+        "id": "e49",
+        "source": 45,
+        "target": 46,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -721.6866455078125
+      },
+      {
+        "id": "e50",
+        "source": 46,
+        "target": 47,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -708.22216796875
+      },
+      {
+        "id": "e51",
+        "source": 47,
+        "target": 48,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -139.37606811523438
+      },
+      {
+        "id": "e52",
+        "source": 48,
+        "target": 49,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 203.80503845214844
+      },
+      {
+        "id": "e53",
+        "source": 49,
+        "target": 50,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -584.123779296875
+      },
+      {
+        "id": "e54",
+        "source": 50,
+        "target": 51,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -537.8975830078125
+      },
+      {
+        "id": "e55",
+        "source": 51,
+        "target": 44,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -97.25558471679688
+      },
+      {
+        "id": "e56",
+        "source": 24,
+        "target": 49,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -927.1846313476562
+      },
+      {
+        "id": "e57",
+        "source": 34,
+        "target": 51,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 116.32402038574219
+      },
+      {
+        "id": "e58",
+        "source": 1,
+        "target": 45,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1015.3157348632812
+      },
+      {
+        "id": "e59",
+        "source": 13,
+        "target": 47,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 196.95199584960938
+      },
+      {
+        "id": "e60",
+        "source": 52,
+        "target": 53,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 142.5419921875
+      },
+      {
+        "id": "e61",
+        "source": 53,
+        "target": 54,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -982.2471923828125
+      },
+      {
+        "id": "e62",
+        "source": 54,
+        "target": 55,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -980.4102783203125
+      },
+      {
+        "id": "e63",
+        "source": 55,
+        "target": 56,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 175.5584716796875
+      },
+      {
+        "id": "e64",
+        "source": 56,
+        "target": 57,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 126.92952728271484
+      },
+      {
+        "id": "e65",
+        "source": 57,
+        "target": 58,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1064.1241455078125
+      },
+      {
+        "id": "e66",
+        "source": 58,
+        "target": 59,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1072.7470703125
+      },
+      {
+        "id": "e67",
+        "source": 59,
+        "target": 52,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 116.0664291381836
+      },
+      {
+        "id": "e68",
+        "source": 14,
+        "target": 57,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -388.406494140625
+      },
+      {
+        "id": "e69",
+        "source": 3,
+        "target": 55,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1170.0252685546875
+      },
+      {
+        "id": "e70",
+        "source": 35,
+        "target": 53,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -156.6512908935547
+      },
+      {
+        "id": "e71",
+        "source": 25,
+        "target": 59,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1466.4556884765625
+      },
+      {
+        "id": "e72",
+        "source": 63,
+        "target": 64,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e73",
+        "source": 64,
+        "target": 65,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e74",
+        "source": 65,
+        "target": 66,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e75",
+        "source": 66,
+        "target": 67,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e76",
+        "source": 67,
+        "target": 68,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e77",
+        "source": 68,
+        "target": 69,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e78",
+        "source": 69,
+        "target": 70,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e79",
+        "source": 70,
+        "target": 63,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e80",
+        "source": 60,
+        "target": 64,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e81",
+        "source": 3,
+        "target": 66,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e82",
+        "source": 61,
+        "target": 68,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e83",
+        "source": 62,
+        "target": 70,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e84",
+        "source": 73,
+        "target": 74,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -968.1875
+      },
+      {
+        "id": "e85",
+        "source": 74,
+        "target": 75,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 67.04911041259766
+      },
+      {
+        "id": "e86",
+        "source": 75,
+        "target": 76,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 48.36192321777344
+      },
+      {
+        "id": "e87",
+        "source": 76,
+        "target": 77,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -988.177490234375
+      },
+      {
+        "id": "e88",
+        "source": 77,
+        "target": 78,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -981.2072143554688
+      },
+      {
+        "id": "e89",
+        "source": 78,
+        "target": 79,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 71.08743286132812
+      },
+      {
+        "id": "e90",
+        "source": 79,
+        "target": 80,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 40.52730178833008
+      },
+      {
+        "id": "e91",
+        "source": 80,
+        "target": 73,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -964.2051391601562
+      },
+      {
+        "id": "e92",
+        "source": 72,
+        "target": 74,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -321.0314636230469
+      },
+      {
+        "id": "e93",
+        "source": 71,
+        "target": 76,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1397.18701171875
+      },
+      {
+        "id": "e94",
+        "source": 14,
+        "target": 78,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -302.02044677734375
+      },
+      {
+        "id": "e95",
+        "source": 60,
+        "target": 80,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1345.8375244140625
+      },
+      {
+        "id": "e96",
+        "source": 83,
+        "target": 84,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -5.754022121429443
+      },
+      {
+        "id": "e97",
+        "source": 84,
+        "target": 85,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 54.91940689086914
+      },
+      {
+        "id": "e98",
+        "source": 85,
+        "target": 86,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 30.01833152770996
+      },
+      {
+        "id": "e99",
+        "source": 86,
+        "target": 87,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 36.995933532714844
+      },
+      {
+        "id": "e100",
+        "source": 87,
+        "target": 88,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 6.050780296325684
+      },
+      {
+        "id": "e101",
+        "source": 88,
+        "target": 89,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 14.22030258178711
+      },
+      {
+        "id": "e102",
+        "source": 89,
+        "target": 90,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -0.34287557005882263
+      },
+      {
+        "id": "e103",
+        "source": 90,
+        "target": 83,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 72.36221313476562
+      },
+      {
+        "id": "e104",
+        "source": 81,
+        "target": 88,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 9.528212547302246
+      },
+      {
+        "id": "e105",
+        "source": 25,
+        "target": 90,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 66.99337005615234
+      },
+      {
+        "id": "e106",
+        "source": 71,
+        "target": 84,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 56.84755325317383
+      },
+      {
+        "id": "e107",
+        "source": 82,
+        "target": 86,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 4.715447902679443
+      },
+      {
+        "id": "e108",
+        "source": 92,
+        "target": 93,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -526.2236328125
+      },
+      {
+        "id": "e109",
+        "source": 93,
+        "target": 94,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -489.0600280761719
+      },
+      {
+        "id": "e110",
+        "source": 94,
+        "target": 95,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 471.6403503417969
+      },
+      {
+        "id": "e111",
+        "source": 95,
+        "target": 96,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -494.7138366699219
+      },
+      {
+        "id": "e112",
+        "source": 96,
+        "target": 97,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -430.42413330078125
+      },
+      {
+        "id": "e113",
+        "source": 97,
+        "target": 98,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -408.80877685546875
+      },
+      {
+        "id": "e114",
+        "source": 98,
+        "target": 99,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 472.7489318847656
+      },
+      {
+        "id": "e115",
+        "source": 99,
+        "target": 92,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -549.8567504882812
+      },
+      {
+        "id": "e116",
+        "source": 91,
+        "target": 97,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 171.6821746826172
+      },
+      {
+        "id": "e117",
+        "source": 61,
+        "target": 99,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -853.3726806640625
+      },
+      {
+        "id": "e118",
+        "source": 35,
+        "target": 93,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 216.357421875
+      },
+      {
+        "id": "e119",
+        "source": 81,
+        "target": 95,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -796.87451171875
+      },
+      {
+        "id": "e120",
+        "source": 25,
+        "target": 53,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1184.8734130859375
+      },
+      {
+        "id": "e121",
+        "source": 35,
+        "target": 55,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -87.55390930175781
+      },
+      {
+        "id": "e122",
+        "source": 3,
+        "target": 57,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1376.4832763671875
+      },
+      {
+        "id": "e123",
+        "source": 14,
+        "target": 59,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -429.24786376953125
+      },
+      {
+        "id": "e124",
+        "source": 100,
+        "target": 101,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 151.55299377441406
+      },
+      {
+        "id": "e125",
+        "source": 101,
+        "target": 102,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1014.6629028320312
+      },
+      {
+        "id": "e126",
+        "source": 102,
+        "target": 103,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -990.71826171875
+      },
+      {
+        "id": "e127",
+        "source": 103,
+        "target": 104,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 164.93966674804688
+      },
+      {
+        "id": "e128",
+        "source": 104,
+        "target": 105,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 92.00184631347656
+      },
+      {
+        "id": "e129",
+        "source": 105,
+        "target": 106,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1053.05419921875
+      },
+      {
+        "id": "e130",
+        "source": 106,
+        "target": 107,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1038.16455078125
+      },
+      {
+        "id": "e131",
+        "source": 107,
+        "target": 100,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 124.06844329833984
+      },
+      {
+        "id": "e132",
+        "source": 72,
+        "target": 105,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -476.2062072753906
+      },
+      {
+        "id": "e133",
+        "source": 62,
+        "target": 103,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1168.2501220703125
+      },
+      {
+        "id": "e134",
+        "source": 91,
+        "target": 101,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -173.37371826171875
+      },
+      {
+        "id": "e135",
+        "source": 82,
+        "target": 107,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1346.488037109375
+      },
+      {
+        "id": "e136",
+        "source": 111,
+        "target": 112,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e137",
+        "source": 112,
+        "target": 113,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e138",
+        "source": 113,
+        "target": 114,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e139",
+        "source": 114,
+        "target": 115,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e140",
+        "source": 115,
+        "target": 116,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e141",
+        "source": 116,
+        "target": 117,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e142",
+        "source": 117,
+        "target": 118,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e143",
+        "source": 118,
+        "target": 111,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e144",
+        "source": 108,
+        "target": 112,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e145",
+        "source": 62,
+        "target": 114,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e146",
+        "source": 109,
+        "target": 116,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e147",
+        "source": 110,
+        "target": 118,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e148",
+        "source": 121,
+        "target": 122,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -916.7168579101562
+      },
+      {
+        "id": "e149",
+        "source": 122,
+        "target": 123,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 151.8472137451172
+      },
+      {
+        "id": "e150",
+        "source": 123,
+        "target": 124,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 110.53646087646484
+      },
+      {
+        "id": "e151",
+        "source": 124,
+        "target": 125,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1007.824951171875
+      },
+      {
+        "id": "e152",
+        "source": 125,
+        "target": 126,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1001.494140625
+      },
+      {
+        "id": "e153",
+        "source": 126,
+        "target": 127,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 101.29829406738281
+      },
+      {
+        "id": "e154",
+        "source": 127,
+        "target": 128,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 172.34918212890625
+      },
+      {
+        "id": "e155",
+        "source": 128,
+        "target": 121,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -910.963134765625
+      },
+      {
+        "id": "e156",
+        "source": 120,
+        "target": 122,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -204.44886779785156
+      },
+      {
+        "id": "e157",
+        "source": 119,
+        "target": 124,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1425.2041015625
+      },
+      {
+        "id": "e158",
+        "source": 72,
+        "target": 126,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -357.510498046875
+      },
+      {
+        "id": "e159",
+        "source": 108,
+        "target": 128,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1156.9849853515625
+      },
+      {
+        "id": "e160",
+        "source": 131,
+        "target": 132,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 19.166807174682617
+      },
+      {
+        "id": "e161",
+        "source": 132,
+        "target": 133,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -10.035323143005371
+      },
+      {
+        "id": "e162",
+        "source": 133,
+        "target": 134,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -18.59193992614746
+      },
+      {
+        "id": "e163",
+        "source": 134,
+        "target": 135,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 33.90653991699219
+      },
+      {
+        "id": "e164",
+        "source": 135,
+        "target": 136,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 8.36910629272461
+      },
+      {
+        "id": "e165",
+        "source": 136,
+        "target": 137,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -27.074792861938477
+      },
+      {
+        "id": "e166",
+        "source": 137,
+        "target": 138,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -30.61324691772461
+      },
+      {
+        "id": "e167",
+        "source": 138,
+        "target": 131,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 104.80630493164062
+      },
+      {
+        "id": "e168",
+        "source": 129,
+        "target": 136,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -33.99329376220703
+      },
+      {
+        "id": "e169",
+        "source": 82,
+        "target": 138,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 127.68522644042969
+      },
+      {
+        "id": "e170",
+        "source": 119,
+        "target": 132,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -30.66581153869629
+      },
+      {
+        "id": "e171",
+        "source": 130,
+        "target": 134,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 51.8364143371582
+      },
+      {
+        "id": "e172",
+        "source": 140,
+        "target": 141,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -565.8873901367188
+      },
+      {
+        "id": "e173",
+        "source": 141,
+        "target": 142,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -444.44097900390625
+      },
+      {
+        "id": "e174",
+        "source": 142,
+        "target": 143,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 482.25579833984375
+      },
+      {
+        "id": "e175",
+        "source": 143,
+        "target": 144,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -541.248291015625
+      },
+      {
+        "id": "e176",
+        "source": 144,
+        "target": 145,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -467.4187316894531
+      },
+      {
+        "id": "e177",
+        "source": 145,
+        "target": 146,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -385.072509765625
+      },
+      {
+        "id": "e178",
+        "source": 146,
+        "target": 147,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 495.3196716308594
+      },
+      {
+        "id": "e179",
+        "source": 147,
+        "target": 140,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -587.996337890625
+      },
+      {
+        "id": "e180",
+        "source": 139,
+        "target": 145,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 234.69598388671875
+      },
+      {
+        "id": "e181",
+        "source": 109,
+        "target": 147,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -909.7021484375
+      },
+      {
+        "id": "e182",
+        "source": 91,
+        "target": 141,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 301.0194396972656
+      },
+      {
+        "id": "e183",
+        "source": 129,
+        "target": 143,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -856.183349609375
+      },
+      {
+        "id": "e184",
+        "source": 82,
+        "target": 101,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1266.0977783203125
+      },
+      {
+        "id": "e185",
+        "source": 91,
+        "target": 103,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -86.05962371826172
+      },
+      {
+        "id": "e186",
+        "source": 62,
+        "target": 105,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1425.689453125
+      },
+      {
+        "id": "e187",
+        "source": 72,
+        "target": 107,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.8281555175781
+      },
+      {
+        "id": "e188",
+        "source": 148,
+        "target": 149,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -194.71359252929688
+      },
+      {
+        "id": "e189",
+        "source": 149,
+        "target": 150,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -648.4422607421875
+      },
+      {
+        "id": "e190",
+        "source": 150,
+        "target": 151,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -637.3865966796875
+      },
+      {
+        "id": "e191",
+        "source": 151,
+        "target": 152,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 143.58091735839844
+      },
+      {
+        "id": "e192",
+        "source": 152,
+        "target": 153,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -193.63475036621094
+      },
+      {
+        "id": "e193",
+        "source": 153,
+        "target": 154,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -575.30859375
+      },
+      {
+        "id": "e194",
+        "source": 154,
+        "target": 155,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -607.5311279296875
+      },
+      {
+        "id": "e195",
+        "source": 155,
+        "target": 148,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 168.0299835205078
+      },
+      {
+        "id": "e196",
+        "source": 120,
+        "target": 153,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 54.72142028808594
+      },
+      {
+        "id": "e197",
+        "source": 110,
+        "target": 151,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -917.3399047851562
+      },
+      {
+        "id": "e198",
+        "source": 139,
+        "target": 149,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 124.55244445800781
+      },
+      {
+        "id": "e199",
+        "source": 130,
+        "target": 155,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -937.6427001953125
+      },
+      {
+        "id": "e200",
+        "source": 156,
+        "target": 157,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -9.630111694335938
+      },
+      {
+        "id": "e201",
+        "source": 157,
+        "target": 158,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 10.662007331848145
+      },
+      {
+        "id": "e202",
+        "source": 158,
+        "target": 159,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 9.384209632873535
+      },
+      {
+        "id": "e203",
+        "source": 159,
+        "target": 160,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 27.217432022094727
+      },
+      {
+        "id": "e204",
+        "source": 160,
+        "target": 161,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -18.97564125061035
+      },
+      {
+        "id": "e205",
+        "source": 161,
+        "target": 162,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -31.861225128173828
+      },
+      {
+        "id": "e206",
+        "source": 162,
+        "target": 163,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -23.840681076049805
+      },
+      {
+        "id": "e207",
+        "source": 163,
+        "target": 156,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 77.00715637207031
+      },
+      {
+        "id": "e208",
+        "source": 12,
+        "target": 157,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 9.958255767822266
+      },
+      {
+        "id": "e209",
+        "source": 24,
+        "target": 159,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 11.098714828491211
+      },
+      {
+        "id": "e210",
+        "source": 23,
+        "target": 161,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -20.7071590423584
+      },
+      {
+        "id": "e211",
+        "source": 25,
+        "target": 163,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 90.98582458496094
+      },
+      {
+        "id": "e212",
+        "source": 167,
+        "target": 168,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -698.0209350585938
+      },
+      {
+        "id": "e213",
+        "source": 168,
+        "target": 169,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 112.02079010009766
+      },
+      {
+        "id": "e214",
+        "source": 169,
+        "target": 170,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 126.9244384765625
+      },
+      {
+        "id": "e215",
+        "source": 170,
+        "target": 171,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -660.4613647460938
+      },
+      {
+        "id": "e216",
+        "source": 171,
+        "target": 172,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -666.2570190429688
+      },
+      {
+        "id": "e217",
+        "source": 172,
+        "target": 173,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 120.3829574584961
+      },
+      {
+        "id": "e218",
+        "source": 173,
+        "target": 174,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 72.35502624511719
+      },
+      {
+        "id": "e219",
+        "source": 174,
+        "target": 167,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -703.7151489257812
+      },
+      {
+        "id": "e220",
+        "source": 166,
+        "target": 168,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -156.3787078857422
+      },
+      {
+        "id": "e221",
+        "source": 164,
+        "target": 170,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -846.7634887695312
+      },
+      {
+        "id": "e222",
+        "source": 165,
+        "target": 172,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -151.9512939453125
+      },
+      {
+        "id": "e223",
+        "source": 12,
+        "target": 174,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1021.0897827148438
+      },
+      {
+        "id": "e224",
+        "source": 178,
+        "target": 179,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 27.423656463623047
+      },
+      {
+        "id": "e225",
+        "source": 179,
+        "target": 180,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 50.07740020751953
+      },
+      {
+        "id": "e226",
+        "source": 180,
+        "target": 181,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 20.983522415161133
+      },
+      {
+        "id": "e227",
+        "source": 181,
+        "target": 182,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 44.39874267578125
+      },
+      {
+        "id": "e228",
+        "source": 182,
+        "target": 183,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 62.62155532836914
+      },
+      {
+        "id": "e229",
+        "source": 183,
+        "target": 184,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -12.141488075256348
+      },
+      {
+        "id": "e230",
+        "source": 184,
+        "target": 185,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -37.359561920166016
+      },
+      {
+        "id": "e231",
+        "source": 185,
+        "target": 178,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -8.053632736206055
+      },
+      {
+        "id": "e232",
+        "source": 175,
+        "target": 183,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -59.72105407714844
+      },
+      {
+        "id": "e233",
+        "source": 176,
+        "target": 185,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 42.514007568359375
+      },
+      {
+        "id": "e234",
+        "source": 164,
+        "target": 179,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 33.32312774658203
+      },
+      {
+        "id": "e235",
+        "source": 177,
+        "target": 181,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 27.508350372314453
+      },
+      {
+        "id": "e236",
+        "source": 188,
+        "target": 189,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -242.2109375
+      },
+      {
+        "id": "e237",
+        "source": 189,
+        "target": 190,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -225.10284423828125
+      },
+      {
+        "id": "e238",
+        "source": 190,
+        "target": 191,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 309.7926025390625
+      },
+      {
+        "id": "e239",
+        "source": 191,
+        "target": 192,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -455.3436279296875
+      },
+      {
+        "id": "e240",
+        "source": 192,
+        "target": 193,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -380.8951110839844
+      },
+      {
+        "id": "e241",
+        "source": 193,
+        "target": 194,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -190.75180053710938
+      },
+      {
+        "id": "e242",
+        "source": 194,
+        "target": 195,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 304.4538269042969
+      },
+      {
+        "id": "e243",
+        "source": 195,
+        "target": 188,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -298.9275817871094
+      },
+      {
+        "id": "e244",
+        "source": 187,
+        "target": 193,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 283.84197998046875
+      },
+      {
+        "id": "e245",
+        "source": 23,
+        "target": 195,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -509.6252136230469
+      },
+      {
+        "id": "e246",
+        "source": 186,
+        "target": 189,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 102.44270324707031
+      },
+      {
+        "id": "e247",
+        "source": 175,
+        "target": 191,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -665.0703125
+      },
+      {
+        "id": "e248",
+        "source": 196,
+        "target": 197,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 126.83689880371094
+      },
+      {
+        "id": "e249",
+        "source": 197,
+        "target": 198,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -348.0708923339844
+      },
+      {
+        "id": "e250",
+        "source": 198,
+        "target": 199,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -310.2270812988281
+      },
+      {
+        "id": "e251",
+        "source": 199,
+        "target": 200,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -116.37885284423828
+      },
+      {
+        "id": "e252",
+        "source": 200,
+        "target": 201,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 117.88990020751953
+      },
+      {
+        "id": "e253",
+        "source": 201,
+        "target": 202,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -371.14337158203125
+      },
+      {
+        "id": "e254",
+        "source": 202,
+        "target": 203,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -360.9705810546875
+      },
+      {
+        "id": "e255",
+        "source": 203,
+        "target": 196,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -102.27294158935547
+      },
+      {
+        "id": "e256",
+        "source": 176,
+        "target": 201,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -589.2064819335938
+      },
+      {
+        "id": "e257",
+        "source": 186,
+        "target": 203,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 54.36453628540039
+      },
+      {
+        "id": "e258",
+        "source": 24,
+        "target": 197,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -577.8534545898438
+      },
+      {
+        "id": "e259",
+        "source": 165,
+        "target": 199,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -12.085752487182617
+      },
+      {
+        "id": "e260",
+        "source": 204,
+        "target": 205,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 148.88565063476562
+      },
+      {
+        "id": "e261",
+        "source": 205,
+        "target": 206,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -688.1940307617188
+      },
+      {
+        "id": "e262",
+        "source": 206,
+        "target": 207,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -712.9887084960938
+      },
+      {
+        "id": "e263",
+        "source": 207,
+        "target": 208,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 104.4649429321289
+      },
+      {
+        "id": "e264",
+        "source": 208,
+        "target": 209,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 97.50242614746094
+      },
+      {
+        "id": "e265",
+        "source": 209,
+        "target": 210,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -710.5076293945312
+      },
+      {
+        "id": "e266",
+        "source": 210,
+        "target": 211,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -736.0828247070312
+      },
+      {
+        "id": "e267",
+        "source": 211,
+        "target": 204,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 107.19397735595703
+      },
+      {
+        "id": "e268",
+        "source": 166,
+        "target": 209,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -142.66119384765625
+      },
+      {
+        "id": "e269",
+        "source": 25,
+        "target": 207,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1001.5975952148438
+      },
+      {
+        "id": "e270",
+        "source": 187,
+        "target": 205,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 57.46455764770508
+      },
+      {
+        "id": "e271",
+        "source": 177,
+        "target": 211,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1054.9307861328125
+      },
+      {
+        "id": "e272",
+        "source": 83,
+        "target": 212,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -45.15087127685547
+      },
+      {
+        "id": "e273",
+        "source": 212,
+        "target": 213,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 48.02633285522461
+      },
+      {
+        "id": "e274",
+        "source": 213,
+        "target": 214,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 37.44637680053711
+      },
+      {
+        "id": "e275",
+        "source": 214,
+        "target": 87,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 41.0735969543457
+      },
+      {
+        "id": "e276",
+        "source": 87,
+        "target": 215,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -27.41108512878418
+      },
+      {
+        "id": "e277",
+        "source": 215,
+        "target": 216,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 3.537058115005493
+      },
+      {
+        "id": "e278",
+        "source": 216,
+        "target": 217,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 3.8306736946105957
+      },
+      {
+        "id": "e279",
+        "source": 217,
+        "target": 83,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 63.8839225769043
+      },
+      {
+        "id": "e280",
+        "source": 71,
+        "target": 212,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 77.54525756835938
+      },
+      {
+        "id": "e281",
+        "source": 25,
+        "target": 214,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -5.582492828369141
+      },
+      {
+        "id": "e282",
+        "source": 81,
+        "target": 215,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 20.861818313598633
+      },
+      {
+        "id": "e283",
+        "source": 82,
+        "target": 217,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 48.84150314331055
+      },
+      {
+        "id": "e284",
+        "source": 220,
+        "target": 221,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -662.8433837890625
+      },
+      {
+        "id": "e285",
+        "source": 221,
+        "target": 222,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 78.88994598388672
+      },
+      {
+        "id": "e286",
+        "source": 222,
+        "target": 223,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 57.62065887451172
+      },
+      {
+        "id": "e287",
+        "source": 223,
+        "target": 224,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -665.1240234375
+      },
+      {
+        "id": "e288",
+        "source": 224,
+        "target": 225,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -669.4240112304688
+      },
+      {
+        "id": "e289",
+        "source": 225,
+        "target": 226,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 72.45903778076172
+      },
+      {
+        "id": "e290",
+        "source": 226,
+        "target": 227,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 53.93299102783203
+      },
+      {
+        "id": "e291",
+        "source": 227,
+        "target": 220,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -668.12158203125
+      },
+      {
+        "id": "e292",
+        "source": 219,
+        "target": 221,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -125.32903289794922
+      },
+      {
+        "id": "e293",
+        "source": 218,
+        "target": 223,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -946.1304321289062
+      },
+      {
+        "id": "e294",
+        "source": 166,
+        "target": 225,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -168.3181915283203
+      },
+      {
+        "id": "e295",
+        "source": 71,
+        "target": 227,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -976.5812377929688
+      },
+      {
+        "id": "e296",
+        "source": 230,
+        "target": 231,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 22.291606903076172
+      },
+      {
+        "id": "e297",
+        "source": 231,
+        "target": 232,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 36.54357147216797
+      },
+      {
+        "id": "e298",
+        "source": 232,
+        "target": 233,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 3.9735634326934814
+      },
+      {
+        "id": "e299",
+        "source": 233,
+        "target": 234,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 92.15438842773438
+      },
+      {
+        "id": "e300",
+        "source": 234,
+        "target": 235,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 64.84071350097656
+      },
+      {
+        "id": "e301",
+        "source": 235,
+        "target": 236,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -28.340087890625
+      },
+      {
+        "id": "e302",
+        "source": 236,
+        "target": 237,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -52.28632736206055
+      },
+      {
+        "id": "e303",
+        "source": 237,
+        "target": 230,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 85.80773162841797
+      },
+      {
+        "id": "e304",
+        "source": 228,
+        "target": 235,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -76.51551818847656
+      },
+      {
+        "id": "e305",
+        "source": 177,
+        "target": 237,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 141.69894409179688
+      },
+      {
+        "id": "e306",
+        "source": 218,
+        "target": 231,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 17.32894515991211
+      },
+      {
+        "id": "e307",
+        "source": 229,
+        "target": 233,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 86.46990966796875
+      },
+      {
+        "id": "e308",
+        "source": 239,
+        "target": 240,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -206.17495727539062
+      },
+      {
+        "id": "e309",
+        "source": 240,
+        "target": 241,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -295.96099853515625
+      },
+      {
+        "id": "e310",
+        "source": 241,
+        "target": 242,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 332.73687744140625
+      },
+      {
+        "id": "e311",
+        "source": 242,
+        "target": 243,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -363.1051940917969
+      },
+      {
+        "id": "e312",
+        "source": 243,
+        "target": 244,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -321.70849609375
+      },
+      {
+        "id": "e313",
+        "source": 244,
+        "target": 245,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -272.78564453125
+      },
+      {
+        "id": "e314",
+        "source": 245,
+        "target": 246,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 317.3236083984375
+      },
+      {
+        "id": "e315",
+        "source": 246,
+        "target": 239,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -229.48684692382812
+      },
+      {
+        "id": "e316",
+        "source": 238,
+        "target": 244,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 153.6824493408203
+      },
+      {
+        "id": "e317",
+        "source": 81,
+        "target": 246,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -438.2615051269531
+      },
+      {
+        "id": "e318",
+        "source": 187,
+        "target": 240,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 9.161810874938965
+      },
+      {
+        "id": "e319",
+        "source": 228,
+        "target": 242,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -580.3115234375
+      },
+      {
+        "id": "e320",
+        "source": 177,
+        "target": 205,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -702.7929077148438
+      },
+      {
+        "id": "e321",
+        "source": 187,
+        "target": 207,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -238.0967254638672
+      },
+      {
+        "id": "e322",
+        "source": 25,
+        "target": 209,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -821.3101196289062
+      },
+      {
+        "id": "e323",
+        "source": 166,
+        "target": 211,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -323.648681640625
+      },
+      {
+        "id": "e324",
+        "source": 247,
+        "target": 248,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 155.28958129882812
+      },
+      {
+        "id": "e325",
+        "source": 248,
+        "target": 249,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -684.8584594726562
+      },
+      {
+        "id": "e326",
+        "source": 249,
+        "target": 250,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -698.1493530273438
+      },
+      {
+        "id": "e327",
+        "source": 250,
+        "target": 251,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 99.84855651855469
+      },
+      {
+        "id": "e328",
+        "source": 251,
+        "target": 252,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 97.63618469238281
+      },
+      {
+        "id": "e329",
+        "source": 252,
+        "target": 253,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -723.19970703125
+      },
+      {
+        "id": "e330",
+        "source": 253,
+        "target": 254,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -730.8602905273438
+      },
+      {
+        "id": "e331",
+        "source": 254,
+        "target": 247,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 118.34686279296875
+      },
+      {
+        "id": "e332",
+        "source": 219,
+        "target": 252,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -212.5779571533203
+      },
+      {
+        "id": "e333",
+        "source": 82,
+        "target": 250,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -910.6188354492188
+      },
+      {
+        "id": "e334",
+        "source": 238,
+        "target": 248,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 10.110588073730469
+      },
+      {
+        "id": "e335",
+        "source": 229,
+        "target": 254,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -955.0569458007812
+      },
+      {
+        "id": "e336",
+        "source": 131,
+        "target": 255,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -44.91609191894531
+      },
+      {
+        "id": "e337",
+        "source": 255,
+        "target": 256,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 67.01385498046875
+      },
+      {
+        "id": "e338",
+        "source": 256,
+        "target": 257,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 56.78757858276367
+      },
+      {
+        "id": "e339",
+        "source": 257,
+        "target": 135,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -8.96033000946045
+      },
+      {
+        "id": "e340",
+        "source": 135,
+        "target": 258,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -12.104752540588379
+      },
+      {
+        "id": "e341",
+        "source": 258,
+        "target": 259,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 22.278026580810547
+      },
+      {
+        "id": "e342",
+        "source": 259,
+        "target": 260,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 21.546558380126953
+      },
+      {
+        "id": "e343",
+        "source": 260,
+        "target": 131,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -32.556739807128906
+      },
+      {
+        "id": "e344",
+        "source": 119,
+        "target": 255,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 103.6007080078125
+      },
+      {
+        "id": "e345",
+        "source": 82,
+        "target": 257,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -69.17549896240234
+      },
+      {
+        "id": "e346",
+        "source": 129,
+        "target": 258,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 31.054014205932617
+      },
+      {
+        "id": "e347",
+        "source": 130,
+        "target": 260,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -54.1338005065918
+      },
+      {
+        "id": "e348",
+        "source": 263,
+        "target": 264,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -635.0196533203125
+      },
+      {
+        "id": "e349",
+        "source": 264,
+        "target": 265,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 131.36831665039062
+      },
+      {
+        "id": "e350",
+        "source": 265,
+        "target": 266,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 89.24624633789062
+      },
+      {
+        "id": "e351",
+        "source": 266,
+        "target": 267,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -670.0047607421875
+      },
+      {
+        "id": "e352",
+        "source": 267,
+        "target": 268,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -677.1100463867188
+      },
+      {
+        "id": "e353",
+        "source": 268,
+        "target": 269,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 90.12943267822266
+      },
+      {
+        "id": "e354",
+        "source": 269,
+        "target": 270,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 104.84463500976562
+      },
+      {
+        "id": "e355",
+        "source": 270,
+        "target": 263,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -630.3958740234375
+      },
+      {
+        "id": "e356",
+        "source": 262,
+        "target": 264,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -11.823577880859375
+      },
+      {
+        "id": "e357",
+        "source": 261,
+        "target": 266,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -985.9140625
+      },
+      {
+        "id": "e358",
+        "source": 219,
+        "target": 268,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -152.10824584960938
+      },
+      {
+        "id": "e359",
+        "source": 119,
+        "target": 270,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -909.310302734375
+      },
+      {
+        "id": "e360",
+        "source": 273,
+        "target": 274,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 32.89154052734375
+      },
+      {
+        "id": "e361",
+        "source": 274,
+        "target": 275,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 7.930356979370117
+      },
+      {
+        "id": "e362",
+        "source": 275,
+        "target": 276,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -8.657832145690918
+      },
+      {
+        "id": "e363",
+        "source": 276,
+        "target": 277,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 31.41438102722168
+      },
+      {
+        "id": "e364",
+        "source": 277,
+        "target": 278,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 36.530662536621094
+      },
+      {
+        "id": "e365",
+        "source": 278,
+        "target": 279,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -23.897727966308594
+      },
+      {
+        "id": "e366",
+        "source": 279,
+        "target": 280,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -36.19428253173828
+      },
+      {
+        "id": "e367",
+        "source": 280,
+        "target": 273,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 105.98435974121094
+      },
+      {
+        "id": "e368",
+        "source": 271,
+        "target": 278,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -50.36922836303711
+      },
+      {
+        "id": "e369",
+        "source": 229,
+        "target": 280,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 138.29458618164062
+      },
+      {
+        "id": "e370",
+        "source": 261,
+        "target": 274,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -21.063962936401367
+      },
+      {
+        "id": "e371",
+        "source": 272,
+        "target": 276,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 40.18988037109375
+      },
+      {
+        "id": "e372",
+        "source": 282,
+        "target": 283,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -221.41281127929688
+      },
+      {
+        "id": "e373",
+        "source": 283,
+        "target": 284,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -286.8559265136719
+      },
+      {
+        "id": "e374",
+        "source": 284,
+        "target": 285,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 331.5219421386719
+      },
+      {
+        "id": "e375",
+        "source": 285,
+        "target": 286,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -373.8895568847656
+      },
+      {
+        "id": "e376",
+        "source": 286,
+        "target": 287,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -325.5614929199219
+      },
+      {
+        "id": "e377",
+        "source": 287,
+        "target": 288,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -265.7839050292969
+      },
+      {
+        "id": "e378",
+        "source": 288,
+        "target": 289,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 337.95123291015625
+      },
+      {
+        "id": "e379",
+        "source": 289,
+        "target": 282,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -248.1752166748047
+      },
+      {
+        "id": "e380",
+        "source": 281,
+        "target": 287,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 165.28416442871094
+      },
+      {
+        "id": "e381",
+        "source": 129,
+        "target": 289,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -473.2442321777344
+      },
+      {
+        "id": "e382",
+        "source": 238,
+        "target": 283,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 33.38037109375
+      },
+      {
+        "id": "e383",
+        "source": 271,
+        "target": 285,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -591.8800659179688
+      },
+      {
+        "id": "e384",
+        "source": 229,
+        "target": 248,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -763.6397705078125
+      },
+      {
+        "id": "e385",
+        "source": 238,
+        "target": 250,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -185.6362762451172
+      },
+      {
+        "id": "e386",
+        "source": 82,
+        "target": 252,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -931.3328247070312
+      },
+      {
+        "id": "e387",
+        "source": 219,
+        "target": 254,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -236.75433349609375
+      },
+      {
+        "id": "e388",
+        "source": 290,
+        "target": 291,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -59.96040344238281
+      },
+      {
+        "id": "e389",
+        "source": 291,
+        "target": 292,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -380.57977294921875
+      },
+      {
+        "id": "e390",
+        "source": 292,
+        "target": 293,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -418.4499206542969
+      },
+      {
+        "id": "e391",
+        "source": 293,
+        "target": 294,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 139.3925323486328
+      },
+      {
+        "id": "e392",
+        "source": 294,
+        "target": 295,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -76.1832504272461
+      },
+      {
+        "id": "e393",
+        "source": 295,
+        "target": 296,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -436.6231994628906
+      },
+      {
+        "id": "e394",
+        "source": 296,
+        "target": 297,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -462.9992980957031
+      },
+      {
+        "id": "e395",
+        "source": 297,
+        "target": 290,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 151.3819122314453
+      },
+      {
+        "id": "e396",
+        "source": 262,
+        "target": 295,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 114.95191192626953
+      },
+      {
+        "id": "e397",
+        "source": 130,
+        "target": 293,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -638.0137939453125
+      },
+      {
+        "id": "e398",
+        "source": 281,
+        "target": 291,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 87.71337890625
+      },
+      {
+        "id": "e399",
+        "source": 272,
+        "target": 297,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -678.633056640625
+      },
+      {
+        "id": "e400",
+        "source": 298,
+        "target": 299,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -38.34885787963867
+      },
+      {
+        "id": "e401",
+        "source": 299,
+        "target": 300,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 12.406405448913574
+      },
+      {
+        "id": "e402",
+        "source": 300,
+        "target": 301,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 21.198192596435547
+      },
+      {
+        "id": "e403",
+        "source": 301,
+        "target": 302,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -2.8512074947357178
+      },
+      {
+        "id": "e404",
+        "source": 302,
+        "target": 303,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -41.042057037353516
+      },
+      {
+        "id": "e405",
+        "source": 303,
+        "target": 304,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 10.555962562561035
+      },
+      {
+        "id": "e406",
+        "source": 304,
+        "target": 305,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 25.538288116455078
+      },
+      {
+        "id": "e407",
+        "source": 305,
+        "target": 298,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 44.20269775390625
+      },
+      {
+        "id": "e408",
+        "source": 164,
+        "target": 299,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 35.12639617919922
+      },
+      {
+        "id": "e409",
+        "source": 176,
+        "target": 301,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -32.59359359741211
+      },
+      {
+        "id": "e410",
+        "source": 175,
+        "target": 303,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 39.2224235534668
+      },
+      {
+        "id": "e411",
+        "source": 177,
+        "target": 305,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 2.608288049697876
+      },
+      {
+        "id": "e412",
+        "source": 309,
+        "target": 310,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -353.64385986328125
+      },
+      {
+        "id": "e413",
+        "source": 310,
+        "target": 311,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 56.327415466308594
+      },
+      {
+        "id": "e414",
+        "source": 311,
+        "target": 312,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 82.47460174560547
+      },
+      {
+        "id": "e415",
+        "source": 312,
+        "target": 313,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -329.6252136230469
+      },
+      {
+        "id": "e416",
+        "source": 313,
+        "target": 314,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -338.2942199707031
+      },
+      {
+        "id": "e417",
+        "source": 314,
+        "target": 315,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 41.377445220947266
+      },
+      {
+        "id": "e418",
+        "source": 315,
+        "target": 316,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 34.678443908691406
+      },
+      {
+        "id": "e419",
+        "source": 316,
+        "target": 309,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -354.4615783691406
+      },
+      {
+        "id": "e420",
+        "source": 308,
+        "target": 310,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -88.03398132324219
+      },
+      {
+        "id": "e421",
+        "source": 306,
+        "target": 312,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -372.0622863769531
+      },
+      {
+        "id": "e422",
+        "source": 307,
+        "target": 314,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -150.4854278564453
+      },
+      {
+        "id": "e423",
+        "source": 164,
+        "target": 316,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -506.2691345214844
+      },
+      {
+        "id": "e424",
+        "source": 320,
+        "target": 321,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -0.509472131729126
+      },
+      {
+        "id": "e425",
+        "source": 321,
+        "target": 322,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 71.69882202148438
+      },
+      {
+        "id": "e426",
+        "source": 322,
+        "target": 323,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 59.0772590637207
+      },
+      {
+        "id": "e427",
+        "source": 323,
+        "target": 324,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 113.88978576660156
+      },
+      {
+        "id": "e428",
+        "source": 324,
+        "target": 325,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 46.96805953979492
+      },
+      {
+        "id": "e429",
+        "source": 325,
+        "target": 326,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -5.618168354034424
+      },
+      {
+        "id": "e430",
+        "source": 326,
+        "target": 327,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -39.18044662475586
+      },
+      {
+        "id": "e431",
+        "source": 327,
+        "target": 320,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -49.590087890625
+      },
+      {
+        "id": "e432",
+        "source": 317,
+        "target": 325,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -47.40222930908203
+      },
+      {
+        "id": "e433",
+        "source": 318,
+        "target": 327,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 6.687641143798828
+      },
+      {
+        "id": "e434",
+        "source": 306,
+        "target": 321,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 77.1582260131836
+      },
+      {
+        "id": "e435",
+        "source": 319,
+        "target": 323,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 40.40790939331055
+      },
+      {
+        "id": "e436",
+        "source": 330,
+        "target": 331,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -126.50398254394531
+      },
+      {
+        "id": "e437",
+        "source": 331,
+        "target": 332,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -154.95779418945312
+      },
+      {
+        "id": "e438",
+        "source": 332,
+        "target": 333,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 179.3357391357422
+      },
+      {
+        "id": "e439",
+        "source": 333,
+        "target": 334,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -294.64251708984375
+      },
+      {
+        "id": "e440",
+        "source": 334,
+        "target": 335,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -236.80868530273438
+      },
+      {
+        "id": "e441",
+        "source": 335,
+        "target": 336,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -86.51045227050781
+      },
+      {
+        "id": "e442",
+        "source": 336,
+        "target": 337,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 167.0966796875
+      },
+      {
+        "id": "e443",
+        "source": 337,
+        "target": 330,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -142.83584594726562
+      },
+      {
+        "id": "e444",
+        "source": 329,
+        "target": 335,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.66806030273438
+      },
+      {
+        "id": "e445",
+        "source": 175,
+        "target": 337,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -258.6436462402344
+      },
+      {
+        "id": "e446",
+        "source": 328,
+        "target": 331,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 25.456907272338867
+      },
+      {
+        "id": "e447",
+        "source": 317,
+        "target": 333,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -414.9522705078125
+      },
+      {
+        "id": "e448",
+        "source": 338,
+        "target": 339,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 81.77027893066406
+      },
+      {
+        "id": "e449",
+        "source": 339,
+        "target": 340,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -135.5938262939453
+      },
+      {
+        "id": "e450",
+        "source": 340,
+        "target": 341,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -128.2847442626953
+      },
+      {
+        "id": "e451",
+        "source": 341,
+        "target": 342,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -109.390380859375
+      },
+      {
+        "id": "e452",
+        "source": 342,
+        "target": 343,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 56.24596405029297
+      },
+      {
+        "id": "e453",
+        "source": 343,
+        "target": 344,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -178.1874542236328
+      },
+      {
+        "id": "e454",
+        "source": 344,
+        "target": 345,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -161.00753784179688
+      },
+      {
+        "id": "e455",
+        "source": 345,
+        "target": 338,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -40.29701232910156
+      },
+      {
+        "id": "e456",
+        "source": 318,
+        "target": 343,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -327.5168151855469
+      },
+      {
+        "id": "e457",
+        "source": 328,
+        "target": 345,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 13.513280868530273
+      },
+      {
+        "id": "e458",
+        "source": 176,
+        "target": 339,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -268.1639099121094
+      },
+      {
+        "id": "e459",
+        "source": 307,
+        "target": 341,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -73.01216888427734
+      },
+      {
+        "id": "e460",
+        "source": 346,
+        "target": 347,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 130.9008026123047
+      },
+      {
+        "id": "e461",
+        "source": 347,
+        "target": 348,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -355.7137145996094
+      },
+      {
+        "id": "e462",
+        "source": 348,
+        "target": 349,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -377.32073974609375
+      },
+      {
+        "id": "e463",
+        "source": 349,
+        "target": 350,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 49.3145866394043
+      },
+      {
+        "id": "e464",
+        "source": 350,
+        "target": 351,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 51.447105407714844
+      },
+      {
+        "id": "e465",
+        "source": 351,
+        "target": 352,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -330.4948425292969
+      },
+      {
+        "id": "e466",
+        "source": 352,
+        "target": 353,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -338.42999267578125
+      },
+      {
+        "id": "e467",
+        "source": 353,
+        "target": 346,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 122.73527526855469
+      },
+      {
+        "id": "e468",
+        "source": 308,
+        "target": 351,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -12.08332347869873
+      },
+      {
+        "id": "e469",
+        "source": 177,
+        "target": 349,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -638.703125
+      },
+      {
+        "id": "e470",
+        "source": 329,
+        "target": 347,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 135.2977294921875
+      },
+      {
+        "id": "e471",
+        "source": 319,
+        "target": 353,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -445.4853210449219
+      },
+      {
+        "id": "e472",
+        "source": 230,
+        "target": 354,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -63.47639465332031
+      },
+      {
+        "id": "e473",
+        "source": 354,
+        "target": 355,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 59.98800277709961
+      },
+      {
+        "id": "e474",
+        "source": 355,
+        "target": 356,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 55.42256546020508
+      },
+      {
+        "id": "e475",
+        "source": 356,
+        "target": 234,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -16.569822311401367
+      },
+      {
+        "id": "e476",
+        "source": 234,
+        "target": 357,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -75.44381713867188
+      },
+      {
+        "id": "e477",
+        "source": 357,
+        "target": 358,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 33.364437103271484
+      },
+      {
+        "id": "e478",
+        "source": 358,
+        "target": 359,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 44.66160202026367
+      },
+      {
+        "id": "e479",
+        "source": 359,
+        "target": 230,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 42.24626922607422
+      },
+      {
+        "id": "e480",
+        "source": 218,
+        "target": 354,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 104.21843719482422
+      },
+      {
+        "id": "e481",
+        "source": 177,
+        "target": 356,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -77.9478988647461
+      },
+      {
+        "id": "e482",
+        "source": 228,
+        "target": 357,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 87.23704528808594
+      },
+      {
+        "id": "e483",
+        "source": 229,
+        "target": 359,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -20.087356567382812
+      },
+      {
+        "id": "e484",
+        "source": 362,
+        "target": 363,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -316.9059753417969
+      },
+      {
+        "id": "e485",
+        "source": 363,
+        "target": 364,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 40.514225006103516
+      },
+      {
+        "id": "e486",
+        "source": 364,
+        "target": 365,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 24.461851119995117
+      },
+      {
+        "id": "e487",
+        "source": 365,
+        "target": 366,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -326.5523986816406
+      },
+      {
+        "id": "e488",
+        "source": 366,
+        "target": 367,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -331.5760498046875
+      },
+      {
+        "id": "e489",
+        "source": 367,
+        "target": 368,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 32.97993850708008
+      },
+      {
+        "id": "e490",
+        "source": 368,
+        "target": 369,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 20.27507972717285
+      },
+      {
+        "id": "e491",
+        "source": 369,
+        "target": 362,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -320.2199401855469
+      },
+      {
+        "id": "e492",
+        "source": 361,
+        "target": 363,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -10.146479606628418
+      },
+      {
+        "id": "e493",
+        "source": 360,
+        "target": 365,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -492.4813537597656
+      },
+      {
+        "id": "e494",
+        "source": 308,
+        "target": 367,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -60.38920974731445
+      },
+      {
+        "id": "e495",
+        "source": 218,
+        "target": 369,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -505.6318054199219
+      },
+      {
+        "id": "e496",
+        "source": 372,
+        "target": 373,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 2.25130033493042
+      },
+      {
+        "id": "e497",
+        "source": 373,
+        "target": 374,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 28.596776962280273
+      },
+      {
+        "id": "e498",
+        "source": 374,
+        "target": 375,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 7.575403213500977
+      },
+      {
+        "id": "e499",
+        "source": 375,
+        "target": 376,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 105.37211608886719
+      },
+      {
+        "id": "e500",
+        "source": 376,
+        "target": 377,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1.2872556447982788
+      },
+      {
+        "id": "e501",
+        "source": 377,
+        "target": 378,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -20.990571975708008
+      },
+      {
+        "id": "e502",
+        "source": 378,
+        "target": 379,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -45.0254020690918
+      },
+      {
+        "id": "e503",
+        "source": 379,
+        "target": 372,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 136.5085906982422
+      },
+      {
+        "id": "e504",
+        "source": 370,
+        "target": 377,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -26.561634063720703
+      },
+      {
+        "id": "e505",
+        "source": 319,
+        "target": 379,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 173.3778533935547
+      },
+      {
+        "id": "e506",
+        "source": 360,
+        "target": 373,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 15.385311126708984
+      },
+      {
+        "id": "e507",
+        "source": 371,
+        "target": 375,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 86.49537658691406
+      },
+      {
+        "id": "e508",
+        "source": 381,
+        "target": 382,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -61.33308792114258
+      },
+      {
+        "id": "e509",
+        "source": 382,
+        "target": 383,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -242.26039123535156
+      },
+      {
+        "id": "e510",
+        "source": 383,
+        "target": 384,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 233.4112548828125
+      },
+      {
+        "id": "e511",
+        "source": 384,
+        "target": 385,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -241.468994140625
+      },
+      {
+        "id": "e512",
+        "source": 385,
+        "target": 386,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -189.87176513671875
+      },
+      {
+        "id": "e513",
+        "source": 386,
+        "target": 387,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -196.15560913085938
+      },
+      {
+        "id": "e514",
+        "source": 387,
+        "target": 388,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 192.88182067871094
+      },
+      {
+        "id": "e515",
+        "source": 388,
+        "target": 381,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -49.17443084716797
+      },
+      {
+        "id": "e516",
+        "source": 380,
+        "target": 386,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 56.080665588378906
+      },
+      {
+        "id": "e517",
+        "source": 228,
+        "target": 388,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -171.37310791015625
+      },
+      {
+        "id": "e518",
+        "source": 329,
+        "target": 382,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -111.92754364013672
+      },
+      {
+        "id": "e519",
+        "source": 370,
+        "target": 384,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -394.0908203125
+      },
+      {
+        "id": "e520",
+        "source": 319,
+        "target": 347,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -278.2104797363281
+      },
+      {
+        "id": "e521",
+        "source": 329,
+        "target": 349,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -235.59014892578125
+      },
+      {
+        "id": "e522",
+        "source": 177,
+        "target": 351,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -343.5262145996094
+      },
+      {
+        "id": "e523",
+        "source": 308,
+        "target": 353,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -34.90199279785156
+      },
+      {
+        "id": "e524",
+        "source": 389,
+        "target": 390,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 139.71434020996094
+      },
+      {
+        "id": "e525",
+        "source": 390,
+        "target": 391,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -360.6007995605469
+      },
+      {
+        "id": "e526",
+        "source": 391,
+        "target": 392,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -379.84576416015625
+      },
+      {
+        "id": "e527",
+        "source": 392,
+        "target": 393,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 52.71599578857422
+      },
+      {
+        "id": "e528",
+        "source": 393,
+        "target": 394,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 61.72279357910156
+      },
+      {
+        "id": "e529",
+        "source": 394,
+        "target": 395,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -340.3017883300781
+      },
+      {
+        "id": "e530",
+        "source": 395,
+        "target": 396,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -343.2579650878906
+      },
+      {
+        "id": "e531",
+        "source": 396,
+        "target": 389,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 134.2686767578125
+      },
+      {
+        "id": "e532",
+        "source": 361,
+        "target": 394,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -44.06476974487305
+      },
+      {
+        "id": "e533",
+        "source": 229,
+        "target": 392,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -591.8031616210938
+      },
+      {
+        "id": "e534",
+        "source": 380,
+        "target": 390,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 94.5886001586914
+      },
+      {
+        "id": "e535",
+        "source": 371,
+        "target": 396,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -388.57275390625
+      },
+      {
+        "id": "e536",
+        "source": 273,
+        "target": 397,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -70.93859100341797
+      },
+      {
+        "id": "e537",
+        "source": 397,
+        "target": 398,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 62.546485900878906
+      },
+      {
+        "id": "e538",
+        "source": 398,
+        "target": 399,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 62.579933166503906
+      },
+      {
+        "id": "e539",
+        "source": 399,
+        "target": 277,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -28.55299186706543
+      },
+      {
+        "id": "e540",
+        "source": 277,
+        "target": 400,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -43.66966247558594
+      },
+      {
+        "id": "e541",
+        "source": 400,
+        "target": 401,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 16.464414596557617
+      },
+      {
+        "id": "e542",
+        "source": 401,
+        "target": 402,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 25.87407875061035
+      },
+      {
+        "id": "e543",
+        "source": 402,
+        "target": 273,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -16.162311553955078
+      },
+      {
+        "id": "e544",
+        "source": 261,
+        "target": 397,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 115.78897857666016
+      },
+      {
+        "id": "e545",
+        "source": 229,
+        "target": 399,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -97.98233795166016
+      },
+      {
+        "id": "e546",
+        "source": 271,
+        "target": 400,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 46.97246170043945
+      },
+      {
+        "id": "e547",
+        "source": 272,
+        "target": 402,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -48.03305435180664
+      },
+      {
+        "id": "e548",
+        "source": 405,
+        "target": 406,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -307.0511169433594
+      },
+      {
+        "id": "e549",
+        "source": 406,
+        "target": 407,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 61.21969223022461
+      },
+      {
+        "id": "e550",
+        "source": 407,
+        "target": 408,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 43.14302062988281
+      },
+      {
+        "id": "e551",
+        "source": 408,
+        "target": 409,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -335.7181091308594
+      },
+      {
+        "id": "e552",
+        "source": 409,
+        "target": 410,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -345.97064208984375
+      },
+      {
+        "id": "e553",
+        "source": 410,
+        "target": 411,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 38.20002365112305
+      },
+      {
+        "id": "e554",
+        "source": 411,
+        "target": 412,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 48.0113525390625
+      },
+      {
+        "id": "e555",
+        "source": 412,
+        "target": 405,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -297.3272399902344
+      },
+      {
+        "id": "e556",
+        "source": 404,
+        "target": 406,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 64.66478729248047
+      },
+      {
+        "id": "e557",
+        "source": 403,
+        "target": 408,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -551.896240234375
+      },
+      {
+        "id": "e558",
+        "source": 361,
+        "target": 410,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -26.23446273803711
+      },
+      {
+        "id": "e559",
+        "source": 261,
+        "target": 412,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -485.4057312011719
+      },
+      {
+        "id": "e560",
+        "source": 415,
+        "target": 416,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 3.3848347663879395
+      },
+      {
+        "id": "e561",
+        "source": 416,
+        "target": 417,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 64.22064208984375
+      },
+      {
+        "id": "e562",
+        "source": 417,
+        "target": 418,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 47.91273880004883
+      },
+      {
+        "id": "e563",
+        "source": 418,
+        "target": 419,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 16.491561889648438
+      },
+      {
+        "id": "e564",
+        "source": 419,
+        "target": 420,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -40.83681869506836
+      },
+      {
+        "id": "e565",
+        "source": 420,
+        "target": 421,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -25.039447784423828
+      },
+      {
+        "id": "e566",
+        "source": 421,
+        "target": 422,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -13.337310791015625
+      },
+      {
+        "id": "e567",
+        "source": 422,
+        "target": 415,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 138.78919982910156
+      },
+      {
+        "id": "e568",
+        "source": 413,
+        "target": 420,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 2.949678897857666
+      },
+      {
+        "id": "e569",
+        "source": 371,
+        "target": 422,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 133.71913146972656
+      },
+      {
+        "id": "e570",
+        "source": 403,
+        "target": 416,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 48.24574279785156
+      },
+      {
+        "id": "e571",
+        "source": 414,
+        "target": 418,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -41.29557800292969
+      },
+      {
+        "id": "e572",
+        "source": 424,
+        "target": 425,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -72.43766021728516
+      },
+      {
+        "id": "e573",
+        "source": 425,
+        "target": 426,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -327.596923828125
+      },
+      {
+        "id": "e574",
+        "source": 426,
+        "target": 427,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 221.0410919189453
+      },
+      {
+        "id": "e575",
+        "source": 427,
+        "target": 428,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -227.31875610351562
+      },
+      {
+        "id": "e576",
+        "source": 428,
+        "target": 429,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -160.55874633789062
+      },
+      {
+        "id": "e577",
+        "source": 429,
+        "target": 430,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -129.2174530029297
+      },
+      {
+        "id": "e578",
+        "source": 430,
+        "target": 431,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 228.89918518066406
+      },
+      {
+        "id": "e579",
+        "source": 431,
+        "target": 424,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -45.98583984375
+      },
+      {
+        "id": "e580",
+        "source": 423,
+        "target": 429,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 82.91128540039062
+      },
+      {
+        "id": "e581",
+        "source": 271,
+        "target": 431,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -200.0867156982422
+      },
+      {
+        "id": "e582",
+        "source": 380,
+        "target": 425,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -172.48825073242188
+      },
+      {
+        "id": "e583",
+        "source": 413,
+        "target": 427,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -364.5831298828125
+      },
+      {
+        "id": "e584",
+        "source": 371,
+        "target": 390,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -331.8896179199219
+      },
+      {
+        "id": "e585",
+        "source": 380,
+        "target": 392,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -195.01683044433594
+      },
+      {
+        "id": "e586",
+        "source": 229,
+        "target": 394,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -407.9436340332031
+      },
+      {
+        "id": "e587",
+        "source": 361,
+        "target": 396,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 32.68914794921875
+      },
+      {
+        "id": "e588",
+        "source": 432,
+        "target": 433,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -63.381370544433594
+      },
+      {
+        "id": "e589",
+        "source": 433,
+        "target": 434,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -241.1527557373047
+      },
+      {
+        "id": "e590",
+        "source": 434,
+        "target": 435,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -247.66250610351562
+      },
+      {
+        "id": "e591",
+        "source": 435,
+        "target": 436,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 133.75579833984375
+      },
+      {
+        "id": "e592",
+        "source": 436,
+        "target": 437,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 58.392852783203125
+      },
+      {
+        "id": "e593",
+        "source": 437,
+        "target": 438,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -185.88064575195312
+      },
+      {
+        "id": "e594",
+        "source": 438,
+        "target": 439,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -209.2644500732422
+      },
+      {
+        "id": "e595",
+        "source": 439,
+        "target": 432,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 79.08517456054688
+      },
+      {
+        "id": "e596",
+        "source": 404,
+        "target": 437,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 125.5329818725586
+      },
+      {
+        "id": "e597",
+        "source": 272,
+        "target": 435,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -363.5902404785156
+      },
+      {
+        "id": "e598",
+        "source": 423,
+        "target": 433,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 43.996376037597656
+      },
+      {
+        "id": "e599",
+        "source": 414,
+        "target": 439,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -352.98583984375
+      },
+      {
+        "id": "e600",
+        "source": 443,
+        "target": 444,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e601",
+        "source": 444,
+        "target": 445,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e602",
+        "source": 445,
+        "target": 446,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e603",
+        "source": 446,
+        "target": 447,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e604",
+        "source": 447,
+        "target": 448,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e605",
+        "source": 448,
+        "target": 449,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e606",
+        "source": 449,
+        "target": 450,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e607",
+        "source": 450,
+        "target": 443,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e608",
+        "source": 440,
+        "target": 444,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e609",
+        "source": 441,
+        "target": 446,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e610",
+        "source": 0,
+        "target": 448,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e611",
+        "source": 442,
+        "target": 450,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e612",
+        "source": 454,
+        "target": 455,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1015.9585571289062
+      },
+      {
+        "id": "e613",
+        "source": 455,
+        "target": 456,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 117.57028198242188
+      },
+      {
+        "id": "e614",
+        "source": 456,
+        "target": 457,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 150.34458923339844
+      },
+      {
+        "id": "e615",
+        "source": 457,
+        "target": 458,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -923.1016235351562
+      },
+      {
+        "id": "e616",
+        "source": 458,
+        "target": 459,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -916.8735961914062
+      },
+      {
+        "id": "e617",
+        "source": 459,
+        "target": 460,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 176.95468139648438
+      },
+      {
+        "id": "e618",
+        "source": 460,
+        "target": 461,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 99.76750183105469
+      },
+      {
+        "id": "e619",
+        "source": 461,
+        "target": 454,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1010.0718383789062
+      },
+      {
+        "id": "e620",
+        "source": 453,
+        "target": 455,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -387.0080261230469
+      },
+      {
+        "id": "e621",
+        "source": 451,
+        "target": 457,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1208.9002685546875
+      },
+      {
+        "id": "e622",
+        "source": 452,
+        "target": 459,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -145.53468322753906
+      },
+      {
+        "id": "e623",
+        "source": 440,
+        "target": 461,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1394.9998779296875
+      },
+      {
+        "id": "e624",
+        "source": 464,
+        "target": 465,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0.5333786010742188
+      },
+      {
+        "id": "e625",
+        "source": 465,
+        "target": 466,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 59.26866912841797
+      },
+      {
+        "id": "e626",
+        "source": 466,
+        "target": 467,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -22.517940521240234
+      },
+      {
+        "id": "e627",
+        "source": 467,
+        "target": 468,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 50.09671401977539
+      },
+      {
+        "id": "e628",
+        "source": 468,
+        "target": 469,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 29.530519485473633
+      },
+      {
+        "id": "e629",
+        "source": 469,
+        "target": 470,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 19.816410064697266
+      },
+      {
+        "id": "e630",
+        "source": 470,
+        "target": 471,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -16.495561599731445
+      },
+      {
+        "id": "e631",
+        "source": 471,
+        "target": 464,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -12.033085823059082
+      },
+      {
+        "id": "e632",
+        "source": 12,
+        "target": 469,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -6.631434917449951
+      },
+      {
+        "id": "e633",
+        "source": 462,
+        "target": 471,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 12.185128211975098
+      },
+      {
+        "id": "e634",
+        "source": 451,
+        "target": 465,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 62.40166473388672
+      },
+      {
+        "id": "e635",
+        "source": 463,
+        "target": 467,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 80.74712371826172
+      },
+      {
+        "id": "e636",
+        "source": 14,
+        "target": 22,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -483.20001220703125
+      },
+      {
+        "id": "e637",
+        "source": 0,
+        "target": 20,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1116.471435546875
+      },
+      {
+        "id": "e638",
+        "source": 13,
+        "target": 18,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -316.2699279785156
+      },
+      {
+        "id": "e639",
+        "source": 12,
+        "target": 16,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1320.59423828125
+      },
+      {
+        "id": "e640",
+        "source": 472,
+        "target": 473,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 170.01535034179688
+      },
+      {
+        "id": "e641",
+        "source": 473,
+        "target": 474,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -659.2994995117188
+      },
+      {
+        "id": "e642",
+        "source": 474,
+        "target": 475,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -670.4940795898438
+      },
+      {
+        "id": "e643",
+        "source": 475,
+        "target": 476,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -235.76097106933594
+      },
+      {
+        "id": "e644",
+        "source": 476,
+        "target": 477,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 136.35467529296875
+      },
+      {
+        "id": "e645",
+        "source": 477,
+        "target": 478,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -562.6920166015625
+      },
+      {
+        "id": "e646",
+        "source": 478,
+        "target": 479,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -562.5474853515625
+      },
+      {
+        "id": "e647",
+        "source": 479,
+        "target": 472,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -164.64305114746094
+      },
+      {
+        "id": "e648",
+        "source": 462,
+        "target": 477,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -876.3690185546875
+      },
+      {
+        "id": "e649",
+        "source": 13,
+        "target": 479,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 98.62018585205078
+      },
+      {
+        "id": "e650",
+        "source": 441,
+        "target": 473,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -950.9993896484375
+      },
+      {
+        "id": "e651",
+        "source": 452,
+        "target": 475,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 98.60926055908203
+      },
+      {
+        "id": "e652",
+        "source": 480,
+        "target": 481,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 33.15401840209961
+      },
+      {
+        "id": "e653",
+        "source": 481,
+        "target": 482,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -972.3196411132812
+      },
+      {
+        "id": "e654",
+        "source": 482,
+        "target": 483,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -985.283203125
+      },
+      {
+        "id": "e655",
+        "source": 483,
+        "target": 484,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 11.813285827636719
+      },
+      {
+        "id": "e656",
+        "source": 484,
+        "target": 485,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 32.7082405090332
+      },
+      {
+        "id": "e657",
+        "source": 485,
+        "target": 486,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -982.9430541992188
+      },
+      {
+        "id": "e658",
+        "source": 486,
+        "target": 487,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1006.0709838867188
+      },
+      {
+        "id": "e659",
+        "source": 487,
+        "target": 480,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 18.42105484008789
+      },
+      {
+        "id": "e660",
+        "source": 453,
+        "target": 485,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -354.20428466796875
+      },
+      {
+        "id": "e661",
+        "source": 442,
+        "target": 483,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1327.7119140625
+      },
+      {
+        "id": "e662",
+        "source": 14,
+        "target": 481,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -348.91143798828125
+      },
+      {
+        "id": "e663",
+        "source": 463,
+        "target": 487,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1375.9012451171875
+      },
+      {
+        "id": "e664",
+        "source": 490,
+        "target": 491,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e665",
+        "source": 491,
+        "target": 492,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e666",
+        "source": 492,
+        "target": 493,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e667",
+        "source": 493,
+        "target": 494,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e668",
+        "source": 494,
+        "target": 495,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e669",
+        "source": 495,
+        "target": 496,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e670",
+        "source": 496,
+        "target": 497,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e671",
+        "source": 497,
+        "target": 490,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e672",
+        "source": 488,
+        "target": 491,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e673",
+        "source": 442,
+        "target": 493,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e674",
+        "source": 60,
+        "target": 495,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e675",
+        "source": 489,
+        "target": 497,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e676",
+        "source": 500,
+        "target": 501,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -984.4351196289062
+      },
+      {
+        "id": "e677",
+        "source": 501,
+        "target": 502,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 47.80075454711914
+      },
+      {
+        "id": "e678",
+        "source": 502,
+        "target": 503,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 65.23918914794922
+      },
+      {
+        "id": "e679",
+        "source": 503,
+        "target": 504,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -964.1812133789062
+      },
+      {
+        "id": "e680",
+        "source": 504,
+        "target": 505,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -961.0032348632812
+      },
+      {
+        "id": "e681",
+        "source": 505,
+        "target": 506,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 39.94345474243164
+      },
+      {
+        "id": "e682",
+        "source": 506,
+        "target": 507,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 65.77891540527344
+      },
+      {
+        "id": "e683",
+        "source": 507,
+        "target": 500,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -977.280029296875
+      },
+      {
+        "id": "e684",
+        "source": 499,
+        "target": 501,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -442.2394104003906
+      },
+      {
+        "id": "e685",
+        "source": 498,
+        "target": 503,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1274.1546630859375
+      },
+      {
+        "id": "e686",
+        "source": 453,
+        "target": 505,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -421.3080749511719
+      },
+      {
+        "id": "e687",
+        "source": 488,
+        "target": 507,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1277.3648681640625
+      },
+      {
+        "id": "e688",
+        "source": 509,
+        "target": 510,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 58.12052536010742
+      },
+      {
+        "id": "e689",
+        "source": 510,
+        "target": 511,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 62.51934051513672
+      },
+      {
+        "id": "e690",
+        "source": 511,
+        "target": 512,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -23.704679489135742
+      },
+      {
+        "id": "e691",
+        "source": 512,
+        "target": 513,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 53.32504653930664
+      },
+      {
+        "id": "e692",
+        "source": 513,
+        "target": 514,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 17.042287826538086
+      },
+      {
+        "id": "e693",
+        "source": 514,
+        "target": 515,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 70.06999206542969
+      },
+      {
+        "id": "e694",
+        "source": 515,
+        "target": 516,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -19.416519165039062
+      },
+      {
+        "id": "e695",
+        "source": 516,
+        "target": 509,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 59.2597770690918
+      },
+      {
+        "id": "e696",
+        "source": 71,
+        "target": 514,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 56.781253814697266
+      },
+      {
+        "id": "e697",
+        "source": 463,
+        "target": 516,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 85.11102294921875
+      },
+      {
+        "id": "e698",
+        "source": 498,
+        "target": 510,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 70.76033020019531
+      },
+      {
+        "id": "e699",
+        "source": 508,
+        "target": 512,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 85.20814514160156
+      },
+      {
+        "id": "e700",
+        "source": 72,
+        "target": 80,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -426.1395568847656
+      },
+      {
+        "id": "e701",
+        "source": 60,
+        "target": 78,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1274.0006103515625
+      },
+      {
+        "id": "e702",
+        "source": 14,
+        "target": 76,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -450.1400146484375
+      },
+      {
+        "id": "e703",
+        "source": 71,
+        "target": 74,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1277.277587890625
+      },
+      {
+        "id": "e704",
+        "source": 463,
+        "target": 481,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1243.2725830078125
+      },
+      {
+        "id": "e705",
+        "source": 14,
+        "target": 483,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -451.58203125
+      },
+      {
+        "id": "e706",
+        "source": 442,
+        "target": 485,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1252.8265380859375
+      },
+      {
+        "id": "e707",
+        "source": 453,
+        "target": 487,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -457.3887939453125
+      },
+      {
+        "id": "e708",
+        "source": 517,
+        "target": 518,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 18.892593383789062
+      },
+      {
+        "id": "e709",
+        "source": 518,
+        "target": 519,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -995.4578247070312
+      },
+      {
+        "id": "e710",
+        "source": 519,
+        "target": 520,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -978.8065795898438
+      },
+      {
+        "id": "e711",
+        "source": 520,
+        "target": 521,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 27.26205062866211
+      },
+      {
+        "id": "e712",
+        "source": 521,
+        "target": 522,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 12.951315879821777
+      },
+      {
+        "id": "e713",
+        "source": 522,
+        "target": 523,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -980.7101440429688
+      },
+      {
+        "id": "e714",
+        "source": 523,
+        "target": 524,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -972.5144653320312
+      },
+      {
+        "id": "e715",
+        "source": 524,
+        "target": 517,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 26.736114501953125
+      },
+      {
+        "id": "e716",
+        "source": 499,
+        "target": 522,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -437.10003662109375
+      },
+      {
+        "id": "e717",
+        "source": 489,
+        "target": 520,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1260.6466064453125
+      },
+      {
+        "id": "e718",
+        "source": 72,
+        "target": 518,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -436.03558349609375
+      },
+      {
+        "id": "e719",
+        "source": 508,
+        "target": 524,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1259.46142578125
+      },
+      {
+        "id": "e720",
+        "source": 527,
+        "target": 528,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e721",
+        "source": 528,
+        "target": 529,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e722",
+        "source": 529,
+        "target": 530,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e723",
+        "source": 530,
+        "target": 531,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e724",
+        "source": 531,
+        "target": 532,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e725",
+        "source": 532,
+        "target": 533,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e726",
+        "source": 533,
+        "target": 534,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e727",
+        "source": 534,
+        "target": 527,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e728",
+        "source": 525,
+        "target": 528,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e729",
+        "source": 489,
+        "target": 530,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e730",
+        "source": 108,
+        "target": 532,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e731",
+        "source": 526,
+        "target": 534,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e732",
+        "source": 537,
+        "target": 538,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -953.4304809570312
+      },
+      {
+        "id": "e733",
+        "source": 538,
+        "target": 539,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 145.7263641357422
+      },
+      {
+        "id": "e734",
+        "source": 539,
+        "target": 540,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 121.56039428710938
+      },
+      {
+        "id": "e735",
+        "source": 540,
+        "target": 541,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1012.0900268554688
+      },
+      {
+        "id": "e736",
+        "source": 541,
+        "target": 542,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1005.2642211914062
+      },
+      {
+        "id": "e737",
+        "source": 542,
+        "target": 543,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 82.02579498291016
+      },
+      {
+        "id": "e738",
+        "source": 543,
+        "target": 544,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 192.48582458496094
+      },
+      {
+        "id": "e739",
+        "source": 544,
+        "target": 537,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -952.5681762695312
+      },
+      {
+        "id": "e740",
+        "source": 536,
+        "target": 538,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -296.890625
+      },
+      {
+        "id": "e741",
+        "source": 535,
+        "target": 540,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1356.2562255859375
+      },
+      {
+        "id": "e742",
+        "source": 499,
+        "target": 542,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -461.6692199707031
+      },
+      {
+        "id": "e743",
+        "source": 525,
+        "target": 544,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1149.551025390625
+      },
+      {
+        "id": "e744",
+        "source": 546,
+        "target": 547,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 19.923860549926758
+      },
+      {
+        "id": "e745",
+        "source": 547,
+        "target": 548,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 26.328256607055664
+      },
+      {
+        "id": "e746",
+        "source": 548,
+        "target": 549,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -9.473048210144043
+      },
+      {
+        "id": "e747",
+        "source": 549,
+        "target": 550,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1.3221169710159302
+      },
+      {
+        "id": "e748",
+        "source": 550,
+        "target": 551,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 4.6235785484313965
+      },
+      {
+        "id": "e749",
+        "source": 551,
+        "target": 552,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 62.76958084106445
+      },
+      {
+        "id": "e750",
+        "source": 552,
+        "target": 553,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 50.606544494628906
+      },
+      {
+        "id": "e751",
+        "source": 553,
+        "target": 546,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 27.97015380859375
+      },
+      {
+        "id": "e752",
+        "source": 119,
+        "target": 551,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 63.21938705444336
+      },
+      {
+        "id": "e753",
+        "source": 508,
+        "target": 553,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 103.56665802001953
+      },
+      {
+        "id": "e754",
+        "source": 535,
+        "target": 547,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -3.998650550842285
+      },
+      {
+        "id": "e755",
+        "source": 545,
+        "target": 549,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 11.93441390991211
+      },
+      {
+        "id": "e756",
+        "source": 120,
+        "target": 128,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -150.78414916992188
+      },
+      {
+        "id": "e757",
+        "source": 108,
+        "target": 126,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1378.3135986328125
+      },
+      {
+        "id": "e758",
+        "source": 72,
+        "target": 124,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -396.5589294433594
+      },
+      {
+        "id": "e759",
+        "source": 119,
+        "target": 122,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1196.4544677734375
+      },
+      {
+        "id": "e760",
+        "source": 508,
+        "target": 518,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1346.30859375
+      },
+      {
+        "id": "e761",
+        "source": 72,
+        "target": 520,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -370.8406066894531
+      },
+      {
+        "id": "e762",
+        "source": 489,
+        "target": 522,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1312.409423828125
+      },
+      {
+        "id": "e763",
+        "source": 499,
+        "target": 524,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -373.2998046875
+      },
+      {
+        "id": "e764",
+        "source": 554,
+        "target": 555,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -231.92562866210938
+      },
+      {
+        "id": "e765",
+        "source": 555,
+        "target": 556,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -656.5640869140625
+      },
+      {
+        "id": "e766",
+        "source": 556,
+        "target": 557,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -652.9149169921875
+      },
+      {
+        "id": "e767",
+        "source": 557,
+        "target": 558,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 136.92877197265625
+      },
+      {
+        "id": "e768",
+        "source": 558,
+        "target": 559,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -203.07920837402344
+      },
+      {
+        "id": "e769",
+        "source": 559,
+        "target": 560,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -555.12060546875
+      },
+      {
+        "id": "e770",
+        "source": 560,
+        "target": 561,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -563.1851196289062
+      },
+      {
+        "id": "e771",
+        "source": 561,
+        "target": 554,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 131.6265106201172
+      },
+      {
+        "id": "e772",
+        "source": 536,
+        "target": 559,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 51.987491607666016
+      },
+      {
+        "id": "e773",
+        "source": 526,
+        "target": 557,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -931.4951782226562
+      },
+      {
+        "id": "e774",
+        "source": 120,
+        "target": 555,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 90.15770721435547
+      },
+      {
+        "id": "e775",
+        "source": 545,
+        "target": 561,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -869.5411376953125
+      },
+      {
+        "id": "e776",
+        "source": 562,
+        "target": 563,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 3.3429367542266846
+      },
+      {
+        "id": "e777",
+        "source": 563,
+        "target": 470,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 34.4796142578125
+      },
+      {
+        "id": "e778",
+        "source": 470,
+        "target": 564,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 10.490494728088379
+      },
+      {
+        "id": "e779",
+        "source": 564,
+        "target": 565,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -4.613897323608398
+      },
+      {
+        "id": "e780",
+        "source": 565,
+        "target": 566,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -14.61852741241455
+      },
+      {
+        "id": "e781",
+        "source": 566,
+        "target": 466,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 72.27417755126953
+      },
+      {
+        "id": "e782",
+        "source": 466,
+        "target": 567,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 5.895713806152344
+      },
+      {
+        "id": "e783",
+        "source": 567,
+        "target": 562,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 51.97319412231445
+      },
+      {
+        "id": "e784",
+        "source": 451,
+        "target": 563,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 27.391324996948242
+      },
+      {
+        "id": "e785",
+        "source": 462,
+        "target": 564,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -17.946001052856445
+      },
+      {
+        "id": "e786",
+        "source": 12,
+        "target": 566,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 86.93098449707031
+      },
+      {
+        "id": "e787",
+        "source": 463,
+        "target": 567,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 40.66442108154297
+      },
+      {
+        "id": "e788",
+        "source": 571,
+        "target": 572,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -673.0655517578125
+      },
+      {
+        "id": "e789",
+        "source": 572,
+        "target": 573,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 95.286865234375
+      },
+      {
+        "id": "e790",
+        "source": 573,
+        "target": 574,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 129.9617156982422
+      },
+      {
+        "id": "e791",
+        "source": 574,
+        "target": 575,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -642.5675048828125
+      },
+      {
+        "id": "e792",
+        "source": 575,
+        "target": 576,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -638.2272338867188
+      },
+      {
+        "id": "e793",
+        "source": 576,
+        "target": 577,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 109.18315887451172
+      },
+      {
+        "id": "e794",
+        "source": 577,
+        "target": 578,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 84.15872955322266
+      },
+      {
+        "id": "e795",
+        "source": 578,
+        "target": 571,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -680.174072265625
+      },
+      {
+        "id": "e796",
+        "source": 570,
+        "target": 572,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -277.0851135253906
+      },
+      {
+        "id": "e797",
+        "source": 568,
+        "target": 574,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -751.6083374023438
+      },
+      {
+        "id": "e798",
+        "source": 569,
+        "target": 576,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -234.78933715820312
+      },
+      {
+        "id": "e799",
+        "source": 451,
+        "target": 578,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -885.3455200195312
+      },
+      {
+        "id": "e800",
+        "source": 581,
+        "target": 582,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 8.51878547668457
+      },
+      {
+        "id": "e801",
+        "source": 582,
+        "target": 583,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 53.66038513183594
+      },
+      {
+        "id": "e802",
+        "source": 583,
+        "target": 584,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -29.27328872680664
+      },
+      {
+        "id": "e803",
+        "source": 584,
+        "target": 585,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 21.59441566467285
+      },
+      {
+        "id": "e804",
+        "source": 585,
+        "target": 586,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 40.855194091796875
+      },
+      {
+        "id": "e805",
+        "source": 586,
+        "target": 587,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 19.80672836303711
+      },
+      {
+        "id": "e806",
+        "source": 587,
+        "target": 588,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -22.987939834594727
+      },
+      {
+        "id": "e807",
+        "source": 588,
+        "target": 581,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -27.83880043029785
+      },
+      {
+        "id": "e808",
+        "source": 164,
+        "target": 586,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -12.278562545776367
+      },
+      {
+        "id": "e809",
+        "source": 579,
+        "target": 588,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 9.40579605102539
+      },
+      {
+        "id": "e810",
+        "source": 568,
+        "target": 582,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 50.6556396484375
+      },
+      {
+        "id": "e811",
+        "source": 580,
+        "target": 584,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 68.50833129882812
+      },
+      {
+        "id": "e812",
+        "source": 166,
+        "target": 174,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -309.0265197753906
+      },
+      {
+        "id": "e813",
+        "source": 12,
+        "target": 172,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -879.473876953125
+      },
+      {
+        "id": "e814",
+        "source": 165,
+        "target": 170,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -112.48392486572266
+      },
+      {
+        "id": "e815",
+        "source": 164,
+        "target": 168,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -911.7528076171875
+      },
+      {
+        "id": "e816",
+        "source": 589,
+        "target": 590,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 75.32772827148438
+      },
+      {
+        "id": "e817",
+        "source": 590,
+        "target": 591,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -343.94482421875
+      },
+      {
+        "id": "e818",
+        "source": 591,
+        "target": 592,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -338.9228210449219
+      },
+      {
+        "id": "e819",
+        "source": 592,
+        "target": 593,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -134.76499938964844
+      },
+      {
+        "id": "e820",
+        "source": 593,
+        "target": 594,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 102.54505157470703
+      },
+      {
+        "id": "e821",
+        "source": 594,
+        "target": 595,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -377.3033447265625
+      },
+      {
+        "id": "e822",
+        "source": 595,
+        "target": 596,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -382.8587341308594
+      },
+      {
+        "id": "e823",
+        "source": 596,
+        "target": 589,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -173.8781280517578
+      },
+      {
+        "id": "e824",
+        "source": 579,
+        "target": 594,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -583.281494140625
+      },
+      {
+        "id": "e825",
+        "source": 165,
+        "target": 596,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 10.008724212646484
+      },
+      {
+        "id": "e826",
+        "source": 462,
+        "target": 590,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -549.1299438476562
+      },
+      {
+        "id": "e827",
+        "source": 569,
+        "target": 592,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 13.530744552612305
+      },
+      {
+        "id": "e828",
+        "source": 597,
+        "target": 598,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 74.60453033447266
+      },
+      {
+        "id": "e829",
+        "source": 598,
+        "target": 599,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -663.9413452148438
+      },
+      {
+        "id": "e830",
+        "source": 599,
+        "target": 600,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -691.2515258789062
+      },
+      {
+        "id": "e831",
+        "source": 600,
+        "target": 601,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 26.87545394897461
+      },
+      {
+        "id": "e832",
+        "source": 601,
+        "target": 602,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 41.2401008605957
+      },
+      {
+        "id": "e833",
+        "source": 602,
+        "target": 603,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -665.8873291015625
+      },
+      {
+        "id": "e834",
+        "source": 603,
+        "target": 604,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -676.7037353515625
+      },
+      {
+        "id": "e835",
+        "source": 604,
+        "target": 597,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 56.93791580200195
+      },
+      {
+        "id": "e836",
+        "source": 570,
+        "target": 602,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -214.5448455810547
+      },
+      {
+        "id": "e837",
+        "source": 463,
+        "target": 600,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -980.8035888671875
+      },
+      {
+        "id": "e838",
+        "source": 166,
+        "target": 598,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -134.31744384765625
+      },
+      {
+        "id": "e839",
+        "source": 580,
+        "target": 604,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -890.8817749023438
+      },
+      {
+        "id": "e840",
+        "source": 509,
+        "target": 605,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -11.321455955505371
+      },
+      {
+        "id": "e841",
+        "source": 605,
+        "target": 515,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 76.40703582763672
+      },
+      {
+        "id": "e842",
+        "source": 515,
+        "target": 606,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 4.562790393829346
+      },
+      {
+        "id": "e843",
+        "source": 606,
+        "target": 513,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 59.00786209106445
+      },
+      {
+        "id": "e844",
+        "source": 513,
+        "target": 607,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -14.944360733032227
+      },
+      {
+        "id": "e845",
+        "source": 607,
+        "target": 511,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 70.80900573730469
+      },
+      {
+        "id": "e846",
+        "source": 498,
+        "target": 605,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 84.63204193115234
+      },
+      {
+        "id": "e847",
+        "source": 463,
+        "target": 606,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 49.168212890625
+      },
+      {
+        "id": "e848",
+        "source": 71,
+        "target": 607,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 80.80851745605469
+      },
+      {
+        "id": "e849",
+        "source": 508,
+        "target": 510,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 64.7818832397461
+      },
+      {
+        "id": "e850",
+        "source": 610,
+        "target": 611,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -661.9090576171875
+      },
+      {
+        "id": "e851",
+        "source": 611,
+        "target": 612,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 59.678924560546875
+      },
+      {
+        "id": "e852",
+        "source": 612,
+        "target": 613,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 78.21116638183594
+      },
+      {
+        "id": "e853",
+        "source": 613,
+        "target": 614,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -660.8453979492188
+      },
+      {
+        "id": "e854",
+        "source": 614,
+        "target": 615,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -667.923583984375
+      },
+      {
+        "id": "e855",
+        "source": 615,
+        "target": 616,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 54.39613342285156
+      },
+      {
+        "id": "e856",
+        "source": 616,
+        "target": 617,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 69.05924224853516
+      },
+      {
+        "id": "e857",
+        "source": 617,
+        "target": 610,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -664.5753173828125
+      },
+      {
+        "id": "e858",
+        "source": 609,
+        "target": 611,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -268.1890869140625
+      },
+      {
+        "id": "e859",
+        "source": 608,
+        "target": 613,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -823.8968505859375
+      },
+      {
+        "id": "e860",
+        "source": 570,
+        "target": 615,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -310.117431640625
+      },
+      {
+        "id": "e861",
+        "source": 498,
+        "target": 617,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -863.711669921875
+      },
+      {
+        "id": "e862",
+        "source": 619,
+        "target": 620,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 55.148399353027344
+      },
+      {
+        "id": "e863",
+        "source": 620,
+        "target": 621,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 73.6313247680664
+      },
+      {
+        "id": "e864",
+        "source": 621,
+        "target": 622,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -36.19902420043945
+      },
+      {
+        "id": "e865",
+        "source": 622,
+        "target": 623,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 37.82192611694336
+      },
+      {
+        "id": "e866",
+        "source": 623,
+        "target": 624,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 32.864845275878906
+      },
+      {
+        "id": "e867",
+        "source": 624,
+        "target": 625,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 59.56776809692383
+      },
+      {
+        "id": "e868",
+        "source": 625,
+        "target": 626,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -30.551515579223633
+      },
+      {
+        "id": "e869",
+        "source": 626,
+        "target": 619,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 44.01533889770508
+      },
+      {
+        "id": "e870",
+        "source": 218,
+        "target": 624,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 35.00400924682617
+      },
+      {
+        "id": "e871",
+        "source": 580,
+        "target": 626,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 86.22929382324219
+      },
+      {
+        "id": "e872",
+        "source": 608,
+        "target": 620,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 48.46913528442383
+      },
+      {
+        "id": "e873",
+        "source": 618,
+        "target": 622,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 88.13224029541016
+      },
+      {
+        "id": "e874",
+        "source": 219,
+        "target": 227,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -319.36822509765625
+      },
+      {
+        "id": "e875",
+        "source": 71,
+        "target": 225,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -858.5307006835938
+      },
+      {
+        "id": "e876",
+        "source": 166,
+        "target": 223,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -285.4005126953125
+      },
+      {
+        "id": "e877",
+        "source": 218,
+        "target": 221,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -818.5379638671875
+      },
+      {
+        "id": "e878",
+        "source": 580,
+        "target": 598,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -777.7972412109375
+      },
+      {
+        "id": "e879",
+        "source": 166,
+        "target": 600,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -327.9809875488281
+      },
+      {
+        "id": "e880",
+        "source": 463,
+        "target": 602,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -845.8214721679688
+      },
+      {
+        "id": "e881",
+        "source": 570,
+        "target": 604,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -247.18551635742188
+      },
+      {
+        "id": "e882",
+        "source": 627,
+        "target": 628,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 58.406429290771484
+      },
+      {
+        "id": "e883",
+        "source": 628,
+        "target": 629,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -672.5488891601562
+      },
+      {
+        "id": "e884",
+        "source": 629,
+        "target": 630,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -665.23486328125
+      },
+      {
+        "id": "e885",
+        "source": 630,
+        "target": 631,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 43.00547790527344
+      },
+      {
+        "id": "e886",
+        "source": 631,
+        "target": 632,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 29.598901748657227
+      },
+      {
+        "id": "e887",
+        "source": 632,
+        "target": 633,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -685.9227905273438
+      },
+      {
+        "id": "e888",
+        "source": 633,
+        "target": 634,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -660.4996337890625
+      },
+      {
+        "id": "e889",
+        "source": 634,
+        "target": 627,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 72.09791564941406
+      },
+      {
+        "id": "e890",
+        "source": 609,
+        "target": 632,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -312.1478576660156
+      },
+      {
+        "id": "e891",
+        "source": 508,
+        "target": 630,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -855.5616455078125
+      },
+      {
+        "id": "e892",
+        "source": 219,
+        "target": 628,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -231.48074340820312
+      },
+      {
+        "id": "e893",
+        "source": 618,
+        "target": 634,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -785.3433837890625
+      },
+      {
+        "id": "e894",
+        "source": 552,
+        "target": 635,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 3.0282349586486816
+      },
+      {
+        "id": "e895",
+        "source": 635,
+        "target": 550,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 51.77951431274414
+      },
+      {
+        "id": "e896",
+        "source": 550,
+        "target": 636,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -14.215907096862793
+      },
+      {
+        "id": "e897",
+        "source": 636,
+        "target": 548,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 26.145984649658203
+      },
+      {
+        "id": "e898",
+        "source": 535,
+        "target": 553,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 113.79048919677734
+      },
+      {
+        "id": "e899",
+        "source": 508,
+        "target": 635,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 43.509857177734375
+      },
+      {
+        "id": "e900",
+        "source": 119,
+        "target": 636,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 31.069442749023438
+      },
+      {
+        "id": "e901",
+        "source": 545,
+        "target": 547,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -15.206932067871094
+      },
+      {
+        "id": "e902",
+        "source": 639,
+        "target": 640,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -641.0830078125
+      },
+      {
+        "id": "e903",
+        "source": 640,
+        "target": 641,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 128.00843811035156
+      },
+      {
+        "id": "e904",
+        "source": 641,
+        "target": 642,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 89.76689147949219
+      },
+      {
+        "id": "e905",
+        "source": 642,
+        "target": 643,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -686.7191162109375
+      },
+      {
+        "id": "e906",
+        "source": 643,
+        "target": 644,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -684.2514038085938
+      },
+      {
+        "id": "e907",
+        "source": 644,
+        "target": 645,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 90.14380645751953
+      },
+      {
+        "id": "e908",
+        "source": 645,
+        "target": 646,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 111.68836975097656
+      },
+      {
+        "id": "e909",
+        "source": 646,
+        "target": 639,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -646.8746948242188
+      },
+      {
+        "id": "e910",
+        "source": 638,
+        "target": 640,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -119.26022338867188
+      },
+      {
+        "id": "e911",
+        "source": 637,
+        "target": 642,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -927.9595336914062
+      },
+      {
+        "id": "e912",
+        "source": 609,
+        "target": 644,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -251.20208740234375
+      },
+      {
+        "id": "e913",
+        "source": 535,
+        "target": 646,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -842.5357666015625
+      },
+      {
+        "id": "e914",
+        "source": 648,
+        "target": 649,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 34.102882385253906
+      },
+      {
+        "id": "e915",
+        "source": 649,
+        "target": 650,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 43.06977081298828
+      },
+      {
+        "id": "e916",
+        "source": 650,
+        "target": 651,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -22.528371810913086
+      },
+      {
+        "id": "e917",
+        "source": 651,
+        "target": 652,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -10.519939422607422
+      },
+      {
+        "id": "e918",
+        "source": 652,
+        "target": 653,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 19.47096061706543
+      },
+      {
+        "id": "e919",
+        "source": 653,
+        "target": 654,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 64.89511108398438
+      },
+      {
+        "id": "e920",
+        "source": 654,
+        "target": 655,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 47.44050979614258
+      },
+      {
+        "id": "e921",
+        "source": 655,
+        "target": 648,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 1.5870312452316284
+      },
+      {
+        "id": "e922",
+        "source": 261,
+        "target": 653,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 53.75274658203125
+      },
+      {
+        "id": "e923",
+        "source": 618,
+        "target": 655,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 99.11125183105469
+      },
+      {
+        "id": "e924",
+        "source": 637,
+        "target": 649,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -0.5675199031829834
+      },
+      {
+        "id": "e925",
+        "source": 647,
+        "target": 651,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 22.363262176513672
+      },
+      {
+        "id": "e926",
+        "source": 262,
+        "target": 270,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -239.67828369140625
+      },
+      {
+        "id": "e927",
+        "source": 119,
+        "target": 268,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -870.885498046875
+      },
+      {
+        "id": "e928",
+        "source": 219,
+        "target": 266,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -292.59979248046875
+      },
+      {
+        "id": "e929",
+        "source": 261,
+        "target": 264,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -737.151611328125
+      },
+      {
+        "id": "e930",
+        "source": 618,
+        "target": 628,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -873.2919311523438
+      },
+      {
+        "id": "e931",
+        "source": 219,
+        "target": 630,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -220.419677734375
+      },
+      {
+        "id": "e932",
+        "source": 508,
+        "target": 632,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -961.5528564453125
+      },
+      {
+        "id": "e933",
+        "source": 609,
+        "target": 634,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -149.41104125976562
+      },
+      {
+        "id": "e934",
+        "source": 656,
+        "target": 657,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -121.28671264648438
+      },
+      {
+        "id": "e935",
+        "source": 657,
+        "target": 658,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -342.06829833984375
+      },
+      {
+        "id": "e936",
+        "source": 658,
+        "target": 659,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -341.5244140625
+      },
+      {
+        "id": "e937",
+        "source": 659,
+        "target": 660,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 88.68269348144531
+      },
+      {
+        "id": "e938",
+        "source": 660,
+        "target": 661,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -154.65318298339844
+      },
+      {
+        "id": "e939",
+        "source": 661,
+        "target": 662,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -377.742431640625
+      },
+      {
+        "id": "e940",
+        "source": 662,
+        "target": 663,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -365.92962646484375
+      },
+      {
+        "id": "e941",
+        "source": 663,
+        "target": 656,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 111.43268585205078
+      },
+      {
+        "id": "e942",
+        "source": 638,
+        "target": 661,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 30.66305160522461
+      },
+      {
+        "id": "e943",
+        "source": 545,
+        "target": 659,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -548.9235229492188
+      },
+      {
+        "id": "e944",
+        "source": 262,
+        "target": 657,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 33.15578079223633
+      },
+      {
+        "id": "e945",
+        "source": 647,
+        "target": 663,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -573.1370239257812
+      },
+      {
+        "id": "e946",
+        "source": 664,
+        "target": 665,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -21.8555965423584
+      },
+      {
+        "id": "e947",
+        "source": 665,
+        "target": 587,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 31.55953025817871
+      },
+      {
+        "id": "e948",
+        "source": 587,
+        "target": 666,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 20.367307662963867
+      },
+      {
+        "id": "e949",
+        "source": 666,
+        "target": 667,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 18.072486877441406
+      },
+      {
+        "id": "e950",
+        "source": 667,
+        "target": 668,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -23.720937728881836
+      },
+      {
+        "id": "e951",
+        "source": 668,
+        "target": 583,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 62.125755310058594
+      },
+      {
+        "id": "e952",
+        "source": 583,
+        "target": 669,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 19.02994728088379
+      },
+      {
+        "id": "e953",
+        "source": 669,
+        "target": 664,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 51.63071823120117
+      },
+      {
+        "id": "e954",
+        "source": 568,
+        "target": 665,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 43.00843048095703
+      },
+      {
+        "id": "e955",
+        "source": 579,
+        "target": 666,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -13.79619312286377
+      },
+      {
+        "id": "e956",
+        "source": 164,
+        "target": 668,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 80.99256134033203
+      },
+      {
+        "id": "e957",
+        "source": 580,
+        "target": 669,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 16.23046875
+      },
+      {
+        "id": "e958",
+        "source": 673,
+        "target": 674,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -334.7183532714844
+      },
+      {
+        "id": "e959",
+        "source": 674,
+        "target": 675,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 44.63790512084961
+      },
+      {
+        "id": "e960",
+        "source": 675,
+        "target": 676,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 63.84532928466797
+      },
+      {
+        "id": "e961",
+        "source": 676,
+        "target": 677,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -311.6012268066406
+      },
+      {
+        "id": "e962",
+        "source": 677,
+        "target": 678,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -304.4822082519531
+      },
+      {
+        "id": "e963",
+        "source": 678,
+        "target": 679,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 48.04290771484375
+      },
+      {
+        "id": "e964",
+        "source": 679,
+        "target": 680,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 36.19967269897461
+      },
+      {
+        "id": "e965",
+        "source": 680,
+        "target": 673,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -342.3763732910156
+      },
+      {
+        "id": "e966",
+        "source": 672,
+        "target": 674,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -197.02157592773438
+      },
+      {
+        "id": "e967",
+        "source": 670,
+        "target": 676,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -310.15167236328125
+      },
+      {
+        "id": "e968",
+        "source": 671,
+        "target": 678,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -174.20388793945312
+      },
+      {
+        "id": "e969",
+        "source": 568,
+        "target": 680,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -403.5121154785156
+      },
+      {
+        "id": "e970",
+        "source": 683,
+        "target": 684,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -28.965099334716797
+      },
+      {
+        "id": "e971",
+        "source": 684,
+        "target": 685,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 97.9033203125
+      },
+      {
+        "id": "e972",
+        "source": 685,
+        "target": 686,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 65.42445373535156
+      },
+      {
+        "id": "e973",
+        "source": 686,
+        "target": 687,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 44.7839469909668
+      },
+      {
+        "id": "e974",
+        "source": 687,
+        "target": 688,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 7.371175289154053
+      },
+      {
+        "id": "e975",
+        "source": 688,
+        "target": 689,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 64.26177215576172
+      },
+      {
+        "id": "e976",
+        "source": 689,
+        "target": 690,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 42.71900939941406
+      },
+      {
+        "id": "e977",
+        "source": 690,
+        "target": 683,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -3.199972152709961
+      },
+      {
+        "id": "e978",
+        "source": 306,
+        "target": 688,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 55.6914176940918
+      },
+      {
+        "id": "e979",
+        "source": 681,
+        "target": 690,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -50.24808120727539
+      },
+      {
+        "id": "e980",
+        "source": 670,
+        "target": 684,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 122.40458679199219
+      },
+      {
+        "id": "e981",
+        "source": 682,
+        "target": 686,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -27.841859817504883
+      },
+      {
+        "id": "e982",
+        "source": 308,
+        "target": 316,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -150.5460662841797
+      },
+      {
+        "id": "e983",
+        "source": 164,
+        "target": 314,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -496.0460510253906
+      },
+      {
+        "id": "e984",
+        "source": 307,
+        "target": 312,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 17.66151237487793
+      },
+      {
+        "id": "e985",
+        "source": 306,
+        "target": 310,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -471.4316711425781
+      },
+      {
+        "id": "e986",
+        "source": 691,
+        "target": 692,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 55.097469329833984
+      },
+      {
+        "id": "e987",
+        "source": 692,
+        "target": 693,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -131.5571746826172
+      },
+      {
+        "id": "e988",
+        "source": 693,
+        "target": 694,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -153.89248657226562
+      },
+      {
+        "id": "e989",
+        "source": 694,
+        "target": 695,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -55.569210052490234
+      },
+      {
+        "id": "e990",
+        "source": 695,
+        "target": 696,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 88.57049560546875
+      },
+      {
+        "id": "e991",
+        "source": 696,
+        "target": 697,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -206.90234375
+      },
+      {
+        "id": "e992",
+        "source": 697,
+        "target": 698,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -184.2036895751953
+      },
+      {
+        "id": "e993",
+        "source": 698,
+        "target": 691,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -72.69800567626953
+      },
+      {
+        "id": "e994",
+        "source": 681,
+        "target": 696,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -357.7384948730469
+      },
+      {
+        "id": "e995",
+        "source": 307,
+        "target": 698,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -7.352051258087158
+      },
+      {
+        "id": "e996",
+        "source": 579,
+        "target": 692,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -244.34506225585938
+      },
+      {
+        "id": "e997",
+        "source": 671,
+        "target": 694,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 19.941776275634766
+      },
+      {
+        "id": "e998",
+        "source": 699,
+        "target": 700,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 113.47853088378906
+      },
+      {
+        "id": "e999",
+        "source": 700,
+        "target": 701,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -327.58013916015625
+      },
+      {
+        "id": "e1000",
+        "source": 701,
+        "target": 702,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -343.6907958984375
+      },
+      {
+        "id": "e1001",
+        "source": 702,
+        "target": 703,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 66.58513641357422
+      },
+      {
+        "id": "e1002",
+        "source": 703,
+        "target": 704,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 75.72689819335938
+      },
+      {
+        "id": "e1003",
+        "source": 704,
+        "target": 705,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -328.9336853027344
+      },
+      {
+        "id": "e1004",
+        "source": 705,
+        "target": 706,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -335.1783142089844
+      },
+      {
+        "id": "e1005",
+        "source": 706,
+        "target": 699,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 106.4405746459961
+      },
+      {
+        "id": "e1006",
+        "source": 672,
+        "target": 704,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -32.50822067260742
+      },
+      {
+        "id": "e1007",
+        "source": 580,
+        "target": 702,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -484.8314208984375
+      },
+      {
+        "id": "e1008",
+        "source": 308,
+        "target": 700,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 48.60541534423828
+      },
+      {
+        "id": "e1009",
+        "source": 682,
+        "target": 706,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -403.0789794921875
+      },
+      {
+        "id": "e1010",
+        "source": 619,
+        "target": 707,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -36.92075729370117
+      },
+      {
+        "id": "e1011",
+        "source": 707,
+        "target": 625,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 80.88141632080078
+      },
+      {
+        "id": "e1012",
+        "source": 625,
+        "target": 708,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 28.348472595214844
+      },
+      {
+        "id": "e1013",
+        "source": 708,
+        "target": 623,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 46.23599624633789
+      },
+      {
+        "id": "e1014",
+        "source": 623,
+        "target": 709,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -43.22893142700195
+      },
+      {
+        "id": "e1015",
+        "source": 709,
+        "target": 621,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 76.12380981445312
+      },
+      {
+        "id": "e1016",
+        "source": 608,
+        "target": 707,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 107.1761703491211
+      },
+      {
+        "id": "e1017",
+        "source": 580,
+        "target": 708,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 3.2157649993896484
+      },
+      {
+        "id": "e1018",
+        "source": 218,
+        "target": 709,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 106.27325439453125
+      },
+      {
+        "id": "e1019",
+        "source": 618,
+        "target": 620,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 16.08055305480957
+      },
+      {
+        "id": "e1020",
+        "source": 712,
+        "target": 713,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -324.9808654785156
+      },
+      {
+        "id": "e1021",
+        "source": 713,
+        "target": 714,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 26.940542221069336
+      },
+      {
+        "id": "e1022",
+        "source": 714,
+        "target": 715,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 43.72077560424805
+      },
+      {
+        "id": "e1023",
+        "source": 715,
+        "target": 716,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -318.1197814941406
+      },
+      {
+        "id": "e1024",
+        "source": 716,
+        "target": 717,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -323.95233154296875
+      },
+      {
+        "id": "e1025",
+        "source": 717,
+        "target": 718,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 22.268245697021484
+      },
+      {
+        "id": "e1026",
+        "source": 718,
+        "target": 719,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 35.108070373535156
+      },
+      {
+        "id": "e1027",
+        "source": 719,
+        "target": 712,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -326.8837890625
+      },
+      {
+        "id": "e1028",
+        "source": 711,
+        "target": 713,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -155.4698944091797
+      },
+      {
+        "id": "e1029",
+        "source": 710,
+        "target": 715,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -365.085205078125
+      },
+      {
+        "id": "e1030",
+        "source": 672,
+        "target": 717,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -185.60667419433594
+      },
+      {
+        "id": "e1031",
+        "source": 608,
+        "target": 719,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -408.65863037109375
+      },
+      {
+        "id": "e1032",
+        "source": 721,
+        "target": 722,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -9.790022850036621
+      },
+      {
+        "id": "e1033",
+        "source": 722,
+        "target": 723,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 59.45014190673828
+      },
+      {
+        "id": "e1034",
+        "source": 723,
+        "target": 724,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 28.912395477294922
+      },
+      {
+        "id": "e1035",
+        "source": 724,
+        "target": 725,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 66.72978210449219
+      },
+      {
+        "id": "e1036",
+        "source": 725,
+        "target": 726,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -10.49438762664795
+      },
+      {
+        "id": "e1037",
+        "source": 726,
+        "target": 727,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 60.50730514526367
+      },
+      {
+        "id": "e1038",
+        "source": 727,
+        "target": 728,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 27.69147300720215
+      },
+      {
+        "id": "e1039",
+        "source": 728,
+        "target": 721,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 63.60791015625
+      },
+      {
+        "id": "e1040",
+        "source": 360,
+        "target": 726,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 64.98506927490234
+      },
+      {
+        "id": "e1041",
+        "source": 682,
+        "target": 728,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 28.795820236206055
+      },
+      {
+        "id": "e1042",
+        "source": 710,
+        "target": 722,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 63.39677810668945
+      },
+      {
+        "id": "e1043",
+        "source": 720,
+        "target": 724,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 29.653945922851562
+      },
+      {
+        "id": "e1044",
+        "source": 361,
+        "target": 369,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -201.21441650390625
+      },
+      {
+        "id": "e1045",
+        "source": 218,
+        "target": 367,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -402.86505126953125
+      },
+      {
+        "id": "e1046",
+        "source": 308,
+        "target": 365,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -175.93312072753906
+      },
+      {
+        "id": "e1047",
+        "source": 360,
+        "target": 363,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -349.7699279785156
+      },
+      {
+        "id": "e1048",
+        "source": 682,
+        "target": 700,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -331.4627685546875
+      },
+      {
+        "id": "e1049",
+        "source": 308,
+        "target": 702,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -111.84799194335938
+      },
+      {
+        "id": "e1050",
+        "source": 580,
+        "target": 704,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -394.6661071777344
+      },
+      {
+        "id": "e1051",
+        "source": 672,
+        "target": 706,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -11.770944595336914
+      },
+      {
+        "id": "e1052",
+        "source": 729,
+        "target": 730,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 108.65411376953125
+      },
+      {
+        "id": "e1053",
+        "source": 730,
+        "target": 731,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -337.0229187011719
+      },
+      {
+        "id": "e1054",
+        "source": 731,
+        "target": 732,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -328.8171081542969
+      },
+      {
+        "id": "e1055",
+        "source": 732,
+        "target": 733,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 83.6025390625
+      },
+      {
+        "id": "e1056",
+        "source": 733,
+        "target": 734,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 70.5746841430664
+      },
+      {
+        "id": "e1057",
+        "source": 734,
+        "target": 735,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -343.6612548828125
+      },
+      {
+        "id": "e1058",
+        "source": 735,
+        "target": 736,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -325.6085205078125
+      },
+      {
+        "id": "e1059",
+        "source": 736,
+        "target": 729,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 116.83563995361328
+      },
+      {
+        "id": "e1060",
+        "source": 711,
+        "target": 734,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -106.29259490966797
+      },
+      {
+        "id": "e1061",
+        "source": 618,
+        "target": 732,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -390.9602355957031
+      },
+      {
+        "id": "e1062",
+        "source": 361,
+        "target": 730,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -8.91394329071045
+      },
+      {
+        "id": "e1063",
+        "source": 720,
+        "target": 736,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -329.9280700683594
+      },
+      {
+        "id": "e1064",
+        "source": 654,
+        "target": 737,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 20.76358413696289
+      },
+      {
+        "id": "e1065",
+        "source": 737,
+        "target": 652,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 47.42334747314453
+      },
+      {
+        "id": "e1066",
+        "source": 652,
+        "target": 738,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -43.06765365600586
+      },
+      {
+        "id": "e1067",
+        "source": 738,
+        "target": 650,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 39.40184020996094
+      },
+      {
+        "id": "e1068",
+        "source": 637,
+        "target": 655,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 121.76518249511719
+      },
+      {
+        "id": "e1069",
+        "source": 618,
+        "target": 737,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 10.94950008392334
+      },
+      {
+        "id": "e1070",
+        "source": 261,
+        "target": 738,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 65.41686248779297
+      },
+      {
+        "id": "e1071",
+        "source": 647,
+        "target": 649,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -23.717126846313477
+      },
+      {
+        "id": "e1072",
+        "source": 741,
+        "target": 742,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -309.8069152832031
+      },
+      {
+        "id": "e1073",
+        "source": 742,
+        "target": 743,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 71.97689819335938
+      },
+      {
+        "id": "e1074",
+        "source": 743,
+        "target": 744,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 47.23636245727539
+      },
+      {
+        "id": "e1075",
+        "source": 744,
+        "target": 745,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -342.0753479003906
+      },
+      {
+        "id": "e1076",
+        "source": 745,
+        "target": 746,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -339.6709289550781
+      },
+      {
+        "id": "e1077",
+        "source": 746,
+        "target": 747,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 46.75324249267578
+      },
+      {
+        "id": "e1078",
+        "source": 747,
+        "target": 748,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 44.96529769897461
+      },
+      {
+        "id": "e1079",
+        "source": 748,
+        "target": 741,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -314.3450622558594
+      },
+      {
+        "id": "e1080",
+        "source": 740,
+        "target": 742,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -9.66675853729248
+      },
+      {
+        "id": "e1081",
+        "source": 739,
+        "target": 744,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -477.8509216308594
+      },
+      {
+        "id": "e1082",
+        "source": 711,
+        "target": 746,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -104.53768157958984
+      },
+      {
+        "id": "e1083",
+        "source": 637,
+        "target": 748,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -443.5974426269531
+      },
+      {
+        "id": "e1084",
+        "source": 750,
+        "target": 751,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 2.9238743782043457
+      },
+      {
+        "id": "e1085",
+        "source": 751,
+        "target": 752,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 66.754638671875
+      },
+      {
+        "id": "e1086",
+        "source": 752,
+        "target": 753,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 47.19404983520508
+      },
+      {
+        "id": "e1087",
+        "source": 753,
+        "target": 754,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 4.565484046936035
+      },
+      {
+        "id": "e1088",
+        "source": 754,
+        "target": 755,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -33.769569396972656
+      },
+      {
+        "id": "e1089",
+        "source": 755,
+        "target": 756,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 101.4224853515625
+      },
+      {
+        "id": "e1090",
+        "source": 756,
+        "target": 757,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 66.67538452148438
+      },
+      {
+        "id": "e1091",
+        "source": 757,
+        "target": 750,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 46.309600830078125
+      },
+      {
+        "id": "e1092",
+        "source": 403,
+        "target": 755,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 129.00405883789062
+      },
+      {
+        "id": "e1093",
+        "source": 720,
+        "target": 757,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -28.044164657592773
+      },
+      {
+        "id": "e1094",
+        "source": 739,
+        "target": 751,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 61.01142120361328
+      },
+      {
+        "id": "e1095",
+        "source": 749,
+        "target": 753,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -49.435245513916016
+      },
+      {
+        "id": "e1096",
+        "source": 404,
+        "target": 412,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -181.18927001953125
+      },
+      {
+        "id": "e1097",
+        "source": 261,
+        "target": 410,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -394.7684020996094
+      },
+      {
+        "id": "e1098",
+        "source": 361,
+        "target": 408,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -216.31536865234375
+      },
+      {
+        "id": "e1099",
+        "source": 403,
+        "target": 406,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -294.68988037109375
+      },
+      {
+        "id": "e1100",
+        "source": 720,
+        "target": 730,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -404.6457214355469
+      },
+      {
+        "id": "e1101",
+        "source": 361,
+        "target": 732,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -19.67499542236328
+      },
+      {
+        "id": "e1102",
+        "source": 618,
+        "target": 734,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -480.4571838378906
+      },
+      {
+        "id": "e1103",
+        "source": 711,
+        "target": 736,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 50.63441848754883
+      },
+      {
+        "id": "e1104",
+        "source": 758,
+        "target": 759,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -44.49257278442383
+      },
+      {
+        "id": "e1105",
+        "source": 759,
+        "target": 760,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -163.0102996826172
+      },
+      {
+        "id": "e1106",
+        "source": 760,
+        "target": 761,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -126.23248291015625
+      },
+      {
+        "id": "e1107",
+        "source": 761,
+        "target": 762,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 89.34029388427734
+      },
+      {
+        "id": "e1108",
+        "source": 762,
+        "target": 763,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -31.874757766723633
+      },
+      {
+        "id": "e1109",
+        "source": 763,
+        "target": 764,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -186.6184844970703
+      },
+      {
+        "id": "e1110",
+        "source": 764,
+        "target": 765,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -198.5343780517578
+      },
+      {
+        "id": "e1111",
+        "source": 765,
+        "target": 758,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 102.11245727539062
+      },
+      {
+        "id": "e1112",
+        "source": 740,
+        "target": 763,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 40.95456314086914
+      },
+      {
+        "id": "e1113",
+        "source": 647,
+        "target": 761,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -251.1324920654297
+      },
+      {
+        "id": "e1114",
+        "source": 404,
+        "target": 759,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 45.93418884277344
+      },
+      {
+        "id": "e1115",
+        "source": 749,
+        "target": 765,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -357.3053283691406
+      },
+      {
+        "id": "e1116",
+        "source": 769,
+        "target": 770,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1117",
+        "source": 770,
+        "target": 771,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1118",
+        "source": 771,
+        "target": 772,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1119",
+        "source": 772,
+        "target": 773,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1120",
+        "source": 773,
+        "target": 774,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1121",
+        "source": 774,
+        "target": 775,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1122",
+        "source": 775,
+        "target": 776,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1123",
+        "source": 776,
+        "target": 769,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1124",
+        "source": 766,
+        "target": 770,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1125",
+        "source": 767,
+        "target": 772,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1126",
+        "source": 440,
+        "target": 774,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1127",
+        "source": 768,
+        "target": 776,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1128",
+        "source": 780,
+        "target": 781,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -574.6302490234375
+      },
+      {
+        "id": "e1129",
+        "source": 781,
+        "target": 782,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -451.9010925292969
+      },
+      {
+        "id": "e1130",
+        "source": 782,
+        "target": 783,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 492.1423034667969
+      },
+      {
+        "id": "e1131",
+        "source": 783,
+        "target": 784,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -547.9049682617188
+      },
+      {
+        "id": "e1132",
+        "source": 784,
+        "target": 785,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -481.1868896484375
+      },
+      {
+        "id": "e1133",
+        "source": 785,
+        "target": 786,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -406.22540283203125
+      },
+      {
+        "id": "e1134",
+        "source": 786,
+        "target": 787,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 505.8546142578125
+      },
+      {
+        "id": "e1135",
+        "source": 787,
+        "target": 780,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -596.3832397460938
+      },
+      {
+        "id": "e1136",
+        "source": 779,
+        "target": 781,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 305.5643005371094
+      },
+      {
+        "id": "e1137",
+        "source": 777,
+        "target": 783,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -868.2677612304688
+      },
+      {
+        "id": "e1138",
+        "source": 778,
+        "target": 785,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 234.2503204345703
+      },
+      {
+        "id": "e1139",
+        "source": 766,
+        "target": 787,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -923.5907592773438
+      },
+      {
+        "id": "e1140",
+        "source": 790,
+        "target": 791,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 6.902329444885254
+      },
+      {
+        "id": "e1141",
+        "source": 791,
+        "target": 792,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -23.042980194091797
+      },
+      {
+        "id": "e1142",
+        "source": 792,
+        "target": 793,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -62.04189682006836
+      },
+      {
+        "id": "e1143",
+        "source": 793,
+        "target": 794,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 72.02832794189453
+      },
+      {
+        "id": "e1144",
+        "source": 794,
+        "target": 795,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 23.583280563354492
+      },
+      {
+        "id": "e1145",
+        "source": 795,
+        "target": 796,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -12.764949798583984
+      },
+      {
+        "id": "e1146",
+        "source": 796,
+        "target": 797,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -29.025333404541016
+      },
+      {
+        "id": "e1147",
+        "source": 797,
+        "target": 790,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 16.517419815063477
+      },
+      {
+        "id": "e1148",
+        "source": 451,
+        "target": 795,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -36.735557556152344
+      },
+      {
+        "id": "e1149",
+        "source": 788,
+        "target": 797,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 50.803340911865234
+      },
+      {
+        "id": "e1150",
+        "source": 777,
+        "target": 791,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -28.664857864379883
+      },
+      {
+        "id": "e1151",
+        "source": 789,
+        "target": 793,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 139.60238647460938
+      },
+      {
+        "id": "e1152",
+        "source": 453,
+        "target": 461,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -367.8162841796875
+      },
+      {
+        "id": "e1153",
+        "source": 440,
+        "target": 459,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1161.4188232421875
+      },
+      {
+        "id": "e1154",
+        "source": 452,
+        "target": 457,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -212.01394653320312
+      },
+      {
+        "id": "e1155",
+        "source": 451,
+        "target": 455,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1429.903564453125
+      },
+      {
+        "id": "e1156",
+        "source": 798,
+        "target": 799,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 144.8607940673828
+      },
+      {
+        "id": "e1157",
+        "source": 799,
+        "target": 800,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -647.3428344726562
+      },
+      {
+        "id": "e1158",
+        "source": 800,
+        "target": 801,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -664.2402954101562
+      },
+      {
+        "id": "e1159",
+        "source": 801,
+        "target": 802,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -207.26058959960938
+      },
+      {
+        "id": "e1160",
+        "source": 802,
+        "target": 803,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 166.47378540039062
+      },
+      {
+        "id": "e1161",
+        "source": 803,
+        "target": 804,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -609.9439697265625
+      },
+      {
+        "id": "e1162",
+        "source": 804,
+        "target": 805,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -588.5996704101562
+      },
+      {
+        "id": "e1163",
+        "source": 805,
+        "target": 798,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -203.7540740966797
+      },
+      {
+        "id": "e1164",
+        "source": 788,
+        "target": 803,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -944.3058471679688
+      },
+      {
+        "id": "e1165",
+        "source": 452,
+        "target": 805,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 58.93623352050781
+      },
+      {
+        "id": "e1166",
+        "source": 767,
+        "target": 799,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -934.2350463867188
+      },
+      {
+        "id": "e1167",
+        "source": 778,
+        "target": 801,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 124.31576538085938
+      },
+      {
+        "id": "e1168",
+        "source": 806,
+        "target": 807,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 127.30692291259766
+      },
+      {
+        "id": "e1169",
+        "source": 807,
+        "target": 808,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1039.238525390625
+      },
+      {
+        "id": "e1170",
+        "source": 808,
+        "target": 809,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1059.36572265625
+      },
+      {
+        "id": "e1171",
+        "source": 809,
+        "target": 810,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 87.44322967529297
+      },
+      {
+        "id": "e1172",
+        "source": 810,
+        "target": 811,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 166.40867614746094
+      },
+      {
+        "id": "e1173",
+        "source": 811,
+        "target": 812,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -995.8287963867188
+      },
+      {
+        "id": "e1174",
+        "source": 812,
+        "target": 813,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1021.7332763671875
+      },
+      {
+        "id": "e1175",
+        "source": 813,
+        "target": 806,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 151.4491424560547
+      },
+      {
+        "id": "e1176",
+        "source": 779,
+        "target": 811,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -79.76828002929688
+      },
+      {
+        "id": "e1177",
+        "source": 768,
+        "target": 809,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1445.926025390625
+      },
+      {
+        "id": "e1178",
+        "source": 453,
+        "target": 807,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -350.6004333496094
+      },
+      {
+        "id": "e1179",
+        "source": 789,
+        "target": 813,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1277.7659912109375
+      },
+      {
+        "id": "e1180",
+        "source": 816,
+        "target": 817,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1181",
+        "source": 817,
+        "target": 818,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1182",
+        "source": 818,
+        "target": 819,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1183",
+        "source": 819,
+        "target": 820,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1184",
+        "source": 820,
+        "target": 821,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1185",
+        "source": 821,
+        "target": 822,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1186",
+        "source": 822,
+        "target": 823,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1187",
+        "source": 823,
+        "target": 816,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1188",
+        "source": 814,
+        "target": 817,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1189",
+        "source": 768,
+        "target": 819,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1190",
+        "source": 488,
+        "target": 821,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1191",
+        "source": 815,
+        "target": 823,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1192",
+        "source": 826,
+        "target": 827,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -521.6185913085938
+      },
+      {
+        "id": "e1193",
+        "source": 827,
+        "target": 828,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -481.8138427734375
+      },
+      {
+        "id": "e1194",
+        "source": 828,
+        "target": 829,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 482.8973083496094
+      },
+      {
+        "id": "e1195",
+        "source": 829,
+        "target": 830,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -492.8396301269531
+      },
+      {
+        "id": "e1196",
+        "source": 830,
+        "target": 831,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -440.8075866699219
+      },
+      {
+        "id": "e1197",
+        "source": 831,
+        "target": 832,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -428.3905029296875
+      },
+      {
+        "id": "e1198",
+        "source": 832,
+        "target": 833,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 479.1604919433594
+      },
+      {
+        "id": "e1199",
+        "source": 833,
+        "target": 826,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -538.484130859375
+      },
+      {
+        "id": "e1200",
+        "source": 825,
+        "target": 827,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 220.00201416015625
+      },
+      {
+        "id": "e1201",
+        "source": 824,
+        "target": 829,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -802.4065551757812
+      },
+      {
+        "id": "e1202",
+        "source": 779,
+        "target": 831,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 169.22853088378906
+      },
+      {
+        "id": "e1203",
+        "source": 814,
+        "target": 833,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -844.1033935546875
+      },
+      {
+        "id": "e1204",
+        "source": 835,
+        "target": 836,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 40.85280990600586
+      },
+      {
+        "id": "e1205",
+        "source": 836,
+        "target": 837,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 35.88749694824219
+      },
+      {
+        "id": "e1206",
+        "source": 837,
+        "target": 838,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 29.750612258911133
+      },
+      {
+        "id": "e1207",
+        "source": 838,
+        "target": 839,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 19.98900032043457
+      },
+      {
+        "id": "e1208",
+        "source": 839,
+        "target": 840,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 11.176944732666016
+      },
+      {
+        "id": "e1209",
+        "source": 840,
+        "target": 841,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 66.03327941894531
+      },
+      {
+        "id": "e1210",
+        "source": 841,
+        "target": 842,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 3.2550711631774902
+      },
+      {
+        "id": "e1211",
+        "source": 842,
+        "target": 835,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 13.65652847290039
+      },
+      {
+        "id": "e1212",
+        "source": 498,
+        "target": 840,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 57.2254638671875
+      },
+      {
+        "id": "e1213",
+        "source": 789,
+        "target": 842,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 18.373517990112305
+      },
+      {
+        "id": "e1214",
+        "source": 824,
+        "target": 836,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 8.749662399291992
+      },
+      {
+        "id": "e1215",
+        "source": 834,
+        "target": 838,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 108.16893005371094
+      },
+      {
+        "id": "e1216",
+        "source": 499,
+        "target": 507,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -314.99884033203125
+      },
+      {
+        "id": "e1217",
+        "source": 488,
+        "target": 505,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1337.6630859375
+      },
+      {
+        "id": "e1218",
+        "source": 453,
+        "target": 503,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -323.7039489746094
+      },
+      {
+        "id": "e1219",
+        "source": 498,
+        "target": 501,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1386.101806640625
+      },
+      {
+        "id": "e1220",
+        "source": 789,
+        "target": 807,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1336.168701171875
+      },
+      {
+        "id": "e1221",
+        "source": 453,
+        "target": 809,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -495.9552917480469
+      },
+      {
+        "id": "e1222",
+        "source": 768,
+        "target": 811,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1172.6346435546875
+      },
+      {
+        "id": "e1223",
+        "source": 779,
+        "target": 813,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -180.7095489501953
+      },
+      {
+        "id": "e1224",
+        "source": 843,
+        "target": 844,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 107.4990005493164
+      },
+      {
+        "id": "e1225",
+        "source": 844,
+        "target": 845,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1038.964599609375
+      },
+      {
+        "id": "e1226",
+        "source": 845,
+        "target": 846,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1035.255615234375
+      },
+      {
+        "id": "e1227",
+        "source": 846,
+        "target": 847,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 115.16912078857422
+      },
+      {
+        "id": "e1228",
+        "source": 847,
+        "target": 848,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 164.7960662841797
+      },
+      {
+        "id": "e1229",
+        "source": 848,
+        "target": 849,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -967.403564453125
+      },
+      {
+        "id": "e1230",
+        "source": 849,
+        "target": 850,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -966.0250244140625
+      },
+      {
+        "id": "e1231",
+        "source": 850,
+        "target": 843,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 142.5643310546875
+      },
+      {
+        "id": "e1232",
+        "source": 825,
+        "target": 848,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -87.91667938232422
+      },
+      {
+        "id": "e1233",
+        "source": 815,
+        "target": 846,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1367.291259765625
+      },
+      {
+        "id": "e1234",
+        "source": 499,
+        "target": 844,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -409.6125793457031
+      },
+      {
+        "id": "e1235",
+        "source": 834,
+        "target": 850,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1176.145263671875
+      },
+      {
+        "id": "e1236",
+        "source": 853,
+        "target": 854,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1237",
+        "source": 854,
+        "target": 855,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1238",
+        "source": 855,
+        "target": 856,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1239",
+        "source": 856,
+        "target": 857,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1240",
+        "source": 857,
+        "target": 858,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1241",
+        "source": 858,
+        "target": 859,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1242",
+        "source": 859,
+        "target": 860,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1243",
+        "source": 860,
+        "target": 853,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1244",
+        "source": 851,
+        "target": 854,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1245",
+        "source": 815,
+        "target": 856,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1246",
+        "source": 525,
+        "target": 858,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1247",
+        "source": 852,
+        "target": 860,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1248",
+        "source": 863,
+        "target": 864,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -506.8996276855469
+      },
+      {
+        "id": "e1249",
+        "source": 864,
+        "target": 865,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -465.343994140625
+      },
+      {
+        "id": "e1250",
+        "source": 865,
+        "target": 866,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 493.62249755859375
+      },
+      {
+        "id": "e1251",
+        "source": 866,
+        "target": 867,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -515.196533203125
+      },
+      {
+        "id": "e1252",
+        "source": 867,
+        "target": 868,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -461.30267333984375
+      },
+      {
+        "id": "e1253",
+        "source": 868,
+        "target": 869,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -402.6900329589844
+      },
+      {
+        "id": "e1254",
+        "source": 869,
+        "target": 870,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 463.7381896972656
+      },
+      {
+        "id": "e1255",
+        "source": 870,
+        "target": 863,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -525.8374633789062
+      },
+      {
+        "id": "e1256",
+        "source": 862,
+        "target": 864,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 218.70538330078125
+      },
+      {
+        "id": "e1257",
+        "source": 861,
+        "target": 866,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -834.2200927734375
+      },
+      {
+        "id": "e1258",
+        "source": 825,
+        "target": 868,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 212.34466552734375
+      },
+      {
+        "id": "e1259",
+        "source": 851,
+        "target": 870,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -823.1117553710938
+      },
+      {
+        "id": "e1260",
+        "source": 872,
+        "target": 873,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 26.46579360961914
+      },
+      {
+        "id": "e1261",
+        "source": 873,
+        "target": 874,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 19.42591667175293
+      },
+      {
+        "id": "e1262",
+        "source": 874,
+        "target": 875,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 10.211326599121094
+      },
+      {
+        "id": "e1263",
+        "source": 875,
+        "target": 876,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -19.193689346313477
+      },
+      {
+        "id": "e1264",
+        "source": 876,
+        "target": 877,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 52.51225662231445
+      },
+      {
+        "id": "e1265",
+        "source": 877,
+        "target": 878,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 43.333621978759766
+      },
+      {
+        "id": "e1266",
+        "source": 878,
+        "target": 879,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 17.2021427154541
+      },
+      {
+        "id": "e1267",
+        "source": 879,
+        "target": 872,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -16.740808486938477
+      },
+      {
+        "id": "e1268",
+        "source": 535,
+        "target": 877,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 117.69075012207031
+      },
+      {
+        "id": "e1269",
+        "source": 834,
+        "target": 879,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -35.9047966003418
+      },
+      {
+        "id": "e1270",
+        "source": 861,
+        "target": 873,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 6.466575622558594
+      },
+      {
+        "id": "e1271",
+        "source": 871,
+        "target": 875,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -3.7654590606689453
+      },
+      {
+        "id": "e1272",
+        "source": 536,
+        "target": 544,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -79.56261444091797
+      },
+      {
+        "id": "e1273",
+        "source": 525,
+        "target": 542,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1459.935791015625
+      },
+      {
+        "id": "e1274",
+        "source": 499,
+        "target": 540,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -303.49627685546875
+      },
+      {
+        "id": "e1275",
+        "source": 535,
+        "target": 538,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1308.269287109375
+      },
+      {
+        "id": "e1276",
+        "source": 834,
+        "target": 844,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1393.08447265625
+      },
+      {
+        "id": "e1277",
+        "source": 499,
+        "target": 846,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -409.61859130859375
+      },
+      {
+        "id": "e1278",
+        "source": 815,
+        "target": 848,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1152.9754638671875
+      },
+      {
+        "id": "e1279",
+        "source": 825,
+        "target": 850,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -155.47540283203125
+      },
+      {
+        "id": "e1280",
+        "source": 880,
+        "target": 881,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -215.5977020263672
+      },
+      {
+        "id": "e1281",
+        "source": 881,
+        "target": 882,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -717.4212036132812
+      },
+      {
+        "id": "e1282",
+        "source": 882,
+        "target": 883,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -719.293212890625
+      },
+      {
+        "id": "e1283",
+        "source": 883,
+        "target": 884,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 182.94044494628906
+      },
+      {
+        "id": "e1284",
+        "source": 884,
+        "target": 885,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -165.1780548095703
+      },
+      {
+        "id": "e1285",
+        "source": 885,
+        "target": 886,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -607.6126098632812
+      },
+      {
+        "id": "e1286",
+        "source": 886,
+        "target": 887,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -614.96923828125
+      },
+      {
+        "id": "e1287",
+        "source": 887,
+        "target": 880,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 158.8480682373047
+      },
+      {
+        "id": "e1288",
+        "source": 862,
+        "target": 885,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 116.06452941894531
+      },
+      {
+        "id": "e1289",
+        "source": 852,
+        "target": 883,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1026.793701171875
+      },
+      {
+        "id": "e1290",
+        "source": 536,
+        "target": 881,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 134.35043334960938
+      },
+      {
+        "id": "e1291",
+        "source": 871,
+        "target": 887,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -940.738525390625
+      },
+      {
+        "id": "e1292",
+        "source": 888,
+        "target": 889,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 2.1096580028533936
+      },
+      {
+        "id": "e1293",
+        "source": 889,
+        "target": 796,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 28.50617790222168
+      },
+      {
+        "id": "e1294",
+        "source": 796,
+        "target": 890,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 23.86722755432129
+      },
+      {
+        "id": "e1295",
+        "source": 890,
+        "target": 891,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -28.91972541809082
+      },
+      {
+        "id": "e1296",
+        "source": 891,
+        "target": 892,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -12.047060012817383
+      },
+      {
+        "id": "e1297",
+        "source": 892,
+        "target": 792,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 93.1879653930664
+      },
+      {
+        "id": "e1298",
+        "source": 792,
+        "target": 893,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 49.96150207519531
+      },
+      {
+        "id": "e1299",
+        "source": 893,
+        "target": 888,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -8.03536605834961
+      },
+      {
+        "id": "e1300",
+        "source": 777,
+        "target": 889,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 27.933143615722656
+      },
+      {
+        "id": "e1301",
+        "source": 788,
+        "target": 890,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -54.328392028808594
+      },
+      {
+        "id": "e1302",
+        "source": 451,
+        "target": 892,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 107.57416534423828
+      },
+      {
+        "id": "e1303",
+        "source": 789,
+        "target": 893,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -61.18993377685547
+      },
+      {
+        "id": "e1304",
+        "source": 897,
+        "target": 898,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -234.7389373779297
+      },
+      {
+        "id": "e1305",
+        "source": 898,
+        "target": 899,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -292.9488830566406
+      },
+      {
+        "id": "e1306",
+        "source": 899,
+        "target": 900,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 331.9979553222656
+      },
+      {
+        "id": "e1307",
+        "source": 900,
+        "target": 901,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -378.00128173828125
+      },
+      {
+        "id": "e1308",
+        "source": 901,
+        "target": 902,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -332.07763671875
+      },
+      {
+        "id": "e1309",
+        "source": 902,
+        "target": 903,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -272.1475830078125
+      },
+      {
+        "id": "e1310",
+        "source": 903,
+        "target": 904,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 340.72198486328125
+      },
+      {
+        "id": "e1311",
+        "source": 904,
+        "target": 897,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -260.8210144042969
+      },
+      {
+        "id": "e1312",
+        "source": 896,
+        "target": 898,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 43.19361114501953
+      },
+      {
+        "id": "e1313",
+        "source": 894,
+        "target": 900,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -595.2507934570312
+      },
+      {
+        "id": "e1314",
+        "source": 895,
+        "target": 902,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 167.81082153320312
+      },
+      {
+        "id": "e1315",
+        "source": 777,
+        "target": 904,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -486.8863220214844
+      },
+      {
+        "id": "e1316",
+        "source": 907,
+        "target": 908,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 13.045841217041016
+      },
+      {
+        "id": "e1317",
+        "source": 908,
+        "target": 909,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -26.94277572631836
+      },
+      {
+        "id": "e1318",
+        "source": 909,
+        "target": 910,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -67.24591827392578
+      },
+      {
+        "id": "e1319",
+        "source": 910,
+        "target": 911,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 44.50215148925781
+      },
+      {
+        "id": "e1320",
+        "source": 911,
+        "target": 912,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 35.22170639038086
+      },
+      {
+        "id": "e1321",
+        "source": 912,
+        "target": 913,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 1.9949662685394287
+      },
+      {
+        "id": "e1322",
+        "source": 913,
+        "target": 914,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -28.562776565551758
+      },
+      {
+        "id": "e1323",
+        "source": 914,
+        "target": 907,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -7.080305576324463
+      },
+      {
+        "id": "e1324",
+        "source": 568,
+        "target": 912,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -28.09424591064453
+      },
+      {
+        "id": "e1325",
+        "source": 905,
+        "target": 914,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 33.35392379760742
+      },
+      {
+        "id": "e1326",
+        "source": 894,
+        "target": 908,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -36.370304107666016
+      },
+      {
+        "id": "e1327",
+        "source": 906,
+        "target": 910,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 127.23869323730469
+      },
+      {
+        "id": "e1328",
+        "source": 570,
+        "target": 578,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -169.9901885986328
+      },
+      {
+        "id": "e1329",
+        "source": 451,
+        "target": 576,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -915.38671875
+      },
+      {
+        "id": "e1330",
+        "source": 569,
+        "target": 574,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -20.564355850219727
+      },
+      {
+        "id": "e1331",
+        "source": 568,
+        "target": 572,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -979.8231811523438
+      },
+      {
+        "id": "e1332",
+        "source": 915,
+        "target": 916,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 124.60205078125
+      },
+      {
+        "id": "e1333",
+        "source": 916,
+        "target": 917,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -425.15130615234375
+      },
+      {
+        "id": "e1334",
+        "source": 917,
+        "target": 918,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -389.8005676269531
+      },
+      {
+        "id": "e1335",
+        "source": 918,
+        "target": 919,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -65.3849105834961
+      },
+      {
+        "id": "e1336",
+        "source": 919,
+        "target": 920,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 150.72406005859375
+      },
+      {
+        "id": "e1337",
+        "source": 920,
+        "target": 921,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -464.5380554199219
+      },
+      {
+        "id": "e1338",
+        "source": 921,
+        "target": 922,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -440.7620849609375
+      },
+      {
+        "id": "e1339",
+        "source": 922,
+        "target": 915,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -101.87803649902344
+      },
+      {
+        "id": "e1340",
+        "source": 905,
+        "target": 920,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -682.5804443359375
+      },
+      {
+        "id": "e1341",
+        "source": 569,
+        "target": 922,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 93.35608673095703
+      },
+      {
+        "id": "e1342",
+        "source": 788,
+        "target": 916,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -642.79052734375
+      },
+      {
+        "id": "e1343",
+        "source": 895,
+        "target": 918,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 89.05506134033203
+      },
+      {
+        "id": "e1344",
+        "source": 923,
+        "target": 924,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 114.2127685546875
+      },
+      {
+        "id": "e1345",
+        "source": 924,
+        "target": 925,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -726.4052734375
+      },
+      {
+        "id": "e1346",
+        "source": 925,
+        "target": 926,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -720.7330322265625
+      },
+      {
+        "id": "e1347",
+        "source": 926,
+        "target": 927,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 95.40742492675781
+      },
+      {
+        "id": "e1348",
+        "source": 927,
+        "target": 928,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 98.97991180419922
+      },
+      {
+        "id": "e1349",
+        "source": 928,
+        "target": 929,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -691.1205444335938
+      },
+      {
+        "id": "e1350",
+        "source": 929,
+        "target": 930,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -678.0692138671875
+      },
+      {
+        "id": "e1351",
+        "source": 930,
+        "target": 923,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 151.0904083251953
+      },
+      {
+        "id": "e1352",
+        "source": 896,
+        "target": 928,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -172.40750122070312
+      },
+      {
+        "id": "e1353",
+        "source": 789,
+        "target": 926,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -939.8857421875
+      },
+      {
+        "id": "e1354",
+        "source": 570,
+        "target": 924,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -235.20675659179688
+      },
+      {
+        "id": "e1355",
+        "source": 906,
+        "target": 930,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -763.0610961914062
+      },
+      {
+        "id": "e1356",
+        "source": 835,
+        "target": 931,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -5.279984474182129
+      },
+      {
+        "id": "e1357",
+        "source": 931,
+        "target": 841,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 21.236818313598633
+      },
+      {
+        "id": "e1358",
+        "source": 841,
+        "target": 932,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -11.41021728515625
+      },
+      {
+        "id": "e1359",
+        "source": 932,
+        "target": 839,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 57.810665130615234
+      },
+      {
+        "id": "e1360",
+        "source": 824,
+        "target": 931,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 24.706100463867188
+      },
+      {
+        "id": "e1361",
+        "source": 789,
+        "target": 932,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 61.60435485839844
+      },
+      {
+        "id": "e1362",
+        "source": 498,
+        "target": 838,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 99.87590026855469
+      },
+      {
+        "id": "e1363",
+        "source": 834,
+        "target": 836,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 5.232339382171631
+      },
+      {
+        "id": "e1364",
+        "source": 935,
+        "target": 936,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -205.86273193359375
+      },
+      {
+        "id": "e1365",
+        "source": 936,
+        "target": 937,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -310.1991271972656
+      },
+      {
+        "id": "e1366",
+        "source": 937,
+        "target": 938,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 324.44891357421875
+      },
+      {
+        "id": "e1367",
+        "source": 938,
+        "target": 939,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -359.66424560546875
+      },
+      {
+        "id": "e1368",
+        "source": 939,
+        "target": 940,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -318.38177490234375
+      },
+      {
+        "id": "e1369",
+        "source": 940,
+        "target": 941,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -273.33819580078125
+      },
+      {
+        "id": "e1370",
+        "source": 941,
+        "target": 942,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 314.1282043457031
+      },
+      {
+        "id": "e1371",
+        "source": 942,
+        "target": 935,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -227.2716827392578
+      },
+      {
+        "id": "e1372",
+        "source": 934,
+        "target": 936,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -4.186066150665283
+      },
+      {
+        "id": "e1373",
+        "source": 933,
+        "target": 938,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -569.2413940429688
+      },
+      {
+        "id": "e1374",
+        "source": 896,
+        "target": 940,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 149.1224365234375
+      },
+      {
+        "id": "e1375",
+        "source": 824,
+        "target": 942,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -433.3476257324219
+      },
+      {
+        "id": "e1376",
+        "source": 944,
+        "target": 945,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 49.524017333984375
+      },
+      {
+        "id": "e1377",
+        "source": 945,
+        "target": 946,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 28.956357955932617
+      },
+      {
+        "id": "e1378",
+        "source": 946,
+        "target": 947,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 5.468489646911621
+      },
+      {
+        "id": "e1379",
+        "source": 947,
+        "target": 948,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 4.500604629516602
+      },
+      {
+        "id": "e1380",
+        "source": 948,
+        "target": 949,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 32.88850402832031
+      },
+      {
+        "id": "e1381",
+        "source": 949,
+        "target": 950,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 53.8199348449707
+      },
+      {
+        "id": "e1382",
+        "source": 950,
+        "target": 951,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -27.70573616027832
+      },
+      {
+        "id": "e1383",
+        "source": 951,
+        "target": 944,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 29.94845962524414
+      },
+      {
+        "id": "e1384",
+        "source": 608,
+        "target": 949,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 29.082571029663086
+      },
+      {
+        "id": "e1385",
+        "source": 906,
+        "target": 951,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 73.13282775878906
+      },
+      {
+        "id": "e1386",
+        "source": 933,
+        "target": 945,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -62.29170227050781
+      },
+      {
+        "id": "e1387",
+        "source": 943,
+        "target": 947,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 145.23028564453125
+      },
+      {
+        "id": "e1388",
+        "source": 609,
+        "target": 617,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -182.8934783935547
+      },
+      {
+        "id": "e1389",
+        "source": 498,
+        "target": 615,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -968.6295166015625
+      },
+      {
+        "id": "e1390",
+        "source": 570,
+        "target": 613,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -134.3938446044922
+      },
+      {
+        "id": "e1391",
+        "source": 608,
+        "target": 611,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -929.7752685546875
+      },
+      {
+        "id": "e1392",
+        "source": 906,
+        "target": 924,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -943.6211547851562
+      },
+      {
+        "id": "e1393",
+        "source": 570,
+        "target": 926,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -224.5667266845703
+      },
+      {
+        "id": "e1394",
+        "source": 789,
+        "target": 928,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -891.5692138671875
+      },
+      {
+        "id": "e1395",
+        "source": 896,
+        "target": 930,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 1.2824984788894653
+      },
+      {
+        "id": "e1396",
+        "source": 952,
+        "target": 953,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 98.23347473144531
+      },
+      {
+        "id": "e1397",
+        "source": 953,
+        "target": 954,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -725.3160400390625
+      },
+      {
+        "id": "e1398",
+        "source": 954,
+        "target": 955,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -702.929443359375
+      },
+      {
+        "id": "e1399",
+        "source": 955,
+        "target": 956,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 100.60515594482422
+      },
+      {
+        "id": "e1400",
+        "source": 956,
+        "target": 957,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 97.37583923339844
+      },
+      {
+        "id": "e1401",
+        "source": 957,
+        "target": 958,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -700.5425415039062
+      },
+      {
+        "id": "e1402",
+        "source": 958,
+        "target": 959,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -671.5658569335938
+      },
+      {
+        "id": "e1403",
+        "source": 959,
+        "target": 952,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 149.1842803955078
+      },
+      {
+        "id": "e1404",
+        "source": 934,
+        "target": 957,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -213.35989379882812
+      },
+      {
+        "id": "e1405",
+        "source": 834,
+        "target": 955,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -857.6858520507812
+      },
+      {
+        "id": "e1406",
+        "source": 609,
+        "target": 953,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -302.89569091796875
+      },
+      {
+        "id": "e1407",
+        "source": 943,
+        "target": 959,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -714.1204833984375
+      },
+      {
+        "id": "e1408",
+        "source": 861,
+        "target": 879,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -8.529414176940918
+      },
+      {
+        "id": "e1409",
+        "source": 834,
+        "target": 877,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 125.63401794433594
+      },
+      {
+        "id": "e1410",
+        "source": 535,
+        "target": 875,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 14.36156177520752
+      },
+      {
+        "id": "e1411",
+        "source": 871,
+        "target": 873,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 5.0615997314453125
+      },
+      {
+        "id": "e1412",
+        "source": 962,
+        "target": 963,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -277.6959228515625
+      },
+      {
+        "id": "e1413",
+        "source": 963,
+        "target": 964,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -266.2190856933594
+      },
+      {
+        "id": "e1414",
+        "source": 964,
+        "target": 965,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 322.4071350097656
+      },
+      {
+        "id": "e1415",
+        "source": 965,
+        "target": 966,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -420.3042297363281
+      },
+      {
+        "id": "e1416",
+        "source": 966,
+        "target": 967,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -369.7561950683594
+      },
+      {
+        "id": "e1417",
+        "source": 967,
+        "target": 968,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -251.48672485351562
+      },
+      {
+        "id": "e1418",
+        "source": 968,
+        "target": 969,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 308.2652282714844
+      },
+      {
+        "id": "e1419",
+        "source": 969,
+        "target": 962,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -315.3257141113281
+      },
+      {
+        "id": "e1420",
+        "source": 961,
+        "target": 963,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 111.34696197509766
+      },
+      {
+        "id": "e1421",
+        "source": 960,
+        "target": 965,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -632.6265258789062
+      },
+      {
+        "id": "e1422",
+        "source": 934,
+        "target": 967,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 223.3099365234375
+      },
+      {
+        "id": "e1423",
+        "source": 861,
+        "target": 969,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -519.3328857421875
+      },
+      {
+        "id": "e1424",
+        "source": 971,
+        "target": 972,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 43.652889251708984
+      },
+      {
+        "id": "e1425",
+        "source": 972,
+        "target": 973,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 16.269765853881836
+      },
+      {
+        "id": "e1426",
+        "source": 973,
+        "target": 974,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -10.438786506652832
+      },
+      {
+        "id": "e1427",
+        "source": 974,
+        "target": 975,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -30.3612003326416
+      },
+      {
+        "id": "e1428",
+        "source": 975,
+        "target": 976,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 57.449161529541016
+      },
+      {
+        "id": "e1429",
+        "source": 976,
+        "target": 977,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 60.74336242675781
+      },
+      {
+        "id": "e1430",
+        "source": 977,
+        "target": 978,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 14.189180374145508
+      },
+      {
+        "id": "e1431",
+        "source": 978,
+        "target": 971,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -21.61602783203125
+      },
+      {
+        "id": "e1432",
+        "source": 637,
+        "target": 976,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 74.26739501953125
+      },
+      {
+        "id": "e1433",
+        "source": 943,
+        "target": 978,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 45.10256576538086
+      },
+      {
+        "id": "e1434",
+        "source": 960,
+        "target": 972,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -58.23773956298828
+      },
+      {
+        "id": "e1435",
+        "source": 970,
+        "target": 974,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 47.83390808105469
+      },
+      {
+        "id": "e1436",
+        "source": 638,
+        "target": 646,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -136.5994110107422
+      },
+      {
+        "id": "e1437",
+        "source": 535,
+        "target": 644,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -963.1837158203125
+      },
+      {
+        "id": "e1438",
+        "source": 609,
+        "target": 642,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -205.43646240234375
+      },
+      {
+        "id": "e1439",
+        "source": 637,
+        "target": 640,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -832.3329467773438
+      },
+      {
+        "id": "e1440",
+        "source": 943,
+        "target": 953,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1000.60986328125
+      },
+      {
+        "id": "e1441",
+        "source": 609,
+        "target": 955,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -166.00302124023438
+      },
+      {
+        "id": "e1442",
+        "source": 834,
+        "target": 957,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -950.802490234375
+      },
+      {
+        "id": "e1443",
+        "source": 934,
+        "target": 959,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 39.417911529541016
+      },
+      {
+        "id": "e1444",
+        "source": 979,
+        "target": 980,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -154.39796447753906
+      },
+      {
+        "id": "e1445",
+        "source": 980,
+        "target": 981,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -372.93048095703125
+      },
+      {
+        "id": "e1446",
+        "source": 981,
+        "target": 982,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -366.0461730957031
+      },
+      {
+        "id": "e1447",
+        "source": 982,
+        "target": 983,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 103.66897583007812
+      },
+      {
+        "id": "e1448",
+        "source": 983,
+        "target": 984,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -148.94190979003906
+      },
+      {
+        "id": "e1449",
+        "source": 984,
+        "target": 985,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -411.5848083496094
+      },
+      {
+        "id": "e1450",
+        "source": 985,
+        "target": 986,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -392.83026123046875
+      },
+      {
+        "id": "e1451",
+        "source": 986,
+        "target": 979,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 99.33586883544922
+      },
+      {
+        "id": "e1452",
+        "source": 961,
+        "target": 984,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 59.090965270996094
+      },
+      {
+        "id": "e1453",
+        "source": 871,
+        "target": 982,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -585.3977661132812
+      },
+      {
+        "id": "e1454",
+        "source": 638,
+        "target": 980,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 21.173351287841797
+      },
+      {
+        "id": "e1455",
+        "source": 970,
+        "target": 986,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -604.2525024414062
+      },
+      {
+        "id": "e1456",
+        "source": 987,
+        "target": 988,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -21.410207748413086
+      },
+      {
+        "id": "e1457",
+        "source": 988,
+        "target": 913,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 24.09331703186035
+      },
+      {
+        "id": "e1458",
+        "source": 913,
+        "target": 989,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 25.916994094848633
+      },
+      {
+        "id": "e1459",
+        "source": 989,
+        "target": 990,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -0.10059180110692978
+      },
+      {
+        "id": "e1460",
+        "source": 990,
+        "target": 991,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -18.725696563720703
+      },
+      {
+        "id": "e1461",
+        "source": 991,
+        "target": 909,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 80.72935485839844
+      },
+      {
+        "id": "e1462",
+        "source": 909,
+        "target": 992,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 60.13447189331055
+      },
+      {
+        "id": "e1463",
+        "source": 992,
+        "target": 987,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -0.548800528049469
+      },
+      {
+        "id": "e1464",
+        "source": 894,
+        "target": 988,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 39.88938903808594
+      },
+      {
+        "id": "e1465",
+        "source": 905,
+        "target": 989,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -35.77510070800781
+      },
+      {
+        "id": "e1466",
+        "source": 568,
+        "target": 991,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 97.64170837402344
+      },
+      {
+        "id": "e1467",
+        "source": 906,
+        "target": 992,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -75.00836944580078
+      },
+      {
+        "id": "e1468",
+        "source": 996,
+        "target": 997,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -81.57621765136719
+      },
+      {
+        "id": "e1469",
+        "source": 997,
+        "target": 998,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -331.3373718261719
+      },
+      {
+        "id": "e1470",
+        "source": 998,
+        "target": 999,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 216.76461791992188
+      },
+      {
+        "id": "e1471",
+        "source": 999,
+        "target": 1000,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -228.8535614013672
+      },
+      {
+        "id": "e1472",
+        "source": 1000,
+        "target": 1001,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -159.38648986816406
+      },
+      {
+        "id": "e1473",
+        "source": 1001,
+        "target": 1002,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -123.31301879882812
+      },
+      {
+        "id": "e1474",
+        "source": 1002,
+        "target": 1003,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 227.03871154785156
+      },
+      {
+        "id": "e1475",
+        "source": 1003,
+        "target": 996,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -57.10079574584961
+      },
+      {
+        "id": "e1476",
+        "source": 995,
+        "target": 997,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -166.34494018554688
+      },
+      {
+        "id": "e1477",
+        "source": 993,
+        "target": 999,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.8835144042969
+      },
+      {
+        "id": "e1478",
+        "source": 994,
+        "target": 1001,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 86.02535247802734
+      },
+      {
+        "id": "e1479",
+        "source": 894,
+        "target": 1003,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -210.40589904785156
+      },
+      {
+        "id": "e1480",
+        "source": 1006,
+        "target": 1007,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -34.97190856933594
+      },
+      {
+        "id": "e1481",
+        "source": 1007,
+        "target": 1008,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -19.795944213867188
+      },
+      {
+        "id": "e1482",
+        "source": 1008,
+        "target": 1009,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -9.05949878692627
+      },
+      {
+        "id": "e1483",
+        "source": 1009,
+        "target": 1010,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 117.3450927734375
+      },
+      {
+        "id": "e1484",
+        "source": 1010,
+        "target": 1011,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 6.414717674255371
+      },
+      {
+        "id": "e1485",
+        "source": 1011,
+        "target": 1012,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 66.68753814697266
+      },
+      {
+        "id": "e1486",
+        "source": 1012,
+        "target": 1013,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 48.68971633911133
+      },
+      {
+        "id": "e1487",
+        "source": 1013,
+        "target": 1006,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 8.096455574035645
+      },
+      {
+        "id": "e1488",
+        "source": 670,
+        "target": 1011,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 50.81196594238281
+      },
+      {
+        "id": "e1489",
+        "source": 1004,
+        "target": 1013,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -48.46183776855469
+      },
+      {
+        "id": "e1490",
+        "source": 993,
+        "target": 1007,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 4.637005805969238
+      },
+      {
+        "id": "e1491",
+        "source": 1005,
+        "target": 1009,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 110.84464263916016
+      },
+      {
+        "id": "e1492",
+        "source": 672,
+        "target": 680,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -42.51258087158203
+      },
+      {
+        "id": "e1493",
+        "source": 568,
+        "target": 678,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -486.5194396972656
+      },
+      {
+        "id": "e1494",
+        "source": 671,
+        "target": 676,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 53.960472106933594
+      },
+      {
+        "id": "e1495",
+        "source": 670,
+        "target": 674,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -535.951416015625
+      },
+      {
+        "id": "e1496",
+        "source": 1014,
+        "target": 1015,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 114.3117904663086
+      },
+      {
+        "id": "e1497",
+        "source": 1015,
+        "target": 1016,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -248.13124084472656
+      },
+      {
+        "id": "e1498",
+        "source": 1016,
+        "target": 1017,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -239.79364013671875
+      },
+      {
+        "id": "e1499",
+        "source": 1017,
+        "target": 1018,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -59.85498046875
+      },
+      {
+        "id": "e1500",
+        "source": 1018,
+        "target": 1019,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 79.98731231689453
+      },
+      {
+        "id": "e1501",
+        "source": 1019,
+        "target": 1020,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -214.11241149902344
+      },
+      {
+        "id": "e1502",
+        "source": 1020,
+        "target": 1021,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -187.37391662597656
+      },
+      {
+        "id": "e1503",
+        "source": 1021,
+        "target": 1014,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 31.467483520507812
+      },
+      {
+        "id": "e1504",
+        "source": 1004,
+        "target": 1019,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -356.7901306152344
+      },
+      {
+        "id": "e1505",
+        "source": 671,
+        "target": 1021,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 97.58094787597656
+      },
+      {
+        "id": "e1506",
+        "source": 905,
+        "target": 1015,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -358.539306640625
+      },
+      {
+        "id": "e1507",
+        "source": 994,
+        "target": 1017,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 45.65480422973633
+      },
+      {
+        "id": "e1508",
+        "source": 1022,
+        "target": 1023,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 125.79566955566406
+      },
+      {
+        "id": "e1509",
+        "source": 1023,
+        "target": 1024,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -342.9896545410156
+      },
+      {
+        "id": "e1510",
+        "source": 1024,
+        "target": 1025,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -338.4970397949219
+      },
+      {
+        "id": "e1511",
+        "source": 1025,
+        "target": 1026,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 61.39297866821289
+      },
+      {
+        "id": "e1512",
+        "source": 1026,
+        "target": 1027,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 50.722015380859375
+      },
+      {
+        "id": "e1513",
+        "source": 1027,
+        "target": 1028,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -370.8110046386719
+      },
+      {
+        "id": "e1514",
+        "source": 1028,
+        "target": 1029,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -352.31988525390625
+      },
+      {
+        "id": "e1515",
+        "source": 1029,
+        "target": 1022,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 133.03529357910156
+      },
+      {
+        "id": "e1516",
+        "source": 995,
+        "target": 1027,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -185.62950134277344
+      },
+      {
+        "id": "e1517",
+        "source": 906,
+        "target": 1025,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -407.5763854980469
+      },
+      {
+        "id": "e1518",
+        "source": 672,
+        "target": 1023,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 16.594383239746094
+      },
+      {
+        "id": "e1519",
+        "source": 1005,
+        "target": 1029,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -328.63775634765625
+      },
+      {
+        "id": "e1520",
+        "source": 944,
+        "target": 1030,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -35.387752532958984
+      },
+      {
+        "id": "e1521",
+        "source": 1030,
+        "target": 950,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 49.247901916503906
+      },
+      {
+        "id": "e1522",
+        "source": 950,
+        "target": 1031,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 18.337112426757812
+      },
+      {
+        "id": "e1523",
+        "source": 1031,
+        "target": 948,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 48.040409088134766
+      },
+      {
+        "id": "e1524",
+        "source": 933,
+        "target": 1030,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 75.81644439697266
+      },
+      {
+        "id": "e1525",
+        "source": 906,
+        "target": 1031,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 14.515959739685059
+      },
+      {
+        "id": "e1526",
+        "source": 608,
+        "target": 947,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 116.25437927246094
+      },
+      {
+        "id": "e1527",
+        "source": 943,
+        "target": 945,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -65.91694641113281
+      },
+      {
+        "id": "e1528",
+        "source": 1034,
+        "target": 1035,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -60.582454681396484
+      },
+      {
+        "id": "e1529",
+        "source": 1035,
+        "target": 1036,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -266.4835510253906
+      },
+      {
+        "id": "e1530",
+        "source": 1036,
+        "target": 1037,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 224.0791015625
+      },
+      {
+        "id": "e1531",
+        "source": 1037,
+        "target": 1038,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -239.3528289794922
+      },
+      {
+        "id": "e1532",
+        "source": 1038,
+        "target": 1039,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -179.6392059326172
+      },
+      {
+        "id": "e1533",
+        "source": 1039,
+        "target": 1040,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -195.09829711914062
+      },
+      {
+        "id": "e1534",
+        "source": 1040,
+        "target": 1041,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 189.22042846679688
+      },
+      {
+        "id": "e1535",
+        "source": 1041,
+        "target": 1034,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -50.49922180175781
+      },
+      {
+        "id": "e1536",
+        "source": 1033,
+        "target": 1035,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -135.24920654296875
+      },
+      {
+        "id": "e1537",
+        "source": 1032,
+        "target": 1037,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -383.759521484375
+      },
+      {
+        "id": "e1538",
+        "source": 995,
+        "target": 1039,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 43.67817687988281
+      },
+      {
+        "id": "e1539",
+        "source": 933,
+        "target": 1041,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -170.32879638671875
+      },
+      {
+        "id": "e1540",
+        "source": 1043,
+        "target": 1044,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 4.724996089935303
+      },
+      {
+        "id": "e1541",
+        "source": 1044,
+        "target": 1045,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -8.601733207702637
+      },
+      {
+        "id": "e1542",
+        "source": 1045,
+        "target": 1046,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -30.64238739013672
+      },
+      {
+        "id": "e1543",
+        "source": 1046,
+        "target": 1047,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 112.34542083740234
+      },
+      {
+        "id": "e1544",
+        "source": 1047,
+        "target": 1048,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 8.299285888671875
+      },
+      {
+        "id": "e1545",
+        "source": 1048,
+        "target": 1049,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 41.019386291503906
+      },
+      {
+        "id": "e1546",
+        "source": 1049,
+        "target": 1050,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 16.767059326171875
+      },
+      {
+        "id": "e1547",
+        "source": 1050,
+        "target": 1043,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 74.9463119506836
+      },
+      {
+        "id": "e1548",
+        "source": 710,
+        "target": 1048,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 25.87721824645996
+      },
+      {
+        "id": "e1549",
+        "source": 1005,
+        "target": 1050,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 51.075096130371094
+      },
+      {
+        "id": "e1550",
+        "source": 1032,
+        "target": 1044,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -16.232410430908203
+      },
+      {
+        "id": "e1551",
+        "source": 1042,
+        "target": 1046,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 136.66171264648438
+      },
+      {
+        "id": "e1552",
+        "source": 711,
+        "target": 719,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -70.77894592285156
+      },
+      {
+        "id": "e1553",
+        "source": 608,
+        "target": 717,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -497.8092041015625
+      },
+      {
+        "id": "e1554",
+        "source": 672,
+        "target": 715,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -23.782480239868164
+      },
+      {
+        "id": "e1555",
+        "source": 710,
+        "target": 713,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -475.8462219238281
+      },
+      {
+        "id": "e1556",
+        "source": 1005,
+        "target": 1023,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -396.31964111328125
+      },
+      {
+        "id": "e1557",
+        "source": 672,
+        "target": 1025,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -45.29925537109375
+      },
+      {
+        "id": "e1558",
+        "source": 906,
+        "target": 1027,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -569.6256713867188
+      },
+      {
+        "id": "e1559",
+        "source": 995,
+        "target": 1029,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 87.86811065673828
+      },
+      {
+        "id": "e1560",
+        "source": 1051,
+        "target": 1052,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 116.18317413330078
+      },
+      {
+        "id": "e1561",
+        "source": 1052,
+        "target": 1053,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -346.525634765625
+      },
+      {
+        "id": "e1562",
+        "source": 1053,
+        "target": 1054,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -339.2604675292969
+      },
+      {
+        "id": "e1563",
+        "source": 1054,
+        "target": 1055,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 60.58564758300781
+      },
+      {
+        "id": "e1564",
+        "source": 1055,
+        "target": 1056,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 49.38165283203125
+      },
+      {
+        "id": "e1565",
+        "source": 1056,
+        "target": 1057,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -366.1826171875
+      },
+      {
+        "id": "e1566",
+        "source": 1057,
+        "target": 1058,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -343.2691650390625
+      },
+      {
+        "id": "e1567",
+        "source": 1058,
+        "target": 1051,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 125.30496215820312
+      },
+      {
+        "id": "e1568",
+        "source": 1033,
+        "target": 1056,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -208.0518798828125
+      },
+      {
+        "id": "e1569",
+        "source": 943,
+        "target": 1054,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -377.797119140625
+      },
+      {
+        "id": "e1570",
+        "source": 711,
+        "target": 1052,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -35.41179656982422
+      },
+      {
+        "id": "e1571",
+        "source": 1042,
+        "target": 1058,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -284.3954772949219
+      },
+      {
+        "id": "e1572",
+        "source": 960,
+        "target": 978,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 57.72400665283203
+      },
+      {
+        "id": "e1573",
+        "source": 943,
+        "target": 976,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 55.53899002075195
+      },
+      {
+        "id": "e1574",
+        "source": 637,
+        "target": 974,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 44.34241485595703
+      },
+      {
+        "id": "e1575",
+        "source": 970,
+        "target": 972,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -54.60561752319336
+      },
+      {
+        "id": "e1576",
+        "source": 1061,
+        "target": 1062,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -149.31204223632812
+      },
+      {
+        "id": "e1577",
+        "source": 1062,
+        "target": 1063,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -195.69715881347656
+      },
+      {
+        "id": "e1578",
+        "source": 1063,
+        "target": 1064,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.95938110351562
+      },
+      {
+        "id": "e1579",
+        "source": 1064,
+        "target": 1065,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -273.4587097167969
+      },
+      {
+        "id": "e1580",
+        "source": 1065,
+        "target": 1066,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -216.8753662109375
+      },
+      {
+        "id": "e1581",
+        "source": 1066,
+        "target": 1067,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -138.5220947265625
+      },
+      {
+        "id": "e1582",
+        "source": 1067,
+        "target": 1068,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 179.1962127685547
+      },
+      {
+        "id": "e1583",
+        "source": 1068,
+        "target": 1061,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -152.16604614257812
+      },
+      {
+        "id": "e1584",
+        "source": 1060,
+        "target": 1062,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 20.447214126586914
+      },
+      {
+        "id": "e1585",
+        "source": 1059,
+        "target": 1064,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -405.52557373046875
+      },
+      {
+        "id": "e1586",
+        "source": 1033,
+        "target": 1066,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 133.85130310058594
+      },
+      {
+        "id": "e1587",
+        "source": 960,
+        "target": 1068,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -269.46917724609375
+      },
+      {
+        "id": "e1588",
+        "source": 1070,
+        "target": 1071,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 45.525081634521484
+      },
+      {
+        "id": "e1589",
+        "source": 1071,
+        "target": 1072,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0.7693986296653748
+      },
+      {
+        "id": "e1590",
+        "source": 1072,
+        "target": 1073,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -29.185239791870117
+      },
+      {
+        "id": "e1591",
+        "source": 1073,
+        "target": 1074,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -45.26665115356445
+      },
+      {
+        "id": "e1592",
+        "source": 1074,
+        "target": 1075,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0.5376207828521729
+      },
+      {
+        "id": "e1593",
+        "source": 1075,
+        "target": 1076,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 80.185546875
+      },
+      {
+        "id": "e1594",
+        "source": 1076,
+        "target": 1077,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 63.034339904785156
+      },
+      {
+        "id": "e1595",
+        "source": 1077,
+        "target": 1070,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 87.9561996459961
+      },
+      {
+        "id": "e1596",
+        "source": 739,
+        "target": 1075,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 84.87808227539062
+      },
+      {
+        "id": "e1597",
+        "source": 1042,
+        "target": 1077,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 14.096324920654297
+      },
+      {
+        "id": "e1598",
+        "source": 1059,
+        "target": 1071,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -37.99740982055664
+      },
+      {
+        "id": "e1599",
+        "source": 1069,
+        "target": 1073,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -1.2658849954605103
+      },
+      {
+        "id": "e1600",
+        "source": 740,
+        "target": 748,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -113.13973236083984
+      },
+      {
+        "id": "e1601",
+        "source": 637,
+        "target": 746,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -460.8801574707031
+      },
+      {
+        "id": "e1602",
+        "source": 711,
+        "target": 744,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -116.93046569824219
+      },
+      {
+        "id": "e1603",
+        "source": 739,
+        "target": 742,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -368.30694580078125
+      },
+      {
+        "id": "e1604",
+        "source": 1042,
+        "target": 1052,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -444.4302673339844
+      },
+      {
+        "id": "e1605",
+        "source": 711,
+        "target": 1054,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -18.76793670654297
+      },
+      {
+        "id": "e1606",
+        "source": 943,
+        "target": 1056,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -591.6648559570312
+      },
+      {
+        "id": "e1607",
+        "source": 1033,
+        "target": 1058,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 114.00750732421875
+      },
+      {
+        "id": "e1608",
+        "source": 1078,
+        "target": 1079,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -93.85385131835938
+      },
+      {
+        "id": "e1609",
+        "source": 1079,
+        "target": 1080,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -192.0342254638672
+      },
+      {
+        "id": "e1610",
+        "source": 1080,
+        "target": 1081,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -171.0692138671875
+      },
+      {
+        "id": "e1611",
+        "source": 1081,
+        "target": 1082,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 73.54723358154297
+      },
+      {
+        "id": "e1612",
+        "source": 1082,
+        "target": 1083,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -50.71562576293945
+      },
+      {
+        "id": "e1613",
+        "source": 1083,
+        "target": 1084,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -163.13327026367188
+      },
+      {
+        "id": "e1614",
+        "source": 1084,
+        "target": 1085,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -172.5896453857422
+      },
+      {
+        "id": "e1615",
+        "source": 1085,
+        "target": 1078,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 73.23421478271484
+      },
+      {
+        "id": "e1616",
+        "source": 1060,
+        "target": 1083,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 10.851274490356445
+      },
+      {
+        "id": "e1617",
+        "source": 970,
+        "target": 1081,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -288.5936584472656
+      },
+      {
+        "id": "e1618",
+        "source": 740,
+        "target": 1079,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 1.1971276998519897
+      },
+      {
+        "id": "e1619",
+        "source": 1069,
+        "target": 1085,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -331.74798583984375
+      }
+    ],
+    "ndofs": 6516,
+    "animation": {
+      "showDisplacement": true,
+      "exageration": 2000,
+      "speed": 3
+    },
+    "viz": {
+      "minStress": -1613.2606445312501,
+      "maxStress": 556.4400756835938,
+      "colorMaps": [
+        [
+          [
+            0,
+            [
+              0.23,
+              0.299,
+              0.754
+            ]
+          ],
+          [
+            0.002,
+            [
+              0.23,
+              0.299,
+              0.754
+            ]
+          ],
+          [
+            0.004,
+            [
+              0.234,
+              0.306,
+              0.76
+            ]
+          ],
+          [
+            0.006,
+            [
+              0.234,
+              0.306,
+              0.76
+            ]
+          ],
+          [
+            0.008,
+            [
+              0.239,
+              0.312,
+              0.766
+            ]
+          ],
+          [
+            0.01,
+            [
+              0.239,
+              0.312,
+              0.766
+            ]
+          ],
+          [
+            0.012,
+            [
+              0.244,
+              0.319,
+              0.772
+            ]
+          ],
+          [
+            0.014,
+            [
+              0.244,
+              0.319,
+              0.772
+            ]
+          ],
+          [
+            0.016,
+            [
+              0.248,
+              0.326,
+              0.778
+            ]
+          ],
+          [
+            0.018,
+            [
+              0.248,
+              0.326,
+              0.778
+            ]
+          ],
+          [
+            0.02,
+            [
+              0.253,
+              0.333,
+              0.784
+            ]
+          ],
+          [
+            0.022,
+            [
+              0.253,
+              0.333,
+              0.784
+            ]
+          ],
+          [
+            0.023,
+            [
+              0.257,
+              0.34,
+              0.79
+            ]
+          ],
+          [
+            0.025,
+            [
+              0.257,
+              0.34,
+              0.79
+            ]
+          ],
+          [
+            0.027,
+            [
+              0.262,
+              0.346,
+              0.796
+            ]
+          ],
+          [
+            0.029,
+            [
+              0.262,
+              0.346,
+              0.796
+            ]
+          ],
+          [
+            0.031,
+            [
+              0.266,
+              0.353,
+              0.802
+            ]
+          ],
+          [
+            0.033,
+            [
+              0.266,
+              0.353,
+              0.802
+            ]
+          ],
+          [
+            0.035,
+            [
+              0.271,
+              0.36,
+              0.807
+            ]
+          ],
+          [
+            0.037,
+            [
+              0.271,
+              0.36,
+              0.807
+            ]
+          ],
+          [
+            0.039,
+            [
+              0.276,
+              0.367,
+              0.813
+            ]
+          ],
+          [
+            0.041,
+            [
+              0.276,
+              0.367,
+              0.813
+            ]
+          ],
+          [
+            0.043,
+            [
+              0.281,
+              0.373,
+              0.818
+            ]
+          ],
+          [
+            0.045,
+            [
+              0.281,
+              0.373,
+              0.818
+            ]
+          ],
+          [
+            0.047,
+            [
+              0.285,
+              0.38,
+              0.823
+            ]
+          ],
+          [
+            0.049,
+            [
+              0.285,
+              0.38,
+              0.823
+            ]
+          ],
+          [
+            0.051,
+            [
+              0.29,
+              0.387,
+              0.829
+            ]
+          ],
+          [
+            0.053,
+            [
+              0.29,
+              0.387,
+              0.829
+            ]
+          ],
+          [
+            0.055,
+            [
+              0.295,
+              0.394,
+              0.834
+            ]
+          ],
+          [
+            0.057,
+            [
+              0.295,
+              0.394,
+              0.834
+            ]
+          ],
+          [
+            0.059,
+            [
+              0.299,
+              0.4,
+              0.84
+            ]
+          ],
+          [
+            0.061,
+            [
+              0.299,
+              0.4,
+              0.84
+            ]
+          ],
+          [
+            0.063,
+            [
+              0.304,
+              0.407,
+              0.845
+            ]
+          ],
+          [
+            0.065,
+            [
+              0.304,
+              0.407,
+              0.845
+            ]
+          ],
+          [
+            0.067,
+            [
+              0.309,
+              0.413,
+              0.85
+            ]
+          ],
+          [
+            0.068,
+            [
+              0.309,
+              0.413,
+              0.85
+            ]
+          ],
+          [
+            0.07,
+            [
+              0.314,
+              0.42,
+              0.855
+            ]
+          ],
+          [
+            0.072,
+            [
+              0.314,
+              0.42,
+              0.855
+            ]
+          ],
+          [
+            0.074,
+            [
+              0.319,
+              0.427,
+              0.86
+            ]
+          ],
+          [
+            0.076,
+            [
+              0.319,
+              0.427,
+              0.86
+            ]
+          ],
+          [
+            0.078,
+            [
+              0.324,
+              0.433,
+              0.865
+            ]
+          ],
+          [
+            0.08,
+            [
+              0.324,
+              0.433,
+              0.865
+            ]
+          ],
+          [
+            0.082,
+            [
+              0.329,
+              0.44,
+              0.87
+            ]
+          ],
+          [
+            0.084,
+            [
+              0.329,
+              0.44,
+              0.87
+            ]
+          ],
+          [
+            0.086,
+            [
+              0.333,
+              0.446,
+              0.874
+            ]
+          ],
+          [
+            0.088,
+            [
+              0.333,
+              0.446,
+              0.874
+            ]
+          ],
+          [
+            0.09,
+            [
+              0.338,
+              0.453,
+              0.879
+            ]
+          ],
+          [
+            0.092,
+            [
+              0.338,
+              0.453,
+              0.879
+            ]
+          ],
+          [
+            0.094,
+            [
+              0.343,
+              0.459,
+              0.884
+            ]
+          ],
+          [
+            0.096,
+            [
+              0.343,
+              0.459,
+              0.884
+            ]
+          ],
+          [
+            0.098,
+            [
+              0.348,
+              0.466,
+              0.888
+            ]
+          ],
+          [
+            0.1,
+            [
+              0.348,
+              0.466,
+              0.888
+            ]
+          ],
+          [
+            0.102,
+            [
+              0.353,
+              0.472,
+              0.893
+            ]
+          ],
+          [
+            0.104,
+            [
+              0.353,
+              0.472,
+              0.893
+            ]
+          ],
+          [
+            0.106,
+            [
+              0.358,
+              0.478,
+              0.897
+            ]
+          ],
+          [
+            0.108,
+            [
+              0.358,
+              0.478,
+              0.897
+            ]
+          ],
+          [
+            0.11,
+            [
+              0.363,
+              0.485,
+              0.901
+            ]
+          ],
+          [
+            0.112,
+            [
+              0.363,
+              0.485,
+              0.901
+            ]
+          ],
+          [
+            0.114,
+            [
+              0.369,
+              0.491,
+              0.905
+            ]
+          ],
+          [
+            0.115,
+            [
+              0.369,
+              0.491,
+              0.905
+            ]
+          ],
+          [
+            0.117,
+            [
+              0.374,
+              0.497,
+              0.909
+            ]
+          ],
+          [
+            0.119,
+            [
+              0.374,
+              0.497,
+              0.909
+            ]
+          ],
+          [
+            0.121,
+            [
+              0.379,
+              0.504,
+              0.914
+            ]
+          ],
+          [
+            0.123,
+            [
+              0.379,
+              0.504,
+              0.914
+            ]
+          ],
+          [
+            0.125,
+            [
+              0.384,
+              0.51,
+              0.918
+            ]
+          ],
+          [
+            0.127,
+            [
+              0.384,
+              0.51,
+              0.918
+            ]
+          ],
+          [
+            0.129,
+            [
+              0.389,
+              0.516,
+              0.921
+            ]
+          ],
+          [
+            0.131,
+            [
+              0.389,
+              0.516,
+              0.921
+            ]
+          ],
+          [
+            0.133,
+            [
+              0.394,
+              0.522,
+              0.925
+            ]
+          ],
+          [
+            0.135,
+            [
+              0.394,
+              0.522,
+              0.925
+            ]
+          ],
+          [
+            0.137,
+            [
+              0.399,
+              0.529,
+              0.928
+            ]
+          ],
+          [
+            0.139,
+            [
+              0.399,
+              0.529,
+              0.928
+            ]
+          ],
+          [
+            0.141,
+            [
+              0.404,
+              0.535,
+              0.932
+            ]
+          ],
+          [
+            0.143,
+            [
+              0.404,
+              0.535,
+              0.932
+            ]
+          ],
+          [
+            0.145,
+            [
+              0.41,
+              0.541,
+              0.936
+            ]
+          ],
+          [
+            0.147,
+            [
+              0.41,
+              0.541,
+              0.936
+            ]
+          ],
+          [
+            0.149,
+            [
+              0.415,
+              0.547,
+              0.939
+            ]
+          ],
+          [
+            0.151,
+            [
+              0.415,
+              0.547,
+              0.939
+            ]
+          ],
+          [
+            0.153,
+            [
+              0.42,
+              0.553,
+              0.943
+            ]
+          ],
+          [
+            0.155,
+            [
+              0.42,
+              0.553,
+              0.943
+            ]
+          ],
+          [
+            0.157,
+            [
+              0.425,
+              0.559,
+              0.946
+            ]
+          ],
+          [
+            0.159,
+            [
+              0.425,
+              0.559,
+              0.946
+            ]
+          ],
+          [
+            0.16,
+            [
+              0.431,
+              0.565,
+              0.949
+            ]
+          ],
+          [
+            0.162,
+            [
+              0.431,
+              0.565,
+              0.949
+            ]
+          ],
+          [
+            0.164,
+            [
+              0.436,
+              0.571,
+              0.952
+            ]
+          ],
+          [
+            0.166,
+            [
+              0.436,
+              0.571,
+              0.952
+            ]
+          ],
+          [
+            0.168,
+            [
+              0.441,
+              0.577,
+              0.955
+            ]
+          ],
+          [
+            0.17,
+            [
+              0.441,
+              0.577,
+              0.955
+            ]
+          ],
+          [
+            0.172,
+            [
+              0.446,
+              0.582,
+              0.957
+            ]
+          ],
+          [
+            0.174,
+            [
+              0.446,
+              0.582,
+              0.957
+            ]
+          ],
+          [
+            0.176,
+            [
+              0.452,
+              0.588,
+              0.96
+            ]
+          ],
+          [
+            0.178,
+            [
+              0.452,
+              0.588,
+              0.96
+            ]
+          ],
+          [
+            0.18,
+            [
+              0.457,
+              0.594,
+              0.963
+            ]
+          ],
+          [
+            0.182,
+            [
+              0.457,
+              0.594,
+              0.963
+            ]
+          ],
+          [
+            0.184,
+            [
+              0.462,
+              0.6,
+              0.966
+            ]
+          ],
+          [
+            0.186,
+            [
+              0.462,
+              0.6,
+              0.966
+            ]
+          ],
+          [
+            0.188,
+            [
+              0.468,
+              0.606,
+              0.969
+            ]
+          ],
+          [
+            0.19,
+            [
+              0.468,
+              0.606,
+              0.969
+            ]
+          ],
+          [
+            0.192,
+            [
+              0.473,
+              0.611,
+              0.971
+            ]
+          ],
+          [
+            0.194,
+            [
+              0.473,
+              0.611,
+              0.971
+            ]
+          ],
+          [
+            0.196,
+            [
+              0.478,
+              0.617,
+              0.973
+            ]
+          ],
+          [
+            0.198,
+            [
+              0.478,
+              0.617,
+              0.973
+            ]
+          ],
+          [
+            0.2,
+            [
+              0.484,
+              0.622,
+              0.975
+            ]
+          ],
+          [
+            0.202,
+            [
+              0.484,
+              0.622,
+              0.975
+            ]
+          ],
+          [
+            0.204,
+            [
+              0.489,
+              0.628,
+              0.977
+            ]
+          ],
+          [
+            0.205,
+            [
+              0.489,
+              0.628,
+              0.977
+            ]
+          ],
+          [
+            0.207,
+            [
+              0.495,
+              0.633,
+              0.979
+            ]
+          ],
+          [
+            0.209,
+            [
+              0.495,
+              0.633,
+              0.979
+            ]
+          ],
+          [
+            0.211,
+            [
+              0.5,
+              0.639,
+              0.981
+            ]
+          ],
+          [
+            0.213,
+            [
+              0.5,
+              0.639,
+              0.981
+            ]
+          ],
+          [
+            0.215,
+            [
+              0.505,
+              0.644,
+              0.983
+            ]
+          ],
+          [
+            0.217,
+            [
+              0.505,
+              0.644,
+              0.983
+            ]
+          ],
+          [
+            0.219,
+            [
+              0.511,
+              0.649,
+              0.985
+            ]
+          ],
+          [
+            0.221,
+            [
+              0.511,
+              0.649,
+              0.985
+            ]
+          ],
+          [
+            0.223,
+            [
+              0.516,
+              0.654,
+              0.986
+            ]
+          ],
+          [
+            0.225,
+            [
+              0.516,
+              0.654,
+              0.986
+            ]
+          ],
+          [
+            0.227,
+            [
+              0.522,
+              0.66,
+              0.988
+            ]
+          ],
+          [
+            0.229,
+            [
+              0.522,
+              0.66,
+              0.988
+            ]
+          ],
+          [
+            0.231,
+            [
+              0.527,
+              0.665,
+              0.989
+            ]
+          ],
+          [
+            0.233,
+            [
+              0.527,
+              0.665,
+              0.989
+            ]
+          ],
+          [
+            0.235,
+            [
+              0.533,
+              0.67,
+              0.99
+            ]
+          ],
+          [
+            0.237,
+            [
+              0.533,
+              0.67,
+              0.99
+            ]
+          ],
+          [
+            0.239,
+            [
+              0.538,
+              0.675,
+              0.992
+            ]
+          ],
+          [
+            0.241,
+            [
+              0.538,
+              0.675,
+              0.992
+            ]
+          ],
+          [
+            0.243,
+            [
+              0.543,
+              0.68,
+              0.993
+            ]
+          ],
+          [
+            0.245,
+            [
+              0.543,
+              0.68,
+              0.993
+            ]
+          ],
+          [
+            0.247,
+            [
+              0.549,
+              0.685,
+              0.994
+            ]
+          ],
+          [
+            0.249,
+            [
+              0.549,
+              0.685,
+              0.994
+            ]
+          ],
+          [
+            0.25,
+            [
+              0.554,
+              0.69,
+              0.996
+            ]
+          ],
+          [
+            0.252,
+            [
+              0.554,
+              0.69,
+              0.996
+            ]
+          ],
+          [
+            0.254,
+            [
+              0.56,
+              0.695,
+              0.996
+            ]
+          ],
+          [
+            0.256,
+            [
+              0.56,
+              0.695,
+              0.996
+            ]
+          ],
+          [
+            0.258,
+            [
+              0.565,
+              0.699,
+              0.997
+            ]
+          ],
+          [
+            0.26,
+            [
+              0.565,
+              0.699,
+              0.997
+            ]
+          ],
+          [
+            0.262,
+            [
+              0.571,
+              0.704,
+              0.997
+            ]
+          ],
+          [
+            0.264,
+            [
+              0.571,
+              0.704,
+              0.997
+            ]
+          ],
+          [
+            0.266,
+            [
+              0.576,
+              0.709,
+              0.998
+            ]
+          ],
+          [
+            0.268,
+            [
+              0.576,
+              0.709,
+              0.998
+            ]
+          ],
+          [
+            0.27,
+            [
+              0.581,
+              0.713,
+              0.998
+            ]
+          ],
+          [
+            0.272,
+            [
+              0.581,
+              0.713,
+              0.998
+            ]
+          ],
+          [
+            0.274,
+            [
+              0.587,
+              0.718,
+              0.999
+            ]
+          ],
+          [
+            0.276,
+            [
+              0.587,
+              0.718,
+              0.999
+            ]
+          ],
+          [
+            0.278,
+            [
+              0.592,
+              0.723,
+              0.999
+            ]
+          ],
+          [
+            0.28,
+            [
+              0.592,
+              0.723,
+              0.999
+            ]
+          ],
+          [
+            0.282,
+            [
+              0.598,
+              0.727,
+              1
+            ]
+          ],
+          [
+            0.284,
+            [
+              0.598,
+              0.727,
+              1
+            ]
+          ],
+          [
+            0.286,
+            [
+              0.603,
+              0.732,
+              1
+            ]
+          ],
+          [
+            0.288,
+            [
+              0.603,
+              0.732,
+              1
+            ]
+          ],
+          [
+            0.29,
+            [
+              0.609,
+              0.736,
+              0.999
+            ]
+          ],
+          [
+            0.292,
+            [
+              0.609,
+              0.736,
+              0.999
+            ]
+          ],
+          [
+            0.294,
+            [
+              0.614,
+              0.74,
+              0.999
+            ]
+          ],
+          [
+            0.295,
+            [
+              0.614,
+              0.74,
+              0.999
+            ]
+          ],
+          [
+            0.297,
+            [
+              0.619,
+              0.744,
+              0.999
+            ]
+          ],
+          [
+            0.299,
+            [
+              0.619,
+              0.744,
+              0.999
+            ]
+          ],
+          [
+            0.301,
+            [
+              0.625,
+              0.748,
+              0.999
+            ]
+          ],
+          [
+            0.303,
+            [
+              0.625,
+              0.748,
+              0.999
+            ]
+          ],
+          [
+            0.305,
+            [
+              0.63,
+              0.753,
+              0.999
+            ]
+          ],
+          [
+            0.307,
+            [
+              0.63,
+              0.753,
+              0.999
+            ]
+          ],
+          [
+            0.309,
+            [
+              0.635,
+              0.757,
+              0.998
+            ]
+          ],
+          [
+            0.311,
+            [
+              0.635,
+              0.757,
+              0.998
+            ]
+          ],
+          [
+            0.313,
+            [
+              0.641,
+              0.761,
+              0.998
+            ]
+          ],
+          [
+            0.315,
+            [
+              0.641,
+              0.761,
+              0.998
+            ]
+          ],
+          [
+            0.317,
+            [
+              0.646,
+              0.764,
+              0.997
+            ]
+          ],
+          [
+            0.319,
+            [
+              0.646,
+              0.764,
+              0.997
+            ]
+          ],
+          [
+            0.321,
+            [
+              0.651,
+              0.768,
+              0.996
+            ]
+          ],
+          [
+            0.323,
+            [
+              0.651,
+              0.768,
+              0.996
+            ]
+          ],
+          [
+            0.325,
+            [
+              0.657,
+              0.772,
+              0.995
+            ]
+          ],
+          [
+            0.327,
+            [
+              0.657,
+              0.772,
+              0.995
+            ]
+          ],
+          [
+            0.329,
+            [
+              0.662,
+              0.775,
+              0.994
+            ]
+          ],
+          [
+            0.331,
+            [
+              0.662,
+              0.775,
+              0.994
+            ]
+          ],
+          [
+            0.333,
+            [
+              0.667,
+              0.779,
+              0.993
+            ]
+          ],
+          [
+            0.335,
+            [
+              0.667,
+              0.779,
+              0.993
+            ]
+          ],
+          [
+            0.337,
+            [
+              0.673,
+              0.783,
+              0.992
+            ]
+          ],
+          [
+            0.339,
+            [
+              0.673,
+              0.783,
+              0.992
+            ]
+          ],
+          [
+            0.341,
+            [
+              0.678,
+              0.787,
+              0.991
+            ]
+          ],
+          [
+            0.342,
+            [
+              0.678,
+              0.787,
+              0.991
+            ]
+          ],
+          [
+            0.344,
+            [
+              0.683,
+              0.79,
+              0.99
+            ]
+          ],
+          [
+            0.346,
+            [
+              0.683,
+              0.79,
+              0.99
+            ]
+          ],
+          [
+            0.348,
+            [
+              0.688,
+              0.793,
+              0.988
+            ]
+          ],
+          [
+            0.35,
+            [
+              0.688,
+              0.793,
+              0.988
+            ]
+          ],
+          [
+            0.352,
+            [
+              0.693,
+              0.796,
+              0.986
+            ]
+          ],
+          [
+            0.354,
+            [
+              0.693,
+              0.796,
+              0.986
+            ]
+          ],
+          [
+            0.356,
+            [
+              0.698,
+              0.799,
+              0.985
+            ]
+          ],
+          [
+            0.358,
+            [
+              0.698,
+              0.799,
+              0.985
+            ]
+          ],
+          [
+            0.36,
+            [
+              0.704,
+              0.803,
+              0.983
+            ]
+          ],
+          [
+            0.362,
+            [
+              0.704,
+              0.803,
+              0.983
+            ]
+          ],
+          [
+            0.364,
+            [
+              0.709,
+              0.806,
+              0.981
+            ]
+          ],
+          [
+            0.366,
+            [
+              0.709,
+              0.806,
+              0.981
+            ]
+          ],
+          [
+            0.368,
+            [
+              0.714,
+              0.809,
+              0.979
+            ]
+          ],
+          [
+            0.37,
+            [
+              0.714,
+              0.809,
+              0.979
+            ]
+          ],
+          [
+            0.372,
+            [
+              0.719,
+              0.812,
+              0.978
+            ]
+          ],
+          [
+            0.374,
+            [
+              0.719,
+              0.812,
+              0.978
+            ]
+          ],
+          [
+            0.376,
+            [
+              0.724,
+              0.815,
+              0.976
+            ]
+          ],
+          [
+            0.378,
+            [
+              0.724,
+              0.815,
+              0.976
+            ]
+          ],
+          [
+            0.38,
+            [
+              0.729,
+              0.817,
+              0.973
+            ]
+          ],
+          [
+            0.382,
+            [
+              0.729,
+              0.817,
+              0.973
+            ]
+          ],
+          [
+            0.384,
+            [
+              0.734,
+              0.82,
+              0.971
+            ]
+          ],
+          [
+            0.386,
+            [
+              0.734,
+              0.82,
+              0.971
+            ]
+          ],
+          [
+            0.387,
+            [
+              0.739,
+              0.823,
+              0.968
+            ]
+          ],
+          [
+            0.389,
+            [
+              0.739,
+              0.823,
+              0.968
+            ]
+          ],
+          [
+            0.391,
+            [
+              0.744,
+              0.825,
+              0.966
+            ]
+          ],
+          [
+            0.393,
+            [
+              0.744,
+              0.825,
+              0.966
+            ]
+          ],
+          [
+            0.395,
+            [
+              0.749,
+              0.828,
+              0.963
+            ]
+          ],
+          [
+            0.397,
+            [
+              0.749,
+              0.828,
+              0.963
+            ]
+          ],
+          [
+            0.399,
+            [
+              0.754,
+              0.83,
+              0.961
+            ]
+          ],
+          [
+            0.401,
+            [
+              0.754,
+              0.83,
+              0.961
+            ]
+          ],
+          [
+            0.403,
+            [
+              0.759,
+              0.833,
+              0.958
+            ]
+          ],
+          [
+            0.405,
+            [
+              0.759,
+              0.833,
+              0.958
+            ]
+          ],
+          [
+            0.407,
+            [
+              0.763,
+              0.835,
+              0.956
+            ]
+          ],
+          [
+            0.409,
+            [
+              0.763,
+              0.835,
+              0.956
+            ]
+          ],
+          [
+            0.411,
+            [
+              0.768,
+              0.837,
+              0.952
+            ]
+          ],
+          [
+            0.413,
+            [
+              0.768,
+              0.837,
+              0.952
+            ]
+          ],
+          [
+            0.415,
+            [
+              0.773,
+              0.839,
+              0.949
+            ]
+          ],
+          [
+            0.417,
+            [
+              0.773,
+              0.839,
+              0.949
+            ]
+          ],
+          [
+            0.419,
+            [
+              0.777,
+              0.841,
+              0.946
+            ]
+          ],
+          [
+            0.421,
+            [
+              0.777,
+              0.841,
+              0.946
+            ]
+          ],
+          [
+            0.423,
+            [
+              0.782,
+              0.843,
+              0.943
+            ]
+          ],
+          [
+            0.425,
+            [
+              0.782,
+              0.843,
+              0.943
+            ]
+          ],
+          [
+            0.427,
+            [
+              0.787,
+              0.845,
+              0.94
+            ]
+          ],
+          [
+            0.429,
+            [
+              0.787,
+              0.845,
+              0.94
+            ]
+          ],
+          [
+            0.431,
+            [
+              0.791,
+              0.847,
+              0.937
+            ]
+          ],
+          [
+            0.432,
+            [
+              0.791,
+              0.847,
+              0.937
+            ]
+          ],
+          [
+            0.434,
+            [
+              0.796,
+              0.849,
+              0.933
+            ]
+          ],
+          [
+            0.436,
+            [
+              0.796,
+              0.849,
+              0.933
+            ]
+          ],
+          [
+            0.438,
+            [
+              0.801,
+              0.85,
+              0.93
+            ]
+          ],
+          [
+            0.44,
+            [
+              0.801,
+              0.85,
+              0.93
+            ]
+          ],
+          [
+            0.442,
+            [
+              0.805,
+              0.852,
+              0.926
+            ]
+          ],
+          [
+            0.444,
+            [
+              0.805,
+              0.852,
+              0.926
+            ]
+          ],
+          [
+            0.446,
+            [
+              0.809,
+              0.853,
+              0.922
+            ]
+          ],
+          [
+            0.448,
+            [
+              0.809,
+              0.853,
+              0.922
+            ]
+          ],
+          [
+            0.45,
+            [
+              0.814,
+              0.854,
+              0.918
+            ]
+          ],
+          [
+            0.452,
+            [
+              0.814,
+              0.854,
+              0.918
+            ]
+          ],
+          [
+            0.454,
+            [
+              0.818,
+              0.856,
+              0.915
+            ]
+          ],
+          [
+            0.456,
+            [
+              0.818,
+              0.856,
+              0.915
+            ]
+          ],
+          [
+            0.458,
+            [
+              0.822,
+              0.857,
+              0.911
+            ]
+          ],
+          [
+            0.46,
+            [
+              0.822,
+              0.857,
+              0.911
+            ]
+          ],
+          [
+            0.462,
+            [
+              0.827,
+              0.858,
+              0.907
+            ]
+          ],
+          [
+            0.464,
+            [
+              0.827,
+              0.858,
+              0.907
+            ]
+          ],
+          [
+            0.466,
+            [
+              0.831,
+              0.86,
+              0.903
+            ]
+          ],
+          [
+            0.468,
+            [
+              0.831,
+              0.86,
+              0.903
+            ]
+          ],
+          [
+            0.47,
+            [
+              0.835,
+              0.861,
+              0.899
+            ]
+          ],
+          [
+            0.472,
+            [
+              0.835,
+              0.861,
+              0.899
+            ]
+          ],
+          [
+            0.474,
+            [
+              0.839,
+              0.861,
+              0.894
+            ]
+          ],
+          [
+            0.476,
+            [
+              0.839,
+              0.861,
+              0.894
+            ]
+          ],
+          [
+            0.477,
+            [
+              0.843,
+              0.862,
+              0.89
+            ]
+          ],
+          [
+            0.479,
+            [
+              0.843,
+              0.862,
+              0.89
+            ]
+          ],
+          [
+            0.481,
+            [
+              0.847,
+              0.862,
+              0.886
+            ]
+          ],
+          [
+            0.483,
+            [
+              0.847,
+              0.862,
+              0.886
+            ]
+          ],
+          [
+            0.485,
+            [
+              0.851,
+              0.863,
+              0.881
+            ]
+          ],
+          [
+            0.487,
+            [
+              0.851,
+              0.863,
+              0.881
+            ]
+          ],
+          [
+            0.489,
+            [
+              0.855,
+              0.864,
+              0.877
+            ]
+          ],
+          [
+            0.491,
+            [
+              0.855,
+              0.864,
+              0.877
+            ]
+          ],
+          [
+            0.493,
+            [
+              0.859,
+              0.864,
+              0.872
+            ]
+          ],
+          [
+            0.495,
+            [
+              0.859,
+              0.864,
+              0.872
+            ]
+          ],
+          [
+            0.497,
+            [
+              0.863,
+              0.865,
+              0.868
+            ]
+          ],
+          [
+            0.499,
+            [
+              0.863,
+              0.865,
+              0.868
+            ]
+          ],
+          [
+            0.501,
+            [
+              0.867,
+              0.864,
+              0.863
+            ]
+          ],
+          [
+            0.503,
+            [
+              0.867,
+              0.864,
+              0.863
+            ]
+          ],
+          [
+            0.505,
+            [
+              0.871,
+              0.862,
+              0.857
+            ]
+          ],
+          [
+            0.507,
+            [
+              0.871,
+              0.862,
+              0.857
+            ]
+          ],
+          [
+            0.509,
+            [
+              0.876,
+              0.86,
+              0.851
+            ]
+          ],
+          [
+            0.511,
+            [
+              0.876,
+              0.86,
+              0.851
+            ]
+          ],
+          [
+            0.513,
+            [
+              0.88,
+              0.858,
+              0.846
+            ]
+          ],
+          [
+            0.515,
+            [
+              0.88,
+              0.858,
+              0.846
+            ]
+          ],
+          [
+            0.517,
+            [
+              0.884,
+              0.856,
+              0.84
+            ]
+          ],
+          [
+            0.519,
+            [
+              0.884,
+              0.856,
+              0.84
+            ]
+          ],
+          [
+            0.521,
+            [
+              0.888,
+              0.854,
+              0.835
+            ]
+          ],
+          [
+            0.523,
+            [
+              0.888,
+              0.854,
+              0.835
+            ]
+          ],
+          [
+            0.524,
+            [
+              0.892,
+              0.852,
+              0.829
+            ]
+          ],
+          [
+            0.526,
+            [
+              0.892,
+              0.852,
+              0.829
+            ]
+          ],
+          [
+            0.528,
+            [
+              0.896,
+              0.85,
+              0.823
+            ]
+          ],
+          [
+            0.53,
+            [
+              0.896,
+              0.85,
+              0.823
+            ]
+          ],
+          [
+            0.532,
+            [
+              0.9,
+              0.848,
+              0.818
+            ]
+          ],
+          [
+            0.534,
+            [
+              0.9,
+              0.848,
+              0.818
+            ]
+          ],
+          [
+            0.536,
+            [
+              0.903,
+              0.845,
+              0.812
+            ]
+          ],
+          [
+            0.538,
+            [
+              0.903,
+              0.845,
+              0.812
+            ]
+          ],
+          [
+            0.54,
+            [
+              0.906,
+              0.842,
+              0.806
+            ]
+          ],
+          [
+            0.542,
+            [
+              0.906,
+              0.842,
+              0.806
+            ]
+          ],
+          [
+            0.544,
+            [
+              0.909,
+              0.839,
+              0.8
+            ]
+          ],
+          [
+            0.546,
+            [
+              0.909,
+              0.839,
+              0.8
+            ]
+          ],
+          [
+            0.548,
+            [
+              0.913,
+              0.837,
+              0.795
+            ]
+          ],
+          [
+            0.55,
+            [
+              0.913,
+              0.837,
+              0.795
+            ]
+          ],
+          [
+            0.552,
+            [
+              0.916,
+              0.834,
+              0.789
+            ]
+          ],
+          [
+            0.554,
+            [
+              0.916,
+              0.834,
+              0.789
+            ]
+          ],
+          [
+            0.556,
+            [
+              0.919,
+              0.831,
+              0.783
+            ]
+          ],
+          [
+            0.558,
+            [
+              0.919,
+              0.831,
+              0.783
+            ]
+          ],
+          [
+            0.56,
+            [
+              0.923,
+              0.829,
+              0.777
+            ]
+          ],
+          [
+            0.562,
+            [
+              0.923,
+              0.829,
+              0.777
+            ]
+          ],
+          [
+            0.564,
+            [
+              0.926,
+              0.826,
+              0.771
+            ]
+          ],
+          [
+            0.566,
+            [
+              0.926,
+              0.826,
+              0.771
+            ]
+          ],
+          [
+            0.568,
+            [
+              0.928,
+              0.822,
+              0.765
+            ]
+          ],
+          [
+            0.569,
+            [
+              0.928,
+              0.822,
+              0.765
+            ]
+          ],
+          [
+            0.571,
+            [
+              0.931,
+              0.819,
+              0.759
+            ]
+          ],
+          [
+            0.573,
+            [
+              0.931,
+              0.819,
+              0.759
+            ]
+          ],
+          [
+            0.575,
+            [
+              0.933,
+              0.816,
+              0.753
+            ]
+          ],
+          [
+            0.577,
+            [
+              0.933,
+              0.816,
+              0.753
+            ]
+          ],
+          [
+            0.579,
+            [
+              0.936,
+              0.812,
+              0.747
+            ]
+          ],
+          [
+            0.581,
+            [
+              0.936,
+              0.812,
+              0.747
+            ]
+          ],
+          [
+            0.583,
+            [
+              0.938,
+              0.809,
+              0.741
+            ]
+          ],
+          [
+            0.585,
+            [
+              0.938,
+              0.809,
+              0.741
+            ]
+          ],
+          [
+            0.587,
+            [
+              0.941,
+              0.806,
+              0.735
+            ]
+          ],
+          [
+            0.589,
+            [
+              0.941,
+              0.806,
+              0.735
+            ]
+          ],
+          [
+            0.591,
+            [
+              0.943,
+              0.802,
+              0.729
+            ]
+          ],
+          [
+            0.593,
+            [
+              0.943,
+              0.802,
+              0.729
+            ]
+          ],
+          [
+            0.595,
+            [
+              0.946,
+              0.799,
+              0.723
+            ]
+          ],
+          [
+            0.597,
+            [
+              0.946,
+              0.799,
+              0.723
+            ]
+          ],
+          [
+            0.599,
+            [
+              0.947,
+              0.795,
+              0.717
+            ]
+          ],
+          [
+            0.601,
+            [
+              0.947,
+              0.795,
+              0.717
+            ]
+          ],
+          [
+            0.603,
+            [
+              0.949,
+              0.791,
+              0.711
+            ]
+          ],
+          [
+            0.605,
+            [
+              0.949,
+              0.791,
+              0.711
+            ]
+          ],
+          [
+            0.607,
+            [
+              0.951,
+              0.787,
+              0.705
+            ]
+          ],
+          [
+            0.609,
+            [
+              0.951,
+              0.787,
+              0.705
+            ]
+          ],
+          [
+            0.611,
+            [
+              0.953,
+              0.783,
+              0.699
+            ]
+          ],
+          [
+            0.613,
+            [
+              0.953,
+              0.783,
+              0.699
+            ]
+          ],
+          [
+            0.614,
+            [
+              0.955,
+              0.779,
+              0.693
+            ]
+          ],
+          [
+            0.616,
+            [
+              0.955,
+              0.779,
+              0.693
+            ]
+          ],
+          [
+            0.618,
+            [
+              0.956,
+              0.775,
+              0.686
+            ]
+          ],
+          [
+            0.62,
+            [
+              0.956,
+              0.775,
+              0.686
+            ]
+          ],
+          [
+            0.622,
+            [
+              0.958,
+              0.771,
+              0.68
+            ]
+          ],
+          [
+            0.624,
+            [
+              0.958,
+              0.771,
+              0.68
+            ]
+          ],
+          [
+            0.626,
+            [
+              0.96,
+              0.767,
+              0.674
+            ]
+          ],
+          [
+            0.628,
+            [
+              0.96,
+              0.767,
+              0.674
+            ]
+          ],
+          [
+            0.63,
+            [
+              0.961,
+              0.763,
+              0.668
+            ]
+          ],
+          [
+            0.632,
+            [
+              0.961,
+              0.763,
+              0.668
+            ]
+          ],
+          [
+            0.634,
+            [
+              0.962,
+              0.758,
+              0.662
+            ]
+          ],
+          [
+            0.636,
+            [
+              0.962,
+              0.758,
+              0.662
+            ]
+          ],
+          [
+            0.638,
+            [
+              0.963,
+              0.754,
+              0.656
+            ]
+          ],
+          [
+            0.64,
+            [
+              0.963,
+              0.754,
+              0.656
+            ]
+          ],
+          [
+            0.642,
+            [
+              0.964,
+              0.749,
+              0.649
+            ]
+          ],
+          [
+            0.644,
+            [
+              0.964,
+              0.749,
+              0.649
+            ]
+          ],
+          [
+            0.646,
+            [
+              0.965,
+              0.745,
+              0.643
+            ]
+          ],
+          [
+            0.648,
+            [
+              0.965,
+              0.745,
+              0.643
+            ]
+          ],
+          [
+            0.65,
+            [
+              0.966,
+              0.74,
+              0.637
+            ]
+          ],
+          [
+            0.652,
+            [
+              0.966,
+              0.74,
+              0.637
+            ]
+          ],
+          [
+            0.654,
+            [
+              0.967,
+              0.736,
+              0.631
+            ]
+          ],
+          [
+            0.656,
+            [
+              0.967,
+              0.736,
+              0.631
+            ]
+          ],
+          [
+            0.658,
+            [
+              0.968,
+              0.731,
+              0.625
+            ]
+          ],
+          [
+            0.659,
+            [
+              0.968,
+              0.731,
+              0.625
+            ]
+          ],
+          [
+            0.661,
+            [
+              0.968,
+              0.726,
+              0.618
+            ]
+          ],
+          [
+            0.663,
+            [
+              0.968,
+              0.726,
+              0.618
+            ]
+          ],
+          [
+            0.665,
+            [
+              0.968,
+              0.721,
+              0.612
+            ]
+          ],
+          [
+            0.667,
+            [
+              0.968,
+              0.721,
+              0.612
+            ]
+          ],
+          [
+            0.669,
+            [
+              0.969,
+              0.716,
+              0.606
+            ]
+          ],
+          [
+            0.671,
+            [
+              0.969,
+              0.716,
+              0.606
+            ]
+          ],
+          [
+            0.673,
+            [
+              0.969,
+              0.711,
+              0.6
+            ]
+          ],
+          [
+            0.675,
+            [
+              0.969,
+              0.711,
+              0.6
+            ]
+          ],
+          [
+            0.677,
+            [
+              0.969,
+              0.706,
+              0.594
+            ]
+          ],
+          [
+            0.679,
+            [
+              0.969,
+              0.706,
+              0.594
+            ]
+          ],
+          [
+            0.681,
+            [
+              0.97,
+              0.701,
+              0.588
+            ]
+          ],
+          [
+            0.683,
+            [
+              0.97,
+              0.701,
+              0.588
+            ]
+          ],
+          [
+            0.685,
+            [
+              0.97,
+              0.696,
+              0.581
+            ]
+          ],
+          [
+            0.687,
+            [
+              0.97,
+              0.696,
+              0.581
+            ]
+          ],
+          [
+            0.689,
+            [
+              0.97,
+              0.69,
+              0.575
+            ]
+          ],
+          [
+            0.691,
+            [
+              0.97,
+              0.69,
+              0.575
+            ]
+          ],
+          [
+            0.693,
+            [
+              0.969,
+              0.685,
+              0.569
+            ]
+          ],
+          [
+            0.695,
+            [
+              0.969,
+              0.685,
+              0.569
+            ]
+          ],
+          [
+            0.697,
+            [
+              0.969,
+              0.679,
+              0.563
+            ]
+          ],
+          [
+            0.699,
+            [
+              0.969,
+              0.679,
+              0.563
+            ]
+          ],
+          [
+            0.701,
+            [
+              0.968,
+              0.674,
+              0.557
+            ]
+          ],
+          [
+            0.703,
+            [
+              0.968,
+              0.674,
+              0.557
+            ]
+          ],
+          [
+            0.705,
+            [
+              0.968,
+              0.668,
+              0.55
+            ]
+          ],
+          [
+            0.706,
+            [
+              0.968,
+              0.668,
+              0.55
+            ]
+          ],
+          [
+            0.708,
+            [
+              0.968,
+              0.663,
+              0.544
+            ]
+          ],
+          [
+            0.71,
+            [
+              0.968,
+              0.663,
+              0.544
+            ]
+          ],
+          [
+            0.712,
+            [
+              0.967,
+              0.657,
+              0.538
+            ]
+          ],
+          [
+            0.714,
+            [
+              0.967,
+              0.657,
+              0.538
+            ]
+          ],
+          [
+            0.716,
+            [
+              0.967,
+              0.652,
+              0.532
+            ]
+          ],
+          [
+            0.718,
+            [
+              0.967,
+              0.652,
+              0.532
+            ]
+          ],
+          [
+            0.72,
+            [
+              0.966,
+              0.646,
+              0.526
+            ]
+          ],
+          [
+            0.722,
+            [
+              0.966,
+              0.646,
+              0.526
+            ]
+          ],
+          [
+            0.724,
+            [
+              0.965,
+              0.64,
+              0.52
+            ]
+          ],
+          [
+            0.726,
+            [
+              0.965,
+              0.64,
+              0.52
+            ]
+          ],
+          [
+            0.728,
+            [
+              0.964,
+              0.634,
+              0.514
+            ]
+          ],
+          [
+            0.73,
+            [
+              0.964,
+              0.634,
+              0.514
+            ]
+          ],
+          [
+            0.732,
+            [
+              0.963,
+              0.628,
+              0.508
+            ]
+          ],
+          [
+            0.734,
+            [
+              0.963,
+              0.628,
+              0.508
+            ]
+          ],
+          [
+            0.736,
+            [
+              0.962,
+              0.622,
+              0.502
+            ]
+          ],
+          [
+            0.738,
+            [
+              0.962,
+              0.622,
+              0.502
+            ]
+          ],
+          [
+            0.74,
+            [
+              0.96,
+              0.616,
+              0.495
+            ]
+          ],
+          [
+            0.742,
+            [
+              0.96,
+              0.616,
+              0.495
+            ]
+          ],
+          [
+            0.744,
+            [
+              0.959,
+              0.61,
+              0.489
+            ]
+          ],
+          [
+            0.746,
+            [
+              0.959,
+              0.61,
+              0.489
+            ]
+          ],
+          [
+            0.748,
+            [
+              0.958,
+              0.604,
+              0.483
+            ]
+          ],
+          [
+            0.75,
+            [
+              0.958,
+              0.604,
+              0.483
+            ]
+          ],
+          [
+            0.751,
+            [
+              0.957,
+              0.598,
+              0.477
+            ]
+          ],
+          [
+            0.753,
+            [
+              0.957,
+              0.598,
+              0.477
+            ]
+          ],
+          [
+            0.755,
+            [
+              0.955,
+              0.592,
+              0.471
+            ]
+          ],
+          [
+            0.757,
+            [
+              0.955,
+              0.592,
+              0.471
+            ]
+          ],
+          [
+            0.759,
+            [
+              0.953,
+              0.585,
+              0.465
+            ]
+          ],
+          [
+            0.761,
+            [
+              0.953,
+              0.585,
+              0.465
+            ]
+          ],
+          [
+            0.763,
+            [
+              0.951,
+              0.579,
+              0.459
+            ]
+          ],
+          [
+            0.765,
+            [
+              0.951,
+              0.579,
+              0.459
+            ]
+          ],
+          [
+            0.767,
+            [
+              0.949,
+              0.572,
+              0.453
+            ]
+          ],
+          [
+            0.769,
+            [
+              0.949,
+              0.572,
+              0.453
+            ]
+          ],
+          [
+            0.771,
+            [
+              0.948,
+              0.566,
+              0.447
+            ]
+          ],
+          [
+            0.773,
+            [
+              0.948,
+              0.566,
+              0.447
+            ]
+          ],
+          [
+            0.775,
+            [
+              0.946,
+              0.56,
+              0.442
+            ]
+          ],
+          [
+            0.777,
+            [
+              0.946,
+              0.56,
+              0.442
+            ]
+          ],
+          [
+            0.779,
+            [
+              0.944,
+              0.553,
+              0.436
+            ]
+          ],
+          [
+            0.781,
+            [
+              0.944,
+              0.553,
+              0.436
+            ]
+          ],
+          [
+            0.783,
+            [
+              0.942,
+              0.546,
+              0.43
+            ]
+          ],
+          [
+            0.785,
+            [
+              0.942,
+              0.546,
+              0.43
+            ]
+          ],
+          [
+            0.787,
+            [
+              0.939,
+              0.54,
+              0.424
+            ]
+          ],
+          [
+            0.789,
+            [
+              0.939,
+              0.54,
+              0.424
+            ]
+          ],
+          [
+            0.791,
+            [
+              0.937,
+              0.533,
+              0.418
+            ]
+          ],
+          [
+            0.793,
+            [
+              0.937,
+              0.533,
+              0.418
+            ]
+          ],
+          [
+            0.795,
+            [
+              0.934,
+              0.526,
+              0.412
+            ]
+          ],
+          [
+            0.796,
+            [
+              0.934,
+              0.526,
+              0.412
+            ]
+          ],
+          [
+            0.798,
+            [
+              0.932,
+              0.519,
+              0.406
+            ]
+          ],
+          [
+            0.8,
+            [
+              0.932,
+              0.519,
+              0.406
+            ]
+          ],
+          [
+            0.802,
+            [
+              0.929,
+              0.512,
+              0.401
+            ]
+          ],
+          [
+            0.804,
+            [
+              0.929,
+              0.512,
+              0.401
+            ]
+          ],
+          [
+            0.806,
+            [
+              0.927,
+              0.505,
+              0.395
+            ]
+          ],
+          [
+            0.808,
+            [
+              0.927,
+              0.505,
+              0.395
+            ]
+          ],
+          [
+            0.81,
+            [
+              0.924,
+              0.499,
+              0.389
+            ]
+          ],
+          [
+            0.812,
+            [
+              0.924,
+              0.499,
+              0.389
+            ]
+          ],
+          [
+            0.814,
+            [
+              0.921,
+              0.491,
+              0.383
+            ]
+          ],
+          [
+            0.816,
+            [
+              0.921,
+              0.491,
+              0.383
+            ]
+          ],
+          [
+            0.818,
+            [
+              0.918,
+              0.484,
+              0.378
+            ]
+          ],
+          [
+            0.82,
+            [
+              0.918,
+              0.484,
+              0.378
+            ]
+          ],
+          [
+            0.822,
+            [
+              0.915,
+              0.477,
+              0.372
+            ]
+          ],
+          [
+            0.824,
+            [
+              0.915,
+              0.477,
+              0.372
+            ]
+          ],
+          [
+            0.826,
+            [
+              0.912,
+              0.47,
+              0.367
+            ]
+          ],
+          [
+            0.828,
+            [
+              0.912,
+              0.47,
+              0.367
+            ]
+          ],
+          [
+            0.83,
+            [
+              0.909,
+              0.462,
+              0.361
+            ]
+          ],
+          [
+            0.832,
+            [
+              0.909,
+              0.462,
+              0.361
+            ]
+          ],
+          [
+            0.834,
+            [
+              0.906,
+              0.455,
+              0.355
+            ]
+          ],
+          [
+            0.836,
+            [
+              0.906,
+              0.455,
+              0.355
+            ]
+          ],
+          [
+            0.838,
+            [
+              0.903,
+              0.448,
+              0.35
+            ]
+          ],
+          [
+            0.84,
+            [
+              0.903,
+              0.448,
+              0.35
+            ]
+          ],
+          [
+            0.841,
+            [
+              0.9,
+              0.441,
+              0.344
+            ]
+          ],
+          [
+            0.843,
+            [
+              0.9,
+              0.441,
+              0.344
+            ]
+          ],
+          [
+            0.845,
+            [
+              0.896,
+              0.433,
+              0.339
+            ]
+          ],
+          [
+            0.847,
+            [
+              0.896,
+              0.433,
+              0.339
+            ]
+          ],
+          [
+            0.849,
+            [
+              0.892,
+              0.425,
+              0.333
+            ]
+          ],
+          [
+            0.851,
+            [
+              0.892,
+              0.425,
+              0.333
+            ]
+          ],
+          [
+            0.853,
+            [
+              0.888,
+              0.418,
+              0.328
+            ]
+          ],
+          [
+            0.855,
+            [
+              0.888,
+              0.418,
+              0.328
+            ]
+          ],
+          [
+            0.857,
+            [
+              0.885,
+              0.41,
+              0.323
+            ]
+          ],
+          [
+            0.859,
+            [
+              0.885,
+              0.41,
+              0.323
+            ]
+          ],
+          [
+            0.861,
+            [
+              0.881,
+              0.402,
+              0.317
+            ]
+          ],
+          [
+            0.863,
+            [
+              0.881,
+              0.402,
+              0.317
+            ]
+          ],
+          [
+            0.865,
+            [
+              0.877,
+              0.395,
+              0.312
+            ]
+          ],
+          [
+            0.867,
+            [
+              0.877,
+              0.395,
+              0.312
+            ]
+          ],
+          [
+            0.869,
+            [
+              0.873,
+              0.387,
+              0.306
+            ]
+          ],
+          [
+            0.871,
+            [
+              0.873,
+              0.387,
+              0.306
+            ]
+          ],
+          [
+            0.873,
+            [
+              0.87,
+              0.379,
+              0.301
+            ]
+          ],
+          [
+            0.875,
+            [
+              0.87,
+              0.379,
+              0.301
+            ]
+          ],
+          [
+            0.877,
+            [
+              0.865,
+              0.371,
+              0.296
+            ]
+          ],
+          [
+            0.879,
+            [
+              0.865,
+              0.371,
+              0.296
+            ]
+          ],
+          [
+            0.881,
+            [
+              0.861,
+              0.363,
+              0.291
+            ]
+          ],
+          [
+            0.883,
+            [
+              0.861,
+              0.363,
+              0.291
+            ]
+          ],
+          [
+            0.885,
+            [
+              0.857,
+              0.355,
+              0.285
+            ]
+          ],
+          [
+            0.886,
+            [
+              0.857,
+              0.355,
+              0.285
+            ]
+          ],
+          [
+            0.888,
+            [
+              0.852,
+              0.346,
+              0.28
+            ]
+          ],
+          [
+            0.89,
+            [
+              0.852,
+              0.346,
+              0.28
+            ]
+          ],
+          [
+            0.892,
+            [
+              0.848,
+              0.338,
+              0.275
+            ]
+          ],
+          [
+            0.894,
+            [
+              0.848,
+              0.338,
+              0.275
+            ]
+          ],
+          [
+            0.896,
+            [
+              0.844,
+              0.33,
+              0.27
+            ]
+          ],
+          [
+            0.898,
+            [
+              0.844,
+              0.33,
+              0.27
+            ]
+          ],
+          [
+            0.9,
+            [
+              0.839,
+              0.322,
+              0.265
+            ]
+          ],
+          [
+            0.902,
+            [
+              0.839,
+              0.322,
+              0.265
+            ]
+          ],
+          [
+            0.904,
+            [
+              0.835,
+              0.314,
+              0.26
+            ]
+          ],
+          [
+            0.906,
+            [
+              0.835,
+              0.314,
+              0.26
+            ]
+          ],
+          [
+            0.908,
+            [
+              0.83,
+              0.305,
+              0.255
+            ]
+          ],
+          [
+            0.91,
+            [
+              0.83,
+              0.305,
+              0.255
+            ]
+          ],
+          [
+            0.912,
+            [
+              0.825,
+              0.296,
+              0.25
+            ]
+          ],
+          [
+            0.914,
+            [
+              0.825,
+              0.296,
+              0.25
+            ]
+          ],
+          [
+            0.916,
+            [
+              0.82,
+              0.287,
+              0.245
+            ]
+          ],
+          [
+            0.918,
+            [
+              0.82,
+              0.287,
+              0.245
+            ]
+          ],
+          [
+            0.92,
+            [
+              0.816,
+              0.278,
+              0.24
+            ]
+          ],
+          [
+            0.922,
+            [
+              0.816,
+              0.278,
+              0.24
+            ]
+          ],
+          [
+            0.924,
+            [
+              0.811,
+              0.269,
+              0.235
+            ]
+          ],
+          [
+            0.926,
+            [
+              0.811,
+              0.269,
+              0.235
+            ]
+          ],
+          [
+            0.928,
+            [
+              0.806,
+              0.26,
+              0.231
+            ]
+          ],
+          [
+            0.93,
+            [
+              0.806,
+              0.26,
+              0.231
+            ]
+          ],
+          [
+            0.932,
+            [
+              0.801,
+              0.251,
+              0.226
+            ]
+          ],
+          [
+            0.933,
+            [
+              0.801,
+              0.251,
+              0.226
+            ]
+          ],
+          [
+            0.935,
+            [
+              0.796,
+              0.242,
+              0.221
+            ]
+          ],
+          [
+            0.937,
+            [
+              0.796,
+              0.242,
+              0.221
+            ]
+          ],
+          [
+            0.939,
+            [
+              0.791,
+              0.231,
+              0.216
+            ]
+          ],
+          [
+            0.941,
+            [
+              0.791,
+              0.231,
+              0.216
+            ]
+          ],
+          [
+            0.943,
+            [
+              0.785,
+              0.221,
+              0.212
+            ]
+          ],
+          [
+            0.945,
+            [
+              0.785,
+              0.221,
+              0.212
+            ]
+          ],
+          [
+            0.947,
+            [
+              0.78,
+              0.21,
+              0.207
+            ]
+          ],
+          [
+            0.949,
+            [
+              0.78,
+              0.21,
+              0.207
+            ]
+          ],
+          [
+            0.951,
+            [
+              0.774,
+              0.2,
+              0.203
+            ]
+          ],
+          [
+            0.953,
+            [
+              0.774,
+              0.2,
+              0.203
+            ]
+          ],
+          [
+            0.955,
+            [
+              0.769,
+              0.189,
+              0.198
+            ]
+          ],
+          [
+            0.957,
+            [
+              0.769,
+              0.189,
+              0.198
+            ]
+          ],
+          [
+            0.959,
+            [
+              0.764,
+              0.179,
+              0.193
+            ]
+          ],
+          [
+            0.961,
+            [
+              0.764,
+              0.179,
+              0.193
+            ]
+          ],
+          [
+            0.963,
+            [
+              0.758,
+              0.168,
+              0.189
+            ]
+          ],
+          [
+            0.965,
+            [
+              0.758,
+              0.168,
+              0.189
+            ]
+          ],
+          [
+            0.967,
+            [
+              0.753,
+              0.158,
+              0.184
+            ]
+          ],
+          [
+            0.969,
+            [
+              0.753,
+              0.158,
+              0.184
+            ]
+          ],
+          [
+            0.971,
+            [
+              0.747,
+              0.14,
+              0.18
+            ]
+          ],
+          [
+            0.973,
+            [
+              0.747,
+              0.14,
+              0.18
+            ]
+          ],
+          [
+            0.975,
+            [
+              0.741,
+              0.122,
+              0.176
+            ]
+          ],
+          [
+            0.977,
+            [
+              0.741,
+              0.122,
+              0.176
+            ]
+          ],
+          [
+            0.978,
+            [
+              0.735,
+              0.104,
+              0.171
+            ]
+          ],
+          [
+            0.98,
+            [
+              0.735,
+              0.104,
+              0.171
+            ]
+          ],
+          [
+            0.982,
+            [
+              0.729,
+              0.087,
+              0.167
+            ]
+          ],
+          [
+            0.984,
+            [
+              0.729,
+              0.087,
+              0.167
+            ]
+          ],
+          [
+            0.986,
+            [
+              0.723,
+              0.069,
+              0.163
+            ]
+          ],
+          [
+            0.988,
+            [
+              0.723,
+              0.069,
+              0.163
+            ]
+          ],
+          [
+            0.99,
+            [
+              0.717,
+              0.051,
+              0.159
+            ]
+          ],
+          [
+            0.992,
+            [
+              0.717,
+              0.051,
+              0.159
+            ]
+          ],
+          [
+            0.994,
+            [
+              0.712,
+              0.033,
+              0.154
+            ]
+          ],
+          [
+            0.996,
+            [
+              0.712,
+              0.033,
+              0.154
+            ]
+          ],
+          [
+            0.998,
+            [
+              0.706,
+              0.016,
+              0.15
+            ]
+          ],
+          [
+            1,
+            [
+              0.706,
+              0.016,
+              0.15
+            ]
+          ]
+        ],
+        [
+          [
+            0,
+            [
+              1,
+              1,
+              0.851
+            ]
+          ],
+          [
+            0.002,
+            [
+              1,
+              1,
+              0.851
+            ]
+          ],
+          [
+            0.004,
+            [
+              0.998,
+              0.999,
+              0.846
+            ]
+          ],
+          [
+            0.006,
+            [
+              0.998,
+              0.999,
+              0.846
+            ]
+          ],
+          [
+            0.008,
+            [
+              0.996,
+              0.998,
+              0.841
+            ]
+          ],
+          [
+            0.01,
+            [
+              0.996,
+              0.998,
+              0.841
+            ]
+          ],
+          [
+            0.012,
+            [
+              0.993,
+              0.997,
+              0.836
+            ]
+          ],
+          [
+            0.014,
+            [
+              0.993,
+              0.997,
+              0.836
+            ]
+          ],
+          [
+            0.016,
+            [
+              0.991,
+              0.997,
+              0.831
+            ]
+          ],
+          [
+            0.018,
+            [
+              0.991,
+              0.997,
+              0.831
+            ]
+          ],
+          [
+            0.02,
+            [
+              0.989,
+              0.996,
+              0.826
+            ]
+          ],
+          [
+            0.022,
+            [
+              0.989,
+              0.996,
+              0.826
+            ]
+          ],
+          [
+            0.023,
+            [
+              0.987,
+              0.995,
+              0.821
+            ]
+          ],
+          [
+            0.025,
+            [
+              0.987,
+              0.995,
+              0.821
+            ]
+          ],
+          [
+            0.027,
+            [
+              0.984,
+              0.994,
+              0.817
+            ]
+          ],
+          [
+            0.029,
+            [
+              0.984,
+              0.994,
+              0.817
+            ]
+          ],
+          [
+            0.031,
+            [
+              0.982,
+              0.993,
+              0.812
+            ]
+          ],
+          [
+            0.033,
+            [
+              0.982,
+              0.993,
+              0.812
+            ]
+          ],
+          [
+            0.035,
+            [
+              0.98,
+              0.992,
+              0.807
+            ]
+          ],
+          [
+            0.037,
+            [
+              0.98,
+              0.992,
+              0.807
+            ]
+          ],
+          [
+            0.039,
+            [
+              0.978,
+              0.991,
+              0.802
+            ]
+          ],
+          [
+            0.041,
+            [
+              0.978,
+              0.991,
+              0.802
+            ]
+          ],
+          [
+            0.043,
+            [
+              0.976,
+              0.991,
+              0.797
+            ]
+          ],
+          [
+            0.045,
+            [
+              0.976,
+              0.991,
+              0.797
+            ]
+          ],
+          [
+            0.047,
+            [
+              0.973,
+              0.99,
+              0.792
+            ]
+          ],
+          [
+            0.049,
+            [
+              0.973,
+              0.99,
+              0.792
+            ]
+          ],
+          [
+            0.051,
+            [
+              0.971,
+              0.989,
+              0.787
+            ]
+          ],
+          [
+            0.053,
+            [
+              0.971,
+              0.989,
+              0.787
+            ]
+          ],
+          [
+            0.055,
+            [
+              0.969,
+              0.988,
+              0.782
+            ]
+          ],
+          [
+            0.057,
+            [
+              0.969,
+              0.988,
+              0.782
+            ]
+          ],
+          [
+            0.059,
+            [
+              0.967,
+              0.987,
+              0.777
+            ]
+          ],
+          [
+            0.061,
+            [
+              0.967,
+              0.987,
+              0.777
+            ]
+          ],
+          [
+            0.063,
+            [
+              0.965,
+              0.986,
+              0.772
+            ]
+          ],
+          [
+            0.065,
+            [
+              0.965,
+              0.986,
+              0.772
+            ]
+          ],
+          [
+            0.067,
+            [
+              0.962,
+              0.985,
+              0.767
+            ]
+          ],
+          [
+            0.068,
+            [
+              0.962,
+              0.985,
+              0.767
+            ]
+          ],
+          [
+            0.07,
+            [
+              0.96,
+              0.984,
+              0.762
+            ]
+          ],
+          [
+            0.072,
+            [
+              0.96,
+              0.984,
+              0.762
+            ]
+          ],
+          [
+            0.074,
+            [
+              0.958,
+              0.984,
+              0.757
+            ]
+          ],
+          [
+            0.076,
+            [
+              0.958,
+              0.984,
+              0.757
+            ]
+          ],
+          [
+            0.078,
+            [
+              0.956,
+              0.983,
+              0.753
+            ]
+          ],
+          [
+            0.08,
+            [
+              0.956,
+              0.983,
+              0.753
+            ]
+          ],
+          [
+            0.082,
+            [
+              0.953,
+              0.982,
+              0.748
+            ]
+          ],
+          [
+            0.084,
+            [
+              0.953,
+              0.982,
+              0.748
+            ]
+          ],
+          [
+            0.086,
+            [
+              0.951,
+              0.981,
+              0.743
+            ]
+          ],
+          [
+            0.088,
+            [
+              0.951,
+              0.981,
+              0.743
+            ]
+          ],
+          [
+            0.09,
+            [
+              0.949,
+              0.98,
+              0.738
+            ]
+          ],
+          [
+            0.092,
+            [
+              0.949,
+              0.98,
+              0.738
+            ]
+          ],
+          [
+            0.094,
+            [
+              0.947,
+              0.979,
+              0.733
+            ]
+          ],
+          [
+            0.096,
+            [
+              0.947,
+              0.979,
+              0.733
+            ]
+          ],
+          [
+            0.098,
+            [
+              0.945,
+              0.978,
+              0.728
+            ]
+          ],
+          [
+            0.1,
+            [
+              0.945,
+              0.978,
+              0.728
+            ]
+          ],
+          [
+            0.102,
+            [
+              0.942,
+              0.978,
+              0.723
+            ]
+          ],
+          [
+            0.104,
+            [
+              0.942,
+              0.978,
+              0.723
+            ]
+          ],
+          [
+            0.106,
+            [
+              0.94,
+              0.977,
+              0.718
+            ]
+          ],
+          [
+            0.108,
+            [
+              0.94,
+              0.977,
+              0.718
+            ]
+          ],
+          [
+            0.11,
+            [
+              0.938,
+              0.976,
+              0.713
+            ]
+          ],
+          [
+            0.112,
+            [
+              0.938,
+              0.976,
+              0.713
+            ]
+          ],
+          [
+            0.114,
+            [
+              0.936,
+              0.975,
+              0.708
+            ]
+          ],
+          [
+            0.115,
+            [
+              0.936,
+              0.975,
+              0.708
+            ]
+          ],
+          [
+            0.117,
+            [
+              0.934,
+              0.974,
+              0.703
+            ]
+          ],
+          [
+            0.119,
+            [
+              0.934,
+              0.974,
+              0.703
+            ]
+          ],
+          [
+            0.121,
+            [
+              0.931,
+              0.973,
+              0.698
+            ]
+          ],
+          [
+            0.123,
+            [
+              0.931,
+              0.973,
+              0.698
+            ]
+          ],
+          [
+            0.125,
+            [
+              0.929,
+              0.972,
+              0.694
+            ]
+          ],
+          [
+            0.127,
+            [
+              0.929,
+              0.972,
+              0.694
+            ]
+          ],
+          [
+            0.129,
+            [
+              0.924,
+              0.97,
+              0.695
+            ]
+          ],
+          [
+            0.131,
+            [
+              0.924,
+              0.97,
+              0.695
+            ]
+          ],
+          [
+            0.133,
+            [
+              0.919,
+              0.969,
+              0.695
+            ]
+          ],
+          [
+            0.135,
+            [
+              0.919,
+              0.969,
+              0.695
+            ]
+          ],
+          [
+            0.137,
+            [
+              0.915,
+              0.967,
+              0.695
+            ]
+          ],
+          [
+            0.139,
+            [
+              0.915,
+              0.967,
+              0.695
+            ]
+          ],
+          [
+            0.141,
+            [
+              0.91,
+              0.965,
+              0.696
+            ]
+          ],
+          [
+            0.143,
+            [
+              0.91,
+              0.965,
+              0.696
+            ]
+          ],
+          [
+            0.145,
+            [
+              0.905,
+              0.963,
+              0.696
+            ]
+          ],
+          [
+            0.147,
+            [
+              0.905,
+              0.963,
+              0.696
+            ]
+          ],
+          [
+            0.149,
+            [
+              0.901,
+              0.961,
+              0.696
+            ]
+          ],
+          [
+            0.151,
+            [
+              0.901,
+              0.961,
+              0.696
+            ]
+          ],
+          [
+            0.153,
+            [
+              0.896,
+              0.959,
+              0.697
+            ]
+          ],
+          [
+            0.155,
+            [
+              0.896,
+              0.959,
+              0.697
+            ]
+          ],
+          [
+            0.157,
+            [
+              0.891,
+              0.958,
+              0.697
+            ]
+          ],
+          [
+            0.159,
+            [
+              0.891,
+              0.958,
+              0.697
+            ]
+          ],
+          [
+            0.16,
+            [
+              0.887,
+              0.956,
+              0.697
+            ]
+          ],
+          [
+            0.162,
+            [
+              0.887,
+              0.956,
+              0.697
+            ]
+          ],
+          [
+            0.164,
+            [
+              0.882,
+              0.954,
+              0.698
+            ]
+          ],
+          [
+            0.166,
+            [
+              0.882,
+              0.954,
+              0.698
+            ]
+          ],
+          [
+            0.168,
+            [
+              0.877,
+              0.952,
+              0.698
+            ]
+          ],
+          [
+            0.17,
+            [
+              0.877,
+              0.952,
+              0.698
+            ]
+          ],
+          [
+            0.172,
+            [
+              0.873,
+              0.95,
+              0.699
+            ]
+          ],
+          [
+            0.174,
+            [
+              0.873,
+              0.95,
+              0.699
+            ]
+          ],
+          [
+            0.176,
+            [
+              0.868,
+              0.948,
+              0.699
+            ]
+          ],
+          [
+            0.178,
+            [
+              0.868,
+              0.948,
+              0.699
+            ]
+          ],
+          [
+            0.18,
+            [
+              0.863,
+              0.946,
+              0.699
+            ]
+          ],
+          [
+            0.182,
+            [
+              0.863,
+              0.946,
+              0.699
+            ]
+          ],
+          [
+            0.184,
+            [
+              0.859,
+              0.945,
+              0.7
+            ]
+          ],
+          [
+            0.186,
+            [
+              0.859,
+              0.945,
+              0.7
+            ]
+          ],
+          [
+            0.188,
+            [
+              0.854,
+              0.943,
+              0.7
+            ]
+          ],
+          [
+            0.19,
+            [
+              0.854,
+              0.943,
+              0.7
+            ]
+          ],
+          [
+            0.192,
+            [
+              0.849,
+              0.941,
+              0.7
+            ]
+          ],
+          [
+            0.194,
+            [
+              0.849,
+              0.941,
+              0.7
+            ]
+          ],
+          [
+            0.196,
+            [
+              0.845,
+              0.939,
+              0.701
+            ]
+          ],
+          [
+            0.198,
+            [
+              0.845,
+              0.939,
+              0.701
+            ]
+          ],
+          [
+            0.2,
+            [
+              0.84,
+              0.937,
+              0.701
+            ]
+          ],
+          [
+            0.202,
+            [
+              0.84,
+              0.937,
+              0.701
+            ]
+          ],
+          [
+            0.204,
+            [
+              0.835,
+              0.935,
+              0.702
+            ]
+          ],
+          [
+            0.205,
+            [
+              0.835,
+              0.935,
+              0.702
+            ]
+          ],
+          [
+            0.207,
+            [
+              0.831,
+              0.934,
+              0.702
+            ]
+          ],
+          [
+            0.209,
+            [
+              0.831,
+              0.934,
+              0.702
+            ]
+          ],
+          [
+            0.211,
+            [
+              0.826,
+              0.932,
+              0.702
+            ]
+          ],
+          [
+            0.213,
+            [
+              0.826,
+              0.932,
+              0.702
+            ]
+          ],
+          [
+            0.215,
+            [
+              0.821,
+              0.93,
+              0.703
+            ]
+          ],
+          [
+            0.217,
+            [
+              0.821,
+              0.93,
+              0.703
+            ]
+          ],
+          [
+            0.219,
+            [
+              0.817,
+              0.928,
+              0.703
+            ]
+          ],
+          [
+            0.221,
+            [
+              0.817,
+              0.928,
+              0.703
+            ]
+          ],
+          [
+            0.223,
+            [
+              0.812,
+              0.926,
+              0.703
+            ]
+          ],
+          [
+            0.225,
+            [
+              0.812,
+              0.926,
+              0.703
+            ]
+          ],
+          [
+            0.227,
+            [
+              0.807,
+              0.924,
+              0.704
+            ]
+          ],
+          [
+            0.229,
+            [
+              0.807,
+              0.924,
+              0.704
+            ]
+          ],
+          [
+            0.231,
+            [
+              0.803,
+              0.922,
+              0.704
+            ]
+          ],
+          [
+            0.233,
+            [
+              0.803,
+              0.922,
+              0.704
+            ]
+          ],
+          [
+            0.235,
+            [
+              0.798,
+              0.921,
+              0.704
+            ]
+          ],
+          [
+            0.237,
+            [
+              0.798,
+              0.921,
+              0.704
+            ]
+          ],
+          [
+            0.239,
+            [
+              0.793,
+              0.919,
+              0.705
+            ]
+          ],
+          [
+            0.241,
+            [
+              0.793,
+              0.919,
+              0.705
+            ]
+          ],
+          [
+            0.243,
+            [
+              0.789,
+              0.917,
+              0.705
+            ]
+          ],
+          [
+            0.245,
+            [
+              0.789,
+              0.917,
+              0.705
+            ]
+          ],
+          [
+            0.247,
+            [
+              0.784,
+              0.915,
+              0.706
+            ]
+          ],
+          [
+            0.249,
+            [
+              0.784,
+              0.915,
+              0.706
+            ]
+          ],
+          [
+            0.25,
+            [
+              0.778,
+              0.913,
+              0.706
+            ]
+          ],
+          [
+            0.252,
+            [
+              0.778,
+              0.913,
+              0.706
+            ]
+          ],
+          [
+            0.254,
+            [
+              0.769,
+              0.909,
+              0.707
+            ]
+          ],
+          [
+            0.256,
+            [
+              0.769,
+              0.909,
+              0.707
+            ]
+          ],
+          [
+            0.258,
+            [
+              0.76,
+              0.906,
+              0.708
+            ]
+          ],
+          [
+            0.26,
+            [
+              0.76,
+              0.906,
+              0.708
+            ]
+          ],
+          [
+            0.262,
+            [
+              0.752,
+              0.903,
+              0.709
+            ]
+          ],
+          [
+            0.264,
+            [
+              0.752,
+              0.903,
+              0.709
+            ]
+          ],
+          [
+            0.266,
+            [
+              0.743,
+              0.899,
+              0.71
+            ]
+          ],
+          [
+            0.268,
+            [
+              0.743,
+              0.899,
+              0.71
+            ]
+          ],
+          [
+            0.27,
+            [
+              0.734,
+              0.896,
+              0.71
+            ]
+          ],
+          [
+            0.272,
+            [
+              0.734,
+              0.896,
+              0.71
+            ]
+          ],
+          [
+            0.274,
+            [
+              0.725,
+              0.892,
+              0.711
+            ]
+          ],
+          [
+            0.276,
+            [
+              0.725,
+              0.892,
+              0.711
+            ]
+          ],
+          [
+            0.278,
+            [
+              0.716,
+              0.889,
+              0.712
+            ]
+          ],
+          [
+            0.28,
+            [
+              0.716,
+              0.889,
+              0.712
+            ]
+          ],
+          [
+            0.282,
+            [
+              0.707,
+              0.885,
+              0.713
+            ]
+          ],
+          [
+            0.284,
+            [
+              0.707,
+              0.885,
+              0.713
+            ]
+          ],
+          [
+            0.286,
+            [
+              0.698,
+              0.882,
+              0.714
+            ]
+          ],
+          [
+            0.288,
+            [
+              0.698,
+              0.882,
+              0.714
+            ]
+          ],
+          [
+            0.29,
+            [
+              0.69,
+              0.878,
+              0.715
+            ]
+          ],
+          [
+            0.292,
+            [
+              0.69,
+              0.878,
+              0.715
+            ]
+          ],
+          [
+            0.294,
+            [
+              0.681,
+              0.875,
+              0.716
+            ]
+          ],
+          [
+            0.295,
+            [
+              0.681,
+              0.875,
+              0.716
+            ]
+          ],
+          [
+            0.297,
+            [
+              0.672,
+              0.872,
+              0.716
+            ]
+          ],
+          [
+            0.299,
+            [
+              0.672,
+              0.872,
+              0.716
+            ]
+          ],
+          [
+            0.301,
+            [
+              0.663,
+              0.868,
+              0.717
+            ]
+          ],
+          [
+            0.303,
+            [
+              0.663,
+              0.868,
+              0.717
+            ]
+          ],
+          [
+            0.305,
+            [
+              0.654,
+              0.865,
+              0.718
+            ]
+          ],
+          [
+            0.307,
+            [
+              0.654,
+              0.865,
+              0.718
+            ]
+          ],
+          [
+            0.309,
+            [
+              0.645,
+              0.861,
+              0.719
+            ]
+          ],
+          [
+            0.311,
+            [
+              0.645,
+              0.861,
+              0.719
+            ]
+          ],
+          [
+            0.313,
+            [
+              0.636,
+              0.858,
+              0.72
+            ]
+          ],
+          [
+            0.315,
+            [
+              0.636,
+              0.858,
+              0.72
+            ]
+          ],
+          [
+            0.317,
+            [
+              0.628,
+              0.854,
+              0.721
+            ]
+          ],
+          [
+            0.319,
+            [
+              0.628,
+              0.854,
+              0.721
+            ]
+          ],
+          [
+            0.321,
+            [
+              0.619,
+              0.851,
+              0.722
+            ]
+          ],
+          [
+            0.323,
+            [
+              0.619,
+              0.851,
+              0.722
+            ]
+          ],
+          [
+            0.325,
+            [
+              0.61,
+              0.847,
+              0.722
+            ]
+          ],
+          [
+            0.327,
+            [
+              0.61,
+              0.847,
+              0.722
+            ]
+          ],
+          [
+            0.329,
+            [
+              0.601,
+              0.844,
+              0.723
+            ]
+          ],
+          [
+            0.331,
+            [
+              0.601,
+              0.844,
+              0.723
+            ]
+          ],
+          [
+            0.333,
+            [
+              0.592,
+              0.841,
+              0.724
+            ]
+          ],
+          [
+            0.335,
+            [
+              0.592,
+              0.841,
+              0.724
+            ]
+          ],
+          [
+            0.337,
+            [
+              0.583,
+              0.837,
+              0.725
+            ]
+          ],
+          [
+            0.339,
+            [
+              0.583,
+              0.837,
+              0.725
+            ]
+          ],
+          [
+            0.341,
+            [
+              0.574,
+              0.834,
+              0.726
+            ]
+          ],
+          [
+            0.342,
+            [
+              0.574,
+              0.834,
+              0.726
+            ]
+          ],
+          [
+            0.344,
+            [
+              0.566,
+              0.83,
+              0.727
+            ]
+          ],
+          [
+            0.346,
+            [
+              0.566,
+              0.83,
+              0.727
+            ]
+          ],
+          [
+            0.348,
+            [
+              0.557,
+              0.827,
+              0.728
+            ]
+          ],
+          [
+            0.35,
+            [
+              0.557,
+              0.827,
+              0.728
+            ]
+          ],
+          [
+            0.352,
+            [
+              0.548,
+              0.823,
+              0.728
+            ]
+          ],
+          [
+            0.354,
+            [
+              0.548,
+              0.823,
+              0.728
+            ]
+          ],
+          [
+            0.356,
+            [
+              0.539,
+              0.82,
+              0.729
+            ]
+          ],
+          [
+            0.358,
+            [
+              0.539,
+              0.82,
+              0.729
+            ]
+          ],
+          [
+            0.36,
+            [
+              0.53,
+              0.816,
+              0.73
+            ]
+          ],
+          [
+            0.362,
+            [
+              0.53,
+              0.816,
+              0.73
+            ]
+          ],
+          [
+            0.364,
+            [
+              0.521,
+              0.813,
+              0.731
+            ]
+          ],
+          [
+            0.366,
+            [
+              0.521,
+              0.813,
+              0.731
+            ]
+          ],
+          [
+            0.368,
+            [
+              0.512,
+              0.81,
+              0.732
+            ]
+          ],
+          [
+            0.37,
+            [
+              0.512,
+              0.81,
+              0.732
+            ]
+          ],
+          [
+            0.372,
+            [
+              0.504,
+              0.806,
+              0.733
+            ]
+          ],
+          [
+            0.374,
+            [
+              0.504,
+              0.806,
+              0.733
+            ]
+          ],
+          [
+            0.376,
+            [
+              0.495,
+              0.803,
+              0.734
+            ]
+          ],
+          [
+            0.378,
+            [
+              0.495,
+              0.803,
+              0.734
+            ]
+          ],
+          [
+            0.38,
+            [
+              0.488,
+              0.8,
+              0.735
+            ]
+          ],
+          [
+            0.382,
+            [
+              0.488,
+              0.8,
+              0.735
+            ]
+          ],
+          [
+            0.384,
+            [
+              0.48,
+              0.797,
+              0.736
+            ]
+          ],
+          [
+            0.386,
+            [
+              0.48,
+              0.797,
+              0.736
+            ]
+          ],
+          [
+            0.387,
+            [
+              0.472,
+              0.794,
+              0.737
+            ]
+          ],
+          [
+            0.389,
+            [
+              0.472,
+              0.794,
+              0.737
+            ]
+          ],
+          [
+            0.391,
+            [
+              0.465,
+              0.792,
+              0.738
+            ]
+          ],
+          [
+            0.393,
+            [
+              0.465,
+              0.792,
+              0.738
+            ]
+          ],
+          [
+            0.395,
+            [
+              0.457,
+              0.789,
+              0.739
+            ]
+          ],
+          [
+            0.397,
+            [
+              0.457,
+              0.789,
+              0.739
+            ]
+          ],
+          [
+            0.399,
+            [
+              0.449,
+              0.786,
+              0.74
+            ]
+          ],
+          [
+            0.401,
+            [
+              0.449,
+              0.786,
+              0.74
+            ]
+          ],
+          [
+            0.403,
+            [
+              0.442,
+              0.783,
+              0.741
+            ]
+          ],
+          [
+            0.405,
+            [
+              0.442,
+              0.783,
+              0.741
+            ]
+          ],
+          [
+            0.407,
+            [
+              0.434,
+              0.78,
+              0.743
+            ]
+          ],
+          [
+            0.409,
+            [
+              0.434,
+              0.78,
+              0.743
+            ]
+          ],
+          [
+            0.411,
+            [
+              0.427,
+              0.777,
+              0.744
+            ]
+          ],
+          [
+            0.413,
+            [
+              0.427,
+              0.777,
+              0.744
+            ]
+          ],
+          [
+            0.415,
+            [
+              0.419,
+              0.775,
+              0.745
+            ]
+          ],
+          [
+            0.417,
+            [
+              0.419,
+              0.775,
+              0.745
+            ]
+          ],
+          [
+            0.419,
+            [
+              0.411,
+              0.772,
+              0.746
+            ]
+          ],
+          [
+            0.421,
+            [
+              0.411,
+              0.772,
+              0.746
+            ]
+          ],
+          [
+            0.423,
+            [
+              0.404,
+              0.769,
+              0.747
+            ]
+          ],
+          [
+            0.425,
+            [
+              0.404,
+              0.769,
+              0.747
+            ]
+          ],
+          [
+            0.427,
+            [
+              0.396,
+              0.766,
+              0.748
+            ]
+          ],
+          [
+            0.429,
+            [
+              0.396,
+              0.766,
+              0.748
+            ]
+          ],
+          [
+            0.431,
+            [
+              0.388,
+              0.763,
+              0.749
+            ]
+          ],
+          [
+            0.432,
+            [
+              0.388,
+              0.763,
+              0.749
+            ]
+          ],
+          [
+            0.434,
+            [
+              0.381,
+              0.76,
+              0.75
+            ]
+          ],
+          [
+            0.436,
+            [
+              0.381,
+              0.76,
+              0.75
+            ]
+          ],
+          [
+            0.438,
+            [
+              0.373,
+              0.758,
+              0.751
+            ]
+          ],
+          [
+            0.44,
+            [
+              0.373,
+              0.758,
+              0.751
+            ]
+          ],
+          [
+            0.442,
+            [
+              0.366,
+              0.755,
+              0.753
+            ]
+          ],
+          [
+            0.444,
+            [
+              0.366,
+              0.755,
+              0.753
+            ]
+          ],
+          [
+            0.446,
+            [
+              0.358,
+              0.752,
+              0.754
+            ]
+          ],
+          [
+            0.448,
+            [
+              0.358,
+              0.752,
+              0.754
+            ]
+          ],
+          [
+            0.45,
+            [
+              0.35,
+              0.749,
+              0.755
+            ]
+          ],
+          [
+            0.452,
+            [
+              0.35,
+              0.749,
+              0.755
+            ]
+          ],
+          [
+            0.454,
+            [
+              0.343,
+              0.746,
+              0.756
+            ]
+          ],
+          [
+            0.456,
+            [
+              0.343,
+              0.746,
+              0.756
+            ]
+          ],
+          [
+            0.458,
+            [
+              0.335,
+              0.743,
+              0.757
+            ]
+          ],
+          [
+            0.46,
+            [
+              0.335,
+              0.743,
+              0.757
+            ]
+          ],
+          [
+            0.462,
+            [
+              0.327,
+              0.741,
+              0.758
+            ]
+          ],
+          [
+            0.464,
+            [
+              0.327,
+              0.741,
+              0.758
+            ]
+          ],
+          [
+            0.466,
+            [
+              0.32,
+              0.738,
+              0.759
+            ]
+          ],
+          [
+            0.468,
+            [
+              0.32,
+              0.738,
+              0.759
+            ]
+          ],
+          [
+            0.47,
+            [
+              0.312,
+              0.735,
+              0.76
+            ]
+          ],
+          [
+            0.472,
+            [
+              0.312,
+              0.735,
+              0.76
+            ]
+          ],
+          [
+            0.474,
+            [
+              0.304,
+              0.732,
+              0.761
+            ]
+          ],
+          [
+            0.476,
+            [
+              0.304,
+              0.732,
+              0.761
+            ]
+          ],
+          [
+            0.477,
+            [
+              0.297,
+              0.729,
+              0.763
+            ]
+          ],
+          [
+            0.479,
+            [
+              0.297,
+              0.729,
+              0.763
+            ]
+          ],
+          [
+            0.481,
+            [
+              0.289,
+              0.726,
+              0.764
+            ]
+          ],
+          [
+            0.483,
+            [
+              0.289,
+              0.726,
+              0.764
+            ]
+          ],
+          [
+            0.485,
+            [
+              0.282,
+              0.724,
+              0.765
+            ]
+          ],
+          [
+            0.487,
+            [
+              0.282,
+              0.724,
+              0.765
+            ]
+          ],
+          [
+            0.489,
+            [
+              0.274,
+              0.721,
+              0.766
+            ]
+          ],
+          [
+            0.491,
+            [
+              0.274,
+              0.721,
+              0.766
+            ]
+          ],
+          [
+            0.493,
+            [
+              0.266,
+              0.718,
+              0.767
+            ]
+          ],
+          [
+            0.495,
+            [
+              0.266,
+              0.718,
+              0.767
+            ]
+          ],
+          [
+            0.497,
+            [
+              0.259,
+              0.715,
+              0.768
+            ]
+          ],
+          [
+            0.499,
+            [
+              0.259,
+              0.715,
+              0.768
+            ]
+          ],
+          [
+            0.501,
+            [
+              0.253,
+              0.711,
+              0.768
+            ]
+          ],
+          [
+            0.503,
+            [
+              0.253,
+              0.711,
+              0.768
+            ]
+          ],
+          [
+            0.505,
+            [
+              0.248,
+              0.707,
+              0.768
+            ]
+          ],
+          [
+            0.507,
+            [
+              0.248,
+              0.707,
+              0.768
+            ]
+          ],
+          [
+            0.509,
+            [
+              0.244,
+              0.702,
+              0.767
+            ]
+          ],
+          [
+            0.511,
+            [
+              0.244,
+              0.702,
+              0.767
+            ]
+          ],
+          [
+            0.513,
+            [
+              0.239,
+              0.698,
+              0.767
+            ]
+          ],
+          [
+            0.515,
+            [
+              0.239,
+              0.698,
+              0.767
+            ]
+          ],
+          [
+            0.517,
+            [
+              0.235,
+              0.693,
+              0.766
+            ]
+          ],
+          [
+            0.519,
+            [
+              0.235,
+              0.693,
+              0.766
+            ]
+          ],
+          [
+            0.521,
+            [
+              0.231,
+              0.689,
+              0.766
+            ]
+          ],
+          [
+            0.523,
+            [
+              0.231,
+              0.689,
+              0.766
+            ]
+          ],
+          [
+            0.524,
+            [
+              0.226,
+              0.684,
+              0.765
+            ]
+          ],
+          [
+            0.526,
+            [
+              0.226,
+              0.684,
+              0.765
+            ]
+          ],
+          [
+            0.528,
+            [
+              0.222,
+              0.68,
+              0.765
+            ]
+          ],
+          [
+            0.53,
+            [
+              0.222,
+              0.68,
+              0.765
+            ]
+          ],
+          [
+            0.532,
+            [
+              0.217,
+              0.675,
+              0.764
+            ]
+          ],
+          [
+            0.534,
+            [
+              0.217,
+              0.675,
+              0.764
+            ]
+          ],
+          [
+            0.536,
+            [
+              0.213,
+              0.67,
+              0.764
+            ]
+          ],
+          [
+            0.538,
+            [
+              0.213,
+              0.67,
+              0.764
+            ]
+          ],
+          [
+            0.54,
+            [
+              0.208,
+              0.666,
+              0.763
+            ]
+          ],
+          [
+            0.542,
+            [
+              0.208,
+              0.666,
+              0.763
+            ]
+          ],
+          [
+            0.544,
+            [
+              0.204,
+              0.661,
+              0.763
+            ]
+          ],
+          [
+            0.546,
+            [
+              0.204,
+              0.661,
+              0.763
+            ]
+          ],
+          [
+            0.548,
+            [
+              0.2,
+              0.657,
+              0.762
+            ]
+          ],
+          [
+            0.55,
+            [
+              0.2,
+              0.657,
+              0.762
+            ]
+          ],
+          [
+            0.552,
+            [
+              0.195,
+              0.652,
+              0.762
+            ]
+          ],
+          [
+            0.554,
+            [
+              0.195,
+              0.652,
+              0.762
+            ]
+          ],
+          [
+            0.556,
+            [
+              0.191,
+              0.648,
+              0.761
+            ]
+          ],
+          [
+            0.558,
+            [
+              0.191,
+              0.648,
+              0.761
+            ]
+          ],
+          [
+            0.56,
+            [
+              0.186,
+              0.643,
+              0.761
+            ]
+          ],
+          [
+            0.562,
+            [
+              0.186,
+              0.643,
+              0.761
+            ]
+          ],
+          [
+            0.564,
+            [
+              0.182,
+              0.639,
+              0.761
+            ]
+          ],
+          [
+            0.566,
+            [
+              0.182,
+              0.639,
+              0.761
+            ]
+          ],
+          [
+            0.568,
+            [
+              0.177,
+              0.634,
+              0.76
+            ]
+          ],
+          [
+            0.569,
+            [
+              0.177,
+              0.634,
+              0.76
+            ]
+          ],
+          [
+            0.571,
+            [
+              0.173,
+              0.63,
+              0.76
+            ]
+          ],
+          [
+            0.573,
+            [
+              0.173,
+              0.63,
+              0.76
+            ]
+          ],
+          [
+            0.575,
+            [
+              0.169,
+              0.625,
+              0.759
+            ]
+          ],
+          [
+            0.577,
+            [
+              0.169,
+              0.625,
+              0.759
+            ]
+          ],
+          [
+            0.579,
+            [
+              0.164,
+              0.62,
+              0.759
+            ]
+          ],
+          [
+            0.581,
+            [
+              0.164,
+              0.62,
+              0.759
+            ]
+          ],
+          [
+            0.583,
+            [
+              0.16,
+              0.616,
+              0.758
+            ]
+          ],
+          [
+            0.585,
+            [
+              0.16,
+              0.616,
+              0.758
+            ]
+          ],
+          [
+            0.587,
+            [
+              0.155,
+              0.611,
+              0.758
+            ]
+          ],
+          [
+            0.589,
+            [
+              0.155,
+              0.611,
+              0.758
+            ]
+          ],
+          [
+            0.591,
+            [
+              0.151,
+              0.607,
+              0.757
+            ]
+          ],
+          [
+            0.593,
+            [
+              0.151,
+              0.607,
+              0.757
+            ]
+          ],
+          [
+            0.595,
+            [
+              0.146,
+              0.602,
+              0.757
+            ]
+          ],
+          [
+            0.597,
+            [
+              0.146,
+              0.602,
+              0.757
+            ]
+          ],
+          [
+            0.599,
+            [
+              0.142,
+              0.598,
+              0.756
+            ]
+          ],
+          [
+            0.601,
+            [
+              0.142,
+              0.598,
+              0.756
+            ]
+          ],
+          [
+            0.603,
+            [
+              0.138,
+              0.593,
+              0.756
+            ]
+          ],
+          [
+            0.605,
+            [
+              0.138,
+              0.593,
+              0.756
+            ]
+          ],
+          [
+            0.607,
+            [
+              0.133,
+              0.589,
+              0.755
+            ]
+          ],
+          [
+            0.609,
+            [
+              0.133,
+              0.589,
+              0.755
+            ]
+          ],
+          [
+            0.611,
+            [
+              0.129,
+              0.584,
+              0.755
+            ]
+          ],
+          [
+            0.613,
+            [
+              0.129,
+              0.584,
+              0.755
+            ]
+          ],
+          [
+            0.614,
+            [
+              0.124,
+              0.579,
+              0.754
+            ]
+          ],
+          [
+            0.616,
+            [
+              0.124,
+              0.579,
+              0.754
+            ]
+          ],
+          [
+            0.618,
+            [
+              0.12,
+              0.575,
+              0.754
+            ]
+          ],
+          [
+            0.62,
+            [
+              0.12,
+              0.575,
+              0.754
+            ]
+          ],
+          [
+            0.622,
+            [
+              0.115,
+              0.57,
+              0.753
+            ]
+          ],
+          [
+            0.624,
+            [
+              0.115,
+              0.57,
+              0.753
+            ]
+          ],
+          [
+            0.626,
+            [
+              0.114,
+              0.565,
+              0.751
+            ]
+          ],
+          [
+            0.628,
+            [
+              0.114,
+              0.565,
+              0.751
+            ]
+          ],
+          [
+            0.63,
+            [
+              0.115,
+              0.558,
+              0.748
+            ]
+          ],
+          [
+            0.632,
+            [
+              0.115,
+              0.558,
+              0.748
+            ]
+          ],
+          [
+            0.634,
+            [
+              0.115,
+              0.552,
+              0.745
+            ]
+          ],
+          [
+            0.636,
+            [
+              0.115,
+              0.552,
+              0.745
+            ]
+          ],
+          [
+            0.638,
+            [
+              0.116,
+              0.546,
+              0.742
+            ]
+          ],
+          [
+            0.64,
+            [
+              0.116,
+              0.546,
+              0.742
+            ]
+          ],
+          [
+            0.642,
+            [
+              0.117,
+              0.54,
+              0.739
+            ]
+          ],
+          [
+            0.644,
+            [
+              0.117,
+              0.54,
+              0.739
+            ]
+          ],
+          [
+            0.646,
+            [
+              0.117,
+              0.533,
+              0.736
+            ]
+          ],
+          [
+            0.648,
+            [
+              0.117,
+              0.533,
+              0.736
+            ]
+          ],
+          [
+            0.65,
+            [
+              0.118,
+              0.527,
+              0.733
+            ]
+          ],
+          [
+            0.652,
+            [
+              0.118,
+              0.527,
+              0.733
+            ]
+          ],
+          [
+            0.654,
+            [
+              0.118,
+              0.521,
+              0.73
+            ]
+          ],
+          [
+            0.656,
+            [
+              0.118,
+              0.521,
+              0.73
+            ]
+          ],
+          [
+            0.658,
+            [
+              0.119,
+              0.515,
+              0.727
+            ]
+          ],
+          [
+            0.659,
+            [
+              0.119,
+              0.515,
+              0.727
+            ]
+          ],
+          [
+            0.661,
+            [
+              0.12,
+              0.508,
+              0.725
+            ]
+          ],
+          [
+            0.663,
+            [
+              0.12,
+              0.508,
+              0.725
+            ]
+          ],
+          [
+            0.665,
+            [
+              0.12,
+              0.502,
+              0.722
+            ]
+          ],
+          [
+            0.667,
+            [
+              0.12,
+              0.502,
+              0.722
+            ]
+          ],
+          [
+            0.669,
+            [
+              0.121,
+              0.496,
+              0.719
+            ]
+          ],
+          [
+            0.671,
+            [
+              0.121,
+              0.496,
+              0.719
+            ]
+          ],
+          [
+            0.673,
+            [
+              0.121,
+              0.489,
+              0.716
+            ]
+          ],
+          [
+            0.675,
+            [
+              0.121,
+              0.489,
+              0.716
+            ]
+          ],
+          [
+            0.677,
+            [
+              0.122,
+              0.483,
+              0.713
+            ]
+          ],
+          [
+            0.679,
+            [
+              0.122,
+              0.483,
+              0.713
+            ]
+          ],
+          [
+            0.681,
+            [
+              0.123,
+              0.477,
+              0.71
+            ]
+          ],
+          [
+            0.683,
+            [
+              0.123,
+              0.477,
+              0.71
+            ]
+          ],
+          [
+            0.685,
+            [
+              0.123,
+              0.471,
+              0.707
+            ]
+          ],
+          [
+            0.687,
+            [
+              0.123,
+              0.471,
+              0.707
+            ]
+          ],
+          [
+            0.689,
+            [
+              0.124,
+              0.464,
+              0.704
+            ]
+          ],
+          [
+            0.691,
+            [
+              0.124,
+              0.464,
+              0.704
+            ]
+          ],
+          [
+            0.693,
+            [
+              0.125,
+              0.458,
+              0.701
+            ]
+          ],
+          [
+            0.695,
+            [
+              0.125,
+              0.458,
+              0.701
+            ]
+          ],
+          [
+            0.697,
+            [
+              0.125,
+              0.452,
+              0.698
+            ]
+          ],
+          [
+            0.699,
+            [
+              0.125,
+              0.452,
+              0.698
+            ]
+          ],
+          [
+            0.701,
+            [
+              0.126,
+              0.445,
+              0.695
+            ]
+          ],
+          [
+            0.703,
+            [
+              0.126,
+              0.445,
+              0.695
+            ]
+          ],
+          [
+            0.705,
+            [
+              0.126,
+              0.439,
+              0.692
+            ]
+          ],
+          [
+            0.706,
+            [
+              0.126,
+              0.439,
+              0.692
+            ]
+          ],
+          [
+            0.708,
+            [
+              0.127,
+              0.433,
+              0.689
+            ]
+          ],
+          [
+            0.71,
+            [
+              0.127,
+              0.433,
+              0.689
+            ]
+          ],
+          [
+            0.712,
+            [
+              0.128,
+              0.427,
+              0.686
+            ]
+          ],
+          [
+            0.714,
+            [
+              0.128,
+              0.427,
+              0.686
+            ]
+          ],
+          [
+            0.716,
+            [
+              0.128,
+              0.42,
+              0.683
+            ]
+          ],
+          [
+            0.718,
+            [
+              0.128,
+              0.42,
+              0.683
+            ]
+          ],
+          [
+            0.72,
+            [
+              0.129,
+              0.414,
+              0.68
+            ]
+          ],
+          [
+            0.722,
+            [
+              0.129,
+              0.414,
+              0.68
+            ]
+          ],
+          [
+            0.724,
+            [
+              0.129,
+              0.408,
+              0.677
+            ]
+          ],
+          [
+            0.726,
+            [
+              0.129,
+              0.408,
+              0.677
+            ]
+          ],
+          [
+            0.728,
+            [
+              0.13,
+              0.402,
+              0.674
+            ]
+          ],
+          [
+            0.73,
+            [
+              0.13,
+              0.402,
+              0.674
+            ]
+          ],
+          [
+            0.732,
+            [
+              0.131,
+              0.395,
+              0.671
+            ]
+          ],
+          [
+            0.734,
+            [
+              0.131,
+              0.395,
+              0.671
+            ]
+          ],
+          [
+            0.736,
+            [
+              0.131,
+              0.389,
+              0.668
+            ]
+          ],
+          [
+            0.738,
+            [
+              0.131,
+              0.389,
+              0.668
+            ]
+          ],
+          [
+            0.74,
+            [
+              0.132,
+              0.383,
+              0.665
+            ]
+          ],
+          [
+            0.742,
+            [
+              0.132,
+              0.383,
+              0.665
+            ]
+          ],
+          [
+            0.744,
+            [
+              0.133,
+              0.376,
+              0.663
+            ]
+          ],
+          [
+            0.746,
+            [
+              0.133,
+              0.376,
+              0.663
+            ]
+          ],
+          [
+            0.748,
+            [
+              0.133,
+              0.37,
+              0.66
+            ]
+          ],
+          [
+            0.75,
+            [
+              0.133,
+              0.37,
+              0.66
+            ]
+          ],
+          [
+            0.751,
+            [
+              0.134,
+              0.365,
+              0.657
+            ]
+          ],
+          [
+            0.753,
+            [
+              0.134,
+              0.365,
+              0.657
+            ]
+          ],
+          [
+            0.755,
+            [
+              0.134,
+              0.36,
+              0.655
+            ]
+          ],
+          [
+            0.757,
+            [
+              0.134,
+              0.36,
+              0.655
+            ]
+          ],
+          [
+            0.759,
+            [
+              0.134,
+              0.354,
+              0.652
+            ]
+          ],
+          [
+            0.761,
+            [
+              0.134,
+              0.354,
+              0.652
+            ]
+          ],
+          [
+            0.763,
+            [
+              0.135,
+              0.349,
+              0.65
+            ]
+          ],
+          [
+            0.765,
+            [
+              0.135,
+              0.349,
+              0.65
+            ]
+          ],
+          [
+            0.767,
+            [
+              0.135,
+              0.344,
+              0.647
+            ]
+          ],
+          [
+            0.769,
+            [
+              0.135,
+              0.344,
+              0.647
+            ]
+          ],
+          [
+            0.771,
+            [
+              0.135,
+              0.339,
+              0.645
+            ]
+          ],
+          [
+            0.773,
+            [
+              0.135,
+              0.339,
+              0.645
+            ]
+          ],
+          [
+            0.775,
+            [
+              0.136,
+              0.334,
+              0.642
+            ]
+          ],
+          [
+            0.777,
+            [
+              0.136,
+              0.334,
+              0.642
+            ]
+          ],
+          [
+            0.779,
+            [
+              0.136,
+              0.329,
+              0.64
+            ]
+          ],
+          [
+            0.781,
+            [
+              0.136,
+              0.329,
+              0.64
+            ]
+          ],
+          [
+            0.783,
+            [
+              0.137,
+              0.323,
+              0.637
+            ]
+          ],
+          [
+            0.785,
+            [
+              0.137,
+              0.323,
+              0.637
+            ]
+          ],
+          [
+            0.787,
+            [
+              0.137,
+              0.318,
+              0.635
+            ]
+          ],
+          [
+            0.789,
+            [
+              0.137,
+              0.318,
+              0.635
+            ]
+          ],
+          [
+            0.791,
+            [
+              0.137,
+              0.313,
+              0.632
+            ]
+          ],
+          [
+            0.793,
+            [
+              0.137,
+              0.313,
+              0.632
+            ]
+          ],
+          [
+            0.795,
+            [
+              0.138,
+              0.308,
+              0.63
+            ]
+          ],
+          [
+            0.796,
+            [
+              0.138,
+              0.308,
+              0.63
+            ]
+          ],
+          [
+            0.798,
+            [
+              0.138,
+              0.303,
+              0.627
+            ]
+          ],
+          [
+            0.8,
+            [
+              0.138,
+              0.303,
+              0.627
+            ]
+          ],
+          [
+            0.802,
+            [
+              0.138,
+              0.298,
+              0.625
+            ]
+          ],
+          [
+            0.804,
+            [
+              0.138,
+              0.298,
+              0.625
+            ]
+          ],
+          [
+            0.806,
+            [
+              0.139,
+              0.292,
+              0.623
+            ]
+          ],
+          [
+            0.808,
+            [
+              0.139,
+              0.292,
+              0.623
+            ]
+          ],
+          [
+            0.81,
+            [
+              0.139,
+              0.287,
+              0.62
+            ]
+          ],
+          [
+            0.812,
+            [
+              0.139,
+              0.287,
+              0.62
+            ]
+          ],
+          [
+            0.814,
+            [
+              0.14,
+              0.282,
+              0.618
+            ]
+          ],
+          [
+            0.816,
+            [
+              0.14,
+              0.282,
+              0.618
+            ]
+          ],
+          [
+            0.818,
+            [
+              0.14,
+              0.277,
+              0.615
+            ]
+          ],
+          [
+            0.82,
+            [
+              0.14,
+              0.277,
+              0.615
+            ]
+          ],
+          [
+            0.822,
+            [
+              0.14,
+              0.272,
+              0.613
+            ]
+          ],
+          [
+            0.824,
+            [
+              0.14,
+              0.272,
+              0.613
+            ]
+          ],
+          [
+            0.826,
+            [
+              0.141,
+              0.267,
+              0.61
+            ]
+          ],
+          [
+            0.828,
+            [
+              0.141,
+              0.267,
+              0.61
+            ]
+          ],
+          [
+            0.83,
+            [
+              0.141,
+              0.261,
+              0.608
+            ]
+          ],
+          [
+            0.832,
+            [
+              0.141,
+              0.261,
+              0.608
+            ]
+          ],
+          [
+            0.834,
+            [
+              0.141,
+              0.256,
+              0.605
+            ]
+          ],
+          [
+            0.836,
+            [
+              0.141,
+              0.256,
+              0.605
+            ]
+          ],
+          [
+            0.838,
+            [
+              0.142,
+              0.251,
+              0.603
+            ]
+          ],
+          [
+            0.84,
+            [
+              0.142,
+              0.251,
+              0.603
+            ]
+          ],
+          [
+            0.841,
+            [
+              0.142,
+              0.246,
+              0.6
+            ]
+          ],
+          [
+            0.843,
+            [
+              0.142,
+              0.246,
+              0.6
+            ]
+          ],
+          [
+            0.845,
+            [
+              0.142,
+              0.241,
+              0.598
+            ]
+          ],
+          [
+            0.847,
+            [
+              0.142,
+              0.241,
+              0.598
+            ]
+          ],
+          [
+            0.849,
+            [
+              0.143,
+              0.236,
+              0.595
+            ]
+          ],
+          [
+            0.851,
+            [
+              0.143,
+              0.236,
+              0.595
+            ]
+          ],
+          [
+            0.853,
+            [
+              0.143,
+              0.23,
+              0.593
+            ]
+          ],
+          [
+            0.855,
+            [
+              0.143,
+              0.23,
+              0.593
+            ]
+          ],
+          [
+            0.857,
+            [
+              0.144,
+              0.225,
+              0.591
+            ]
+          ],
+          [
+            0.859,
+            [
+              0.144,
+              0.225,
+              0.591
+            ]
+          ],
+          [
+            0.861,
+            [
+              0.144,
+              0.22,
+              0.588
+            ]
+          ],
+          [
+            0.863,
+            [
+              0.144,
+              0.22,
+              0.588
+            ]
+          ],
+          [
+            0.865,
+            [
+              0.144,
+              0.215,
+              0.586
+            ]
+          ],
+          [
+            0.867,
+            [
+              0.144,
+              0.215,
+              0.586
+            ]
+          ],
+          [
+            0.869,
+            [
+              0.145,
+              0.21,
+              0.583
+            ]
+          ],
+          [
+            0.871,
+            [
+              0.145,
+              0.21,
+              0.583
+            ]
+          ],
+          [
+            0.873,
+            [
+              0.145,
+              0.205,
+              0.581
+            ]
+          ],
+          [
+            0.875,
+            [
+              0.145,
+              0.205,
+              0.581
+            ]
+          ],
+          [
+            0.877,
+            [
+              0.142,
+              0.201,
+              0.574
+            ]
+          ],
+          [
+            0.879,
+            [
+              0.142,
+              0.201,
+              0.574
+            ]
+          ],
+          [
+            0.881,
+            [
+              0.138,
+              0.199,
+              0.567
+            ]
+          ],
+          [
+            0.883,
+            [
+              0.138,
+              0.199,
+              0.567
+            ]
+          ],
+          [
+            0.885,
+            [
+              0.135,
+              0.196,
+              0.559
+            ]
+          ],
+          [
+            0.886,
+            [
+              0.135,
+              0.196,
+              0.559
+            ]
+          ],
+          [
+            0.888,
+            [
+              0.131,
+              0.193,
+              0.552
+            ]
+          ],
+          [
+            0.89,
+            [
+              0.131,
+              0.193,
+              0.552
+            ]
+          ],
+          [
+            0.892,
+            [
+              0.128,
+              0.19,
+              0.544
+            ]
+          ],
+          [
+            0.894,
+            [
+              0.128,
+              0.19,
+              0.544
+            ]
+          ],
+          [
+            0.896,
+            [
+              0.124,
+              0.187,
+              0.537
+            ]
+          ],
+          [
+            0.898,
+            [
+              0.124,
+              0.187,
+              0.537
+            ]
+          ],
+          [
+            0.9,
+            [
+              0.121,
+              0.184,
+              0.53
+            ]
+          ],
+          [
+            0.902,
+            [
+              0.121,
+              0.184,
+              0.53
+            ]
+          ],
+          [
+            0.904,
+            [
+              0.117,
+              0.182,
+              0.522
+            ]
+          ],
+          [
+            0.906,
+            [
+              0.117,
+              0.182,
+              0.522
+            ]
+          ],
+          [
+            0.908,
+            [
+              0.113,
+              0.179,
+              0.515
+            ]
+          ],
+          [
+            0.91,
+            [
+              0.113,
+              0.179,
+              0.515
+            ]
+          ],
+          [
+            0.912,
+            [
+              0.11,
+              0.176,
+              0.507
+            ]
+          ],
+          [
+            0.914,
+            [
+              0.11,
+              0.176,
+              0.507
+            ]
+          ],
+          [
+            0.916,
+            [
+              0.106,
+              0.173,
+              0.5
+            ]
+          ],
+          [
+            0.918,
+            [
+              0.106,
+              0.173,
+              0.5
+            ]
+          ],
+          [
+            0.92,
+            [
+              0.103,
+              0.17,
+              0.493
+            ]
+          ],
+          [
+            0.922,
+            [
+              0.103,
+              0.17,
+              0.493
+            ]
+          ],
+          [
+            0.924,
+            [
+              0.099,
+              0.167,
+              0.485
+            ]
+          ],
+          [
+            0.926,
+            [
+              0.099,
+              0.167,
+              0.485
+            ]
+          ],
+          [
+            0.928,
+            [
+              0.096,
+              0.165,
+              0.478
+            ]
+          ],
+          [
+            0.93,
+            [
+              0.096,
+              0.165,
+              0.478
+            ]
+          ],
+          [
+            0.932,
+            [
+              0.092,
+              0.162,
+              0.471
+            ]
+          ],
+          [
+            0.933,
+            [
+              0.092,
+              0.162,
+              0.471
+            ]
+          ],
+          [
+            0.935,
+            [
+              0.088,
+              0.159,
+              0.463
+            ]
+          ],
+          [
+            0.937,
+            [
+              0.088,
+              0.159,
+              0.463
+            ]
+          ],
+          [
+            0.939,
+            [
+              0.085,
+              0.156,
+              0.456
+            ]
+          ],
+          [
+            0.941,
+            [
+              0.085,
+              0.156,
+              0.456
+            ]
+          ],
+          [
+            0.943,
+            [
+              0.081,
+              0.153,
+              0.448
+            ]
+          ],
+          [
+            0.945,
+            [
+              0.081,
+              0.153,
+              0.448
+            ]
+          ],
+          [
+            0.947,
+            [
+              0.078,
+              0.151,
+              0.441
+            ]
+          ],
+          [
+            0.949,
+            [
+              0.078,
+              0.151,
+              0.441
+            ]
+          ],
+          [
+            0.951,
+            [
+              0.074,
+              0.148,
+              0.434
+            ]
+          ],
+          [
+            0.953,
+            [
+              0.074,
+              0.148,
+              0.434
+            ]
+          ],
+          [
+            0.955,
+            [
+              0.071,
+              0.145,
+              0.426
+            ]
+          ],
+          [
+            0.957,
+            [
+              0.071,
+              0.145,
+              0.426
+            ]
+          ],
+          [
+            0.959,
+            [
+              0.067,
+              0.142,
+              0.419
+            ]
+          ],
+          [
+            0.961,
+            [
+              0.067,
+              0.142,
+              0.419
+            ]
+          ],
+          [
+            0.963,
+            [
+              0.063,
+              0.139,
+              0.412
+            ]
+          ],
+          [
+            0.965,
+            [
+              0.063,
+              0.139,
+              0.412
+            ]
+          ],
+          [
+            0.967,
+            [
+              0.06,
+              0.136,
+              0.404
+            ]
+          ],
+          [
+            0.969,
+            [
+              0.06,
+              0.136,
+              0.404
+            ]
+          ],
+          [
+            0.971,
+            [
+              0.056,
+              0.134,
+              0.397
+            ]
+          ],
+          [
+            0.973,
+            [
+              0.056,
+              0.134,
+              0.397
+            ]
+          ],
+          [
+            0.975,
+            [
+              0.053,
+              0.131,
+              0.389
+            ]
+          ],
+          [
+            0.977,
+            [
+              0.053,
+              0.131,
+              0.389
+            ]
+          ],
+          [
+            0.978,
+            [
+              0.049,
+              0.128,
+              0.382
+            ]
+          ],
+          [
+            0.98,
+            [
+              0.049,
+              0.128,
+              0.382
+            ]
+          ],
+          [
+            0.982,
+            [
+              0.046,
+              0.125,
+              0.375
+            ]
+          ],
+          [
+            0.984,
+            [
+              0.046,
+              0.125,
+              0.375
+            ]
+          ],
+          [
+            0.986,
+            [
+              0.042,
+              0.122,
+              0.367
+            ]
+          ],
+          [
+            0.988,
+            [
+              0.042,
+              0.122,
+              0.367
+            ]
+          ],
+          [
+            0.99,
+            [
+              0.039,
+              0.119,
+              0.36
+            ]
+          ],
+          [
+            0.992,
+            [
+              0.039,
+              0.119,
+              0.36
+            ]
+          ],
+          [
+            0.994,
+            [
+              0.035,
+              0.117,
+              0.352
+            ]
+          ],
+          [
+            0.996,
+            [
+              0.035,
+              0.117,
+              0.352
+            ]
+          ],
+          [
+            0.998,
+            [
+              0.031,
+              0.114,
+              0.345
+            ]
+          ],
+          [
+            1,
+            [
+              0.031,
+              0.114,
+              0.345
+            ]
+          ]
+        ],
+        [
+          [
+            0,
+            [
+              0,
+              0,
+              1
+            ]
+          ],
+          [
+            0.002,
+            [
+              0,
+              0,
+              1
+            ]
+          ],
+          [
+            0.004,
+            [
+              0,
+              0.004,
+              0.998
+            ]
+          ],
+          [
+            0.006,
+            [
+              0,
+              0.004,
+              0.998
+            ]
+          ],
+          [
+            0.008,
+            [
+              0,
+              0.008,
+              0.996
+            ]
+          ],
+          [
+            0.01,
+            [
+              0,
+              0.008,
+              0.996
+            ]
+          ],
+          [
+            0.012,
+            [
+              0,
+              0.012,
+              0.994
+            ]
+          ],
+          [
+            0.014,
+            [
+              0,
+              0.012,
+              0.994
+            ]
+          ],
+          [
+            0.016,
+            [
+              0,
+              0.016,
+              0.992
+            ]
+          ],
+          [
+            0.018,
+            [
+              0,
+              0.016,
+              0.992
+            ]
+          ],
+          [
+            0.02,
+            [
+              0,
+              0.02,
+              0.99
+            ]
+          ],
+          [
+            0.022,
+            [
+              0,
+              0.02,
+              0.99
+            ]
+          ],
+          [
+            0.023,
+            [
+              0,
+              0.024,
+              0.988
+            ]
+          ],
+          [
+            0.025,
+            [
+              0,
+              0.024,
+              0.988
+            ]
+          ],
+          [
+            0.027,
+            [
+              0,
+              0.027,
+              0.986
+            ]
+          ],
+          [
+            0.029,
+            [
+              0,
+              0.027,
+              0.986
+            ]
+          ],
+          [
+            0.031,
+            [
+              0,
+              0.031,
+              0.984
+            ]
+          ],
+          [
+            0.033,
+            [
+              0,
+              0.031,
+              0.984
+            ]
+          ],
+          [
+            0.035,
+            [
+              0,
+              0.035,
+              0.982
+            ]
+          ],
+          [
+            0.037,
+            [
+              0,
+              0.035,
+              0.982
+            ]
+          ],
+          [
+            0.039,
+            [
+              0,
+              0.039,
+              0.98
+            ]
+          ],
+          [
+            0.041,
+            [
+              0,
+              0.039,
+              0.98
+            ]
+          ],
+          [
+            0.043,
+            [
+              0,
+              0.043,
+              0.978
+            ]
+          ],
+          [
+            0.045,
+            [
+              0,
+              0.043,
+              0.978
+            ]
+          ],
+          [
+            0.047,
+            [
+              0,
+              0.047,
+              0.976
+            ]
+          ],
+          [
+            0.049,
+            [
+              0,
+              0.047,
+              0.976
+            ]
+          ],
+          [
+            0.051,
+            [
+              0,
+              0.051,
+              0.975
+            ]
+          ],
+          [
+            0.053,
+            [
+              0,
+              0.051,
+              0.975
+            ]
+          ],
+          [
+            0.055,
+            [
+              0,
+              0.055,
+              0.973
+            ]
+          ],
+          [
+            0.057,
+            [
+              0,
+              0.055,
+              0.973
+            ]
+          ],
+          [
+            0.059,
+            [
+              0,
+              0.059,
+              0.971
+            ]
+          ],
+          [
+            0.061,
+            [
+              0,
+              0.059,
+              0.971
+            ]
+          ],
+          [
+            0.063,
+            [
+              0,
+              0.063,
+              0.969
+            ]
+          ],
+          [
+            0.065,
+            [
+              0,
+              0.063,
+              0.969
+            ]
+          ],
+          [
+            0.067,
+            [
+              0,
+              0.067,
+              0.967
+            ]
+          ],
+          [
+            0.068,
+            [
+              0,
+              0.067,
+              0.967
+            ]
+          ],
+          [
+            0.07,
+            [
+              0,
+              0.071,
+              0.965
+            ]
+          ],
+          [
+            0.072,
+            [
+              0,
+              0.071,
+              0.965
+            ]
+          ],
+          [
+            0.074,
+            [
+              0,
+              0.075,
+              0.963
+            ]
+          ],
+          [
+            0.076,
+            [
+              0,
+              0.075,
+              0.963
+            ]
+          ],
+          [
+            0.078,
+            [
+              0,
+              0.078,
+              0.961
+            ]
+          ],
+          [
+            0.08,
+            [
+              0,
+              0.078,
+              0.961
+            ]
+          ],
+          [
+            0.082,
+            [
+              0,
+              0.082,
+              0.959
+            ]
+          ],
+          [
+            0.084,
+            [
+              0,
+              0.082,
+              0.959
+            ]
+          ],
+          [
+            0.086,
+            [
+              0,
+              0.086,
+              0.957
+            ]
+          ],
+          [
+            0.088,
+            [
+              0,
+              0.086,
+              0.957
+            ]
+          ],
+          [
+            0.09,
+            [
+              0,
+              0.09,
+              0.955
+            ]
+          ],
+          [
+            0.092,
+            [
+              0,
+              0.09,
+              0.955
+            ]
+          ],
+          [
+            0.094,
+            [
+              0,
+              0.094,
+              0.953
+            ]
+          ],
+          [
+            0.096,
+            [
+              0,
+              0.094,
+              0.953
+            ]
+          ],
+          [
+            0.098,
+            [
+              0,
+              0.098,
+              0.951
+            ]
+          ],
+          [
+            0.1,
+            [
+              0,
+              0.098,
+              0.951
+            ]
+          ],
+          [
+            0.102,
+            [
+              0,
+              0.102,
+              0.949
+            ]
+          ],
+          [
+            0.104,
+            [
+              0,
+              0.102,
+              0.949
+            ]
+          ],
+          [
+            0.106,
+            [
+              0,
+              0.106,
+              0.947
+            ]
+          ],
+          [
+            0.108,
+            [
+              0,
+              0.106,
+              0.947
+            ]
+          ],
+          [
+            0.11,
+            [
+              0,
+              0.11,
+              0.945
+            ]
+          ],
+          [
+            0.112,
+            [
+              0,
+              0.11,
+              0.945
+            ]
+          ],
+          [
+            0.114,
+            [
+              0,
+              0.114,
+              0.943
+            ]
+          ],
+          [
+            0.115,
+            [
+              0,
+              0.114,
+              0.943
+            ]
+          ],
+          [
+            0.117,
+            [
+              0,
+              0.118,
+              0.941
+            ]
+          ],
+          [
+            0.119,
+            [
+              0,
+              0.118,
+              0.941
+            ]
+          ],
+          [
+            0.121,
+            [
+              0,
+              0.122,
+              0.939
+            ]
+          ],
+          [
+            0.123,
+            [
+              0,
+              0.122,
+              0.939
+            ]
+          ],
+          [
+            0.125,
+            [
+              0,
+              0.125,
+              0.937
+            ]
+          ],
+          [
+            0.127,
+            [
+              0,
+              0.125,
+              0.937
+            ]
+          ],
+          [
+            0.129,
+            [
+              0,
+              0.129,
+              0.935
+            ]
+          ],
+          [
+            0.131,
+            [
+              0,
+              0.129,
+              0.935
+            ]
+          ],
+          [
+            0.133,
+            [
+              0,
+              0.133,
+              0.933
+            ]
+          ],
+          [
+            0.135,
+            [
+              0,
+              0.133,
+              0.933
+            ]
+          ],
+          [
+            0.137,
+            [
+              0,
+              0.137,
+              0.931
+            ]
+          ],
+          [
+            0.139,
+            [
+              0,
+              0.137,
+              0.931
+            ]
+          ],
+          [
+            0.141,
+            [
+              0,
+              0.141,
+              0.929
+            ]
+          ],
+          [
+            0.143,
+            [
+              0,
+              0.141,
+              0.929
+            ]
+          ],
+          [
+            0.145,
+            [
+              0,
+              0.145,
+              0.927
+            ]
+          ],
+          [
+            0.147,
+            [
+              0,
+              0.145,
+              0.927
+            ]
+          ],
+          [
+            0.149,
+            [
+              0,
+              0.149,
+              0.925
+            ]
+          ],
+          [
+            0.151,
+            [
+              0,
+              0.149,
+              0.925
+            ]
+          ],
+          [
+            0.153,
+            [
+              0,
+              0.153,
+              0.924
+            ]
+          ],
+          [
+            0.155,
+            [
+              0,
+              0.153,
+              0.924
+            ]
+          ],
+          [
+            0.157,
+            [
+              0,
+              0.157,
+              0.922
+            ]
+          ],
+          [
+            0.159,
+            [
+              0,
+              0.157,
+              0.922
+            ]
+          ],
+          [
+            0.16,
+            [
+              0,
+              0.161,
+              0.92
+            ]
+          ],
+          [
+            0.162,
+            [
+              0,
+              0.161,
+              0.92
+            ]
+          ],
+          [
+            0.164,
+            [
+              0,
+              0.165,
+              0.918
+            ]
+          ],
+          [
+            0.166,
+            [
+              0,
+              0.165,
+              0.918
+            ]
+          ],
+          [
+            0.168,
+            [
+              0,
+              0.169,
+              0.916
+            ]
+          ],
+          [
+            0.17,
+            [
+              0,
+              0.169,
+              0.916
+            ]
+          ],
+          [
+            0.172,
+            [
+              0,
+              0.173,
+              0.914
+            ]
+          ],
+          [
+            0.174,
+            [
+              0,
+              0.173,
+              0.914
+            ]
+          ],
+          [
+            0.176,
+            [
+              0,
+              0.176,
+              0.912
+            ]
+          ],
+          [
+            0.178,
+            [
+              0,
+              0.176,
+              0.912
+            ]
+          ],
+          [
+            0.18,
+            [
+              0,
+              0.18,
+              0.91
+            ]
+          ],
+          [
+            0.182,
+            [
+              0,
+              0.18,
+              0.91
+            ]
+          ],
+          [
+            0.184,
+            [
+              0,
+              0.184,
+              0.908
+            ]
+          ],
+          [
+            0.186,
+            [
+              0,
+              0.184,
+              0.908
+            ]
+          ],
+          [
+            0.188,
+            [
+              0,
+              0.188,
+              0.906
+            ]
+          ],
+          [
+            0.19,
+            [
+              0,
+              0.188,
+              0.906
+            ]
+          ],
+          [
+            0.192,
+            [
+              0,
+              0.192,
+              0.904
+            ]
+          ],
+          [
+            0.194,
+            [
+              0,
+              0.192,
+              0.904
+            ]
+          ],
+          [
+            0.196,
+            [
+              0,
+              0.196,
+              0.902
+            ]
+          ],
+          [
+            0.198,
+            [
+              0,
+              0.196,
+              0.902
+            ]
+          ],
+          [
+            0.2,
+            [
+              0,
+              0.2,
+              0.9
+            ]
+          ],
+          [
+            0.202,
+            [
+              0,
+              0.2,
+              0.9
+            ]
+          ],
+          [
+            0.204,
+            [
+              0,
+              0.204,
+              0.898
+            ]
+          ],
+          [
+            0.205,
+            [
+              0,
+              0.204,
+              0.898
+            ]
+          ],
+          [
+            0.207,
+            [
+              0,
+              0.208,
+              0.896
+            ]
+          ],
+          [
+            0.209,
+            [
+              0,
+              0.208,
+              0.896
+            ]
+          ],
+          [
+            0.211,
+            [
+              0,
+              0.212,
+              0.894
+            ]
+          ],
+          [
+            0.213,
+            [
+              0,
+              0.212,
+              0.894
+            ]
+          ],
+          [
+            0.215,
+            [
+              0,
+              0.216,
+              0.892
+            ]
+          ],
+          [
+            0.217,
+            [
+              0,
+              0.216,
+              0.892
+            ]
+          ],
+          [
+            0.219,
+            [
+              0,
+              0.22,
+              0.89
+            ]
+          ],
+          [
+            0.221,
+            [
+              0,
+              0.22,
+              0.89
+            ]
+          ],
+          [
+            0.223,
+            [
+              0,
+              0.224,
+              0.888
+            ]
+          ],
+          [
+            0.225,
+            [
+              0,
+              0.224,
+              0.888
+            ]
+          ],
+          [
+            0.227,
+            [
+              0,
+              0.227,
+              0.886
+            ]
+          ],
+          [
+            0.229,
+            [
+              0,
+              0.227,
+              0.886
+            ]
+          ],
+          [
+            0.231,
+            [
+              0,
+              0.231,
+              0.884
+            ]
+          ],
+          [
+            0.233,
+            [
+              0,
+              0.231,
+              0.884
+            ]
+          ],
+          [
+            0.235,
+            [
+              0,
+              0.235,
+              0.882
+            ]
+          ],
+          [
+            0.237,
+            [
+              0,
+              0.235,
+              0.882
+            ]
+          ],
+          [
+            0.239,
+            [
+              0,
+              0.239,
+              0.88
+            ]
+          ],
+          [
+            0.241,
+            [
+              0,
+              0.239,
+              0.88
+            ]
+          ],
+          [
+            0.243,
+            [
+              0,
+              0.243,
+              0.878
+            ]
+          ],
+          [
+            0.245,
+            [
+              0,
+              0.243,
+              0.878
+            ]
+          ],
+          [
+            0.247,
+            [
+              0,
+              0.247,
+              0.876
+            ]
+          ],
+          [
+            0.249,
+            [
+              0,
+              0.247,
+              0.876
+            ]
+          ],
+          [
+            0.25,
+            [
+              0,
+              0.251,
+              0.875
+            ]
+          ],
+          [
+            0.252,
+            [
+              0,
+              0.251,
+              0.875
+            ]
+          ],
+          [
+            0.254,
+            [
+              0,
+              0.255,
+              0.873
+            ]
+          ],
+          [
+            0.256,
+            [
+              0,
+              0.255,
+              0.873
+            ]
+          ],
+          [
+            0.258,
+            [
+              0,
+              0.259,
+              0.871
+            ]
+          ],
+          [
+            0.26,
+            [
+              0,
+              0.259,
+              0.871
+            ]
+          ],
+          [
+            0.262,
+            [
+              0,
+              0.263,
+              0.869
+            ]
+          ],
+          [
+            0.264,
+            [
+              0,
+              0.263,
+              0.869
+            ]
+          ],
+          [
+            0.266,
+            [
+              0,
+              0.267,
+              0.867
+            ]
+          ],
+          [
+            0.268,
+            [
+              0,
+              0.267,
+              0.867
+            ]
+          ],
+          [
+            0.27,
+            [
+              0,
+              0.271,
+              0.865
+            ]
+          ],
+          [
+            0.272,
+            [
+              0,
+              0.271,
+              0.865
+            ]
+          ],
+          [
+            0.274,
+            [
+              0,
+              0.275,
+              0.863
+            ]
+          ],
+          [
+            0.276,
+            [
+              0,
+              0.275,
+              0.863
+            ]
+          ],
+          [
+            0.278,
+            [
+              0,
+              0.278,
+              0.861
+            ]
+          ],
+          [
+            0.28,
+            [
+              0,
+              0.278,
+              0.861
+            ]
+          ],
+          [
+            0.282,
+            [
+              0,
+              0.282,
+              0.859
+            ]
+          ],
+          [
+            0.284,
+            [
+              0,
+              0.282,
+              0.859
+            ]
+          ],
+          [
+            0.286,
+            [
+              0,
+              0.286,
+              0.857
+            ]
+          ],
+          [
+            0.288,
+            [
+              0,
+              0.286,
+              0.857
+            ]
+          ],
+          [
+            0.29,
+            [
+              0,
+              0.29,
+              0.855
+            ]
+          ],
+          [
+            0.292,
+            [
+              0,
+              0.29,
+              0.855
+            ]
+          ],
+          [
+            0.294,
+            [
+              0,
+              0.294,
+              0.853
+            ]
+          ],
+          [
+            0.295,
+            [
+              0,
+              0.294,
+              0.853
+            ]
+          ],
+          [
+            0.297,
+            [
+              0,
+              0.298,
+              0.851
+            ]
+          ],
+          [
+            0.299,
+            [
+              0,
+              0.298,
+              0.851
+            ]
+          ],
+          [
+            0.301,
+            [
+              0,
+              0.302,
+              0.849
+            ]
+          ],
+          [
+            0.303,
+            [
+              0,
+              0.302,
+              0.849
+            ]
+          ],
+          [
+            0.305,
+            [
+              0,
+              0.306,
+              0.847
+            ]
+          ],
+          [
+            0.307,
+            [
+              0,
+              0.306,
+              0.847
+            ]
+          ],
+          [
+            0.309,
+            [
+              0,
+              0.31,
+              0.845
+            ]
+          ],
+          [
+            0.311,
+            [
+              0,
+              0.31,
+              0.845
+            ]
+          ],
+          [
+            0.313,
+            [
+              0,
+              0.314,
+              0.843
+            ]
+          ],
+          [
+            0.315,
+            [
+              0,
+              0.314,
+              0.843
+            ]
+          ],
+          [
+            0.317,
+            [
+              0,
+              0.318,
+              0.841
+            ]
+          ],
+          [
+            0.319,
+            [
+              0,
+              0.318,
+              0.841
+            ]
+          ],
+          [
+            0.321,
+            [
+              0,
+              0.322,
+              0.839
+            ]
+          ],
+          [
+            0.323,
+            [
+              0,
+              0.322,
+              0.839
+            ]
+          ],
+          [
+            0.325,
+            [
+              0,
+              0.325,
+              0.837
+            ]
+          ],
+          [
+            0.327,
+            [
+              0,
+              0.325,
+              0.837
+            ]
+          ],
+          [
+            0.329,
+            [
+              0,
+              0.329,
+              0.835
+            ]
+          ],
+          [
+            0.331,
+            [
+              0,
+              0.329,
+              0.835
+            ]
+          ],
+          [
+            0.333,
+            [
+              0,
+              0.333,
+              0.833
+            ]
+          ],
+          [
+            0.335,
+            [
+              0,
+              0.333,
+              0.833
+            ]
+          ],
+          [
+            0.337,
+            [
+              0,
+              0.337,
+              0.831
+            ]
+          ],
+          [
+            0.339,
+            [
+              0,
+              0.337,
+              0.831
+            ]
+          ],
+          [
+            0.341,
+            [
+              0,
+              0.341,
+              0.829
+            ]
+          ],
+          [
+            0.342,
+            [
+              0,
+              0.341,
+              0.829
+            ]
+          ],
+          [
+            0.344,
+            [
+              0,
+              0.345,
+              0.827
+            ]
+          ],
+          [
+            0.346,
+            [
+              0,
+              0.345,
+              0.827
+            ]
+          ],
+          [
+            0.348,
+            [
+              0,
+              0.349,
+              0.825
+            ]
+          ],
+          [
+            0.35,
+            [
+              0,
+              0.349,
+              0.825
+            ]
+          ],
+          [
+            0.352,
+            [
+              0,
+              0.353,
+              0.824
+            ]
+          ],
+          [
+            0.354,
+            [
+              0,
+              0.353,
+              0.824
+            ]
+          ],
+          [
+            0.356,
+            [
+              0,
+              0.357,
+              0.822
+            ]
+          ],
+          [
+            0.358,
+            [
+              0,
+              0.357,
+              0.822
+            ]
+          ],
+          [
+            0.36,
+            [
+              0,
+              0.361,
+              0.82
+            ]
+          ],
+          [
+            0.362,
+            [
+              0,
+              0.361,
+              0.82
+            ]
+          ],
+          [
+            0.364,
+            [
+              0,
+              0.365,
+              0.818
+            ]
+          ],
+          [
+            0.366,
+            [
+              0,
+              0.365,
+              0.818
+            ]
+          ],
+          [
+            0.368,
+            [
+              0,
+              0.369,
+              0.816
+            ]
+          ],
+          [
+            0.37,
+            [
+              0,
+              0.369,
+              0.816
+            ]
+          ],
+          [
+            0.372,
+            [
+              0,
+              0.373,
+              0.814
+            ]
+          ],
+          [
+            0.374,
+            [
+              0,
+              0.373,
+              0.814
+            ]
+          ],
+          [
+            0.376,
+            [
+              0,
+              0.376,
+              0.812
+            ]
+          ],
+          [
+            0.378,
+            [
+              0,
+              0.376,
+              0.812
+            ]
+          ],
+          [
+            0.38,
+            [
+              0,
+              0.38,
+              0.81
+            ]
+          ],
+          [
+            0.382,
+            [
+              0,
+              0.38,
+              0.81
+            ]
+          ],
+          [
+            0.384,
+            [
+              0,
+              0.384,
+              0.808
+            ]
+          ],
+          [
+            0.386,
+            [
+              0,
+              0.384,
+              0.808
+            ]
+          ],
+          [
+            0.387,
+            [
+              0,
+              0.388,
+              0.806
+            ]
+          ],
+          [
+            0.389,
+            [
+              0,
+              0.388,
+              0.806
+            ]
+          ],
+          [
+            0.391,
+            [
+              0,
+              0.392,
+              0.804
+            ]
+          ],
+          [
+            0.393,
+            [
+              0,
+              0.392,
+              0.804
+            ]
+          ],
+          [
+            0.395,
+            [
+              0,
+              0.396,
+              0.802
+            ]
+          ],
+          [
+            0.397,
+            [
+              0,
+              0.396,
+              0.802
+            ]
+          ],
+          [
+            0.399,
+            [
+              0,
+              0.4,
+              0.8
+            ]
+          ],
+          [
+            0.401,
+            [
+              0,
+              0.4,
+              0.8
+            ]
+          ],
+          [
+            0.403,
+            [
+              0,
+              0.404,
+              0.798
+            ]
+          ],
+          [
+            0.405,
+            [
+              0,
+              0.404,
+              0.798
+            ]
+          ],
+          [
+            0.407,
+            [
+              0,
+              0.408,
+              0.796
+            ]
+          ],
+          [
+            0.409,
+            [
+              0,
+              0.408,
+              0.796
+            ]
+          ],
+          [
+            0.411,
+            [
+              0,
+              0.412,
+              0.794
+            ]
+          ],
+          [
+            0.413,
+            [
+              0,
+              0.412,
+              0.794
+            ]
+          ],
+          [
+            0.415,
+            [
+              0,
+              0.416,
+              0.792
+            ]
+          ],
+          [
+            0.417,
+            [
+              0,
+              0.416,
+              0.792
+            ]
+          ],
+          [
+            0.419,
+            [
+              0,
+              0.42,
+              0.79
+            ]
+          ],
+          [
+            0.421,
+            [
+              0,
+              0.42,
+              0.79
+            ]
+          ],
+          [
+            0.423,
+            [
+              0,
+              0.424,
+              0.788
+            ]
+          ],
+          [
+            0.425,
+            [
+              0,
+              0.424,
+              0.788
+            ]
+          ],
+          [
+            0.427,
+            [
+              0,
+              0.427,
+              0.786
+            ]
+          ],
+          [
+            0.429,
+            [
+              0,
+              0.427,
+              0.786
+            ]
+          ],
+          [
+            0.431,
+            [
+              0,
+              0.431,
+              0.784
+            ]
+          ],
+          [
+            0.432,
+            [
+              0,
+              0.431,
+              0.784
+            ]
+          ],
+          [
+            0.434,
+            [
+              0,
+              0.435,
+              0.782
+            ]
+          ],
+          [
+            0.436,
+            [
+              0,
+              0.435,
+              0.782
+            ]
+          ],
+          [
+            0.438,
+            [
+              0,
+              0.439,
+              0.78
+            ]
+          ],
+          [
+            0.44,
+            [
+              0,
+              0.439,
+              0.78
+            ]
+          ],
+          [
+            0.442,
+            [
+              0,
+              0.443,
+              0.778
+            ]
+          ],
+          [
+            0.444,
+            [
+              0,
+              0.443,
+              0.778
+            ]
+          ],
+          [
+            0.446,
+            [
+              0,
+              0.447,
+              0.776
+            ]
+          ],
+          [
+            0.448,
+            [
+              0,
+              0.447,
+              0.776
+            ]
+          ],
+          [
+            0.45,
+            [
+              0,
+              0.451,
+              0.775
+            ]
+          ],
+          [
+            0.452,
+            [
+              0,
+              0.451,
+              0.775
+            ]
+          ],
+          [
+            0.454,
+            [
+              0,
+              0.455,
+              0.773
+            ]
+          ],
+          [
+            0.456,
+            [
+              0,
+              0.455,
+              0.773
+            ]
+          ],
+          [
+            0.458,
+            [
+              0,
+              0.459,
+              0.771
+            ]
+          ],
+          [
+            0.46,
+            [
+              0,
+              0.459,
+              0.771
+            ]
+          ],
+          [
+            0.462,
+            [
+              0,
+              0.463,
+              0.769
+            ]
+          ],
+          [
+            0.464,
+            [
+              0,
+              0.463,
+              0.769
+            ]
+          ],
+          [
+            0.466,
+            [
+              0,
+              0.467,
+              0.767
+            ]
+          ],
+          [
+            0.468,
+            [
+              0,
+              0.467,
+              0.767
+            ]
+          ],
+          [
+            0.47,
+            [
+              0,
+              0.471,
+              0.765
+            ]
+          ],
+          [
+            0.472,
+            [
+              0,
+              0.471,
+              0.765
+            ]
+          ],
+          [
+            0.474,
+            [
+              0,
+              0.475,
+              0.763
+            ]
+          ],
+          [
+            0.476,
+            [
+              0,
+              0.475,
+              0.763
+            ]
+          ],
+          [
+            0.477,
+            [
+              0,
+              0.478,
+              0.761
+            ]
+          ],
+          [
+            0.479,
+            [
+              0,
+              0.478,
+              0.761
+            ]
+          ],
+          [
+            0.481,
+            [
+              0,
+              0.482,
+              0.759
+            ]
+          ],
+          [
+            0.483,
+            [
+              0,
+              0.482,
+              0.759
+            ]
+          ],
+          [
+            0.485,
+            [
+              0,
+              0.486,
+              0.757
+            ]
+          ],
+          [
+            0.487,
+            [
+              0,
+              0.486,
+              0.757
+            ]
+          ],
+          [
+            0.489,
+            [
+              0,
+              0.49,
+              0.755
+            ]
+          ],
+          [
+            0.491,
+            [
+              0,
+              0.49,
+              0.755
+            ]
+          ],
+          [
+            0.493,
+            [
+              0,
+              0.494,
+              0.753
+            ]
+          ],
+          [
+            0.495,
+            [
+              0,
+              0.494,
+              0.753
+            ]
+          ],
+          [
+            0.497,
+            [
+              0,
+              0.498,
+              0.751
+            ]
+          ],
+          [
+            0.499,
+            [
+              0,
+              0.498,
+              0.751
+            ]
+          ],
+          [
+            0.501,
+            [
+              0,
+              0.502,
+              0.749
+            ]
+          ],
+          [
+            0.503,
+            [
+              0,
+              0.502,
+              0.749
+            ]
+          ],
+          [
+            0.505,
+            [
+              0,
+              0.506,
+              0.747
+            ]
+          ],
+          [
+            0.507,
+            [
+              0,
+              0.506,
+              0.747
+            ]
+          ],
+          [
+            0.509,
+            [
+              0,
+              0.51,
+              0.745
+            ]
+          ],
+          [
+            0.511,
+            [
+              0,
+              0.51,
+              0.745
+            ]
+          ],
+          [
+            0.513,
+            [
+              0,
+              0.514,
+              0.743
+            ]
+          ],
+          [
+            0.515,
+            [
+              0,
+              0.514,
+              0.743
+            ]
+          ],
+          [
+            0.517,
+            [
+              0,
+              0.518,
+              0.741
+            ]
+          ],
+          [
+            0.519,
+            [
+              0,
+              0.518,
+              0.741
+            ]
+          ],
+          [
+            0.521,
+            [
+              0,
+              0.522,
+              0.739
+            ]
+          ],
+          [
+            0.523,
+            [
+              0,
+              0.522,
+              0.739
+            ]
+          ],
+          [
+            0.524,
+            [
+              0,
+              0.525,
+              0.737
+            ]
+          ],
+          [
+            0.526,
+            [
+              0,
+              0.525,
+              0.737
+            ]
+          ],
+          [
+            0.528,
+            [
+              0,
+              0.529,
+              0.735
+            ]
+          ],
+          [
+            0.53,
+            [
+              0,
+              0.529,
+              0.735
+            ]
+          ],
+          [
+            0.532,
+            [
+              0,
+              0.533,
+              0.733
+            ]
+          ],
+          [
+            0.534,
+            [
+              0,
+              0.533,
+              0.733
+            ]
+          ],
+          [
+            0.536,
+            [
+              0,
+              0.537,
+              0.731
+            ]
+          ],
+          [
+            0.538,
+            [
+              0,
+              0.537,
+              0.731
+            ]
+          ],
+          [
+            0.54,
+            [
+              0,
+              0.541,
+              0.729
+            ]
+          ],
+          [
+            0.542,
+            [
+              0,
+              0.541,
+              0.729
+            ]
+          ],
+          [
+            0.544,
+            [
+              0,
+              0.545,
+              0.727
+            ]
+          ],
+          [
+            0.546,
+            [
+              0,
+              0.545,
+              0.727
+            ]
+          ],
+          [
+            0.548,
+            [
+              0,
+              0.549,
+              0.725
+            ]
+          ],
+          [
+            0.55,
+            [
+              0,
+              0.549,
+              0.725
+            ]
+          ],
+          [
+            0.552,
+            [
+              0,
+              0.553,
+              0.724
+            ]
+          ],
+          [
+            0.554,
+            [
+              0,
+              0.553,
+              0.724
+            ]
+          ],
+          [
+            0.556,
+            [
+              0,
+              0.557,
+              0.722
+            ]
+          ],
+          [
+            0.558,
+            [
+              0,
+              0.557,
+              0.722
+            ]
+          ],
+          [
+            0.56,
+            [
+              0,
+              0.561,
+              0.72
+            ]
+          ],
+          [
+            0.562,
+            [
+              0,
+              0.561,
+              0.72
+            ]
+          ],
+          [
+            0.564,
+            [
+              0,
+              0.565,
+              0.718
+            ]
+          ],
+          [
+            0.566,
+            [
+              0,
+              0.565,
+              0.718
+            ]
+          ],
+          [
+            0.568,
+            [
+              0,
+              0.569,
+              0.716
+            ]
+          ],
+          [
+            0.569,
+            [
+              0,
+              0.569,
+              0.716
+            ]
+          ],
+          [
+            0.571,
+            [
+              0,
+              0.573,
+              0.714
+            ]
+          ],
+          [
+            0.573,
+            [
+              0,
+              0.573,
+              0.714
+            ]
+          ],
+          [
+            0.575,
+            [
+              0,
+              0.576,
+              0.712
+            ]
+          ],
+          [
+            0.577,
+            [
+              0,
+              0.576,
+              0.712
+            ]
+          ],
+          [
+            0.579,
+            [
+              0,
+              0.58,
+              0.71
+            ]
+          ],
+          [
+            0.581,
+            [
+              0,
+              0.58,
+              0.71
+            ]
+          ],
+          [
+            0.583,
+            [
+              0,
+              0.584,
+              0.708
+            ]
+          ],
+          [
+            0.585,
+            [
+              0,
+              0.584,
+              0.708
+            ]
+          ],
+          [
+            0.587,
+            [
+              0,
+              0.588,
+              0.706
+            ]
+          ],
+          [
+            0.589,
+            [
+              0,
+              0.588,
+              0.706
+            ]
+          ],
+          [
+            0.591,
+            [
+              0,
+              0.592,
+              0.704
+            ]
+          ],
+          [
+            0.593,
+            [
+              0,
+              0.592,
+              0.704
+            ]
+          ],
+          [
+            0.595,
+            [
+              0,
+              0.596,
+              0.702
+            ]
+          ],
+          [
+            0.597,
+            [
+              0,
+              0.596,
+              0.702
+            ]
+          ],
+          [
+            0.599,
+            [
+              0,
+              0.6,
+              0.7
+            ]
+          ],
+          [
+            0.601,
+            [
+              0,
+              0.6,
+              0.7
+            ]
+          ],
+          [
+            0.603,
+            [
+              0,
+              0.604,
+              0.698
+            ]
+          ],
+          [
+            0.605,
+            [
+              0,
+              0.604,
+              0.698
+            ]
+          ],
+          [
+            0.607,
+            [
+              0,
+              0.608,
+              0.696
+            ]
+          ],
+          [
+            0.609,
+            [
+              0,
+              0.608,
+              0.696
+            ]
+          ],
+          [
+            0.611,
+            [
+              0,
+              0.612,
+              0.694
+            ]
+          ],
+          [
+            0.613,
+            [
+              0,
+              0.612,
+              0.694
+            ]
+          ],
+          [
+            0.614,
+            [
+              0,
+              0.616,
+              0.692
+            ]
+          ],
+          [
+            0.616,
+            [
+              0,
+              0.616,
+              0.692
+            ]
+          ],
+          [
+            0.618,
+            [
+              0,
+              0.62,
+              0.69
+            ]
+          ],
+          [
+            0.62,
+            [
+              0,
+              0.62,
+              0.69
+            ]
+          ],
+          [
+            0.622,
+            [
+              0,
+              0.624,
+              0.688
+            ]
+          ],
+          [
+            0.624,
+            [
+              0,
+              0.624,
+              0.688
+            ]
+          ],
+          [
+            0.626,
+            [
+              0,
+              0.627,
+              0.686
+            ]
+          ],
+          [
+            0.628,
+            [
+              0,
+              0.627,
+              0.686
+            ]
+          ],
+          [
+            0.63,
+            [
+              0,
+              0.631,
+              0.684
+            ]
+          ],
+          [
+            0.632,
+            [
+              0,
+              0.631,
+              0.684
+            ]
+          ],
+          [
+            0.634,
+            [
+              0,
+              0.635,
+              0.682
+            ]
+          ],
+          [
+            0.636,
+            [
+              0,
+              0.635,
+              0.682
+            ]
+          ],
+          [
+            0.638,
+            [
+              0,
+              0.639,
+              0.68
+            ]
+          ],
+          [
+            0.64,
+            [
+              0,
+              0.639,
+              0.68
+            ]
+          ],
+          [
+            0.642,
+            [
+              0,
+              0.643,
+              0.678
+            ]
+          ],
+          [
+            0.644,
+            [
+              0,
+              0.643,
+              0.678
+            ]
+          ],
+          [
+            0.646,
+            [
+              0,
+              0.647,
+              0.676
+            ]
+          ],
+          [
+            0.648,
+            [
+              0,
+              0.647,
+              0.676
+            ]
+          ],
+          [
+            0.65,
+            [
+              0,
+              0.651,
+              0.675
+            ]
+          ],
+          [
+            0.652,
+            [
+              0,
+              0.651,
+              0.675
+            ]
+          ],
+          [
+            0.654,
+            [
+              0,
+              0.655,
+              0.673
+            ]
+          ],
+          [
+            0.656,
+            [
+              0,
+              0.655,
+              0.673
+            ]
+          ],
+          [
+            0.658,
+            [
+              0,
+              0.659,
+              0.671
+            ]
+          ],
+          [
+            0.659,
+            [
+              0,
+              0.659,
+              0.671
+            ]
+          ],
+          [
+            0.661,
+            [
+              0,
+              0.663,
+              0.669
+            ]
+          ],
+          [
+            0.663,
+            [
+              0,
+              0.663,
+              0.669
+            ]
+          ],
+          [
+            0.665,
+            [
+              0,
+              0.667,
+              0.667
+            ]
+          ],
+          [
+            0.667,
+            [
+              0,
+              0.667,
+              0.667
+            ]
+          ],
+          [
+            0.669,
+            [
+              0,
+              0.671,
+              0.665
+            ]
+          ],
+          [
+            0.671,
+            [
+              0,
+              0.671,
+              0.665
+            ]
+          ],
+          [
+            0.673,
+            [
+              0,
+              0.675,
+              0.663
+            ]
+          ],
+          [
+            0.675,
+            [
+              0,
+              0.675,
+              0.663
+            ]
+          ],
+          [
+            0.677,
+            [
+              0,
+              0.678,
+              0.661
+            ]
+          ],
+          [
+            0.679,
+            [
+              0,
+              0.678,
+              0.661
+            ]
+          ],
+          [
+            0.681,
+            [
+              0,
+              0.682,
+              0.659
+            ]
+          ],
+          [
+            0.683,
+            [
+              0,
+              0.682,
+              0.659
+            ]
+          ],
+          [
+            0.685,
+            [
+              0,
+              0.686,
+              0.657
+            ]
+          ],
+          [
+            0.687,
+            [
+              0,
+              0.686,
+              0.657
+            ]
+          ],
+          [
+            0.689,
+            [
+              0,
+              0.69,
+              0.655
+            ]
+          ],
+          [
+            0.691,
+            [
+              0,
+              0.69,
+              0.655
+            ]
+          ],
+          [
+            0.693,
+            [
+              0,
+              0.694,
+              0.653
+            ]
+          ],
+          [
+            0.695,
+            [
+              0,
+              0.694,
+              0.653
+            ]
+          ],
+          [
+            0.697,
+            [
+              0,
+              0.698,
+              0.651
+            ]
+          ],
+          [
+            0.699,
+            [
+              0,
+              0.698,
+              0.651
+            ]
+          ],
+          [
+            0.701,
+            [
+              0,
+              0.702,
+              0.649
+            ]
+          ],
+          [
+            0.703,
+            [
+              0,
+              0.702,
+              0.649
+            ]
+          ],
+          [
+            0.705,
+            [
+              0,
+              0.706,
+              0.647
+            ]
+          ],
+          [
+            0.706,
+            [
+              0,
+              0.706,
+              0.647
+            ]
+          ],
+          [
+            0.708,
+            [
+              0,
+              0.71,
+              0.645
+            ]
+          ],
+          [
+            0.71,
+            [
+              0,
+              0.71,
+              0.645
+            ]
+          ],
+          [
+            0.712,
+            [
+              0,
+              0.714,
+              0.643
+            ]
+          ],
+          [
+            0.714,
+            [
+              0,
+              0.714,
+              0.643
+            ]
+          ],
+          [
+            0.716,
+            [
+              0,
+              0.718,
+              0.641
+            ]
+          ],
+          [
+            0.718,
+            [
+              0,
+              0.718,
+              0.641
+            ]
+          ],
+          [
+            0.72,
+            [
+              0,
+              0.722,
+              0.639
+            ]
+          ],
+          [
+            0.722,
+            [
+              0,
+              0.722,
+              0.639
+            ]
+          ],
+          [
+            0.724,
+            [
+              0,
+              0.725,
+              0.637
+            ]
+          ],
+          [
+            0.726,
+            [
+              0,
+              0.725,
+              0.637
+            ]
+          ],
+          [
+            0.728,
+            [
+              0,
+              0.729,
+              0.635
+            ]
+          ],
+          [
+            0.73,
+            [
+              0,
+              0.729,
+              0.635
+            ]
+          ],
+          [
+            0.732,
+            [
+              0,
+              0.733,
+              0.633
+            ]
+          ],
+          [
+            0.734,
+            [
+              0,
+              0.733,
+              0.633
+            ]
+          ],
+          [
+            0.736,
+            [
+              0,
+              0.737,
+              0.631
+            ]
+          ],
+          [
+            0.738,
+            [
+              0,
+              0.737,
+              0.631
+            ]
+          ],
+          [
+            0.74,
+            [
+              0,
+              0.741,
+              0.629
+            ]
+          ],
+          [
+            0.742,
+            [
+              0,
+              0.741,
+              0.629
+            ]
+          ],
+          [
+            0.744,
+            [
+              0,
+              0.745,
+              0.627
+            ]
+          ],
+          [
+            0.746,
+            [
+              0,
+              0.745,
+              0.627
+            ]
+          ],
+          [
+            0.748,
+            [
+              0,
+              0.749,
+              0.625
+            ]
+          ],
+          [
+            0.75,
+            [
+              0,
+              0.749,
+              0.625
+            ]
+          ],
+          [
+            0.751,
+            [
+              0,
+              0.753,
+              0.624
+            ]
+          ],
+          [
+            0.753,
+            [
+              0,
+              0.753,
+              0.624
+            ]
+          ],
+          [
+            0.755,
+            [
+              0,
+              0.757,
+              0.622
+            ]
+          ],
+          [
+            0.757,
+            [
+              0,
+              0.757,
+              0.622
+            ]
+          ],
+          [
+            0.759,
+            [
+              0,
+              0.761,
+              0.62
+            ]
+          ],
+          [
+            0.761,
+            [
+              0,
+              0.761,
+              0.62
+            ]
+          ],
+          [
+            0.763,
+            [
+              0,
+              0.765,
+              0.618
+            ]
+          ],
+          [
+            0.765,
+            [
+              0,
+              0.765,
+              0.618
+            ]
+          ],
+          [
+            0.767,
+            [
+              0,
+              0.769,
+              0.616
+            ]
+          ],
+          [
+            0.769,
+            [
+              0,
+              0.769,
+              0.616
+            ]
+          ],
+          [
+            0.771,
+            [
+              0,
+              0.773,
+              0.614
+            ]
+          ],
+          [
+            0.773,
+            [
+              0,
+              0.773,
+              0.614
+            ]
+          ],
+          [
+            0.775,
+            [
+              0,
+              0.776,
+              0.612
+            ]
+          ],
+          [
+            0.777,
+            [
+              0,
+              0.776,
+              0.612
+            ]
+          ],
+          [
+            0.779,
+            [
+              0,
+              0.78,
+              0.61
+            ]
+          ],
+          [
+            0.781,
+            [
+              0,
+              0.78,
+              0.61
+            ]
+          ],
+          [
+            0.783,
+            [
+              0,
+              0.784,
+              0.608
+            ]
+          ],
+          [
+            0.785,
+            [
+              0,
+              0.784,
+              0.608
+            ]
+          ],
+          [
+            0.787,
+            [
+              0,
+              0.788,
+              0.606
+            ]
+          ],
+          [
+            0.789,
+            [
+              0,
+              0.788,
+              0.606
+            ]
+          ],
+          [
+            0.791,
+            [
+              0,
+              0.792,
+              0.604
+            ]
+          ],
+          [
+            0.793,
+            [
+              0,
+              0.792,
+              0.604
+            ]
+          ],
+          [
+            0.795,
+            [
+              0,
+              0.796,
+              0.602
+            ]
+          ],
+          [
+            0.796,
+            [
+              0,
+              0.796,
+              0.602
+            ]
+          ],
+          [
+            0.798,
+            [
+              0,
+              0.8,
+              0.6
+            ]
+          ],
+          [
+            0.8,
+            [
+              0,
+              0.8,
+              0.6
+            ]
+          ],
+          [
+            0.802,
+            [
+              0,
+              0.804,
+              0.598
+            ]
+          ],
+          [
+            0.804,
+            [
+              0,
+              0.804,
+              0.598
+            ]
+          ],
+          [
+            0.806,
+            [
+              0,
+              0.808,
+              0.596
+            ]
+          ],
+          [
+            0.808,
+            [
+              0,
+              0.808,
+              0.596
+            ]
+          ],
+          [
+            0.81,
+            [
+              0,
+              0.812,
+              0.594
+            ]
+          ],
+          [
+            0.812,
+            [
+              0,
+              0.812,
+              0.594
+            ]
+          ],
+          [
+            0.814,
+            [
+              0,
+              0.816,
+              0.592
+            ]
+          ],
+          [
+            0.816,
+            [
+              0,
+              0.816,
+              0.592
+            ]
+          ],
+          [
+            0.818,
+            [
+              0,
+              0.82,
+              0.59
+            ]
+          ],
+          [
+            0.82,
+            [
+              0,
+              0.82,
+              0.59
+            ]
+          ],
+          [
+            0.822,
+            [
+              0,
+              0.824,
+              0.588
+            ]
+          ],
+          [
+            0.824,
+            [
+              0,
+              0.824,
+              0.588
+            ]
+          ],
+          [
+            0.826,
+            [
+              0,
+              0.827,
+              0.586
+            ]
+          ],
+          [
+            0.828,
+            [
+              0,
+              0.827,
+              0.586
+            ]
+          ],
+          [
+            0.83,
+            [
+              0,
+              0.831,
+              0.584
+            ]
+          ],
+          [
+            0.832,
+            [
+              0,
+              0.831,
+              0.584
+            ]
+          ],
+          [
+            0.834,
+            [
+              0,
+              0.835,
+              0.582
+            ]
+          ],
+          [
+            0.836,
+            [
+              0,
+              0.835,
+              0.582
+            ]
+          ],
+          [
+            0.838,
+            [
+              0,
+              0.839,
+              0.58
+            ]
+          ],
+          [
+            0.84,
+            [
+              0,
+              0.839,
+              0.58
+            ]
+          ],
+          [
+            0.841,
+            [
+              0,
+              0.843,
+              0.578
+            ]
+          ],
+          [
+            0.843,
+            [
+              0,
+              0.843,
+              0.578
+            ]
+          ],
+          [
+            0.845,
+            [
+              0,
+              0.847,
+              0.576
+            ]
+          ],
+          [
+            0.847,
+            [
+              0,
+              0.847,
+              0.576
+            ]
+          ],
+          [
+            0.849,
+            [
+              0,
+              0.851,
+              0.575
+            ]
+          ],
+          [
+            0.851,
+            [
+              0,
+              0.851,
+              0.575
+            ]
+          ],
+          [
+            0.853,
+            [
+              0,
+              0.855,
+              0.573
+            ]
+          ],
+          [
+            0.855,
+            [
+              0,
+              0.855,
+              0.573
+            ]
+          ],
+          [
+            0.857,
+            [
+              0,
+              0.859,
+              0.571
+            ]
+          ],
+          [
+            0.859,
+            [
+              0,
+              0.859,
+              0.571
+            ]
+          ],
+          [
+            0.861,
+            [
+              0,
+              0.863,
+              0.569
+            ]
+          ],
+          [
+            0.863,
+            [
+              0,
+              0.863,
+              0.569
+            ]
+          ],
+          [
+            0.865,
+            [
+              0,
+              0.867,
+              0.567
+            ]
+          ],
+          [
+            0.867,
+            [
+              0,
+              0.867,
+              0.567
+            ]
+          ],
+          [
+            0.869,
+            [
+              0,
+              0.871,
+              0.565
+            ]
+          ],
+          [
+            0.871,
+            [
+              0,
+              0.871,
+              0.565
+            ]
+          ],
+          [
+            0.873,
+            [
+              0,
+              0.875,
+              0.563
+            ]
+          ],
+          [
+            0.875,
+            [
+              0,
+              0.875,
+              0.563
+            ]
+          ],
+          [
+            0.877,
+            [
+              0,
+              0.878,
+              0.561
+            ]
+          ],
+          [
+            0.879,
+            [
+              0,
+              0.878,
+              0.561
+            ]
+          ],
+          [
+            0.881,
+            [
+              0,
+              0.882,
+              0.559
+            ]
+          ],
+          [
+            0.883,
+            [
+              0,
+              0.882,
+              0.559
+            ]
+          ],
+          [
+            0.885,
+            [
+              0,
+              0.886,
+              0.557
+            ]
+          ],
+          [
+            0.886,
+            [
+              0,
+              0.886,
+              0.557
+            ]
+          ],
+          [
+            0.888,
+            [
+              0,
+              0.89,
+              0.555
+            ]
+          ],
+          [
+            0.89,
+            [
+              0,
+              0.89,
+              0.555
+            ]
+          ],
+          [
+            0.892,
+            [
+              0,
+              0.894,
+              0.553
+            ]
+          ],
+          [
+            0.894,
+            [
+              0,
+              0.894,
+              0.553
+            ]
+          ],
+          [
+            0.896,
+            [
+              0,
+              0.898,
+              0.551
+            ]
+          ],
+          [
+            0.898,
+            [
+              0,
+              0.898,
+              0.551
+            ]
+          ],
+          [
+            0.9,
+            [
+              0,
+              0.902,
+              0.549
+            ]
+          ],
+          [
+            0.902,
+            [
+              0,
+              0.902,
+              0.549
+            ]
+          ],
+          [
+            0.904,
+            [
+              0,
+              0.906,
+              0.547
+            ]
+          ],
+          [
+            0.906,
+            [
+              0,
+              0.906,
+              0.547
+            ]
+          ],
+          [
+            0.908,
+            [
+              0,
+              0.91,
+              0.545
+            ]
+          ],
+          [
+            0.91,
+            [
+              0,
+              0.91,
+              0.545
+            ]
+          ],
+          [
+            0.912,
+            [
+              0,
+              0.914,
+              0.543
+            ]
+          ],
+          [
+            0.914,
+            [
+              0,
+              0.914,
+              0.543
+            ]
+          ],
+          [
+            0.916,
+            [
+              0,
+              0.918,
+              0.541
+            ]
+          ],
+          [
+            0.918,
+            [
+              0,
+              0.918,
+              0.541
+            ]
+          ],
+          [
+            0.92,
+            [
+              0,
+              0.922,
+              0.539
+            ]
+          ],
+          [
+            0.922,
+            [
+              0,
+              0.922,
+              0.539
+            ]
+          ],
+          [
+            0.924,
+            [
+              0,
+              0.925,
+              0.537
+            ]
+          ],
+          [
+            0.926,
+            [
+              0,
+              0.925,
+              0.537
+            ]
+          ],
+          [
+            0.928,
+            [
+              0,
+              0.929,
+              0.535
+            ]
+          ],
+          [
+            0.93,
+            [
+              0,
+              0.929,
+              0.535
+            ]
+          ],
+          [
+            0.932,
+            [
+              0,
+              0.933,
+              0.533
+            ]
+          ],
+          [
+            0.933,
+            [
+              0,
+              0.933,
+              0.533
+            ]
+          ],
+          [
+            0.935,
+            [
+              0,
+              0.937,
+              0.531
+            ]
+          ],
+          [
+            0.937,
+            [
+              0,
+              0.937,
+              0.531
+            ]
+          ],
+          [
+            0.939,
+            [
+              0,
+              0.941,
+              0.529
+            ]
+          ],
+          [
+            0.941,
+            [
+              0,
+              0.941,
+              0.529
+            ]
+          ],
+          [
+            0.943,
+            [
+              0,
+              0.945,
+              0.527
+            ]
+          ],
+          [
+            0.945,
+            [
+              0,
+              0.945,
+              0.527
+            ]
+          ],
+          [
+            0.947,
+            [
+              0,
+              0.949,
+              0.525
+            ]
+          ],
+          [
+            0.949,
+            [
+              0,
+              0.949,
+              0.525
+            ]
+          ],
+          [
+            0.951,
+            [
+              0,
+              0.953,
+              0.524
+            ]
+          ],
+          [
+            0.953,
+            [
+              0,
+              0.953,
+              0.524
+            ]
+          ],
+          [
+            0.955,
+            [
+              0,
+              0.957,
+              0.522
+            ]
+          ],
+          [
+            0.957,
+            [
+              0,
+              0.957,
+              0.522
+            ]
+          ],
+          [
+            0.959,
+            [
+              0,
+              0.961,
+              0.52
+            ]
+          ],
+          [
+            0.961,
+            [
+              0,
+              0.961,
+              0.52
+            ]
+          ],
+          [
+            0.963,
+            [
+              0,
+              0.965,
+              0.518
+            ]
+          ],
+          [
+            0.965,
+            [
+              0,
+              0.965,
+              0.518
+            ]
+          ],
+          [
+            0.967,
+            [
+              0,
+              0.969,
+              0.516
+            ]
+          ],
+          [
+            0.969,
+            [
+              0,
+              0.969,
+              0.516
+            ]
+          ],
+          [
+            0.971,
+            [
+              0,
+              0.973,
+              0.514
+            ]
+          ],
+          [
+            0.973,
+            [
+              0,
+              0.973,
+              0.514
+            ]
+          ],
+          [
+            0.975,
+            [
+              0,
+              0.976,
+              0.512
+            ]
+          ],
+          [
+            0.977,
+            [
+              0,
+              0.976,
+              0.512
+            ]
+          ],
+          [
+            0.978,
+            [
+              0,
+              0.98,
+              0.51
+            ]
+          ],
+          [
+            0.98,
+            [
+              0,
+              0.98,
+              0.51
+            ]
+          ],
+          [
+            0.982,
+            [
+              0,
+              0.984,
+              0.508
+            ]
+          ],
+          [
+            0.984,
+            [
+              0,
+              0.984,
+              0.508
+            ]
+          ],
+          [
+            0.986,
+            [
+              0,
+              0.988,
+              0.506
+            ]
+          ],
+          [
+            0.988,
+            [
+              0,
+              0.988,
+              0.506
+            ]
+          ],
+          [
+            0.99,
+            [
+              0,
+              0.992,
+              0.504
+            ]
+          ],
+          [
+            0.992,
+            [
+              0,
+              0.992,
+              0.504
+            ]
+          ],
+          [
+            0.994,
+            [
+              0,
+              0.996,
+              0.502
+            ]
+          ],
+          [
+            0.996,
+            [
+              0,
+              0.996,
+              0.502
+            ]
+          ],
+          [
+            0.998,
+            [
+              0,
+              1,
+              0.5
+            ]
+          ],
+          [
+            1,
+            [
+              0,
+              1,
+              0.5
+            ]
+          ]
+        ],
+        [
+          [
+            0,
+            [
+              0,
+              0,
+              0.5
+            ]
+          ],
+          [
+            0.002,
+            [
+              0,
+              0,
+              0.5
+            ]
+          ],
+          [
+            0.004,
+            [
+              0,
+              0,
+              0.518
+            ]
+          ],
+          [
+            0.006,
+            [
+              0,
+              0,
+              0.518
+            ]
+          ],
+          [
+            0.008,
+            [
+              0,
+              0,
+              0.536
+            ]
+          ],
+          [
+            0.01,
+            [
+              0,
+              0,
+              0.536
+            ]
+          ],
+          [
+            0.012,
+            [
+              0,
+              0,
+              0.553
+            ]
+          ],
+          [
+            0.014,
+            [
+              0,
+              0,
+              0.553
+            ]
+          ],
+          [
+            0.016,
+            [
+              0,
+              0,
+              0.571
+            ]
+          ],
+          [
+            0.018,
+            [
+              0,
+              0,
+              0.571
+            ]
+          ],
+          [
+            0.02,
+            [
+              0,
+              0,
+              0.589
+            ]
+          ],
+          [
+            0.022,
+            [
+              0,
+              0,
+              0.589
+            ]
+          ],
+          [
+            0.023,
+            [
+              0,
+              0,
+              0.607
+            ]
+          ],
+          [
+            0.025,
+            [
+              0,
+              0,
+              0.607
+            ]
+          ],
+          [
+            0.027,
+            [
+              0,
+              0,
+              0.625
+            ]
+          ],
+          [
+            0.029,
+            [
+              0,
+              0,
+              0.625
+            ]
+          ],
+          [
+            0.031,
+            [
+              0,
+              0,
+              0.643
+            ]
+          ],
+          [
+            0.033,
+            [
+              0,
+              0,
+              0.643
+            ]
+          ],
+          [
+            0.035,
+            [
+              0,
+              0,
+              0.66
+            ]
+          ],
+          [
+            0.037,
+            [
+              0,
+              0,
+              0.66
+            ]
+          ],
+          [
+            0.039,
+            [
+              0,
+              0,
+              0.678
+            ]
+          ],
+          [
+            0.041,
+            [
+              0,
+              0,
+              0.678
+            ]
+          ],
+          [
+            0.043,
+            [
+              0,
+              0,
+              0.696
+            ]
+          ],
+          [
+            0.045,
+            [
+              0,
+              0,
+              0.696
+            ]
+          ],
+          [
+            0.047,
+            [
+              0,
+              0,
+              0.714
+            ]
+          ],
+          [
+            0.049,
+            [
+              0,
+              0,
+              0.714
+            ]
+          ],
+          [
+            0.051,
+            [
+              0,
+              0,
+              0.732
+            ]
+          ],
+          [
+            0.053,
+            [
+              0,
+              0,
+              0.732
+            ]
+          ],
+          [
+            0.055,
+            [
+              0,
+              0,
+              0.75
+            ]
+          ],
+          [
+            0.057,
+            [
+              0,
+              0,
+              0.75
+            ]
+          ],
+          [
+            0.059,
+            [
+              0,
+              0,
+              0.767
+            ]
+          ],
+          [
+            0.061,
+            [
+              0,
+              0,
+              0.767
+            ]
+          ],
+          [
+            0.063,
+            [
+              0,
+              0,
+              0.785
+            ]
+          ],
+          [
+            0.065,
+            [
+              0,
+              0,
+              0.785
+            ]
+          ],
+          [
+            0.067,
+            [
+              0,
+              0,
+              0.803
+            ]
+          ],
+          [
+            0.068,
+            [
+              0,
+              0,
+              0.803
+            ]
+          ],
+          [
+            0.07,
+            [
+              0,
+              0,
+              0.821
+            ]
+          ],
+          [
+            0.072,
+            [
+              0,
+              0,
+              0.821
+            ]
+          ],
+          [
+            0.074,
+            [
+              0,
+              0,
+              0.839
+            ]
+          ],
+          [
+            0.076,
+            [
+              0,
+              0,
+              0.839
+            ]
+          ],
+          [
+            0.078,
+            [
+              0,
+              0,
+              0.857
+            ]
+          ],
+          [
+            0.08,
+            [
+              0,
+              0,
+              0.857
+            ]
+          ],
+          [
+            0.082,
+            [
+              0,
+              0,
+              0.874
+            ]
+          ],
+          [
+            0.084,
+            [
+              0,
+              0,
+              0.874
+            ]
+          ],
+          [
+            0.086,
+            [
+              0,
+              0,
+              0.892
+            ]
+          ],
+          [
+            0.088,
+            [
+              0,
+              0,
+              0.892
+            ]
+          ],
+          [
+            0.09,
+            [
+              0,
+              0,
+              0.91
+            ]
+          ],
+          [
+            0.092,
+            [
+              0,
+              0,
+              0.91
+            ]
+          ],
+          [
+            0.094,
+            [
+              0,
+              0,
+              0.928
+            ]
+          ],
+          [
+            0.096,
+            [
+              0,
+              0,
+              0.928
+            ]
+          ],
+          [
+            0.098,
+            [
+              0,
+              0,
+              0.946
+            ]
+          ],
+          [
+            0.1,
+            [
+              0,
+              0,
+              0.946
+            ]
+          ],
+          [
+            0.102,
+            [
+              0,
+              0,
+              0.963
+            ]
+          ],
+          [
+            0.104,
+            [
+              0,
+              0,
+              0.963
+            ]
+          ],
+          [
+            0.106,
+            [
+              0,
+              0,
+              0.981
+            ]
+          ],
+          [
+            0.108,
+            [
+              0,
+              0,
+              0.981
+            ]
+          ],
+          [
+            0.11,
+            [
+              0,
+              0,
+              0.999
+            ]
+          ],
+          [
+            0.112,
+            [
+              0,
+              0,
+              0.999
+            ]
+          ],
+          [
+            0.114,
+            [
+              0,
+              0,
+              1
+            ]
+          ],
+          [
+            0.115,
+            [
+              0,
+              0,
+              1
+            ]
+          ],
+          [
+            0.117,
+            [
+              0,
+              0,
+              1
+            ]
+          ],
+          [
+            0.119,
+            [
+              0,
+              0,
+              1
+            ]
+          ],
+          [
+            0.121,
+            [
+              0,
+              0,
+              1
+            ]
+          ],
+          [
+            0.123,
+            [
+              0,
+              0,
+              1
+            ]
+          ],
+          [
+            0.125,
+            [
+              0,
+              0.002,
+              1
+            ]
+          ],
+          [
+            0.127,
+            [
+              0,
+              0.002,
+              1
+            ]
+          ],
+          [
+            0.129,
+            [
+              0,
+              0.018,
+              1
+            ]
+          ],
+          [
+            0.131,
+            [
+              0,
+              0.018,
+              1
+            ]
+          ],
+          [
+            0.133,
+            [
+              0,
+              0.033,
+              1
+            ]
+          ],
+          [
+            0.135,
+            [
+              0,
+              0.033,
+              1
+            ]
+          ],
+          [
+            0.137,
+            [
+              0,
+              0.049,
+              1
+            ]
+          ],
+          [
+            0.139,
+            [
+              0,
+              0.049,
+              1
+            ]
+          ],
+          [
+            0.141,
+            [
+              0,
+              0.065,
+              1
+            ]
+          ],
+          [
+            0.143,
+            [
+              0,
+              0.065,
+              1
+            ]
+          ],
+          [
+            0.145,
+            [
+              0,
+              0.08,
+              1
+            ]
+          ],
+          [
+            0.147,
+            [
+              0,
+              0.08,
+              1
+            ]
+          ],
+          [
+            0.149,
+            [
+              0,
+              0.096,
+              1
+            ]
+          ],
+          [
+            0.151,
+            [
+              0,
+              0.096,
+              1
+            ]
+          ],
+          [
+            0.153,
+            [
+              0,
+              0.112,
+              1
+            ]
+          ],
+          [
+            0.155,
+            [
+              0,
+              0.112,
+              1
+            ]
+          ],
+          [
+            0.157,
+            [
+              0,
+              0.127,
+              1
+            ]
+          ],
+          [
+            0.159,
+            [
+              0,
+              0.127,
+              1
+            ]
+          ],
+          [
+            0.16,
+            [
+              0,
+              0.143,
+              1
+            ]
+          ],
+          [
+            0.162,
+            [
+              0,
+              0.143,
+              1
+            ]
+          ],
+          [
+            0.164,
+            [
+              0,
+              0.159,
+              1
+            ]
+          ],
+          [
+            0.166,
+            [
+              0,
+              0.159,
+              1
+            ]
+          ],
+          [
+            0.168,
+            [
+              0,
+              0.175,
+              1
+            ]
+          ],
+          [
+            0.17,
+            [
+              0,
+              0.175,
+              1
+            ]
+          ],
+          [
+            0.172,
+            [
+              0,
+              0.19,
+              1
+            ]
+          ],
+          [
+            0.174,
+            [
+              0,
+              0.19,
+              1
+            ]
+          ],
+          [
+            0.176,
+            [
+              0,
+              0.206,
+              1
+            ]
+          ],
+          [
+            0.178,
+            [
+              0,
+              0.206,
+              1
+            ]
+          ],
+          [
+            0.18,
+            [
+              0,
+              0.222,
+              1
+            ]
+          ],
+          [
+            0.182,
+            [
+              0,
+              0.222,
+              1
+            ]
+          ],
+          [
+            0.184,
+            [
+              0,
+              0.237,
+              1
+            ]
+          ],
+          [
+            0.186,
+            [
+              0,
+              0.237,
+              1
+            ]
+          ],
+          [
+            0.188,
+            [
+              0,
+              0.253,
+              1
+            ]
+          ],
+          [
+            0.19,
+            [
+              0,
+              0.253,
+              1
+            ]
+          ],
+          [
+            0.192,
+            [
+              0,
+              0.269,
+              1
+            ]
+          ],
+          [
+            0.194,
+            [
+              0,
+              0.269,
+              1
+            ]
+          ],
+          [
+            0.196,
+            [
+              0,
+              0.284,
+              1
+            ]
+          ],
+          [
+            0.198,
+            [
+              0,
+              0.284,
+              1
+            ]
+          ],
+          [
+            0.2,
+            [
+              0,
+              0.3,
+              1
+            ]
+          ],
+          [
+            0.202,
+            [
+              0,
+              0.3,
+              1
+            ]
+          ],
+          [
+            0.204,
+            [
+              0,
+              0.316,
+              1
+            ]
+          ],
+          [
+            0.205,
+            [
+              0,
+              0.316,
+              1
+            ]
+          ],
+          [
+            0.207,
+            [
+              0,
+              0.331,
+              1
+            ]
+          ],
+          [
+            0.209,
+            [
+              0,
+              0.331,
+              1
+            ]
+          ],
+          [
+            0.211,
+            [
+              0,
+              0.347,
+              1
+            ]
+          ],
+          [
+            0.213,
+            [
+              0,
+              0.347,
+              1
+            ]
+          ],
+          [
+            0.215,
+            [
+              0,
+              0.363,
+              1
+            ]
+          ],
+          [
+            0.217,
+            [
+              0,
+              0.363,
+              1
+            ]
+          ],
+          [
+            0.219,
+            [
+              0,
+              0.378,
+              1
+            ]
+          ],
+          [
+            0.221,
+            [
+              0,
+              0.378,
+              1
+            ]
+          ],
+          [
+            0.223,
+            [
+              0,
+              0.394,
+              1
+            ]
+          ],
+          [
+            0.225,
+            [
+              0,
+              0.394,
+              1
+            ]
+          ],
+          [
+            0.227,
+            [
+              0,
+              0.41,
+              1
+            ]
+          ],
+          [
+            0.229,
+            [
+              0,
+              0.41,
+              1
+            ]
+          ],
+          [
+            0.231,
+            [
+              0,
+              0.425,
+              1
+            ]
+          ],
+          [
+            0.233,
+            [
+              0,
+              0.425,
+              1
+            ]
+          ],
+          [
+            0.235,
+            [
+              0,
+              0.441,
+              1
+            ]
+          ],
+          [
+            0.237,
+            [
+              0,
+              0.441,
+              1
+            ]
+          ],
+          [
+            0.239,
+            [
+              0,
+              0.457,
+              1
+            ]
+          ],
+          [
+            0.241,
+            [
+              0,
+              0.457,
+              1
+            ]
+          ],
+          [
+            0.243,
+            [
+              0,
+              0.473,
+              1
+            ]
+          ],
+          [
+            0.245,
+            [
+              0,
+              0.473,
+              1
+            ]
+          ],
+          [
+            0.247,
+            [
+              0,
+              0.488,
+              1
+            ]
+          ],
+          [
+            0.249,
+            [
+              0,
+              0.488,
+              1
+            ]
+          ],
+          [
+            0.25,
+            [
+              0,
+              0.504,
+              1
+            ]
+          ],
+          [
+            0.252,
+            [
+              0,
+              0.504,
+              1
+            ]
+          ],
+          [
+            0.254,
+            [
+              0,
+              0.52,
+              1
+            ]
+          ],
+          [
+            0.256,
+            [
+              0,
+              0.52,
+              1
+            ]
+          ],
+          [
+            0.258,
+            [
+              0,
+              0.535,
+              1
+            ]
+          ],
+          [
+            0.26,
+            [
+              0,
+              0.535,
+              1
+            ]
+          ],
+          [
+            0.262,
+            [
+              0,
+              0.551,
+              1
+            ]
+          ],
+          [
+            0.264,
+            [
+              0,
+              0.551,
+              1
+            ]
+          ],
+          [
+            0.266,
+            [
+              0,
+              0.567,
+              1
+            ]
+          ],
+          [
+            0.268,
+            [
+              0,
+              0.567,
+              1
+            ]
+          ],
+          [
+            0.27,
+            [
+              0,
+              0.582,
+              1
+            ]
+          ],
+          [
+            0.272,
+            [
+              0,
+              0.582,
+              1
+            ]
+          ],
+          [
+            0.274,
+            [
+              0,
+              0.598,
+              1
+            ]
+          ],
+          [
+            0.276,
+            [
+              0,
+              0.598,
+              1
+            ]
+          ],
+          [
+            0.278,
+            [
+              0,
+              0.614,
+              1
+            ]
+          ],
+          [
+            0.28,
+            [
+              0,
+              0.614,
+              1
+            ]
+          ],
+          [
+            0.282,
+            [
+              0,
+              0.629,
+              1
+            ]
+          ],
+          [
+            0.284,
+            [
+              0,
+              0.629,
+              1
+            ]
+          ],
+          [
+            0.286,
+            [
+              0,
+              0.645,
+              1
+            ]
+          ],
+          [
+            0.288,
+            [
+              0,
+              0.645,
+              1
+            ]
+          ],
+          [
+            0.29,
+            [
+              0,
+              0.661,
+              1
+            ]
+          ],
+          [
+            0.292,
+            [
+              0,
+              0.661,
+              1
+            ]
+          ],
+          [
+            0.294,
+            [
+              0,
+              0.676,
+              1
+            ]
+          ],
+          [
+            0.295,
+            [
+              0,
+              0.676,
+              1
+            ]
+          ],
+          [
+            0.297,
+            [
+              0,
+              0.692,
+              1
+            ]
+          ],
+          [
+            0.299,
+            [
+              0,
+              0.692,
+              1
+            ]
+          ],
+          [
+            0.301,
+            [
+              0,
+              0.708,
+              1
+            ]
+          ],
+          [
+            0.303,
+            [
+              0,
+              0.708,
+              1
+            ]
+          ],
+          [
+            0.305,
+            [
+              0,
+              0.724,
+              1
+            ]
+          ],
+          [
+            0.307,
+            [
+              0,
+              0.724,
+              1
+            ]
+          ],
+          [
+            0.309,
+            [
+              0,
+              0.739,
+              1
+            ]
+          ],
+          [
+            0.311,
+            [
+              0,
+              0.739,
+              1
+            ]
+          ],
+          [
+            0.313,
+            [
+              0,
+              0.755,
+              1
+            ]
+          ],
+          [
+            0.315,
+            [
+              0,
+              0.755,
+              1
+            ]
+          ],
+          [
+            0.317,
+            [
+              0,
+              0.771,
+              1
+            ]
+          ],
+          [
+            0.319,
+            [
+              0,
+              0.771,
+              1
+            ]
+          ],
+          [
+            0.321,
+            [
+              0,
+              0.786,
+              1
+            ]
+          ],
+          [
+            0.323,
+            [
+              0,
+              0.786,
+              1
+            ]
+          ],
+          [
+            0.325,
+            [
+              0,
+              0.802,
+              1
+            ]
+          ],
+          [
+            0.327,
+            [
+              0,
+              0.802,
+              1
+            ]
+          ],
+          [
+            0.329,
+            [
+              0,
+              0.818,
+              1
+            ]
+          ],
+          [
+            0.331,
+            [
+              0,
+              0.818,
+              1
+            ]
+          ],
+          [
+            0.333,
+            [
+              0,
+              0.833,
+              1
+            ]
+          ],
+          [
+            0.335,
+            [
+              0,
+              0.833,
+              1
+            ]
+          ],
+          [
+            0.337,
+            [
+              0,
+              0.849,
+              1
+            ]
+          ],
+          [
+            0.339,
+            [
+              0,
+              0.849,
+              1
+            ]
+          ],
+          [
+            0.341,
+            [
+              0,
+              0.865,
+              0.996
+            ]
+          ],
+          [
+            0.342,
+            [
+              0,
+              0.865,
+              0.996
+            ]
+          ],
+          [
+            0.344,
+            [
+              0,
+              0.88,
+              0.984
+            ]
+          ],
+          [
+            0.346,
+            [
+              0,
+              0.88,
+              0.984
+            ]
+          ],
+          [
+            0.348,
+            [
+              0,
+              0.896,
+              0.971
+            ]
+          ],
+          [
+            0.35,
+            [
+              0,
+              0.896,
+              0.971
+            ]
+          ],
+          [
+            0.352,
+            [
+              0.009,
+              0.912,
+              0.958
+            ]
+          ],
+          [
+            0.354,
+            [
+              0.009,
+              0.912,
+              0.958
+            ]
+          ],
+          [
+            0.356,
+            [
+              0.022,
+              0.927,
+              0.946
+            ]
+          ],
+          [
+            0.358,
+            [
+              0.022,
+              0.927,
+              0.946
+            ]
+          ],
+          [
+            0.36,
+            [
+              0.035,
+              0.943,
+              0.933
+            ]
+          ],
+          [
+            0.362,
+            [
+              0.035,
+              0.943,
+              0.933
+            ]
+          ],
+          [
+            0.364,
+            [
+              0.047,
+              0.959,
+              0.92
+            ]
+          ],
+          [
+            0.366,
+            [
+              0.047,
+              0.959,
+              0.92
+            ]
+          ],
+          [
+            0.368,
+            [
+              0.06,
+              0.975,
+              0.908
+            ]
+          ],
+          [
+            0.37,
+            [
+              0.06,
+              0.975,
+              0.908
+            ]
+          ],
+          [
+            0.372,
+            [
+              0.073,
+              0.99,
+              0.895
+            ]
+          ],
+          [
+            0.374,
+            [
+              0.073,
+              0.99,
+              0.895
+            ]
+          ],
+          [
+            0.376,
+            [
+              0.085,
+              1,
+              0.882
+            ]
+          ],
+          [
+            0.378,
+            [
+              0.085,
+              1,
+              0.882
+            ]
+          ],
+          [
+            0.38,
+            [
+              0.098,
+              1,
+              0.87
+            ]
+          ],
+          [
+            0.382,
+            [
+              0.098,
+              1,
+              0.87
+            ]
+          ],
+          [
+            0.384,
+            [
+              0.111,
+              1,
+              0.857
+            ]
+          ],
+          [
+            0.386,
+            [
+              0.111,
+              1,
+              0.857
+            ]
+          ],
+          [
+            0.387,
+            [
+              0.123,
+              1,
+              0.844
+            ]
+          ],
+          [
+            0.389,
+            [
+              0.123,
+              1,
+              0.844
+            ]
+          ],
+          [
+            0.391,
+            [
+              0.136,
+              1,
+              0.832
+            ]
+          ],
+          [
+            0.393,
+            [
+              0.136,
+              1,
+              0.832
+            ]
+          ],
+          [
+            0.395,
+            [
+              0.149,
+              1,
+              0.819
+            ]
+          ],
+          [
+            0.397,
+            [
+              0.149,
+              1,
+              0.819
+            ]
+          ],
+          [
+            0.399,
+            [
+              0.161,
+              1,
+              0.806
+            ]
+          ],
+          [
+            0.401,
+            [
+              0.161,
+              1,
+              0.806
+            ]
+          ],
+          [
+            0.403,
+            [
+              0.174,
+              1,
+              0.794
+            ]
+          ],
+          [
+            0.405,
+            [
+              0.174,
+              1,
+              0.794
+            ]
+          ],
+          [
+            0.407,
+            [
+              0.187,
+              1,
+              0.781
+            ]
+          ],
+          [
+            0.409,
+            [
+              0.187,
+              1,
+              0.781
+            ]
+          ],
+          [
+            0.411,
+            [
+              0.199,
+              1,
+              0.769
+            ]
+          ],
+          [
+            0.413,
+            [
+              0.199,
+              1,
+              0.769
+            ]
+          ],
+          [
+            0.415,
+            [
+              0.212,
+              1,
+              0.756
+            ]
+          ],
+          [
+            0.417,
+            [
+              0.212,
+              1,
+              0.756
+            ]
+          ],
+          [
+            0.419,
+            [
+              0.225,
+              1,
+              0.743
+            ]
+          ],
+          [
+            0.421,
+            [
+              0.225,
+              1,
+              0.743
+            ]
+          ],
+          [
+            0.423,
+            [
+              0.237,
+              1,
+              0.731
+            ]
+          ],
+          [
+            0.425,
+            [
+              0.237,
+              1,
+              0.731
+            ]
+          ],
+          [
+            0.427,
+            [
+              0.25,
+              1,
+              0.718
+            ]
+          ],
+          [
+            0.429,
+            [
+              0.25,
+              1,
+              0.718
+            ]
+          ],
+          [
+            0.431,
+            [
+              0.262,
+              1,
+              0.705
+            ]
+          ],
+          [
+            0.432,
+            [
+              0.262,
+              1,
+              0.705
+            ]
+          ],
+          [
+            0.434,
+            [
+              0.275,
+              1,
+              0.693
+            ]
+          ],
+          [
+            0.436,
+            [
+              0.275,
+              1,
+              0.693
+            ]
+          ],
+          [
+            0.438,
+            [
+              0.288,
+              1,
+              0.68
+            ]
+          ],
+          [
+            0.44,
+            [
+              0.288,
+              1,
+              0.68
+            ]
+          ],
+          [
+            0.442,
+            [
+              0.3,
+              1,
+              0.667
+            ]
+          ],
+          [
+            0.444,
+            [
+              0.3,
+              1,
+              0.667
+            ]
+          ],
+          [
+            0.446,
+            [
+              0.313,
+              1,
+              0.655
+            ]
+          ],
+          [
+            0.448,
+            [
+              0.313,
+              1,
+              0.655
+            ]
+          ],
+          [
+            0.45,
+            [
+              0.326,
+              1,
+              0.642
+            ]
+          ],
+          [
+            0.452,
+            [
+              0.326,
+              1,
+              0.642
+            ]
+          ],
+          [
+            0.454,
+            [
+              0.338,
+              1,
+              0.629
+            ]
+          ],
+          [
+            0.456,
+            [
+              0.338,
+              1,
+              0.629
+            ]
+          ],
+          [
+            0.458,
+            [
+              0.351,
+              1,
+              0.617
+            ]
+          ],
+          [
+            0.46,
+            [
+              0.351,
+              1,
+              0.617
+            ]
+          ],
+          [
+            0.462,
+            [
+              0.364,
+              1,
+              0.604
+            ]
+          ],
+          [
+            0.464,
+            [
+              0.364,
+              1,
+              0.604
+            ]
+          ],
+          [
+            0.466,
+            [
+              0.376,
+              1,
+              0.591
+            ]
+          ],
+          [
+            0.468,
+            [
+              0.376,
+              1,
+              0.591
+            ]
+          ],
+          [
+            0.47,
+            [
+              0.389,
+              1,
+              0.579
+            ]
+          ],
+          [
+            0.472,
+            [
+              0.389,
+              1,
+              0.579
+            ]
+          ],
+          [
+            0.474,
+            [
+              0.402,
+              1,
+              0.566
+            ]
+          ],
+          [
+            0.476,
+            [
+              0.402,
+              1,
+              0.566
+            ]
+          ],
+          [
+            0.477,
+            [
+              0.414,
+              1,
+              0.553
+            ]
+          ],
+          [
+            0.479,
+            [
+              0.414,
+              1,
+              0.553
+            ]
+          ],
+          [
+            0.481,
+            [
+              0.427,
+              1,
+              0.541
+            ]
+          ],
+          [
+            0.483,
+            [
+              0.427,
+              1,
+              0.541
+            ]
+          ],
+          [
+            0.485,
+            [
+              0.44,
+              1,
+              0.528
+            ]
+          ],
+          [
+            0.487,
+            [
+              0.44,
+              1,
+              0.528
+            ]
+          ],
+          [
+            0.489,
+            [
+              0.452,
+              1,
+              0.515
+            ]
+          ],
+          [
+            0.491,
+            [
+              0.452,
+              1,
+              0.515
+            ]
+          ],
+          [
+            0.493,
+            [
+              0.465,
+              1,
+              0.503
+            ]
+          ],
+          [
+            0.495,
+            [
+              0.465,
+              1,
+              0.503
+            ]
+          ],
+          [
+            0.497,
+            [
+              0.478,
+              1,
+              0.49
+            ]
+          ],
+          [
+            0.499,
+            [
+              0.478,
+              1,
+              0.49
+            ]
+          ],
+          [
+            0.501,
+            [
+              0.49,
+              1,
+              0.478
+            ]
+          ],
+          [
+            0.503,
+            [
+              0.49,
+              1,
+              0.478
+            ]
+          ],
+          [
+            0.505,
+            [
+              0.503,
+              1,
+              0.465
+            ]
+          ],
+          [
+            0.507,
+            [
+              0.503,
+              1,
+              0.465
+            ]
+          ],
+          [
+            0.509,
+            [
+              0.515,
+              1,
+              0.452
+            ]
+          ],
+          [
+            0.511,
+            [
+              0.515,
+              1,
+              0.452
+            ]
+          ],
+          [
+            0.513,
+            [
+              0.528,
+              1,
+              0.44
+            ]
+          ],
+          [
+            0.515,
+            [
+              0.528,
+              1,
+              0.44
+            ]
+          ],
+          [
+            0.517,
+            [
+              0.541,
+              1,
+              0.427
+            ]
+          ],
+          [
+            0.519,
+            [
+              0.541,
+              1,
+              0.427
+            ]
+          ],
+          [
+            0.521,
+            [
+              0.553,
+              1,
+              0.414
+            ]
+          ],
+          [
+            0.523,
+            [
+              0.553,
+              1,
+              0.414
+            ]
+          ],
+          [
+            0.524,
+            [
+              0.566,
+              1,
+              0.402
+            ]
+          ],
+          [
+            0.526,
+            [
+              0.566,
+              1,
+              0.402
+            ]
+          ],
+          [
+            0.528,
+            [
+              0.579,
+              1,
+              0.389
+            ]
+          ],
+          [
+            0.53,
+            [
+              0.579,
+              1,
+              0.389
+            ]
+          ],
+          [
+            0.532,
+            [
+              0.591,
+              1,
+              0.376
+            ]
+          ],
+          [
+            0.534,
+            [
+              0.591,
+              1,
+              0.376
+            ]
+          ],
+          [
+            0.536,
+            [
+              0.604,
+              1,
+              0.364
+            ]
+          ],
+          [
+            0.538,
+            [
+              0.604,
+              1,
+              0.364
+            ]
+          ],
+          [
+            0.54,
+            [
+              0.617,
+              1,
+              0.351
+            ]
+          ],
+          [
+            0.542,
+            [
+              0.617,
+              1,
+              0.351
+            ]
+          ],
+          [
+            0.544,
+            [
+              0.629,
+              1,
+              0.338
+            ]
+          ],
+          [
+            0.546,
+            [
+              0.629,
+              1,
+              0.338
+            ]
+          ],
+          [
+            0.548,
+            [
+              0.642,
+              1,
+              0.326
+            ]
+          ],
+          [
+            0.55,
+            [
+              0.642,
+              1,
+              0.326
+            ]
+          ],
+          [
+            0.552,
+            [
+              0.655,
+              1,
+              0.313
+            ]
+          ],
+          [
+            0.554,
+            [
+              0.655,
+              1,
+              0.313
+            ]
+          ],
+          [
+            0.556,
+            [
+              0.667,
+              1,
+              0.3
+            ]
+          ],
+          [
+            0.558,
+            [
+              0.667,
+              1,
+              0.3
+            ]
+          ],
+          [
+            0.56,
+            [
+              0.68,
+              1,
+              0.288
+            ]
+          ],
+          [
+            0.562,
+            [
+              0.68,
+              1,
+              0.288
+            ]
+          ],
+          [
+            0.564,
+            [
+              0.693,
+              1,
+              0.275
+            ]
+          ],
+          [
+            0.566,
+            [
+              0.693,
+              1,
+              0.275
+            ]
+          ],
+          [
+            0.568,
+            [
+              0.705,
+              1,
+              0.262
+            ]
+          ],
+          [
+            0.569,
+            [
+              0.705,
+              1,
+              0.262
+            ]
+          ],
+          [
+            0.571,
+            [
+              0.718,
+              1,
+              0.25
+            ]
+          ],
+          [
+            0.573,
+            [
+              0.718,
+              1,
+              0.25
+            ]
+          ],
+          [
+            0.575,
+            [
+              0.731,
+              1,
+              0.237
+            ]
+          ],
+          [
+            0.577,
+            [
+              0.731,
+              1,
+              0.237
+            ]
+          ],
+          [
+            0.579,
+            [
+              0.743,
+              1,
+              0.225
+            ]
+          ],
+          [
+            0.581,
+            [
+              0.743,
+              1,
+              0.225
+            ]
+          ],
+          [
+            0.583,
+            [
+              0.756,
+              1,
+              0.212
+            ]
+          ],
+          [
+            0.585,
+            [
+              0.756,
+              1,
+              0.212
+            ]
+          ],
+          [
+            0.587,
+            [
+              0.769,
+              1,
+              0.199
+            ]
+          ],
+          [
+            0.589,
+            [
+              0.769,
+              1,
+              0.199
+            ]
+          ],
+          [
+            0.591,
+            [
+              0.781,
+              1,
+              0.187
+            ]
+          ],
+          [
+            0.593,
+            [
+              0.781,
+              1,
+              0.187
+            ]
+          ],
+          [
+            0.595,
+            [
+              0.794,
+              1,
+              0.174
+            ]
+          ],
+          [
+            0.597,
+            [
+              0.794,
+              1,
+              0.174
+            ]
+          ],
+          [
+            0.599,
+            [
+              0.806,
+              1,
+              0.161
+            ]
+          ],
+          [
+            0.601,
+            [
+              0.806,
+              1,
+              0.161
+            ]
+          ],
+          [
+            0.603,
+            [
+              0.819,
+              1,
+              0.149
+            ]
+          ],
+          [
+            0.605,
+            [
+              0.819,
+              1,
+              0.149
+            ]
+          ],
+          [
+            0.607,
+            [
+              0.832,
+              1,
+              0.136
+            ]
+          ],
+          [
+            0.609,
+            [
+              0.832,
+              1,
+              0.136
+            ]
+          ],
+          [
+            0.611,
+            [
+              0.844,
+              1,
+              0.123
+            ]
+          ],
+          [
+            0.613,
+            [
+              0.844,
+              1,
+              0.123
+            ]
+          ],
+          [
+            0.614,
+            [
+              0.857,
+              1,
+              0.111
+            ]
+          ],
+          [
+            0.616,
+            [
+              0.857,
+              1,
+              0.111
+            ]
+          ],
+          [
+            0.618,
+            [
+              0.87,
+              1,
+              0.098
+            ]
+          ],
+          [
+            0.62,
+            [
+              0.87,
+              1,
+              0.098
+            ]
+          ],
+          [
+            0.622,
+            [
+              0.882,
+              1,
+              0.085
+            ]
+          ],
+          [
+            0.624,
+            [
+              0.882,
+              1,
+              0.085
+            ]
+          ],
+          [
+            0.626,
+            [
+              0.895,
+              1,
+              0.073
+            ]
+          ],
+          [
+            0.628,
+            [
+              0.895,
+              1,
+              0.073
+            ]
+          ],
+          [
+            0.63,
+            [
+              0.908,
+              1,
+              0.06
+            ]
+          ],
+          [
+            0.632,
+            [
+              0.908,
+              1,
+              0.06
+            ]
+          ],
+          [
+            0.634,
+            [
+              0.92,
+              1,
+              0.047
+            ]
+          ],
+          [
+            0.636,
+            [
+              0.92,
+              1,
+              0.047
+            ]
+          ],
+          [
+            0.638,
+            [
+              0.933,
+              1,
+              0.035
+            ]
+          ],
+          [
+            0.64,
+            [
+              0.933,
+              1,
+              0.035
+            ]
+          ],
+          [
+            0.642,
+            [
+              0.946,
+              0.988,
+              0.022
+            ]
+          ],
+          [
+            0.644,
+            [
+              0.946,
+              0.988,
+              0.022
+            ]
+          ],
+          [
+            0.646,
+            [
+              0.958,
+              0.974,
+              0.009
+            ]
+          ],
+          [
+            0.648,
+            [
+              0.958,
+              0.974,
+              0.009
+            ]
+          ],
+          [
+            0.65,
+            [
+              0.971,
+              0.959,
+              0
+            ]
+          ],
+          [
+            0.652,
+            [
+              0.971,
+              0.959,
+              0
+            ]
+          ],
+          [
+            0.654,
+            [
+              0.984,
+              0.945,
+              0
+            ]
+          ],
+          [
+            0.656,
+            [
+              0.984,
+              0.945,
+              0
+            ]
+          ],
+          [
+            0.658,
+            [
+              0.996,
+              0.93,
+              0
+            ]
+          ],
+          [
+            0.659,
+            [
+              0.996,
+              0.93,
+              0
+            ]
+          ],
+          [
+            0.661,
+            [
+              1,
+              0.916,
+              0
+            ]
+          ],
+          [
+            0.663,
+            [
+              1,
+              0.916,
+              0
+            ]
+          ],
+          [
+            0.665,
+            [
+              1,
+              0.901,
+              0
+            ]
+          ],
+          [
+            0.667,
+            [
+              1,
+              0.901,
+              0
+            ]
+          ],
+          [
+            0.669,
+            [
+              1,
+              0.887,
+              0
+            ]
+          ],
+          [
+            0.671,
+            [
+              1,
+              0.887,
+              0
+            ]
+          ],
+          [
+            0.673,
+            [
+              1,
+              0.872,
+              0
+            ]
+          ],
+          [
+            0.675,
+            [
+              1,
+              0.872,
+              0
+            ]
+          ],
+          [
+            0.677,
+            [
+              1,
+              0.858,
+              0
+            ]
+          ],
+          [
+            0.679,
+            [
+              1,
+              0.858,
+              0
+            ]
+          ],
+          [
+            0.681,
+            [
+              1,
+              0.843,
+              0
+            ]
+          ],
+          [
+            0.683,
+            [
+              1,
+              0.843,
+              0
+            ]
+          ],
+          [
+            0.685,
+            [
+              1,
+              0.829,
+              0
+            ]
+          ],
+          [
+            0.687,
+            [
+              1,
+              0.829,
+              0
+            ]
+          ],
+          [
+            0.689,
+            [
+              1,
+              0.814,
+              0
+            ]
+          ],
+          [
+            0.691,
+            [
+              1,
+              0.814,
+              0
+            ]
+          ],
+          [
+            0.693,
+            [
+              1,
+              0.8,
+              0
+            ]
+          ],
+          [
+            0.695,
+            [
+              1,
+              0.8,
+              0
+            ]
+          ],
+          [
+            0.697,
+            [
+              1,
+              0.785,
+              0
+            ]
+          ],
+          [
+            0.699,
+            [
+              1,
+              0.785,
+              0
+            ]
+          ],
+          [
+            0.701,
+            [
+              1,
+              0.771,
+              0
+            ]
+          ],
+          [
+            0.703,
+            [
+              1,
+              0.771,
+              0
+            ]
+          ],
+          [
+            0.705,
+            [
+              1,
+              0.756,
+              0
+            ]
+          ],
+          [
+            0.706,
+            [
+              1,
+              0.756,
+              0
+            ]
+          ],
+          [
+            0.708,
+            [
+              1,
+              0.741,
+              0
+            ]
+          ],
+          [
+            0.71,
+            [
+              1,
+              0.741,
+              0
+            ]
+          ],
+          [
+            0.712,
+            [
+              1,
+              0.727,
+              0
+            ]
+          ],
+          [
+            0.714,
+            [
+              1,
+              0.727,
+              0
+            ]
+          ],
+          [
+            0.716,
+            [
+              1,
+              0.712,
+              0
+            ]
+          ],
+          [
+            0.718,
+            [
+              1,
+              0.712,
+              0
+            ]
+          ],
+          [
+            0.72,
+            [
+              1,
+              0.698,
+              0
+            ]
+          ],
+          [
+            0.722,
+            [
+              1,
+              0.698,
+              0
+            ]
+          ],
+          [
+            0.724,
+            [
+              1,
+              0.683,
+              0
+            ]
+          ],
+          [
+            0.726,
+            [
+              1,
+              0.683,
+              0
+            ]
+          ],
+          [
+            0.728,
+            [
+              1,
+              0.669,
+              0
+            ]
+          ],
+          [
+            0.73,
+            [
+              1,
+              0.669,
+              0
+            ]
+          ],
+          [
+            0.732,
+            [
+              1,
+              0.654,
+              0
+            ]
+          ],
+          [
+            0.734,
+            [
+              1,
+              0.654,
+              0
+            ]
+          ],
+          [
+            0.736,
+            [
+              1,
+              0.64,
+              0
+            ]
+          ],
+          [
+            0.738,
+            [
+              1,
+              0.64,
+              0
+            ]
+          ],
+          [
+            0.74,
+            [
+              1,
+              0.625,
+              0
+            ]
+          ],
+          [
+            0.742,
+            [
+              1,
+              0.625,
+              0
+            ]
+          ],
+          [
+            0.744,
+            [
+              1,
+              0.611,
+              0
+            ]
+          ],
+          [
+            0.746,
+            [
+              1,
+              0.611,
+              0
+            ]
+          ],
+          [
+            0.748,
+            [
+              1,
+              0.596,
+              0
+            ]
+          ],
+          [
+            0.75,
+            [
+              1,
+              0.596,
+              0
+            ]
+          ],
+          [
+            0.751,
+            [
+              1,
+              0.582,
+              0
+            ]
+          ],
+          [
+            0.753,
+            [
+              1,
+              0.582,
+              0
+            ]
+          ],
+          [
+            0.755,
+            [
+              1,
+              0.567,
+              0
+            ]
+          ],
+          [
+            0.757,
+            [
+              1,
+              0.567,
+              0
+            ]
+          ],
+          [
+            0.759,
+            [
+              1,
+              0.553,
+              0
+            ]
+          ],
+          [
+            0.761,
+            [
+              1,
+              0.553,
+              0
+            ]
+          ],
+          [
+            0.763,
+            [
+              1,
+              0.538,
+              0
+            ]
+          ],
+          [
+            0.765,
+            [
+              1,
+              0.538,
+              0
+            ]
+          ],
+          [
+            0.767,
+            [
+              1,
+              0.524,
+              0
+            ]
+          ],
+          [
+            0.769,
+            [
+              1,
+              0.524,
+              0
+            ]
+          ],
+          [
+            0.771,
+            [
+              1,
+              0.509,
+              0
+            ]
+          ],
+          [
+            0.773,
+            [
+              1,
+              0.509,
+              0
+            ]
+          ],
+          [
+            0.775,
+            [
+              1,
+              0.495,
+              0
+            ]
+          ],
+          [
+            0.777,
+            [
+              1,
+              0.495,
+              0
+            ]
+          ],
+          [
+            0.779,
+            [
+              1,
+              0.48,
+              0
+            ]
+          ],
+          [
+            0.781,
+            [
+              1,
+              0.48,
+              0
+            ]
+          ],
+          [
+            0.783,
+            [
+              1,
+              0.466,
+              0
+            ]
+          ],
+          [
+            0.785,
+            [
+              1,
+              0.466,
+              0
+            ]
+          ],
+          [
+            0.787,
+            [
+              1,
+              0.451,
+              0
+            ]
+          ],
+          [
+            0.789,
+            [
+              1,
+              0.451,
+              0
+            ]
+          ],
+          [
+            0.791,
+            [
+              1,
+              0.436,
+              0
+            ]
+          ],
+          [
+            0.793,
+            [
+              1,
+              0.436,
+              0
+            ]
+          ],
+          [
+            0.795,
+            [
+              1,
+              0.422,
+              0
+            ]
+          ],
+          [
+            0.796,
+            [
+              1,
+              0.422,
+              0
+            ]
+          ],
+          [
+            0.798,
+            [
+              1,
+              0.407,
+              0
+            ]
+          ],
+          [
+            0.8,
+            [
+              1,
+              0.407,
+              0
+            ]
+          ],
+          [
+            0.802,
+            [
+              1,
+              0.393,
+              0
+            ]
+          ],
+          [
+            0.804,
+            [
+              1,
+              0.393,
+              0
+            ]
+          ],
+          [
+            0.806,
+            [
+              1,
+              0.378,
+              0
+            ]
+          ],
+          [
+            0.808,
+            [
+              1,
+              0.378,
+              0
+            ]
+          ],
+          [
+            0.81,
+            [
+              1,
+              0.364,
+              0
+            ]
+          ],
+          [
+            0.812,
+            [
+              1,
+              0.364,
+              0
+            ]
+          ],
+          [
+            0.814,
+            [
+              1,
+              0.349,
+              0
+            ]
+          ],
+          [
+            0.816,
+            [
+              1,
+              0.349,
+              0
+            ]
+          ],
+          [
+            0.818,
+            [
+              1,
+              0.335,
+              0
+            ]
+          ],
+          [
+            0.82,
+            [
+              1,
+              0.335,
+              0
+            ]
+          ],
+          [
+            0.822,
+            [
+              1,
+              0.32,
+              0
+            ]
+          ],
+          [
+            0.824,
+            [
+              1,
+              0.32,
+              0
+            ]
+          ],
+          [
+            0.826,
+            [
+              1,
+              0.306,
+              0
+            ]
+          ],
+          [
+            0.828,
+            [
+              1,
+              0.306,
+              0
+            ]
+          ],
+          [
+            0.83,
+            [
+              1,
+              0.291,
+              0
+            ]
+          ],
+          [
+            0.832,
+            [
+              1,
+              0.291,
+              0
+            ]
+          ],
+          [
+            0.834,
+            [
+              1,
+              0.277,
+              0
+            ]
+          ],
+          [
+            0.836,
+            [
+              1,
+              0.277,
+              0
+            ]
+          ],
+          [
+            0.838,
+            [
+              1,
+              0.262,
+              0
+            ]
+          ],
+          [
+            0.84,
+            [
+              1,
+              0.262,
+              0
+            ]
+          ],
+          [
+            0.841,
+            [
+              1,
+              0.248,
+              0
+            ]
+          ],
+          [
+            0.843,
+            [
+              1,
+              0.248,
+              0
+            ]
+          ],
+          [
+            0.845,
+            [
+              1,
+              0.233,
+              0
+            ]
+          ],
+          [
+            0.847,
+            [
+              1,
+              0.233,
+              0
+            ]
+          ],
+          [
+            0.849,
+            [
+              1,
+              0.219,
+              0
+            ]
+          ],
+          [
+            0.851,
+            [
+              1,
+              0.219,
+              0
+            ]
+          ],
+          [
+            0.853,
+            [
+              1,
+              0.204,
+              0
+            ]
+          ],
+          [
+            0.855,
+            [
+              1,
+              0.204,
+              0
+            ]
+          ],
+          [
+            0.857,
+            [
+              1,
+              0.19,
+              0
+            ]
+          ],
+          [
+            0.859,
+            [
+              1,
+              0.19,
+              0
+            ]
+          ],
+          [
+            0.861,
+            [
+              1,
+              0.175,
+              0
+            ]
+          ],
+          [
+            0.863,
+            [
+              1,
+              0.175,
+              0
+            ]
+          ],
+          [
+            0.865,
+            [
+              1,
+              0.16,
+              0
+            ]
+          ],
+          [
+            0.867,
+            [
+              1,
+              0.16,
+              0
+            ]
+          ],
+          [
+            0.869,
+            [
+              1,
+              0.146,
+              0
+            ]
+          ],
+          [
+            0.871,
+            [
+              1,
+              0.146,
+              0
+            ]
+          ],
+          [
+            0.873,
+            [
+              1,
+              0.131,
+              0
+            ]
+          ],
+          [
+            0.875,
+            [
+              1,
+              0.131,
+              0
+            ]
+          ],
+          [
+            0.877,
+            [
+              1,
+              0.117,
+              0
+            ]
+          ],
+          [
+            0.879,
+            [
+              1,
+              0.117,
+              0
+            ]
+          ],
+          [
+            0.881,
+            [
+              1,
+              0.102,
+              0
+            ]
+          ],
+          [
+            0.883,
+            [
+              1,
+              0.102,
+              0
+            ]
+          ],
+          [
+            0.885,
+            [
+              1,
+              0.088,
+              0
+            ]
+          ],
+          [
+            0.886,
+            [
+              1,
+              0.088,
+              0
+            ]
+          ],
+          [
+            0.888,
+            [
+              0.999,
+              0.073,
+              0
+            ]
+          ],
+          [
+            0.89,
+            [
+              0.999,
+              0.073,
+              0
+            ]
+          ],
+          [
+            0.892,
+            [
+              0.981,
+              0.059,
+              0
+            ]
+          ],
+          [
+            0.894,
+            [
+              0.981,
+              0.059,
+              0
+            ]
+          ],
+          [
+            0.896,
+            [
+              0.963,
+              0.044,
+              0
+            ]
+          ],
+          [
+            0.898,
+            [
+              0.963,
+              0.044,
+              0
+            ]
+          ],
+          [
+            0.9,
+            [
+              0.946,
+              0.03,
+              0
+            ]
+          ],
+          [
+            0.902,
+            [
+              0.946,
+              0.03,
+              0
+            ]
+          ],
+          [
+            0.904,
+            [
+              0.928,
+              0.015,
+              0
+            ]
+          ],
+          [
+            0.906,
+            [
+              0.928,
+              0.015,
+              0
+            ]
+          ],
+          [
+            0.908,
+            [
+              0.91,
+              0.001,
+              0
+            ]
+          ],
+          [
+            0.91,
+            [
+              0.91,
+              0.001,
+              0
+            ]
+          ],
+          [
+            0.912,
+            [
+              0.892,
+              0,
+              0
+            ]
+          ],
+          [
+            0.914,
+            [
+              0.892,
+              0,
+              0
+            ]
+          ],
+          [
+            0.916,
+            [
+              0.874,
+              0,
+              0
+            ]
+          ],
+          [
+            0.918,
+            [
+              0.874,
+              0,
+              0
+            ]
+          ],
+          [
+            0.92,
+            [
+              0.857,
+              0,
+              0
+            ]
+          ],
+          [
+            0.922,
+            [
+              0.857,
+              0,
+              0
+            ]
+          ],
+          [
+            0.924,
+            [
+              0.839,
+              0,
+              0
+            ]
+          ],
+          [
+            0.926,
+            [
+              0.839,
+              0,
+              0
+            ]
+          ],
+          [
+            0.928,
+            [
+              0.821,
+              0,
+              0
+            ]
+          ],
+          [
+            0.93,
+            [
+              0.821,
+              0,
+              0
+            ]
+          ],
+          [
+            0.932,
+            [
+              0.803,
+              0,
+              0
+            ]
+          ],
+          [
+            0.933,
+            [
+              0.803,
+              0,
+              0
+            ]
+          ],
+          [
+            0.935,
+            [
+              0.785,
+              0,
+              0
+            ]
+          ],
+          [
+            0.937,
+            [
+              0.785,
+              0,
+              0
+            ]
+          ],
+          [
+            0.939,
+            [
+              0.767,
+              0,
+              0
+            ]
+          ],
+          [
+            0.941,
+            [
+              0.767,
+              0,
+              0
+            ]
+          ],
+          [
+            0.943,
+            [
+              0.75,
+              0,
+              0
+            ]
+          ],
+          [
+            0.945,
+            [
+              0.75,
+              0,
+              0
+            ]
+          ],
+          [
+            0.947,
+            [
+              0.732,
+              0,
+              0
+            ]
+          ],
+          [
+            0.949,
+            [
+              0.732,
+              0,
+              0
+            ]
+          ],
+          [
+            0.951,
+            [
+              0.714,
+              0,
+              0
+            ]
+          ],
+          [
+            0.953,
+            [
+              0.714,
+              0,
+              0
+            ]
+          ],
+          [
+            0.955,
+            [
+              0.696,
+              0,
+              0
+            ]
+          ],
+          [
+            0.957,
+            [
+              0.696,
+              0,
+              0
+            ]
+          ],
+          [
+            0.959,
+            [
+              0.678,
+              0,
+              0
+            ]
+          ],
+          [
+            0.961,
+            [
+              0.678,
+              0,
+              0
+            ]
+          ],
+          [
+            0.963,
+            [
+              0.66,
+              0,
+              0
+            ]
+          ],
+          [
+            0.965,
+            [
+              0.66,
+              0,
+              0
+            ]
+          ],
+          [
+            0.967,
+            [
+              0.643,
+              0,
+              0
+            ]
+          ],
+          [
+            0.969,
+            [
+              0.643,
+              0,
+              0
+            ]
+          ],
+          [
+            0.971,
+            [
+              0.625,
+              0,
+              0
+            ]
+          ],
+          [
+            0.973,
+            [
+              0.625,
+              0,
+              0
+            ]
+          ],
+          [
+            0.975,
+            [
+              0.607,
+              0,
+              0
+            ]
+          ],
+          [
+            0.977,
+            [
+              0.607,
+              0,
+              0
+            ]
+          ],
+          [
+            0.978,
+            [
+              0.589,
+              0,
+              0
+            ]
+          ],
+          [
+            0.98,
+            [
+              0.589,
+              0,
+              0
+            ]
+          ],
+          [
+            0.982,
+            [
+              0.571,
+              0,
+              0
+            ]
+          ],
+          [
+            0.984,
+            [
+              0.571,
+              0,
+              0
+            ]
+          ],
+          [
+            0.986,
+            [
+              0.553,
+              0,
+              0
+            ]
+          ],
+          [
+            0.988,
+            [
+              0.553,
+              0,
+              0
+            ]
+          ],
+          [
+            0.99,
+            [
+              0.536,
+              0,
+              0
+            ]
+          ],
+          [
+            0.992,
+            [
+              0.536,
+              0,
+              0
+            ]
+          ],
+          [
+            0.994,
+            [
+              0.518,
+              0,
+              0
+            ]
+          ],
+          [
+            0.996,
+            [
+              0.518,
+              0,
+              0
+            ]
+          ],
+          [
+            0.998,
+            [
+              0.5,
+              0,
+              0
+            ]
+          ],
+          [
+            1,
+            [
+              0.5,
+              0,
+              0
+            ]
+          ]
+        ]
+      ],
+      "colorMap": 0
+    },
+    "bar": false
+  }
+}
\ No newline at end of file
diff --git a/01_Code/physical_computing_interface/simulation/json/setupFlight.js b/01_Code/physical_computing_interface/simulation/json/setupFlight.js
new file mode 100644
index 0000000000000000000000000000000000000000..c199e26e4659f6d52835e7a2aff35a131f88dbba
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/json/setupFlight.js
@@ -0,0 +1,65 @@
+var setup=
+{
+	nodes: [
+		{
+			id: 'n0', 
+			parent: '11',
+			degrees_of_freedom:[0,1,2,3,4,5] ,
+			restrained_degrees_of_freedom:[true,true,true,true,true,true],
+			position: { x: 0, y: 0,z:0 },
+			currPosition:new THREE.Vector3(0,0,0),
+			force:{ x: 0, y: 10,z:0 },
+			displacement: { x: 0, y: 0,z:0 },
+			angle: { x: 0, y: 0,z:0 },
+			orient: new THREE.Quaternion(),
+			linMom:new THREE.Vector3(0,0,0),
+			angMom:new THREE.Vector3(0,0,0),
+			intForce:new THREE.Vector3(0,0,0),
+			intMoment:new THREE.Vector3(0,0,0),
+            moment:{ x: 0, y: 0,z:0 },
+            velocity:new THREE.Vector3(0,0,0),
+			
+		},
+	],
+	
+	edges: [
+        // { 
+        //     id: 'e0', source: 0, target: 1 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0,
+        //     currentRestLength:0,
+        //     axis:Y_AXIS,
+        //     pos2: new THREE.Vector3(0,0,0),
+        //     angle1v: new THREE.Vector3(0,0,0),
+        //     angle2v: new THREE.Vector3(0,0,0),
+        //     angle1:new THREE.Quaternion(),
+        //     angle2:new THREE.Quaternion(),
+        //     currentTransverseArea:0,
+        //     currentTransverseStrainSum:0
+
+		// },
+        
+	],
+
+	//material properties - AISI 1095 Carbon Steel (Spring Steel)
+	ndofs   : 3*6,
+
+	animation :  {
+	
+		showDisplacement : true,
+		exageration : 10,
+		speed:3.0
+		
+	},
+
+	viz :  {
+	
+		
+		minStress:-500,
+		maxStress: 500,
+		colorMaps:[YlGnBu, winter, coolwarm,jet],
+		colorMap:0,
+		
+	},
+
+	bar:false
+	
+};
\ No newline at end of file
diff --git a/01_Code/physical_computing_interface/simulation/json/setupScaling.json b/01_Code/physical_computing_interface/simulation/json/setupScaling.json
new file mode 100644
index 0000000000000000000000000000000000000000..ae5b40dff451847e0b4db8760a0264cc7893f241
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/json/setupScaling.json
@@ -0,0 +1,37826 @@
+{
+  "setup": {
+    "nodes": [
+      {
+        "id": "n0",
+        "parent": "11",
+        "degrees_of_freedom": [
+          0,
+          1,
+          2,
+          3,
+          4,
+          5
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 5,
+          "y": -5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n1",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6,
+          7,
+          8,
+          9,
+          10,
+          11
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 0,
+          "y": -5,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n2",
+        "parent": "11",
+        "degrees_of_freedom": [
+          12,
+          13,
+          14,
+          15,
+          16,
+          17
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -5,
+          "y": -5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n3",
+        "parent": "11",
+        "degrees_of_freedom": [
+          18,
+          19,
+          20,
+          21,
+          22,
+          23
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 0,
+          "y": -5,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n4",
+        "parent": "11",
+        "degrees_of_freedom": [
+          24,
+          25,
+          26,
+          27,
+          28,
+          29
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008205257007863758,
+          "y": -0.00028794773410591943,
+          "z": -0.00008823168988912126
+        },
+        "angle": {
+          "x": -0.000005840751456558866,
+          "y": -3.4991775892099054e-7,
+          "z": 0.000001859132341393773
+        }
+      },
+      {
+        "id": "n5",
+        "parent": "11",
+        "degrees_of_freedom": [
+          30,
+          31,
+          32,
+          33,
+          34,
+          35
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 0,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003418000401508338,
+          "y": -0.00015500185230879723,
+          "z": -0.00008727593552701169
+        },
+        "angle": {
+          "x": -0.00001364278767889116,
+          "y": -8.318301850599637e-7,
+          "z": 0.000006418486542579446
+        }
+      },
+      {
+        "id": "n6",
+        "parent": "11",
+        "degrees_of_freedom": [
+          36,
+          37,
+          38,
+          39,
+          40,
+          41
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 0,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003486407759695759,
+          "y": -0.0001297992224526492,
+          "z": -0.000027729741595737566
+        },
+        "angle": {
+          "x": -0.000009020995204898392,
+          "y": -1.0789018528087246e-7,
+          "z": 0.000005932310128387122
+        }
+      },
+      {
+        "id": "n7",
+        "parent": "11",
+        "degrees_of_freedom": [
+          42,
+          43,
+          44,
+          45,
+          46,
+          47
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00013125465725385204,
+          "y": -0.0003325663733476859,
+          "z": -0.00010412108453770907
+        },
+        "angle": {
+          "x": -0.000007444428293583669,
+          "y": 6.87855269737807e-7,
+          "z": 0.000002245246841460526
+        }
+      },
+      {
+        "id": "n8",
+        "parent": "11",
+        "degrees_of_freedom": [
+          48,
+          49,
+          50,
+          51,
+          52,
+          53
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 5,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00012160073814526837,
+          "y": -0.00032867507742509054,
+          "z": -0.0001092343423033868
+        },
+        "angle": {
+          "x": -0.000005191621664452755,
+          "y": -0.0000022274744704041056,
+          "z": 0.0000049459595867660645
+        }
+      },
+      {
+        "id": "n9",
+        "parent": "11",
+        "degrees_of_freedom": [
+          54,
+          55,
+          56,
+          57,
+          58,
+          59
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 5,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001111856419462881,
+          "y": -0.00029175719115308345,
+          "z": -0.00006875511290007724
+        },
+        "angle": {
+          "x": -0.00000399907031631663,
+          "y": -9.26913075792901e-7,
+          "z": 0.000003696685363435199
+        }
+      },
+      {
+        "id": "n10",
+        "parent": "11",
+        "degrees_of_freedom": [
+          60,
+          61,
+          62,
+          63,
+          64,
+          65
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 0,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00014111777771570166,
+          "y": -0.00021478181674035136,
+          "z": -0.00011711714246285581
+        },
+        "angle": {
+          "x": -0.00001833798202284862,
+          "y": -0.000005128087096320026,
+          "z": 0.000012409488069825712
+        }
+      },
+      {
+        "id": "n11",
+        "parent": "11",
+        "degrees_of_freedom": [
+          66,
+          67,
+          68,
+          69,
+          70,
+          71
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 0,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011892558075504496,
+          "y": -0.00016233497139187415,
+          "z": -0.00002939590886955851
+        },
+        "angle": {
+          "x": -0.000010269697898095962,
+          "y": 8.600196334893735e-7,
+          "z": 0.000009094411880164352
+        }
+      },
+      {
+        "id": "n12",
+        "parent": "11",
+        "degrees_of_freedom": [
+          72,
+          73,
+          74,
+          75,
+          76,
+          77
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 5,
+          "y": -5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n13",
+        "parent": "11",
+        "degrees_of_freedom": [
+          78,
+          79,
+          80,
+          81,
+          82,
+          83
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -5,
+          "y": -5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n14",
+        "parent": "11",
+        "degrees_of_freedom": [
+          84,
+          85,
+          86,
+          87,
+          88,
+          89
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 0,
+          "y": -5,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n15",
+        "parent": "11",
+        "degrees_of_freedom": [
+          90,
+          91,
+          92,
+          93,
+          94,
+          95
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007747328359226291,
+          "y": -0.0002685675813799731,
+          "z": -0.000039326259891428496
+        },
+        "angle": {
+          "x": -0.000002385059906938731,
+          "y": 1.992628344267765e-7,
+          "z": 0.0000015565843291629355
+        }
+      },
+      {
+        "id": "n16",
+        "parent": "11",
+        "degrees_of_freedom": [
+          96,
+          97,
+          98,
+          99,
+          100,
+          101
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 0,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000033069506623790315,
+          "y": -0.0001264253493308692,
+          "z": -0.000008904664495634693
+        },
+        "angle": {
+          "x": -0.000002714771361459645,
+          "y": 7.063062370646476e-8,
+          "z": 0.000005565359636019311
+        }
+      },
+      {
+        "id": "n17",
+        "parent": "11",
+        "degrees_of_freedom": [
+          102,
+          103,
+          104,
+          105,
+          106,
+          107
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011529307898400247,
+          "y": -0.00030002484322960867,
+          "z": -0.00003978943950214754
+        },
+        "angle": {
+          "x": -0.0000036088835025601835,
+          "y": 0.0000016467054210120653,
+          "z": 0.0000025983912384540145
+        }
+      },
+      {
+        "id": "n18",
+        "parent": "11",
+        "degrees_of_freedom": [
+          108,
+          109,
+          110,
+          111,
+          112,
+          113
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 5,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00010356532824277346,
+          "y": -0.00028201686247848593,
+          "z": -0.00001951965010833282
+        },
+        "angle": {
+          "x": -9.061811101170063e-7,
+          "y": -7.226371531246605e-8,
+          "z": 0.000003201869774711499
+        }
+      },
+      {
+        "id": "n19",
+        "parent": "11",
+        "degrees_of_freedom": [
+          114,
+          115,
+          116,
+          117,
+          118,
+          119
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 0,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011238967752822082,
+          "y": -0.00015626571700273764,
+          "z": -0.000008725807768663585
+        },
+        "angle": {
+          "x": -0.0000026896820420939988,
+          "y": 8.862734676532331e-9,
+          "z": 0.000008307538571132748
+        }
+      },
+      {
+        "id": "n20",
+        "parent": "11",
+        "degrees_of_freedom": [
+          120,
+          121,
+          122,
+          123,
+          124,
+          125
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 5,
+          "y": -5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n21",
+        "parent": "11",
+        "degrees_of_freedom": [
+          126,
+          127,
+          128,
+          129,
+          130,
+          131
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -5,
+          "y": -5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n22",
+        "parent": "11",
+        "degrees_of_freedom": [
+          132,
+          133,
+          134,
+          135,
+          136,
+          137
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 0,
+          "y": -5,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n23",
+        "parent": "11",
+        "degrees_of_freedom": [
+          138,
+          139,
+          140,
+          141,
+          142,
+          143
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007393398904637748,
+          "y": -0.00026590749115153114,
+          "z": -3.01297560318607e-19
+        },
+        "angle": {
+          "x": -2.807445389073908e-20,
+          "y": -2.244234476450761e-20,
+          "z": 0.0000014810659436388197
+        }
+      },
+      {
+        "id": "n24",
+        "parent": "11",
+        "degrees_of_freedom": [
+          144,
+          145,
+          146,
+          147,
+          148,
+          149
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 0,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003306950662379043,
+          "y": -0.00012642534933086913,
+          "z": 0.00000890466449563429
+        },
+        "angle": {
+          "x": 0.0000027147713614595527,
+          "y": -7.063062370646952e-8,
+          "z": 0.000005565359636019334
+        }
+      },
+      {
+        "id": "n25",
+        "parent": "11",
+        "degrees_of_freedom": [
+          150,
+          151,
+          152,
+          153,
+          154,
+          155
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011381592956519392,
+          "y": -0.0002962464066205737,
+          "z": -2.923520729991998e-19
+        },
+        "angle": {
+          "x": 1.1762156275223358e-20,
+          "y": -4.52037518683331e-20,
+          "z": 0.0000026425976945234352
+        }
+      },
+      {
+        "id": "n26",
+        "parent": "11",
+        "degrees_of_freedom": [
+          156,
+          157,
+          158,
+          159,
+          160,
+          161
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 5,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00010356532824277381,
+          "y": -0.00028201686247848577,
+          "z": 0.00001951965010833221
+        },
+        "angle": {
+          "x": 9.061811101170516e-7,
+          "y": 7.226371531247085e-8,
+          "z": 0.0000032018697747115196
+        }
+      },
+      {
+        "id": "n27",
+        "parent": "11",
+        "degrees_of_freedom": [
+          162,
+          163,
+          164,
+          165,
+          166,
+          167
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 0,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000112389677528221,
+          "y": -0.00015626571700273783,
+          "z": 0.000008725807768663134
+        },
+        "angle": {
+          "x": 0.000002689682042093912,
+          "y": -8.862734676560171e-9,
+          "z": 0.000008307538571132771
+        }
+      },
+      {
+        "id": "n28",
+        "parent": "11",
+        "degrees_of_freedom": [
+          168,
+          169,
+          170,
+          171,
+          172,
+          173
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 5,
+          "y": -5,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n29",
+        "parent": "11",
+        "degrees_of_freedom": [
+          174,
+          175,
+          176,
+          177,
+          178,
+          179
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -5,
+          "y": -5,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n30",
+        "parent": "11",
+        "degrees_of_freedom": [
+          180,
+          181,
+          182,
+          183,
+          184,
+          185
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 0,
+          "y": -5,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n31",
+        "parent": "11",
+        "degrees_of_freedom": [
+          186,
+          187,
+          188,
+          189,
+          190,
+          191
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 5,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007747328359226326,
+          "y": -0.0002685675813799737,
+          "z": 0.00003932625989142777
+        },
+        "angle": {
+          "x": 0.0000023850599069388313,
+          "y": -1.9926283442681136e-7,
+          "z": 0.0000015565843291629573
+        }
+      },
+      {
+        "id": "n32",
+        "parent": "11",
+        "degrees_of_freedom": [
+          192,
+          193,
+          194,
+          195,
+          196,
+          197
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 0,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000034864077596957726,
+          "y": -0.00012979922245264958,
+          "z": 0.00002772974159573717
+        },
+        "angle": {
+          "x": 0.000009020995204898295,
+          "y": 1.0789018528086878e-7,
+          "z": 0.0000059323101283871595
+        }
+      },
+      {
+        "id": "n33",
+        "parent": "11",
+        "degrees_of_freedom": [
+          198,
+          199,
+          200,
+          201,
+          202,
+          203
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 5,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011529307898400291,
+          "y": -0.0003000248432296096,
+          "z": 0.00003978943950214678
+        },
+        "angle": {
+          "x": 0.000003608883502560242,
+          "y": -0.0000016467054210120983,
+          "z": 0.0000025983912384540204
+        }
+      },
+      {
+        "id": "n34",
+        "parent": "11",
+        "degrees_of_freedom": [
+          204,
+          205,
+          206,
+          207,
+          208,
+          209
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 5,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011118564194628866,
+          "y": -0.0002917571911530847,
+          "z": 0.0000687551129000765
+        },
+        "angle": {
+          "x": 0.0000039990703163166004,
+          "y": 9.269130757928984e-7,
+          "z": 0.0000036966853634352035
+        }
+      },
+      {
+        "id": "n35",
+        "parent": "11",
+        "degrees_of_freedom": [
+          210,
+          211,
+          212,
+          213,
+          214,
+          215
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 0,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011892558075504551,
+          "y": -0.00016233497139187466,
+          "z": 0.000029395908869558138
+        },
+        "angle": {
+          "x": 0.000010269697898095864,
+          "y": -8.600196334893759e-7,
+          "z": 0.00000909441188016439
+        }
+      },
+      {
+        "id": "n36",
+        "parent": "11",
+        "degrees_of_freedom": [
+          216,
+          217,
+          218,
+          219,
+          220,
+          221
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 5,
+          "y": -5,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n37",
+        "parent": "11",
+        "degrees_of_freedom": [
+          222,
+          223,
+          224,
+          225,
+          226,
+          227
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -5,
+          "y": -5,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n38",
+        "parent": "11",
+        "degrees_of_freedom": [
+          228,
+          229,
+          230,
+          231,
+          232,
+          233
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 0,
+          "y": -5,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n39",
+        "parent": "11",
+        "degrees_of_freedom": [
+          234,
+          235,
+          236,
+          237,
+          238,
+          239
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 5,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008205257007863806,
+          "y": -0.0002879477341059203,
+          "z": 0.00008823168988912067
+        },
+        "angle": {
+          "x": 0.000005840751456558792,
+          "y": 3.499177589209918e-7,
+          "z": 0.0000018591323413937865
+        }
+      },
+      {
+        "id": "n40",
+        "parent": "11",
+        "degrees_of_freedom": [
+          240,
+          241,
+          242,
+          243,
+          244,
+          245
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 0,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003418000401508367,
+          "y": -0.00015500185230879766,
+          "z": 0.00008727593552701162
+        },
+        "angle": {
+          "x": 0.000013642787678891092,
+          "y": 8.318301850599514e-7,
+          "z": 0.000006418486542579474
+        }
+      },
+      {
+        "id": "n41",
+        "parent": "11",
+        "degrees_of_freedom": [
+          246,
+          247,
+          248,
+          249,
+          250,
+          251
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 5,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001312546572538525,
+          "y": -0.00033256637334768693,
+          "z": 0.0001041210845377083
+        },
+        "angle": {
+          "x": 0.0000074444282935835924,
+          "y": -6.878552697378077e-7,
+          "z": 0.00000224524684146052
+        }
+      },
+      {
+        "id": "n42",
+        "parent": "11",
+        "degrees_of_freedom": [
+          252,
+          253,
+          254,
+          255,
+          256,
+          257
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 5,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00012160073814526876,
+          "y": -0.00032867507742509157,
+          "z": 0.00010923434230338612
+        },
+        "angle": {
+          "x": 0.000005191621664452658,
+          "y": 0.000002227474470404092,
+          "z": 0.000004945959586766085
+        }
+      },
+      {
+        "id": "n43",
+        "parent": "11",
+        "degrees_of_freedom": [
+          258,
+          259,
+          260,
+          261,
+          262,
+          263
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 0,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001411177777157022,
+          "y": -0.0002147818167403518,
+          "z": 0.00011711714246285568
+        },
+        "angle": {
+          "x": 0.000018337982022848528,
+          "y": 0.000005128087096320031,
+          "z": 0.00001240948806982576
+        }
+      },
+      {
+        "id": "n44",
+        "parent": "11",
+        "degrees_of_freedom": [
+          264,
+          265,
+          266,
+          267,
+          268,
+          269
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 15,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00012202429034742255,
+          "y": -0.0005955408165745366,
+          "z": -0.00012554653436312266
+        },
+        "angle": {
+          "x": -0.0000027740514759974623,
+          "y": -4.816901619645821e-7,
+          "z": 7.820775344678751e-7
+        }
+      },
+      {
+        "id": "n45",
+        "parent": "11",
+        "degrees_of_freedom": [
+          270,
+          271,
+          272,
+          273,
+          274,
+          275
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 10,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00010528475990560089,
+          "y": -0.00045628438109424497,
+          "z": -0.0001617025910058657
+        },
+        "angle": {
+          "x": -0.000004275923286031565,
+          "y": -0.00000138228976840466,
+          "z": 0.0000033760776438337575
+        }
+      },
+      {
+        "id": "n46",
+        "parent": "11",
+        "degrees_of_freedom": [
+          276,
+          277,
+          278,
+          279,
+          280,
+          281
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 10,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00010006683423972193,
+          "y": -0.0004299061013193987,
+          "z": -0.00008065713388380003
+        },
+        "angle": {
+          "x": -0.0000038110561990320063,
+          "y": -3.834317139396896e-7,
+          "z": 0.0000029611878478729786
+        }
+      },
+      {
+        "id": "n47",
+        "parent": "11",
+        "degrees_of_freedom": [
+          282,
+          283,
+          284,
+          285,
+          286,
+          287
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 15,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00017640666032548577,
+          "y": -0.0006229774592153826,
+          "z": -0.00014364379549507776
+        },
+        "angle": {
+          "x": -0.0000032039695025010194,
+          "y": -8.013815068961581e-7,
+          "z": 0.000001065174696838168
+        }
+      },
+      {
+        "id": "n48",
+        "parent": "11",
+        "degrees_of_freedom": [
+          288,
+          289,
+          290,
+          291,
+          292,
+          293
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 15,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001686055529297862,
+          "y": -0.0006193653168520976,
+          "z": -0.00014664817389030947
+        },
+        "angle": {
+          "x": -0.00000193859159339982,
+          "y": -0.0000015576655686546686,
+          "z": 0.0000025364469836090995
+        }
+      },
+      {
+        "id": "n49",
+        "parent": "11",
+        "degrees_of_freedom": [
+          294,
+          295,
+          296,
+          297,
+          298,
+          299
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 15,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00015888927232290815,
+          "y": -0.0005988538721147272,
+          "z": -0.00010099707603669671
+        },
+        "angle": {
+          "x": -0.0000015034883181778228,
+          "y": -0.000001278326363311665,
+          "z": 0.00000222091404817911
+        }
+      },
+      {
+        "id": "n50",
+        "parent": "11",
+        "degrees_of_freedom": [
+          300,
+          301,
+          302,
+          303,
+          304,
+          305
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 10,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00022090326815513915,
+          "y": -0.0004960842300802111,
+          "z": -0.00018717650230455258
+        },
+        "angle": {
+          "x": -0.000004837611695984953,
+          "y": -0.0000041539775345243816,
+          "z": 0.000003668502227719859
+        }
+      },
+      {
+        "id": "n51",
+        "parent": "11",
+        "degrees_of_freedom": [
+          306,
+          307,
+          308,
+          309,
+          310,
+          311
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 10,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00020774730443164953,
+          "y": -0.0004634644145101029,
+          "z": -0.00009106326411607891
+        },
+        "angle": {
+          "x": -0.000004395746373741507,
+          "y": 7.213299037102366e-7,
+          "z": 0.0000032741742743069296
+        }
+      },
+      {
+        "id": "n52",
+        "parent": "11",
+        "degrees_of_freedom": [
+          312,
+          313,
+          314,
+          315,
+          316,
+          317
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 15,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001159031476143967,
+          "y": -0.0005797237546003277,
+          "z": -0.00006215172760603207
+        },
+        "angle": {
+          "x": -0.0000015508764566871114,
+          "y": 3.2162757846685926e-7,
+          "z": 7.794028355687937e-7
+        }
+      },
+      {
+        "id": "n53",
+        "parent": "11",
+        "degrees_of_freedom": [
+          318,
+          319,
+          320,
+          321,
+          322,
+          323
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 10,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00009374634267112445,
+          "y": -0.00041953849723029763,
+          "z": -0.000025259826442539153
+        },
+        "angle": {
+          "x": -0.000001457428156678837,
+          "y": 1.231460090728485e-7,
+          "z": 0.000002800471464947473
+        }
+      },
+      {
+        "id": "n54",
+        "parent": "11",
+        "degrees_of_freedom": [
+          324,
+          325,
+          326,
+          327,
+          328,
+          329
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 15,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00015786021363112585,
+          "y": -0.0006045953601215181,
+          "z": -0.00006595984389321468
+        },
+        "angle": {
+          "x": -0.0000018807539905082427,
+          "y": 0.0000014163055829588055,
+          "z": 0.0000010350756750412937
+        }
+      },
+      {
+        "id": "n55",
+        "parent": "11",
+        "degrees_of_freedom": [
+          330,
+          331,
+          332,
+          333,
+          334,
+          335
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 15,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00014866847521380572,
+          "y": -0.000587662126198273,
+          "z": -0.00003191505108943056
+        },
+        "angle": {
+          "x": -6.521071250333701e-7,
+          "y": -2.3112703260603499e-7,
+          "z": 0.000002046075985379318
+        }
+      },
+      {
+        "id": "n56",
+        "parent": "11",
+        "degrees_of_freedom": [
+          336,
+          337,
+          338,
+          339,
+          340,
+          341
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 10,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00019716633332846647,
+          "y": -0.0004477822134165714,
+          "z": -0.000026363986581689958
+        },
+        "angle": {
+          "x": -0.0000016290839493116223,
+          "y": -2.379968234758159e-8,
+          "z": 0.000002806287272752495
+        }
+      },
+      {
+        "id": "n57",
+        "parent": "11",
+        "degrees_of_freedom": [
+          342,
+          343,
+          344,
+          345,
+          346,
+          347
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 15,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001114154859886675,
+          "y": -0.000574181982134475,
+          "z": -3.7176945381547914e-19
+        },
+        "angle": {
+          "x": -3.1573324611249414e-20,
+          "y": -4.7110506303626065e-20,
+          "z": 7.440083687513436e-7
+        }
+      },
+      {
+        "id": "n58",
+        "parent": "11",
+        "degrees_of_freedom": [
+          348,
+          349,
+          350,
+          351,
+          352,
+          353
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 10,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00009374634267112481,
+          "y": -0.0004195384972302976,
+          "z": 0.00002525982644253844
+        },
+        "angle": {
+          "x": 0.0000014574281566788045,
+          "y": -1.2314600907286084e-7,
+          "z": 0.000002800471464947501
+        }
+      },
+      {
+        "id": "n59",
+        "parent": "11",
+        "degrees_of_freedom": [
+          354,
+          355,
+          356,
+          357,
+          358,
+          359
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 15,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00015393090364399076,
+          "y": -0.0005973785095737041,
+          "z": -2.878918684472943e-19
+        },
+        "angle": {
+          "x": -3.625891718024676e-20,
+          "y": -7.212715359580213e-21,
+          "z": 0.000001016950851271609
+        }
+      },
+      {
+        "id": "n60",
+        "parent": "11",
+        "degrees_of_freedom": [
+          360,
+          361,
+          362,
+          363,
+          364,
+          365
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 15,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00014866847521380604,
+          "y": -0.000587662126198273,
+          "z": 0.00003191505108942977
+        },
+        "angle": {
+          "x": 6.521071250333623e-7,
+          "y": 2.311270326060566e-7,
+          "z": 0.0000020460759853792626
+        }
+      },
+      {
+        "id": "n61",
+        "parent": "11",
+        "degrees_of_freedom": [
+          366,
+          367,
+          368,
+          369,
+          370,
+          371
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 10,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00019716633332846718,
+          "y": -0.00044778221341657134,
+          "z": 0.00002636398658168947
+        },
+        "angle": {
+          "x": 0.0000016290839493115822,
+          "y": 2.3799682347561202e-8,
+          "z": 0.0000028062872727524826
+        }
+      },
+      {
+        "id": "n62",
+        "parent": "11",
+        "degrees_of_freedom": [
+          372,
+          373,
+          374,
+          375,
+          376,
+          377
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 15,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011590314761439756,
+          "y": -0.0005797237546003286,
+          "z": 0.00006215172760603104
+        },
+        "angle": {
+          "x": 0.000001550876456687245,
+          "y": -3.216275784669032e-7,
+          "z": 7.794028355687957e-7
+        }
+      },
+      {
+        "id": "n63",
+        "parent": "11",
+        "degrees_of_freedom": [
+          378,
+          379,
+          380,
+          381,
+          382,
+          383
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 10,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00010006683423972294,
+          "y": -0.0004299061013194006,
+          "z": 0.00008065713388379896
+        },
+        "angle": {
+          "x": 0.000003811056199031918,
+          "y": 3.8343171393966437e-7,
+          "z": 0.0000029611878478730095
+        }
+      },
+      {
+        "id": "n64",
+        "parent": "11",
+        "degrees_of_freedom": [
+          384,
+          385,
+          386,
+          387,
+          388,
+          389
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 15,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00015786021363112647,
+          "y": -0.0006045953601215181,
+          "z": 0.00006595984389321385
+        },
+        "angle": {
+          "x": 0.0000018807539905083634,
+          "y": -0.0000014163055829588091,
+          "z": 0.0000010350756750412003
+        }
+      },
+      {
+        "id": "n65",
+        "parent": "11",
+        "degrees_of_freedom": [
+          390,
+          391,
+          392,
+          393,
+          394,
+          395
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 15,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000158889272322909,
+          "y": -0.0005988538721147283,
+          "z": 0.00010099707603669541
+        },
+        "angle": {
+          "x": 0.0000015034883181778005,
+          "y": 0.0000012783263633117015,
+          "z": 0.0000022209140481790593
+        }
+      },
+      {
+        "id": "n66",
+        "parent": "11",
+        "degrees_of_freedom": [
+          396,
+          397,
+          398,
+          399,
+          400,
+          401
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 10,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00020774730443165026,
+          "y": -0.000463464414510104,
+          "z": 0.00009106326411607788
+        },
+        "angle": {
+          "x": 0.000004395746373741457,
+          "y": -7.213299037102291e-7,
+          "z": 0.0000032741742743069673
+        }
+      },
+      {
+        "id": "n67",
+        "parent": "11",
+        "degrees_of_freedom": [
+          402,
+          403,
+          404,
+          405,
+          406,
+          407
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 15,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00012202429034742377,
+          "y": -0.0005955408165745377,
+          "z": 0.00012554653436312095
+        },
+        "angle": {
+          "x": 0.000002774051475997288,
+          "y": 4.816901619645474e-7,
+          "z": 7.82077534467885e-7
+        }
+      },
+      {
+        "id": "n68",
+        "parent": "11",
+        "degrees_of_freedom": [
+          408,
+          409,
+          410,
+          411,
+          412,
+          413
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 10,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00010528475990560142,
+          "y": -0.00045628438109424584,
+          "z": 0.0001617025910058645
+        },
+        "angle": {
+          "x": 0.00000427592328603145,
+          "y": 0.0000013822897684046607,
+          "z": 0.000003376077643833832
+        }
+      },
+      {
+        "id": "n69",
+        "parent": "11",
+        "degrees_of_freedom": [
+          414,
+          415,
+          416,
+          417,
+          418,
+          419
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 15,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00017640666032548666,
+          "y": -0.0006229774592153835,
+          "z": 0.00014364379549507622
+        },
+        "angle": {
+          "x": 0.0000032039695025010728,
+          "y": 8.013815068961589e-7,
+          "z": 0.0000010651746968381161
+        }
+      },
+      {
+        "id": "n70",
+        "parent": "11",
+        "degrees_of_freedom": [
+          420,
+          421,
+          422,
+          423,
+          424,
+          425
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 15,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001686055529297872,
+          "y": -0.0006193653168520992,
+          "z": 0.00014664817389030765
+        },
+        "angle": {
+          "x": 0.0000019385915933997113,
+          "y": 0.0000015576655686546715,
+          "z": 0.0000025364469836091694
+        }
+      },
+      {
+        "id": "n71",
+        "parent": "11",
+        "degrees_of_freedom": [
+          426,
+          427,
+          428,
+          429,
+          430,
+          431
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 10,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00022090326815514004,
+          "y": -0.0004960842300802124,
+          "z": 0.00018717650230455122
+        },
+        "angle": {
+          "x": 0.000004837611695984864,
+          "y": 0.000004153977534524317,
+          "z": 0.000003668502227719873
+        }
+      },
+      {
+        "id": "n72",
+        "parent": "11",
+        "degrees_of_freedom": [
+          432,
+          433,
+          434,
+          435,
+          436,
+          437
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 25,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00013051011138086362,
+          "y": -0.000904149878043637,
+          "z": -0.00013168566591480432
+        },
+        "angle": {
+          "x": -4.635540103216525e-7,
+          "y": -7.62242760375144e-7,
+          "z": 5.523889028569333e-8
+        }
+      },
+      {
+        "id": "n73",
+        "parent": "11",
+        "degrees_of_freedom": [
+          438,
+          439,
+          440,
+          441,
+          442,
+          443
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 20,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00012832036395449422,
+          "y": -0.0007551850582302714,
+          "z": -0.00018224962406495853
+        },
+        "angle": {
+          "x": -5.838825233981338e-7,
+          "y": -0.0000018623306222469322,
+          "z": 9.565935551959167e-7
+        }
+      },
+      {
+        "id": "n74",
+        "parent": "11",
+        "degrees_of_freedom": [
+          444,
+          445,
+          446,
+          447,
+          448,
+          449
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 20,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001243054546493711,
+          "y": -0.0007435804141828677,
+          "z": -0.0000985786310878309
+        },
+        "angle": {
+          "x": -7.035865991617065e-7,
+          "y": -4.4091726739587275e-7,
+          "z": 8.926364118093831e-7
+        }
+      },
+      {
+        "id": "n75",
+        "parent": "11",
+        "degrees_of_freedom": [
+          450,
+          451,
+          452,
+          453,
+          454,
+          455
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 25,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00018722151689142745,
+          "y": -0.000916704016496113,
+          "z": -0.0001509689424428726
+        },
+        "angle": {
+          "x": -3.5480518547597904e-7,
+          "y": -8.950218572635585e-7,
+          "z": 3.8753774832365105e-7
+        }
+      },
+      {
+        "id": "n76",
+        "parent": "11",
+        "degrees_of_freedom": [
+          456,
+          457,
+          458,
+          459,
+          460,
+          461
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 25,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000178341386703445,
+          "y": -0.0009129637630085545,
+          "z": -0.00015388042233328988
+        },
+        "angle": {
+          "x": -3.1517504895203293e-7,
+          "y": -0.000001814189006923291,
+          "z": 8.232431266607672e-7
+        }
+      },
+      {
+        "id": "n77",
+        "parent": "11",
+        "degrees_of_freedom": [
+          462,
+          463,
+          464,
+          465,
+          466,
+          467
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 25,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00016964050651717316,
+          "y": -0.0009077539508661511,
+          "z": -0.00010647884065372992
+        },
+        "angle": {
+          "x": 1.7348833013593458e-7,
+          "y": -0.000001245054875716651,
+          "z": 9.748086443097936e-7
+        }
+      },
+      {
+        "id": "n78",
+        "parent": "11",
+        "degrees_of_freedom": [
+          468,
+          469,
+          470,
+          471,
+          472,
+          473
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 20,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00024906208967443653,
+          "y": -0.0007724354661767537,
+          "z": -0.00021005618995629334
+        },
+        "angle": {
+          "x": -5.919070498097901e-7,
+          "y": -0.0000043726054116957254,
+          "z": 6.335674905152001e-7
+        }
+      },
+      {
+        "id": "n79",
+        "parent": "11",
+        "degrees_of_freedom": [
+          474,
+          475,
+          476,
+          477,
+          478,
+          479
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 20,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00023652279013474756,
+          "y": -0.0007617051974813338,
+          "z": -0.00010972290147606295
+        },
+        "angle": {
+          "x": -8.115864323287066e-7,
+          "y": 9.514995277015543e-7,
+          "z": 7.272600109100969e-7
+        }
+      },
+      {
+        "id": "n80",
+        "parent": "11",
+        "degrees_of_freedom": [
+          480,
+          481,
+          482,
+          483,
+          484,
+          485
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 25,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00012491522920891147,
+          "y": -0.0008969974384294977,
+          "z": -0.00006629036896655143
+        },
+        "angle": {
+          "x": -6.102217532822134e-7,
+          "y": 2.954622530551324e-7,
+          "z": 1.8047989966377077e-7
+        }
+      },
+      {
+        "id": "n81",
+        "parent": "11",
+        "degrees_of_freedom": [
+          486,
+          487,
+          488,
+          489,
+          490,
+          491
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 20,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011686501544487318,
+          "y": -0.0007347792277375584,
+          "z": -0.00003256390438523177
+        },
+        "angle": {
+          "x": -2.8209625273000404e-7,
+          "y": 8.460888043491678e-8,
+          "z": 8.721877727549409e-7
+        }
+      },
+      {
+        "id": "n82",
+        "parent": "11",
+        "degrees_of_freedom": [
+          492,
+          493,
+          494,
+          495,
+          496,
+          497
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 25,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001681771025554252,
+          "y": -0.0009120478297433008,
+          "z": -0.00006969311759639113
+        },
+        "angle": {
+          "x": -2.937597813844354e-7,
+          "y": 0.0000014135138536496654,
+          "z": 2.4045892275561885e-7
+        }
+      },
+      {
+        "id": "n83",
+        "parent": "11",
+        "degrees_of_freedom": [
+          498,
+          499,
+          500,
+          501,
+          502,
+          503
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 25,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001593329539889215,
+          "y": -0.000900284400769502,
+          "z": -0.000034027620216753875
+        },
+        "angle": {
+          "x": -9.622159281296787e-9,
+          "y": -2.1474137785920515e-7,
+          "z": 0.0000010314686018150646
+        }
+      },
+      {
+        "id": "n84",
+        "parent": "11",
+        "degrees_of_freedom": [
+          504,
+          505,
+          506,
+          507,
+          508,
+          509
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 20,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00022545077538152334,
+          "y": -0.0007527654189687695,
+          "z": -0.000034600278470766365
+        },
+        "angle": {
+          "x": -3.347588022231753e-7,
+          "y": 1.3052142220419483e-8,
+          "z": 7.538069287930602e-7
+        }
+      },
+      {
+        "id": "n85",
+        "parent": "11",
+        "degrees_of_freedom": [
+          510,
+          511,
+          512,
+          513,
+          514,
+          515
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 25,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00012037771622204196,
+          "y": -0.0008928232101132026,
+          "z": -1.2453356956208539e-19
+        },
+        "angle": {
+          "x": -1.8039386507775455e-19,
+          "y": 1.2427341221499302e-20,
+          "z": 1.9933369235676903e-7
+        }
+      },
+      {
+        "id": "n86",
+        "parent": "11",
+        "degrees_of_freedom": [
+          516,
+          517,
+          518,
+          519,
+          520,
+          521
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 20,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011686501544487379,
+          "y": -0.0007347792277375583,
+          "z": 0.00003256390438523121
+        },
+        "angle": {
+          "x": 2.820962527300481e-7,
+          "y": -8.460888043494201e-8,
+          "z": 8.721877727549085e-7
+        }
+      },
+      {
+        "id": "n87",
+        "parent": "11",
+        "degrees_of_freedom": [
+          522,
+          523,
+          524,
+          525,
+          526,
+          527
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 25,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001639876510845298,
+          "y": -0.000908057251829534,
+          "z": -1.7069116883676235e-19
+        },
+        "angle": {
+          "x": -1.6118452698902885e-19,
+          "y": 8.694363365095278e-20,
+          "z": 1.724105846279349e-7
+        }
+      },
+      {
+        "id": "n88",
+        "parent": "11",
+        "degrees_of_freedom": [
+          528,
+          529,
+          530,
+          531,
+          532,
+          533
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 25,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000159332953988921,
+          "y": -0.0009002844007694994,
+          "z": 0.000034027620216753245
+        },
+        "angle": {
+          "x": 9.62215928123046e-9,
+          "y": 2.1474137785920298e-7,
+          "z": 0.00000103146860181509
+        }
+      },
+      {
+        "id": "n89",
+        "parent": "11",
+        "degrees_of_freedom": [
+          534,
+          535,
+          536,
+          537,
+          538,
+          539
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 20,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000225450775381523,
+          "y": -0.0007527654189687685,
+          "z": 0.000034600278470766046
+        },
+        "angle": {
+          "x": 3.347588022231502e-7,
+          "y": -1.305214222039472e-8,
+          "z": 7.538069287930386e-7
+        }
+      },
+      {
+        "id": "n90",
+        "parent": "11",
+        "degrees_of_freedom": [
+          540,
+          541,
+          542,
+          543,
+          544,
+          545
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 25,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00012491522920891166,
+          "y": -0.0008969974384294959,
+          "z": 0.0000662903689665503
+        },
+        "angle": {
+          "x": 6.102217532822945e-7,
+          "y": -2.954622530551674e-7,
+          "z": 1.8047989966371296e-7
+        }
+      },
+      {
+        "id": "n91",
+        "parent": "11",
+        "degrees_of_freedom": [
+          546,
+          547,
+          548,
+          549,
+          550,
+          551
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 20,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001243054546493719,
+          "y": -0.0007435804141828683,
+          "z": 0.0000985786310878293
+        },
+        "angle": {
+          "x": 7.035865991617335e-7,
+          "y": 4.409172673958689e-7,
+          "z": 8.926364118093561e-7
+        }
+      },
+      {
+        "id": "n92",
+        "parent": "11",
+        "degrees_of_freedom": [
+          552,
+          553,
+          554,
+          555,
+          556,
+          557
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 25,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00016817710255542513,
+          "y": -0.0009120478297432995,
+          "z": 0.00006969311759639043
+        },
+        "angle": {
+          "x": 2.9375978138446704e-7,
+          "y": -0.0000014135138536496428,
+          "z": 2.4045892275562664e-7
+        }
+      },
+      {
+        "id": "n93",
+        "parent": "11",
+        "degrees_of_freedom": [
+          558,
+          559,
+          560,
+          561,
+          562,
+          563
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 25,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00016964050651717324,
+          "y": -0.0009077539508661509,
+          "z": 0.00010647884065372874
+        },
+        "angle": {
+          "x": -1.7348833013577663e-7,
+          "y": 0.000001245054875716743,
+          "z": 9.748086443097879e-7
+        }
+      },
+      {
+        "id": "n94",
+        "parent": "11",
+        "degrees_of_freedom": [
+          564,
+          565,
+          566,
+          567,
+          568,
+          569
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 20,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00023652279013474734,
+          "y": -0.0007617051974813336,
+          "z": 0.00010972290147606181
+        },
+        "angle": {
+          "x": 8.115864323287415e-7,
+          "y": -9.514995277015779e-7,
+          "z": 7.272600109100677e-7
+        }
+      },
+      {
+        "id": "n95",
+        "parent": "11",
+        "degrees_of_freedom": [
+          570,
+          571,
+          572,
+          573,
+          574,
+          575
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 25,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001305101113808649,
+          "y": -0.0009041498780436374,
+          "z": 0.0001316856659148023
+        },
+        "angle": {
+          "x": 4.6355401032171707e-7,
+          "y": 7.622427603750339e-7,
+          "z": 5.523889028569062e-8
+        }
+      },
+      {
+        "id": "n96",
+        "parent": "11",
+        "degrees_of_freedom": [
+          576,
+          577,
+          578,
+          579,
+          580,
+          581
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 20,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00012832036395449628,
+          "y": -0.0007551850582302716,
+          "z": 0.0001822496240649562
+        },
+        "angle": {
+          "x": 5.838825233981062e-7,
+          "y": 0.0000018623306222468814,
+          "z": 9.56593555196029e-7
+        }
+      },
+      {
+        "id": "n97",
+        "parent": "11",
+        "degrees_of_freedom": [
+          582,
+          583,
+          584,
+          585,
+          586,
+          587
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 25,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00018722151689142818,
+          "y": -0.0009167040164961127,
+          "z": 0.0001509689424428716
+        },
+        "angle": {
+          "x": 3.5480518547607295e-7,
+          "y": 8.950218572634767e-7,
+          "z": 3.875377483235341e-7
+        }
+      },
+      {
+        "id": "n98",
+        "parent": "11",
+        "degrees_of_freedom": [
+          588,
+          589,
+          590,
+          591,
+          592,
+          593
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 25,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00017834138670344636,
+          "y": -0.0009129637630085546,
+          "z": 0.00015388042233328825
+        },
+        "angle": {
+          "x": 3.1517504895208206e-7,
+          "y": 0.0000018141890069234271,
+          "z": 8.232431266606815e-7
+        }
+      },
+      {
+        "id": "n99",
+        "parent": "11",
+        "degrees_of_freedom": [
+          594,
+          595,
+          596,
+          597,
+          598,
+          599
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 20,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0002490620896744371,
+          "y": -0.0007724354661767562,
+          "z": 0.00021005618995629106
+        },
+        "angle": {
+          "x": 5.919070498100004e-7,
+          "y": 0.000004372605411695591,
+          "z": 6.33567490515382e-7
+        }
+      },
+      {
+        "id": "n100",
+        "parent": "11",
+        "degrees_of_freedom": [
+          600,
+          601,
+          602,
+          603,
+          604,
+          605
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 35,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00012237304115926504,
+          "y": -0.0012160221591597715,
+          "z": -0.00011916093200182494
+        },
+        "angle": {
+          "x": 6.655904915336238e-7,
+          "y": -9.482305751652769e-7,
+          "z": 2.299120456209401e-7
+        }
+      },
+      {
+        "id": "n101",
+        "parent": "11",
+        "degrees_of_freedom": [
+          606,
+          607,
+          608,
+          609,
+          610,
+          611
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 30,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001237730304226037,
+          "y": -0.0010607767494983896,
+          "z": -0.0001793191510822441
+        },
+        "angle": {
+          "x": 0.0000015922403397783041,
+          "y": -0.0000021511013444575094,
+          "z": -1.5065481661150595e-7
+        }
+      },
+      {
+        "id": "n102",
+        "parent": "11",
+        "degrees_of_freedom": [
+          612,
+          613,
+          614,
+          615,
+          616,
+          617
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 30,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00012308521722443746,
+          "y": -0.0010578631391991678,
+          "z": -0.00009481208188018899
+        },
+        "angle": {
+          "x": 0.000001196020302152315,
+          "y": -4.434082104345888e-7,
+          "z": -1.9488733453188355e-7
+        }
+      },
+      {
+        "id": "n103",
+        "parent": "11",
+        "degrees_of_freedom": [
+          618,
+          619,
+          620,
+          621,
+          622,
+          623
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 35,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00017378764328789586,
+          "y": -0.0012341852115381525,
+          "z": -0.00013663958130335984
+        },
+        "angle": {
+          "x": 0.0000011713290246309093,
+          "y": -0.0000012150502122736431,
+          "z": -9.126697143844189e-7
+        }
+      },
+      {
+        "id": "n104",
+        "parent": "11",
+        "degrees_of_freedom": [
+          624,
+          625,
+          626,
+          627,
+          628,
+          629
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 35,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00016504183100431535,
+          "y": -0.0012276739731483118,
+          "z": -0.00013964885633080683
+        },
+        "angle": {
+          "x": 0.000002124814668238583,
+          "y": -0.0000016007461115383992,
+          "z": 6.363076345553558e-7
+        }
+      },
+      {
+        "id": "n105",
+        "parent": "11",
+        "degrees_of_freedom": [
+          630,
+          631,
+          632,
+          633,
+          634,
+          635
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 35,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00015989269391686325,
+          "y": -0.0012229281141201255,
+          "z": -0.00009579872759125372
+        },
+        "angle": {
+          "x": 4.2555933096744436e-7,
+          "y": -0.0000010953013251395796,
+          "z": 9.199411111358465e-7
+        }
+      },
+      {
+        "id": "n106",
+        "parent": "11",
+        "degrees_of_freedom": [
+          636,
+          637,
+          638,
+          639,
+          640,
+          641
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 30,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00025215239159734267,
+          "y": -0.0010672494321225928,
+          "z": -0.00021128231672588532
+        },
+        "angle": {
+          "x": 0.0000024551180798697415,
+          "y": -0.0000048037951923587735,
+          "z": -0.0000013695153929077545
+        }
+      },
+      {
+        "id": "n107",
+        "parent": "11",
+        "degrees_of_freedom": [
+          642,
+          643,
+          644,
+          645,
+          646,
+          647
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 30,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00023809294088328697,
+          "y": -0.0010695104417382498,
+          "z": -0.00010412581480327899
+        },
+        "angle": {
+          "x": 0.0000012376906548149639,
+          "y": 0.000001157694665168957,
+          "z": -6.715610936266854e-7
+        }
+      },
+      {
+        "id": "n108",
+        "parent": "11",
+        "degrees_of_freedom": [
+          648,
+          649,
+          650,
+          651,
+          652,
+          653
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 35,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011814921331787833,
+          "y": -0.001208661947957445,
+          "z": -0.000059765069562693145
+        },
+        "angle": {
+          "x": -5.845603150010483e-7,
+          "y": 2.9488866584674225e-7,
+          "z": 1.9864704052180502e-7
+        }
+      },
+      {
+        "id": "n109",
+        "parent": "11",
+        "degrees_of_freedom": [
+          654,
+          655,
+          656,
+          657,
+          658,
+          659
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 30,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011648976483076711,
+          "y": -0.0010500012503828053,
+          "z": -0.00003128184621263477
+        },
+        "angle": {
+          "x": 3.818287316353429e-7,
+          "y": 9.216303535969696e-8,
+          "z": -1.615193497803888e-7
+        }
+      },
+      {
+        "id": "n110",
+        "parent": "11",
+        "degrees_of_freedom": [
+          660,
+          661,
+          662,
+          663,
+          664,
+          665
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 35,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00015793444235280517,
+          "y": -0.0012250477634378472,
+          "z": -0.00006203219195541581
+        },
+        "angle": {
+          "x": -3.6019622592577263e-7,
+          "y": 0.0000014860243189849682,
+          "z": -8.807327220782967e-7
+        }
+      },
+      {
+        "id": "n111",
+        "parent": "11",
+        "degrees_of_freedom": [
+          666,
+          667,
+          668,
+          669,
+          670,
+          671
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 35,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001498950989838417,
+          "y": -0.001212192353891447,
+          "z": -0.00003064561190145689
+        },
+        "angle": {
+          "x": -1.4093551689338847e-7,
+          "y": -1.3922411127708217e-7,
+          "z": 7.754924635796885e-7
+        }
+      },
+      {
+        "id": "n112",
+        "parent": "11",
+        "degrees_of_freedom": [
+          672,
+          673,
+          674,
+          675,
+          676,
+          677
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 30,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00022566302082568847,
+          "y": -0.0010622959981732379,
+          "z": -0.00003250053865886304
+        },
+        "angle": {
+          "x": 3.519434834603261e-7,
+          "y": 1.3768488571340245e-7,
+          "z": -4.817153856370793e-7
+        }
+      },
+      {
+        "id": "n113",
+        "parent": "11",
+        "degrees_of_freedom": [
+          678,
+          679,
+          680,
+          681,
+          682,
+          683
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 35,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011378054276825045,
+          "y": -0.0012022058495790968,
+          "z": -8.392530275671357e-19
+        },
+        "angle": {
+          "x": -4.334462555465165e-19,
+          "y": 1.9849384363518566e-20,
+          "z": 1.8869404888341118e-7
+        }
+      },
+      {
+        "id": "n114",
+        "parent": "11",
+        "degrees_of_freedom": [
+          684,
+          685,
+          686,
+          687,
+          688,
+          689
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 30,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011648976483076628,
+          "y": -0.0010500012503828014,
+          "z": 0.000031281846212634186
+        },
+        "angle": {
+          "x": -3.8182873163546564e-7,
+          "y": -9.21630353596881e-8,
+          "z": -1.6151934978041532e-7
+        }
+      },
+      {
+        "id": "n115",
+        "parent": "11",
+        "degrees_of_freedom": [
+          690,
+          691,
+          692,
+          693,
+          694,
+          695
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 35,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00015356936235296403,
+          "y": -0.0012180967760022717,
+          "z": -6.210111509786338e-19
+        },
+        "angle": {
+          "x": -2.096540912917648e-19,
+          "y": -2.1551209395389004e-21,
+          "z": -9.898372529578446e-7
+        }
+      },
+      {
+        "id": "n116",
+        "parent": "11",
+        "degrees_of_freedom": [
+          696,
+          697,
+          698,
+          699,
+          700,
+          701
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 35,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001498950989838414,
+          "y": -0.0012121923538914445,
+          "z": 0.00003064561190145544
+        },
+        "angle": {
+          "x": 1.409355168931673e-7,
+          "y": 1.3922411127711475e-7,
+          "z": 7.75492463579756e-7
+        }
+      },
+      {
+        "id": "n117",
+        "parent": "11",
+        "degrees_of_freedom": [
+          702,
+          703,
+          704,
+          705,
+          706,
+          707
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 30,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00022566302082568818,
+          "y": -0.0010622959981732366,
+          "z": 0.000032500538658862215
+        },
+        "angle": {
+          "x": -3.5194348346044266e-7,
+          "y": -1.3768488571336772e-7,
+          "z": -4.81715385636968e-7
+        }
+      },
+      {
+        "id": "n118",
+        "parent": "11",
+        "degrees_of_freedom": [
+          708,
+          709,
+          710,
+          711,
+          712,
+          713
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 35,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011814921331787802,
+          "y": -0.0012086619479574395,
+          "z": 0.00005976506956269179
+        },
+        "angle": {
+          "x": 5.845603150007185e-7,
+          "y": -2.9488866584674124e-7,
+          "z": 1.9864704052193144e-7
+        }
+      },
+      {
+        "id": "n119",
+        "parent": "11",
+        "degrees_of_freedom": [
+          714,
+          715,
+          716,
+          717,
+          718,
+          719
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 30,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00012308521722443773,
+          "y": -0.001057863139199165,
+          "z": 0.00009481208188018742
+        },
+        "angle": {
+          "x": -0.0000011960203021523442,
+          "y": 4.4340821043457744e-7,
+          "z": -1.9488733453185216e-7
+        }
+      },
+      {
+        "id": "n120",
+        "parent": "11",
+        "degrees_of_freedom": [
+          720,
+          721,
+          722,
+          723,
+          724,
+          725
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 35,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00015793444235280451,
+          "y": -0.0012250477634378437,
+          "z": 0.0000620321919554145
+        },
+        "angle": {
+          "x": 3.601962259254882e-7,
+          "y": -0.000001486024318984719,
+          "z": -8.807327220782611e-7
+        }
+      },
+      {
+        "id": "n121",
+        "parent": "11",
+        "degrees_of_freedom": [
+          726,
+          727,
+          728,
+          729,
+          730,
+          731
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 35,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00015989269391686187,
+          "y": -0.0012229281141201203,
+          "z": 0.000095798727591252
+        },
+        "angle": {
+          "x": -4.255593309675105e-7,
+          "y": 0.000001095301325139639,
+          "z": 9.19941111136049e-7
+        }
+      },
+      {
+        "id": "n122",
+        "parent": "11",
+        "degrees_of_freedom": [
+          732,
+          733,
+          734,
+          735,
+          736,
+          737
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 30,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00023809294088328494,
+          "y": -0.0010695104417382472,
+          "z": 0.00010412581480327846
+        },
+        "angle": {
+          "x": -0.000001237690654815006,
+          "y": -0.0000011576946651688577,
+          "z": -6.715610936268466e-7
+        }
+      },
+      {
+        "id": "n123",
+        "parent": "11",
+        "degrees_of_freedom": [
+          738,
+          739,
+          740,
+          741,
+          742,
+          743
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 35,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00012237304115926477,
+          "y": -0.0012160221591597665,
+          "z": 0.00011916093200182301
+        },
+        "angle": {
+          "x": -6.655904915332383e-7,
+          "y": 9.482305751652637e-7,
+          "z": 2.2991204562076504e-7
+        }
+      },
+      {
+        "id": "n124",
+        "parent": "11",
+        "degrees_of_freedom": [
+          744,
+          745,
+          746,
+          747,
+          748,
+          749
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 30,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00012377303042260571,
+          "y": -0.0010607767494983896,
+          "z": 0.00017931915108224152
+        },
+        "angle": {
+          "x": -0.0000015922403397781627,
+          "y": 0.0000021511013444574933,
+          "z": -1.5065481661164994e-7
+        }
+      },
+      {
+        "id": "n125",
+        "parent": "11",
+        "degrees_of_freedom": [
+          750,
+          751,
+          752,
+          753,
+          754,
+          755
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 35,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001737876432878939,
+          "y": -0.0012341852115381484,
+          "z": 0.00013663958130335856
+        },
+        "angle": {
+          "x": -0.0000011713290246311494,
+          "y": 0.0000012150502122736487,
+          "z": -9.126697143844192e-7
+        }
+      },
+      {
+        "id": "n126",
+        "parent": "11",
+        "degrees_of_freedom": [
+          756,
+          757,
+          758,
+          759,
+          760,
+          761
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 35,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001650418310043139,
+          "y": -0.0012276739731483083,
+          "z": 0.0001396488563308055
+        },
+        "angle": {
+          "x": -0.00000212481466823863,
+          "y": 0.0000016007461115385447,
+          "z": 6.363076345551844e-7
+        }
+      },
+      {
+        "id": "n127",
+        "parent": "11",
+        "degrees_of_freedom": [
+          762,
+          763,
+          764,
+          765,
+          766,
+          767
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 30,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00025215239159734153,
+          "y": -0.0010672494321225885,
+          "z": 0.00021128231672588424
+        },
+        "angle": {
+          "x": -0.0000024551180798696903,
+          "y": 0.0000048037951923588065,
+          "z": -0.0000013695153929079754
+        }
+      },
+      {
+        "id": "n128",
+        "parent": "11",
+        "degrees_of_freedom": [
+          768,
+          769,
+          770,
+          771,
+          772,
+          773
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 45,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00012553879938195092,
+          "y": -0.0014833265374149189,
+          "z": -0.00009955497248088991
+        },
+        "angle": {
+          "x": 9.264224377798324e-7,
+          "y": -0.000001748780224426476,
+          "z": 0.0000015139994645467454
+        }
+      },
+      {
+        "id": "n129",
+        "parent": "11",
+        "degrees_of_freedom": [
+          774,
+          775,
+          776,
+          777,
+          778,
+          779
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 40,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011808741056979566,
+          "y": -0.0013719905260527068,
+          "z": -0.00015793609298409247
+        },
+        "angle": {
+          "x": 3.8942408121317785e-7,
+          "y": -0.0000025453303179607897,
+          "z": 0.0000011650632944049844
+        }
+      },
+      {
+        "id": "n130",
+        "parent": "11",
+        "degrees_of_freedom": [
+          780,
+          781,
+          782,
+          783,
+          784,
+          785
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 40,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011781335232840857,
+          "y": -0.0013656145936339439,
+          "z": -0.00008234658011356766
+        },
+        "angle": {
+          "x": 0.0000011750061025018343,
+          "y": -4.884747526675431e-7,
+          "z": 5.544618552679247e-7
+        }
+      },
+      {
+        "id": "n131",
+        "parent": "11",
+        "degrees_of_freedom": [
+          786,
+          787,
+          788,
+          789,
+          790,
+          791
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 45,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00016376731083024196,
+          "y": -0.0015109052400423602,
+          "z": -0.00012119654800512507
+        },
+        "angle": {
+          "x": 0.0000020628056108449046,
+          "y": -0.000002569856367690078,
+          "z": -0.0000058414060281811845
+        }
+      },
+      {
+        "id": "n132",
+        "parent": "11",
+        "degrees_of_freedom": [
+          792,
+          793,
+          794,
+          795,
+          796,
+          797
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 45,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00016394087296416884,
+          "y": -0.0014958002315114325,
+          "z": -0.0001094621337336769
+        },
+        "angle": {
+          "x": 0.000013757966332826855,
+          "y": -0.0000013138339958063711,
+          "z": 0.0000013419822492595378
+        }
+      },
+      {
+        "id": "n133",
+        "parent": "11",
+        "degrees_of_freedom": [
+          798,
+          799,
+          800,
+          801,
+          802,
+          803
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 45,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00015449231382133833,
+          "y": -0.0014913058291761096,
+          "z": -0.00008780680655245233
+        },
+        "angle": {
+          "x": -0.0000018905417205721975,
+          "y": -7.854266195438133e-7,
+          "z": 0.0000016566696403296256
+        }
+      },
+      {
+        "id": "n134",
+        "parent": "11",
+        "degrees_of_freedom": [
+          804,
+          805,
+          806,
+          807,
+          808,
+          809
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 40,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00023313597331784164,
+          "y": -0.001406367607448675,
+          "z": -0.00018900223679606858
+        },
+        "angle": {
+          "x": -0.0000014681971557486718,
+          "y": -0.0000045349236878754895,
+          "z": 0.0000034425372803176676
+        }
+      },
+      {
+        "id": "n135",
+        "parent": "11",
+        "degrees_of_freedom": [
+          810,
+          811,
+          812,
+          813,
+          814,
+          815
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 40,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00022131198600854326,
+          "y": -0.0013904070010768794,
+          "z": -0.0000917326042624995
+        },
+        "angle": {
+          "x": 3.4088217493969503e-7,
+          "y": 0.0000015129634958705476,
+          "z": 0.0000017791864996996148
+        }
+      },
+      {
+        "id": "n136",
+        "parent": "11",
+        "degrees_of_freedom": [
+          816,
+          817,
+          818,
+          819,
+          820,
+          821
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 45,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011812519206714185,
+          "y": -0.0014622017510069894,
+          "z": -0.00005758701514394212
+        },
+        "angle": {
+          "x": -0.0000019609294123956403,
+          "y": 8.459093816224717e-8,
+          "z": 0.0000012496901025527241
+        }
+      },
+      {
+        "id": "n137",
+        "parent": "11",
+        "degrees_of_freedom": [
+          822,
+          823,
+          824,
+          825,
+          826,
+          827
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 40,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011006828325350498,
+          "y": -0.00135217504724122,
+          "z": -0.000029228897524487682
+        },
+        "angle": {
+          "x": 1.2088816384586484e-7,
+          "y": 1.0510922538310226e-7,
+          "z": 3.3232746998199715e-7
+        }
+      },
+      {
+        "id": "n138",
+        "parent": "11",
+        "degrees_of_freedom": [
+          828,
+          829,
+          830,
+          831,
+          832,
+          833
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 45,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001384411055330675,
+          "y": -0.0014817776446959716,
+          "z": -0.00006038855453130221
+        },
+        "angle": {
+          "x": -0.0000016220254729765428,
+          "y": 0.0000013250127212362698,
+          "z": -0.000006195339506877631
+        }
+      },
+      {
+        "id": "n139",
+        "parent": "11",
+        "degrees_of_freedom": [
+          834,
+          835,
+          836,
+          837,
+          838,
+          839
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 45,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00013960909545583224,
+          "y": -0.0014723311488452477,
+          "z": -0.00003018845146906489
+        },
+        "angle": {
+          "x": -4.193707632111335e-7,
+          "y": 1.818388960105655e-8,
+          "z": 0.0000012361669479398713
+        }
+      },
+      {
+        "id": "n140",
+        "parent": "11",
+        "degrees_of_freedom": [
+          840,
+          841,
+          842,
+          843,
+          844,
+          845
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 40,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00020528724187700447,
+          "y": -0.0013735833086768424,
+          "z": -0.000029941046584270055
+        },
+        "angle": {
+          "x": -7.586195365632169e-8,
+          "y": 3.7992742633270297e-7,
+          "z": 0.000001253185728550208
+        }
+      },
+      {
+        "id": "n141",
+        "parent": "11",
+        "degrees_of_freedom": [
+          846,
+          847,
+          848,
+          849,
+          850,
+          851
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 45,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011202559017935455,
+          "y": -0.0014564032728519379,
+          "z": -2.221096798149599e-18
+        },
+        "angle": {
+          "x": -2.5904563957199064e-19,
+          "y": -2.5004006442638806e-20,
+          "z": 0.0000011472278952758946
+        }
+      },
+      {
+        "id": "n142",
+        "parent": "11",
+        "degrees_of_freedom": [
+          852,
+          853,
+          854,
+          855,
+          856,
+          857
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 40,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001100682832535057,
+          "y": -0.0013521750472412174,
+          "z": 0.000029228897524484765
+        },
+        "angle": {
+          "x": -1.2088816384623663e-7,
+          "y": -1.0510922538308573e-7,
+          "z": 3.323274699820258e-7
+        }
+      },
+      {
+        "id": "n143",
+        "parent": "11",
+        "degrees_of_freedom": [
+          858,
+          859,
+          860,
+          861,
+          862,
+          863
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 45,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00012981467358170448,
+          "y": -0.001472492771775608,
+          "z": -2.0483708288127745e-18
+        },
+        "angle": {
+          "x": -3.7694740730052296e-19,
+          "y": -2.760603190390731e-20,
+          "z": -0.00000617074668685641
+        }
+      },
+      {
+        "id": "n144",
+        "parent": "11",
+        "degrees_of_freedom": [
+          864,
+          865,
+          866,
+          867,
+          868,
+          869
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 45,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00013960909545583238,
+          "y": -0.0014723311488452448,
+          "z": 0.000030188451469060886
+        },
+        "angle": {
+          "x": 4.1937076321081347e-7,
+          "y": -1.8183889600952244e-8,
+          "z": 0.0000012361669479398624
+        }
+      },
+      {
+        "id": "n145",
+        "parent": "11",
+        "degrees_of_freedom": [
+          870,
+          871,
+          872,
+          873,
+          874,
+          875
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 40,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0002052872418770047,
+          "y": -0.0013735833086768404,
+          "z": 0.000029941046584267978
+        },
+        "angle": {
+          "x": 7.586195365594714e-8,
+          "y": -3.799274263326273e-7,
+          "z": 0.0000012531857285501316
+        }
+      },
+      {
+        "id": "n146",
+        "parent": "11",
+        "degrees_of_freedom": [
+          876,
+          877,
+          878,
+          879,
+          880,
+          881
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 45,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011812519206714188,
+          "y": -0.0014622017510069847,
+          "z": 0.00005758701514393808
+        },
+        "angle": {
+          "x": 0.000001960929412394874,
+          "y": -8.459093816217481e-8,
+          "z": 0.0000012496901025528416
+        }
+      },
+      {
+        "id": "n147",
+        "parent": "11",
+        "degrees_of_freedom": [
+          882,
+          883,
+          884,
+          885,
+          886,
+          887
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 40,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011781335232840817,
+          "y": -0.0013656145936339354,
+          "z": 0.00008234658011356561
+        },
+        "angle": {
+          "x": -0.0000011750061025020668,
+          "y": 4.884747526675685e-7,
+          "z": 5.544618552680113e-7
+        }
+      },
+      {
+        "id": "n148",
+        "parent": "11",
+        "degrees_of_freedom": [
+          888,
+          889,
+          890,
+          891,
+          892,
+          893
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 45,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00013844110553306717,
+          "y": -0.0014817776446959684,
+          "z": 0.000060388554531299364
+        },
+        "angle": {
+          "x": 0.0000016220254729761669,
+          "y": -0.0000013250127212360983,
+          "z": -0.000006195339506877496
+        }
+      },
+      {
+        "id": "n149",
+        "parent": "11",
+        "degrees_of_freedom": [
+          894,
+          895,
+          896,
+          897,
+          898,
+          899
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 45,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00015449231382133803,
+          "y": -0.0014913058291761033,
+          "z": 0.0000878068065524493
+        },
+        "angle": {
+          "x": 0.0000018905417205720438,
+          "y": 7.854266195438302e-7,
+          "z": 0.0000016566696403298473
+        }
+      },
+      {
+        "id": "n150",
+        "parent": "11",
+        "degrees_of_freedom": [
+          900,
+          901,
+          902,
+          903,
+          904,
+          905
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 40,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00022131198600854144,
+          "y": -0.0013904070010768762,
+          "z": 0.00009173260426249739
+        },
+        "angle": {
+          "x": -3.4088217493995973e-7,
+          "y": -0.0000015129634958705068,
+          "z": 0.000001779186499699584
+        }
+      },
+      {
+        "id": "n151",
+        "parent": "11",
+        "degrees_of_freedom": [
+          906,
+          907,
+          908,
+          909,
+          910,
+          911
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 45,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00012553879938195016,
+          "y": -0.0014833265374149106,
+          "z": 0.00009955497248088758
+        },
+        "angle": {
+          "x": -9.264224377797147e-7,
+          "y": 0.0000017487802244266028,
+          "z": 0.0000015139994645469622
+        }
+      },
+      {
+        "id": "n152",
+        "parent": "11",
+        "degrees_of_freedom": [
+          912,
+          913,
+          914,
+          915,
+          916,
+          917
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 40,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00011808741056979326,
+          "y": -0.0013719905260527016,
+          "z": 0.00015793609298409
+        },
+        "angle": {
+          "x": -3.894240812131932e-7,
+          "y": 0.0000025453303179607664,
+          "z": 0.0000011650632944048476
+        }
+      },
+      {
+        "id": "n153",
+        "parent": "11",
+        "degrees_of_freedom": [
+          918,
+          919,
+          920,
+          921,
+          922,
+          923
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 45,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00016376731083024055,
+          "y": -0.0015109052400423548,
+          "z": 0.00012119654800512263
+        },
+        "angle": {
+          "x": -0.000002062805610844831,
+          "y": 0.000002569856367690172,
+          "z": -0.000005841406028181069
+        }
+      },
+      {
+        "id": "n154",
+        "parent": "11",
+        "degrees_of_freedom": [
+          924,
+          925,
+          926,
+          927,
+          928,
+          929
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 45,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0001639408729641672,
+          "y": -0.0014958002315114264,
+          "z": 0.00010946213373367485
+        },
+        "angle": {
+          "x": -0.000013757966332826655,
+          "y": 0.0000013138339958063383,
+          "z": 0.0000013419822492596172
+        }
+      },
+      {
+        "id": "n155",
+        "parent": "11",
+        "degrees_of_freedom": [
+          930,
+          931,
+          932,
+          933,
+          934,
+          935
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 40,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0002331359733178395,
+          "y": -0.0014063676074486699,
+          "z": 0.00018900223679606612
+        },
+        "angle": {
+          "x": 0.0000014681971557483504,
+          "y": 0.000004534923687875398,
+          "z": 0.0000034425372803177053
+        }
+      },
+      {
+        "id": "n156",
+        "parent": "11",
+        "degrees_of_freedom": [
+          936,
+          937,
+          938,
+          939,
+          940,
+          941
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 15,
+          "y": -5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n157",
+        "parent": "11",
+        "degrees_of_freedom": [
+          942,
+          943,
+          944,
+          945,
+          946,
+          947
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 10,
+          "y": -5,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n158",
+        "parent": "11",
+        "degrees_of_freedom": [
+          948,
+          949,
+          950,
+          951,
+          952,
+          953
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 10,
+          "y": -5,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n159",
+        "parent": "11",
+        "degrees_of_freedom": [
+          954,
+          955,
+          956,
+          957,
+          958,
+          959
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000022715550475232568,
+          "y": -0.00027594236622321,
+          "z": -0.00007989572585955912
+        },
+        "angle": {
+          "x": -0.000005038027469397863,
+          "y": -2.00330635434889e-7,
+          "z": 3.2566379030837505e-7
+        }
+      },
+      {
+        "id": "n160",
+        "parent": "11",
+        "degrees_of_freedom": [
+          960,
+          961,
+          962,
+          963,
+          964,
+          965
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 0,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000010147502319536862,
+          "y": -0.0001480887460910248,
+          "z": -0.000081083211527761
+        },
+        "angle": {
+          "x": -0.000012269192540735489,
+          "y": 1.2816734403414244e-8,
+          "z": 0.0000016053609873459926
+        }
+      },
+      {
+        "id": "n161",
+        "parent": "11",
+        "degrees_of_freedom": [
+          966,
+          967,
+          968,
+          969,
+          970,
+          971
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 0,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000011044499633278985,
+          "y": -0.00012547074463121832,
+          "z": -0.000025352785417893108
+        },
+        "angle": {
+          "x": -0.000008152215314026214,
+          "y": -1.237065066767205e-7,
+          "z": 0.0000017052498127616908
+        }
+      },
+      {
+        "id": "n162",
+        "parent": "11",
+        "degrees_of_freedom": [
+          972,
+          973,
+          974,
+          975,
+          976,
+          977
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 5,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004523776848897078,
+          "y": -0.00029076404062514674,
+          "z": -0.00009287283299180249
+        },
+        "angle": {
+          "x": -0.000005327292538719202,
+          "y": -0.0000014804778934444875,
+          "z": 0.0000020387460709784985
+        }
+      },
+      {
+        "id": "n163",
+        "parent": "11",
+        "degrees_of_freedom": [
+          978,
+          979,
+          980,
+          981,
+          982,
+          983
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 5,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000047691182461146115,
+          "y": -0.0002666022685388228,
+          "z": -0.00006057903888985427
+        },
+        "angle": {
+          "x": -0.0000031775899881468518,
+          "y": -7.160035579792232e-7,
+          "z": 0.0000013125043918339904
+        }
+      },
+      {
+        "id": "n164",
+        "parent": "11",
+        "degrees_of_freedom": [
+          984,
+          985,
+          986,
+          987,
+          988,
+          989
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 15,
+          "y": -5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n165",
+        "parent": "11",
+        "degrees_of_freedom": [
+          990,
+          991,
+          992,
+          993,
+          994,
+          995
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 10,
+          "y": -5,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n166",
+        "parent": "11",
+        "degrees_of_freedom": [
+          996,
+          997,
+          998,
+          999,
+          1000,
+          1001
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000023515465506242,
+          "y": -0.0002603716762234156,
+          "z": -0.00003567012152741711
+        },
+        "angle": {
+          "x": -0.0000020593053907067725,
+          "y": -5.587137233757718e-8,
+          "z": 3.386543177174528e-7
+        }
+      },
+      {
+        "id": "n167",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1002,
+          1003,
+          1004,
+          1005,
+          1006,
+          1007
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 0,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000010631775073070094,
+          "y": -0.00012277031972382212,
+          "z": -0.00000816589917400572
+        },
+        "angle": {
+          "x": -0.0000025120715618765877,
+          "y": -2.010687102155052e-8,
+          "z": 0.0000016661597923714452
+        }
+      },
+      {
+        "id": "n168",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1008,
+          1009,
+          1010,
+          1011,
+          1012,
+          1013
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 5,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000045391204587787744,
+          "y": -0.00026059159701885055,
+          "z": -0.000018895741526554452
+        },
+        "angle": {
+          "x": -8.335208913720047e-7,
+          "y": -1.9035014961539563e-7,
+          "z": 0.0000011518137414550347
+        }
+      },
+      {
+        "id": "n169",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1014,
+          1015,
+          1016,
+          1017,
+          1018,
+          1019
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 15,
+          "y": -5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n170",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1020,
+          1021,
+          1022,
+          1023,
+          1024,
+          1025
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 10,
+          "y": -5,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n171",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1026,
+          1027,
+          1028,
+          1029,
+          1030,
+          1031
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000022876073761198327,
+          "y": -0.00025811365048576516,
+          "z": -3.21668293088408e-19
+        },
+        "angle": {
+          "x": -2.961798779491365e-20,
+          "y": -2.4898205354932254e-20,
+          "z": 3.3179600965914094e-7
+        }
+      },
+      {
+        "id": "n172",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1032,
+          1033,
+          1034,
+          1035,
+          1036,
+          1037
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 0,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000010631775073070182,
+          "y": -0.00012277031972382212,
+          "z": 0.000008165899174005441
+        },
+        "angle": {
+          "x": 0.0000025120715618765073,
+          "y": 2.0106871021537343e-8,
+          "z": 0.0000016661597923714672
+        }
+      },
+      {
+        "id": "n173",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1038,
+          1039,
+          1040,
+          1041,
+          1042,
+          1043
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 5,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004539120458778796,
+          "y": -0.00026059159701885017,
+          "z": 0.000018895741526553795
+        },
+        "angle": {
+          "x": 8.335208913720002e-7,
+          "y": 1.9035014961537859e-7,
+          "z": 0.000001151813741455011
+        }
+      },
+      {
+        "id": "n174",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1044,
+          1045,
+          1046,
+          1047,
+          1048,
+          1049
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 15,
+          "y": -5,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n175",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1050,
+          1051,
+          1052,
+          1053,
+          1054,
+          1055
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 10,
+          "y": -5,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n176",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1056,
+          1057,
+          1058,
+          1059,
+          1060,
+          1061
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 5,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000023515465506242505,
+          "y": -0.0002603716762234156,
+          "z": 0.00003567012152741659
+        },
+        "angle": {
+          "x": 0.000002059305390706813,
+          "y": 5.587137233753738e-8,
+          "z": 3.386543177174507e-7
+        }
+      },
+      {
+        "id": "n177",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1062,
+          1063,
+          1064,
+          1065,
+          1066,
+          1067
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 0,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000011044499633279417,
+          "y": -0.00012547074463121856,
+          "z": 0.00002535278541789287
+        },
+        "angle": {
+          "x": 0.000008152215314026144,
+          "y": 1.2370650667671462e-7,
+          "z": 0.0000017052498127617258
+        }
+      },
+      {
+        "id": "n178",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1068,
+          1069,
+          1070,
+          1071,
+          1072,
+          1073
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 5,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004769118246114665,
+          "y": -0.00026660226853882324,
+          "z": 0.00006057903888985369
+        },
+        "angle": {
+          "x": 0.00000317758998814685,
+          "y": 7.160035579791724e-7,
+          "z": 0.0000013125043918340777
+        }
+      },
+      {
+        "id": "n179",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1074,
+          1075,
+          1076,
+          1077,
+          1078,
+          1079
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 15,
+          "y": -5,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n180",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1080,
+          1081,
+          1082,
+          1083,
+          1084,
+          1085
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 10,
+          "y": -5,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n181",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1086,
+          1087,
+          1088,
+          1089,
+          1090,
+          1091
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 5,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000022715550475233605,
+          "y": -0.00027594236622321006,
+          "z": 0.00007989572585955884
+        },
+        "angle": {
+          "x": 0.0000050380274693978525,
+          "y": 2.0033063543480972e-7,
+          "z": 3.2566379030839914e-7
+        }
+      },
+      {
+        "id": "n182",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1092,
+          1093,
+          1094,
+          1095,
+          1096,
+          1097
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 0,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000010147502319537461,
+          "y": -0.00014808874609102527,
+          "z": 0.00008108321152776085
+        },
+        "angle": {
+          "x": 0.000012269192540735465,
+          "y": -1.2816734403409946e-8,
+          "z": 0.0000016053609873460887
+        }
+      },
+      {
+        "id": "n183",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1098,
+          1099,
+          1100,
+          1101,
+          1102,
+          1103
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 5,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004523776848897153,
+          "y": -0.000290764040625148,
+          "z": 0.00009287283299180215
+        },
+        "angle": {
+          "x": 0.0000053272925387191924,
+          "y": 0.0000014804778934444543,
+          "z": 0.000002038746070978567
+        }
+      },
+      {
+        "id": "n184",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1104,
+          1105,
+          1106,
+          1107,
+          1108,
+          1109
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 15,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003809357838289568,
+          "y": -0.0005798377184679755,
+          "z": -0.00011342037191664281
+        },
+        "angle": {
+          "x": -0.0000024273169285887332,
+          "y": -2.571453356367218e-7,
+          "z": 3.5395761425126e-7
+        }
+      },
+      {
+        "id": "n185",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1110,
+          1111,
+          1112,
+          1113,
+          1114,
+          1115
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 10,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000029754973184635295,
+          "y": -0.0004365130503070888,
+          "z": -0.0001499265198745806
+        },
+        "angle": {
+          "x": -0.0000034210465879360053,
+          "y": -7.206324574498952e-8,
+          "z": 0.0000011722975279183673
+        }
+      },
+      {
+        "id": "n186",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1116,
+          1117,
+          1118,
+          1119,
+          1120,
+          1121
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 10,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003054844848538612,
+          "y": -0.0004158146858359336,
+          "z": -0.00007267033859381299
+        },
+        "angle": {
+          "x": -0.000003459311557089001,
+          "y": -3.187937321869595e-7,
+          "z": 0.0000010810232525809816
+        }
+      },
+      {
+        "id": "n187",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1122,
+          1123,
+          1124,
+          1125,
+          1126,
+          1127
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 15,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007662091142301778,
+          "y": -0.0005948055722336079,
+          "z": -0.00012539563583917142
+        },
+        "angle": {
+          "x": -0.000001644396619585974,
+          "y": -0.0000017635007331148114,
+          "z": 0.0000015079579029374988
+        }
+      },
+      {
+        "id": "n188",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1128,
+          1129,
+          1130,
+          1131,
+          1132,
+          1133
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 15,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007699972670708857,
+          "y": -0.000577113385692017,
+          "z": -0.00008982026954217869
+        },
+        "angle": {
+          "x": -0.0000013793882388625182,
+          "y": -0.0000011213246463408702,
+          "z": 0.0000012335113565499362
+        }
+      },
+      {
+        "id": "n189",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1134,
+          1135,
+          1136,
+          1137,
+          1138,
+          1139
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 15,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003799706909054762,
+          "y": -0.0005663593015427659,
+          "z": -0.00005631387174927259
+        },
+        "angle": {
+          "x": -0.0000013429902461152182,
+          "y": -2.143896620747219e-8,
+          "z": 3.1765787045298195e-7
+        }
+      },
+      {
+        "id": "n190",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1140,
+          1141,
+          1142,
+          1143,
+          1144,
+          1145
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 10,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000029252075903653453,
+          "y": -0.0004072917313115491,
+          "z": -0.000023032537831244173
+        },
+        "angle": {
+          "x": -0.0000013210725294316509,
+          "y": -5.751242610954771e-8,
+          "z": 0.0000010246141977126724
+        }
+      },
+      {
+        "id": "n191",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1146,
+          1147,
+          1148,
+          1149,
+          1150,
+          1151
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 15,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007315558296523082,
+          "y": -0.0005680526387159475,
+          "z": -0.000029906663453318364
+        },
+        "angle": {
+          "x": -5.47366428737437e-7,
+          "y": -3.4354295768004193e-7,
+          "z": 0.0000011145438681229729
+        }
+      },
+      {
+        "id": "n192",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1152,
+          1153,
+          1154,
+          1155,
+          1156,
+          1157
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 15,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003699095921198125,
+          "y": -0.0005615869205247239,
+          "z": -3.780305649320789e-19
+        },
+        "angle": {
+          "x": 1.9270794894742002e-21,
+          "y": -6.354393271206185e-20,
+          "z": 3.0475783079975924e-7
+        }
+      },
+      {
+        "id": "n193",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1158,
+          1159,
+          1160,
+          1161,
+          1162,
+          1163
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 10,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000029252075903653897,
+          "y": -0.00040729173131154913,
+          "z": 0.000023032537831243438
+        },
+        "angle": {
+          "x": 0.0000013210725294316301,
+          "y": 5.751242610951451e-8,
+          "z": 0.0000010246141977126654
+        }
+      },
+      {
+        "id": "n194",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1164,
+          1165,
+          1166,
+          1167,
+          1168,
+          1169
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 15,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007315558296523129,
+          "y": -0.0005680526387159467,
+          "z": 0.000029906663453317534
+        },
+        "angle": {
+          "x": 5.473664287374681e-7,
+          "y": 3.43542957680015e-7,
+          "z": 0.0000011145438681229837
+        }
+      },
+      {
+        "id": "n195",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1170,
+          1171,
+          1172,
+          1173,
+          1174,
+          1175
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 15,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000037997069090548585,
+          "y": -0.0005663593015427662,
+          "z": 0.00005631387174927183
+        },
+        "angle": {
+          "x": 0.000001342990246115266,
+          "y": 2.1438966207329125e-8,
+          "z": 3.1765787045299095e-7
+        }
+      },
+      {
+        "id": "n196",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1176,
+          1177,
+          1178,
+          1179,
+          1180,
+          1181
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 10,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003054844848538701,
+          "y": -0.0004158146858359338,
+          "z": 0.00007267033859381247
+        },
+        "angle": {
+          "x": 0.000003459311557088953,
+          "y": 3.1879373218690396e-7,
+          "z": 0.0000010810232525810576
+        }
+      },
+      {
+        "id": "n197",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1182,
+          1183,
+          1184,
+          1185,
+          1186,
+          1187
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 15,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007699972670709004,
+          "y": -0.0005771133856920193,
+          "z": 0.00008982026954217733
+        },
+        "angle": {
+          "x": 0.0000013793882388624604,
+          "y": 0.000001121324646340793,
+          "z": 0.000001233511356550021
+        }
+      },
+      {
+        "id": "n198",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1188,
+          1189,
+          1190,
+          1191,
+          1192,
+          1193
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 15,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000380935783828977,
+          "y": -0.0005798377184679751,
+          "z": 0.00011342037191664182
+        },
+        "angle": {
+          "x": 0.000002427316928588525,
+          "y": 2.5714533563658297e-7,
+          "z": 3.539576142513446e-7
+        }
+      },
+      {
+        "id": "n199",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1194,
+          1195,
+          1196,
+          1197,
+          1198,
+          1199
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 10,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000029754973184637524,
+          "y": -0.00043651305030708855,
+          "z": 0.00014992651987457998
+        },
+        "angle": {
+          "x": 0.000003421046587935946,
+          "y": 7.206324574489755e-8,
+          "z": 0.0000011722975279183853
+        }
+      },
+      {
+        "id": "n200",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1200,
+          1201,
+          1202,
+          1203,
+          1204,
+          1205
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 15,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007662091142301981,
+          "y": -0.0005948055722336066,
+          "z": 0.00012539563583916982
+        },
+        "angle": {
+          "x": 0.0000016443966195857925,
+          "y": 0.000001763500733114771,
+          "z": 0.0000015079579029376375
+        }
+      },
+      {
+        "id": "n201",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1206,
+          1207,
+          1208,
+          1209,
+          1210,
+          1211
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 25,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004146691564973539,
+          "y": -0.0008903415121194339,
+          "z": -0.00011857197727883154
+        },
+        "angle": {
+          "x": -4.3352440380267597e-7,
+          "y": -3.4333317200048075e-7,
+          "z": 1.0585813493460509e-7
+        }
+      },
+      {
+        "id": "n202",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1212,
+          1213,
+          1214,
+          1215,
+          1216,
+          1217
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 20,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004009510140285921,
+          "y": -0.0007407238439894439,
+          "z": -0.00016851156423978018
+        },
+        "angle": {
+          "x": -5.14605226684448e-7,
+          "y": -2.1506204048673868e-7,
+          "z": 4.302814032267394e-7
+        }
+      },
+      {
+        "id": "n203",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1218,
+          1219,
+          1220,
+          1221,
+          1222,
+          1223
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 20,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004043587267506576,
+          "y": -0.0007297391170247333,
+          "z": -0.00008871480978997197
+        },
+        "angle": {
+          "x": -5.935443419082908e-7,
+          "y": -3.4220356101859474e-7,
+          "z": 3.6434274432730607e-7
+        }
+      },
+      {
+        "id": "n204",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1224,
+          1225,
+          1226,
+          1227,
+          1228,
+          1229
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 25,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008223451645304447,
+          "y": -0.0009008840479480045,
+          "z": -0.00013034824374981655
+        },
+        "angle": {
+          "x": 1.1268293023183563e-7,
+          "y": -0.0000018514805318021527,
+          "z": 8.180525499239489e-7
+        }
+      },
+      {
+        "id": "n205",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1230,
+          1231,
+          1232,
+          1233,
+          1234,
+          1235
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 25,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000840489807796707,
+          "y": -0.0008937153638573917,
+          "z": -0.00009464259399547575
+        },
+        "angle": {
+          "x": -4.509699696348973e-9,
+          "y": -0.0000012180727602719974,
+          "z": 9.418167175782187e-7
+        }
+      },
+      {
+        "id": "n206",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1236,
+          1237,
+          1238,
+          1239,
+          1240,
+          1241
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 25,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004166728991487167,
+          "y": -0.0008830215286461746,
+          "z": -0.00005997886934392497
+        },
+        "angle": {
+          "x": -5.980984955054838e-7,
+          "y": -3.0205782857078847e-8,
+          "z": 1.2374181806119959e-7
+        }
+      },
+      {
+        "id": "n207",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1242,
+          1243,
+          1244,
+          1245,
+          1246,
+          1247
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 20,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003860546859182419,
+          "y": -0.000721658305283845,
+          "z": -0.000029534443002562394
+        },
+        "angle": {
+          "x": -2.521778880779539e-7,
+          "y": -6.881296654228069e-8,
+          "z": 3.600347204752347e-7
+        }
+      },
+      {
+        "id": "n208",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1248,
+          1249,
+          1250,
+          1251,
+          1252,
+          1253
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 25,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000802474266433031,
+          "y": -0.0008857220276336559,
+          "z": -0.00003192226411395208
+        },
+        "angle": {
+          "x": -4.554230532560859e-8,
+          "y": -3.8154665804744287e-7,
+          "z": 9.335131048389906e-7
+        }
+      },
+      {
+        "id": "n209",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1254,
+          1255,
+          1256,
+          1257,
+          1258,
+          1259
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 25,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004066664733146555,
+          "y": -0.000879059995272586,
+          "z": -1.667278061656167e-19
+        },
+        "angle": {
+          "x": 5.3635962519203825e-20,
+          "y": -8.210158582951241e-20,
+          "z": 1.2150490919044296e-7
+        }
+      },
+      {
+        "id": "n210",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1260,
+          1261,
+          1262,
+          1263,
+          1264,
+          1265
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 20,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003860546859182491,
+          "y": -0.0007216583052838458,
+          "z": 0.000029534443002561862
+        },
+        "angle": {
+          "x": 2.5217788807797895e-7,
+          "y": 6.881296654223009e-8,
+          "z": 3.6003472047524255e-7
+        }
+      },
+      {
+        "id": "n211",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1266,
+          1267,
+          1268,
+          1269,
+          1270,
+          1271
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 25,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008024742664330363,
+          "y": -0.0008857220276336559,
+          "z": 0.00003192226411395144
+        },
+        "angle": {
+          "x": 4.554230532558997e-8,
+          "y": 3.815466580474292e-7,
+          "z": 9.335131048388729e-7
+        }
+      },
+      {
+        "id": "n212",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1272,
+          1273,
+          1274,
+          1275,
+          1276,
+          1277
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 25,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004166728991487296,
+          "y": -0.000883021528646175,
+          "z": 0.000059978869343924106
+        },
+        "angle": {
+          "x": 5.980984955054507e-7,
+          "y": 3.020578285693634e-8,
+          "z": 1.2374181806114937e-7
+        }
+      },
+      {
+        "id": "n213",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1278,
+          1279,
+          1280,
+          1281,
+          1282,
+          1283
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 20,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004043587267506789,
+          "y": -0.0007297391170247337,
+          "z": 0.00008871480978997077
+        },
+        "angle": {
+          "x": 5.935443419082153e-7,
+          "y": 3.4220356101853867e-7,
+          "z": 3.643427443273106e-7
+        }
+      },
+      {
+        "id": "n214",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1284,
+          1285,
+          1286,
+          1287,
+          1288,
+          1289
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 25,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008404898077967231,
+          "y": -0.000893715363857391,
+          "z": 0.00009464259399547411
+        },
+        "angle": {
+          "x": 4.509699696325873e-9,
+          "y": 0.0000012180727602719782,
+          "z": 9.418167175782213e-7
+        }
+      },
+      {
+        "id": "n215",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1290,
+          1291,
+          1292,
+          1293,
+          1294,
+          1295
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 25,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004146691564973748,
+          "y": -0.0008903415121194338,
+          "z": 0.00011857197727882953
+        },
+        "angle": {
+          "x": 4.3352440380272033e-7,
+          "y": 3.4333317200042003e-7,
+          "z": 1.0585813493448714e-7
+        }
+      },
+      {
+        "id": "n216",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1296,
+          1297,
+          1298,
+          1299,
+          1300,
+          1301
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 20,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004009510140286198,
+          "y": -0.0007407238439894433,
+          "z": 0.00016851156423977848
+        },
+        "angle": {
+          "x": 5.146052266844012e-7,
+          "y": 2.1506204048666038e-7,
+          "z": 4.3028140322661103e-7
+        }
+      },
+      {
+        "id": "n217",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1302,
+          1303,
+          1304,
+          1305,
+          1306,
+          1307
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 25,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008223451645304647,
+          "y": -0.0009008840479480039,
+          "z": 0.0001303482437498144
+        },
+        "angle": {
+          "x": -1.1268293023201221e-7,
+          "y": 0.000001851480531802149,
+          "z": 8.180525499238765e-7
+        }
+      },
+      {
+        "id": "n218",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1308,
+          1309,
+          1310,
+          1311,
+          1312,
+          1313
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 35,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000039558219669398865,
+          "y": -0.001197226806279167,
+          "z": -0.00010562362939201775
+        },
+        "angle": {
+          "x": 9.627414190354122e-7,
+          "y": -4.5367601425944907e-7,
+          "z": 2.2372345784924734e-7
+        }
+      },
+      {
+        "id": "n219",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1314,
+          1315,
+          1316,
+          1317,
+          1318,
+          1319
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 30,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000391868539923099,
+          "y": -0.0010459188045769106,
+          "z": -0.0001637218573224765
+        },
+        "angle": {
+          "x": 0.0000014785695779577276,
+          "y": -3.529361754605132e-7,
+          "z": 1.0265044401183095e-7
+        }
+      },
+      {
+        "id": "n220",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1320,
+          1321,
+          1322,
+          1323,
+          1324,
+          1325
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 30,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.0000406463400872509,
+          "y": -0.0010430154725548858,
+          "z": -0.00008507090062004336
+        },
+        "angle": {
+          "x": 0.0000011972246443525705,
+          "y": -3.52587125504896e-7,
+          "z": 3.3609302163534325e-8
+        }
+      },
+      {
+        "id": "n221",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1326,
+          1327,
+          1328,
+          1329,
+          1330,
+          1331
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 35,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007719951912713348,
+          "y": -0.0012065775784045785,
+          "z": -0.00011682182650942957
+        },
+        "angle": {
+          "x": 0.000002235225156168193,
+          "y": -0.0000019267619016425216,
+          "z": 0.0000011634555016633755
+        }
+      },
+      {
+        "id": "n222",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1332,
+          1333,
+          1334,
+          1335,
+          1336,
+          1337
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 35,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008043972530544783,
+          "y": -0.0012037922233349317,
+          "z": -0.00008466251439554828
+        },
+        "angle": {
+          "x": 5.352015567441837e-7,
+          "y": -0.0000012673405374508442,
+          "z": 0.0000011843571702633077
+        }
+      },
+      {
+        "id": "n223",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1338,
+          1339,
+          1340,
+          1341,
+          1342,
+          1343
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 35,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000040109214082682474,
+          "y": -0.001190752804205278,
+          "z": -0.00005338993519361292
+        },
+        "angle": {
+          "x": -5.06794149446643e-7,
+          "y": -4.634113156985006e-8,
+          "z": 2.415865838766627e-7
+        }
+      },
+      {
+        "id": "n224",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1344,
+          1345,
+          1346,
+          1347,
+          1348,
+          1349
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 30,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003897715821270549,
+          "y": -0.0010352618348686401,
+          "z": -0.000028225800962100432
+        },
+        "angle": {
+          "x": 3.847558650703117e-7,
+          "y": -7.221708664532393e-8,
+          "z": 4.0735382942000716e-8
+        }
+      },
+      {
+        "id": "n225",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1350,
+          1351,
+          1352,
+          1353,
+          1354,
+          1355
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 35,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007694562577506606,
+          "y": -0.0011937370501485542,
+          "z": -0.000028752079063425334
+        },
+        "angle": {
+          "x": -1.4812849078179817e-7,
+          "y": -3.9317774723414014e-7,
+          "z": 0.00000115141699586373
+        }
+      },
+      {
+        "id": "n226",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1356,
+          1357,
+          1358,
+          1359,
+          1360,
+          1361
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 35,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000039185532485004066,
+          "y": -0.001184336080936715,
+          "z": -6.085299483084769e-19
+        },
+        "angle": {
+          "x": -3.134062283759118e-19,
+          "y": -4.781251679729646e-20,
+          "z": 2.4612752089384443e-7
+        }
+      },
+      {
+        "id": "n227",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1362,
+          1363,
+          1364,
+          1365,
+          1366,
+          1367
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 30,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003897715821270662,
+          "y": -0.001035261834868639,
+          "z": 0.000028225800962099866
+        },
+        "angle": {
+          "x": -3.8475586507042544e-7,
+          "y": 7.221708664525802e-8,
+          "z": 4.073538294194481e-8
+        }
+      },
+      {
+        "id": "n228",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1368,
+          1369,
+          1370,
+          1371,
+          1372,
+          1373
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 35,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007694562577506594,
+          "y": -0.00119373705014855,
+          "z": 0.000028752079063423758
+        },
+        "angle": {
+          "x": 1.4812849078151131e-7,
+          "y": 3.9317774723410996e-7,
+          "z": 0.0000011514169958636888
+        }
+      },
+      {
+        "id": "n229",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1374,
+          1375,
+          1376,
+          1377,
+          1378,
+          1379
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 35,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000040109214082683694,
+          "y": -0.0011907528042052736,
+          "z": 0.00005338993519361163
+        },
+        "angle": {
+          "x": 5.067941494464063e-7,
+          "y": 4.634113156960046e-8,
+          "z": 2.415865838764907e-7
+        }
+      },
+      {
+        "id": "n230",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1380,
+          1381,
+          1382,
+          1383,
+          1384,
+          1385
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 30,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004064634008725282,
+          "y": -0.0010430154725548835,
+          "z": 0.00008507090062004201
+        },
+        "angle": {
+          "x": -0.0000011972246443525431,
+          "y": 3.525871255048138e-7,
+          "z": 3.3609302163476846e-8
+        }
+      },
+      {
+        "id": "n231",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1386,
+          1387,
+          1388,
+          1389,
+          1390,
+          1391
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 35,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008043972530544908,
+          "y": -0.0012037922233349256,
+          "z": 0.00008466251439554665
+        },
+        "angle": {
+          "x": -5.352015567441341e-7,
+          "y": 0.00000126734053745081,
+          "z": 0.0000011843571702632065
+        }
+      },
+      {
+        "id": "n232",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1392,
+          1393,
+          1394,
+          1395,
+          1396,
+          1397
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 35,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000039558219669401175,
+          "y": -0.0011972268062791626,
+          "z": 0.00010562362939201671
+        },
+        "angle": {
+          "x": -9.627414190350876e-7,
+          "y": 4.536760142593763e-7,
+          "z": 2.2372345784929732e-7
+        }
+      },
+      {
+        "id": "n233",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1398,
+          1399,
+          1400,
+          1401,
+          1402,
+          1403
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 30,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000039186853992311384,
+          "y": -0.0010459188045769119,
+          "z": 0.00016372185732247446
+        },
+        "angle": {
+          "x": -0.0000014785695779574646,
+          "y": 3.5293617546041305e-7,
+          "z": 1.0265044401181535e-7
+        }
+      },
+      {
+        "id": "n234",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1404,
+          1405,
+          1406,
+          1407,
+          1408,
+          1409
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 35,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00007719951912713454,
+          "y": -0.00120657757840458,
+          "z": 0.00011682182650942843
+        },
+        "angle": {
+          "x": -0.0000022352251561679357,
+          "y": 0.000001926761901642388,
+          "z": 0.0000011634555016633043
+        }
+      },
+      {
+        "id": "n235",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1410,
+          1411,
+          1412,
+          1413,
+          1414,
+          1415
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 45,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004284672539420836,
+          "y": -0.0014563642298368001,
+          "z": -0.0000811774698266121
+        },
+        "angle": {
+          "x": 0.0000016606326307315182,
+          "y": -7.954455500020985e-7,
+          "z": 2.8626572803236343e-7
+        }
+      },
+      {
+        "id": "n236",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1416,
+          1417,
+          1418,
+          1419,
+          1420,
+          1421
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 40,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003948184222360158,
+          "y": -0.0013472913336072519,
+          "z": -0.0001389313021681841
+        },
+        "angle": {
+          "x": 0.000001228918067799669,
+          "y": -6.177180526326956e-7,
+          "z": 5.049728426989507e-7
+        }
+      },
+      {
+        "id": "n237",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1422,
+          1423,
+          1424,
+          1425,
+          1426,
+          1427
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 40,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004167412306070941,
+          "y": -0.0013439210018901498,
+          "z": -0.00007093945861742764
+        },
+        "angle": {
+          "x": 0.0000015836105176921543,
+          "y": -4.119157343721139e-7,
+          "z": 3.5404146693176047e-7
+        }
+      },
+      {
+        "id": "n238",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1428,
+          1429,
+          1430,
+          1431,
+          1432,
+          1433
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 45,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008282818165539597,
+          "y": -0.001454192207496404,
+          "z": -0.00007824336700285044
+        },
+        "angle": {
+          "x": 0.00001459218026549071,
+          "y": -0.0000022975430349274054,
+          "z": 0.000001852673322126474
+        }
+      },
+      {
+        "id": "n239",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1434,
+          1435,
+          1436,
+          1437,
+          1438,
+          1439
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 45,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008589927752503797,
+          "y": -0.0014559793138788323,
+          "z": -0.00007326894424953757
+        },
+        "angle": {
+          "x": -0.000001249581968804535,
+          "y": -0.0000014464110090173359,
+          "z": 0.000001769513915291442
+        }
+      },
+      {
+        "id": "n240",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1440,
+          1441,
+          1442,
+          1443,
+          1444,
+          1445
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 45,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00004295220042594693,
+          "y": -0.001437481649742261,
+          "z": -0.00004950635916878738
+        },
+        "angle": {
+          "x": -0.0000018844626756282655,
+          "y": -2.1837575887264613e-7,
+          "z": 1.8462707459916276e-7
+        }
+      },
+      {
+        "id": "n241",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1446,
+          1447,
+          1448,
+          1449,
+          1450,
+          1451
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 40,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000039984469914587665,
+          "y": -0.0013310824666634695,
+          "z": -0.000025836463151752323
+        },
+        "angle": {
+          "x": 2.2791766389819356e-7,
+          "y": -8.511901258034514e-8,
+          "z": 3.108674793414768e-7
+        }
+      },
+      {
+        "id": "n242",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1452,
+          1453,
+          1454,
+          1455,
+          1456,
+          1457
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 45,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008130967298253002,
+          "y": -0.0014399630080205875,
+          "z": -0.000027499971042723744
+        },
+        "angle": {
+          "x": -1.7737216564605109e-7,
+          "y": -3.8887647384273006e-7,
+          "z": 0.0000017773279176237051
+        }
+      },
+      {
+        "id": "n243",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1458,
+          1459,
+          1460,
+          1461,
+          1462,
+          1463
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 45,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000041683230633945814,
+          "y": -0.0014323120303334769,
+          "z": -2.2199402758809833e-18
+        },
+        "angle": {
+          "x": -4.673084958057063e-19,
+          "y": 3.655009876988532e-21,
+          "z": 1.502470976305877e-7
+        }
+      },
+      {
+        "id": "n244",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1464,
+          1465,
+          1466,
+          1467,
+          1468,
+          1469
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 40,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003998446991458657,
+          "y": -0.001331082466663466,
+          "z": 0.00002583646315174966
+        },
+        "angle": {
+          "x": -2.279176638985486e-7,
+          "y": 8.511901258028427e-8,
+          "z": 3.1086747934147947e-7
+        }
+      },
+      {
+        "id": "n245",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1470,
+          1471,
+          1472,
+          1473,
+          1474,
+          1475
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 45,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008130967298253022,
+          "y": -0.0014399630080205862,
+          "z": 0.000027499971042719627
+        },
+        "angle": {
+          "x": 1.7737216564583014e-7,
+          "y": 3.8887647384266447e-7,
+          "z": 0.0000017773279176238631
+        }
+      },
+      {
+        "id": "n246",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1476,
+          1477,
+          1478,
+          1479,
+          1480,
+          1481
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 45,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000042952200425947314,
+          "y": -0.0014374816497422585,
+          "z": 0.000049506359168784154
+        },
+        "angle": {
+          "x": 0.0000018844626756280285,
+          "y": 2.1837575887249022e-7,
+          "z": 1.846270745991275e-7
+        }
+      },
+      {
+        "id": "n247",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1482,
+          1483,
+          1484,
+          1485,
+          1486,
+          1487
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 40,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000041674123060711565,
+          "y": -0.0013439210018901448,
+          "z": 0.00007093945861742636
+        },
+        "angle": {
+          "x": -0.0000015836105176923638,
+          "y": 4.119157343720232e-7,
+          "z": 3.540414669315036e-7
+        }
+      },
+      {
+        "id": "n248",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1488,
+          1489,
+          1490,
+          1491,
+          1492,
+          1493
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 45,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008589927752503766,
+          "y": -0.0014559793138788223,
+          "z": 0.00007326894424953465
+        },
+        "angle": {
+          "x": 0.0000012495819688042738,
+          "y": 0.0000014464110090172433,
+          "z": 0.000001769513915291234
+        }
+      },
+      {
+        "id": "n249",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1494,
+          1495,
+          1496,
+          1497,
+          1498,
+          1499
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 45,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.000042846725394209255,
+          "y": -0.001456364229836794,
+          "z": 0.00008117746982661018
+        },
+        "angle": {
+          "x": -0.0000016606326307318335,
+          "y": 7.954455500019066e-7,
+          "z": 2.862657280320414e-7
+        }
+      },
+      {
+        "id": "n250",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1500,
+          1501,
+          1502,
+          1503,
+          1504,
+          1505
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 15,
+          "y": 40,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00003948184222360471,
+          "y": -0.0013472913336072467,
+          "z": 0.00013893130216818282
+        },
+        "angle": {
+          "x": -0.000001228918067799857,
+          "y": 6.177180526326216e-7,
+          "z": 5.049728426988531e-7
+        }
+      },
+      {
+        "id": "n251",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1506,
+          1507,
+          1508,
+          1509,
+          1510,
+          1511
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 10,
+          "y": 45,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -0.00008282818165539572,
+          "y": -0.0014541922074963911,
+          "z": 0.00007824336700284805
+        },
+        "angle": {
+          "x": -0.000014592180265491469,
+          "y": 0.000002297543034927317,
+          "z": 0.0000018526733221262052
+        }
+      },
+      {
+        "id": "n252",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1512,
+          1513,
+          1514,
+          1515,
+          1516,
+          1517
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 25,
+          "y": -5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n253",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1518,
+          1519,
+          1520,
+          1521,
+          1522,
+          1523
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 20,
+          "y": -5,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n254",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1524,
+          1525,
+          1526,
+          1527,
+          1528,
+          1529
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 20,
+          "y": -5,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n255",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1530,
+          1531,
+          1532,
+          1533,
+          1534,
+          1535
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000022715550476179493,
+          "y": -0.00027594236622306467,
+          "z": -0.00007989572585980398
+        },
+        "angle": {
+          "x": -0.000005038027469426002,
+          "y": 2.00330635219035e-7,
+          "z": -3.2566379033415175e-7
+        }
+      },
+      {
+        "id": "n256",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1536,
+          1537,
+          1538,
+          1539,
+          1540,
+          1541
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 0,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000010147502320455421,
+          "y": -0.00014808874609106658,
+          "z": -0.00008108321152784224
+        },
+        "angle": {
+          "x": -0.000012269192540768802,
+          "y": -1.2816734412096108e-8,
+          "z": -0.00000160536098745835
+        }
+      },
+      {
+        "id": "n257",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1542,
+          1543,
+          1544,
+          1545,
+          1546,
+          1547
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 0,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000011044499633255954,
+          "y": -0.00012547074463117327,
+          "z": -0.000025352785418000833
+        },
+        "angle": {
+          "x": -0.000008152215314052528,
+          "y": 1.2370650665796584e-7,
+          "z": -0.0000017052498127590936
+        }
+      },
+      {
+        "id": "n258",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1548,
+          1549,
+          1550,
+          1551,
+          1552,
+          1553
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 5,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 1.0597045069847236e-15,
+          "y": -0.0002862876705978491,
+          "z": -0.00009105442209841503
+        },
+        "angle": {
+          "x": -0.00000528822177348499,
+          "y": 2.858346322047794e-17,
+          "z": -4.5406749015528807e-17
+        }
+      },
+      {
+        "id": "n259",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1554,
+          1555,
+          1556,
+          1557,
+          1558,
+          1559
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 5,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -2.8978167232603635e-17,
+          "y": -0.0002632291654953533,
+          "z": -0.00005670246083041181
+        },
+        "angle": {
+          "x": -0.000002953241720239814,
+          "y": 3.571454182949144e-17,
+          "z": 1.9471744950693296e-17
+        }
+      },
+      {
+        "id": "n260",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1560,
+          1561,
+          1562,
+          1563,
+          1564,
+          1565
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 25,
+          "y": -5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n261",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1566,
+          1567,
+          1568,
+          1569,
+          1570,
+          1571
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 20,
+          "y": -5,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n262",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1572,
+          1573,
+          1574,
+          1575,
+          1576,
+          1577
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000023515465505632702,
+          "y": -0.0002603716762233337,
+          "z": -0.00003567012152761643
+        },
+        "angle": {
+          "x": -0.000002059305390701593,
+          "y": 5.587137226106247e-8,
+          "z": -3.386543177012881e-7
+        }
+      },
+      {
+        "id": "n263",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1578,
+          1579,
+          1580,
+          1581,
+          1582,
+          1583
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 0,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000010631775072500825,
+          "y": -0.00012277031972386586,
+          "z": -0.000008165899174069953
+        },
+        "angle": {
+          "x": -0.0000025120715618884945,
+          "y": 2.0106871018006817e-8,
+          "z": -0.0000016661597923063514
+        }
+      },
+      {
+        "id": "n264",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1584,
+          1585,
+          1586,
+          1587,
+          1588,
+          1589
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 5,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -4.939428034665728e-16,
+          "y": -0.0002575313888096321,
+          "z": -0.000017735197214383274
+        },
+        "angle": {
+          "x": -7.817217855521419e-7,
+          "y": 1.2789258230596294e-17,
+          "z": 8.634313077438933e-18
+        }
+      },
+      {
+        "id": "n265",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1590,
+          1591,
+          1592,
+          1593,
+          1594,
+          1595
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 25,
+          "y": -5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n266",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1596,
+          1597,
+          1598,
+          1599,
+          1600,
+          1601
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 20,
+          "y": -5,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n267",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1602,
+          1603,
+          1604,
+          1605,
+          1606,
+          1607
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00002287607376014491,
+          "y": -0.0002581136504858279,
+          "z": -8.098961435387606e-20
+        },
+        "angle": {
+          "x": -1.6463600878718287e-20,
+          "y": -3.841018254362262e-20,
+          "z": -3.317960096485036e-7
+        }
+      },
+      {
+        "id": "n268",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1608,
+          1609,
+          1610,
+          1611,
+          1612,
+          1613
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 0,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000010631775072500429,
+          "y": -0.00012277031972386613,
+          "z": 0.00000816589917406979
+        },
+        "angle": {
+          "x": 0.0000025120715618884424,
+          "y": -2.010687101802803e-8,
+          "z": -0.0000016661597923063395
+        }
+      },
+      {
+        "id": "n269",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1614,
+          1615,
+          1616,
+          1617,
+          1618,
+          1619
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 5,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -4.941857394579829e-16,
+          "y": -0.00025753138880963165,
+          "z": 0.000017735197214382752
+        },
+        "angle": {
+          "x": 7.817217855521271e-7,
+          "y": -1.2830241153230205e-17,
+          "z": 8.640669608028593e-18
+        }
+      },
+      {
+        "id": "n270",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1620,
+          1621,
+          1622,
+          1623,
+          1624,
+          1625
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 25,
+          "y": -5,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n271",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1626,
+          1627,
+          1628,
+          1629,
+          1630,
+          1631
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 20,
+          "y": -5,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n272",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1632,
+          1633,
+          1634,
+          1635,
+          1636,
+          1637
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 5,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00002351546550563198,
+          "y": -0.00026037167622333386,
+          "z": 0.00003567012152761603
+        },
+        "angle": {
+          "x": 0.0000020593053907017005,
+          "y": -5.587137226115782e-8,
+          "z": -3.3865431770130524e-7
+        }
+      },
+      {
+        "id": "n273",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1638,
+          1639,
+          1640,
+          1641,
+          1642,
+          1643
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 0,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000011044499633255312,
+          "y": -0.00012547074463117373,
+          "z": 0.00002535278541800058
+        },
+        "angle": {
+          "x": 0.00000815221531405249,
+          "y": -1.237065066579847e-7,
+          "z": -0.0000017052498127590057
+        }
+      },
+      {
+        "id": "n274",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1644,
+          1645,
+          1646,
+          1647,
+          1648,
+          1649
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 5,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -2.998353651990881e-17,
+          "y": -0.0002632291654953543,
+          "z": 0.000056702460830411354
+        },
+        "angle": {
+          "x": 0.0000029532417202398235,
+          "y": -3.573589093314724e-17,
+          "z": 1.9420849994548303e-17
+        }
+      },
+      {
+        "id": "n275",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1650,
+          1651,
+          1652,
+          1653,
+          1654,
+          1655
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 25,
+          "y": -5,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n276",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1656,
+          1657,
+          1658,
+          1659,
+          1660,
+          1661
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 20,
+          "y": -5,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n277",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1662,
+          1663,
+          1664,
+          1665,
+          1666,
+          1667
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 5,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000022715550476178002,
+          "y": -0.00027594236622306565,
+          "z": 0.00007989572585980376
+        },
+        "angle": {
+          "x": 0.0000050380274694259766,
+          "y": -2.0033063521910656e-7,
+          "z": -3.256637903341381e-7
+        }
+      },
+      {
+        "id": "n278",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1668,
+          1669,
+          1670,
+          1671,
+          1672,
+          1673
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 0,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000010147502320454495,
+          "y": -0.00014808874609106704,
+          "z": 0.00008108321152784228
+        },
+        "angle": {
+          "x": 0.000012269192540768792,
+          "y": 1.2816734412091527e-8,
+          "z": -0.0000016053609874582255
+        }
+      },
+      {
+        "id": "n279",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1674,
+          1675,
+          1676,
+          1677,
+          1678,
+          1679
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 5,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 1.0578438936900294e-15,
+          "y": -0.0002862876705978499,
+          "z": 0.00009105442209841495
+        },
+        "angle": {
+          "x": 0.0000052882217734850125,
+          "y": -2.865092338412327e-17,
+          "z": -4.539490574358854e-17
+        }
+      },
+      {
+        "id": "n280",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1680,
+          1681,
+          1682,
+          1683,
+          1684,
+          1685
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 15,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003809357838550264,
+          "y": -0.0005798377184669264,
+          "z": -0.00011342037191779021
+        },
+        "angle": {
+          "x": -0.000002427316928480638,
+          "y": 2.571453348479352e-7,
+          "z": -3.5395761427018414e-7
+        }
+      },
+      {
+        "id": "n281",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1686,
+          1687,
+          1688,
+          1689,
+          1690,
+          1691
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 10,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00002975497318887621,
+          "y": -0.0004365130503066856,
+          "z": -0.00014992651987513425
+        },
+        "angle": {
+          "x": -0.0000034210465880620993,
+          "y": 7.206324570958423e-8,
+          "z": -0.000001172297528094157
+        }
+      },
+      {
+        "id": "n282",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1692,
+          1693,
+          1694,
+          1695,
+          1696,
+          1697
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 10,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003054844848478775,
+          "y": -0.0004158146858357147,
+          "z": -0.0000726703385944066
+        },
+        "angle": {
+          "x": -0.0000034593115571445457,
+          "y": 3.187937321178437e-7,
+          "z": -0.0000010810232525487956
+        }
+      },
+      {
+        "id": "n283",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1698,
+          1699,
+          1700,
+          1701,
+          1702,
+          1703
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 15,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 3.3869280964424065e-15,
+          "y": -0.0005849687701976557,
+          "z": -0.00012073602094850635
+        },
+        "angle": {
+          "x": -0.0000015503982152781574,
+          "y": 1.5169938111312e-16,
+          "z": -1.9296637640589332e-17
+        }
+      },
+      {
+        "id": "n284",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1704,
+          1705,
+          1706,
+          1707,
+          1708,
+          1709
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 15,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -5.598351242697792e-16,
+          "y": -0.0005692123369925466,
+          "z": -0.00008445313816525642
+        },
+        "angle": {
+          "x": -0.0000012787482078189961,
+          "y": 1.1901037305367577e-16,
+          "z": 6.577059993998841e-17
+        }
+      },
+      {
+        "id": "n285",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1710,
+          1711,
+          1712,
+          1713,
+          1714,
+          1715
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 15,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003799706908880073,
+          "y": -0.0005663593015426447,
+          "z": -0.00005631387174969125
+        },
+        "angle": {
+          "x": -0.0000013429902461484329,
+          "y": 2.1438966202114648e-8,
+          "z": -3.176578704086568e-7
+        }
+      },
+      {
+        "id": "n286",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1716,
+          1717,
+          1718,
+          1719,
+          1720,
+          1721
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 10,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00002925207590192772,
+          "y": -0.0004072917313116777,
+          "z": -0.000023032537831409548
+        },
+        "angle": {
+          "x": -0.0000013210725294425359,
+          "y": 5.751242611005224e-8,
+          "z": -0.0000010246141976443088
+        }
+      },
+      {
+        "id": "n287",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1722,
+          1723,
+          1724,
+          1725,
+          1726,
+          1727
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 15,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -9.96106580228416e-16,
+          "y": -0.0005609061563483864,
+          "z": -0.00002817517195237923
+        },
+        "angle": {
+          "x": -5.106519147510729e-7,
+          "y": 1.346032612240052e-17,
+          "z": 7.408634986023082e-18
+        }
+      },
+      {
+        "id": "n288",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1728,
+          1729,
+          1730,
+          1731,
+          1732,
+          1733
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 15,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000036990959209738524,
+          "y": -0.0005615869205248081,
+          "z": 2.033860376390582e-20
+        },
+        "angle": {
+          "x": -3.6597868651107036e-20,
+          "y": -5.076014637076424e-20,
+          "z": -3.047578308094723e-7
+        }
+      },
+      {
+        "id": "n289",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1734,
+          1735,
+          1736,
+          1737,
+          1738,
+          1739
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 10,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00002925207590192764,
+          "y": -0.00040729173131167707,
+          "z": 0.000023032537831409416
+        },
+        "angle": {
+          "x": 0.0000013210725294425577,
+          "y": -5.751242611012339e-8,
+          "z": -0.0000010246141976442633
+        }
+      },
+      {
+        "id": "n290",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1740,
+          1741,
+          1742,
+          1743,
+          1744,
+          1745
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 15,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -9.965293189120407e-16,
+          "y": -0.0005609061563483865,
+          "z": 0.0000281751719523788
+        },
+        "angle": {
+          "x": 5.106519147510791e-7,
+          "y": -1.3551883613973945e-17,
+          "z": 7.401548092215344e-18
+        }
+      },
+      {
+        "id": "n291",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1746,
+          1747,
+          1748,
+          1749,
+          1750,
+          1751
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 15,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003799706908879954,
+          "y": -0.0005663593015426448,
+          "z": 0.000056313871749691064
+        },
+        "angle": {
+          "x": 0.000001342990246148642,
+          "y": -2.1438966202308903e-8,
+          "z": -3.17657870408618e-7
+        }
+      },
+      {
+        "id": "n292",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1752,
+          1753,
+          1754,
+          1755,
+          1756,
+          1757
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 10,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000030548448484786255,
+          "y": -0.000415814685835716,
+          "z": 0.0000726703385944063
+        },
+        "angle": {
+          "x": 0.000003459311557144587,
+          "y": -3.187937321179195e-7,
+          "z": -0.0000010810232525487354
+        }
+      },
+      {
+        "id": "n293",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1758,
+          1759,
+          1760,
+          1761,
+          1762,
+          1763
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 15,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -5.614833260873215e-16,
+          "y": -0.0005692123369925473,
+          "z": 0.00008445313816525586
+        },
+        "angle": {
+          "x": 0.0000012787482078189754,
+          "y": -1.1912456973122695e-16,
+          "z": 6.563699564075845e-17
+        }
+      },
+      {
+        "id": "n294",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1764,
+          1765,
+          1766,
+          1767,
+          1768,
+          1769
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 15,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003809357838550027,
+          "y": -0.0005798377184669276,
+          "z": 0.00011342037191779006
+        },
+        "angle": {
+          "x": 0.000002427316928480651,
+          "y": -2.5714533484809424e-7,
+          "z": -3.5395761427025095e-7
+        }
+      },
+      {
+        "id": "n295",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1770,
+          1771,
+          1772,
+          1773,
+          1774,
+          1775
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 10,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000029754973188873533,
+          "y": -0.000436513050306687,
+          "z": 0.0001499265198751341
+        },
+        "angle": {
+          "x": 0.000003421046588062122,
+          "y": -7.206324570964883e-8,
+          "z": -0.0000011722975280941398
+        }
+      },
+      {
+        "id": "n296",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1776,
+          1777,
+          1778,
+          1779,
+          1780,
+          1781
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 15,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 3.384180932804129e-15,
+          "y": -0.0005849687701976555,
+          "z": 0.00012073602094850571
+        },
+        "angle": {
+          "x": 0.0000015503982152780324,
+          "y": -1.5181508279158399e-16,
+          "z": -1.943669921124086e-17
+        }
+      },
+      {
+        "id": "n297",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1782,
+          1783,
+          1784,
+          1785,
+          1786,
+          1787
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 25,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004146691565434689,
+          "y": -0.0008903415121167189,
+          "z": -0.00011857197728224093
+        },
+        "angle": {
+          "x": -4.335244028468397e-7,
+          "y": 3.4333317012589424e-7,
+          "z": -1.0585813484940583e-7
+        }
+      },
+      {
+        "id": "n298",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1788,
+          1789,
+          1790,
+          1791,
+          1792,
+          1793
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 20,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004009510141420624,
+          "y": -0.0007407238439856294,
+          "z": -0.0001685115642420428
+        },
+        "angle": {
+          "x": -5.146052270074737e-7,
+          "y": 2.150620404215973e-7,
+          "z": -4.3028140329834106e-7
+        }
+      },
+      {
+        "id": "n299",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1794,
+          1795,
+          1796,
+          1797,
+          1798,
+          1799
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 20,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000040435872671070276,
+          "y": -0.000729739117025392,
+          "z": -0.0000887148097915634
+        },
+        "angle": {
+          "x": -5.93544342004316e-7,
+          "y": 3.422035608814038e-7,
+          "z": -3.6434274426903253e-7
+        }
+      },
+      {
+        "id": "n300",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1800,
+          1801,
+          1802,
+          1803,
+          1804,
+          1805
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 25,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 6.11572074804893e-15,
+          "y": -0.0008930668025669994,
+          "z": -0.00012489422101734748
+        },
+        "angle": {
+          "x": 2.6821019410573873e-7,
+          "y": 5.059365842403605e-16,
+          "z": 2.511661277049982e-16
+        }
+      },
+      {
+        "id": "n301",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1806,
+          1807,
+          1808,
+          1809,
+          1810,
+          1811
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 25,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -2.1194329371070132e-15,
+          "y": -0.0008861515011039337,
+          "z": -0.00008887423872002788
+        },
+        "angle": {
+          "x": -1.750307399947009e-8,
+          "y": 2.1578973780345226e-16,
+          "z": 2.6091770837885955e-17
+        }
+      },
+      {
+        "id": "n302",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1812,
+          1813,
+          1814,
+          1815,
+          1816,
+          1817
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 25,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004166728991045496,
+          "y": -0.0008830215286468671,
+          "z": -0.00005997886934401323
+        },
+        "angle": {
+          "x": -5.980984959153384e-7,
+          "y": 3.0205783234752514e-8,
+          "z": -1.2374181804410744e-7
+        }
+      },
+      {
+        "id": "n303",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1818,
+          1819,
+          1820,
+          1821,
+          1822,
+          1823
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 20,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000038605468589032553,
+          "y": -0.0007216583052836391,
+          "z": -0.000029534443002483054
+        },
+        "angle": {
+          "x": -2.5217788804266885e-7,
+          "y": 6.881296653179184e-8,
+          "z": -3.6003472032575193e-7
+        }
+      },
+      {
+        "id": "n304",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1824,
+          1825,
+          1826,
+          1827,
+          1828,
+          1829
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 25,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -1.876798840645635e-15,
+          "y": -0.0008783999569869059,
+          "z": -0.000030054327142821774
+        },
+        "angle": {
+          "x": -3.8527078949011e-8,
+          "y": -2.005457944655861e-17,
+          "z": 3.7006438242171917e-17
+        }
+      },
+      {
+        "id": "n305",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1830,
+          1831,
+          1832,
+          1833,
+          1834,
+          1835
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 25,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004066664732726329,
+          "y": -0.0008790599952720412,
+          "z": 3.8121629955361486e-19
+        },
+        "angle": {
+          "x": -1.351941355192191e-19,
+          "y": -1.1838722445189128e-19,
+          "z": -1.2150490910960933e-7
+        }
+      },
+      {
+        "id": "n306",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1836,
+          1837,
+          1838,
+          1839,
+          1840,
+          1841
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 20,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000038605468589031964,
+          "y": -0.0007216583052836386,
+          "z": 0.000029534443002483288
+        },
+        "angle": {
+          "x": 2.5217788804272306e-7,
+          "y": -6.881296653190181e-8,
+          "z": -3.6003472032555907e-7
+        }
+      },
+      {
+        "id": "n307",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1842,
+          1843,
+          1844,
+          1845,
+          1846,
+          1847
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 25,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -1.8775274492052933e-15,
+          "y": -0.0008783999569869069,
+          "z": 0.000030054327142821554
+        },
+        "angle": {
+          "x": 3.8527078949010456e-8,
+          "y": 1.9934361702521632e-17,
+          "z": 3.698444531042861e-17
+        }
+      },
+      {
+        "id": "n308",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1848,
+          1849,
+          1850,
+          1851,
+          1852,
+          1853
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 25,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004166728991045329,
+          "y": -0.0008830215286468666,
+          "z": 0.00005997886934401338
+        },
+        "angle": {
+          "x": 5.980984959155154e-7,
+          "y": -3.020578323496987e-8,
+          "z": -1.2374181804400103e-7
+        }
+      },
+      {
+        "id": "n309",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1854,
+          1855,
+          1856,
+          1857,
+          1858,
+          1859
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 20,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000404358726710687,
+          "y": -0.0007297391170253936,
+          "z": 0.0000887148097915633
+        },
+        "angle": {
+          "x": 5.935443420043493e-7,
+          "y": -3.422035608814981e-7,
+          "z": -3.6434274426894714e-7
+        }
+      },
+      {
+        "id": "n310",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1860,
+          1861,
+          1862,
+          1863,
+          1864,
+          1865
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 25,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -2.1213961981171945e-15,
+          "y": -0.0008861515011039358,
+          "z": 0.000088874238720027
+        },
+        "angle": {
+          "x": 1.7503073999478626e-8,
+          "y": -2.1595409516125171e-16,
+          "z": 2.609164669193202e-17
+        }
+      },
+      {
+        "id": "n311",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1866,
+          1867,
+          1868,
+          1869,
+          1870,
+          1871
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 25,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004146691565434401,
+          "y": -0.0008903415121167201,
+          "z": 0.00011857197728224044
+        },
+        "angle": {
+          "x": 4.3352440284703206e-7,
+          "y": -3.433331701261112e-7,
+          "z": -1.0585813484934515e-7
+        }
+      },
+      {
+        "id": "n312",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1872,
+          1873,
+          1874,
+          1875,
+          1876,
+          1877
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 20,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004009510141420339,
+          "y": -0.0007407238439856317,
+          "z": 0.0001685115642420426
+        },
+        "angle": {
+          "x": 5.146052270074543e-7,
+          "y": -2.1506204042180662e-7,
+          "z": -4.302814032983089e-7
+        }
+      },
+      {
+        "id": "n313",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1878,
+          1879,
+          1880,
+          1881,
+          1882,
+          1883
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 25,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 6.1128533208556665e-15,
+          "y": -0.0008930668025670019,
+          "z": 0.00012489422101734623
+        },
+        "angle": {
+          "x": -2.682101941056386e-7,
+          "y": -5.060477192507033e-16,
+          "z": 2.510489076155388e-16
+        }
+      },
+      {
+        "id": "n314",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1884,
+          1885,
+          1886,
+          1887,
+          1888,
+          1889
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 35,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003955821967227466,
+          "y": -0.0011972268062768903,
+          "z": -0.0001056236293970985
+        },
+        "angle": {
+          "x": 9.627414208746837e-7,
+          "y": 4.5367601191612914e-7,
+          "z": -2.237234577044147e-7
+        }
+      },
+      {
+        "id": "n315",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1890,
+          1891,
+          1892,
+          1893,
+          1894,
+          1895
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 30,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003918685400938592,
+          "y": -0.0010459188045668383,
+          "z": -0.00016372185732756335
+        },
+        "angle": {
+          "x": 0.000001478569577683941,
+          "y": 3.5293617554797386e-7,
+          "z": -1.0265044329973982e-7
+        }
+      },
+      {
+        "id": "n316",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1896,
+          1897,
+          1898,
+          1899,
+          1900,
+          1901
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 30,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000406463400762742,
+          "y": -0.0010430154725591303,
+          "z": -0.00008507090062201786
+        },
+        "angle": {
+          "x": 0.0000011972246443329123,
+          "y": 3.525871252922558e-7,
+          "z": -3.360930219507903e-8
+        }
+      },
+      {
+        "id": "n317",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1902,
+          1903,
+          1904,
+          1905,
+          1906,
+          1907
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 35,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 3.813633701175138e-15,
+          "y": -0.0011954575757590442,
+          "z": -0.00011046042652143335
+        },
+        "angle": {
+          "x": 0.0000024514605235100407,
+          "y": 8.343489484799643e-16,
+          "z": 6.020294141519786e-16
+        }
+      },
+      {
+        "id": "n318",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1908,
+          1909,
+          1910,
+          1911,
+          1912,
+          1913
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 35,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -3.341378459201154e-15,
+          "y": -0.0011932409620185752,
+          "z": -0.00007876339612480257
+        },
+        "angle": {
+          "x": 5.948869342392166e-7,
+          "y": 1.7602762290655466e-16,
+          "z": -1.9510933876189925e-16
+        }
+      },
+      {
+        "id": "n319",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1914,
+          1915,
+          1916,
+          1917,
+          1918,
+          1919
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 35,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004010921407348147,
+          "y": -0.0011907528042070792,
+          "z": -0.00005338993519225395
+        },
+        "angle": {
+          "x": -5.06794150333209e-7,
+          "y": 4.634113199138888e-8,
+          "z": -2.4158658406130446e-7
+        }
+      },
+      {
+        "id": "n320",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1920,
+          1921,
+          1922,
+          1923,
+          1924,
+          1925
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 30,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003897715820776684,
+          "y": -0.0010352618348672734,
+          "z": -0.00002822580096121211
+        },
+        "angle": {
+          "x": 3.847558653195697e-7,
+          "y": 7.221708634970565e-8,
+          "z": -4.073538250400782e-8
+        }
+      },
+      {
+        "id": "n321",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1926,
+          1927,
+          1928,
+          1929,
+          1930,
+          1931
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 35,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -4.581426592736954e-15,
+          "y": -0.0011831794977392046,
+          "z": -0.0000268460112186263
+        },
+        "angle": {
+          "x": -1.4038828520842455e-7,
+          "y": -9.611983437932581e-17,
+          "z": 1.051890090057279e-16
+        }
+      },
+      {
+        "id": "n322",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1932,
+          1933,
+          1934,
+          1935,
+          1936,
+          1937
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 35,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003918553247536295,
+          "y": -0.0011843360809355565,
+          "z": -1.8770192083999574e-19
+        },
+        "angle": {
+          "x": -2.2489000204762577e-19,
+          "y": -1.7598182851128243e-19,
+          "z": -2.461275204899561e-7
+        }
+      },
+      {
+        "id": "n323",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1938,
+          1939,
+          1940,
+          1941,
+          1942,
+          1943
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 30,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003897715820776589,
+          "y": -0.0010352618348672708,
+          "z": 0.00002822580096121273
+        },
+        "angle": {
+          "x": -3.8475586531963434e-7,
+          "y": -7.221708634987212e-8,
+          "z": -4.0735382503798584e-8
+        }
+      },
+      {
+        "id": "n324",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1944,
+          1945,
+          1946,
+          1947,
+          1948,
+          1949
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 35,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -4.582591288628483e-15,
+          "y": -0.0011831794977392052,
+          "z": 0.000026846011218625655
+        },
+        "angle": {
+          "x": 1.4038828520826886e-7,
+          "y": 9.593567486015277e-17,
+          "z": 1.0506508573466088e-16
+        }
+      },
+      {
+        "id": "n325",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1950,
+          1951,
+          1952,
+          1953,
+          1954,
+          1955
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 35,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000040109214073479265,
+          "y": -0.0011907528042070768,
+          "z": 0.00005338993519225426
+        },
+        "angle": {
+          "x": 5.06794150332969e-7,
+          "y": -4.634113199157354e-8,
+          "z": -2.4158658406128154e-7
+        }
+      },
+      {
+        "id": "n326",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1956,
+          1957,
+          1958,
+          1959,
+          1960,
+          1961
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 30,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000040646340076271475,
+          "y": -0.0010430154725591283,
+          "z": 0.00008507090062201793
+        },
+        "angle": {
+          "x": -0.0000011972246443328534,
+          "y": -3.5258712529237487e-7,
+          "z": -3.360930219493959e-8
+        }
+      },
+      {
+        "id": "n327",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1962,
+          1963,
+          1964,
+          1965,
+          1966,
+          1967
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 35,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": -3.343961228485757e-15,
+          "y": -0.0011932409620185726,
+          "z": 0.00007876339612480209
+        },
+        "angle": {
+          "x": -5.948869342392243e-7,
+          "y": -1.7619182968204764e-16,
+          "z": -1.951696965321697e-16
+        }
+      },
+      {
+        "id": "n328",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1968,
+          1969,
+          1970,
+          1971,
+          1972,
+          1973
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 35,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003955821967227098,
+          "y": -0.0011972268062768892,
+          "z": 0.00010562362939709856
+        },
+        "angle": {
+          "x": -9.627414208744923e-7,
+          "y": -4.5367601191634524e-7,
+          "z": -2.237234577044217e-7
+        }
+      },
+      {
+        "id": "n329",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1974,
+          1975,
+          1976,
+          1977,
+          1978,
+          1979
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 30,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003918685400938163,
+          "y": -0.00104591880456684,
+          "z": 0.00016372185732756257
+        },
+        "angle": {
+          "x": -0.0000014785695776837462,
+          "y": -3.529361755481746e-7,
+          "z": -1.0265044329961758e-7
+        }
+      },
+      {
+        "id": "n330",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1980,
+          1981,
+          1982,
+          1983,
+          1984,
+          1985
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 35,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 3.810060663593556e-15,
+          "y": -0.001195457575759043,
+          "z": 0.00011046042652143298
+        },
+        "angle": {
+          "x": -0.000002451460523509802,
+          "y": -8.344389836275432e-16,
+          "z": 6.019792408711499e-16
+        }
+      },
+      {
+        "id": "n331",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1986,
+          1987,
+          1988,
+          1989,
+          1990,
+          1991
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 45,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004284672539015515,
+          "y": -0.001456364229836829,
+          "z": -0.00008117746983166995
+        },
+        "angle": {
+          "x": 0.0000016606326306709278,
+          "y": 7.954455489867558e-7,
+          "z": -2.8626572805244536e-7
+        }
+      },
+      {
+        "id": "n332",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1992,
+          1993,
+          1994,
+          1995,
+          1996,
+          1997
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 40,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000039481842230983195,
+          "y": -0.001347291333601417,
+          "z": -0.000138931302173174
+        },
+        "angle": {
+          "x": 0.0000012289180678634957,
+          "y": 6.177180528832378e-7,
+          "z": -5.049728414977981e-7
+        }
+      },
+      {
+        "id": "n333",
+        "parent": "11",
+        "degrees_of_freedom": [
+          1998,
+          1999,
+          2000,
+          2001,
+          2002,
+          2003
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 40,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000416741230488041,
+          "y": -0.0013439210018935026,
+          "z": -0.00007093945861841472
+        },
+        "angle": {
+          "x": 0.0000015836105178016954,
+          "y": 4.119157342065112e-7,
+          "z": -3.5404146696072323e-7
+        }
+      },
+      {
+        "id": "n334",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2004,
+          2005,
+          2006,
+          2007,
+          2008,
+          2009
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 45,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -1.3815781371222334e-15,
+          "y": -0.0014417071222516315,
+          "z": -0.00006812708739177694
+        },
+        "angle": {
+          "x": 0.000014638813492579602,
+          "y": 7.928219210432784e-16,
+          "z": 4.466892123027119e-16
+        }
+      },
+      {
+        "id": "n335",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2010,
+          2011,
+          2012,
+          2013,
+          2014,
+          2015
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 45,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -3.5409883899609907e-15,
+          "y": -0.0014465553857091092,
+          "z": -0.0000654099824354298
+        },
+        "angle": {
+          "x": -0.0000010322651655231949,
+          "y": 2.7649795461349628e-17,
+          "z": -2.280287103712141e-16
+        }
+      },
+      {
+        "id": "n336",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2016,
+          2017,
+          2018,
+          2019,
+          2020,
+          2021
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 45,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004295220041275926,
+          "y": -0.0014374816497435355,
+          "z": -0.000049506359165184705
+        },
+        "angle": {
+          "x": -0.0000018844626752458781,
+          "y": 2.1837575833709298e-7,
+          "z": -1.846270744371504e-7
+        }
+      },
+      {
+        "id": "n337",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2022,
+          2023,
+          2024,
+          2025,
+          2026,
+          2027
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 40,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003998446990258459,
+          "y": -0.0013310824666628656,
+          "z": -0.000025836463150132962
+        },
+        "angle": {
+          "x": 2.2791766423167343e-7,
+          "y": 8.511901162439538e-8,
+          "z": -3.1086747872063656e-7
+        }
+      },
+      {
+        "id": "n338",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2028,
+          2029,
+          2030,
+          2031,
+          2032,
+          2033
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 45,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -8.011778309773337e-15,
+          "y": -0.0014314279730793702,
+          "z": -0.000025034743237840347
+        },
+        "angle": {
+          "x": -1.0156979716664364e-7,
+          "y": -3.223364544199184e-16,
+          "z": 5.090661779860964e-18
+        }
+      },
+      {
+        "id": "n339",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2034,
+          2035,
+          2036,
+          2037,
+          2038,
+          2039
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 45,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000041683230614449426,
+          "y": -0.0014323120303332407,
+          "z": -1.45970929920407e-18
+        },
+        "angle": {
+          "x": -6.414407990666291e-19,
+          "y": -1.8329815795773268e-19,
+          "z": -1.5024709758937486e-7
+        }
+      },
+      {
+        "id": "n340",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2040,
+          2041,
+          2042,
+          2043,
+          2044,
+          2045
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 40,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000039984469902582654,
+          "y": -0.001331082466662865,
+          "z": 0.000025836463150131912
+        },
+        "angle": {
+          "x": -2.2791766423198876e-7,
+          "y": -8.511901162454436e-8,
+          "z": -3.1086747872056763e-7
+        }
+      },
+      {
+        "id": "n341",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2046,
+          2047,
+          2048,
+          2049,
+          2050,
+          2051
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 45,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -8.012053984088724e-15,
+          "y": -0.0014314279730793654,
+          "z": 0.000025034743237837097
+        },
+        "angle": {
+          "x": 1.0156979716645786e-7,
+          "y": 3.221299440842277e-16,
+          "z": 5.0073963630166205e-18
+        }
+      },
+      {
+        "id": "n342",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2052,
+          2053,
+          2054,
+          2055,
+          2056,
+          2057
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 45,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004295220041275751,
+          "y": -0.0014374816497435335,
+          "z": 0.000049506359165183004
+        },
+        "angle": {
+          "x": 0.000001884462675245558,
+          "y": -2.1837575833727139e-7,
+          "z": -1.8462707443713383e-7
+        }
+      },
+      {
+        "id": "n343",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2058,
+          2059,
+          2060,
+          2061,
+          2062,
+          2063
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 40,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004167412304880201,
+          "y": -0.0013439210018934991,
+          "z": 0.00007093945861841434
+        },
+        "angle": {
+          "x": -0.0000015836105178018788,
+          "y": -4.1191573420660037e-7,
+          "z": -3.540414669607163e-7
+        }
+      },
+      {
+        "id": "n344",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2064,
+          2065,
+          2066,
+          2067,
+          2068,
+          2069
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 45,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -3.5429618356981442e-15,
+          "y": -0.0014465553857091068,
+          "z": 0.00006540998243542796
+        },
+        "angle": {
+          "x": 0.0000010322651655231364,
+          "y": -2.782288325436468e-17,
+          "z": -2.2803837968148937e-16
+        }
+      },
+      {
+        "id": "n345",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2070,
+          2071,
+          2072,
+          2073,
+          2074,
+          2075
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 45,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004284672539015201,
+          "y": -0.0014563642298368255,
+          "z": 0.00008117746983166916
+        },
+        "angle": {
+          "x": -0.0000016606326306711053,
+          "y": -7.954455489869259e-7,
+          "z": -2.862657280523388e-7
+        }
+      },
+      {
+        "id": "n346",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2076,
+          2077,
+          2078,
+          2079,
+          2080,
+          2081
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 25,
+          "y": 40,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000039481842230979265,
+          "y": -0.001347291333601414,
+          "z": 0.00013893130217317338
+        },
+        "angle": {
+          "x": -0.0000012289180678636865,
+          "y": -6.177180528832943e-7,
+          "z": -5.049728414979172e-7
+        }
+      },
+      {
+        "id": "n347",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2082,
+          2083,
+          2084,
+          2085,
+          2086,
+          2087
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 20,
+          "y": 45,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": -1.3843772801760472e-15,
+          "y": -0.0014417071222516244,
+          "z": 0.00006812708739177626
+        },
+        "angle": {
+          "x": -0.000014638813492579512,
+          "y": -7.929513356615463e-16,
+          "z": 4.466088348840352e-16
+        }
+      },
+      {
+        "id": "n348",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2088,
+          2089,
+          2090,
+          2091,
+          2092,
+          2093
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 35,
+          "y": -5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n349",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2094,
+          2095,
+          2096,
+          2097,
+          2098,
+          2099
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 30,
+          "y": -5,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n350",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2100,
+          2101,
+          2102,
+          2103,
+          2104,
+          2105
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 30,
+          "y": -5,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n351",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2106,
+          2107,
+          2108,
+          2109,
+          2110,
+          2111
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008205257007920611,
+          "y": -0.00028794773410566253,
+          "z": -0.00008823168988940856
+        },
+        "angle": {
+          "x": -0.000005840751456581767,
+          "y": 3.4991775872755267e-7,
+          "z": -0.0000018591323414022267
+        }
+      },
+      {
+        "id": "n352",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2112,
+          2113,
+          2114,
+          2115,
+          2116,
+          2117
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 0,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003418000401580664,
+          "y": -0.0001550018523088084,
+          "z": -0.00008727593552709991
+        },
+        "angle": {
+          "x": -0.000013642787678929659,
+          "y": 8.318301850332637e-7,
+          "z": -0.0000064184865426611305
+        }
+      },
+      {
+        "id": "n353",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2118,
+          2119,
+          2120,
+          2121,
+          2122,
+          2123
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 0,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003486407759681369,
+          "y": -0.00012979922245260597,
+          "z": -0.000027729741595912715
+        },
+        "angle": {
+          "x": -0.000009020995204931507,
+          "y": 1.0789018525647172e-7,
+          "z": -0.0000059323101283709626
+        }
+      },
+      {
+        "id": "n354",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2124,
+          2125,
+          2126,
+          2127,
+          2128,
+          2129
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 5,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000452377684907288,
+          "y": -0.00029076404062508424,
+          "z": -0.00009287283299212232
+        },
+        "angle": {
+          "x": -0.000005327292538753341,
+          "y": 0.0000014804778934470157,
+          "z": -0.0000020387460710501007
+        }
+      },
+      {
+        "id": "n355",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2130,
+          2131,
+          2132,
+          2133,
+          2134,
+          2135
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 5,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000047691182460958534,
+          "y": -0.00026660226853867085,
+          "z": -0.00006057903889014351
+        },
+        "angle": {
+          "x": -0.0000031775899881828524,
+          "y": 7.160035579916377e-7,
+          "z": -0.000001312504391817253
+        }
+      },
+      {
+        "id": "n356",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2136,
+          2137,
+          2138,
+          2139,
+          2140,
+          2141
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 35,
+          "y": -5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n357",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2142,
+          2143,
+          2144,
+          2145,
+          2146,
+          2147
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 30,
+          "y": -5,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n358",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2148,
+          2149,
+          2150,
+          2151,
+          2152,
+          2153
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000774732835914091,
+          "y": -0.00026856758138003227,
+          "z": -0.000039326259891744575
+        },
+        "angle": {
+          "x": -0.0000023850599069064263,
+          "y": -1.992628345355926e-7,
+          "z": -0.0000015565843291419617
+        }
+      },
+      {
+        "id": "n359",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2154,
+          2155,
+          2156,
+          2157,
+          2158,
+          2159
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 0,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003306950662313287,
+          "y": -0.00012642534933103426,
+          "z": -0.00000890466449575296
+        },
+        "angle": {
+          "x": -0.0000027147713614785813,
+          "y": -7.063062371543782e-8,
+          "z": -0.000005565359635933918
+        }
+      },
+      {
+        "id": "n360",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2160,
+          2161,
+          2162,
+          2163,
+          2164,
+          2165
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 5,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004539120458658169,
+          "y": -0.00026059159701919787,
+          "z": -0.00001889574152671243
+        },
+        "angle": {
+          "x": -8.335208913736181e-7,
+          "y": 1.9035014962501938e-7,
+          "z": -0.000001151813741449675
+        }
+      },
+      {
+        "id": "n361",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2166,
+          2167,
+          2168,
+          2169,
+          2170,
+          2171
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 35,
+          "y": -5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n362",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2172,
+          2173,
+          2174,
+          2175,
+          2176,
+          2177
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 30,
+          "y": -5,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n363",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2178,
+          2179,
+          2180,
+          2181,
+          2182,
+          2183
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007393398904501592,
+          "y": -0.0002659074911519315,
+          "z": 6.983889668171685e-20
+        },
+        "angle": {
+          "x": 1.4447187864314988e-19,
+          "y": -8.672200509762968e-20,
+          "z": -0.0000014810659436055141
+        }
+      },
+      {
+        "id": "n364",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2184,
+          2185,
+          2186,
+          2187,
+          2188,
+          2189
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 0,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003306950662313254,
+          "y": -0.00012642534933103474,
+          "z": 0.0000089046644957529
+        },
+        "angle": {
+          "x": 0.000002714771361478617,
+          "y": 7.063062371540705e-8,
+          "z": -0.000005565359635933892
+        }
+      },
+      {
+        "id": "n365",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2190,
+          2191,
+          2192,
+          2193,
+          2194,
+          2195
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 5,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000045391204586581095,
+          "y": -0.0002605915970191988,
+          "z": 0.00001889574152671234
+        },
+        "angle": {
+          "x": 8.335208913736725e-7,
+          "y": -1.9035014962508757e-7,
+          "z": -0.0000011518137414497587
+        }
+      },
+      {
+        "id": "n366",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2196,
+          2197,
+          2198,
+          2199,
+          2200,
+          2201
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 35,
+          "y": -5,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n367",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2202,
+          2203,
+          2204,
+          2205,
+          2206,
+          2207
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 30,
+          "y": -5,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n368",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2208,
+          2209,
+          2210,
+          2211,
+          2212,
+          2213
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 5,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007747328359140835,
+          "y": -0.0002685675813800338,
+          "z": 0.00003932625989174496
+        },
+        "angle": {
+          "x": 0.000002385059906906516,
+          "y": 1.992628345354987e-7,
+          "z": -0.00000155658432914193
+        }
+      },
+      {
+        "id": "n369",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2214,
+          2215,
+          2216,
+          2217,
+          2218,
+          2219
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 0,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000034864077596813134,
+          "y": -0.00012979922245260676,
+          "z": 0.000027729741595912834
+        },
+        "angle": {
+          "x": 0.00000902099520493157,
+          "y": -1.0789018525650255e-7,
+          "z": -0.00000593231012837089
+        }
+      },
+      {
+        "id": "n370",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2220,
+          2221,
+          2222,
+          2223,
+          2224,
+          2225
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 5,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004769118246095737,
+          "y": -0.0002666022685386723,
+          "z": 0.00006057903889014351
+        },
+        "angle": {
+          "x": 0.0000031775899881828964,
+          "y": -7.160035579917573e-7,
+          "z": -0.0000013125043918173024
+        }
+      },
+      {
+        "id": "n371",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2226,
+          2227,
+          2228,
+          2229,
+          2230,
+          2231
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 35,
+          "y": -5,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n372",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2232,
+          2233,
+          2234,
+          2235,
+          2236,
+          2237
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 30,
+          "y": -5,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n373",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2238,
+          2239,
+          2240,
+          2241,
+          2242,
+          2243
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 5,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008205257007920486,
+          "y": -0.0002879477341056646,
+          "z": 0.00008823168988940906
+        },
+        "angle": {
+          "x": 0.000005840751456581845,
+          "y": -3.499177587276477e-7,
+          "z": -0.000001859132341402231
+        }
+      },
+      {
+        "id": "n374",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2244,
+          2245,
+          2246,
+          2247,
+          2248,
+          2249
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 0,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00003418000401580563,
+          "y": -0.0001550018523088094,
+          "z": 0.0000872759355271004
+        },
+        "angle": {
+          "x": 0.000013642787678929718,
+          "y": -8.318301850332909e-7,
+          "z": -0.000006418486542661057
+        }
+      },
+      {
+        "id": "n375",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2250,
+          2251,
+          2252,
+          2253,
+          2254,
+          2255
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 5,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00004523776849072715,
+          "y": -0.00029076404062508543,
+          "z": 0.00009287283299212236
+        },
+        "angle": {
+          "x": 0.000005327292538753325,
+          "y": -0.000001480477893447118,
+          "z": -0.0000020387460710501397
+        }
+      },
+      {
+        "id": "n376",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2256,
+          2257,
+          2258,
+          2259,
+          2260,
+          2261
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 15,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00012202429034877644,
+          "y": -0.0005955408165727418,
+          "z": -0.00012554653436448008
+        },
+        "angle": {
+          "x": -0.0000027740514758247315,
+          "y": 4.816901613301738e-7,
+          "z": -7.820775344707111e-7
+        }
+      },
+      {
+        "id": "n377",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2262,
+          2263,
+          2264,
+          2265,
+          2266,
+          2267
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 10,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00010528475990826303,
+          "y": -0.00045628438109341263,
+          "z": -0.00016170259100642615
+        },
+        "angle": {
+          "x": -0.000004275923286183267,
+          "y": 0.0000013822897682674848,
+          "z": -0.0000033760776439751323
+        }
+      },
+      {
+        "id": "n378",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2268,
+          2269,
+          2270,
+          2271,
+          2272,
+          2273
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 10,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00010006683423901707,
+          "y": -0.0004299061013190535,
+          "z": -0.0000806571338846051
+        },
+        "angle": {
+          "x": -0.0000038110561990819317,
+          "y": 3.834317138294738e-7,
+          "z": -0.000002961187847814117
+        }
+      },
+      {
+        "id": "n379",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2274,
+          2275,
+          2276,
+          2277,
+          2278,
+          2279
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 15,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007662091142832601,
+          "y": -0.0005948055722311801,
+          "z": -0.00012539563584068519
+        },
+        "angle": {
+          "x": -0.0000016443966197008653,
+          "y": 0.0000017635007331558362,
+          "z": -0.0000015079579030809633
+        }
+      },
+      {
+        "id": "n380",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2280,
+          2281,
+          2282,
+          2283,
+          2284,
+          2285
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 15,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007699972670579767,
+          "y": -0.0005771133856921687,
+          "z": -0.00008982026954311116
+        },
+        "angle": {
+          "x": -0.0000013793882389067742,
+          "y": 0.0000011213246463646147,
+          "z": -0.0000012335113564533789
+        }
+      },
+      {
+        "id": "n381",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2286,
+          2287,
+          2288,
+          2289,
+          2290,
+          2291
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 15,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011590314761190588,
+          "y": -0.000579723754600539,
+          "z": -0.00006215172760646519
+        },
+        "angle": {
+          "x": -0.0000015508764566117829,
+          "y": -3.216275786638073e-7,
+          "z": -7.794028355214393e-7
+        }
+      },
+      {
+        "id": "n382",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2292,
+          2293,
+          2294,
+          2295,
+          2296,
+          2297
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 10,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00009374634266868749,
+          "y": -0.00041953849723104384,
+          "z": -0.000025259826442846483
+        },
+        "angle": {
+          "x": -0.0000014574281566751916,
+          "y": -1.231460091058002e-7,
+          "z": -0.000002800471464830863
+        }
+      },
+      {
+        "id": "n383",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2298,
+          2299,
+          2300,
+          2301,
+          2302,
+          2303
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 15,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007315558296249086,
+          "y": -0.0005680526387165187,
+          "z": -0.00002990666345357034
+        },
+        "angle": {
+          "x": -5.473664286514914e-7,
+          "y": 3.4354295765593426e-7,
+          "z": -0.0000011145438681669214
+        }
+      },
+      {
+        "id": "n384",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2304,
+          2305,
+          2306,
+          2307,
+          2308,
+          2309
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 15,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011141548598520962,
+          "y": -0.0005741819821358413,
+          "z": 6.901553556261339e-19
+        },
+        "angle": {
+          "x": 1.1147623538773533e-19,
+          "y": -1.3303487710000106e-19,
+          "z": -7.440083687444099e-7
+        }
+      },
+      {
+        "id": "n385",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2310,
+          2311,
+          2312,
+          2313,
+          2314,
+          2315
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 10,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00009374634266868628,
+          "y": -0.00041953849723104595,
+          "z": 0.000025259826442847235
+        },
+        "angle": {
+          "x": 0.000001457428156675327,
+          "y": 1.2314600910569178e-7,
+          "z": -0.0000028004714648309134
+        }
+      },
+      {
+        "id": "n386",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2316,
+          2317,
+          2318,
+          2319,
+          2320,
+          2321
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 15,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000731555829624901,
+          "y": -0.0005680526387165166,
+          "z": 0.000029906663453570966
+        },
+        "angle": {
+          "x": 5.47366428651565e-7,
+          "y": -3.4354295765609287e-7,
+          "z": -0.000001114543868167009
+        }
+      },
+      {
+        "id": "n387",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2322,
+          2323,
+          2324,
+          2325,
+          2326,
+          2327
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 15,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011590314761190397,
+          "y": -0.0005797237546005407,
+          "z": 0.00006215172760646646
+        },
+        "angle": {
+          "x": 0.0000015508764566118796,
+          "y": 3.2162757866356726e-7,
+          "z": -7.794028355214756e-7
+        }
+      },
+      {
+        "id": "n388",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2328,
+          2329,
+          2330,
+          2331,
+          2332,
+          2333
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 10,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00010006683423901523,
+          "y": -0.0004299061013190559,
+          "z": 0.00008065713388460602
+        },
+        "angle": {
+          "x": 0.0000038110561990820405,
+          "y": -3.834317138295399e-7,
+          "z": -0.0000029611878478140073
+        }
+      },
+      {
+        "id": "n389",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2334,
+          2335,
+          2336,
+          2337,
+          2338,
+          2339
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 15,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007699972670579524,
+          "y": -0.0005771133856921701,
+          "z": 0.00008982026954311178
+        },
+        "angle": {
+          "x": 0.0000013793882389068328,
+          "y": -0.0000011213246463648076,
+          "z": -0.0000012335113564534579
+        }
+      },
+      {
+        "id": "n390",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2340,
+          2341,
+          2342,
+          2343,
+          2344,
+          2345
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 15,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00012202429034877326,
+          "y": -0.0005955408165727443,
+          "z": 0.00012554653436448152
+        },
+        "angle": {
+          "x": 0.0000027740514758248035,
+          "y": -4.81690161330316e-7,
+          "z": -7.820775344706123e-7
+        }
+      },
+      {
+        "id": "n391",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2346,
+          2347,
+          2348,
+          2349,
+          2350,
+          2351
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 10,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00010528475990826074,
+          "y": -0.00045628438109341545,
+          "z": 0.0001617025910064273
+        },
+        "angle": {
+          "x": 0.0000042759232861834055,
+          "y": -0.0000013822897682675754,
+          "z": -0.0000033760776439749905
+        }
+      },
+      {
+        "id": "n392",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2352,
+          2353,
+          2354,
+          2355,
+          2356,
+          2357
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 15,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007662091142832288,
+          "y": -0.000594805572231183,
+          "z": 0.00012539563584068603
+        },
+        "angle": {
+          "x": 0.000001644396619700873,
+          "y": -0.0000017635007331560139,
+          "z": -0.0000015079579030810158
+        }
+      },
+      {
+        "id": "n393",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2358,
+          2359,
+          2360,
+          2361,
+          2362,
+          2363
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 25,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00013051011138391608,
+          "y": -0.0009041498780385263,
+          "z": -0.0001316856659195845
+        },
+        "angle": {
+          "x": -4.635540082928142e-7,
+          "y": 7.622427575648614e-7,
+          "z": -5.523889033054493e-8
+        }
+      },
+      {
+        "id": "n394",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2364,
+          2365,
+          2366,
+          2367,
+          2368,
+          2369
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 20,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00012832036396226537,
+          "y": -0.0007551850582244219,
+          "z": -0.00018224962406805764
+        },
+        "angle": {
+          "x": -5.838825239620155e-7,
+          "y": 0.000001862330621835826,
+          "z": -9.565935557333856e-7
+        }
+      },
+      {
+        "id": "n395",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2370,
+          2371,
+          2372,
+          2373,
+          2374,
+          2375
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 20,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00012430545464550978,
+          "y": -0.0007435804141837616,
+          "z": -0.00009857863108968693
+        },
+        "angle": {
+          "x": -7.035865991350734e-7,
+          "y": 4.4091726703534763e-7,
+          "z": -8.926364114932258e-7
+        }
+      },
+      {
+        "id": "n396",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2376,
+          2377,
+          2378,
+          2379,
+          2380,
+          2381
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 25,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008223451646785079,
+          "y": -0.0009008840479336965,
+          "z": -0.0001303482437552912
+        },
+        "angle": {
+          "x": 1.1268293017372122e-7,
+          "y": 0.000001851480532140205,
+          "z": -8.180525500615635e-7
+        }
+      },
+      {
+        "id": "n397",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2382,
+          2383,
+          2384,
+          2385,
+          2386,
+          2387
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 25,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008404898077254955,
+          "y": -0.0008937153638642532,
+          "z": -0.00009464259399745617
+        },
+        "angle": {
+          "x": -4.509699502060102e-9,
+          "y": 0.0000012180727602109331,
+          "z": -9.418167174037071e-7
+        }
+      },
+      {
+        "id": "n398",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2388,
+          2389,
+          2390,
+          2391,
+          2392,
+          2393
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 25,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00012491522920199188,
+          "y": -0.0008969974384321563,
+          "z": -0.0000662903689643734
+        },
+        "angle": {
+          "x": -6.102217539850106e-7,
+          "y": -2.954622525771139e-7,
+          "z": -1.804798994205154e-7
+        }
+      },
+      {
+        "id": "n399",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2394,
+          2395,
+          2396,
+          2397,
+          2398,
+          2399
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 20,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011686501544033037,
+          "y": -0.0007347792277386058,
+          "z": -0.000032563904384389887
+        },
+        "angle": {
+          "x": -2.820962525482332e-7,
+          "y": -8.460888047465846e-8,
+          "z": -8.721877726234881e-7
+        }
+      },
+      {
+        "id": "n400",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2400,
+          2401,
+          2402,
+          2403,
+          2404,
+          2405
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 25,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008024742663923011,
+          "y": -0.0008857220276319124,
+          "z": -0.000031922264112965185
+        },
+        "angle": {
+          "x": -4.554230513678321e-8,
+          "y": 3.8154665771992503e-7,
+          "z": -9.335131049313125e-7
+        }
+      },
+      {
+        "id": "n401",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2406,
+          2407,
+          2408,
+          2409,
+          2410,
+          2411
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 25,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00012037771621632582,
+          "y": -0.0008928232101136692,
+          "z": 1.3632357622159237e-18
+        },
+        "angle": {
+          "x": -9.289842901715787e-20,
+          "y": -1.5203979084667342e-19,
+          "z": -1.993336926256938e-7
+        }
+      },
+      {
+        "id": "n402",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2412,
+          2413,
+          2414,
+          2415,
+          2416,
+          2417
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 20,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011686501544032942,
+          "y": -0.0007347792277386066,
+          "z": 0.00003256390438439162
+        },
+        "angle": {
+          "x": 2.8209625254835947e-7,
+          "y": 8.460888047448527e-8,
+          "z": -8.721877726235865e-7
+        }
+      },
+      {
+        "id": "n403",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2418,
+          2419,
+          2420,
+          2421,
+          2422,
+          2423
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 25,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008024742663922905,
+          "y": -0.0008857220276319088,
+          "z": 0.00003192226411296656
+        },
+        "angle": {
+          "x": 4.554230513686298e-8,
+          "y": -3.8154665772016236e-7,
+          "z": -9.335131049314502e-7
+        }
+      },
+      {
+        "id": "n404",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2424,
+          2425,
+          2426,
+          2427,
+          2428,
+          2429
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 25,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00012491522920198944,
+          "y": -0.0008969974384321582,
+          "z": 0.00006629036896437517
+        },
+        "angle": {
+          "x": 6.102217539853364e-7,
+          "y": 2.9546225257677993e-7,
+          "z": -1.8047989942058501e-7
+        }
+      },
+      {
+        "id": "n405",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2430,
+          2431,
+          2432,
+          2433,
+          2434,
+          2435
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 20,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00012430545464550623,
+          "y": -0.0007435804141837635,
+          "z": 0.0000985786310896882
+        },
+        "angle": {
+          "x": 7.035865991350647e-7,
+          "y": -4.409172670354925e-7,
+          "z": -8.926364114932109e-7
+        }
+      },
+      {
+        "id": "n406",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2436,
+          2437,
+          2438,
+          2439,
+          2440,
+          2441
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 25,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000840489807725466,
+          "y": -0.000893715363864253,
+          "z": 0.00009464259399745668
+        },
+        "angle": {
+          "x": 4.5096995021629355e-9,
+          "y": -0.0000012180727602111479,
+          "z": -9.418167174039116e-7
+        }
+      },
+      {
+        "id": "n407",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2442,
+          2443,
+          2444,
+          2445,
+          2446,
+          2447
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 25,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00013051011138391148,
+          "y": -0.0009041498780385283,
+          "z": 0.00013168566591958581
+        },
+        "angle": {
+          "x": 4.6355400829279655e-7,
+          "y": -7.622427575650794e-7,
+          "z": -5.523889033055298e-8
+        }
+      },
+      {
+        "id": "n408",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2448,
+          2449,
+          2450,
+          2451,
+          2452,
+          2453
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 20,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00012832036396226074,
+          "y": -0.0007551850582244244,
+          "z": 0.00018224962406805903
+        },
+        "angle": {
+          "x": 5.83882523962059e-7,
+          "y": -0.0000018623306218358982,
+          "z": -9.5659355573332e-7
+        }
+      },
+      {
+        "id": "n409",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2454,
+          2455,
+          2456,
+          2457,
+          2458,
+          2459
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 25,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008223451646784638,
+          "y": -0.0009008840479336985,
+          "z": 0.00013034824375529218
+        },
+        "angle": {
+          "x": -1.1268293017374957e-7,
+          "y": -0.0000018514805321404517,
+          "z": -8.180525500615077e-7
+        }
+      },
+      {
+        "id": "n410",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2460,
+          2461,
+          2462,
+          2463,
+          2464,
+          2465
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 35,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00012237304116038007,
+          "y": -0.001216022159157461,
+          "z": -0.00011916093200546616
+        },
+        "angle": {
+          "x": 6.655904995876464e-7,
+          "y": 9.482305657911879e-7,
+          "z": -2.2991204558212724e-7
+        }
+      },
+      {
+        "id": "n411",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2466,
+          2467,
+          2468,
+          2469,
+          2470,
+          2471
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 30,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001237730304549262,
+          "y": -0.0010607767494717896,
+          "z": -0.00017931915109107308
+        },
+        "angle": {
+          "x": 0.000001592240339582016,
+          "y": 0.00000215110134277792,
+          "z": 1.5065481586030567e-7
+        }
+      },
+      {
+        "id": "n412",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2472,
+          2473,
+          2474,
+          2475,
+          2476,
+          2477
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 30,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001230852171994807,
+          "y": -0.001057863139215178,
+          "z": -0.00009481208188066692
+        },
+        "angle": {
+          "x": 0.0000011960203026838508,
+          "y": 4.434082094029013e-7,
+          "z": 1.9488733536527021e-7
+        }
+      },
+      {
+        "id": "n413",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2478,
+          2479,
+          2480,
+          2481,
+          2482,
+          2483
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 35,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007719951915322508,
+          "y": -0.0012065775783756036,
+          "z": -0.00011682182651901752
+        },
+        "angle": {
+          "x": 0.0000022352251571967877,
+          "y": 0.0000019267619020422076,
+          "z": -0.0000011634555007401913
+        }
+      },
+      {
+        "id": "n414",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2484,
+          2485,
+          2486,
+          2487,
+          2488,
+          2489
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 35,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008043972528454461,
+          "y": -0.0012037922233557017,
+          "z": -0.00008466251439724792
+        },
+        "angle": {
+          "x": 5.352015571972985e-7,
+          "y": 0.0000012673405368631024,
+          "z": -0.0000011843571708678358
+        }
+      },
+      {
+        "id": "n415",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2490,
+          2491,
+          2492,
+          2493,
+          2494,
+          2495
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 35,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011814921329646996,
+          "y": -0.0012086619479690138,
+          "z": -0.00005976506955405117
+        },
+        "angle": {
+          "x": -5.845603195080871e-7,
+          "y": -2.948886622169588e-7,
+          "z": -1.9864704047010641e-7
+        }
+      },
+      {
+        "id": "n416",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2496,
+          2497,
+          2498,
+          2499,
+          2500,
+          2501
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 30,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011648976482927102,
+          "y": -0.001050001250378455,
+          "z": -0.0000312818462061748
+        },
+        "angle": {
+          "x": 3.818287322045949e-7,
+          "y": -9.216303519108822e-8,
+          "z": 1.6151934997023826e-7
+        }
+      },
+      {
+        "id": "n417",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2502,
+          2503,
+          2504,
+          2505,
+          2506,
+          2507
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 35,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007694562576944234,
+          "y": -0.001193737050141363,
+          "z": -0.000028752079057395913
+        },
+        "angle": {
+          "x": -1.481284911595369e-7,
+          "y": 3.931777466228354e-7,
+          "z": -0.0000011514169955680195
+        }
+      },
+      {
+        "id": "n418",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2508,
+          2509,
+          2510,
+          2511,
+          2512,
+          2513
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 35,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011378054276757463,
+          "y": -0.0012022058495667054,
+          "z": 1.3057931142164549e-18
+        },
+        "angle": {
+          "x": -4.194495030130783e-19,
+          "y": -1.9261094140930142e-19,
+          "z": -1.8869404880313427e-7
+        }
+      },
+      {
+        "id": "n419",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2514,
+          2515,
+          2516,
+          2517,
+          2518,
+          2519
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 30,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011648976482926995,
+          "y": -0.001050001250378453,
+          "z": 0.00003128184620617788
+        },
+        "angle": {
+          "x": -3.8182873220461233e-7,
+          "y": 9.216303519090698e-8,
+          "z": 1.615193499702458e-7
+        }
+      },
+      {
+        "id": "n420",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2520,
+          2521,
+          2522,
+          2523,
+          2524,
+          2525
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 35,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007694562576944108,
+          "y": -0.0011937370501413594,
+          "z": 0.000028752079057397065
+        },
+        "angle": {
+          "x": 1.4812849115932083e-7,
+          "y": -3.9317774662317337e-7,
+          "z": -0.0000011514169955679257
+        }
+      },
+      {
+        "id": "n421",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2526,
+          2527,
+          2528,
+          2529,
+          2530,
+          2531
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 35,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011814921329646714,
+          "y": -0.0012086619479690103,
+          "z": 0.00005976506955405331
+        },
+        "angle": {
+          "x": 5.845603195081636e-7,
+          "y": 2.9488866221667387e-7,
+          "z": -1.986470404700661e-7
+        }
+      },
+      {
+        "id": "n422",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2532,
+          2533,
+          2534,
+          2535,
+          2536,
+          2537
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 30,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00012308521719947715,
+          "y": -0.0010578631392151787,
+          "z": 0.00009481208188066849
+        },
+        "angle": {
+          "x": -0.00000119602030268383,
+          "y": -4.4340820940306226e-7,
+          "z": 1.9488733536523337e-7
+        }
+      },
+      {
+        "id": "n423",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2538,
+          2539,
+          2540,
+          2541,
+          2542,
+          2543
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 35,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000804397252845416,
+          "y": -0.0012037922233556991,
+          "z": 0.00008466251439724877
+        },
+        "angle": {
+          "x": -5.352015571972502e-7,
+          "y": -0.0000012673405368633356,
+          "z": -0.0000011843571708679668
+        }
+      },
+      {
+        "id": "n424",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2544,
+          2545,
+          2546,
+          2547,
+          2548,
+          2549
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 35,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00012237304116037508,
+          "y": -0.0012160221591574593,
+          "z": 0.00011916093200546765
+        },
+        "angle": {
+          "x": -6.655904995874187e-7,
+          "y": -9.482305657915575e-7,
+          "z": -2.2991204558211908e-7
+        }
+      },
+      {
+        "id": "n425",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2550,
+          2551,
+          2552,
+          2553,
+          2554,
+          2555
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 30,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00012377303045491995,
+          "y": -0.00106077674947179,
+          "z": 0.00017931915109107376
+        },
+        "angle": {
+          "x": -0.0000015922403395820305,
+          "y": -0.000002151101342778035,
+          "z": 1.5065481586036145e-7
+        }
+      },
+      {
+        "id": "n426",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2556,
+          2557,
+          2558,
+          2559,
+          2560,
+          2561
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 35,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00007719951915321974,
+          "y": -0.0012065775783756032,
+          "z": 0.0001168218265190182
+        },
+        "angle": {
+          "x": -0.0000022352251571967885,
+          "y": -0.000001926761902042361,
+          "z": -0.0000011634555007403
+        }
+      },
+      {
+        "id": "n427",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2562,
+          2563,
+          2564,
+          2565,
+          2566,
+          2567
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 45,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00012553879936774028,
+          "y": -0.0014833265374088545,
+          "z": -0.0000995549724787208
+        },
+        "angle": {
+          "x": 9.264224457936052e-7,
+          "y": 0.0000017487802066047064,
+          "z": -0.0000015139994646945897
+        }
+      },
+      {
+        "id": "n428",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2568,
+          2569,
+          2570,
+          2571,
+          2572,
+          2573
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 40,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011808741063863685,
+          "y": -0.0013719905260058706,
+          "z": -0.00015793609297396415
+        },
+        "angle": {
+          "x": 3.894240849187717e-7,
+          "y": 0.0000025453303076406342,
+          "z": -0.0000011650632944992744
+        }
+      },
+      {
+        "id": "n429",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2574,
+          2575,
+          2576,
+          2577,
+          2578,
+          2579
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 40,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001178133522578954,
+          "y": -0.0013656145936706864,
+          "z": -0.00008234658010690862
+        },
+        "angle": {
+          "x": 0.0000011750061034631296,
+          "y": 4.88474750348559e-7,
+          "z": -5.54461853857854e-7
+        }
+      },
+      {
+        "id": "n430",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2580,
+          2581,
+          2582,
+          2583,
+          2584,
+          2585
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 45,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000828281816655939,
+          "y": -0.0014541922074881174,
+          "z": -0.00007824336701353319
+        },
+        "angle": {
+          "x": 0.000014592180263816793,
+          "y": 0.0000022975430349598616,
+          "z": -0.0000018526733178794622
+        }
+      },
+      {
+        "id": "n431",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2586,
+          2587,
+          2588,
+          2589,
+          2590,
+          2591
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 45,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008589927750040187,
+          "y": -0.001455979313883061,
+          "z": -0.00007326894425011029
+        },
+        "angle": {
+          "x": -0.0000012495819688781234,
+          "y": 0.000001446411007906353,
+          "z": -0.0000017695139176065922
+        }
+      },
+      {
+        "id": "n432",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2592,
+          2593,
+          2594,
+          2595,
+          2596,
+          2597
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 45,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011812519202297139,
+          "y": -0.0014622017510129946,
+          "z": -0.00005758701513066159
+        },
+        "angle": {
+          "x": -0.000001960929417439812,
+          "y": -8.459093028385254e-8,
+          "z": -0.0000012496901024476673
+        }
+      },
+      {
+        "id": "n433",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2598,
+          2599,
+          2600,
+          2601,
+          2602,
+          2603
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 40,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011006828326124701,
+          "y": -0.0013521750472263346,
+          "z": -0.00002922889752168642
+        },
+        "angle": {
+          "x": 1.2088816336899661e-7,
+          "y": -1.0510922203587573e-7,
+          "z": -3.3232746953543826e-7
+        }
+      },
+      {
+        "id": "n434",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2604,
+          2605,
+          2606,
+          2607,
+          2608,
+          2609
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 45,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008130967296845207,
+          "y": -0.0014399630080183495,
+          "z": -0.0000274999710296334
+        },
+        "angle": {
+          "x": -1.7737216488318942e-7,
+          "y": 3.888764737547434e-7,
+          "z": -0.0000017773279164415589
+        }
+      },
+      {
+        "id": "n435",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2610,
+          2611,
+          2612,
+          2613,
+          2614,
+          2615
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 45,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001120255901894409,
+          "y": -0.0014564032728403193,
+          "z": -3.224590434784534e-19
+        },
+        "angle": {
+          "x": -6.611772338440867e-19,
+          "y": -1.6793498219803132e-19,
+          "z": -0.0000011472278946751998
+        }
+      },
+      {
+        "id": "n436",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2616,
+          2617,
+          2618,
+          2619,
+          2620,
+          2621
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 40,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011006828326124552,
+          "y": -0.001352175047226329,
+          "z": 0.000029228897521687947
+        },
+        "angle": {
+          "x": -1.2088816336931147e-7,
+          "y": 1.0510922203568271e-7,
+          "z": -3.323274695354704e-7
+        }
+      },
+      {
+        "id": "n437",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2622,
+          2623,
+          2624,
+          2625,
+          2626,
+          2627
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 45,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00008130967296845031,
+          "y": -0.0014399630080183445,
+          "z": 0.00002749997102963217
+        },
+        "angle": {
+          "x": 1.7737216488288057e-7,
+          "y": -3.8887647375507793e-7,
+          "z": -0.000001777327916441435
+        }
+      },
+      {
+        "id": "n438",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2628,
+          2629,
+          2630,
+          2631,
+          2632,
+          2633
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 45,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001181251920229696,
+          "y": -0.0014622017510129894,
+          "z": 0.00005758701513066233
+        },
+        "angle": {
+          "x": 0.0000019609294174397177,
+          "y": 8.459093028347697e-8,
+          "z": -0.0000012496901024477793
+        }
+      },
+      {
+        "id": "n439",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2634,
+          2635,
+          2636,
+          2637,
+          2638,
+          2639
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 40,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011781335225789167,
+          "y": -0.0013656145936706806,
+          "z": 0.0000823465801069102
+        },
+        "angle": {
+          "x": -0.0000011750061034631983,
+          "y": -4.884747503487213e-7,
+          "z": -5.5446185385789e-7
+        }
+      },
+      {
+        "id": "n440",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2640,
+          2641,
+          2642,
+          2643,
+          2644,
+          2645
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 45,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000858992775003993,
+          "y": -0.0014559793138830535,
+          "z": 0.00007326894425011007
+        },
+        "angle": {
+          "x": 0.0000012495819688780715,
+          "y": -0.0000014464110079066912,
+          "z": -0.0000017695139176066415
+        }
+      },
+      {
+        "id": "n441",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2646,
+          2647,
+          2648,
+          2649,
+          2650,
+          2651
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 45,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001255387993677362,
+          "y": -0.0014833265374088493,
+          "z": 0.00009955497247872244
+        },
+        "angle": {
+          "x": -9.264224457932454e-7,
+          "y": -0.0000017487802066050474,
+          "z": -0.0000015139994646946176
+        }
+      },
+      {
+        "id": "n442",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2652,
+          2653,
+          2654,
+          2655,
+          2656,
+          2657
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 35,
+          "y": 40,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011808741063863103,
+          "y": -0.0013719905260058674,
+          "z": 0.00015793609297396532
+        },
+        "angle": {
+          "x": -3.894240849188315e-7,
+          "y": -0.0000025453303076409066,
+          "z": -0.0000011650632944994692
+        }
+      },
+      {
+        "id": "n443",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2658,
+          2659,
+          2660,
+          2661,
+          2662,
+          2663
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 30,
+          "y": 45,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0000828281816655891,
+          "y": -0.001454192207488112,
+          "z": 0.0000782433670135335
+        },
+        "angle": {
+          "x": -0.000014592180263816762,
+          "y": -0.0000022975430349601865,
+          "z": -0.000001852673317879513
+        }
+      },
+      {
+        "id": "n444",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2664,
+          2665,
+          2666,
+          2667,
+          2668,
+          2669
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 45,
+          "y": -5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n445",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2670,
+          2671,
+          2672,
+          2673,
+          2674,
+          2675
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 40,
+          "y": -5,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n446",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2676,
+          2677,
+          2678,
+          2679,
+          2680,
+          2681
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 40,
+          "y": -5,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n447",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2682,
+          2683,
+          2684,
+          2685,
+          2686,
+          2687
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000131254657254238,
+          "y": -0.00033256637334759173,
+          "z": -0.00010412108453720051
+        },
+        "angle": {
+          "x": -0.000007444428293508187,
+          "y": -6.878552699268284e-7,
+          "z": -0.000002245246841457323
+        }
+      },
+      {
+        "id": "n448",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2688,
+          2689,
+          2690,
+          2691,
+          2692,
+          2693
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 0,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00014111777771621563,
+          "y": -0.00021478181674041216,
+          "z": -0.00011711714246260673
+        },
+        "angle": {
+          "x": -0.00001833798202280996,
+          "y": 0.0000051280870962784535,
+          "z": -0.000012409488069905184
+        }
+      },
+      {
+        "id": "n449",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2694,
+          2695,
+          2696,
+          2697,
+          2698,
+          2699
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 0,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011892558075484229,
+          "y": -0.00016233497139190318,
+          "z": -0.000029395908869483277
+        },
+        "angle": {
+          "x": -0.00001026969789805961,
+          "y": -8.600196335175513e-7,
+          "z": -0.000009094411880143676
+        }
+      },
+      {
+        "id": "n450",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2700,
+          2701,
+          2702,
+          2703,
+          2704,
+          2705
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 5,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001216007381464705,
+          "y": -0.000328675077424859,
+          "z": -0.00010923434230326053
+        },
+        "angle": {
+          "x": -0.0000051916216644149625,
+          "y": 0.0000022274744702977196,
+          "z": -0.000004945959586810387
+        }
+      },
+      {
+        "id": "n451",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2706,
+          2707,
+          2708,
+          2709,
+          2710,
+          2711
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 5,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011118564194590206,
+          "y": -0.000291757191152995,
+          "z": -0.00006875511290010067
+        },
+        "angle": {
+          "x": -0.000003999070316320615,
+          "y": 9.269130756996763e-7,
+          "z": -0.0000036966853634420687
+        }
+      },
+      {
+        "id": "n452",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2712,
+          2713,
+          2714,
+          2715,
+          2716,
+          2717
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 45,
+          "y": -5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n453",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2718,
+          2719,
+          2720,
+          2721,
+          2722,
+          2723
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 40,
+          "y": -5,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n454",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2724,
+          2725,
+          2726,
+          2727,
+          2728,
+          2729
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 5,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011529307898311616,
+          "y": -0.0003000248432299856,
+          "z": -0.00003978943950206608
+        },
+        "angle": {
+          "x": -0.0000036088835024934775,
+          "y": -0.0000016467054211045797,
+          "z": -0.000002598391238428206
+        }
+      },
+      {
+        "id": "n455",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2730,
+          2731,
+          2732,
+          2733,
+          2734,
+          2735
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 0,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011238967752769181,
+          "y": -0.00015626571700283826,
+          "z": -0.000008725807768690639
+        },
+        "angle": {
+          "x": -0.0000026896820420891537,
+          "y": -8.862734687873219e-9,
+          "z": -0.000008307538571033669
+        }
+      },
+      {
+        "id": "n456",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2736,
+          2737,
+          2738,
+          2739,
+          2740,
+          2741
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 5,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00010356532824138541,
+          "y": -0.00028201686247904365,
+          "z": -0.00001951965010841808
+        },
+        "angle": {
+          "x": -9.061811101166825e-7,
+          "y": 7.226371528329029e-8,
+          "z": -0.000003201869774703417
+        }
+      },
+      {
+        "id": "n457",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2742,
+          2743,
+          2744,
+          2745,
+          2746,
+          2747
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 45,
+          "y": -5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n458",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2748,
+          2749,
+          2750,
+          2751,
+          2752,
+          2753
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 40,
+          "y": -5,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n459",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2754,
+          2755,
+          2756,
+          2757,
+          2758,
+          2759
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 5,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011381592956378187,
+          "y": -0.00029624640662127724,
+          "z": 4.52990536923811e-19
+        },
+        "angle": {
+          "x": 1.616896050802541e-19,
+          "y": -1.4258458410765999e-21,
+          "z": -0.0000026425976944871005
+        }
+      },
+      {
+        "id": "n460",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2760,
+          2761,
+          2762,
+          2763,
+          2764,
+          2765
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 0,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011238967752769199,
+          "y": -0.00015626571700283866,
+          "z": 0.000008725807768690961
+        },
+        "angle": {
+          "x": 0.000002689682042089278,
+          "y": 8.862734687886295e-9,
+          "z": -0.000008307538571033653
+        }
+      },
+      {
+        "id": "n461",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2766,
+          2767,
+          2768,
+          2769,
+          2770,
+          2771
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 5,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00010356532824138523,
+          "y": -0.0002820168624790451,
+          "z": 0.00001951965010841885
+        },
+        "angle": {
+          "x": 9.061811101167856e-7,
+          "y": -7.226371528338741e-8,
+          "z": -0.000003201869774703424
+        }
+      },
+      {
+        "id": "n462",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2772,
+          2773,
+          2774,
+          2775,
+          2776,
+          2777
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 45,
+          "y": -5,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n463",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2778,
+          2779,
+          2780,
+          2781,
+          2782,
+          2783
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 40,
+          "y": -5,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n464",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2784,
+          2785,
+          2786,
+          2787,
+          2788,
+          2789
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 5,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011529307898311575,
+          "y": -0.0003000248432299864,
+          "z": 0.00003978943950206736
+        },
+        "angle": {
+          "x": 0.0000036088835024935876,
+          "y": 0.0000016467054211044903,
+          "z": -0.0000025983912384281364
+        }
+      },
+      {
+        "id": "n465",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2790,
+          2791,
+          2792,
+          2793,
+          2794,
+          2795
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 0,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011892558075484239,
+          "y": -0.00016233497139190377,
+          "z": 0.00002939590886948384
+        },
+        "angle": {
+          "x": 0.000010269697898059765,
+          "y": 8.6001963351754e-7,
+          "z": -0.00000909441188014363
+        }
+      },
+      {
+        "id": "n466",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2796,
+          2797,
+          2798,
+          2799,
+          2800,
+          2801
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 5,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00011118564194590132,
+          "y": -0.00029175719115299655,
+          "z": 0.00006875511290010151
+        },
+        "angle": {
+          "x": 0.0000039990703163206925,
+          "y": -9.269130756997725e-7,
+          "z": -0.0000036966853634420378
+        }
+      },
+      {
+        "id": "n467",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2802,
+          2803,
+          2804,
+          2805,
+          2806,
+          2807
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 45,
+          "y": -5,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n468",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2808,
+          2809,
+          2810,
+          2811,
+          2812,
+          2813
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 40,
+          "y": -5,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n469",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2814,
+          2815,
+          2816,
+          2817,
+          2818,
+          2819
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 5,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.000131254657254237,
+          "y": -0.00033256637334759255,
+          "z": 0.00010412108453720172
+        },
+        "angle": {
+          "x": 0.000007444428293508333,
+          "y": 6.878552699267008e-7,
+          "z": -0.000002245246841457183
+        }
+      },
+      {
+        "id": "n470",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2820,
+          2821,
+          2822,
+          2823,
+          2824,
+          2825
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 0,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00014111777771621566,
+          "y": -0.00021478181674041284,
+          "z": 0.0001171171424626074
+        },
+        "angle": {
+          "x": 0.000018337982022810127,
+          "y": -0.000005128087096278456,
+          "z": -0.000012409488069905059
+        }
+      },
+      {
+        "id": "n471",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2826,
+          2827,
+          2828,
+          2829,
+          2830,
+          2831
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 5,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00012160073814646885,
+          "y": -0.00032867507742486167,
+          "z": 0.00010923434230326136
+        },
+        "angle": {
+          "x": 0.000005191621664415115,
+          "y": -0.000002227474470297808,
+          "z": -0.000004945959586810298
+        }
+      },
+      {
+        "id": "n472",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2832,
+          2833,
+          2834,
+          2835,
+          2836,
+          2837
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 15,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00017640666032618402,
+          "y": -0.0006229774592142321,
+          "z": -0.00014364379549346512
+        },
+        "angle": {
+          "x": -0.000003203969502219857,
+          "y": 8.013815064618227e-7,
+          "z": -0.0000010651746968399557
+        }
+      },
+      {
+        "id": "n473",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2838,
+          2839,
+          2840,
+          2841,
+          2842,
+          2843
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 10,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00022090326815669148,
+          "y": -0.0004960842300794823,
+          "z": -0.00018717650230330016
+        },
+        "angle": {
+          "x": -0.000004837611695909063,
+          "y": 0.0000041539775343368315,
+          "z": -0.00000366850222781876
+        }
+      },
+      {
+        "id": "n474",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2844,
+          2845,
+          2846,
+          2847,
+          2848,
+          2849
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 10,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00020774730443084424,
+          "y": -0.0004634644145100088,
+          "z": -0.00009106326411552317
+        },
+        "angle": {
+          "x": -0.000004395746373587461,
+          "y": -7.213299038285749e-7,
+          "z": -0.000003274174274257969
+        }
+      },
+      {
+        "id": "n475",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2850,
+          2851,
+          2852,
+          2853,
+          2854,
+          2855
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 15,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001686055529328305,
+          "y": -0.000619365316850068,
+          "z": -0.0001466481738902322
+        },
+        "angle": {
+          "x": -0.0000019385915934324343,
+          "y": 0.0000015576655682764705,
+          "z": -0.000002536446983784483
+        }
+      },
+      {
+        "id": "n476",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2856,
+          2857,
+          2858,
+          2859,
+          2860,
+          2861
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 15,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00015888927232160377,
+          "y": -0.0005988538721145902,
+          "z": -0.00010099707603641663
+        },
+        "angle": {
+          "x": -0.000001503488318067199,
+          "y": 0.000001278326362934533,
+          "z": -0.000002220914048178067
+        }
+      },
+      {
+        "id": "n477",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2862,
+          2863,
+          2864,
+          2865,
+          2866,
+          2867
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 15,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00015786021362858475,
+          "y": -0.000604595360122907,
+          "z": -0.00006595984389190885
+        },
+        "angle": {
+          "x": -0.0000018807539901205574,
+          "y": -0.0000014163055833427903,
+          "z": -0.000001035075675006626
+        }
+      },
+      {
+        "id": "n478",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2868,
+          2869,
+          2870,
+          2871,
+          2872,
+          2873
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 10,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00019716633332621277,
+          "y": -0.000447782213417845,
+          "z": -0.00002636398658162899
+        },
+        "angle": {
+          "x": -0.0000016290839492199246,
+          "y": 2.3799682309043937e-8,
+          "z": -0.000002806287272589908
+        }
+      },
+      {
+        "id": "n479",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2874,
+          2875,
+          2876,
+          2877,
+          2878,
+          2879
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 15,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001486684752100591,
+          "y": -0.0005876621262001882,
+          "z": -0.000031915051089223145
+        },
+        "angle": {
+          "x": -6.521071248475855e-7,
+          "y": 2.3112703248164846e-7,
+          "z": -0.0000020460759854573607
+        }
+      },
+      {
+        "id": "n480",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2880,
+          2881,
+          2882,
+          2883,
+          2884,
+          2885
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 15,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00015393090364020722,
+          "y": -0.0005973785095772147,
+          "z": 1.5716187778550596e-18
+        },
+        "angle": {
+          "x": 1.6969054182464261e-19,
+          "y": -1.692380725279793e-19,
+          "z": -0.000001016950851210875
+        }
+      },
+      {
+        "id": "n481",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2886,
+          2887,
+          2888,
+          2889,
+          2890,
+          2891
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 10,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00019716633332621217,
+          "y": -0.00044778221341784647,
+          "z": 0.00002636398658163103
+        },
+        "angle": {
+          "x": 0.0000016290839492201626,
+          "y": -2.3799682309145694e-8,
+          "z": -0.0000028062872725897616
+        }
+      },
+      {
+        "id": "n482",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2892,
+          2893,
+          2894,
+          2895,
+          2896,
+          2897
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 15,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00014866847521005817,
+          "y": -0.0005876621262001902,
+          "z": 0.00003191505108922529
+        },
+        "angle": {
+          "x": 6.521071248477099e-7,
+          "y": -2.3112703248187293e-7,
+          "z": -0.0000020460759854573044
+        }
+      },
+      {
+        "id": "n483",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2898,
+          2899,
+          2900,
+          2901,
+          2902,
+          2903
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 15,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00015786021362858266,
+          "y": -0.0006045953601229074,
+          "z": 0.0000659598438919116
+        },
+        "angle": {
+          "x": 0.0000018807539901206141,
+          "y": 0.00000141630558334258,
+          "z": -0.0000010350756750065556
+        }
+      },
+      {
+        "id": "n484",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2904,
+          2905,
+          2906,
+          2907,
+          2908,
+          2909
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 10,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00020774730443084253,
+          "y": -0.0004634644145100096,
+          "z": 0.00009106326411552523
+        },
+        "angle": {
+          "x": 0.000004395746373587678,
+          "y": 7.213299038284586e-7,
+          "z": -0.00000327417427425778
+        }
+      },
+      {
+        "id": "n485",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2910,
+          2911,
+          2912,
+          2913,
+          2914,
+          2915
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 15,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00015888927232160074,
+          "y": -0.0005988538721145915,
+          "z": 0.00010099707603641853
+        },
+        "angle": {
+          "x": 0.0000015034883180672915,
+          "y": -0.0000012783263629347242,
+          "z": -0.0000022209140481779133
+        }
+      },
+      {
+        "id": "n486",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2916,
+          2917,
+          2918,
+          2919,
+          2920,
+          2921
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 15,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00017640666032618042,
+          "y": -0.0006229774592142332,
+          "z": 0.00014364379549346786
+        },
+        "angle": {
+          "x": 0.0000032039695022198443,
+          "y": -8.013815064619592e-7,
+          "z": -0.0000010651746968398813
+        }
+      },
+      {
+        "id": "n487",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2922,
+          2923,
+          2924,
+          2925,
+          2926,
+          2927
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 10,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00022090326815668866,
+          "y": -0.0004960842300794839,
+          "z": 0.00018717650230330244
+        },
+        "angle": {
+          "x": 0.000004837611695909354,
+          "y": -0.000004153977534336862,
+          "z": -0.000003668502227818612
+        }
+      },
+      {
+        "id": "n488",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2928,
+          2929,
+          2930,
+          2931,
+          2932,
+          2933
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 15,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00016860555293282632,
+          "y": -0.00061936531685007,
+          "z": 0.0001466481738902344
+        },
+        "angle": {
+          "x": 0.0000019385915934323797,
+          "y": -0.0000015576655682766807,
+          "z": -0.000002536446983784366
+        }
+      },
+      {
+        "id": "n489",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2934,
+          2935,
+          2936,
+          2937,
+          2938,
+          2939
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 25,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00018722151689245096,
+          "y": -0.0009167040164955598,
+          "z": -0.00015096894243914826
+        },
+        "angle": {
+          "x": -3.5480518376669005e-7,
+          "y": 8.950218561451026e-7,
+          "z": -3.875377484038346e-7
+        }
+      },
+      {
+        "id": "n490",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2940,
+          2941,
+          2942,
+          2943,
+          2944,
+          2945
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 20,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00024906208967825244,
+          "y": -0.0007724354661741704,
+          "z": -0.00021005618995424086
+        },
+        "angle": {
+          "x": -5.919070497526851e-7,
+          "y": 0.000004372605411260119,
+          "z": -6.335674909888432e-7
+        }
+      },
+      {
+        "id": "n491",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2946,
+          2947,
+          2948,
+          2949,
+          2950,
+          2951
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 20,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00023652279013295098,
+          "y": -0.0007617051974818262,
+          "z": -0.00010972290147252737
+        },
+        "angle": {
+          "x": -8.115864316939599e-7,
+          "y": -9.514995280264751e-7,
+          "z": -7.272600105828889e-7
+        }
+      },
+      {
+        "id": "n492",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2952,
+          2953,
+          2954,
+          2955,
+          2956,
+          2957
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 25,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00017834138671422644,
+          "y": -0.0009129637629977984,
+          "z": -0.00015388042233403085
+        },
+        "angle": {
+          "x": -3.151750487559593e-7,
+          "y": 0.0000018141890057500275,
+          "z": -8.232431276604007e-7
+        }
+      },
+      {
+        "id": "n493",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2958,
+          2959,
+          2960,
+          2961,
+          2962,
+          2963
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 25,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00016964050651075216,
+          "y": -0.0009077539508725842,
+          "z": -0.00010647884065068454
+        },
+        "angle": {
+          "x": 1.73488330636496e-7,
+          "y": 0.0000012450548745406083,
+          "z": -9.748086441393577e-7
+        }
+      },
+      {
+        "id": "n494",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2964,
+          2965,
+          2966,
+          2967,
+          2968,
+          2969
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 25,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00016817710254931207,
+          "y": -0.0009120478297478686,
+          "z": -0.00006969311758653205
+        },
+        "angle": {
+          "x": -2.937597808355056e-7,
+          "y": -0.0000014135138547829028,
+          "z": -2.404589227367099e-7
+        }
+      },
+      {
+        "id": "n495",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2970,
+          2971,
+          2972,
+          2973,
+          2974,
+          2975
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 20,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00022545077537605335,
+          "y": -0.0007527654189725952,
+          "z": -0.000034600278468066966
+        },
+        "angle": {
+          "x": -3.347588016528257e-7,
+          "y": -1.3052142279370622e-8,
+          "z": -7.538069286523706e-7
+        }
+      },
+      {
+        "id": "n496",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2976,
+          2977,
+          2978,
+          2979,
+          2980,
+          2981
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 25,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00015933295398247202,
+          "y": -0.0009002844007705641,
+          "z": -0.00003402762021335687
+        },
+        "angle": {
+          "x": -9.622158403015021e-9,
+          "y": 2.1474137713871146e-7,
+          "z": -0.0000010314686020977658
+        }
+      },
+      {
+        "id": "n497",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2982,
+          2983,
+          2984,
+          2985,
+          2986,
+          2987
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 25,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00016398765107808328,
+          "y": -0.0009080572518359874,
+          "z": 2.6067095266671603e-18
+        },
+        "angle": {
+          "x": -1.173534531717188e-19,
+          "y": -3.1763501442901654e-19,
+          "z": -1.7241058441631605e-7
+        }
+      },
+      {
+        "id": "n498",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2988,
+          2989,
+          2990,
+          2991,
+          2992,
+          2993
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 20,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002254507753760516,
+          "y": -0.0007527654189725954,
+          "z": 0.00003460027846807099
+        },
+        "angle": {
+          "x": 3.3475880165300555e-7,
+          "y": 1.3052142279166618e-8,
+          "z": -7.538069286523394e-7
+        }
+      },
+      {
+        "id": "n499",
+        "parent": "11",
+        "degrees_of_freedom": [
+          2994,
+          2995,
+          2996,
+          2997,
+          2998,
+          2999
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 25,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001593329539824705,
+          "y": -0.0009002844007705622,
+          "z": 0.00003402762021336017
+        },
+        "angle": {
+          "x": 9.622158403095309e-9,
+          "y": -2.1474137713899127e-7,
+          "z": -0.0000010314686020977315
+        }
+      },
+      {
+        "id": "n500",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3000,
+          3001,
+          3002,
+          3003,
+          3004,
+          3005
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 25,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00016817710254930933,
+          "y": -0.0009120478297478677,
+          "z": 0.00006969311758653595
+        },
+        "angle": {
+          "x": 2.937597808356486e-7,
+          "y": 0.0000014135138547825788,
+          "z": -2.404589227365709e-7
+        }
+      },
+      {
+        "id": "n501",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3006,
+          3007,
+          3008,
+          3009,
+          3010,
+          3011
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 20,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00023652279013294724,
+          "y": -0.0007617051974818272,
+          "z": 0.00010972290147253021
+        },
+        "angle": {
+          "x": 8.115864316939732e-7,
+          "y": 9.5149952802635e-7,
+          "z": -7.272600105828324e-7
+        }
+      },
+      {
+        "id": "n502",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3012,
+          3013,
+          3014,
+          3015,
+          3016,
+          3017
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 25,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00016964050651074807,
+          "y": -0.0009077539508725865,
+          "z": 0.00010647884065068682
+        },
+        "angle": {
+          "x": -1.734883306364452e-7,
+          "y": -0.0000012450548745408222,
+          "z": -9.74808644139214e-7
+        }
+      },
+      {
+        "id": "n503",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3018,
+          3019,
+          3020,
+          3021,
+          3022,
+          3023
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 25,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00018722151689244584,
+          "y": -0.0009167040164955592,
+          "z": 0.00015096894243915053
+        },
+        "angle": {
+          "x": 3.5480518376681383e-7,
+          "y": -8.95021856145248e-7,
+          "z": -3.875377484036481e-7
+        }
+      },
+      {
+        "id": "n504",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3024,
+          3025,
+          3026,
+          3027,
+          3028,
+          3029
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 20,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002490620896782475,
+          "y": -0.0007724354661741698,
+          "z": 0.00021005618995424284
+        },
+        "angle": {
+          "x": 5.919070497525189e-7,
+          "y": -0.00000437260541126012,
+          "z": -6.335674909886568e-7
+        }
+      },
+      {
+        "id": "n505",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3030,
+          3031,
+          3032,
+          3033,
+          3034,
+          3035
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 25,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00017834138671422048,
+          "y": -0.0009129637629978001,
+          "z": 0.00015388042233403267
+        },
+        "angle": {
+          "x": 3.1517504875595947e-7,
+          "y": -0.000001814189005750143,
+          "z": -8.232431276603307e-7
+        }
+      },
+      {
+        "id": "n506",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3036,
+          3037,
+          3038,
+          3039,
+          3040,
+          3041
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 35,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00017378764329547077,
+          "y": -0.001234185211553846,
+          "z": -0.00013663958127893428
+        },
+        "angle": {
+          "x": 0.000001171329041182825,
+          "y": 0.0000012150502009160403,
+          "z": 9.126697143156026e-7
+        }
+      },
+      {
+        "id": "n507",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3042,
+          3043,
+          3044,
+          3045,
+          3046,
+          3047
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 30,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002521523916146149,
+          "y": -0.0010672494321100953,
+          "z": -0.00021128231672145882
+        },
+        "angle": {
+          "x": 0.00000245511808161902,
+          "y": 0.000004803795192824862,
+          "z": 0.0000013695153886510084
+        }
+      },
+      {
+        "id": "n508",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3048,
+          3049,
+          3050,
+          3051,
+          3052,
+          3053
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 30,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002380929408741082,
+          "y": -0.0010695104417563807,
+          "z": -0.00010412581478920817
+        },
+        "angle": {
+          "x": 0.0000012376906567761482,
+          "y": -0.0000011576946660377813,
+          "z": 6.715610961585675e-7
+        }
+      },
+      {
+        "id": "n509",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3054,
+          3055,
+          3056,
+          3057,
+          3058,
+          3059
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 35,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001650418310604831,
+          "y": -0.0012276739730833145,
+          "z": -0.00013964885631088182
+        },
+        "angle": {
+          "x": 0.0000021248146781404186,
+          "y": 0.0000016007461048737443,
+          "z": -6.363076352820976e-7
+        }
+      },
+      {
+        "id": "n510",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3060,
+          3061,
+          3062,
+          3063,
+          3064,
+          3065
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 35,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00015989269387334238,
+          "y": -0.0012229281141838207,
+          "z": -0.00009579872757687344
+        },
+        "angle": {
+          "x": 4.2555933275647355e-7,
+          "y": 0.00000109530132172551,
+          "z": -9.199411121982143e-7
+        }
+      },
+      {
+        "id": "n511",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3066,
+          3067,
+          3068,
+          3069,
+          3070,
+          3071
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 35,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00015793444233654273,
+          "y": -0.001225047763465161,
+          "z": -0.00006203219192994961
+        },
+        "angle": {
+          "x": -3.601962347137546e-7,
+          "y": -0.0000014860243153893658,
+          "z": 8.807327225710941e-7
+        }
+      },
+      {
+        "id": "n512",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3072,
+          3073,
+          3074,
+          3075,
+          3076,
+          3077
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 30,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002256630208169375,
+          "y": -0.0010622959981719615,
+          "z": -0.000032500538640678844
+        },
+        "angle": {
+          "x": 3.5194348374694033e-7,
+          "y": -1.3768488676848606e-7,
+          "z": 4.817153848137349e-7
+        }
+      },
+      {
+        "id": "n513",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3078,
+          3079,
+          3080,
+          3081,
+          3082,
+          3083
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 35,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00014989509898459714,
+          "y": -0.001212192353868021,
+          "z": -0.00003064561189581393
+        },
+        "angle": {
+          "x": -1.4093552045254124e-7,
+          "y": 1.3922411089575873e-7,
+          "z": -7.754924630532768e-7
+        }
+      },
+      {
+        "id": "n514",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3084,
+          3085,
+          3086,
+          3087,
+          3088,
+          3089
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 35,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00015356936235083414,
+          "y": -0.0012180967759681898,
+          "z": 2.2175683897628515e-18
+        },
+        "angle": {
+          "x": -3.489689783629578e-19,
+          "y": -2.797963720170827e-19,
+          "z": 9.898372531516203e-7
+        }
+      },
+      {
+        "id": "n515",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3090,
+          3091,
+          3092,
+          3093,
+          3094,
+          3095
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 30,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00022566302081693438,
+          "y": -0.0010622959981719587,
+          "z": 0.00003250053864068376
+        },
+        "angle": {
+          "x": -3.5194348374700317e-7,
+          "y": 1.3768488676818386e-7,
+          "z": 4.817153848137428e-7
+        }
+      },
+      {
+        "id": "n516",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3096,
+          3097,
+          3098,
+          3099,
+          3100,
+          3101
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 35,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00014989509898459492,
+          "y": -0.0012121923538680162,
+          "z": 0.000030645611895817126
+        },
+        "angle": {
+          "x": 1.4093552045232763e-7,
+          "y": -1.392241108960223e-7,
+          "z": -7.754924630532956e-7
+        }
+      },
+      {
+        "id": "n517",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3102,
+          3103,
+          3104,
+          3105,
+          3106,
+          3107
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 35,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00015793444233653896,
+          "y": -0.0012250477634651571,
+          "z": 0.00006203219192995369
+        },
+        "angle": {
+          "x": 3.6019623471367926e-7,
+          "y": 0.0000014860243153889485,
+          "z": 8.807327225710076e-7
+        }
+      },
+      {
+        "id": "n518",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3108,
+          3109,
+          3110,
+          3111,
+          3112,
+          3113
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 30,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00023809294087410223,
+          "y": -0.001069510441756377,
+          "z": 0.00010412581478921153
+        },
+        "angle": {
+          "x": -0.0000012376906567760226,
+          "y": 0.0000011576946660376185,
+          "z": 6.715610961586983e-7
+        }
+      },
+      {
+        "id": "n519",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3114,
+          3115,
+          3116,
+          3117,
+          3118,
+          3119
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 35,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001598926938733377,
+          "y": -0.0012229281141838168,
+          "z": 0.00009579872757687626
+        },
+        "angle": {
+          "x": -4.2555933275636587e-7,
+          "y": -0.0000010953013217258538,
+          "z": -9.199411121981155e-7
+        }
+      },
+      {
+        "id": "n520",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3120,
+          3121,
+          3122,
+          3123,
+          3124,
+          3125
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 35,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00017378764329546422,
+          "y": -0.0012341852115538444,
+          "z": 0.00013663958127893862
+        },
+        "angle": {
+          "x": -0.0000011713290411822841,
+          "y": -0.0000012150502009163378,
+          "z": 9.126697143156455e-7
+        }
+      },
+      {
+        "id": "n521",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3126,
+          3127,
+          3128,
+          3129,
+          3130,
+          3131
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 30,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002521523916146074,
+          "y": -0.0010672494321100955,
+          "z": 0.0002112823167214618
+        },
+        "angle": {
+          "x": -0.000002455118081618736,
+          "y": -0.000004803795192825006,
+          "z": 0.0000013695153886512297
+        }
+      },
+      {
+        "id": "n522",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3132,
+          3133,
+          3134,
+          3135,
+          3136,
+          3137
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 35,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001650418310604756,
+          "y": -0.001227673973083317,
+          "z": 0.00013964885631088502
+        },
+        "angle": {
+          "x": -0.000002124814678139945,
+          "y": -0.000001600746104874174,
+          "z": -6.363076352823015e-7
+        }
+      },
+      {
+        "id": "n523",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3138,
+          3139,
+          3140,
+          3141,
+          3142,
+          3143
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 45,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00016376731083781395,
+          "y": -0.001510905240040909,
+          "z": -0.00012119654767177575
+        },
+        "angle": {
+          "x": 0.0000020628058585326925,
+          "y": 0.0000025698560697340654,
+          "z": 0.000005841406028647575
+        }
+      },
+      {
+        "id": "n524",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3144,
+          3145,
+          3146,
+          3147,
+          3148,
+          3149
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 40,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002331359734557682,
+          "y": -0.0014063676073439626,
+          "z": -0.00018900223671558644
+        },
+        "angle": {
+          "x": -0.0000014681971548910232,
+          "y": 0.000004534923697224015,
+          "z": -0.000003442537301635907
+        }
+      },
+      {
+        "id": "n525",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3150,
+          3151,
+          3152,
+          3153,
+          3154,
+          3155
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 40,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00022131198586248054,
+          "y": -0.0013904070012034325,
+          "z": -0.00009173260422551785
+        },
+        "angle": {
+          "x": 3.4088217589846846e-7,
+          "y": -0.000001512963492717738,
+          "z": -0.0000017791864773533428
+        }
+      },
+      {
+        "id": "n526",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3156,
+          3157,
+          3158,
+          3159,
+          3160,
+          3161
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 45,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00016394087309779668,
+          "y": -0.001495800231410357,
+          "z": -0.00010946213367828334
+        },
+        "angle": {
+          "x": 0.00001375796631933138,
+          "y": 0.0000013138339953699202,
+          "z": -0.00000134198223191399
+        }
+      },
+      {
+        "id": "n527",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3162,
+          3163,
+          3164,
+          3165,
+          3166,
+          3167
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 45,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001544923136796721,
+          "y": -0.0014913058293063366,
+          "z": -0.00008780680653789713
+        },
+        "angle": {
+          "x": -0.000001890541724884307,
+          "y": 7.854266205244292e-7,
+          "z": -0.0000016566696612960976
+        }
+      },
+      {
+        "id": "n528",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3168,
+          3169,
+          3170,
+          3171,
+          3172,
+          3173
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 45,
+          "z": 10
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00013844110547553626,
+          "y": -0.0014817776447229127,
+          "z": -0.00006038855470583557
+        },
+        "angle": {
+          "x": -0.000001622025664340847,
+          "y": -0.0000013250125586681703,
+          "z": 0.000006195339506717805
+        }
+      },
+      {
+        "id": "n529",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3174,
+          3175,
+          3176,
+          3177,
+          3178,
+          3179
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 40,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002052872419056942,
+          "y": -0.0013735833086183137,
+          "z": -0.000029941046579682003
+        },
+        "angle": {
+          "x": -7.586195158180245e-8,
+          "y": -3.7992743482518077e-7,
+          "z": -0.0000012531857355128121
+        }
+      },
+      {
+        "id": "n530",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3180,
+          3181,
+          3182,
+          3183,
+          3184,
+          3185
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 45,
+          "z": 15
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001396090954797756,
+          "y": -0.0014723311487830964,
+          "z": -0.0000301884514719815
+        },
+        "angle": {
+          "x": -4.193707548513609e-7,
+          "y": -1.8183890862985348e-8,
+          "z": -0.0000012361669380272588
+        }
+      },
+      {
+        "id": "n531",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3186,
+          3187,
+          3188,
+          3189,
+          3190,
+          3191
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 45,
+          "z": 20
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0001298146736068947,
+          "y": -0.0014724927717099346,
+          "z": 7.269096336387336e-19
+        },
+        "angle": {
+          "x": -4.526175243642605e-19,
+          "y": 7.141174769739685e-21,
+          "z": 0.000006170746686628939
+        }
+      },
+      {
+        "id": "n532",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3192,
+          3193,
+          3194,
+          3195,
+          3196,
+          3197
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 40,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.0002052872419056929,
+          "y": -0.0013735833086183106,
+          "z": 0.00002994104657968552
+        },
+        "angle": {
+          "x": 7.586195158155612e-8,
+          "y": 3.79927434824923e-7,
+          "z": -0.0000012531857355129794
+        }
+      },
+      {
+        "id": "n533",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3198,
+          3199,
+          3200,
+          3201,
+          3202,
+          3203
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 45,
+          "z": 25
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00013960909547977552,
+          "y": -0.0014723311487830925,
+          "z": 0.000030188451471982852
+        },
+        "angle": {
+          "x": 4.19370754851109e-7,
+          "y": 1.8183890862671982e-8,
+          "z": -0.0000012361669380275074
+        }
+      },
+      {
+        "id": "n534",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3204,
+          3205,
+          3206,
+          3207,
+          3208,
+          3209
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 45,
+          "z": 30
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00013844110547553442,
+          "y": -0.0014817776447229101,
+          "z": 0.000060388554705839515
+        },
+        "angle": {
+          "x": 0.0000016220256643407506,
+          "y": 0.0000013250125586676433,
+          "z": 0.000006195339506717596
+        }
+      },
+      {
+        "id": "n535",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3210,
+          3211,
+          3212,
+          3213,
+          3214,
+          3215
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 40,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00022131198586247566,
+          "y": -0.0013904070012034297,
+          "z": 0.00009173260422552235
+        },
+        "angle": {
+          "x": -3.408821758983792e-7,
+          "y": 0.0000015129634927174442,
+          "z": -0.000001779186477353647
+        }
+      },
+      {
+        "id": "n536",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3216,
+          3217,
+          3218,
+          3219,
+          3220,
+          3221
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 45,
+          "z": 35
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00015449231367966885,
+          "y": -0.0014913058293063305,
+          "z": 0.00008780680653790002
+        },
+        "angle": {
+          "x": 0.000001890541724884367,
+          "y": -7.854266205249016e-7,
+          "z": -0.0000016566696612963102
+        }
+      },
+      {
+        "id": "n537",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3222,
+          3223,
+          3224,
+          3225,
+          3226,
+          3227
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 45,
+          "z": 40
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00016376731083780937,
+          "y": -0.001510905240040908,
+          "z": 0.00012119654767178092
+        },
+        "angle": {
+          "x": -0.000002062805858532326,
+          "y": -0.000002569856069734563,
+          "z": 0.000005841406028647414
+        }
+      },
+      {
+        "id": "n538",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3228,
+          3229,
+          3230,
+          3231,
+          3232,
+          3233
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 45,
+          "y": 40,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00023313597345576037,
+          "y": -0.001406367607343962,
+          "z": 0.00018900223671559183
+        },
+        "angle": {
+          "x": 0.000001468197154890906,
+          "y": -0.000004534923697224348,
+          "z": -0.000003442537301635989
+        }
+      },
+      {
+        "id": "n539",
+        "parent": "11",
+        "degrees_of_freedom": [
+          3234,
+          3235,
+          3236,
+          3237,
+          3238,
+          3239
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 40,
+          "y": 45,
+          "z": 45
+        },
+        "force": {
+          "x": 0,
+          "y": -400,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0.00016394087309779115,
+          "y": -0.0014958002314103562,
+          "z": 0.00010946213367828672
+        },
+        "angle": {
+          "x": -0.000013757966319331302,
+          "y": -0.0000013138339953704234,
+          "z": -0.0000013419822319142645
+        }
+      }
+    ],
+    "edges": [
+      {
+        "id": "e0",
+        "source": 0,
+        "target": 1,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1",
+        "source": 1,
+        "target": 2,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e2",
+        "source": 2,
+        "target": 3,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e3",
+        "source": 3,
+        "target": 0,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e4",
+        "source": 4,
+        "target": 5,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -401.7049560546875
+      },
+      {
+        "id": "e5",
+        "source": 5,
+        "target": 0,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -203.17774963378906
+      },
+      {
+        "id": "e6",
+        "source": 0,
+        "target": 6,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -472.5869140625
+      },
+      {
+        "id": "e7",
+        "source": 6,
+        "target": 4,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -292.939697265625
+      },
+      {
+        "id": "e8",
+        "source": 7,
+        "target": 8,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 44.3015251159668
+      },
+      {
+        "id": "e9",
+        "source": 8,
+        "target": 4,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 181.6524658203125
+      },
+      {
+        "id": "e10",
+        "source": 4,
+        "target": 9,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 145.8289337158203
+      },
+      {
+        "id": "e11",
+        "source": 9,
+        "target": 7,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 166.3050079345703
+      },
+      {
+        "id": "e12",
+        "source": 2,
+        "target": 10,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -292.9940185546875
+      },
+      {
+        "id": "e13",
+        "source": 10,
+        "target": 7,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -314.3655090332031
+      },
+      {
+        "id": "e14",
+        "source": 7,
+        "target": 11,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -286.51873779296875
+      },
+      {
+        "id": "e15",
+        "source": 11,
+        "target": 2,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -575.192626953125
+      },
+      {
+        "id": "e16",
+        "source": 8,
+        "target": 10,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -283.128662109375
+      },
+      {
+        "id": "e17",
+        "source": 10,
+        "target": 1,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -220.99209594726562
+      },
+      {
+        "id": "e18",
+        "source": 1,
+        "target": 5,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -567.5455322265625
+      },
+      {
+        "id": "e19",
+        "source": 5,
+        "target": 8,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -258.7574768066406
+      },
+      {
+        "id": "e20",
+        "source": 6,
+        "target": 3,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -493.98992919921875
+      },
+      {
+        "id": "e21",
+        "source": 3,
+        "target": 11,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -130.22816467285156
+      },
+      {
+        "id": "e22",
+        "source": 11,
+        "target": 9,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -365.04693603515625
+      },
+      {
+        "id": "e23",
+        "source": 9,
+        "target": 6,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -256.9091796875
+      },
+      {
+        "id": "e24",
+        "source": 12,
+        "target": 3,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e25",
+        "source": 3,
+        "target": 13,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e26",
+        "source": 13,
+        "target": 14,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e27",
+        "source": 14,
+        "target": 12,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e28",
+        "source": 15,
+        "target": 6,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -451.0946044921875
+      },
+      {
+        "id": "e29",
+        "source": 6,
+        "target": 12,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -306.20843505859375
+      },
+      {
+        "id": "e30",
+        "source": 12,
+        "target": 16,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -405.9900207519531
+      },
+      {
+        "id": "e31",
+        "source": 16,
+        "target": 15,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -335.16192626953125
+      },
+      {
+        "id": "e32",
+        "source": 17,
+        "target": 9,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 99.21932983398438
+      },
+      {
+        "id": "e33",
+        "source": 9,
+        "target": 15,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 189.42361450195312
+      },
+      {
+        "id": "e34",
+        "source": 15,
+        "target": 18,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 137.69595336914062
+      },
+      {
+        "id": "e35",
+        "source": 18,
+        "target": 17,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 95.99263763427734
+      },
+      {
+        "id": "e36",
+        "source": 13,
+        "target": 11,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -398.817138671875
+      },
+      {
+        "id": "e37",
+        "source": 11,
+        "target": 17,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -444.2502136230469
+      },
+      {
+        "id": "e38",
+        "source": 17,
+        "target": 19,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -338.0864562988281
+      },
+      {
+        "id": "e39",
+        "source": 19,
+        "target": 13,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -494.9745178222656
+      },
+      {
+        "id": "e40",
+        "source": 16,
+        "target": 14,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -478.4845886230469
+      },
+      {
+        "id": "e41",
+        "source": 14,
+        "target": 19,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -131.62808227539062
+      },
+      {
+        "id": "e42",
+        "source": 19,
+        "target": 18,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -350.78045654296875
+      },
+      {
+        "id": "e43",
+        "source": 18,
+        "target": 16,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -255.28709411621094
+      },
+      {
+        "id": "e44",
+        "source": 20,
+        "target": 14,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e45",
+        "source": 14,
+        "target": 21,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e46",
+        "source": 21,
+        "target": 22,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e47",
+        "source": 22,
+        "target": 20,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e48",
+        "source": 23,
+        "target": 16,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -391.7324523925781
+      },
+      {
+        "id": "e49",
+        "source": 16,
+        "target": 20,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -352.5620422363281
+      },
+      {
+        "id": "e50",
+        "source": 20,
+        "target": 24,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -352.5620422363281
+      },
+      {
+        "id": "e51",
+        "source": 24,
+        "target": 23,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -391.7324523925781
+      },
+      {
+        "id": "e52",
+        "source": 25,
+        "target": 18,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 89.3107681274414
+      },
+      {
+        "id": "e53",
+        "source": 18,
+        "target": 23,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 147.4529571533203
+      },
+      {
+        "id": "e54",
+        "source": 23,
+        "target": 26,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 147.4529571533203
+      },
+      {
+        "id": "e55",
+        "source": 26,
+        "target": 25,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 89.3107681274414
+      },
+      {
+        "id": "e56",
+        "source": 21,
+        "target": 19,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -442.6197204589844
+      },
+      {
+        "id": "e57",
+        "source": 19,
+        "target": 25,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -393.7646179199219
+      },
+      {
+        "id": "e58",
+        "source": 25,
+        "target": 27,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -393.7646179199219
+      },
+      {
+        "id": "e59",
+        "source": 27,
+        "target": 21,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -442.6197204589844
+      },
+      {
+        "id": "e60",
+        "source": 24,
+        "target": 22,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -478.4845886230469
+      },
+      {
+        "id": "e61",
+        "source": 22,
+        "target": 27,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -131.62808227539062
+      },
+      {
+        "id": "e62",
+        "source": 27,
+        "target": 26,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -350.78045654296875
+      },
+      {
+        "id": "e63",
+        "source": 26,
+        "target": 24,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -255.28709411621094
+      },
+      {
+        "id": "e64",
+        "source": 28,
+        "target": 22,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e65",
+        "source": 22,
+        "target": 29,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e66",
+        "source": 29,
+        "target": 30,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e67",
+        "source": 30,
+        "target": 28,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e68",
+        "source": 31,
+        "target": 24,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -335.16192626953125
+      },
+      {
+        "id": "e69",
+        "source": 24,
+        "target": 28,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -405.9900207519531
+      },
+      {
+        "id": "e70",
+        "source": 28,
+        "target": 32,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -306.20843505859375
+      },
+      {
+        "id": "e71",
+        "source": 32,
+        "target": 31,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -451.0946044921875
+      },
+      {
+        "id": "e72",
+        "source": 33,
+        "target": 26,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 95.99263763427734
+      },
+      {
+        "id": "e73",
+        "source": 26,
+        "target": 31,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 137.69595336914062
+      },
+      {
+        "id": "e74",
+        "source": 31,
+        "target": 34,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 189.42361450195312
+      },
+      {
+        "id": "e75",
+        "source": 34,
+        "target": 33,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 99.21932983398438
+      },
+      {
+        "id": "e76",
+        "source": 29,
+        "target": 27,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -494.9745178222656
+      },
+      {
+        "id": "e77",
+        "source": 27,
+        "target": 33,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -338.0864562988281
+      },
+      {
+        "id": "e78",
+        "source": 33,
+        "target": 35,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -444.2502136230469
+      },
+      {
+        "id": "e79",
+        "source": 35,
+        "target": 29,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -398.817138671875
+      },
+      {
+        "id": "e80",
+        "source": 32,
+        "target": 30,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -493.98992919921875
+      },
+      {
+        "id": "e81",
+        "source": 30,
+        "target": 35,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -130.22816467285156
+      },
+      {
+        "id": "e82",
+        "source": 35,
+        "target": 34,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -365.04693603515625
+      },
+      {
+        "id": "e83",
+        "source": 34,
+        "target": 32,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -256.9091796875
+      },
+      {
+        "id": "e84",
+        "source": 36,
+        "target": 30,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e85",
+        "source": 30,
+        "target": 37,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e86",
+        "source": 37,
+        "target": 38,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e87",
+        "source": 38,
+        "target": 36,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e88",
+        "source": 39,
+        "target": 32,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -292.939697265625
+      },
+      {
+        "id": "e89",
+        "source": 32,
+        "target": 36,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -472.5869140625
+      },
+      {
+        "id": "e90",
+        "source": 36,
+        "target": 40,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -203.17774963378906
+      },
+      {
+        "id": "e91",
+        "source": 40,
+        "target": 39,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -401.7049560546875
+      },
+      {
+        "id": "e92",
+        "source": 41,
+        "target": 34,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 166.3050079345703
+      },
+      {
+        "id": "e93",
+        "source": 34,
+        "target": 39,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 145.8289337158203
+      },
+      {
+        "id": "e94",
+        "source": 39,
+        "target": 42,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 181.6524658203125
+      },
+      {
+        "id": "e95",
+        "source": 42,
+        "target": 41,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 44.3015251159668
+      },
+      {
+        "id": "e96",
+        "source": 37,
+        "target": 35,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -575.192626953125
+      },
+      {
+        "id": "e97",
+        "source": 35,
+        "target": 41,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -286.51873779296875
+      },
+      {
+        "id": "e98",
+        "source": 41,
+        "target": 43,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -314.3655090332031
+      },
+      {
+        "id": "e99",
+        "source": 43,
+        "target": 37,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -292.9940185546875
+      },
+      {
+        "id": "e100",
+        "source": 40,
+        "target": 38,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -567.5455322265625
+      },
+      {
+        "id": "e101",
+        "source": 38,
+        "target": 43,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -220.99209594726562
+      },
+      {
+        "id": "e102",
+        "source": 43,
+        "target": 42,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -283.128662109375
+      },
+      {
+        "id": "e103",
+        "source": 42,
+        "target": 40,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -258.7574768066406
+      },
+      {
+        "id": "e104",
+        "source": 44,
+        "target": 45,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -309.3009948730469
+      },
+      {
+        "id": "e105",
+        "source": 45,
+        "target": 4,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -284.59722900390625
+      },
+      {
+        "id": "e106",
+        "source": 4,
+        "target": 46,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -403.1513671875
+      },
+      {
+        "id": "e107",
+        "source": 46,
+        "target": 44,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.2358703613281
+      },
+      {
+        "id": "e108",
+        "source": 47,
+        "target": 48,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 32.416481018066406
+      },
+      {
+        "id": "e109",
+        "source": 48,
+        "target": 44,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 203.0487060546875
+      },
+      {
+        "id": "e110",
+        "source": 44,
+        "target": 49,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 184.2433319091797
+      },
+      {
+        "id": "e111",
+        "source": 49,
+        "target": 47,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 180.49227905273438
+      },
+      {
+        "id": "e112",
+        "source": 7,
+        "target": 50,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -241.38722229003906
+      },
+      {
+        "id": "e113",
+        "source": 50,
+        "target": 47,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -250.0814971923828
+      },
+      {
+        "id": "e114",
+        "source": 47,
+        "target": 51,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -320.7974548339844
+      },
+      {
+        "id": "e115",
+        "source": 51,
+        "target": 7,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -353.5205993652344
+      },
+      {
+        "id": "e116",
+        "source": 48,
+        "target": 50,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -212.9500732421875
+      },
+      {
+        "id": "e117",
+        "source": 50,
+        "target": 8,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -204.31982421875
+      },
+      {
+        "id": "e118",
+        "source": 8,
+        "target": 45,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -333.8799743652344
+      },
+      {
+        "id": "e119",
+        "source": 45,
+        "target": 48,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -299.2804260253906
+      },
+      {
+        "id": "e120",
+        "source": 46,
+        "target": 9,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -381.0902099609375
+      },
+      {
+        "id": "e121",
+        "source": 9,
+        "target": 51,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -225.43670654296875
+      },
+      {
+        "id": "e122",
+        "source": 51,
+        "target": 49,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -259.5942687988281
+      },
+      {
+        "id": "e123",
+        "source": 49,
+        "target": 46,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -330.3759460449219
+      },
+      {
+        "id": "e124",
+        "source": 52,
+        "target": 46,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -393.936767578125
+      },
+      {
+        "id": "e125",
+        "source": 46,
+        "target": 15,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -360.0229187011719
+      },
+      {
+        "id": "e126",
+        "source": 15,
+        "target": 53,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -410.7134704589844
+      },
+      {
+        "id": "e127",
+        "source": 53,
+        "target": 52,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -369.88006591796875
+      },
+      {
+        "id": "e128",
+        "source": 54,
+        "target": 49,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 102.02445983886719
+      },
+      {
+        "id": "e129",
+        "source": 49,
+        "target": 52,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 245.49436950683594
+      },
+      {
+        "id": "e130",
+        "source": 52,
+        "target": 55,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 189.0060272216797
+      },
+      {
+        "id": "e131",
+        "source": 55,
+        "target": 54,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 129.7095947265625
+      },
+      {
+        "id": "e132",
+        "source": 17,
+        "target": 51,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -336.497314453125
+      },
+      {
+        "id": "e133",
+        "source": 51,
+        "target": 54,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -348.0825500488281
+      },
+      {
+        "id": "e134",
+        "source": 54,
+        "target": 56,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -351.6517639160156
+      },
+      {
+        "id": "e135",
+        "source": 56,
+        "target": 17,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -402.9957580566406
+      },
+      {
+        "id": "e136",
+        "source": 53,
+        "target": 18,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -383.1078186035156
+      },
+      {
+        "id": "e137",
+        "source": 18,
+        "target": 56,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -216.4929962158203
+      },
+      {
+        "id": "e138",
+        "source": 56,
+        "target": 55,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -274.1460876464844
+      },
+      {
+        "id": "e139",
+        "source": 55,
+        "target": 53,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -339.60443115234375
+      },
+      {
+        "id": "e140",
+        "source": 57,
+        "target": 53,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -388.15087890625
+      },
+      {
+        "id": "e141",
+        "source": 53,
+        "target": 23,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -385.113525390625
+      },
+      {
+        "id": "e142",
+        "source": 23,
+        "target": 58,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -385.113525390625
+      },
+      {
+        "id": "e143",
+        "source": 58,
+        "target": 57,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -388.15087890625
+      },
+      {
+        "id": "e144",
+        "source": 59,
+        "target": 55,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 111.53241729736328
+      },
+      {
+        "id": "e145",
+        "source": 55,
+        "target": 57,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 207.50411987304688
+      },
+      {
+        "id": "e146",
+        "source": 57,
+        "target": 60,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 207.50411987304688
+      },
+      {
+        "id": "e147",
+        "source": 60,
+        "target": 59,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 111.53241729736328
+      },
+      {
+        "id": "e148",
+        "source": 25,
+        "target": 56,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -375.5155029296875
+      },
+      {
+        "id": "e149",
+        "source": 56,
+        "target": 59,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -369.69696044921875
+      },
+      {
+        "id": "e150",
+        "source": 59,
+        "target": 61,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -369.69696044921875
+      },
+      {
+        "id": "e151",
+        "source": 61,
+        "target": 25,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -375.5155029296875
+      },
+      {
+        "id": "e152",
+        "source": 58,
+        "target": 26,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -383.1078186035156
+      },
+      {
+        "id": "e153",
+        "source": 26,
+        "target": 61,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -216.4929962158203
+      },
+      {
+        "id": "e154",
+        "source": 61,
+        "target": 60,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -274.1460876464844
+      },
+      {
+        "id": "e155",
+        "source": 60,
+        "target": 58,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -339.60443115234375
+      },
+      {
+        "id": "e156",
+        "source": 62,
+        "target": 58,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -369.88006591796875
+      },
+      {
+        "id": "e157",
+        "source": 58,
+        "target": 31,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -410.7134704589844
+      },
+      {
+        "id": "e158",
+        "source": 31,
+        "target": 63,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -360.0229187011719
+      },
+      {
+        "id": "e159",
+        "source": 63,
+        "target": 62,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -393.936767578125
+      },
+      {
+        "id": "e160",
+        "source": 64,
+        "target": 60,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 129.7095947265625
+      },
+      {
+        "id": "e161",
+        "source": 60,
+        "target": 62,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 189.0060272216797
+      },
+      {
+        "id": "e162",
+        "source": 62,
+        "target": 65,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 245.49436950683594
+      },
+      {
+        "id": "e163",
+        "source": 65,
+        "target": 64,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 102.02445983886719
+      },
+      {
+        "id": "e164",
+        "source": 33,
+        "target": 61,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -402.9957580566406
+      },
+      {
+        "id": "e165",
+        "source": 61,
+        "target": 64,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -351.6517639160156
+      },
+      {
+        "id": "e166",
+        "source": 64,
+        "target": 66,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -348.0825500488281
+      },
+      {
+        "id": "e167",
+        "source": 66,
+        "target": 33,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -336.497314453125
+      },
+      {
+        "id": "e168",
+        "source": 63,
+        "target": 34,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -381.0902099609375
+      },
+      {
+        "id": "e169",
+        "source": 34,
+        "target": 66,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -225.43670654296875
+      },
+      {
+        "id": "e170",
+        "source": 66,
+        "target": 65,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -259.5942687988281
+      },
+      {
+        "id": "e171",
+        "source": 65,
+        "target": 63,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -330.3759460449219
+      },
+      {
+        "id": "e172",
+        "source": 67,
+        "target": 63,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.2358703613281
+      },
+      {
+        "id": "e173",
+        "source": 63,
+        "target": 39,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -403.1513671875
+      },
+      {
+        "id": "e174",
+        "source": 39,
+        "target": 68,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -284.59722900390625
+      },
+      {
+        "id": "e175",
+        "source": 68,
+        "target": 67,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -309.3009948730469
+      },
+      {
+        "id": "e176",
+        "source": 69,
+        "target": 65,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 180.49227905273438
+      },
+      {
+        "id": "e177",
+        "source": 65,
+        "target": 67,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 184.2433319091797
+      },
+      {
+        "id": "e178",
+        "source": 67,
+        "target": 70,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 203.0487060546875
+      },
+      {
+        "id": "e179",
+        "source": 70,
+        "target": 69,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 32.416481018066406
+      },
+      {
+        "id": "e180",
+        "source": 41,
+        "target": 66,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -353.5205993652344
+      },
+      {
+        "id": "e181",
+        "source": 66,
+        "target": 69,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -320.7974548339844
+      },
+      {
+        "id": "e182",
+        "source": 69,
+        "target": 71,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -250.0814971923828
+      },
+      {
+        "id": "e183",
+        "source": 71,
+        "target": 41,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -241.38722229003906
+      },
+      {
+        "id": "e184",
+        "source": 68,
+        "target": 42,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -333.8799743652344
+      },
+      {
+        "id": "e185",
+        "source": 42,
+        "target": 71,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -204.31982421875
+      },
+      {
+        "id": "e186",
+        "source": 71,
+        "target": 70,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -212.9500732421875
+      },
+      {
+        "id": "e187",
+        "source": 70,
+        "target": 68,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -299.2804260253906
+      },
+      {
+        "id": "e188",
+        "source": 72,
+        "target": 73,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -295.2023620605469
+      },
+      {
+        "id": "e189",
+        "source": 73,
+        "target": 44,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -308.8236389160156
+      },
+      {
+        "id": "e190",
+        "source": 44,
+        "target": 74,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -363.21502685546875
+      },
+      {
+        "id": "e191",
+        "source": 74,
+        "target": 72,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -382.387451171875
+      },
+      {
+        "id": "e192",
+        "source": 75,
+        "target": 76,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 35.374813079833984
+      },
+      {
+        "id": "e193",
+        "source": 76,
+        "target": 72,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 210.07814025878906
+      },
+      {
+        "id": "e194",
+        "source": 72,
+        "target": 77,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 193.01165771484375
+      },
+      {
+        "id": "e195",
+        "source": 77,
+        "target": 75,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 186.21340942382812
+      },
+      {
+        "id": "e196",
+        "source": 47,
+        "target": 78,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -249.13690185546875
+      },
+      {
+        "id": "e197",
+        "source": 78,
+        "target": 75,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -255.54400634765625
+      },
+      {
+        "id": "e198",
+        "source": 75,
+        "target": 79,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -341.2582092285156
+      },
+      {
+        "id": "e199",
+        "source": 79,
+        "target": 47,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -314.42059326171875
+      },
+      {
+        "id": "e200",
+        "source": 76,
+        "target": 78,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -209.42283630371094
+      },
+      {
+        "id": "e201",
+        "source": 78,
+        "target": 48,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -217.84075927734375
+      },
+      {
+        "id": "e202",
+        "source": 48,
+        "target": 73,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -286.6039123535156
+      },
+      {
+        "id": "e203",
+        "source": 73,
+        "target": 76,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -323.2729187011719
+      },
+      {
+        "id": "e204",
+        "source": 74,
+        "target": 49,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -330.42816162109375
+      },
+      {
+        "id": "e205",
+        "source": 49,
+        "target": 79,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -255.65353393554688
+      },
+      {
+        "id": "e206",
+        "source": 79,
+        "target": 77,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -237.49928283691406
+      },
+      {
+        "id": "e207",
+        "source": 77,
+        "target": 74,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -356.5154113769531
+      },
+      {
+        "id": "e208",
+        "source": 80,
+        "target": 74,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -363.38641357421875
+      },
+      {
+        "id": "e209",
+        "source": 74,
+        "target": 52,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -382.2891540527344
+      },
+      {
+        "id": "e210",
+        "source": 52,
+        "target": 81,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -376.40301513671875
+      },
+      {
+        "id": "e211",
+        "source": 81,
+        "target": 80,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -385.4752502441406
+      },
+      {
+        "id": "e212",
+        "source": 82,
+        "target": 77,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 105.96690368652344
+      },
+      {
+        "id": "e213",
+        "source": 77,
+        "target": 80,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 254.7412109375
+      },
+      {
+        "id": "e214",
+        "source": 80,
+        "target": 83,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 200.04141235351562
+      },
+      {
+        "id": "e215",
+        "source": 83,
+        "target": 82,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 133.5289306640625
+      },
+      {
+        "id": "e216",
+        "source": 54,
+        "target": 79,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -340.0404968261719
+      },
+      {
+        "id": "e217",
+        "source": 79,
+        "target": 82,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -330.9383850097656
+      },
+      {
+        "id": "e218",
+        "source": 82,
+        "target": 84,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -372.56866455078125
+      },
+      {
+        "id": "e219",
+        "source": 84,
+        "target": 54,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -350.43157958984375
+      },
+      {
+        "id": "e220",
+        "source": 81,
+        "target": 55,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -345.94110107421875
+      },
+      {
+        "id": "e221",
+        "source": 55,
+        "target": 84,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -264.96295166015625
+      },
+      {
+        "id": "e222",
+        "source": 84,
+        "target": 83,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -244.203369140625
+      },
+      {
+        "id": "e223",
+        "source": 83,
+        "target": 81,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -369.111572265625
+      },
+      {
+        "id": "e224",
+        "source": 85,
+        "target": 81,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -376.4401550292969
+      },
+      {
+        "id": "e225",
+        "source": 81,
+        "target": 57,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -384.10009765625
+      },
+      {
+        "id": "e226",
+        "source": 57,
+        "target": 86,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -384.10009765625
+      },
+      {
+        "id": "e227",
+        "source": 86,
+        "target": 85,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -376.4401550292969
+      },
+      {
+        "id": "e228",
+        "source": 87,
+        "target": 83,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 116.04698181152344
+      },
+      {
+        "id": "e229",
+        "source": 83,
+        "target": 85,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 218.94857788085938
+      },
+      {
+        "id": "e230",
+        "source": 85,
+        "target": 88,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 218.94857788085938
+      },
+      {
+        "id": "e231",
+        "source": 88,
+        "target": 87,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 116.04698181152344
+      },
+      {
+        "id": "e232",
+        "source": 59,
+        "target": 84,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.3597106933594
+      },
+      {
+        "id": "e233",
+        "source": 84,
+        "target": 87,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.0746154785156
+      },
+      {
+        "id": "e234",
+        "source": 87,
+        "target": 89,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.0746154785156
+      },
+      {
+        "id": "e235",
+        "source": 89,
+        "target": 59,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.3597106933594
+      },
+      {
+        "id": "e236",
+        "source": 86,
+        "target": 60,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -345.94110107421875
+      },
+      {
+        "id": "e237",
+        "source": 60,
+        "target": 89,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -264.96295166015625
+      },
+      {
+        "id": "e238",
+        "source": 89,
+        "target": 88,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -244.203369140625
+      },
+      {
+        "id": "e239",
+        "source": 88,
+        "target": 86,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -369.111572265625
+      },
+      {
+        "id": "e240",
+        "source": 90,
+        "target": 86,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -385.4752502441406
+      },
+      {
+        "id": "e241",
+        "source": 86,
+        "target": 62,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -376.40301513671875
+      },
+      {
+        "id": "e242",
+        "source": 62,
+        "target": 91,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -382.2891540527344
+      },
+      {
+        "id": "e243",
+        "source": 91,
+        "target": 90,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -363.38641357421875
+      },
+      {
+        "id": "e244",
+        "source": 92,
+        "target": 88,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 133.5289306640625
+      },
+      {
+        "id": "e245",
+        "source": 88,
+        "target": 90,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 200.04141235351562
+      },
+      {
+        "id": "e246",
+        "source": 90,
+        "target": 93,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 254.7412109375
+      },
+      {
+        "id": "e247",
+        "source": 93,
+        "target": 92,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 105.96690368652344
+      },
+      {
+        "id": "e248",
+        "source": 64,
+        "target": 89,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -350.43157958984375
+      },
+      {
+        "id": "e249",
+        "source": 89,
+        "target": 92,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -372.56866455078125
+      },
+      {
+        "id": "e250",
+        "source": 92,
+        "target": 94,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -330.9383850097656
+      },
+      {
+        "id": "e251",
+        "source": 94,
+        "target": 64,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -340.0404968261719
+      },
+      {
+        "id": "e252",
+        "source": 91,
+        "target": 65,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -330.42816162109375
+      },
+      {
+        "id": "e253",
+        "source": 65,
+        "target": 94,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -255.65353393554688
+      },
+      {
+        "id": "e254",
+        "source": 94,
+        "target": 93,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -237.49928283691406
+      },
+      {
+        "id": "e255",
+        "source": 93,
+        "target": 91,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -356.5154113769531
+      },
+      {
+        "id": "e256",
+        "source": 95,
+        "target": 91,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -382.387451171875
+      },
+      {
+        "id": "e257",
+        "source": 91,
+        "target": 67,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -363.21502685546875
+      },
+      {
+        "id": "e258",
+        "source": 67,
+        "target": 96,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -308.8236389160156
+      },
+      {
+        "id": "e259",
+        "source": 96,
+        "target": 95,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -295.2023620605469
+      },
+      {
+        "id": "e260",
+        "source": 97,
+        "target": 93,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 186.21340942382812
+      },
+      {
+        "id": "e261",
+        "source": 93,
+        "target": 95,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 193.01165771484375
+      },
+      {
+        "id": "e262",
+        "source": 95,
+        "target": 98,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 210.07814025878906
+      },
+      {
+        "id": "e263",
+        "source": 98,
+        "target": 97,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 35.374813079833984
+      },
+      {
+        "id": "e264",
+        "source": 69,
+        "target": 94,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -314.42059326171875
+      },
+      {
+        "id": "e265",
+        "source": 94,
+        "target": 97,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -341.2582092285156
+      },
+      {
+        "id": "e266",
+        "source": 97,
+        "target": 99,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -255.54400634765625
+      },
+      {
+        "id": "e267",
+        "source": 99,
+        "target": 69,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -249.13690185546875
+      },
+      {
+        "id": "e268",
+        "source": 96,
+        "target": 70,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -286.6039123535156
+      },
+      {
+        "id": "e269",
+        "source": 70,
+        "target": 99,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -217.84075927734375
+      },
+      {
+        "id": "e270",
+        "source": 99,
+        "target": 98,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -209.42283630371094
+      },
+      {
+        "id": "e271",
+        "source": 98,
+        "target": 96,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -323.2729187011719
+      },
+      {
+        "id": "e272",
+        "source": 100,
+        "target": 101,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -285.26171875
+      },
+      {
+        "id": "e273",
+        "source": 101,
+        "target": 72,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -326.9801940917969
+      },
+      {
+        "id": "e274",
+        "source": 72,
+        "target": 102,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -350.5188903808594
+      },
+      {
+        "id": "e275",
+        "source": 102,
+        "target": 100,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -401.4304504394531
+      },
+      {
+        "id": "e276",
+        "source": 103,
+        "target": 104,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 35.26524353027344
+      },
+      {
+        "id": "e277",
+        "source": 104,
+        "target": 100,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 189.4701690673828
+      },
+      {
+        "id": "e278",
+        "source": 100,
+        "target": 105,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 182.64556884765625
+      },
+      {
+        "id": "e279",
+        "source": 105,
+        "target": 103,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 164.20742797851562
+      },
+      {
+        "id": "e280",
+        "source": 75,
+        "target": 106,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -270.6961364746094
+      },
+      {
+        "id": "e281",
+        "source": 106,
+        "target": 103,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -276.8791198730469
+      },
+      {
+        "id": "e282",
+        "source": 103,
+        "target": 107,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -396.48272705078125
+      },
+      {
+        "id": "e283",
+        "source": 107,
+        "target": 75,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -317.89007568359375
+      },
+      {
+        "id": "e284",
+        "source": 104,
+        "target": 106,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -219.9418487548828
+      },
+      {
+        "id": "e285",
+        "source": 106,
+        "target": 76,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -241.42416381835938
+      },
+      {
+        "id": "e286",
+        "source": 76,
+        "target": 101,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -279.7339172363281
+      },
+      {
+        "id": "e287",
+        "source": 101,
+        "target": 104,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -376.88519287109375
+      },
+      {
+        "id": "e288",
+        "source": 102,
+        "target": 77,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -310.6617126464844
+      },
+      {
+        "id": "e289",
+        "source": 77,
+        "target": 107,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -279.9124450683594
+      },
+      {
+        "id": "e290",
+        "source": 107,
+        "target": 105,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -225.6521759033203
+      },
+      {
+        "id": "e291",
+        "source": 105,
+        "target": 102,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -384.77264404296875
+      },
+      {
+        "id": "e292",
+        "source": 108,
+        "target": 102,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -347.255615234375
+      },
+      {
+        "id": "e293",
+        "source": 102,
+        "target": 80,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -397.0319519042969
+      },
+      {
+        "id": "e294",
+        "source": 80,
+        "target": 109,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -353.9858703613281
+      },
+      {
+        "id": "e295",
+        "source": 109,
+        "target": 108,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -390.5323791503906
+      },
+      {
+        "id": "e296",
+        "source": 110,
+        "target": 105,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 95.42484283447266
+      },
+      {
+        "id": "e297",
+        "source": 105,
+        "target": 108,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 233.33139038085938
+      },
+      {
+        "id": "e298",
+        "source": 108,
+        "target": 111,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 182.59603881835938
+      },
+      {
+        "id": "e299",
+        "source": 111,
+        "target": 110,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 118.27772521972656
+      },
+      {
+        "id": "e300",
+        "source": 82,
+        "target": 107,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -369.0900573730469
+      },
+      {
+        "id": "e301",
+        "source": 107,
+        "target": 110,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -340.3307800292969
+      },
+      {
+        "id": "e302",
+        "source": 110,
+        "target": 112,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -399.6603088378906
+      },
+      {
+        "id": "e303",
+        "source": 112,
+        "target": 82,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -339.1669006347656
+      },
+      {
+        "id": "e304",
+        "source": 109,
+        "target": 83,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -320.6211242675781
+      },
+      {
+        "id": "e305",
+        "source": 83,
+        "target": 112,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -287.04473876953125
+      },
+      {
+        "id": "e306",
+        "source": 112,
+        "target": 111,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -222.38546752929688
+      },
+      {
+        "id": "e307",
+        "source": 111,
+        "target": 109,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -386.35736083984375
+      },
+      {
+        "id": "e308",
+        "source": 113,
+        "target": 109,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.768310546875
+      },
+      {
+        "id": "e309",
+        "source": 109,
+        "target": 85,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -377.68853759765625
+      },
+      {
+        "id": "e310",
+        "source": 85,
+        "target": 114,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -377.68853759765625
+      },
+      {
+        "id": "e311",
+        "source": 114,
+        "target": 113,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.768310546875
+      },
+      {
+        "id": "e312",
+        "source": 115,
+        "target": 111,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 102.95960998535156
+      },
+      {
+        "id": "e313",
+        "source": 111,
+        "target": 113,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 200.28053283691406
+      },
+      {
+        "id": "e314",
+        "source": 113,
+        "target": 116,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 200.28053283691406
+      },
+      {
+        "id": "e315",
+        "source": 116,
+        "target": 115,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 102.95960998535156
+      },
+      {
+        "id": "e316",
+        "source": 87,
+        "target": 112,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -365.2146301269531
+      },
+      {
+        "id": "e317",
+        "source": 112,
+        "target": 115,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -369.9008483886719
+      },
+      {
+        "id": "e318",
+        "source": 115,
+        "target": 117,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -369.9008483886719
+      },
+      {
+        "id": "e319",
+        "source": 117,
+        "target": 87,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -365.2146301269531
+      },
+      {
+        "id": "e320",
+        "source": 114,
+        "target": 88,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -320.6211242675781
+      },
+      {
+        "id": "e321",
+        "source": 88,
+        "target": 117,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -287.04473876953125
+      },
+      {
+        "id": "e322",
+        "source": 117,
+        "target": 116,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -222.38546752929688
+      },
+      {
+        "id": "e323",
+        "source": 116,
+        "target": 114,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -386.35736083984375
+      },
+      {
+        "id": "e324",
+        "source": 118,
+        "target": 114,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -390.5323791503906
+      },
+      {
+        "id": "e325",
+        "source": 114,
+        "target": 90,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -353.9858703613281
+      },
+      {
+        "id": "e326",
+        "source": 90,
+        "target": 119,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -397.0319519042969
+      },
+      {
+        "id": "e327",
+        "source": 119,
+        "target": 118,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -347.255615234375
+      },
+      {
+        "id": "e328",
+        "source": 120,
+        "target": 116,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 118.27772521972656
+      },
+      {
+        "id": "e329",
+        "source": 116,
+        "target": 118,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 182.59603881835938
+      },
+      {
+        "id": "e330",
+        "source": 118,
+        "target": 121,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 233.33139038085938
+      },
+      {
+        "id": "e331",
+        "source": 121,
+        "target": 120,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 95.42484283447266
+      },
+      {
+        "id": "e332",
+        "source": 92,
+        "target": 117,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -339.1669006347656
+      },
+      {
+        "id": "e333",
+        "source": 117,
+        "target": 120,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -399.6603088378906
+      },
+      {
+        "id": "e334",
+        "source": 120,
+        "target": 122,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -340.3307800292969
+      },
+      {
+        "id": "e335",
+        "source": 122,
+        "target": 92,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -369.0900573730469
+      },
+      {
+        "id": "e336",
+        "source": 119,
+        "target": 93,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -310.6617126464844
+      },
+      {
+        "id": "e337",
+        "source": 93,
+        "target": 122,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -279.9124450683594
+      },
+      {
+        "id": "e338",
+        "source": 122,
+        "target": 121,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -225.6521759033203
+      },
+      {
+        "id": "e339",
+        "source": 121,
+        "target": 119,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -384.77264404296875
+      },
+      {
+        "id": "e340",
+        "source": 123,
+        "target": 119,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -401.4304504394531
+      },
+      {
+        "id": "e341",
+        "source": 119,
+        "target": 95,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -350.5188903808594
+      },
+      {
+        "id": "e342",
+        "source": 95,
+        "target": 124,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -326.9801940917969
+      },
+      {
+        "id": "e343",
+        "source": 124,
+        "target": 123,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -285.26171875
+      },
+      {
+        "id": "e344",
+        "source": 125,
+        "target": 121,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 164.20742797851562
+      },
+      {
+        "id": "e345",
+        "source": 121,
+        "target": 123,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 182.64556884765625
+      },
+      {
+        "id": "e346",
+        "source": 123,
+        "target": 126,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 189.4701690673828
+      },
+      {
+        "id": "e347",
+        "source": 126,
+        "target": 125,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 35.26524353027344
+      },
+      {
+        "id": "e348",
+        "source": 97,
+        "target": 122,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -317.89007568359375
+      },
+      {
+        "id": "e349",
+        "source": 122,
+        "target": 125,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -396.48272705078125
+      },
+      {
+        "id": "e350",
+        "source": 125,
+        "target": 127,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -276.8791198730469
+      },
+      {
+        "id": "e351",
+        "source": 127,
+        "target": 97,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -270.6961364746094
+      },
+      {
+        "id": "e352",
+        "source": 124,
+        "target": 98,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -279.7339172363281
+      },
+      {
+        "id": "e353",
+        "source": 98,
+        "target": 127,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -241.42416381835938
+      },
+      {
+        "id": "e354",
+        "source": 127,
+        "target": 126,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -219.9418487548828
+      },
+      {
+        "id": "e355",
+        "source": 126,
+        "target": 124,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -376.88519287109375
+      },
+      {
+        "id": "e356",
+        "source": 128,
+        "target": 129,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -158.86463928222656
+      },
+      {
+        "id": "e357",
+        "source": 129,
+        "target": 100,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -351.5798034667969
+      },
+      {
+        "id": "e358",
+        "source": 100,
+        "target": 130,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -338.33392333984375
+      },
+      {
+        "id": "e359",
+        "source": 130,
+        "target": 128,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -301.51080322265625
+      },
+      {
+        "id": "e360",
+        "source": 131,
+        "target": 132,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -35.72393035888672
+      },
+      {
+        "id": "e361",
+        "source": 132,
+        "target": 128,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 144.92771911621094
+      },
+      {
+        "id": "e362",
+        "source": 128,
+        "target": 133,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 122.10501098632812
+      },
+      {
+        "id": "e363",
+        "source": 133,
+        "target": 131,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 127.99420166015625
+      },
+      {
+        "id": "e364",
+        "source": 103,
+        "target": 134,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -359.4593505859375
+      },
+      {
+        "id": "e365",
+        "source": 134,
+        "target": 131,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -110.1958999633789
+      },
+      {
+        "id": "e366",
+        "source": 131,
+        "target": 135,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -273.1029357910156
+      },
+      {
+        "id": "e367",
+        "source": 135,
+        "target": 103,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -333.9443054199219
+      },
+      {
+        "id": "e368",
+        "source": 132,
+        "target": 134,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -60.71269989013672
+      },
+      {
+        "id": "e369",
+        "source": 134,
+        "target": 104,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -331.79852294921875
+      },
+      {
+        "id": "e370",
+        "source": 104,
+        "target": 129,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -292.0865478515625
+      },
+      {
+        "id": "e371",
+        "source": 129,
+        "target": 132,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -233.8688201904297
+      },
+      {
+        "id": "e372",
+        "source": 130,
+        "target": 105,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -301.82147216796875
+      },
+      {
+        "id": "e373",
+        "source": 105,
+        "target": 135,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -318.1784973144531
+      },
+      {
+        "id": "e374",
+        "source": 135,
+        "target": 133,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -102.23804473876953
+      },
+      {
+        "id": "e375",
+        "source": 133,
+        "target": 130,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -267.0370178222656
+      },
+      {
+        "id": "e376",
+        "source": 136,
+        "target": 130,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -215.4828338623047
+      },
+      {
+        "id": "e377",
+        "source": 130,
+        "target": 108,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -403.1134338378906
+      },
+      {
+        "id": "e378",
+        "source": 108,
+        "target": 137,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -338.9307861328125
+      },
+      {
+        "id": "e379",
+        "source": 137,
+        "target": 136,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -245.0057373046875
+      },
+      {
+        "id": "e380",
+        "source": 138,
+        "target": 133,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 34.101131439208984
+      },
+      {
+        "id": "e381",
+        "source": 133,
+        "target": 136,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.76075744628906
+      },
+      {
+        "id": "e382",
+        "source": 136,
+        "target": 139,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 146.64736938476562
+      },
+      {
+        "id": "e383",
+        "source": 139,
+        "target": 138,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 87.09632873535156
+      },
+      {
+        "id": "e384",
+        "source": 110,
+        "target": 135,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -406.9765319824219
+      },
+      {
+        "id": "e385",
+        "source": 135,
+        "target": 138,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -180.07997131347656
+      },
+      {
+        "id": "e386",
+        "source": 138,
+        "target": 140,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -233.24058532714844
+      },
+      {
+        "id": "e387",
+        "source": 140,
+        "target": 110,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -349.333251953125
+      },
+      {
+        "id": "e388",
+        "source": 137,
+        "target": 111,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -300.4674377441406
+      },
+      {
+        "id": "e389",
+        "source": 111,
+        "target": 140,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -317.9964904785156
+      },
+      {
+        "id": "e390",
+        "source": 140,
+        "target": 139,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -99.20890808105469
+      },
+      {
+        "id": "e391",
+        "source": 139,
+        "target": 137,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -271.845947265625
+      },
+      {
+        "id": "e392",
+        "source": 141,
+        "target": 137,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -224.99798583984375
+      },
+      {
+        "id": "e393",
+        "source": 137,
+        "target": 113,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.2207946777344
+      },
+      {
+        "id": "e394",
+        "source": 113,
+        "target": 142,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.2207946777344
+      },
+      {
+        "id": "e395",
+        "source": 142,
+        "target": 141,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -224.99798583984375
+      },
+      {
+        "id": "e396",
+        "source": 143,
+        "target": 139,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 61.18206787109375
+      },
+      {
+        "id": "e397",
+        "source": 139,
+        "target": 141,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 173.3158416748047
+      },
+      {
+        "id": "e398",
+        "source": 141,
+        "target": 144,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 173.3158416748047
+      },
+      {
+        "id": "e399",
+        "source": 144,
+        "target": 143,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 61.18206787109375
+      },
+      {
+        "id": "e400",
+        "source": 115,
+        "target": 140,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -376.6365051269531
+      },
+      {
+        "id": "e401",
+        "source": 140,
+        "target": 143,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -206.90562438964844
+      },
+      {
+        "id": "e402",
+        "source": 143,
+        "target": 145,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -206.90562438964844
+      },
+      {
+        "id": "e403",
+        "source": 145,
+        "target": 115,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -376.6365051269531
+      },
+      {
+        "id": "e404",
+        "source": 142,
+        "target": 116,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -300.4674377441406
+      },
+      {
+        "id": "e405",
+        "source": 116,
+        "target": 145,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -317.9964904785156
+      },
+      {
+        "id": "e406",
+        "source": 145,
+        "target": 144,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -99.20890808105469
+      },
+      {
+        "id": "e407",
+        "source": 144,
+        "target": 142,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -271.845947265625
+      },
+      {
+        "id": "e408",
+        "source": 146,
+        "target": 142,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -245.0057373046875
+      },
+      {
+        "id": "e409",
+        "source": 142,
+        "target": 118,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -338.9307861328125
+      },
+      {
+        "id": "e410",
+        "source": 118,
+        "target": 147,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -403.1134338378906
+      },
+      {
+        "id": "e411",
+        "source": 147,
+        "target": 146,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -215.4828338623047
+      },
+      {
+        "id": "e412",
+        "source": 148,
+        "target": 144,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 87.09632873535156
+      },
+      {
+        "id": "e413",
+        "source": 144,
+        "target": 146,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 146.64736938476562
+      },
+      {
+        "id": "e414",
+        "source": 146,
+        "target": 149,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.76075744628906
+      },
+      {
+        "id": "e415",
+        "source": 149,
+        "target": 148,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 34.101131439208984
+      },
+      {
+        "id": "e416",
+        "source": 120,
+        "target": 145,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -349.333251953125
+      },
+      {
+        "id": "e417",
+        "source": 145,
+        "target": 148,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -233.24058532714844
+      },
+      {
+        "id": "e418",
+        "source": 148,
+        "target": 150,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -180.07997131347656
+      },
+      {
+        "id": "e419",
+        "source": 150,
+        "target": 120,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -406.9765319824219
+      },
+      {
+        "id": "e420",
+        "source": 147,
+        "target": 121,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -301.82147216796875
+      },
+      {
+        "id": "e421",
+        "source": 121,
+        "target": 150,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -318.1784973144531
+      },
+      {
+        "id": "e422",
+        "source": 150,
+        "target": 149,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -102.23804473876953
+      },
+      {
+        "id": "e423",
+        "source": 149,
+        "target": 147,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -267.0370178222656
+      },
+      {
+        "id": "e424",
+        "source": 151,
+        "target": 147,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -301.51080322265625
+      },
+      {
+        "id": "e425",
+        "source": 147,
+        "target": 123,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -338.33392333984375
+      },
+      {
+        "id": "e426",
+        "source": 123,
+        "target": 152,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -351.5798034667969
+      },
+      {
+        "id": "e427",
+        "source": 152,
+        "target": 151,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -158.86463928222656
+      },
+      {
+        "id": "e428",
+        "source": 153,
+        "target": 149,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 127.99420166015625
+      },
+      {
+        "id": "e429",
+        "source": 149,
+        "target": 151,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 122.10501098632812
+      },
+      {
+        "id": "e430",
+        "source": 151,
+        "target": 154,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 144.92771911621094
+      },
+      {
+        "id": "e431",
+        "source": 154,
+        "target": 153,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -35.72393035888672
+      },
+      {
+        "id": "e432",
+        "source": 125,
+        "target": 150,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -333.9443054199219
+      },
+      {
+        "id": "e433",
+        "source": 150,
+        "target": 153,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -273.1029357910156
+      },
+      {
+        "id": "e434",
+        "source": 153,
+        "target": 155,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -110.1958999633789
+      },
+      {
+        "id": "e435",
+        "source": 155,
+        "target": 125,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -359.4593505859375
+      },
+      {
+        "id": "e436",
+        "source": 152,
+        "target": 126,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -292.0865478515625
+      },
+      {
+        "id": "e437",
+        "source": 126,
+        "target": 155,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -331.79852294921875
+      },
+      {
+        "id": "e438",
+        "source": 155,
+        "target": 154,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -60.71269989013672
+      },
+      {
+        "id": "e439",
+        "source": 154,
+        "target": 152,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -233.8688201904297
+      },
+      {
+        "id": "e440",
+        "source": 156,
+        "target": 157,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e441",
+        "source": 157,
+        "target": 0,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e442",
+        "source": 0,
+        "target": 158,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e443",
+        "source": 158,
+        "target": 156,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e444",
+        "source": 159,
+        "target": 160,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -379.99847412109375
+      },
+      {
+        "id": "e445",
+        "source": 160,
+        "target": 156,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -201.01658630371094
+      },
+      {
+        "id": "e446",
+        "source": 156,
+        "target": 161,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -452.4705810546875
+      },
+      {
+        "id": "e447",
+        "source": 161,
+        "target": 159,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -287.78607177734375
+      },
+      {
+        "id": "e448",
+        "source": 4,
+        "target": 162,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 124.36783599853516
+      },
+      {
+        "id": "e449",
+        "source": 162,
+        "target": 159,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 106.49797058105469
+      },
+      {
+        "id": "e450",
+        "source": 159,
+        "target": 163,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 132.876953125
+      },
+      {
+        "id": "e451",
+        "source": 163,
+        "target": 4,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 186.04214477539062
+      },
+      {
+        "id": "e452",
+        "source": 162,
+        "target": 5,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -440.4598388671875
+      },
+      {
+        "id": "e453",
+        "source": 5,
+        "target": 157,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.46551513671875
+      },
+      {
+        "id": "e454",
+        "source": 157,
+        "target": 160,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -474.7087707519531
+      },
+      {
+        "id": "e455",
+        "source": 160,
+        "target": 162,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -322.75506591796875
+      },
+      {
+        "id": "e456",
+        "source": 161,
+        "target": 158,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -409.5457458496094
+      },
+      {
+        "id": "e457",
+        "source": 158,
+        "target": 6,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -284.8054504394531
+      },
+      {
+        "id": "e458",
+        "source": 6,
+        "target": 163,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -448.890380859375
+      },
+      {
+        "id": "e459",
+        "source": 163,
+        "target": 161,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -313.4544982910156
+      },
+      {
+        "id": "e460",
+        "source": 164,
+        "target": 158,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e461",
+        "source": 158,
+        "target": 12,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e462",
+        "source": 12,
+        "target": 165,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e463",
+        "source": 165,
+        "target": 164,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e464",
+        "source": 166,
+        "target": 161,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -435.65484619140625
+      },
+      {
+        "id": "e465",
+        "source": 161,
+        "target": 164,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -300.3538818359375
+      },
+      {
+        "id": "e466",
+        "source": 164,
+        "target": 167,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -392.80865478515625
+      },
+      {
+        "id": "e467",
+        "source": 167,
+        "target": 166,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -330.29144287109375
+      },
+      {
+        "id": "e468",
+        "source": 15,
+        "target": 163,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 153.10464477539062
+      },
+      {
+        "id": "e469",
+        "source": 163,
+        "target": 166,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 147.25387573242188
+      },
+      {
+        "id": "e470",
+        "source": 166,
+        "target": 168,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 115.9503402709961
+      },
+      {
+        "id": "e471",
+        "source": 168,
+        "target": 15,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 157.53778076171875
+      },
+      {
+        "id": "e472",
+        "source": 167,
+        "target": 165,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -400.2062683105469
+      },
+      {
+        "id": "e473",
+        "source": 165,
+        "target": 16,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -280.0675354003906
+      },
+      {
+        "id": "e474",
+        "source": 16,
+        "target": 168,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -439.4637756347656
+      },
+      {
+        "id": "e475",
+        "source": 168,
+        "target": 167,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -309.185546875
+      },
+      {
+        "id": "e476",
+        "source": 169,
+        "target": 165,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e477",
+        "source": 165,
+        "target": 20,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e478",
+        "source": 20,
+        "target": 170,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e479",
+        "source": 170,
+        "target": 169,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e480",
+        "source": 171,
+        "target": 167,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -381.53228759765625
+      },
+      {
+        "id": "e481",
+        "source": 167,
+        "target": 169,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -343.813232421875
+      },
+      {
+        "id": "e482",
+        "source": 169,
+        "target": 172,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -343.813232421875
+      },
+      {
+        "id": "e483",
+        "source": 172,
+        "target": 171,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -381.53228759765625
+      },
+      {
+        "id": "e484",
+        "source": 23,
+        "target": 168,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 142.31558227539062
+      },
+      {
+        "id": "e485",
+        "source": 168,
+        "target": 171,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 124.23261260986328
+      },
+      {
+        "id": "e486",
+        "source": 171,
+        "target": 173,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 124.23261260986328
+      },
+      {
+        "id": "e487",
+        "source": 173,
+        "target": 23,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 142.31558227539062
+      },
+      {
+        "id": "e488",
+        "source": 172,
+        "target": 170,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -400.2062683105469
+      },
+      {
+        "id": "e489",
+        "source": 170,
+        "target": 24,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -280.0675354003906
+      },
+      {
+        "id": "e490",
+        "source": 24,
+        "target": 173,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -439.4637756347656
+      },
+      {
+        "id": "e491",
+        "source": 173,
+        "target": 172,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -309.185546875
+      },
+      {
+        "id": "e492",
+        "source": 174,
+        "target": 170,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e493",
+        "source": 170,
+        "target": 28,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e494",
+        "source": 28,
+        "target": 175,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e495",
+        "source": 175,
+        "target": 174,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e496",
+        "source": 176,
+        "target": 172,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -330.29144287109375
+      },
+      {
+        "id": "e497",
+        "source": 172,
+        "target": 174,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -392.80865478515625
+      },
+      {
+        "id": "e498",
+        "source": 174,
+        "target": 177,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -300.3538818359375
+      },
+      {
+        "id": "e499",
+        "source": 177,
+        "target": 176,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -435.65484619140625
+      },
+      {
+        "id": "e500",
+        "source": 31,
+        "target": 173,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 157.53778076171875
+      },
+      {
+        "id": "e501",
+        "source": 173,
+        "target": 176,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 115.9503402709961
+      },
+      {
+        "id": "e502",
+        "source": 176,
+        "target": 178,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 147.25387573242188
+      },
+      {
+        "id": "e503",
+        "source": 178,
+        "target": 31,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 153.10464477539062
+      },
+      {
+        "id": "e504",
+        "source": 177,
+        "target": 175,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -409.5457458496094
+      },
+      {
+        "id": "e505",
+        "source": 175,
+        "target": 32,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -284.8054504394531
+      },
+      {
+        "id": "e506",
+        "source": 32,
+        "target": 178,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -448.890380859375
+      },
+      {
+        "id": "e507",
+        "source": 178,
+        "target": 177,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -313.4544982910156
+      },
+      {
+        "id": "e508",
+        "source": 179,
+        "target": 175,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e509",
+        "source": 175,
+        "target": 36,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e510",
+        "source": 36,
+        "target": 180,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e511",
+        "source": 180,
+        "target": 179,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e512",
+        "source": 181,
+        "target": 177,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -287.78607177734375
+      },
+      {
+        "id": "e513",
+        "source": 177,
+        "target": 179,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -452.4705810546875
+      },
+      {
+        "id": "e514",
+        "source": 179,
+        "target": 182,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -201.01658630371094
+      },
+      {
+        "id": "e515",
+        "source": 182,
+        "target": 181,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -379.99847412109375
+      },
+      {
+        "id": "e516",
+        "source": 39,
+        "target": 178,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 186.04214477539062
+      },
+      {
+        "id": "e517",
+        "source": 178,
+        "target": 181,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 132.876953125
+      },
+      {
+        "id": "e518",
+        "source": 181,
+        "target": 183,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 106.49797058105469
+      },
+      {
+        "id": "e519",
+        "source": 183,
+        "target": 39,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 124.36783599853516
+      },
+      {
+        "id": "e520",
+        "source": 182,
+        "target": 180,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -474.7087707519531
+      },
+      {
+        "id": "e521",
+        "source": 180,
+        "target": 40,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.46551513671875
+      },
+      {
+        "id": "e522",
+        "source": 40,
+        "target": 183,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -440.4598388671875
+      },
+      {
+        "id": "e523",
+        "source": 183,
+        "target": 182,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -322.75506591796875
+      },
+      {
+        "id": "e524",
+        "source": 184,
+        "target": 185,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -320.4554138183594
+      },
+      {
+        "id": "e525",
+        "source": 185,
+        "target": 159,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -271.6195983886719
+      },
+      {
+        "id": "e526",
+        "source": 159,
+        "target": 186,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -397.9407653808594
+      },
+      {
+        "id": "e527",
+        "source": 186,
+        "target": 184,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -369.81890869140625
+      },
+      {
+        "id": "e528",
+        "source": 44,
+        "target": 187,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 135.75743103027344
+      },
+      {
+        "id": "e529",
+        "source": 187,
+        "target": 184,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 151.50775146484375
+      },
+      {
+        "id": "e530",
+        "source": 184,
+        "target": 188,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 187.51873779296875
+      },
+      {
+        "id": "e531",
+        "source": 188,
+        "target": 44,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 242.25247192382812
+      },
+      {
+        "id": "e532",
+        "source": 187,
+        "target": 45,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -329.5719909667969
+      },
+      {
+        "id": "e533",
+        "source": 45,
+        "target": 162,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -316.4200744628906
+      },
+      {
+        "id": "e534",
+        "source": 162,
+        "target": 185,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -390.798583984375
+      },
+      {
+        "id": "e535",
+        "source": 185,
+        "target": 187,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -334.2796630859375
+      },
+      {
+        "id": "e536",
+        "source": 186,
+        "target": 163,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -396.20904541015625
+      },
+      {
+        "id": "e537",
+        "source": 163,
+        "target": 46,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -332.7845153808594
+      },
+      {
+        "id": "e538",
+        "source": 46,
+        "target": 188,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -372.4205017089844
+      },
+      {
+        "id": "e539",
+        "source": 188,
+        "target": 186,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -344.542236328125
+      },
+      {
+        "id": "e540",
+        "source": 189,
+        "target": 186,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -402.5644836425781
+      },
+      {
+        "id": "e541",
+        "source": 186,
+        "target": 166,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -355.328369140625
+      },
+      {
+        "id": "e542",
+        "source": 166,
+        "target": 190,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -402.84735107421875
+      },
+      {
+        "id": "e543",
+        "source": 190,
+        "target": 189,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -377.3588562011719
+      },
+      {
+        "id": "e544",
+        "source": 52,
+        "target": 188,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.7158966064453
+      },
+      {
+        "id": "e545",
+        "source": 188,
+        "target": 189,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 217.52716064453125
+      },
+      {
+        "id": "e546",
+        "source": 189,
+        "target": 191,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 184.69715881347656
+      },
+      {
+        "id": "e547",
+        "source": 191,
+        "target": 52,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 224.97789001464844
+      },
+      {
+        "id": "e548",
+        "source": 190,
+        "target": 168,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -391.6830749511719
+      },
+      {
+        "id": "e549",
+        "source": 168,
+        "target": 53,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -331.7752990722656
+      },
+      {
+        "id": "e550",
+        "source": 53,
+        "target": 191,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -383.7701721191406
+      },
+      {
+        "id": "e551",
+        "source": 191,
+        "target": 190,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -350.5722351074219
+      },
+      {
+        "id": "e552",
+        "source": 192,
+        "target": 190,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -393.7879638671875
+      },
+      {
+        "id": "e553",
+        "source": 190,
+        "target": 171,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -378.4365539550781
+      },
+      {
+        "id": "e554",
+        "source": 171,
+        "target": 193,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -378.4365539550781
+      },
+      {
+        "id": "e555",
+        "source": 193,
+        "target": 192,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -393.7879638671875
+      },
+      {
+        "id": "e556",
+        "source": 57,
+        "target": 191,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 204.4996795654297
+      },
+      {
+        "id": "e557",
+        "source": 191,
+        "target": 192,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 198.2138671875
+      },
+      {
+        "id": "e558",
+        "source": 192,
+        "target": 194,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 198.2138671875
+      },
+      {
+        "id": "e559",
+        "source": 194,
+        "target": 57,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 204.4996795654297
+      },
+      {
+        "id": "e560",
+        "source": 193,
+        "target": 173,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -391.6830749511719
+      },
+      {
+        "id": "e561",
+        "source": 173,
+        "target": 58,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -331.7752990722656
+      },
+      {
+        "id": "e562",
+        "source": 58,
+        "target": 194,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -383.7701721191406
+      },
+      {
+        "id": "e563",
+        "source": 194,
+        "target": 193,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -350.5722351074219
+      },
+      {
+        "id": "e564",
+        "source": 195,
+        "target": 193,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -377.3588562011719
+      },
+      {
+        "id": "e565",
+        "source": 193,
+        "target": 176,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -402.84735107421875
+      },
+      {
+        "id": "e566",
+        "source": 176,
+        "target": 196,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -355.328369140625
+      },
+      {
+        "id": "e567",
+        "source": 196,
+        "target": 195,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -402.5644836425781
+      },
+      {
+        "id": "e568",
+        "source": 62,
+        "target": 194,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 224.97789001464844
+      },
+      {
+        "id": "e569",
+        "source": 194,
+        "target": 195,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 184.69715881347656
+      },
+      {
+        "id": "e570",
+        "source": 195,
+        "target": 197,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 217.52716064453125
+      },
+      {
+        "id": "e571",
+        "source": 197,
+        "target": 62,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.7158966064453
+      },
+      {
+        "id": "e572",
+        "source": 196,
+        "target": 178,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -396.20904541015625
+      },
+      {
+        "id": "e573",
+        "source": 178,
+        "target": 63,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -332.7845153808594
+      },
+      {
+        "id": "e574",
+        "source": 63,
+        "target": 197,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -372.4205017089844
+      },
+      {
+        "id": "e575",
+        "source": 197,
+        "target": 196,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -344.542236328125
+      },
+      {
+        "id": "e576",
+        "source": 198,
+        "target": 196,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -369.81890869140625
+      },
+      {
+        "id": "e577",
+        "source": 196,
+        "target": 181,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -397.9407653808594
+      },
+      {
+        "id": "e578",
+        "source": 181,
+        "target": 199,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -271.6195983886719
+      },
+      {
+        "id": "e579",
+        "source": 199,
+        "target": 198,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -320.4554138183594
+      },
+      {
+        "id": "e580",
+        "source": 67,
+        "target": 197,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 242.25247192382812
+      },
+      {
+        "id": "e581",
+        "source": 197,
+        "target": 198,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 187.51873779296875
+      },
+      {
+        "id": "e582",
+        "source": 198,
+        "target": 200,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 151.50775146484375
+      },
+      {
+        "id": "e583",
+        "source": 200,
+        "target": 67,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 135.75743103027344
+      },
+      {
+        "id": "e584",
+        "source": 199,
+        "target": 183,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -390.798583984375
+      },
+      {
+        "id": "e585",
+        "source": 183,
+        "target": 68,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -316.4200744628906
+      },
+      {
+        "id": "e586",
+        "source": 68,
+        "target": 200,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -329.5719909667969
+      },
+      {
+        "id": "e587",
+        "source": 200,
+        "target": 199,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -334.2796630859375
+      },
+      {
+        "id": "e588",
+        "source": 201,
+        "target": 202,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -299.03411865234375
+      },
+      {
+        "id": "e589",
+        "source": 202,
+        "target": 184,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -317.3849182128906
+      },
+      {
+        "id": "e590",
+        "source": 184,
+        "target": 203,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -375.5876770019531
+      },
+      {
+        "id": "e591",
+        "source": 203,
+        "target": 201,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -392.2357482910156
+      },
+      {
+        "id": "e592",
+        "source": 72,
+        "target": 204,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 140.8145294189453
+      },
+      {
+        "id": "e593",
+        "source": 204,
+        "target": 201,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 157.63160705566406
+      },
+      {
+        "id": "e594",
+        "source": 201,
+        "target": 205,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.53433227539062
+      },
+      {
+        "id": "e595",
+        "source": 205,
+        "target": 72,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 250.51260375976562
+      },
+      {
+        "id": "e596",
+        "source": 204,
+        "target": 73,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -298.8392639160156
+      },
+      {
+        "id": "e597",
+        "source": 73,
+        "target": 187,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -326.040283203125
+      },
+      {
+        "id": "e598",
+        "source": 187,
+        "target": 202,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -328.17742919921875
+      },
+      {
+        "id": "e599",
+        "source": 202,
+        "target": 204,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -354.0624084472656
+      },
+      {
+        "id": "e600",
+        "source": 203,
+        "target": 188,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -348.1856384277344
+      },
+      {
+        "id": "e601",
+        "source": 188,
+        "target": 74,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -357.4838562011719
+      },
+      {
+        "id": "e602",
+        "source": 74,
+        "target": 205,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -329.63543701171875
+      },
+      {
+        "id": "e603",
+        "source": 205,
+        "target": 203,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -361.0893859863281
+      },
+      {
+        "id": "e604",
+        "source": 206,
+        "target": 203,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -373.63922119140625
+      },
+      {
+        "id": "e605",
+        "source": 203,
+        "target": 189,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -392.93658447265625
+      },
+      {
+        "id": "e606",
+        "source": 189,
+        "target": 207,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -385.5587158203125
+      },
+      {
+        "id": "e607",
+        "source": 207,
+        "target": 206,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -392.7561950683594
+      },
+      {
+        "id": "e608",
+        "source": 80,
+        "target": 205,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 207.65541076660156
+      },
+      {
+        "id": "e609",
+        "source": 205,
+        "target": 206,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 231.13621520996094
+      },
+      {
+        "id": "e610",
+        "source": 206,
+        "target": 208,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.91021728515625
+      },
+      {
+        "id": "e611",
+        "source": 208,
+        "target": 80,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 237.10772705078125
+      },
+      {
+        "id": "e612",
+        "source": 207,
+        "target": 191,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -357.16650390625
+      },
+      {
+        "id": "e613",
+        "source": 191,
+        "target": 81,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -369.0514221191406
+      },
+      {
+        "id": "e614",
+        "source": 81,
+        "target": 208,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -342.9756774902344
+      },
+      {
+        "id": "e615",
+        "source": 208,
+        "target": 207,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -367.2653503417969
+      },
+      {
+        "id": "e616",
+        "source": 209,
+        "target": 207,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -383.6018371582031
+      },
+      {
+        "id": "e617",
+        "source": 207,
+        "target": 192,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -391.6108093261719
+      },
+      {
+        "id": "e618",
+        "source": 192,
+        "target": 210,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -391.6108093261719
+      },
+      {
+        "id": "e619",
+        "source": 210,
+        "target": 209,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -383.6018371582031
+      },
+      {
+        "id": "e620",
+        "source": 85,
+        "target": 208,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 216.1576385498047
+      },
+      {
+        "id": "e621",
+        "source": 208,
+        "target": 209,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 214.50914001464844
+      },
+      {
+        "id": "e622",
+        "source": 209,
+        "target": 211,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 214.50914001464844
+      },
+      {
+        "id": "e623",
+        "source": 211,
+        "target": 85,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 216.1576385498047
+      },
+      {
+        "id": "e624",
+        "source": 210,
+        "target": 194,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -357.16650390625
+      },
+      {
+        "id": "e625",
+        "source": 194,
+        "target": 86,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -369.0514221191406
+      },
+      {
+        "id": "e626",
+        "source": 86,
+        "target": 211,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -342.9756774902344
+      },
+      {
+        "id": "e627",
+        "source": 211,
+        "target": 210,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -367.2653503417969
+      },
+      {
+        "id": "e628",
+        "source": 212,
+        "target": 210,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -392.7561950683594
+      },
+      {
+        "id": "e629",
+        "source": 210,
+        "target": 195,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -385.5587158203125
+      },
+      {
+        "id": "e630",
+        "source": 195,
+        "target": 213,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -392.93658447265625
+      },
+      {
+        "id": "e631",
+        "source": 213,
+        "target": 212,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -373.63922119140625
+      },
+      {
+        "id": "e632",
+        "source": 90,
+        "target": 211,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 237.10772705078125
+      },
+      {
+        "id": "e633",
+        "source": 211,
+        "target": 212,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.91021728515625
+      },
+      {
+        "id": "e634",
+        "source": 212,
+        "target": 214,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 231.13621520996094
+      },
+      {
+        "id": "e635",
+        "source": 214,
+        "target": 90,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 207.65541076660156
+      },
+      {
+        "id": "e636",
+        "source": 213,
+        "target": 197,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -348.1856384277344
+      },
+      {
+        "id": "e637",
+        "source": 197,
+        "target": 91,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -357.4838562011719
+      },
+      {
+        "id": "e638",
+        "source": 91,
+        "target": 214,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -329.63543701171875
+      },
+      {
+        "id": "e639",
+        "source": 214,
+        "target": 213,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -361.0893859863281
+      },
+      {
+        "id": "e640",
+        "source": 215,
+        "target": 213,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -392.2357482910156
+      },
+      {
+        "id": "e641",
+        "source": 213,
+        "target": 198,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -375.5876770019531
+      },
+      {
+        "id": "e642",
+        "source": 198,
+        "target": 216,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -317.3849182128906
+      },
+      {
+        "id": "e643",
+        "source": 216,
+        "target": 215,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -299.03411865234375
+      },
+      {
+        "id": "e644",
+        "source": 95,
+        "target": 214,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 250.51260375976562
+      },
+      {
+        "id": "e645",
+        "source": 214,
+        "target": 215,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.53433227539062
+      },
+      {
+        "id": "e646",
+        "source": 215,
+        "target": 217,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 157.63160705566406
+      },
+      {
+        "id": "e647",
+        "source": 217,
+        "target": 95,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 140.8145294189453
+      },
+      {
+        "id": "e648",
+        "source": 216,
+        "target": 200,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -328.17742919921875
+      },
+      {
+        "id": "e649",
+        "source": 200,
+        "target": 96,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -326.040283203125
+      },
+      {
+        "id": "e650",
+        "source": 96,
+        "target": 217,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -298.8392639160156
+      },
+      {
+        "id": "e651",
+        "source": 217,
+        "target": 216,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -354.0624084472656
+      },
+      {
+        "id": "e652",
+        "source": 218,
+        "target": 219,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -279.6291809082031
+      },
+      {
+        "id": "e653",
+        "source": 219,
+        "target": 201,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -331.2821350097656
+      },
+      {
+        "id": "e654",
+        "source": 201,
+        "target": 220,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -357.518798828125
+      },
+      {
+        "id": "e655",
+        "source": 220,
+        "target": 218,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -400.9755554199219
+      },
+      {
+        "id": "e656",
+        "source": 100,
+        "target": 221,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 128.50323486328125
+      },
+      {
+        "id": "e657",
+        "source": 221,
+        "target": 218,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 146.5185089111328
+      },
+      {
+        "id": "e658",
+        "source": 218,
+        "target": 222,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 185.5278778076172
+      },
+      {
+        "id": "e659",
+        "source": 222,
+        "target": 100,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 229.29518127441406
+      },
+      {
+        "id": "e660",
+        "source": 221,
+        "target": 101,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -297.6817932128906
+      },
+      {
+        "id": "e661",
+        "source": 101,
+        "target": 204,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -355.06256103515625
+      },
+      {
+        "id": "e662",
+        "source": 204,
+        "target": 219,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -305.961181640625
+      },
+      {
+        "id": "e663",
+        "source": 219,
+        "target": 221,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -367.93829345703125
+      },
+      {
+        "id": "e664",
+        "source": 220,
+        "target": 205,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -317.6925048828125
+      },
+      {
+        "id": "e665",
+        "source": 205,
+        "target": 102,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -375.3345642089844
+      },
+      {
+        "id": "e666",
+        "source": 102,
+        "target": 222,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -309.8504333496094
+      },
+      {
+        "id": "e667",
+        "source": 222,
+        "target": 220,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.9497985839844
+      },
+      {
+        "id": "e668",
+        "source": 223,
+        "target": 220,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -348.16912841796875
+      },
+      {
+        "id": "e669",
+        "source": 220,
+        "target": 206,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -404.7060546875
+      },
+      {
+        "id": "e670",
+        "source": 206,
+        "target": 224,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -361.461669921875
+      },
+      {
+        "id": "e671",
+        "source": 224,
+        "target": 223,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -390.9808349609375
+      },
+      {
+        "id": "e672",
+        "source": 108,
+        "target": 222,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 187.82078552246094
+      },
+      {
+        "id": "e673",
+        "source": 222,
+        "target": 223,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 214.8092498779297
+      },
+      {
+        "id": "e674",
+        "source": 223,
+        "target": 225,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 184.42279052734375
+      },
+      {
+        "id": "e675",
+        "source": 225,
+        "target": 108,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 216.6497344970703
+      },
+      {
+        "id": "e676",
+        "source": 224,
+        "target": 208,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -324.8084716796875
+      },
+      {
+        "id": "e677",
+        "source": 208,
+        "target": 109,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -384.1105651855469
+      },
+      {
+        "id": "e678",
+        "source": 109,
+        "target": 225,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -312.5748596191406
+      },
+      {
+        "id": "e679",
+        "source": 225,
+        "target": 224,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -361.52044677734375
+      },
+      {
+        "id": "e680",
+        "source": 226,
+        "target": 224,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.5453186035156
+      },
+      {
+        "id": "e681",
+        "source": 224,
+        "target": 209,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -383.9278259277344
+      },
+      {
+        "id": "e682",
+        "source": 209,
+        "target": 227,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -383.9278259277344
+      },
+      {
+        "id": "e683",
+        "source": 227,
+        "target": 226,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.5453186035156
+      },
+      {
+        "id": "e684",
+        "source": 113,
+        "target": 225,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 196.76100158691406
+      },
+      {
+        "id": "e685",
+        "source": 225,
+        "target": 226,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.53651428222656
+      },
+      {
+        "id": "e686",
+        "source": 226,
+        "target": 228,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.53651428222656
+      },
+      {
+        "id": "e687",
+        "source": 228,
+        "target": 113,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 196.76100158691406
+      },
+      {
+        "id": "e688",
+        "source": 227,
+        "target": 211,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -324.8084716796875
+      },
+      {
+        "id": "e689",
+        "source": 211,
+        "target": 114,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -384.1105651855469
+      },
+      {
+        "id": "e690",
+        "source": 114,
+        "target": 228,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -312.5748596191406
+      },
+      {
+        "id": "e691",
+        "source": 228,
+        "target": 227,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -361.52044677734375
+      },
+      {
+        "id": "e692",
+        "source": 229,
+        "target": 227,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -390.9808349609375
+      },
+      {
+        "id": "e693",
+        "source": 227,
+        "target": 212,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -361.461669921875
+      },
+      {
+        "id": "e694",
+        "source": 212,
+        "target": 230,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -404.7060546875
+      },
+      {
+        "id": "e695",
+        "source": 230,
+        "target": 229,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -348.16912841796875
+      },
+      {
+        "id": "e696",
+        "source": 118,
+        "target": 228,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 216.6497344970703
+      },
+      {
+        "id": "e697",
+        "source": 228,
+        "target": 229,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 184.42279052734375
+      },
+      {
+        "id": "e698",
+        "source": 229,
+        "target": 231,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 214.8092498779297
+      },
+      {
+        "id": "e699",
+        "source": 231,
+        "target": 118,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 187.82078552246094
+      },
+      {
+        "id": "e700",
+        "source": 230,
+        "target": 214,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -317.6925048828125
+      },
+      {
+        "id": "e701",
+        "source": 214,
+        "target": 119,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -375.3345642089844
+      },
+      {
+        "id": "e702",
+        "source": 119,
+        "target": 231,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -309.8504333496094
+      },
+      {
+        "id": "e703",
+        "source": 231,
+        "target": 230,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.9497985839844
+      },
+      {
+        "id": "e704",
+        "source": 232,
+        "target": 230,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -400.9755554199219
+      },
+      {
+        "id": "e705",
+        "source": 230,
+        "target": 215,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -357.518798828125
+      },
+      {
+        "id": "e706",
+        "source": 215,
+        "target": 233,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -331.2821350097656
+      },
+      {
+        "id": "e707",
+        "source": 233,
+        "target": 232,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -279.6291809082031
+      },
+      {
+        "id": "e708",
+        "source": 123,
+        "target": 231,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 229.29518127441406
+      },
+      {
+        "id": "e709",
+        "source": 231,
+        "target": 232,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 185.5278778076172
+      },
+      {
+        "id": "e710",
+        "source": 232,
+        "target": 234,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 146.5185089111328
+      },
+      {
+        "id": "e711",
+        "source": 234,
+        "target": 123,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 128.50323486328125
+      },
+      {
+        "id": "e712",
+        "source": 233,
+        "target": 217,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -305.961181640625
+      },
+      {
+        "id": "e713",
+        "source": 217,
+        "target": 124,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -355.06256103515625
+      },
+      {
+        "id": "e714",
+        "source": 124,
+        "target": 234,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -297.6817932128906
+      },
+      {
+        "id": "e715",
+        "source": 234,
+        "target": 233,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -367.93829345703125
+      },
+      {
+        "id": "e716",
+        "source": 235,
+        "target": 236,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -153.95716857910156
+      },
+      {
+        "id": "e717",
+        "source": 236,
+        "target": 218,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -350.2704162597656
+      },
+      {
+        "id": "e718",
+        "source": 218,
+        "target": 237,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -336.0303039550781
+      },
+      {
+        "id": "e719",
+        "source": 237,
+        "target": 235,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -306.6153564453125
+      },
+      {
+        "id": "e720",
+        "source": 128,
+        "target": 238,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 64.19703674316406
+      },
+      {
+        "id": "e721",
+        "source": 238,
+        "target": 235,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 111.14207458496094
+      },
+      {
+        "id": "e722",
+        "source": 235,
+        "target": 239,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 152.8832244873047
+      },
+      {
+        "id": "e723",
+        "source": 239,
+        "target": 128,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 197.77662658691406
+      },
+      {
+        "id": "e724",
+        "source": 238,
+        "target": 129,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -140.8271026611328
+      },
+      {
+        "id": "e725",
+        "source": 129,
+        "target": 221,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -373.57525634765625
+      },
+      {
+        "id": "e726",
+        "source": 221,
+        "target": 236,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -308.98809814453125
+      },
+      {
+        "id": "e727",
+        "source": 236,
+        "target": 238,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -190.6639404296875
+      },
+      {
+        "id": "e728",
+        "source": 237,
+        "target": 222,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -304.08978271484375
+      },
+      {
+        "id": "e729",
+        "source": 222,
+        "target": 130,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -373.3465881347656
+      },
+      {
+        "id": "e730",
+        "source": 130,
+        "target": 239,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -175.351806640625
+      },
+      {
+        "id": "e731",
+        "source": 239,
+        "target": 237,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -203.4993896484375
+      },
+      {
+        "id": "e732",
+        "source": 240,
+        "target": 237,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -216.3822479248047
+      },
+      {
+        "id": "e733",
+        "source": 237,
+        "target": 223,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -406.8560485839844
+      },
+      {
+        "id": "e734",
+        "source": 223,
+        "target": 241,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -338.3282470703125
+      },
+      {
+        "id": "e735",
+        "source": 241,
+        "target": 240,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -248.18795776367188
+      },
+      {
+        "id": "e736",
+        "source": 136,
+        "target": 239,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 143.72354125976562
+      },
+      {
+        "id": "e737",
+        "source": 239,
+        "target": 240,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 200.1289825439453
+      },
+      {
+        "id": "e738",
+        "source": 240,
+        "target": 242,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 181.09156799316406
+      },
+      {
+        "id": "e739",
+        "source": 242,
+        "target": 136,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 200.70770263671875
+      },
+      {
+        "id": "e740",
+        "source": 241,
+        "target": 225,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -301.1527099609375
+      },
+      {
+        "id": "e741",
+        "source": 225,
+        "target": 137,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -375.9460144042969
+      },
+      {
+        "id": "e742",
+        "source": 137,
+        "target": 242,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -177.08837890625
+      },
+      {
+        "id": "e743",
+        "source": 242,
+        "target": 241,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -202.66616821289062
+      },
+      {
+        "id": "e744",
+        "source": 243,
+        "target": 241,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -226.17967224121094
+      },
+      {
+        "id": "e745",
+        "source": 241,
+        "target": 226,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.7297668457031
+      },
+      {
+        "id": "e746",
+        "source": 226,
+        "target": 244,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.7297668457031
+      },
+      {
+        "id": "e747",
+        "source": 244,
+        "target": 243,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -226.17967224121094
+      },
+      {
+        "id": "e748",
+        "source": 141,
+        "target": 242,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 174.64768981933594
+      },
+      {
+        "id": "e749",
+        "source": 242,
+        "target": 243,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 201.37924194335938
+      },
+      {
+        "id": "e750",
+        "source": 243,
+        "target": 245,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 201.37924194335938
+      },
+      {
+        "id": "e751",
+        "source": 245,
+        "target": 141,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 174.64768981933594
+      },
+      {
+        "id": "e752",
+        "source": 244,
+        "target": 228,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -301.1527099609375
+      },
+      {
+        "id": "e753",
+        "source": 228,
+        "target": 142,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -375.9460144042969
+      },
+      {
+        "id": "e754",
+        "source": 142,
+        "target": 245,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -177.08837890625
+      },
+      {
+        "id": "e755",
+        "source": 245,
+        "target": 244,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -202.66616821289062
+      },
+      {
+        "id": "e756",
+        "source": 246,
+        "target": 244,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -248.18795776367188
+      },
+      {
+        "id": "e757",
+        "source": 244,
+        "target": 229,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -338.3282470703125
+      },
+      {
+        "id": "e758",
+        "source": 229,
+        "target": 247,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -406.8560485839844
+      },
+      {
+        "id": "e759",
+        "source": 247,
+        "target": 246,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -216.3822479248047
+      },
+      {
+        "id": "e760",
+        "source": 146,
+        "target": 245,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 200.70770263671875
+      },
+      {
+        "id": "e761",
+        "source": 245,
+        "target": 246,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 181.09156799316406
+      },
+      {
+        "id": "e762",
+        "source": 246,
+        "target": 248,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 200.1289825439453
+      },
+      {
+        "id": "e763",
+        "source": 248,
+        "target": 146,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 143.72354125976562
+      },
+      {
+        "id": "e764",
+        "source": 247,
+        "target": 231,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -304.08978271484375
+      },
+      {
+        "id": "e765",
+        "source": 231,
+        "target": 147,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -373.3465881347656
+      },
+      {
+        "id": "e766",
+        "source": 147,
+        "target": 248,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -175.351806640625
+      },
+      {
+        "id": "e767",
+        "source": 248,
+        "target": 247,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -203.4993896484375
+      },
+      {
+        "id": "e768",
+        "source": 249,
+        "target": 247,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -306.6153564453125
+      },
+      {
+        "id": "e769",
+        "source": 247,
+        "target": 232,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -336.0303039550781
+      },
+      {
+        "id": "e770",
+        "source": 232,
+        "target": 250,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -350.2704162597656
+      },
+      {
+        "id": "e771",
+        "source": 250,
+        "target": 249,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -153.95716857910156
+      },
+      {
+        "id": "e772",
+        "source": 151,
+        "target": 248,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 197.77662658691406
+      },
+      {
+        "id": "e773",
+        "source": 248,
+        "target": 249,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 152.8832244873047
+      },
+      {
+        "id": "e774",
+        "source": 249,
+        "target": 251,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 111.14207458496094
+      },
+      {
+        "id": "e775",
+        "source": 251,
+        "target": 151,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 64.19703674316406
+      },
+      {
+        "id": "e776",
+        "source": 250,
+        "target": 234,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -308.98809814453125
+      },
+      {
+        "id": "e777",
+        "source": 234,
+        "target": 152,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -373.57525634765625
+      },
+      {
+        "id": "e778",
+        "source": 152,
+        "target": 251,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -140.8271026611328
+      },
+      {
+        "id": "e779",
+        "source": 251,
+        "target": 250,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -190.6639404296875
+      },
+      {
+        "id": "e780",
+        "source": 252,
+        "target": 253,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e781",
+        "source": 253,
+        "target": 156,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e782",
+        "source": 156,
+        "target": 254,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e783",
+        "source": 254,
+        "target": 252,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e784",
+        "source": 255,
+        "target": 256,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -379.99847412109375
+      },
+      {
+        "id": "e785",
+        "source": 256,
+        "target": 252,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -201.01658630371094
+      },
+      {
+        "id": "e786",
+        "source": 252,
+        "target": 257,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -452.4705810546875
+      },
+      {
+        "id": "e787",
+        "source": 257,
+        "target": 255,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -287.78607177734375
+      },
+      {
+        "id": "e788",
+        "source": 159,
+        "target": 258,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 101.62273406982422
+      },
+      {
+        "id": "e789",
+        "source": 258,
+        "target": 255,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 101.62273406982422
+      },
+      {
+        "id": "e790",
+        "source": 255,
+        "target": 259,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 137.7264404296875
+      },
+      {
+        "id": "e791",
+        "source": 259,
+        "target": 159,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 137.7264404296875
+      },
+      {
+        "id": "e792",
+        "source": 258,
+        "target": 160,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -384.1542053222656
+      },
+      {
+        "id": "e793",
+        "source": 160,
+        "target": 253,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -413.82373046875
+      },
+      {
+        "id": "e794",
+        "source": 253,
+        "target": 256,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -413.82373046875
+      },
+      {
+        "id": "e795",
+        "source": 256,
+        "target": 258,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -384.1542053222656
+      },
+      {
+        "id": "e796",
+        "source": 257,
+        "target": 254,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -343.27874755859375
+      },
+      {
+        "id": "e797",
+        "source": 254,
+        "target": 161,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -343.27874755859375
+      },
+      {
+        "id": "e798",
+        "source": 161,
+        "target": 259,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -380.1417236328125
+      },
+      {
+        "id": "e799",
+        "source": 259,
+        "target": 257,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -380.1417236328125
+      },
+      {
+        "id": "e800",
+        "source": 260,
+        "target": 254,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e801",
+        "source": 254,
+        "target": 164,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e802",
+        "source": 164,
+        "target": 261,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e803",
+        "source": 261,
+        "target": 260,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e804",
+        "source": 262,
+        "target": 257,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -435.65484619140625
+      },
+      {
+        "id": "e805",
+        "source": 257,
+        "target": 260,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -300.3538818359375
+      },
+      {
+        "id": "e806",
+        "source": 260,
+        "target": 263,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -392.80865478515625
+      },
+      {
+        "id": "e807",
+        "source": 263,
+        "target": 262,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -330.29144287109375
+      },
+      {
+        "id": "e808",
+        "source": 166,
+        "target": 259,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 133.6434326171875
+      },
+      {
+        "id": "e809",
+        "source": 259,
+        "target": 262,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 133.6434326171875
+      },
+      {
+        "id": "e810",
+        "source": 262,
+        "target": 264,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 124.35116577148438
+      },
+      {
+        "id": "e811",
+        "source": 264,
+        "target": 166,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 124.35116577148438
+      },
+      {
+        "id": "e812",
+        "source": 263,
+        "target": 261,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -336.4156188964844
+      },
+      {
+        "id": "e813",
+        "source": 261,
+        "target": 167,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -336.4156188964844
+      },
+      {
+        "id": "e814",
+        "source": 167,
+        "target": 264,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -372.38787841796875
+      },
+      {
+        "id": "e815",
+        "source": 264,
+        "target": 263,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -372.38787841796875
+      },
+      {
+        "id": "e816",
+        "source": 265,
+        "target": 261,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e817",
+        "source": 261,
+        "target": 169,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e818",
+        "source": 169,
+        "target": 266,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e819",
+        "source": 266,
+        "target": 265,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e820",
+        "source": 267,
+        "target": 263,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -381.53228759765625
+      },
+      {
+        "id": "e821",
+        "source": 263,
+        "target": 265,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -343.813232421875
+      },
+      {
+        "id": "e822",
+        "source": 265,
+        "target": 268,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -343.813232421875
+      },
+      {
+        "id": "e823",
+        "source": 268,
+        "target": 267,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -381.53228759765625
+      },
+      {
+        "id": "e824",
+        "source": 171,
+        "target": 264,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 121.83381652832031
+      },
+      {
+        "id": "e825",
+        "source": 264,
+        "target": 267,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 121.83381652832031
+      },
+      {
+        "id": "e826",
+        "source": 267,
+        "target": 269,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 121.83381652832031
+      },
+      {
+        "id": "e827",
+        "source": 269,
+        "target": 171,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 121.83381652832031
+      },
+      {
+        "id": "e828",
+        "source": 268,
+        "target": 266,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -336.4156188964844
+      },
+      {
+        "id": "e829",
+        "source": 266,
+        "target": 172,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -336.4156188964844
+      },
+      {
+        "id": "e830",
+        "source": 172,
+        "target": 269,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -372.38787841796875
+      },
+      {
+        "id": "e831",
+        "source": 269,
+        "target": 268,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -372.38787841796875
+      },
+      {
+        "id": "e832",
+        "source": 270,
+        "target": 266,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e833",
+        "source": 266,
+        "target": 174,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e834",
+        "source": 174,
+        "target": 271,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e835",
+        "source": 271,
+        "target": 270,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e836",
+        "source": 272,
+        "target": 268,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -330.29144287109375
+      },
+      {
+        "id": "e837",
+        "source": 268,
+        "target": 270,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -392.80865478515625
+      },
+      {
+        "id": "e838",
+        "source": 270,
+        "target": 273,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -300.3538818359375
+      },
+      {
+        "id": "e839",
+        "source": 273,
+        "target": 272,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -435.65484619140625
+      },
+      {
+        "id": "e840",
+        "source": 176,
+        "target": 269,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 124.35116577148438
+      },
+      {
+        "id": "e841",
+        "source": 269,
+        "target": 272,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 124.35116577148438
+      },
+      {
+        "id": "e842",
+        "source": 272,
+        "target": 274,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 133.6434326171875
+      },
+      {
+        "id": "e843",
+        "source": 274,
+        "target": 176,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 133.6434326171875
+      },
+      {
+        "id": "e844",
+        "source": 273,
+        "target": 271,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -343.27874755859375
+      },
+      {
+        "id": "e845",
+        "source": 271,
+        "target": 177,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -343.27874755859375
+      },
+      {
+        "id": "e846",
+        "source": 177,
+        "target": 274,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -380.1417236328125
+      },
+      {
+        "id": "e847",
+        "source": 274,
+        "target": 273,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -380.1417236328125
+      },
+      {
+        "id": "e848",
+        "source": 275,
+        "target": 271,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e849",
+        "source": 271,
+        "target": 179,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e850",
+        "source": 179,
+        "target": 276,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e851",
+        "source": 276,
+        "target": 275,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e852",
+        "source": 277,
+        "target": 273,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -287.78607177734375
+      },
+      {
+        "id": "e853",
+        "source": 273,
+        "target": 275,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -452.4705810546875
+      },
+      {
+        "id": "e854",
+        "source": 275,
+        "target": 278,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -201.01658630371094
+      },
+      {
+        "id": "e855",
+        "source": 278,
+        "target": 277,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -379.99847412109375
+      },
+      {
+        "id": "e856",
+        "source": 181,
+        "target": 274,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 137.7264404296875
+      },
+      {
+        "id": "e857",
+        "source": 274,
+        "target": 277,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 137.7264404296875
+      },
+      {
+        "id": "e858",
+        "source": 277,
+        "target": 279,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 101.62273406982422
+      },
+      {
+        "id": "e859",
+        "source": 279,
+        "target": 181,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 101.62273406982422
+      },
+      {
+        "id": "e860",
+        "source": 278,
+        "target": 276,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -413.82373046875
+      },
+      {
+        "id": "e861",
+        "source": 276,
+        "target": 182,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -413.82373046875
+      },
+      {
+        "id": "e862",
+        "source": 182,
+        "target": 279,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -384.1542053222656
+      },
+      {
+        "id": "e863",
+        "source": 279,
+        "target": 278,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -384.1542053222656
+      },
+      {
+        "id": "e864",
+        "source": 280,
+        "target": 281,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -320.4554138183594
+      },
+      {
+        "id": "e865",
+        "source": 281,
+        "target": 255,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -271.6195983886719
+      },
+      {
+        "id": "e866",
+        "source": 255,
+        "target": 282,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -397.9407653808594
+      },
+      {
+        "id": "e867",
+        "source": 282,
+        "target": 280,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -369.81890869140625
+      },
+      {
+        "id": "e868",
+        "source": 184,
+        "target": 283,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 136.22769165039062
+      },
+      {
+        "id": "e869",
+        "source": 283,
+        "target": 280,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 136.22769165039062
+      },
+      {
+        "id": "e870",
+        "source": 280,
+        "target": 284,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 201.18243408203125
+      },
+      {
+        "id": "e871",
+        "source": 284,
+        "target": 184,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 201.18243408203125
+      },
+      {
+        "id": "e872",
+        "source": 283,
+        "target": 185,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -356.1022644042969
+      },
+      {
+        "id": "e873",
+        "source": 185,
+        "target": 258,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -361.4112854003906
+      },
+      {
+        "id": "e874",
+        "source": 258,
+        "target": 281,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -361.4112854003906
+      },
+      {
+        "id": "e875",
+        "source": 281,
+        "target": 283,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -356.1022644042969
+      },
+      {
+        "id": "e876",
+        "source": 282,
+        "target": 259,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -366.1112365722656
+      },
+      {
+        "id": "e877",
+        "source": 259,
+        "target": 186,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -366.1112365722656
+      },
+      {
+        "id": "e878",
+        "source": 186,
+        "target": 284,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -368.5475158691406
+      },
+      {
+        "id": "e879",
+        "source": 284,
+        "target": 282,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -368.5475158691406
+      },
+      {
+        "id": "e880",
+        "source": 285,
+        "target": 282,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -402.5644836425781
+      },
+      {
+        "id": "e881",
+        "source": 282,
+        "target": 262,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -355.328369140625
+      },
+      {
+        "id": "e882",
+        "source": 262,
+        "target": 286,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -402.84735107421875
+      },
+      {
+        "id": "e883",
+        "source": 286,
+        "target": 285,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -377.3588562011719
+      },
+      {
+        "id": "e884",
+        "source": 189,
+        "target": 284,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 198.40902709960938
+      },
+      {
+        "id": "e885",
+        "source": 284,
+        "target": 285,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 198.40902709960938
+      },
+      {
+        "id": "e886",
+        "source": 285,
+        "target": 287,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 198.4073028564453
+      },
+      {
+        "id": "e887",
+        "source": 287,
+        "target": 189,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 198.4073028564453
+      },
+      {
+        "id": "e888",
+        "source": 286,
+        "target": 264,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -361.52484130859375
+      },
+      {
+        "id": "e889",
+        "source": 264,
+        "target": 190,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -361.52484130859375
+      },
+      {
+        "id": "e890",
+        "source": 190,
+        "target": 287,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -373.0869140625
+      },
+      {
+        "id": "e891",
+        "source": 287,
+        "target": 286,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -373.0869140625
+      },
+      {
+        "id": "e892",
+        "source": 288,
+        "target": 286,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -393.7879638671875
+      },
+      {
+        "id": "e893",
+        "source": 286,
+        "target": 267,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -378.4365539550781
+      },
+      {
+        "id": "e894",
+        "source": 267,
+        "target": 289,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -378.4365539550781
+      },
+      {
+        "id": "e895",
+        "source": 289,
+        "target": 288,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -393.7879638671875
+      },
+      {
+        "id": "e896",
+        "source": 192,
+        "target": 287,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 195.49838256835938
+      },
+      {
+        "id": "e897",
+        "source": 287,
+        "target": 288,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 195.49838256835938
+      },
+      {
+        "id": "e898",
+        "source": 288,
+        "target": 290,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 195.49838256835938
+      },
+      {
+        "id": "e899",
+        "source": 290,
+        "target": 192,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 195.49838256835938
+      },
+      {
+        "id": "e900",
+        "source": 289,
+        "target": 269,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -361.52484130859375
+      },
+      {
+        "id": "e901",
+        "source": 269,
+        "target": 193,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -361.52484130859375
+      },
+      {
+        "id": "e902",
+        "source": 193,
+        "target": 290,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -373.0869140625
+      },
+      {
+        "id": "e903",
+        "source": 290,
+        "target": 289,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -373.0869140625
+      },
+      {
+        "id": "e904",
+        "source": 291,
+        "target": 289,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -377.3588562011719
+      },
+      {
+        "id": "e905",
+        "source": 289,
+        "target": 272,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -402.84735107421875
+      },
+      {
+        "id": "e906",
+        "source": 272,
+        "target": 292,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -355.328369140625
+      },
+      {
+        "id": "e907",
+        "source": 292,
+        "target": 291,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -402.5644836425781
+      },
+      {
+        "id": "e908",
+        "source": 195,
+        "target": 290,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 198.4073028564453
+      },
+      {
+        "id": "e909",
+        "source": 290,
+        "target": 291,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 198.4073028564453
+      },
+      {
+        "id": "e910",
+        "source": 291,
+        "target": 293,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 198.40902709960938
+      },
+      {
+        "id": "e911",
+        "source": 293,
+        "target": 195,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 198.40902709960938
+      },
+      {
+        "id": "e912",
+        "source": 292,
+        "target": 274,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -366.1112365722656
+      },
+      {
+        "id": "e913",
+        "source": 274,
+        "target": 196,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -366.1112365722656
+      },
+      {
+        "id": "e914",
+        "source": 196,
+        "target": 293,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -368.5475158691406
+      },
+      {
+        "id": "e915",
+        "source": 293,
+        "target": 292,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -368.5475158691406
+      },
+      {
+        "id": "e916",
+        "source": 294,
+        "target": 292,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -369.81890869140625
+      },
+      {
+        "id": "e917",
+        "source": 292,
+        "target": 277,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -397.9407653808594
+      },
+      {
+        "id": "e918",
+        "source": 277,
+        "target": 295,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -271.6195983886719
+      },
+      {
+        "id": "e919",
+        "source": 295,
+        "target": 294,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -320.4554138183594
+      },
+      {
+        "id": "e920",
+        "source": 198,
+        "target": 293,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 201.18243408203125
+      },
+      {
+        "id": "e921",
+        "source": 293,
+        "target": 294,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 201.18243408203125
+      },
+      {
+        "id": "e922",
+        "source": 294,
+        "target": 296,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 136.22769165039062
+      },
+      {
+        "id": "e923",
+        "source": 296,
+        "target": 198,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 136.22769165039062
+      },
+      {
+        "id": "e924",
+        "source": 295,
+        "target": 279,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -361.4112854003906
+      },
+      {
+        "id": "e925",
+        "source": 279,
+        "target": 199,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -361.4112854003906
+      },
+      {
+        "id": "e926",
+        "source": 199,
+        "target": 296,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -356.1022644042969
+      },
+      {
+        "id": "e927",
+        "source": 296,
+        "target": 295,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -356.1022644042969
+      },
+      {
+        "id": "e928",
+        "source": 297,
+        "target": 298,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -299.03411865234375
+      },
+      {
+        "id": "e929",
+        "source": 298,
+        "target": 280,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -317.3849182128906
+      },
+      {
+        "id": "e930",
+        "source": 280,
+        "target": 299,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -375.5876770019531
+      },
+      {
+        "id": "e931",
+        "source": 299,
+        "target": 297,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -392.2357482910156
+      },
+      {
+        "id": "e932",
+        "source": 201,
+        "target": 300,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 143.3675079345703
+      },
+      {
+        "id": "e933",
+        "source": 300,
+        "target": 297,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 143.3675079345703
+      },
+      {
+        "id": "e934",
+        "source": 297,
+        "target": 301,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 213.49395751953125
+      },
+      {
+        "id": "e935",
+        "source": 301,
+        "target": 201,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 213.49395751953125
+      },
+      {
+        "id": "e936",
+        "source": 300,
+        "target": 202,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -336.7435302734375
+      },
+      {
+        "id": "e937",
+        "source": 202,
+        "target": 283,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -346.97991943359375
+      },
+      {
+        "id": "e938",
+        "source": 283,
+        "target": 298,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -346.97991943359375
+      },
+      {
+        "id": "e939",
+        "source": 298,
+        "target": 300,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -336.7435302734375
+      },
+      {
+        "id": "e940",
+        "source": 299,
+        "target": 284,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -360.27294921875
+      },
+      {
+        "id": "e941",
+        "source": 284,
+        "target": 203,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -360.27294921875
+      },
+      {
+        "id": "e942",
+        "source": 203,
+        "target": 301,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -347.9295654296875
+      },
+      {
+        "id": "e943",
+        "source": 301,
+        "target": 299,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -347.9295654296875
+      },
+      {
+        "id": "e944",
+        "source": 302,
+        "target": 299,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -373.63922119140625
+      },
+      {
+        "id": "e945",
+        "source": 299,
+        "target": 285,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -392.93658447265625
+      },
+      {
+        "id": "e946",
+        "source": 285,
+        "target": 303,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -385.5587158203125
+      },
+      {
+        "id": "e947",
+        "source": 303,
+        "target": 302,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -392.7561950683594
+      },
+      {
+        "id": "e948",
+        "source": 206,
+        "target": 301,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 211.68797302246094
+      },
+      {
+        "id": "e949",
+        "source": 301,
+        "target": 302,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 211.68797302246094
+      },
+      {
+        "id": "e950",
+        "source": 302,
+        "target": 304,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 214.77549743652344
+      },
+      {
+        "id": "e951",
+        "source": 304,
+        "target": 206,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 214.77549743652344
+      },
+      {
+        "id": "e952",
+        "source": 303,
+        "target": 287,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -366.44012451171875
+      },
+      {
+        "id": "e953",
+        "source": 287,
+        "target": 207,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -366.44012451171875
+      },
+      {
+        "id": "e954",
+        "source": 207,
+        "target": 304,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -354.40863037109375
+      },
+      {
+        "id": "e955",
+        "source": 304,
+        "target": 303,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -354.40863037109375
+      },
+      {
+        "id": "e956",
+        "source": 305,
+        "target": 303,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -383.6018371582031
+      },
+      {
+        "id": "e957",
+        "source": 303,
+        "target": 288,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -391.6108093261719
+      },
+      {
+        "id": "e958",
+        "source": 288,
+        "target": 306,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -391.6108093261719
+      },
+      {
+        "id": "e959",
+        "source": 306,
+        "target": 305,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -383.6018371582031
+      },
+      {
+        "id": "e960",
+        "source": 209,
+        "target": 304,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 212.1629180908203
+      },
+      {
+        "id": "e961",
+        "source": 304,
+        "target": 305,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 212.1629180908203
+      },
+      {
+        "id": "e962",
+        "source": 305,
+        "target": 307,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 212.1629180908203
+      },
+      {
+        "id": "e963",
+        "source": 307,
+        "target": 209,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 212.1629180908203
+      },
+      {
+        "id": "e964",
+        "source": 306,
+        "target": 290,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -366.44012451171875
+      },
+      {
+        "id": "e965",
+        "source": 290,
+        "target": 210,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -366.44012451171875
+      },
+      {
+        "id": "e966",
+        "source": 210,
+        "target": 307,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -354.40863037109375
+      },
+      {
+        "id": "e967",
+        "source": 307,
+        "target": 306,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -354.40863037109375
+      },
+      {
+        "id": "e968",
+        "source": 308,
+        "target": 306,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -392.7561950683594
+      },
+      {
+        "id": "e969",
+        "source": 306,
+        "target": 291,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -385.5587158203125
+      },
+      {
+        "id": "e970",
+        "source": 291,
+        "target": 309,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -392.93658447265625
+      },
+      {
+        "id": "e971",
+        "source": 309,
+        "target": 308,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -373.63922119140625
+      },
+      {
+        "id": "e972",
+        "source": 212,
+        "target": 307,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 214.77549743652344
+      },
+      {
+        "id": "e973",
+        "source": 307,
+        "target": 308,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 214.77549743652344
+      },
+      {
+        "id": "e974",
+        "source": 308,
+        "target": 310,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 211.68797302246094
+      },
+      {
+        "id": "e975",
+        "source": 310,
+        "target": 212,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 211.68797302246094
+      },
+      {
+        "id": "e976",
+        "source": 309,
+        "target": 293,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -360.27294921875
+      },
+      {
+        "id": "e977",
+        "source": 293,
+        "target": 213,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -360.27294921875
+      },
+      {
+        "id": "e978",
+        "source": 213,
+        "target": 310,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -347.9295654296875
+      },
+      {
+        "id": "e979",
+        "source": 310,
+        "target": 309,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -347.9295654296875
+      },
+      {
+        "id": "e980",
+        "source": 311,
+        "target": 309,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -392.2357482910156
+      },
+      {
+        "id": "e981",
+        "source": 309,
+        "target": 294,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -375.5876770019531
+      },
+      {
+        "id": "e982",
+        "source": 294,
+        "target": 312,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -317.3849182128906
+      },
+      {
+        "id": "e983",
+        "source": 312,
+        "target": 311,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -299.03411865234375
+      },
+      {
+        "id": "e984",
+        "source": 215,
+        "target": 310,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 213.49395751953125
+      },
+      {
+        "id": "e985",
+        "source": 310,
+        "target": 311,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 213.49395751953125
+      },
+      {
+        "id": "e986",
+        "source": 311,
+        "target": 313,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 143.3675079345703
+      },
+      {
+        "id": "e987",
+        "source": 313,
+        "target": 215,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 143.3675079345703
+      },
+      {
+        "id": "e988",
+        "source": 312,
+        "target": 296,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -346.97991943359375
+      },
+      {
+        "id": "e989",
+        "source": 296,
+        "target": 216,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -346.97991943359375
+      },
+      {
+        "id": "e990",
+        "source": 216,
+        "target": 313,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -336.7435302734375
+      },
+      {
+        "id": "e991",
+        "source": 313,
+        "target": 312,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -336.7435302734375
+      },
+      {
+        "id": "e992",
+        "source": 314,
+        "target": 315,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -279.6291809082031
+      },
+      {
+        "id": "e993",
+        "source": 315,
+        "target": 297,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -331.2821350097656
+      },
+      {
+        "id": "e994",
+        "source": 297,
+        "target": 316,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -357.518798828125
+      },
+      {
+        "id": "e995",
+        "source": 316,
+        "target": 314,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -400.9755554199219
+      },
+      {
+        "id": "e996",
+        "source": 218,
+        "target": 317,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 133.18502807617188
+      },
+      {
+        "id": "e997",
+        "source": 317,
+        "target": 314,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 133.18502807617188
+      },
+      {
+        "id": "e998",
+        "source": 314,
+        "target": 318,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.25535583496094
+      },
+      {
+        "id": "e999",
+        "source": 318,
+        "target": 218,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.25535583496094
+      },
+      {
+        "id": "e1000",
+        "source": 317,
+        "target": 219,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -331.0556945800781
+      },
+      {
+        "id": "e1001",
+        "source": 219,
+        "target": 300,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -340.9953308105469
+      },
+      {
+        "id": "e1002",
+        "source": 300,
+        "target": 315,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -340.9953308105469
+      },
+      {
+        "id": "e1003",
+        "source": 315,
+        "target": 317,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -331.0556945800781
+      },
+      {
+        "id": "e1004",
+        "source": 316,
+        "target": 301,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -348.65289306640625
+      },
+      {
+        "id": "e1005",
+        "source": 301,
+        "target": 220,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -348.65289306640625
+      },
+      {
+        "id": "e1006",
+        "source": 220,
+        "target": 318,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -328.7375183105469
+      },
+      {
+        "id": "e1007",
+        "source": 318,
+        "target": 316,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -328.7375183105469
+      },
+      {
+        "id": "e1008",
+        "source": 319,
+        "target": 316,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -348.16912841796875
+      },
+      {
+        "id": "e1009",
+        "source": 316,
+        "target": 302,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -404.7060546875
+      },
+      {
+        "id": "e1010",
+        "source": 302,
+        "target": 320,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -361.461669921875
+      },
+      {
+        "id": "e1011",
+        "source": 320,
+        "target": 319,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -390.9808349609375
+      },
+      {
+        "id": "e1012",
+        "source": 223,
+        "target": 318,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 196.44801330566406
+      },
+      {
+        "id": "e1013",
+        "source": 318,
+        "target": 319,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 196.44801330566406
+      },
+      {
+        "id": "e1014",
+        "source": 319,
+        "target": 321,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.9594268798828
+      },
+      {
+        "id": "e1015",
+        "source": 321,
+        "target": 223,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.9594268798828
+      },
+      {
+        "id": "e1016",
+        "source": 320,
+        "target": 304,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -353.6539611816406
+      },
+      {
+        "id": "e1017",
+        "source": 304,
+        "target": 224,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -353.6539611816406
+      },
+      {
+        "id": "e1018",
+        "source": 224,
+        "target": 321,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -326.8214111328125
+      },
+      {
+        "id": "e1019",
+        "source": 321,
+        "target": 320,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -326.8214111328125
+      },
+      {
+        "id": "e1020",
+        "source": 322,
+        "target": 320,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.5453186035156
+      },
+      {
+        "id": "e1021",
+        "source": 320,
+        "target": 305,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -383.9278259277344
+      },
+      {
+        "id": "e1022",
+        "source": 305,
+        "target": 323,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -383.9278259277344
+      },
+      {
+        "id": "e1023",
+        "source": 323,
+        "target": 322,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.5453186035156
+      },
+      {
+        "id": "e1024",
+        "source": 226,
+        "target": 321,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 198.09463500976562
+      },
+      {
+        "id": "e1025",
+        "source": 321,
+        "target": 322,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 198.09463500976562
+      },
+      {
+        "id": "e1026",
+        "source": 322,
+        "target": 324,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 198.09463500976562
+      },
+      {
+        "id": "e1027",
+        "source": 324,
+        "target": 226,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 198.09463500976562
+      },
+      {
+        "id": "e1028",
+        "source": 323,
+        "target": 307,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -353.6539611816406
+      },
+      {
+        "id": "e1029",
+        "source": 307,
+        "target": 227,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -353.6539611816406
+      },
+      {
+        "id": "e1030",
+        "source": 227,
+        "target": 324,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -326.8214111328125
+      },
+      {
+        "id": "e1031",
+        "source": 324,
+        "target": 323,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -326.8214111328125
+      },
+      {
+        "id": "e1032",
+        "source": 325,
+        "target": 323,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -390.9808349609375
+      },
+      {
+        "id": "e1033",
+        "source": 323,
+        "target": 308,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -361.461669921875
+      },
+      {
+        "id": "e1034",
+        "source": 308,
+        "target": 326,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -404.7060546875
+      },
+      {
+        "id": "e1035",
+        "source": 326,
+        "target": 325,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -348.16912841796875
+      },
+      {
+        "id": "e1036",
+        "source": 229,
+        "target": 324,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.9594268798828
+      },
+      {
+        "id": "e1037",
+        "source": 324,
+        "target": 325,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.9594268798828
+      },
+      {
+        "id": "e1038",
+        "source": 325,
+        "target": 327,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 196.44801330566406
+      },
+      {
+        "id": "e1039",
+        "source": 327,
+        "target": 229,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 196.44801330566406
+      },
+      {
+        "id": "e1040",
+        "source": 326,
+        "target": 310,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -348.65289306640625
+      },
+      {
+        "id": "e1041",
+        "source": 310,
+        "target": 230,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -348.65289306640625
+      },
+      {
+        "id": "e1042",
+        "source": 230,
+        "target": 327,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -328.7375183105469
+      },
+      {
+        "id": "e1043",
+        "source": 327,
+        "target": 326,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -328.7375183105469
+      },
+      {
+        "id": "e1044",
+        "source": 328,
+        "target": 326,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -400.9755554199219
+      },
+      {
+        "id": "e1045",
+        "source": 326,
+        "target": 311,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -357.518798828125
+      },
+      {
+        "id": "e1046",
+        "source": 311,
+        "target": 329,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -331.2821350097656
+      },
+      {
+        "id": "e1047",
+        "source": 329,
+        "target": 328,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -279.6291809082031
+      },
+      {
+        "id": "e1048",
+        "source": 232,
+        "target": 327,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.25535583496094
+      },
+      {
+        "id": "e1049",
+        "source": 327,
+        "target": 328,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.25535583496094
+      },
+      {
+        "id": "e1050",
+        "source": 328,
+        "target": 330,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 133.18502807617188
+      },
+      {
+        "id": "e1051",
+        "source": 330,
+        "target": 232,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 133.18502807617188
+      },
+      {
+        "id": "e1052",
+        "source": 329,
+        "target": 313,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -340.9953308105469
+      },
+      {
+        "id": "e1053",
+        "source": 313,
+        "target": 233,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -340.9953308105469
+      },
+      {
+        "id": "e1054",
+        "source": 233,
+        "target": 330,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -331.0556945800781
+      },
+      {
+        "id": "e1055",
+        "source": 330,
+        "target": 329,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -331.0556945800781
+      },
+      {
+        "id": "e1056",
+        "source": 331,
+        "target": 332,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -153.95716857910156
+      },
+      {
+        "id": "e1057",
+        "source": 332,
+        "target": 314,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -350.2704162597656
+      },
+      {
+        "id": "e1058",
+        "source": 314,
+        "target": 333,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -336.0303039550781
+      },
+      {
+        "id": "e1059",
+        "source": 333,
+        "target": 331,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -306.6153564453125
+      },
+      {
+        "id": "e1060",
+        "source": 235,
+        "target": 334,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 89.3890380859375
+      },
+      {
+        "id": "e1061",
+        "source": 334,
+        "target": 331,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 89.3890380859375
+      },
+      {
+        "id": "e1062",
+        "source": 331,
+        "target": 335,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 175.84262084960938
+      },
+      {
+        "id": "e1063",
+        "source": 335,
+        "target": 235,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 175.84262084960938
+      },
+      {
+        "id": "e1064",
+        "source": 334,
+        "target": 236,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -164.80191040039062
+      },
+      {
+        "id": "e1065",
+        "source": 236,
+        "target": 317,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -337.0556640625
+      },
+      {
+        "id": "e1066",
+        "source": 317,
+        "target": 332,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -337.0556640625
+      },
+      {
+        "id": "e1067",
+        "source": 332,
+        "target": 334,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -164.80191040039062
+      },
+      {
+        "id": "e1068",
+        "source": 333,
+        "target": 318,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -327.0177001953125
+      },
+      {
+        "id": "e1069",
+        "source": 318,
+        "target": 237,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -327.0177001953125
+      },
+      {
+        "id": "e1070",
+        "source": 237,
+        "target": 335,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -182.88095092773438
+      },
+      {
+        "id": "e1071",
+        "source": 335,
+        "target": 333,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -182.88095092773438
+      },
+      {
+        "id": "e1072",
+        "source": 336,
+        "target": 333,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -216.3822479248047
+      },
+      {
+        "id": "e1073",
+        "source": 333,
+        "target": 319,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -406.8560485839844
+      },
+      {
+        "id": "e1074",
+        "source": 319,
+        "target": 337,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -338.3282470703125
+      },
+      {
+        "id": "e1075",
+        "source": 337,
+        "target": 336,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -248.18795776367188
+      },
+      {
+        "id": "e1076",
+        "source": 240,
+        "target": 335,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 176.56747436523438
+      },
+      {
+        "id": "e1077",
+        "source": 335,
+        "target": 336,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 176.56747436523438
+      },
+      {
+        "id": "e1078",
+        "source": 336,
+        "target": 338,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 202.2714385986328
+      },
+      {
+        "id": "e1079",
+        "source": 338,
+        "target": 240,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 202.2714385986328
+      },
+      {
+        "id": "e1080",
+        "source": 337,
+        "target": 321,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -323.7554626464844
+      },
+      {
+        "id": "e1081",
+        "source": 321,
+        "target": 241,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -323.7554626464844
+      },
+      {
+        "id": "e1082",
+        "source": 241,
+        "target": 338,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -181.08335876464844
+      },
+      {
+        "id": "e1083",
+        "source": 338,
+        "target": 337,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -181.08335876464844
+      },
+      {
+        "id": "e1084",
+        "source": 339,
+        "target": 337,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -226.17967224121094
+      },
+      {
+        "id": "e1085",
+        "source": 337,
+        "target": 322,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.7297668457031
+      },
+      {
+        "id": "e1086",
+        "source": 322,
+        "target": 340,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.7297668457031
+      },
+      {
+        "id": "e1087",
+        "source": 340,
+        "target": 339,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -226.17967224121094
+      },
+      {
+        "id": "e1088",
+        "source": 243,
+        "target": 338,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 200.15391540527344
+      },
+      {
+        "id": "e1089",
+        "source": 338,
+        "target": 339,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 200.15391540527344
+      },
+      {
+        "id": "e1090",
+        "source": 339,
+        "target": 341,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 200.15391540527344
+      },
+      {
+        "id": "e1091",
+        "source": 341,
+        "target": 243,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 200.15391540527344
+      },
+      {
+        "id": "e1092",
+        "source": 340,
+        "target": 324,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -323.7554626464844
+      },
+      {
+        "id": "e1093",
+        "source": 324,
+        "target": 244,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -323.7554626464844
+      },
+      {
+        "id": "e1094",
+        "source": 244,
+        "target": 341,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -181.08335876464844
+      },
+      {
+        "id": "e1095",
+        "source": 341,
+        "target": 340,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -181.08335876464844
+      },
+      {
+        "id": "e1096",
+        "source": 342,
+        "target": 340,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -248.18795776367188
+      },
+      {
+        "id": "e1097",
+        "source": 340,
+        "target": 325,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -338.3282470703125
+      },
+      {
+        "id": "e1098",
+        "source": 325,
+        "target": 343,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -406.8560485839844
+      },
+      {
+        "id": "e1099",
+        "source": 343,
+        "target": 342,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -216.3822479248047
+      },
+      {
+        "id": "e1100",
+        "source": 246,
+        "target": 341,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 202.2714385986328
+      },
+      {
+        "id": "e1101",
+        "source": 341,
+        "target": 342,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 202.2714385986328
+      },
+      {
+        "id": "e1102",
+        "source": 342,
+        "target": 344,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 176.56747436523438
+      },
+      {
+        "id": "e1103",
+        "source": 344,
+        "target": 246,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 176.56747436523438
+      },
+      {
+        "id": "e1104",
+        "source": 343,
+        "target": 327,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -327.0177001953125
+      },
+      {
+        "id": "e1105",
+        "source": 327,
+        "target": 247,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -327.0177001953125
+      },
+      {
+        "id": "e1106",
+        "source": 247,
+        "target": 344,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -182.88095092773438
+      },
+      {
+        "id": "e1107",
+        "source": 344,
+        "target": 343,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -182.88095092773438
+      },
+      {
+        "id": "e1108",
+        "source": 345,
+        "target": 343,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -306.6153564453125
+      },
+      {
+        "id": "e1109",
+        "source": 343,
+        "target": 328,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -336.0303039550781
+      },
+      {
+        "id": "e1110",
+        "source": 328,
+        "target": 346,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -350.2704162597656
+      },
+      {
+        "id": "e1111",
+        "source": 346,
+        "target": 345,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -153.95716857910156
+      },
+      {
+        "id": "e1112",
+        "source": 249,
+        "target": 344,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 175.84262084960938
+      },
+      {
+        "id": "e1113",
+        "source": 344,
+        "target": 345,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 175.84262084960938
+      },
+      {
+        "id": "e1114",
+        "source": 345,
+        "target": 347,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 89.3890380859375
+      },
+      {
+        "id": "e1115",
+        "source": 347,
+        "target": 249,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 89.3890380859375
+      },
+      {
+        "id": "e1116",
+        "source": 346,
+        "target": 330,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -337.0556640625
+      },
+      {
+        "id": "e1117",
+        "source": 330,
+        "target": 250,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -337.0556640625
+      },
+      {
+        "id": "e1118",
+        "source": 250,
+        "target": 347,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -164.80191040039062
+      },
+      {
+        "id": "e1119",
+        "source": 347,
+        "target": 346,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -164.80191040039062
+      },
+      {
+        "id": "e1120",
+        "source": 348,
+        "target": 349,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1121",
+        "source": 349,
+        "target": 252,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1122",
+        "source": 252,
+        "target": 350,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1123",
+        "source": 350,
+        "target": 348,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1124",
+        "source": 351,
+        "target": 352,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -401.7049560546875
+      },
+      {
+        "id": "e1125",
+        "source": 352,
+        "target": 348,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -203.17774963378906
+      },
+      {
+        "id": "e1126",
+        "source": 348,
+        "target": 353,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -472.5869140625
+      },
+      {
+        "id": "e1127",
+        "source": 353,
+        "target": 351,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -292.939697265625
+      },
+      {
+        "id": "e1128",
+        "source": 255,
+        "target": 354,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 106.49797058105469
+      },
+      {
+        "id": "e1129",
+        "source": 354,
+        "target": 351,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 124.36783599853516
+      },
+      {
+        "id": "e1130",
+        "source": 351,
+        "target": 355,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 186.04214477539062
+      },
+      {
+        "id": "e1131",
+        "source": 355,
+        "target": 255,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 132.876953125
+      },
+      {
+        "id": "e1132",
+        "source": 354,
+        "target": 256,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -322.75506591796875
+      },
+      {
+        "id": "e1133",
+        "source": 256,
+        "target": 349,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -474.7087707519531
+      },
+      {
+        "id": "e1134",
+        "source": 349,
+        "target": 352,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.46551513671875
+      },
+      {
+        "id": "e1135",
+        "source": 352,
+        "target": 354,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -440.4598388671875
+      },
+      {
+        "id": "e1136",
+        "source": 353,
+        "target": 350,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -284.8054504394531
+      },
+      {
+        "id": "e1137",
+        "source": 350,
+        "target": 257,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -409.5457458496094
+      },
+      {
+        "id": "e1138",
+        "source": 257,
+        "target": 355,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -313.4544982910156
+      },
+      {
+        "id": "e1139",
+        "source": 355,
+        "target": 353,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -448.890380859375
+      },
+      {
+        "id": "e1140",
+        "source": 356,
+        "target": 350,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1141",
+        "source": 350,
+        "target": 260,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1142",
+        "source": 260,
+        "target": 357,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1143",
+        "source": 357,
+        "target": 356,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1144",
+        "source": 358,
+        "target": 353,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -451.0946044921875
+      },
+      {
+        "id": "e1145",
+        "source": 353,
+        "target": 356,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -306.20843505859375
+      },
+      {
+        "id": "e1146",
+        "source": 356,
+        "target": 359,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -405.9900207519531
+      },
+      {
+        "id": "e1147",
+        "source": 359,
+        "target": 358,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -335.16192626953125
+      },
+      {
+        "id": "e1148",
+        "source": 262,
+        "target": 355,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 147.25387573242188
+      },
+      {
+        "id": "e1149",
+        "source": 355,
+        "target": 358,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 153.10464477539062
+      },
+      {
+        "id": "e1150",
+        "source": 358,
+        "target": 360,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 157.53778076171875
+      },
+      {
+        "id": "e1151",
+        "source": 360,
+        "target": 262,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 115.9503402709961
+      },
+      {
+        "id": "e1152",
+        "source": 359,
+        "target": 357,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -280.0675354003906
+      },
+      {
+        "id": "e1153",
+        "source": 357,
+        "target": 263,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -400.2062683105469
+      },
+      {
+        "id": "e1154",
+        "source": 263,
+        "target": 360,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -309.185546875
+      },
+      {
+        "id": "e1155",
+        "source": 360,
+        "target": 359,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -439.4637756347656
+      },
+      {
+        "id": "e1156",
+        "source": 361,
+        "target": 357,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1157",
+        "source": 357,
+        "target": 265,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1158",
+        "source": 265,
+        "target": 362,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1159",
+        "source": 362,
+        "target": 361,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1160",
+        "source": 363,
+        "target": 359,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -391.7324523925781
+      },
+      {
+        "id": "e1161",
+        "source": 359,
+        "target": 361,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -352.5620422363281
+      },
+      {
+        "id": "e1162",
+        "source": 361,
+        "target": 364,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -352.5620422363281
+      },
+      {
+        "id": "e1163",
+        "source": 364,
+        "target": 363,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -391.7324523925781
+      },
+      {
+        "id": "e1164",
+        "source": 267,
+        "target": 360,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 124.23261260986328
+      },
+      {
+        "id": "e1165",
+        "source": 360,
+        "target": 363,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 142.31558227539062
+      },
+      {
+        "id": "e1166",
+        "source": 363,
+        "target": 365,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 142.31558227539062
+      },
+      {
+        "id": "e1167",
+        "source": 365,
+        "target": 267,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 124.23261260986328
+      },
+      {
+        "id": "e1168",
+        "source": 364,
+        "target": 362,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -280.0675354003906
+      },
+      {
+        "id": "e1169",
+        "source": 362,
+        "target": 268,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -400.2062683105469
+      },
+      {
+        "id": "e1170",
+        "source": 268,
+        "target": 365,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -309.185546875
+      },
+      {
+        "id": "e1171",
+        "source": 365,
+        "target": 364,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -439.4637756347656
+      },
+      {
+        "id": "e1172",
+        "source": 366,
+        "target": 362,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1173",
+        "source": 362,
+        "target": 270,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1174",
+        "source": 270,
+        "target": 367,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1175",
+        "source": 367,
+        "target": 366,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1176",
+        "source": 368,
+        "target": 364,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -335.16192626953125
+      },
+      {
+        "id": "e1177",
+        "source": 364,
+        "target": 366,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -405.9900207519531
+      },
+      {
+        "id": "e1178",
+        "source": 366,
+        "target": 369,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -306.20843505859375
+      },
+      {
+        "id": "e1179",
+        "source": 369,
+        "target": 368,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -451.0946044921875
+      },
+      {
+        "id": "e1180",
+        "source": 272,
+        "target": 365,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 115.9503402709961
+      },
+      {
+        "id": "e1181",
+        "source": 365,
+        "target": 368,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 157.53778076171875
+      },
+      {
+        "id": "e1182",
+        "source": 368,
+        "target": 370,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 153.10464477539062
+      },
+      {
+        "id": "e1183",
+        "source": 370,
+        "target": 272,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 147.25387573242188
+      },
+      {
+        "id": "e1184",
+        "source": 369,
+        "target": 367,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -284.8054504394531
+      },
+      {
+        "id": "e1185",
+        "source": 367,
+        "target": 273,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -409.5457458496094
+      },
+      {
+        "id": "e1186",
+        "source": 273,
+        "target": 370,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -313.4544982910156
+      },
+      {
+        "id": "e1187",
+        "source": 370,
+        "target": 369,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -448.890380859375
+      },
+      {
+        "id": "e1188",
+        "source": 371,
+        "target": 367,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1189",
+        "source": 367,
+        "target": 275,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1190",
+        "source": 275,
+        "target": 372,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1191",
+        "source": 372,
+        "target": 371,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1192",
+        "source": 373,
+        "target": 369,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -292.939697265625
+      },
+      {
+        "id": "e1193",
+        "source": 369,
+        "target": 371,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -472.5869140625
+      },
+      {
+        "id": "e1194",
+        "source": 371,
+        "target": 374,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -203.17774963378906
+      },
+      {
+        "id": "e1195",
+        "source": 374,
+        "target": 373,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -401.7049560546875
+      },
+      {
+        "id": "e1196",
+        "source": 277,
+        "target": 370,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 132.876953125
+      },
+      {
+        "id": "e1197",
+        "source": 370,
+        "target": 373,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 186.04214477539062
+      },
+      {
+        "id": "e1198",
+        "source": 373,
+        "target": 375,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 124.36783599853516
+      },
+      {
+        "id": "e1199",
+        "source": 375,
+        "target": 277,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 106.49797058105469
+      },
+      {
+        "id": "e1200",
+        "source": 374,
+        "target": 372,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.46551513671875
+      },
+      {
+        "id": "e1201",
+        "source": 372,
+        "target": 278,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -474.7087707519531
+      },
+      {
+        "id": "e1202",
+        "source": 278,
+        "target": 375,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -322.75506591796875
+      },
+      {
+        "id": "e1203",
+        "source": 375,
+        "target": 374,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -440.4598388671875
+      },
+      {
+        "id": "e1204",
+        "source": 376,
+        "target": 377,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -309.3009948730469
+      },
+      {
+        "id": "e1205",
+        "source": 377,
+        "target": 351,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -284.59722900390625
+      },
+      {
+        "id": "e1206",
+        "source": 351,
+        "target": 378,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -403.1513671875
+      },
+      {
+        "id": "e1207",
+        "source": 378,
+        "target": 376,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.2358703613281
+      },
+      {
+        "id": "e1208",
+        "source": 280,
+        "target": 379,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 151.50775146484375
+      },
+      {
+        "id": "e1209",
+        "source": 379,
+        "target": 376,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 135.75743103027344
+      },
+      {
+        "id": "e1210",
+        "source": 376,
+        "target": 380,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 242.25247192382812
+      },
+      {
+        "id": "e1211",
+        "source": 380,
+        "target": 280,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 187.51873779296875
+      },
+      {
+        "id": "e1212",
+        "source": 379,
+        "target": 281,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -334.2796630859375
+      },
+      {
+        "id": "e1213",
+        "source": 281,
+        "target": 354,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -390.798583984375
+      },
+      {
+        "id": "e1214",
+        "source": 354,
+        "target": 377,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -316.4200744628906
+      },
+      {
+        "id": "e1215",
+        "source": 377,
+        "target": 379,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -329.5719909667969
+      },
+      {
+        "id": "e1216",
+        "source": 378,
+        "target": 355,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -332.7845153808594
+      },
+      {
+        "id": "e1217",
+        "source": 355,
+        "target": 282,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -396.20904541015625
+      },
+      {
+        "id": "e1218",
+        "source": 282,
+        "target": 380,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -344.542236328125
+      },
+      {
+        "id": "e1219",
+        "source": 380,
+        "target": 378,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -372.4205017089844
+      },
+      {
+        "id": "e1220",
+        "source": 381,
+        "target": 378,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -393.936767578125
+      },
+      {
+        "id": "e1221",
+        "source": 378,
+        "target": 358,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -360.0229187011719
+      },
+      {
+        "id": "e1222",
+        "source": 358,
+        "target": 382,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -410.7134704589844
+      },
+      {
+        "id": "e1223",
+        "source": 382,
+        "target": 381,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -369.88006591796875
+      },
+      {
+        "id": "e1224",
+        "source": 285,
+        "target": 380,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 217.52716064453125
+      },
+      {
+        "id": "e1225",
+        "source": 380,
+        "target": 381,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.7158966064453
+      },
+      {
+        "id": "e1226",
+        "source": 381,
+        "target": 383,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 224.97789001464844
+      },
+      {
+        "id": "e1227",
+        "source": 383,
+        "target": 285,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 184.69715881347656
+      },
+      {
+        "id": "e1228",
+        "source": 382,
+        "target": 360,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -331.7752990722656
+      },
+      {
+        "id": "e1229",
+        "source": 360,
+        "target": 286,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -391.6830749511719
+      },
+      {
+        "id": "e1230",
+        "source": 286,
+        "target": 383,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -350.5722351074219
+      },
+      {
+        "id": "e1231",
+        "source": 383,
+        "target": 382,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -383.7701721191406
+      },
+      {
+        "id": "e1232",
+        "source": 384,
+        "target": 382,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -388.15087890625
+      },
+      {
+        "id": "e1233",
+        "source": 382,
+        "target": 363,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -385.113525390625
+      },
+      {
+        "id": "e1234",
+        "source": 363,
+        "target": 385,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -385.113525390625
+      },
+      {
+        "id": "e1235",
+        "source": 385,
+        "target": 384,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -388.15087890625
+      },
+      {
+        "id": "e1236",
+        "source": 288,
+        "target": 383,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 198.2138671875
+      },
+      {
+        "id": "e1237",
+        "source": 383,
+        "target": 384,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 204.4996795654297
+      },
+      {
+        "id": "e1238",
+        "source": 384,
+        "target": 386,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 204.4996795654297
+      },
+      {
+        "id": "e1239",
+        "source": 386,
+        "target": 288,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 198.2138671875
+      },
+      {
+        "id": "e1240",
+        "source": 385,
+        "target": 365,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -331.7752990722656
+      },
+      {
+        "id": "e1241",
+        "source": 365,
+        "target": 289,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -391.6830749511719
+      },
+      {
+        "id": "e1242",
+        "source": 289,
+        "target": 386,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -350.5722351074219
+      },
+      {
+        "id": "e1243",
+        "source": 386,
+        "target": 385,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -383.7701721191406
+      },
+      {
+        "id": "e1244",
+        "source": 387,
+        "target": 385,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -369.88006591796875
+      },
+      {
+        "id": "e1245",
+        "source": 385,
+        "target": 368,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -410.7134704589844
+      },
+      {
+        "id": "e1246",
+        "source": 368,
+        "target": 388,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -360.0229187011719
+      },
+      {
+        "id": "e1247",
+        "source": 388,
+        "target": 387,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -393.936767578125
+      },
+      {
+        "id": "e1248",
+        "source": 291,
+        "target": 386,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 184.69715881347656
+      },
+      {
+        "id": "e1249",
+        "source": 386,
+        "target": 387,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 224.97789001464844
+      },
+      {
+        "id": "e1250",
+        "source": 387,
+        "target": 389,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.7158966064453
+      },
+      {
+        "id": "e1251",
+        "source": 389,
+        "target": 291,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 217.52716064453125
+      },
+      {
+        "id": "e1252",
+        "source": 388,
+        "target": 370,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -332.7845153808594
+      },
+      {
+        "id": "e1253",
+        "source": 370,
+        "target": 292,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -396.20904541015625
+      },
+      {
+        "id": "e1254",
+        "source": 292,
+        "target": 389,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -344.542236328125
+      },
+      {
+        "id": "e1255",
+        "source": 389,
+        "target": 388,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -372.4205017089844
+      },
+      {
+        "id": "e1256",
+        "source": 390,
+        "target": 388,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.2358703613281
+      },
+      {
+        "id": "e1257",
+        "source": 388,
+        "target": 373,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -403.1513671875
+      },
+      {
+        "id": "e1258",
+        "source": 373,
+        "target": 391,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -284.59722900390625
+      },
+      {
+        "id": "e1259",
+        "source": 391,
+        "target": 390,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -309.3009948730469
+      },
+      {
+        "id": "e1260",
+        "source": 294,
+        "target": 389,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 187.51873779296875
+      },
+      {
+        "id": "e1261",
+        "source": 389,
+        "target": 390,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 242.25247192382812
+      },
+      {
+        "id": "e1262",
+        "source": 390,
+        "target": 392,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 135.75743103027344
+      },
+      {
+        "id": "e1263",
+        "source": 392,
+        "target": 294,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 151.50775146484375
+      },
+      {
+        "id": "e1264",
+        "source": 391,
+        "target": 375,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -316.4200744628906
+      },
+      {
+        "id": "e1265",
+        "source": 375,
+        "target": 295,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -390.798583984375
+      },
+      {
+        "id": "e1266",
+        "source": 295,
+        "target": 392,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -334.2796630859375
+      },
+      {
+        "id": "e1267",
+        "source": 392,
+        "target": 391,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -329.5719909667969
+      },
+      {
+        "id": "e1268",
+        "source": 393,
+        "target": 394,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -295.2023620605469
+      },
+      {
+        "id": "e1269",
+        "source": 394,
+        "target": 376,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -308.8236389160156
+      },
+      {
+        "id": "e1270",
+        "source": 376,
+        "target": 395,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -363.21502685546875
+      },
+      {
+        "id": "e1271",
+        "source": 395,
+        "target": 393,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -382.387451171875
+      },
+      {
+        "id": "e1272",
+        "source": 297,
+        "target": 396,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 157.63160705566406
+      },
+      {
+        "id": "e1273",
+        "source": 396,
+        "target": 393,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 140.8145294189453
+      },
+      {
+        "id": "e1274",
+        "source": 393,
+        "target": 397,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 250.51260375976562
+      },
+      {
+        "id": "e1275",
+        "source": 397,
+        "target": 297,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.53433227539062
+      },
+      {
+        "id": "e1276",
+        "source": 396,
+        "target": 298,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -354.0624084472656
+      },
+      {
+        "id": "e1277",
+        "source": 298,
+        "target": 379,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -328.17742919921875
+      },
+      {
+        "id": "e1278",
+        "source": 379,
+        "target": 394,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -326.040283203125
+      },
+      {
+        "id": "e1279",
+        "source": 394,
+        "target": 396,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -298.8392639160156
+      },
+      {
+        "id": "e1280",
+        "source": 395,
+        "target": 380,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -357.4838562011719
+      },
+      {
+        "id": "e1281",
+        "source": 380,
+        "target": 299,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -348.1856384277344
+      },
+      {
+        "id": "e1282",
+        "source": 299,
+        "target": 397,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -361.0893859863281
+      },
+      {
+        "id": "e1283",
+        "source": 397,
+        "target": 395,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -329.63543701171875
+      },
+      {
+        "id": "e1284",
+        "source": 398,
+        "target": 395,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -363.38641357421875
+      },
+      {
+        "id": "e1285",
+        "source": 395,
+        "target": 381,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -382.2891540527344
+      },
+      {
+        "id": "e1286",
+        "source": 381,
+        "target": 399,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -376.40301513671875
+      },
+      {
+        "id": "e1287",
+        "source": 399,
+        "target": 398,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -385.4752502441406
+      },
+      {
+        "id": "e1288",
+        "source": 302,
+        "target": 397,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 231.13621520996094
+      },
+      {
+        "id": "e1289",
+        "source": 397,
+        "target": 398,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 207.65541076660156
+      },
+      {
+        "id": "e1290",
+        "source": 398,
+        "target": 400,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 237.10772705078125
+      },
+      {
+        "id": "e1291",
+        "source": 400,
+        "target": 302,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.91021728515625
+      },
+      {
+        "id": "e1292",
+        "source": 399,
+        "target": 383,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -369.0514221191406
+      },
+      {
+        "id": "e1293",
+        "source": 383,
+        "target": 303,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -357.16650390625
+      },
+      {
+        "id": "e1294",
+        "source": 303,
+        "target": 400,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -367.2653503417969
+      },
+      {
+        "id": "e1295",
+        "source": 400,
+        "target": 399,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -342.9756774902344
+      },
+      {
+        "id": "e1296",
+        "source": 401,
+        "target": 399,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -376.4401550292969
+      },
+      {
+        "id": "e1297",
+        "source": 399,
+        "target": 384,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -384.10009765625
+      },
+      {
+        "id": "e1298",
+        "source": 384,
+        "target": 402,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -384.10009765625
+      },
+      {
+        "id": "e1299",
+        "source": 402,
+        "target": 401,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -376.4401550292969
+      },
+      {
+        "id": "e1300",
+        "source": 305,
+        "target": 400,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 214.50914001464844
+      },
+      {
+        "id": "e1301",
+        "source": 400,
+        "target": 401,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 216.1576385498047
+      },
+      {
+        "id": "e1302",
+        "source": 401,
+        "target": 403,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 216.1576385498047
+      },
+      {
+        "id": "e1303",
+        "source": 403,
+        "target": 305,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 214.50914001464844
+      },
+      {
+        "id": "e1304",
+        "source": 402,
+        "target": 386,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -369.0514221191406
+      },
+      {
+        "id": "e1305",
+        "source": 386,
+        "target": 306,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -357.16650390625
+      },
+      {
+        "id": "e1306",
+        "source": 306,
+        "target": 403,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -367.2653503417969
+      },
+      {
+        "id": "e1307",
+        "source": 403,
+        "target": 402,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -342.9756774902344
+      },
+      {
+        "id": "e1308",
+        "source": 404,
+        "target": 402,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -385.4752502441406
+      },
+      {
+        "id": "e1309",
+        "source": 402,
+        "target": 387,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -376.40301513671875
+      },
+      {
+        "id": "e1310",
+        "source": 387,
+        "target": 405,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -382.2891540527344
+      },
+      {
+        "id": "e1311",
+        "source": 405,
+        "target": 404,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -363.38641357421875
+      },
+      {
+        "id": "e1312",
+        "source": 308,
+        "target": 403,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.91021728515625
+      },
+      {
+        "id": "e1313",
+        "source": 403,
+        "target": 404,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 237.10772705078125
+      },
+      {
+        "id": "e1314",
+        "source": 404,
+        "target": 406,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 207.65541076660156
+      },
+      {
+        "id": "e1315",
+        "source": 406,
+        "target": 308,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 231.13621520996094
+      },
+      {
+        "id": "e1316",
+        "source": 405,
+        "target": 389,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -357.4838562011719
+      },
+      {
+        "id": "e1317",
+        "source": 389,
+        "target": 309,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -348.1856384277344
+      },
+      {
+        "id": "e1318",
+        "source": 309,
+        "target": 406,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -361.0893859863281
+      },
+      {
+        "id": "e1319",
+        "source": 406,
+        "target": 405,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -329.63543701171875
+      },
+      {
+        "id": "e1320",
+        "source": 407,
+        "target": 405,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -382.387451171875
+      },
+      {
+        "id": "e1321",
+        "source": 405,
+        "target": 390,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -363.21502685546875
+      },
+      {
+        "id": "e1322",
+        "source": 390,
+        "target": 408,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -308.8236389160156
+      },
+      {
+        "id": "e1323",
+        "source": 408,
+        "target": 407,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -295.2023620605469
+      },
+      {
+        "id": "e1324",
+        "source": 311,
+        "target": 406,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.53433227539062
+      },
+      {
+        "id": "e1325",
+        "source": 406,
+        "target": 407,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 250.51260375976562
+      },
+      {
+        "id": "e1326",
+        "source": 407,
+        "target": 409,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 140.8145294189453
+      },
+      {
+        "id": "e1327",
+        "source": 409,
+        "target": 311,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 157.63160705566406
+      },
+      {
+        "id": "e1328",
+        "source": 408,
+        "target": 392,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -326.040283203125
+      },
+      {
+        "id": "e1329",
+        "source": 392,
+        "target": 312,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -328.17742919921875
+      },
+      {
+        "id": "e1330",
+        "source": 312,
+        "target": 409,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -354.0624084472656
+      },
+      {
+        "id": "e1331",
+        "source": 409,
+        "target": 408,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -298.8392639160156
+      },
+      {
+        "id": "e1332",
+        "source": 410,
+        "target": 411,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -285.26171875
+      },
+      {
+        "id": "e1333",
+        "source": 411,
+        "target": 393,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -326.9801940917969
+      },
+      {
+        "id": "e1334",
+        "source": 393,
+        "target": 412,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -350.5188903808594
+      },
+      {
+        "id": "e1335",
+        "source": 412,
+        "target": 410,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -401.4304504394531
+      },
+      {
+        "id": "e1336",
+        "source": 314,
+        "target": 413,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 146.5185089111328
+      },
+      {
+        "id": "e1337",
+        "source": 413,
+        "target": 410,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 128.50323486328125
+      },
+      {
+        "id": "e1338",
+        "source": 410,
+        "target": 414,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 229.29518127441406
+      },
+      {
+        "id": "e1339",
+        "source": 414,
+        "target": 314,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 185.5278778076172
+      },
+      {
+        "id": "e1340",
+        "source": 413,
+        "target": 315,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -367.93829345703125
+      },
+      {
+        "id": "e1341",
+        "source": 315,
+        "target": 396,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -305.961181640625
+      },
+      {
+        "id": "e1342",
+        "source": 396,
+        "target": 411,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -355.06256103515625
+      },
+      {
+        "id": "e1343",
+        "source": 411,
+        "target": 413,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -297.6817932128906
+      },
+      {
+        "id": "e1344",
+        "source": 412,
+        "target": 397,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -375.3345642089844
+      },
+      {
+        "id": "e1345",
+        "source": 397,
+        "target": 316,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -317.6925048828125
+      },
+      {
+        "id": "e1346",
+        "source": 316,
+        "target": 414,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.9497985839844
+      },
+      {
+        "id": "e1347",
+        "source": 414,
+        "target": 412,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -309.8504333496094
+      },
+      {
+        "id": "e1348",
+        "source": 415,
+        "target": 412,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -347.255615234375
+      },
+      {
+        "id": "e1349",
+        "source": 412,
+        "target": 398,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -397.0319519042969
+      },
+      {
+        "id": "e1350",
+        "source": 398,
+        "target": 416,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -353.9858703613281
+      },
+      {
+        "id": "e1351",
+        "source": 416,
+        "target": 415,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -390.5323791503906
+      },
+      {
+        "id": "e1352",
+        "source": 319,
+        "target": 414,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 214.8092498779297
+      },
+      {
+        "id": "e1353",
+        "source": 414,
+        "target": 415,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 187.82078552246094
+      },
+      {
+        "id": "e1354",
+        "source": 415,
+        "target": 417,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 216.6497344970703
+      },
+      {
+        "id": "e1355",
+        "source": 417,
+        "target": 319,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 184.42279052734375
+      },
+      {
+        "id": "e1356",
+        "source": 416,
+        "target": 400,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -384.1105651855469
+      },
+      {
+        "id": "e1357",
+        "source": 400,
+        "target": 320,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -324.8084716796875
+      },
+      {
+        "id": "e1358",
+        "source": 320,
+        "target": 417,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -361.52044677734375
+      },
+      {
+        "id": "e1359",
+        "source": 417,
+        "target": 416,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -312.5748596191406
+      },
+      {
+        "id": "e1360",
+        "source": 418,
+        "target": 416,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.768310546875
+      },
+      {
+        "id": "e1361",
+        "source": 416,
+        "target": 401,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -377.68853759765625
+      },
+      {
+        "id": "e1362",
+        "source": 401,
+        "target": 419,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -377.68853759765625
+      },
+      {
+        "id": "e1363",
+        "source": 419,
+        "target": 418,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.768310546875
+      },
+      {
+        "id": "e1364",
+        "source": 322,
+        "target": 417,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.53651428222656
+      },
+      {
+        "id": "e1365",
+        "source": 417,
+        "target": 418,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 196.76100158691406
+      },
+      {
+        "id": "e1366",
+        "source": 418,
+        "target": 420,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 196.76100158691406
+      },
+      {
+        "id": "e1367",
+        "source": 420,
+        "target": 322,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.53651428222656
+      },
+      {
+        "id": "e1368",
+        "source": 419,
+        "target": 403,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -384.1105651855469
+      },
+      {
+        "id": "e1369",
+        "source": 403,
+        "target": 323,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -324.8084716796875
+      },
+      {
+        "id": "e1370",
+        "source": 323,
+        "target": 420,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -361.52044677734375
+      },
+      {
+        "id": "e1371",
+        "source": 420,
+        "target": 419,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -312.5748596191406
+      },
+      {
+        "id": "e1372",
+        "source": 421,
+        "target": 419,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -390.5323791503906
+      },
+      {
+        "id": "e1373",
+        "source": 419,
+        "target": 404,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -353.9858703613281
+      },
+      {
+        "id": "e1374",
+        "source": 404,
+        "target": 422,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -397.0319519042969
+      },
+      {
+        "id": "e1375",
+        "source": 422,
+        "target": 421,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -347.255615234375
+      },
+      {
+        "id": "e1376",
+        "source": 325,
+        "target": 420,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 184.42279052734375
+      },
+      {
+        "id": "e1377",
+        "source": 420,
+        "target": 421,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 216.6497344970703
+      },
+      {
+        "id": "e1378",
+        "source": 421,
+        "target": 423,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 187.82078552246094
+      },
+      {
+        "id": "e1379",
+        "source": 423,
+        "target": 325,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 214.8092498779297
+      },
+      {
+        "id": "e1380",
+        "source": 422,
+        "target": 406,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -375.3345642089844
+      },
+      {
+        "id": "e1381",
+        "source": 406,
+        "target": 326,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -317.6925048828125
+      },
+      {
+        "id": "e1382",
+        "source": 326,
+        "target": 423,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.9497985839844
+      },
+      {
+        "id": "e1383",
+        "source": 423,
+        "target": 422,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -309.8504333496094
+      },
+      {
+        "id": "e1384",
+        "source": 424,
+        "target": 422,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -401.4304504394531
+      },
+      {
+        "id": "e1385",
+        "source": 422,
+        "target": 407,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -350.5188903808594
+      },
+      {
+        "id": "e1386",
+        "source": 407,
+        "target": 425,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -326.9801940917969
+      },
+      {
+        "id": "e1387",
+        "source": 425,
+        "target": 424,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -285.26171875
+      },
+      {
+        "id": "e1388",
+        "source": 328,
+        "target": 423,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 185.5278778076172
+      },
+      {
+        "id": "e1389",
+        "source": 423,
+        "target": 424,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 229.29518127441406
+      },
+      {
+        "id": "e1390",
+        "source": 424,
+        "target": 426,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 128.50323486328125
+      },
+      {
+        "id": "e1391",
+        "source": 426,
+        "target": 328,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 146.5185089111328
+      },
+      {
+        "id": "e1392",
+        "source": 425,
+        "target": 409,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -355.06256103515625
+      },
+      {
+        "id": "e1393",
+        "source": 409,
+        "target": 329,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -305.961181640625
+      },
+      {
+        "id": "e1394",
+        "source": 329,
+        "target": 426,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -367.93829345703125
+      },
+      {
+        "id": "e1395",
+        "source": 426,
+        "target": 425,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -297.6817932128906
+      },
+      {
+        "id": "e1396",
+        "source": 427,
+        "target": 428,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -158.86463928222656
+      },
+      {
+        "id": "e1397",
+        "source": 428,
+        "target": 410,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -351.5798034667969
+      },
+      {
+        "id": "e1398",
+        "source": 410,
+        "target": 429,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -338.33392333984375
+      },
+      {
+        "id": "e1399",
+        "source": 429,
+        "target": 427,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -301.51080322265625
+      },
+      {
+        "id": "e1400",
+        "source": 331,
+        "target": 430,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 111.14207458496094
+      },
+      {
+        "id": "e1401",
+        "source": 430,
+        "target": 427,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 64.19703674316406
+      },
+      {
+        "id": "e1402",
+        "source": 427,
+        "target": 431,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 197.77662658691406
+      },
+      {
+        "id": "e1403",
+        "source": 431,
+        "target": 331,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 152.8832244873047
+      },
+      {
+        "id": "e1404",
+        "source": 430,
+        "target": 332,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -190.6639404296875
+      },
+      {
+        "id": "e1405",
+        "source": 332,
+        "target": 413,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -308.98809814453125
+      },
+      {
+        "id": "e1406",
+        "source": 413,
+        "target": 428,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -373.57525634765625
+      },
+      {
+        "id": "e1407",
+        "source": 428,
+        "target": 430,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -140.8271026611328
+      },
+      {
+        "id": "e1408",
+        "source": 429,
+        "target": 414,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -373.3465881347656
+      },
+      {
+        "id": "e1409",
+        "source": 414,
+        "target": 333,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -304.08978271484375
+      },
+      {
+        "id": "e1410",
+        "source": 333,
+        "target": 431,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -203.4993896484375
+      },
+      {
+        "id": "e1411",
+        "source": 431,
+        "target": 429,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -175.351806640625
+      },
+      {
+        "id": "e1412",
+        "source": 432,
+        "target": 429,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -215.4828338623047
+      },
+      {
+        "id": "e1413",
+        "source": 429,
+        "target": 415,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -403.1134338378906
+      },
+      {
+        "id": "e1414",
+        "source": 415,
+        "target": 433,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -338.9307861328125
+      },
+      {
+        "id": "e1415",
+        "source": 433,
+        "target": 432,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -245.0057373046875
+      },
+      {
+        "id": "e1416",
+        "source": 336,
+        "target": 431,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 200.1289825439453
+      },
+      {
+        "id": "e1417",
+        "source": 431,
+        "target": 432,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 143.72354125976562
+      },
+      {
+        "id": "e1418",
+        "source": 432,
+        "target": 434,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 200.70770263671875
+      },
+      {
+        "id": "e1419",
+        "source": 434,
+        "target": 336,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 181.09156799316406
+      },
+      {
+        "id": "e1420",
+        "source": 433,
+        "target": 417,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -375.9460144042969
+      },
+      {
+        "id": "e1421",
+        "source": 417,
+        "target": 337,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -301.1527099609375
+      },
+      {
+        "id": "e1422",
+        "source": 337,
+        "target": 434,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -202.66616821289062
+      },
+      {
+        "id": "e1423",
+        "source": 434,
+        "target": 433,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -177.08837890625
+      },
+      {
+        "id": "e1424",
+        "source": 435,
+        "target": 433,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -224.99798583984375
+      },
+      {
+        "id": "e1425",
+        "source": 433,
+        "target": 418,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.2207946777344
+      },
+      {
+        "id": "e1426",
+        "source": 418,
+        "target": 436,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.2207946777344
+      },
+      {
+        "id": "e1427",
+        "source": 436,
+        "target": 435,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -224.99798583984375
+      },
+      {
+        "id": "e1428",
+        "source": 339,
+        "target": 434,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 201.37924194335938
+      },
+      {
+        "id": "e1429",
+        "source": 434,
+        "target": 435,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 174.64768981933594
+      },
+      {
+        "id": "e1430",
+        "source": 435,
+        "target": 437,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 174.64768981933594
+      },
+      {
+        "id": "e1431",
+        "source": 437,
+        "target": 339,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 201.37924194335938
+      },
+      {
+        "id": "e1432",
+        "source": 436,
+        "target": 420,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -375.9460144042969
+      },
+      {
+        "id": "e1433",
+        "source": 420,
+        "target": 340,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -301.1527099609375
+      },
+      {
+        "id": "e1434",
+        "source": 340,
+        "target": 437,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -202.66616821289062
+      },
+      {
+        "id": "e1435",
+        "source": 437,
+        "target": 436,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -177.08837890625
+      },
+      {
+        "id": "e1436",
+        "source": 438,
+        "target": 436,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -245.0057373046875
+      },
+      {
+        "id": "e1437",
+        "source": 436,
+        "target": 421,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -338.9307861328125
+      },
+      {
+        "id": "e1438",
+        "source": 421,
+        "target": 439,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -403.1134338378906
+      },
+      {
+        "id": "e1439",
+        "source": 439,
+        "target": 438,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -215.4828338623047
+      },
+      {
+        "id": "e1440",
+        "source": 342,
+        "target": 437,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 181.09156799316406
+      },
+      {
+        "id": "e1441",
+        "source": 437,
+        "target": 438,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 200.70770263671875
+      },
+      {
+        "id": "e1442",
+        "source": 438,
+        "target": 440,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 143.72354125976562
+      },
+      {
+        "id": "e1443",
+        "source": 440,
+        "target": 342,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 200.1289825439453
+      },
+      {
+        "id": "e1444",
+        "source": 439,
+        "target": 423,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -373.3465881347656
+      },
+      {
+        "id": "e1445",
+        "source": 423,
+        "target": 343,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -304.08978271484375
+      },
+      {
+        "id": "e1446",
+        "source": 343,
+        "target": 440,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -203.4993896484375
+      },
+      {
+        "id": "e1447",
+        "source": 440,
+        "target": 439,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -175.351806640625
+      },
+      {
+        "id": "e1448",
+        "source": 441,
+        "target": 439,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -301.51080322265625
+      },
+      {
+        "id": "e1449",
+        "source": 439,
+        "target": 424,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -338.33392333984375
+      },
+      {
+        "id": "e1450",
+        "source": 424,
+        "target": 442,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -351.5798034667969
+      },
+      {
+        "id": "e1451",
+        "source": 442,
+        "target": 441,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -158.86463928222656
+      },
+      {
+        "id": "e1452",
+        "source": 345,
+        "target": 440,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 152.8832244873047
+      },
+      {
+        "id": "e1453",
+        "source": 440,
+        "target": 441,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 197.77662658691406
+      },
+      {
+        "id": "e1454",
+        "source": 441,
+        "target": 443,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 64.19703674316406
+      },
+      {
+        "id": "e1455",
+        "source": 443,
+        "target": 345,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 111.14207458496094
+      },
+      {
+        "id": "e1456",
+        "source": 442,
+        "target": 426,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -373.57525634765625
+      },
+      {
+        "id": "e1457",
+        "source": 426,
+        "target": 346,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -308.98809814453125
+      },
+      {
+        "id": "e1458",
+        "source": 346,
+        "target": 443,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -190.6639404296875
+      },
+      {
+        "id": "e1459",
+        "source": 443,
+        "target": 442,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -140.8271026611328
+      },
+      {
+        "id": "e1460",
+        "source": 444,
+        "target": 445,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1461",
+        "source": 445,
+        "target": 348,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1462",
+        "source": 348,
+        "target": 446,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1463",
+        "source": 446,
+        "target": 444,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1464",
+        "source": 447,
+        "target": 448,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -314.3655090332031
+      },
+      {
+        "id": "e1465",
+        "source": 448,
+        "target": 444,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -292.9940185546875
+      },
+      {
+        "id": "e1466",
+        "source": 444,
+        "target": 449,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -575.192626953125
+      },
+      {
+        "id": "e1467",
+        "source": 449,
+        "target": 447,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -286.51873779296875
+      },
+      {
+        "id": "e1468",
+        "source": 351,
+        "target": 450,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 181.6524658203125
+      },
+      {
+        "id": "e1469",
+        "source": 450,
+        "target": 447,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 44.3015251159668
+      },
+      {
+        "id": "e1470",
+        "source": 447,
+        "target": 451,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 166.3050079345703
+      },
+      {
+        "id": "e1471",
+        "source": 451,
+        "target": 351,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 145.8289337158203
+      },
+      {
+        "id": "e1472",
+        "source": 450,
+        "target": 352,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -258.7574768066406
+      },
+      {
+        "id": "e1473",
+        "source": 352,
+        "target": 445,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -567.5455322265625
+      },
+      {
+        "id": "e1474",
+        "source": 445,
+        "target": 448,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -220.99209594726562
+      },
+      {
+        "id": "e1475",
+        "source": 448,
+        "target": 450,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -283.128662109375
+      },
+      {
+        "id": "e1476",
+        "source": 449,
+        "target": 446,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -130.22816467285156
+      },
+      {
+        "id": "e1477",
+        "source": 446,
+        "target": 353,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -493.98992919921875
+      },
+      {
+        "id": "e1478",
+        "source": 353,
+        "target": 451,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -256.9091796875
+      },
+      {
+        "id": "e1479",
+        "source": 451,
+        "target": 449,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -365.04693603515625
+      },
+      {
+        "id": "e1480",
+        "source": 452,
+        "target": 446,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1481",
+        "source": 446,
+        "target": 356,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1482",
+        "source": 356,
+        "target": 453,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1483",
+        "source": 453,
+        "target": 452,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1484",
+        "source": 454,
+        "target": 449,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -444.2502136230469
+      },
+      {
+        "id": "e1485",
+        "source": 449,
+        "target": 452,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -398.817138671875
+      },
+      {
+        "id": "e1486",
+        "source": 452,
+        "target": 455,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -494.9745178222656
+      },
+      {
+        "id": "e1487",
+        "source": 455,
+        "target": 454,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -338.0864562988281
+      },
+      {
+        "id": "e1488",
+        "source": 358,
+        "target": 451,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 189.42361450195312
+      },
+      {
+        "id": "e1489",
+        "source": 451,
+        "target": 454,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 99.21932983398438
+      },
+      {
+        "id": "e1490",
+        "source": 454,
+        "target": 456,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 95.99263763427734
+      },
+      {
+        "id": "e1491",
+        "source": 456,
+        "target": 358,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 137.69595336914062
+      },
+      {
+        "id": "e1492",
+        "source": 455,
+        "target": 453,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -131.62808227539062
+      },
+      {
+        "id": "e1493",
+        "source": 453,
+        "target": 359,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -478.4845886230469
+      },
+      {
+        "id": "e1494",
+        "source": 359,
+        "target": 456,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -255.28709411621094
+      },
+      {
+        "id": "e1495",
+        "source": 456,
+        "target": 455,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -350.78045654296875
+      },
+      {
+        "id": "e1496",
+        "source": 457,
+        "target": 453,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1497",
+        "source": 453,
+        "target": 361,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1498",
+        "source": 361,
+        "target": 458,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1499",
+        "source": 458,
+        "target": 457,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1500",
+        "source": 459,
+        "target": 455,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -393.7646179199219
+      },
+      {
+        "id": "e1501",
+        "source": 455,
+        "target": 457,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -442.6197204589844
+      },
+      {
+        "id": "e1502",
+        "source": 457,
+        "target": 460,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -442.6197204589844
+      },
+      {
+        "id": "e1503",
+        "source": 460,
+        "target": 459,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -393.7646179199219
+      },
+      {
+        "id": "e1504",
+        "source": 363,
+        "target": 456,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 147.4529571533203
+      },
+      {
+        "id": "e1505",
+        "source": 456,
+        "target": 459,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 89.3107681274414
+      },
+      {
+        "id": "e1506",
+        "source": 459,
+        "target": 461,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 89.3107681274414
+      },
+      {
+        "id": "e1507",
+        "source": 461,
+        "target": 363,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 147.4529571533203
+      },
+      {
+        "id": "e1508",
+        "source": 460,
+        "target": 458,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -131.62808227539062
+      },
+      {
+        "id": "e1509",
+        "source": 458,
+        "target": 364,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -478.4845886230469
+      },
+      {
+        "id": "e1510",
+        "source": 364,
+        "target": 461,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -255.28709411621094
+      },
+      {
+        "id": "e1511",
+        "source": 461,
+        "target": 460,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -350.78045654296875
+      },
+      {
+        "id": "e1512",
+        "source": 462,
+        "target": 458,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1513",
+        "source": 458,
+        "target": 366,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1514",
+        "source": 366,
+        "target": 463,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1515",
+        "source": 463,
+        "target": 462,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1516",
+        "source": 464,
+        "target": 460,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -338.0864562988281
+      },
+      {
+        "id": "e1517",
+        "source": 460,
+        "target": 462,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -494.9745178222656
+      },
+      {
+        "id": "e1518",
+        "source": 462,
+        "target": 465,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -398.817138671875
+      },
+      {
+        "id": "e1519",
+        "source": 465,
+        "target": 464,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -444.2502136230469
+      },
+      {
+        "id": "e1520",
+        "source": 368,
+        "target": 461,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 137.69595336914062
+      },
+      {
+        "id": "e1521",
+        "source": 461,
+        "target": 464,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 95.99263763427734
+      },
+      {
+        "id": "e1522",
+        "source": 464,
+        "target": 466,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 99.21932983398438
+      },
+      {
+        "id": "e1523",
+        "source": 466,
+        "target": 368,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 189.42361450195312
+      },
+      {
+        "id": "e1524",
+        "source": 465,
+        "target": 463,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -130.22816467285156
+      },
+      {
+        "id": "e1525",
+        "source": 463,
+        "target": 369,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -493.98992919921875
+      },
+      {
+        "id": "e1526",
+        "source": 369,
+        "target": 466,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -256.9091796875
+      },
+      {
+        "id": "e1527",
+        "source": 466,
+        "target": 465,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -365.04693603515625
+      },
+      {
+        "id": "e1528",
+        "source": 467,
+        "target": 463,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1529",
+        "source": 463,
+        "target": 371,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1530",
+        "source": 371,
+        "target": 468,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1531",
+        "source": 468,
+        "target": 467,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1532",
+        "source": 469,
+        "target": 465,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -286.51873779296875
+      },
+      {
+        "id": "e1533",
+        "source": 465,
+        "target": 467,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -575.192626953125
+      },
+      {
+        "id": "e1534",
+        "source": 467,
+        "target": 470,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -292.9940185546875
+      },
+      {
+        "id": "e1535",
+        "source": 470,
+        "target": 469,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -314.3655090332031
+      },
+      {
+        "id": "e1536",
+        "source": 373,
+        "target": 466,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 145.8289337158203
+      },
+      {
+        "id": "e1537",
+        "source": 466,
+        "target": 469,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 166.3050079345703
+      },
+      {
+        "id": "e1538",
+        "source": 469,
+        "target": 471,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 44.3015251159668
+      },
+      {
+        "id": "e1539",
+        "source": 471,
+        "target": 373,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 181.6524658203125
+      },
+      {
+        "id": "e1540",
+        "source": 470,
+        "target": 468,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -220.99209594726562
+      },
+      {
+        "id": "e1541",
+        "source": 468,
+        "target": 374,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -567.5455322265625
+      },
+      {
+        "id": "e1542",
+        "source": 374,
+        "target": 471,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -258.7574768066406
+      },
+      {
+        "id": "e1543",
+        "source": 471,
+        "target": 470,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -283.128662109375
+      },
+      {
+        "id": "e1544",
+        "source": 472,
+        "target": 473,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -250.0814971923828
+      },
+      {
+        "id": "e1545",
+        "source": 473,
+        "target": 447,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -241.38722229003906
+      },
+      {
+        "id": "e1546",
+        "source": 447,
+        "target": 474,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -353.5205993652344
+      },
+      {
+        "id": "e1547",
+        "source": 474,
+        "target": 472,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -320.7974548339844
+      },
+      {
+        "id": "e1548",
+        "source": 376,
+        "target": 475,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 203.0487060546875
+      },
+      {
+        "id": "e1549",
+        "source": 475,
+        "target": 472,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 32.416481018066406
+      },
+      {
+        "id": "e1550",
+        "source": 472,
+        "target": 476,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 180.49227905273438
+      },
+      {
+        "id": "e1551",
+        "source": 476,
+        "target": 376,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 184.2433319091797
+      },
+      {
+        "id": "e1552",
+        "source": 475,
+        "target": 377,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -299.2804260253906
+      },
+      {
+        "id": "e1553",
+        "source": 377,
+        "target": 450,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -333.8799743652344
+      },
+      {
+        "id": "e1554",
+        "source": 450,
+        "target": 473,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -204.31982421875
+      },
+      {
+        "id": "e1555",
+        "source": 473,
+        "target": 475,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -212.9500732421875
+      },
+      {
+        "id": "e1556",
+        "source": 474,
+        "target": 451,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -225.43670654296875
+      },
+      {
+        "id": "e1557",
+        "source": 451,
+        "target": 378,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -381.0902099609375
+      },
+      {
+        "id": "e1558",
+        "source": 378,
+        "target": 476,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -330.3759460449219
+      },
+      {
+        "id": "e1559",
+        "source": 476,
+        "target": 474,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -259.5942687988281
+      },
+      {
+        "id": "e1560",
+        "source": 477,
+        "target": 474,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -348.0825500488281
+      },
+      {
+        "id": "e1561",
+        "source": 474,
+        "target": 454,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -336.497314453125
+      },
+      {
+        "id": "e1562",
+        "source": 454,
+        "target": 478,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -402.9957580566406
+      },
+      {
+        "id": "e1563",
+        "source": 478,
+        "target": 477,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -351.6517639160156
+      },
+      {
+        "id": "e1564",
+        "source": 381,
+        "target": 476,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 245.49436950683594
+      },
+      {
+        "id": "e1565",
+        "source": 476,
+        "target": 477,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 102.02445983886719
+      },
+      {
+        "id": "e1566",
+        "source": 477,
+        "target": 479,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 129.7095947265625
+      },
+      {
+        "id": "e1567",
+        "source": 479,
+        "target": 381,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 189.0060272216797
+      },
+      {
+        "id": "e1568",
+        "source": 478,
+        "target": 456,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -216.4929962158203
+      },
+      {
+        "id": "e1569",
+        "source": 456,
+        "target": 382,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -383.1078186035156
+      },
+      {
+        "id": "e1570",
+        "source": 382,
+        "target": 479,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -339.60443115234375
+      },
+      {
+        "id": "e1571",
+        "source": 479,
+        "target": 478,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -274.1460876464844
+      },
+      {
+        "id": "e1572",
+        "source": 480,
+        "target": 478,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -369.69696044921875
+      },
+      {
+        "id": "e1573",
+        "source": 478,
+        "target": 459,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -375.5155029296875
+      },
+      {
+        "id": "e1574",
+        "source": 459,
+        "target": 481,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -375.5155029296875
+      },
+      {
+        "id": "e1575",
+        "source": 481,
+        "target": 480,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -369.69696044921875
+      },
+      {
+        "id": "e1576",
+        "source": 384,
+        "target": 479,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 207.50411987304688
+      },
+      {
+        "id": "e1577",
+        "source": 479,
+        "target": 480,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 111.53241729736328
+      },
+      {
+        "id": "e1578",
+        "source": 480,
+        "target": 482,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 111.53241729736328
+      },
+      {
+        "id": "e1579",
+        "source": 482,
+        "target": 384,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 207.50411987304688
+      },
+      {
+        "id": "e1580",
+        "source": 481,
+        "target": 461,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -216.4929962158203
+      },
+      {
+        "id": "e1581",
+        "source": 461,
+        "target": 385,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -383.1078186035156
+      },
+      {
+        "id": "e1582",
+        "source": 385,
+        "target": 482,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -339.60443115234375
+      },
+      {
+        "id": "e1583",
+        "source": 482,
+        "target": 481,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -274.1460876464844
+      },
+      {
+        "id": "e1584",
+        "source": 483,
+        "target": 481,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -351.6517639160156
+      },
+      {
+        "id": "e1585",
+        "source": 481,
+        "target": 464,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -402.9957580566406
+      },
+      {
+        "id": "e1586",
+        "source": 464,
+        "target": 484,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -336.497314453125
+      },
+      {
+        "id": "e1587",
+        "source": 484,
+        "target": 483,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -348.0825500488281
+      },
+      {
+        "id": "e1588",
+        "source": 387,
+        "target": 482,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 189.0060272216797
+      },
+      {
+        "id": "e1589",
+        "source": 482,
+        "target": 483,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 129.7095947265625
+      },
+      {
+        "id": "e1590",
+        "source": 483,
+        "target": 485,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 102.02445983886719
+      },
+      {
+        "id": "e1591",
+        "source": 485,
+        "target": 387,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 245.49436950683594
+      },
+      {
+        "id": "e1592",
+        "source": 484,
+        "target": 466,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -225.43670654296875
+      },
+      {
+        "id": "e1593",
+        "source": 466,
+        "target": 388,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -381.0902099609375
+      },
+      {
+        "id": "e1594",
+        "source": 388,
+        "target": 485,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -330.3759460449219
+      },
+      {
+        "id": "e1595",
+        "source": 485,
+        "target": 484,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -259.5942687988281
+      },
+      {
+        "id": "e1596",
+        "source": 486,
+        "target": 484,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -320.7974548339844
+      },
+      {
+        "id": "e1597",
+        "source": 484,
+        "target": 469,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -353.5205993652344
+      },
+      {
+        "id": "e1598",
+        "source": 469,
+        "target": 487,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -241.38722229003906
+      },
+      {
+        "id": "e1599",
+        "source": 487,
+        "target": 486,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -250.0814971923828
+      },
+      {
+        "id": "e1600",
+        "source": 390,
+        "target": 485,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 184.2433319091797
+      },
+      {
+        "id": "e1601",
+        "source": 485,
+        "target": 486,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 180.49227905273438
+      },
+      {
+        "id": "e1602",
+        "source": 486,
+        "target": 488,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 32.416481018066406
+      },
+      {
+        "id": "e1603",
+        "source": 488,
+        "target": 390,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 203.0487060546875
+      },
+      {
+        "id": "e1604",
+        "source": 487,
+        "target": 471,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -204.31982421875
+      },
+      {
+        "id": "e1605",
+        "source": 471,
+        "target": 391,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -333.8799743652344
+      },
+      {
+        "id": "e1606",
+        "source": 391,
+        "target": 488,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -299.2804260253906
+      },
+      {
+        "id": "e1607",
+        "source": 488,
+        "target": 487,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -212.9500732421875
+      },
+      {
+        "id": "e1608",
+        "source": 489,
+        "target": 490,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -255.54400634765625
+      },
+      {
+        "id": "e1609",
+        "source": 490,
+        "target": 472,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -249.13690185546875
+      },
+      {
+        "id": "e1610",
+        "source": 472,
+        "target": 491,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -314.42059326171875
+      },
+      {
+        "id": "e1611",
+        "source": 491,
+        "target": 489,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -341.2582092285156
+      },
+      {
+        "id": "e1612",
+        "source": 393,
+        "target": 492,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 210.07814025878906
+      },
+      {
+        "id": "e1613",
+        "source": 492,
+        "target": 489,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 35.374813079833984
+      },
+      {
+        "id": "e1614",
+        "source": 489,
+        "target": 493,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 186.21340942382812
+      },
+      {
+        "id": "e1615",
+        "source": 493,
+        "target": 393,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 193.01165771484375
+      },
+      {
+        "id": "e1616",
+        "source": 492,
+        "target": 394,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -323.2729187011719
+      },
+      {
+        "id": "e1617",
+        "source": 394,
+        "target": 475,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -286.6039123535156
+      },
+      {
+        "id": "e1618",
+        "source": 475,
+        "target": 490,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -217.84075927734375
+      },
+      {
+        "id": "e1619",
+        "source": 490,
+        "target": 492,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -209.42283630371094
+      },
+      {
+        "id": "e1620",
+        "source": 491,
+        "target": 476,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -255.65353393554688
+      },
+      {
+        "id": "e1621",
+        "source": 476,
+        "target": 395,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -330.42816162109375
+      },
+      {
+        "id": "e1622",
+        "source": 395,
+        "target": 493,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -356.5154113769531
+      },
+      {
+        "id": "e1623",
+        "source": 493,
+        "target": 491,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -237.49928283691406
+      },
+      {
+        "id": "e1624",
+        "source": 494,
+        "target": 491,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -330.9383850097656
+      },
+      {
+        "id": "e1625",
+        "source": 491,
+        "target": 477,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -340.0404968261719
+      },
+      {
+        "id": "e1626",
+        "source": 477,
+        "target": 495,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -350.43157958984375
+      },
+      {
+        "id": "e1627",
+        "source": 495,
+        "target": 494,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -372.56866455078125
+      },
+      {
+        "id": "e1628",
+        "source": 398,
+        "target": 493,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 254.7412109375
+      },
+      {
+        "id": "e1629",
+        "source": 493,
+        "target": 494,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 105.96690368652344
+      },
+      {
+        "id": "e1630",
+        "source": 494,
+        "target": 496,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 133.5289306640625
+      },
+      {
+        "id": "e1631",
+        "source": 496,
+        "target": 398,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 200.04141235351562
+      },
+      {
+        "id": "e1632",
+        "source": 495,
+        "target": 479,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -264.96295166015625
+      },
+      {
+        "id": "e1633",
+        "source": 479,
+        "target": 399,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -345.94110107421875
+      },
+      {
+        "id": "e1634",
+        "source": 399,
+        "target": 496,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -369.111572265625
+      },
+      {
+        "id": "e1635",
+        "source": 496,
+        "target": 495,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -244.203369140625
+      },
+      {
+        "id": "e1636",
+        "source": 497,
+        "target": 495,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.0746154785156
+      },
+      {
+        "id": "e1637",
+        "source": 495,
+        "target": 480,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.3597106933594
+      },
+      {
+        "id": "e1638",
+        "source": 480,
+        "target": 498,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.3597106933594
+      },
+      {
+        "id": "e1639",
+        "source": 498,
+        "target": 497,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -362.0746154785156
+      },
+      {
+        "id": "e1640",
+        "source": 401,
+        "target": 496,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 218.94857788085938
+      },
+      {
+        "id": "e1641",
+        "source": 496,
+        "target": 497,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 116.04698181152344
+      },
+      {
+        "id": "e1642",
+        "source": 497,
+        "target": 499,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 116.04698181152344
+      },
+      {
+        "id": "e1643",
+        "source": 499,
+        "target": 401,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 218.94857788085938
+      },
+      {
+        "id": "e1644",
+        "source": 498,
+        "target": 482,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -264.96295166015625
+      },
+      {
+        "id": "e1645",
+        "source": 482,
+        "target": 402,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -345.94110107421875
+      },
+      {
+        "id": "e1646",
+        "source": 402,
+        "target": 499,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -369.111572265625
+      },
+      {
+        "id": "e1647",
+        "source": 499,
+        "target": 498,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -244.203369140625
+      },
+      {
+        "id": "e1648",
+        "source": 500,
+        "target": 498,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -372.56866455078125
+      },
+      {
+        "id": "e1649",
+        "source": 498,
+        "target": 483,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -350.43157958984375
+      },
+      {
+        "id": "e1650",
+        "source": 483,
+        "target": 501,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -340.0404968261719
+      },
+      {
+        "id": "e1651",
+        "source": 501,
+        "target": 500,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -330.9383850097656
+      },
+      {
+        "id": "e1652",
+        "source": 404,
+        "target": 499,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 200.04141235351562
+      },
+      {
+        "id": "e1653",
+        "source": 499,
+        "target": 500,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 133.5289306640625
+      },
+      {
+        "id": "e1654",
+        "source": 500,
+        "target": 502,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 105.96690368652344
+      },
+      {
+        "id": "e1655",
+        "source": 502,
+        "target": 404,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 254.7412109375
+      },
+      {
+        "id": "e1656",
+        "source": 501,
+        "target": 485,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -255.65353393554688
+      },
+      {
+        "id": "e1657",
+        "source": 485,
+        "target": 405,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -330.42816162109375
+      },
+      {
+        "id": "e1658",
+        "source": 405,
+        "target": 502,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -356.5154113769531
+      },
+      {
+        "id": "e1659",
+        "source": 502,
+        "target": 501,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -237.49928283691406
+      },
+      {
+        "id": "e1660",
+        "source": 503,
+        "target": 501,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -341.2582092285156
+      },
+      {
+        "id": "e1661",
+        "source": 501,
+        "target": 486,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -314.42059326171875
+      },
+      {
+        "id": "e1662",
+        "source": 486,
+        "target": 504,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -249.13690185546875
+      },
+      {
+        "id": "e1663",
+        "source": 504,
+        "target": 503,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -255.54400634765625
+      },
+      {
+        "id": "e1664",
+        "source": 407,
+        "target": 502,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 193.01165771484375
+      },
+      {
+        "id": "e1665",
+        "source": 502,
+        "target": 503,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 186.21340942382812
+      },
+      {
+        "id": "e1666",
+        "source": 503,
+        "target": 505,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 35.374813079833984
+      },
+      {
+        "id": "e1667",
+        "source": 505,
+        "target": 407,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 210.07814025878906
+      },
+      {
+        "id": "e1668",
+        "source": 504,
+        "target": 488,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -217.84075927734375
+      },
+      {
+        "id": "e1669",
+        "source": 488,
+        "target": 408,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -286.6039123535156
+      },
+      {
+        "id": "e1670",
+        "source": 408,
+        "target": 505,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -323.2729187011719
+      },
+      {
+        "id": "e1671",
+        "source": 505,
+        "target": 504,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -209.42283630371094
+      },
+      {
+        "id": "e1672",
+        "source": 506,
+        "target": 507,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -276.8791198730469
+      },
+      {
+        "id": "e1673",
+        "source": 507,
+        "target": 489,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -270.6961364746094
+      },
+      {
+        "id": "e1674",
+        "source": 489,
+        "target": 508,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -317.89007568359375
+      },
+      {
+        "id": "e1675",
+        "source": 508,
+        "target": 506,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -396.48272705078125
+      },
+      {
+        "id": "e1676",
+        "source": 410,
+        "target": 509,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 189.4701690673828
+      },
+      {
+        "id": "e1677",
+        "source": 509,
+        "target": 506,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 35.26524353027344
+      },
+      {
+        "id": "e1678",
+        "source": 506,
+        "target": 510,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 164.20742797851562
+      },
+      {
+        "id": "e1679",
+        "source": 510,
+        "target": 410,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 182.64556884765625
+      },
+      {
+        "id": "e1680",
+        "source": 509,
+        "target": 411,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -376.88519287109375
+      },
+      {
+        "id": "e1681",
+        "source": 411,
+        "target": 492,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -279.7339172363281
+      },
+      {
+        "id": "e1682",
+        "source": 492,
+        "target": 507,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -241.42416381835938
+      },
+      {
+        "id": "e1683",
+        "source": 507,
+        "target": 509,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -219.9418487548828
+      },
+      {
+        "id": "e1684",
+        "source": 508,
+        "target": 493,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -279.9124450683594
+      },
+      {
+        "id": "e1685",
+        "source": 493,
+        "target": 412,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -310.6617126464844
+      },
+      {
+        "id": "e1686",
+        "source": 412,
+        "target": 510,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -384.77264404296875
+      },
+      {
+        "id": "e1687",
+        "source": 510,
+        "target": 508,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -225.6521759033203
+      },
+      {
+        "id": "e1688",
+        "source": 511,
+        "target": 508,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -340.3307800292969
+      },
+      {
+        "id": "e1689",
+        "source": 508,
+        "target": 494,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -369.0900573730469
+      },
+      {
+        "id": "e1690",
+        "source": 494,
+        "target": 512,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -339.1669006347656
+      },
+      {
+        "id": "e1691",
+        "source": 512,
+        "target": 511,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -399.6603088378906
+      },
+      {
+        "id": "e1692",
+        "source": 415,
+        "target": 510,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 233.33139038085938
+      },
+      {
+        "id": "e1693",
+        "source": 510,
+        "target": 511,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 95.42484283447266
+      },
+      {
+        "id": "e1694",
+        "source": 511,
+        "target": 513,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 118.27772521972656
+      },
+      {
+        "id": "e1695",
+        "source": 513,
+        "target": 415,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 182.59603881835938
+      },
+      {
+        "id": "e1696",
+        "source": 512,
+        "target": 496,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -287.04473876953125
+      },
+      {
+        "id": "e1697",
+        "source": 496,
+        "target": 416,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -320.6211242675781
+      },
+      {
+        "id": "e1698",
+        "source": 416,
+        "target": 513,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -386.35736083984375
+      },
+      {
+        "id": "e1699",
+        "source": 513,
+        "target": 512,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -222.38546752929688
+      },
+      {
+        "id": "e1700",
+        "source": 514,
+        "target": 512,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -369.9008483886719
+      },
+      {
+        "id": "e1701",
+        "source": 512,
+        "target": 497,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -365.2146301269531
+      },
+      {
+        "id": "e1702",
+        "source": 497,
+        "target": 515,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -365.2146301269531
+      },
+      {
+        "id": "e1703",
+        "source": 515,
+        "target": 514,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -369.9008483886719
+      },
+      {
+        "id": "e1704",
+        "source": 418,
+        "target": 513,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 200.28053283691406
+      },
+      {
+        "id": "e1705",
+        "source": 513,
+        "target": 514,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 102.95960998535156
+      },
+      {
+        "id": "e1706",
+        "source": 514,
+        "target": 516,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 102.95960998535156
+      },
+      {
+        "id": "e1707",
+        "source": 516,
+        "target": 418,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 200.28053283691406
+      },
+      {
+        "id": "e1708",
+        "source": 515,
+        "target": 499,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -287.04473876953125
+      },
+      {
+        "id": "e1709",
+        "source": 499,
+        "target": 419,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -320.6211242675781
+      },
+      {
+        "id": "e1710",
+        "source": 419,
+        "target": 516,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -386.35736083984375
+      },
+      {
+        "id": "e1711",
+        "source": 516,
+        "target": 515,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -222.38546752929688
+      },
+      {
+        "id": "e1712",
+        "source": 517,
+        "target": 515,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -399.6603088378906
+      },
+      {
+        "id": "e1713",
+        "source": 515,
+        "target": 500,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -339.1669006347656
+      },
+      {
+        "id": "e1714",
+        "source": 500,
+        "target": 518,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -369.0900573730469
+      },
+      {
+        "id": "e1715",
+        "source": 518,
+        "target": 517,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -340.3307800292969
+      },
+      {
+        "id": "e1716",
+        "source": 421,
+        "target": 516,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 182.59603881835938
+      },
+      {
+        "id": "e1717",
+        "source": 516,
+        "target": 517,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 118.27772521972656
+      },
+      {
+        "id": "e1718",
+        "source": 517,
+        "target": 519,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 95.42484283447266
+      },
+      {
+        "id": "e1719",
+        "source": 519,
+        "target": 421,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 233.33139038085938
+      },
+      {
+        "id": "e1720",
+        "source": 518,
+        "target": 502,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -279.9124450683594
+      },
+      {
+        "id": "e1721",
+        "source": 502,
+        "target": 422,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -310.6617126464844
+      },
+      {
+        "id": "e1722",
+        "source": 422,
+        "target": 519,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -384.77264404296875
+      },
+      {
+        "id": "e1723",
+        "source": 519,
+        "target": 518,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -225.6521759033203
+      },
+      {
+        "id": "e1724",
+        "source": 520,
+        "target": 518,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -396.48272705078125
+      },
+      {
+        "id": "e1725",
+        "source": 518,
+        "target": 503,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -317.89007568359375
+      },
+      {
+        "id": "e1726",
+        "source": 503,
+        "target": 521,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -270.6961364746094
+      },
+      {
+        "id": "e1727",
+        "source": 521,
+        "target": 520,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -276.8791198730469
+      },
+      {
+        "id": "e1728",
+        "source": 424,
+        "target": 519,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 182.64556884765625
+      },
+      {
+        "id": "e1729",
+        "source": 519,
+        "target": 520,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 164.20742797851562
+      },
+      {
+        "id": "e1730",
+        "source": 520,
+        "target": 522,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 35.26524353027344
+      },
+      {
+        "id": "e1731",
+        "source": 522,
+        "target": 424,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 189.4701690673828
+      },
+      {
+        "id": "e1732",
+        "source": 521,
+        "target": 505,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -241.42416381835938
+      },
+      {
+        "id": "e1733",
+        "source": 505,
+        "target": 425,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -279.7339172363281
+      },
+      {
+        "id": "e1734",
+        "source": 425,
+        "target": 522,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -376.88519287109375
+      },
+      {
+        "id": "e1735",
+        "source": 522,
+        "target": 521,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -219.9418487548828
+      },
+      {
+        "id": "e1736",
+        "source": 523,
+        "target": 524,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -110.1958999633789
+      },
+      {
+        "id": "e1737",
+        "source": 524,
+        "target": 506,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -359.4593505859375
+      },
+      {
+        "id": "e1738",
+        "source": 506,
+        "target": 525,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -333.9443054199219
+      },
+      {
+        "id": "e1739",
+        "source": 525,
+        "target": 523,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -273.1029357910156
+      },
+      {
+        "id": "e1740",
+        "source": 427,
+        "target": 526,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 144.92771911621094
+      },
+      {
+        "id": "e1741",
+        "source": 526,
+        "target": 523,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -35.72393035888672
+      },
+      {
+        "id": "e1742",
+        "source": 523,
+        "target": 527,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 127.99420166015625
+      },
+      {
+        "id": "e1743",
+        "source": 527,
+        "target": 427,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 122.10501098632812
+      },
+      {
+        "id": "e1744",
+        "source": 526,
+        "target": 428,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -233.8688201904297
+      },
+      {
+        "id": "e1745",
+        "source": 428,
+        "target": 509,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -292.0865478515625
+      },
+      {
+        "id": "e1746",
+        "source": 509,
+        "target": 524,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -331.79852294921875
+      },
+      {
+        "id": "e1747",
+        "source": 524,
+        "target": 526,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -60.71269989013672
+      },
+      {
+        "id": "e1748",
+        "source": 525,
+        "target": 510,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -318.1784973144531
+      },
+      {
+        "id": "e1749",
+        "source": 510,
+        "target": 429,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -301.82147216796875
+      },
+      {
+        "id": "e1750",
+        "source": 429,
+        "target": 527,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -267.0370178222656
+      },
+      {
+        "id": "e1751",
+        "source": 527,
+        "target": 525,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -102.23804473876953
+      },
+      {
+        "id": "e1752",
+        "source": 528,
+        "target": 525,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -180.07997131347656
+      },
+      {
+        "id": "e1753",
+        "source": 525,
+        "target": 511,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -406.9765319824219
+      },
+      {
+        "id": "e1754",
+        "source": 511,
+        "target": 529,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -349.333251953125
+      },
+      {
+        "id": "e1755",
+        "source": 529,
+        "target": 528,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -233.24058532714844
+      },
+      {
+        "id": "e1756",
+        "source": 432,
+        "target": 527,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.76075744628906
+      },
+      {
+        "id": "e1757",
+        "source": 527,
+        "target": 528,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 34.10111618041992
+      },
+      {
+        "id": "e1758",
+        "source": 528,
+        "target": 530,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 87.09632873535156
+      },
+      {
+        "id": "e1759",
+        "source": 530,
+        "target": 432,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 146.64736938476562
+      },
+      {
+        "id": "e1760",
+        "source": 529,
+        "target": 513,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -317.9964904785156
+      },
+      {
+        "id": "e1761",
+        "source": 513,
+        "target": 433,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -300.4674377441406
+      },
+      {
+        "id": "e1762",
+        "source": 433,
+        "target": 530,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -271.845947265625
+      },
+      {
+        "id": "e1763",
+        "source": 530,
+        "target": 529,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -99.20890808105469
+      },
+      {
+        "id": "e1764",
+        "source": 531,
+        "target": 529,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -206.90562438964844
+      },
+      {
+        "id": "e1765",
+        "source": 529,
+        "target": 514,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -376.6365051269531
+      },
+      {
+        "id": "e1766",
+        "source": 514,
+        "target": 532,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -376.6365051269531
+      },
+      {
+        "id": "e1767",
+        "source": 532,
+        "target": 531,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -206.90562438964844
+      },
+      {
+        "id": "e1768",
+        "source": 435,
+        "target": 530,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 173.3158416748047
+      },
+      {
+        "id": "e1769",
+        "source": 530,
+        "target": 531,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 61.18206787109375
+      },
+      {
+        "id": "e1770",
+        "source": 531,
+        "target": 533,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 61.18206787109375
+      },
+      {
+        "id": "e1771",
+        "source": 533,
+        "target": 435,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 173.3158416748047
+      },
+      {
+        "id": "e1772",
+        "source": 532,
+        "target": 516,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -317.9964904785156
+      },
+      {
+        "id": "e1773",
+        "source": 516,
+        "target": 436,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -300.4674377441406
+      },
+      {
+        "id": "e1774",
+        "source": 436,
+        "target": 533,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -271.845947265625
+      },
+      {
+        "id": "e1775",
+        "source": 533,
+        "target": 532,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -99.20890808105469
+      },
+      {
+        "id": "e1776",
+        "source": 534,
+        "target": 532,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -233.24058532714844
+      },
+      {
+        "id": "e1777",
+        "source": 532,
+        "target": 517,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -349.333251953125
+      },
+      {
+        "id": "e1778",
+        "source": 517,
+        "target": 535,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -406.9765319824219
+      },
+      {
+        "id": "e1779",
+        "source": 535,
+        "target": 534,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -180.07997131347656
+      },
+      {
+        "id": "e1780",
+        "source": 438,
+        "target": 533,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 146.64736938476562
+      },
+      {
+        "id": "e1781",
+        "source": 533,
+        "target": 534,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 87.09632873535156
+      },
+      {
+        "id": "e1782",
+        "source": 534,
+        "target": 536,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 34.10111618041992
+      },
+      {
+        "id": "e1783",
+        "source": 536,
+        "target": 438,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 199.76075744628906
+      },
+      {
+        "id": "e1784",
+        "source": 535,
+        "target": 519,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -318.1784973144531
+      },
+      {
+        "id": "e1785",
+        "source": 519,
+        "target": 439,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -301.82147216796875
+      },
+      {
+        "id": "e1786",
+        "source": 439,
+        "target": 536,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -267.0370178222656
+      },
+      {
+        "id": "e1787",
+        "source": 536,
+        "target": 535,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -102.23804473876953
+      },
+      {
+        "id": "e1788",
+        "source": 537,
+        "target": 535,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -273.1029357910156
+      },
+      {
+        "id": "e1789",
+        "source": 535,
+        "target": 520,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -333.9443054199219
+      },
+      {
+        "id": "e1790",
+        "source": 520,
+        "target": 538,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -359.4593505859375
+      },
+      {
+        "id": "e1791",
+        "source": 538,
+        "target": 537,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -110.1958999633789
+      },
+      {
+        "id": "e1792",
+        "source": 441,
+        "target": 536,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 122.10501098632812
+      },
+      {
+        "id": "e1793",
+        "source": 536,
+        "target": 537,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 127.99420166015625
+      },
+      {
+        "id": "e1794",
+        "source": 537,
+        "target": 539,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -35.72393035888672
+      },
+      {
+        "id": "e1795",
+        "source": 539,
+        "target": 441,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 144.92771911621094
+      },
+      {
+        "id": "e1796",
+        "source": 538,
+        "target": 522,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -331.79852294921875
+      },
+      {
+        "id": "e1797",
+        "source": 522,
+        "target": 442,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -292.0865478515625
+      },
+      {
+        "id": "e1798",
+        "source": 442,
+        "target": 539,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -233.8688201904297
+      },
+      {
+        "id": "e1799",
+        "source": 539,
+        "target": 538,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": -60.71269989013672
+      }
+    ],
+    "ndofs": 3240,
+    "animation": {
+      "showDisplacement": true,
+      "exageration": 2000,
+      "speed": 3
+    },
+    "viz": {
+      "minStress": -632.7118896484376,
+      "maxStress": 280.21533203125,
+      "colorMaps": [
+        "coolwarm",
+        "YlGnBu",
+        "winter",
+        "jet"
+      ],
+      "colorMap": 0
+    },
+    "bar": false
+  }
+}
\ No newline at end of file
diff --git a/01_Code/physical_computing_interface/simulation/json/setupTest.json b/01_Code/physical_computing_interface/simulation/json/setupTest.json
new file mode 100644
index 0000000000000000000000000000000000000000..54dd5d8ce5dc3b758d5ac17c3dca6ba9a954b790
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/json/setupTest.json
@@ -0,0 +1,722 @@
+{
+  "setup": {
+    "nodes": [
+      {
+        "id": "n0",
+        "parent": "11",
+        "degrees_of_freedom": [
+          0,
+          1,
+          2,
+          3,
+          4,
+          5
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 5,
+          "y": -5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n1",
+        "parent": "11",
+        "degrees_of_freedom": [
+          6,
+          7,
+          8,
+          9,
+          10,
+          11
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 0,
+          "y": -5,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n2",
+        "parent": "11",
+        "degrees_of_freedom": [
+          12,
+          13,
+          14,
+          15,
+          16,
+          17
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": -5,
+          "y": -5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n3",
+        "parent": "11",
+        "degrees_of_freedom": [
+          18,
+          19,
+          20,
+          21,
+          22,
+          23
+        ],
+        "restrained_degrees_of_freedom": [
+          true,
+          true,
+          true,
+          true,
+          true,
+          true
+        ],
+        "position": {
+          "x": 0,
+          "y": -5,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n4",
+        "parent": "11",
+        "degrees_of_freedom": [
+          24,
+          25,
+          26,
+          27,
+          28,
+          29
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n5",
+        "parent": "11",
+        "degrees_of_freedom": [
+          30,
+          31,
+          32,
+          33,
+          34,
+          35
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 0,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n6",
+        "parent": "11",
+        "degrees_of_freedom": [
+          36,
+          37,
+          38,
+          39,
+          40,
+          41
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 5,
+          "y": 0,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n7",
+        "parent": "11",
+        "degrees_of_freedom": [
+          42,
+          43,
+          44,
+          45,
+          46,
+          47
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 5,
+          "z": 0
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n8",
+        "parent": "11",
+        "degrees_of_freedom": [
+          48,
+          49,
+          50,
+          51,
+          52,
+          53
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 5,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n9",
+        "parent": "11",
+        "degrees_of_freedom": [
+          54,
+          55,
+          56,
+          57,
+          58,
+          59
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": 0,
+          "y": 5,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n10",
+        "parent": "11",
+        "degrees_of_freedom": [
+          60,
+          61,
+          62,
+          63,
+          64,
+          65
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 0,
+          "z": -5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      },
+      {
+        "id": "n11",
+        "parent": "11",
+        "degrees_of_freedom": [
+          66,
+          67,
+          68,
+          69,
+          70,
+          71
+        ],
+        "restrained_degrees_of_freedom": [
+          false,
+          false,
+          false,
+          false,
+          false,
+          false
+        ],
+        "position": {
+          "x": -5,
+          "y": 0,
+          "z": 5
+        },
+        "force": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "displacement": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        },
+        "angle": {
+          "x": 0,
+          "y": 0,
+          "z": 0
+        }
+      }
+    ],
+    "edges": [
+      {
+        "id": "e0",
+        "source": 0,
+        "target": 1,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e1",
+        "source": 1,
+        "target": 2,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e2",
+        "source": 2,
+        "target": 3,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e3",
+        "source": 3,
+        "target": 0,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e4",
+        "source": 4,
+        "target": 5,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e5",
+        "source": 5,
+        "target": 0,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e6",
+        "source": 0,
+        "target": 6,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e7",
+        "source": 6,
+        "target": 4,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e8",
+        "source": 7,
+        "target": 8,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e9",
+        "source": 8,
+        "target": 4,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e10",
+        "source": 4,
+        "target": 9,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e11",
+        "source": 9,
+        "target": 7,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e12",
+        "source": 2,
+        "target": 10,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e13",
+        "source": 10,
+        "target": 7,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e14",
+        "source": 7,
+        "target": 11,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e15",
+        "source": 11,
+        "target": 2,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e16",
+        "source": 8,
+        "target": 10,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e17",
+        "source": 10,
+        "target": 1,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e18",
+        "source": 1,
+        "target": 5,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e19",
+        "source": 5,
+        "target": 8,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e20",
+        "source": 6,
+        "target": 3,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e21",
+        "source": 3,
+        "target": 11,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e22",
+        "source": 11,
+        "target": 9,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      },
+      {
+        "id": "e23",
+        "source": 9,
+        "target": 6,
+        "area": 1,
+        "density": 0.284,
+        "stiffness": 30000000,
+        "stress": 0
+      }
+    ],
+    "ndofs": 72,
+    "animation": {
+      "showDisplacement": true,
+      "exageration": 2000,
+      "speed": 3
+    },
+    "viz": {
+      "minStress": 0,
+      "maxStress": 0,
+      "colorMaps": [
+        "coolwarm",
+        "YlGnBu",
+        "winter",
+        "jet"
+      ],
+      "colorMap": 0
+    },
+    "bar": false
+  }
+}
\ No newline at end of file
diff --git a/01_Code/physical_computing_interface/simulation/json/write_read.json b/01_Code/physical_computing_interface/simulation/json/write_read.json
new file mode 100644
index 0000000000000000000000000000000000000000..bf70d9ab59941b0066647819f24d1b282a422c03
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/json/write_read.json
@@ -0,0 +1 @@
+{"dict":{"d3":1.0,"d1":1.0,"d2":1.0},"param2":2,"param1":1}
\ No newline at end of file
diff --git a/01_Code/physical_computing_interface/simulation/julia/counter.jl b/01_Code/physical_computing_interface/simulation/julia/counter.jl
new file mode 100644
index 0000000000000000000000000000000000000000..8cb286ce6872aa413b51c10fd9038aaedbe2d1eb
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/julia/counter.jl
@@ -0,0 +1,92 @@
+using WebIO
+# using IJulia
+using JSExpr # you may need to install this package
+
+# using Pkg
+# Pkg.add("Mux")
+
+using Mux
+
+
+# function myapp(req)
+#     return "<h1>Hello, $(req[:params][:user])!</h1>"
+# end
+
+# function username(app, req)
+#     req[:params][:user] = req[:cookies][:user]
+#     return app(req) # We could also alter the response, but don't want to here
+# end
+
+# username(myapp, req)
+
+# mux(username, myapp)
+
+# @app test = (
+#   Mux.defaults,
+#   page(respond("<h1>Hello World!</h1>")),
+#   page("/about", probabilty(0.1, respond("<h1>Boo!</h1>")),respond("<h1>About Me</h1>")),
+#   page("/user/:user", req -> "<h1>Hello, $(req[:params][:user])!</h1>"),Mux.notfound())
+
+# serve(test)
+
+
+function counter(start=0)
+    println("sshshs")
+    scope = Scope()
+
+    # updates to this update the UI
+    count = Observable(scope, "count", start)
+
+    onjs(count, # listen on JavaScript
+         JSExpr.@js x->this.dom.querySelector("#count").textContent = x)
+
+    on(count) do n # listen on Julia
+        println(n > 0 ? "+"^n : "-"^abs(n))
+    end
+
+    println("sjsjsjs")
+
+    btn(label, d) = dom"button"(
+        label,
+        events=Dict(
+            "click" => JSExpr.@js () -> $count[] = $count[] + $d
+        )
+    )
+
+    println("sss")
+
+    scope.dom = dom"div"(
+        btn("increment", 1),
+        btn("decrement", -1),
+        dom"div#count"(string(count[])),
+    )
+
+    println("sjsjs")
+
+    scope
+end
+
+# Display in whatever frontend is avalaible
+function main()
+    if @isdefined(IJulia) || @isdefined(Juno)
+        println("hersssee")
+        return counter(1)
+    elseif @isdefined(Blink)
+        println("heffggree")
+        win = Window()
+        body!(win, counter(1))
+    elseif @isdefined(Mux)
+        println("herwwwee")
+        @sync webio_serve(page("/", req -> counter(1)), 8000)
+    else
+        println("hersssswwwee")
+        error("do one of using Mux, using Blink before running the
+               example, or run it from within IJulia or Juno")
+    end
+end
+
+main()
+
+while true;sleep(1);end
+
+
diff --git a/01_Code/physical_computing_interface/simulation/julia/p5.jl b/01_Code/physical_computing_interface/simulation/julia/p5.jl
new file mode 100644
index 0000000000000000000000000000000000000000..6fc042a2a11350b23a23d0eaa954f33a82e74b97
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/julia/p5.jl
@@ -0,0 +1,95 @@
+# using WebIO
+# using JSExpr
+# # using Mux
+
+# # function myapp(req)
+# #     return node(:p, "Hello, Mux!")
+# # end
+
+# # webio_serve(page("/", req -> myapp(req)),8000)
+
+# function hue_app()
+#     scope = Scope()
+#     import!(scope, ["//cdnjs.cloudflare.com/ajax/libs/p5.js/0.5.7/p5.js"])
+
+#     # Note: we explicitly qualify @js, @var, and @new with the JSExpr module
+#     # because Blink.jl exports macros with the same name.
+#     sketch = JSExpr.@js function (p5)
+#         JSExpr.@var s = function(p)
+#             JSExpr.@var barWidth = 20
+#             JSExpr.@var lastBar = -1
+
+#             p.setup = function ()
+#                p.createCanvas(720, 400)
+#                p.colorMode(p.HSB, p.height, p.height, p.height)
+#                p.noStroke()
+#                p.background(0)
+#             end
+
+#             p.draw = function ()
+#                 JSExpr.@var whichBar = p.mouseX / barWidth
+#                 JSExpr.@var barX = whichBar * barWidth;
+#                 if whichBar != lastBar
+#                    p.fill(p.mouseY, p.height, p.height)
+#                    p.rect(barX, 0, barWidth, p.height)
+#                    lastBar = whichBar
+#                end
+#             end
+#         end
+#         this.dom.querySelector("#p5container").innerText = "";
+#         JSExpr.@new p5(s, "p5container");
+#     end
+#     onimport(scope, sketch)
+
+#     scope.dom = dom"div#p5container"("Loading p5...")
+
+#     scope
+# end
+
+
+
+# while true;sleep(1);end
+
+using WebSockets, WebIO
+using WebIO, JSExpr
+using Mux
+function hue_app()
+    # import a javascript library
+    w = Scope(imports=["//cdnjs.cloudflare.com/ajax/libs/p5.js/0.5.11/p5.js"])
+    # Define a Julia function with the @js macro, that will get translated to javascript
+    onimport(w, @js function (p5)
+        function sketch(s)
+            s.setup = () -> s.createCanvas(640, 200)
+
+            s.draw = function ()
+            if s.mouseIsPressed
+                s.fill(0); s.stroke(255)
+            else
+                s.fill(255); s.stroke(0)
+            end
+            s.ellipse(s.mouseX, s.mouseY, 20, 20)
+            end
+        end
+        @new p5(sketch, this.dom.querySelector("#container"))
+    end)
+
+    w(dom"div#container"())
+end
+
+# Display in whatever frontend is avalaible
+function main()
+    if @isdefined(IJulia) || @isdefined(Juno)
+        return hue_app()
+    elseif @isdefined(Blink)
+        win = Window()
+        body!(win, hue_app())
+        win
+    elseif @isdefined(Mux)
+        @sync webio_serve(page("/", req -> hue_app()), 9000)
+    else
+        error("do one of using Mux, using Blink before running the
+               example, or run it from within IJulia or Juno")
+    end
+end
+
+main()
\ No newline at end of file
diff --git a/01_Code/physical_computing_interface/simulation/julia/readwrite.jl b/01_Code/physical_computing_interface/simulation/julia/readwrite.jl
new file mode 100644
index 0000000000000000000000000000000000000000..d4057b967494be944dbe72746be603ba57307add
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/julia/readwrite.jl
@@ -0,0 +1,34 @@
+import JSON
+###################
+### Write data ####
+###################
+# dictionary to write
+dict1 = Dict("param1" => 1, "param2" => 2,
+            "dict" => Dict("d1"=>1.,"d2"=>1.,"d3"=>1.))
+            
+# pass data as a json string (how it shall be displayed in a file)
+stringdata = JSON.json(dict1)
+
+# write the file with the stringdata variable information
+open("../json/write_read.json", "w") do f
+        write(f, stringdata)
+     end
+
+###################
+### Read data #####
+###################
+# create variable to write the information
+dict2 = Dict()
+open("../json/setup.json", "r") do f
+    global dict2
+    dicttxt = String(read(f))  # file information to string
+    dict2=JSON.parse(dicttxt)  # parse and transform data
+end
+
+# print both dictionaries
+# println(dict1)
+# println(dict1["dict"]["d3"])
+# println(dict2)
+
+
+println(dict2["setup"]["viz"]["minStress"])
\ No newline at end of file
diff --git a/01_Code/physical_computing_interface/simulation/lib/DragControls.js b/01_Code/physical_computing_interface/simulation/lib/DragControls.js
new file mode 100644
index 0000000000000000000000000000000000000000..26cb43895746a448b85deacce33aa61d936a7933
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/lib/DragControls.js
@@ -0,0 +1,250 @@
+/**
+ * @author zz85 / https://github.com/zz85
+ * @author mrdoob / http://mrdoob.com
+ * Running this will allow you to drag three.js objects around the screen.
+ */
+
+THREE.DragControls = function ( _objects, _camera, _domElement ) {
+
+	var _plane = new THREE.Plane();
+	var _raycaster = new THREE.Raycaster();
+
+	var _mouse = new THREE.Vector2();
+	var _offset = new THREE.Vector3();
+	var _intersection = new THREE.Vector3();
+	var _worldPosition = new THREE.Vector3();
+	var _inverseMatrix = new THREE.Matrix4();
+
+	var _selected = null, _hovered = null;
+
+	//
+
+	var scope = this;
+
+	function activate() {
+
+		_domElement.addEventListener( 'mousemove', onDocumentMouseMove, false );
+		_domElement.addEventListener( 'mousedown', onDocumentMouseDown, false );
+		_domElement.addEventListener( 'mouseup', onDocumentMouseCancel, false );
+		_domElement.addEventListener( 'mouseleave', onDocumentMouseCancel, false );
+		_domElement.addEventListener( 'touchmove', onDocumentTouchMove, false );
+		_domElement.addEventListener( 'touchstart', onDocumentTouchStart, false );
+		_domElement.addEventListener( 'touchend', onDocumentTouchEnd, false );
+
+	}
+
+	function deactivate() {
+
+		_domElement.removeEventListener( 'mousemove', onDocumentMouseMove, false );
+		_domElement.removeEventListener( 'mousedown', onDocumentMouseDown, false );
+		_domElement.removeEventListener( 'mouseup', onDocumentMouseCancel, false );
+		_domElement.removeEventListener( 'mouseleave', onDocumentMouseCancel, false );
+		_domElement.removeEventListener( 'touchmove', onDocumentTouchMove, false );
+		_domElement.removeEventListener( 'touchstart', onDocumentTouchStart, false );
+		_domElement.removeEventListener( 'touchend', onDocumentTouchEnd, false );
+
+	}
+
+	function dispose() {
+
+		deactivate();
+
+	}
+
+	function onDocumentMouseMove( event ) {
+
+		event.preventDefault();
+
+		var rect = _domElement.getBoundingClientRect();
+
+		_mouse.x = ( ( event.clientX - rect.left ) / rect.width ) * 2 - 1;
+		_mouse.y = - ( ( event.clientY - rect.top ) / rect.height ) * 2 + 1;
+
+		_raycaster.setFromCamera( _mouse, _camera );
+
+		if ( _selected && scope.enabled ) {
+
+			if ( _raycaster.ray.intersectPlane( _plane, _intersection ) ) {
+
+				_selected.position.copy( _intersection.sub( _offset ).applyMatrix4( _inverseMatrix ) );
+
+			}
+
+			scope.dispatchEvent( { type: 'drag', object: _selected } );
+
+			return;
+
+		}
+
+		_raycaster.setFromCamera( _mouse, _camera );
+
+		var intersects = _raycaster.intersectObjects( _objects, true );
+
+		if ( intersects.length > 0 ) {
+
+			var object = intersects[ 0 ].object;
+
+			_plane.setFromNormalAndCoplanarPoint( _camera.getWorldDirection( _plane.normal ), _worldPosition.setFromMatrixPosition( object.matrixWorld ) );
+
+			if ( _hovered !== object ) {
+
+				scope.dispatchEvent( { type: 'hoveron', object: object } );
+
+				_domElement.style.cursor = 'pointer';
+				_hovered = object;
+
+			}
+
+		} else {
+
+			if ( _hovered !== null ) {
+
+				scope.dispatchEvent( { type: 'hoveroff', object: _hovered } );
+
+				_domElement.style.cursor = 'auto';
+				_hovered = null;
+
+			}
+
+		}
+
+	}
+
+	function onDocumentMouseDown( event ) {
+
+		event.preventDefault();
+
+		_raycaster.setFromCamera( _mouse, _camera );
+
+		var intersects = _raycaster.intersectObjects( _objects, true );
+
+		if ( intersects.length > 0 ) {
+
+			_selected = intersects[ 0 ].object;
+
+			if ( _raycaster.ray.intersectPlane( _plane, _intersection ) ) {
+
+				_inverseMatrix.getInverse( _selected.parent.matrixWorld );
+				_offset.copy( _intersection ).sub( _worldPosition.setFromMatrixPosition( _selected.matrixWorld ) );
+
+			}
+
+			_domElement.style.cursor = 'move';
+
+			scope.dispatchEvent( { type: 'dragstart', object: _selected } );
+
+		}
+
+
+	}
+
+	function onDocumentMouseCancel( event ) {
+
+		event.preventDefault();
+
+		if ( _selected ) {
+
+			scope.dispatchEvent( { type: 'dragend', object: _selected } );
+
+			_selected = null;
+
+		}
+
+		_domElement.style.cursor = _hovered ? 'pointer' : 'auto';
+
+	}
+
+	function onDocumentTouchMove( event ) {
+
+		event.preventDefault();
+		event = event.changedTouches[ 0 ];
+
+		var rect = _domElement.getBoundingClientRect();
+
+		_mouse.x = ( ( event.clientX - rect.left ) / rect.width ) * 2 - 1;
+		_mouse.y = - ( ( event.clientY - rect.top ) / rect.height ) * 2 + 1;
+
+		_raycaster.setFromCamera( _mouse, _camera );
+
+		if ( _selected && scope.enabled ) {
+
+			if ( _raycaster.ray.intersectPlane( _plane, _intersection ) ) {
+
+				_selected.position.copy( _intersection.sub( _offset ).applyMatrix4( _inverseMatrix ) );
+
+			}
+
+			scope.dispatchEvent( { type: 'drag', object: _selected } );
+
+			return;
+
+		}
+
+	}
+
+	function onDocumentTouchStart( event ) {
+
+		event.preventDefault();
+		event = event.changedTouches[ 0 ];
+
+		var rect = _domElement.getBoundingClientRect();
+
+		_mouse.x = ( ( event.clientX - rect.left ) / rect.width ) * 2 - 1;
+		_mouse.y = - ( ( event.clientY - rect.top ) / rect.height ) * 2 + 1;
+
+		_raycaster.setFromCamera( _mouse, _camera );
+
+		var intersects = _raycaster.intersectObjects( _objects, true );
+
+		if ( intersects.length > 0 ) {
+
+			_selected = intersects[ 0 ].object;
+
+			_plane.setFromNormalAndCoplanarPoint( _camera.getWorldDirection( _plane.normal ), _worldPosition.setFromMatrixPosition( _selected.matrixWorld ) );
+
+			if ( _raycaster.ray.intersectPlane( _plane, _intersection ) ) {
+
+				_inverseMatrix.getInverse( _selected.parent.matrixWorld );
+				_offset.copy( _intersection ).sub( _worldPosition.setFromMatrixPosition( _selected.matrixWorld ) );
+
+			}
+
+			_domElement.style.cursor = 'move';
+
+			scope.dispatchEvent( { type: 'dragstart', object: _selected } );
+
+		}
+
+
+	}
+
+	function onDocumentTouchEnd( event ) {
+
+		event.preventDefault();
+
+		if ( _selected ) {
+
+			scope.dispatchEvent( { type: 'dragend', object: _selected } );
+
+			_selected = null;
+
+		}
+
+		_domElement.style.cursor = 'auto';
+
+	}
+
+	activate();
+
+	// API
+
+	this.enabled = true;
+
+	this.activate = activate;
+	this.deactivate = deactivate;
+	this.dispose = dispose;
+
+};
+
+THREE.DragControls.prototype = Object.create( THREE.EventDispatcher.prototype );
+THREE.DragControls.prototype.constructor = THREE.DragControls;
diff --git a/01_Code/physical_computing_interface/simulation/lib/GeometryUtils.js b/01_Code/physical_computing_interface/simulation/lib/GeometryUtils.js
new file mode 100644
index 0000000000000000000000000000000000000000..d16426fc17736eb2d283556130919387b62e3842
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/lib/GeometryUtils.js
@@ -0,0 +1,448 @@
+/**
+ * @author mrdoob / http://mrdoob.com/
+ * @author alteredq / http://alteredqualia.com/
+ */
+
+THREE.GeometryUtils = {
+
+	// Merge two geometries or geometry and geometry from object (using object's transform)
+
+	merge: function ( geometry1, geometry2, materialIndexOffset ) {
+
+		console.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 );
+
+	},
+
+	// Get random point in triangle (via barycentric coordinates)
+	// 	(uniform distribution)
+	// 	http://www.cgafaq.info/wiki/Random_Point_In_Triangle
+
+	randomPointInTriangle: function () {
+
+		var vector = new THREE.Vector3();
+
+		return function ( vectorA, vectorB, vectorC ) {
+
+			var point = new THREE.Vector3();
+
+			var a = Math.random();
+			var b = Math.random();
+
+			if ( ( a + b ) > 1 ) {
+
+				a = 1 - a;
+				b = 1 - b;
+
+			}
+
+			var c = 1 - a - b;
+
+			point.copy( vectorA );
+			point.multiplyScalar( a );
+
+			vector.copy( vectorB );
+			vector.multiplyScalar( b );
+
+			point.add( vector );
+
+			vector.copy( vectorC );
+			vector.multiplyScalar( c );
+
+			point.add( vector );
+
+			return point;
+
+		};
+
+	}(),
+
+	// Get random point in face (triangle)
+	// (uniform distribution)
+
+	randomPointInFace: function ( face, geometry ) {
+
+		var vA, vB, vC;
+
+		vA = geometry.vertices[ face.a ];
+		vB = geometry.vertices[ face.b ];
+		vC = geometry.vertices[ face.c ];
+
+		return THREE.GeometryUtils.randomPointInTriangle( vA, vB, vC );
+
+	},
+
+	// Get uniformly distributed random points in mesh
+	// 	- create array with cumulative sums of face areas
+	//  - pick random number from 0 to total area
+	//  - find corresponding place in area array by binary search
+	//	- get random point in face
+
+	randomPointsInGeometry: function ( geometry, n ) {
+
+		var face, i,
+			faces = geometry.faces,
+			vertices = geometry.vertices,
+			il = faces.length,
+			totalArea = 0,
+			cumulativeAreas = [],
+			vA, vB, vC;
+
+		// precompute face areas
+
+		for ( i = 0; i < il; i ++ ) {
+
+			face = faces[ i ];
+
+			vA = vertices[ face.a ];
+			vB = vertices[ face.b ];
+			vC = vertices[ face.c ];
+
+			face._area = THREE.GeometryUtils.triangleArea( vA, vB, vC );
+
+			totalArea += face._area;
+
+			cumulativeAreas[ i ] = totalArea;
+
+		}
+
+		// binary search cumulative areas array
+
+		function binarySearchIndices( value ) {
+
+			function binarySearch( start, end ) {
+
+				// return closest larger index
+				// if exact number is not found
+
+				if ( end < start )
+					return start;
+
+				var mid = start + Math.floor( ( end - start ) / 2 );
+
+				if ( cumulativeAreas[ mid ] > value ) {
+
+					return binarySearch( start, mid - 1 );
+
+				} else if ( cumulativeAreas[ mid ] < value ) {
+
+					return binarySearch( mid + 1, end );
+
+				} else {
+
+					return mid;
+
+				}
+
+			}
+
+			var result = binarySearch( 0, cumulativeAreas.length - 1 );
+			return result;
+
+		}
+
+		// pick random face weighted by face area
+
+		var r, index,
+			result = [];
+
+		var stats = {};
+
+		for ( i = 0; i < n; i ++ ) {
+
+			r = Math.random() * totalArea;
+
+			index = binarySearchIndices( r );
+
+			result[ i ] = THREE.GeometryUtils.randomPointInFace( faces[ index ], geometry );
+
+			if ( ! stats[ index ] ) {
+
+				stats[ index ] = 1;
+
+			} else {
+
+				stats[ index ] += 1;
+
+			}
+
+		}
+
+		return result;
+
+	},
+
+	randomPointsInBufferGeometry: function ( geometry, n ) {
+
+		var i,
+			vertices = geometry.attributes.position.array,
+			totalArea = 0,
+			cumulativeAreas = [],
+			vA, vB, vC;
+
+		// precompute face areas
+		vA = new THREE.Vector3();
+		vB = new THREE.Vector3();
+		vC = new THREE.Vector3();
+
+		// geometry._areas = [];
+		var il = vertices.length / 9;
+
+		for ( i = 0; i < il; i ++ ) {
+
+			vA.set( vertices[ i * 9 + 0 ], vertices[ i * 9 + 1 ], vertices[ i * 9 + 2 ] );
+			vB.set( vertices[ i * 9 + 3 ], vertices[ i * 9 + 4 ], vertices[ i * 9 + 5 ] );
+			vC.set( vertices[ i * 9 + 6 ], vertices[ i * 9 + 7 ], vertices[ i * 9 + 8 ] );
+
+			totalArea += THREE.GeometryUtils.triangleArea( vA, vB, vC );
+
+			cumulativeAreas.push( totalArea );
+
+		}
+
+		// binary search cumulative areas array
+
+		function binarySearchIndices( value ) {
+
+			function binarySearch( start, end ) {
+
+				// return closest larger index
+				// if exact number is not found
+
+				if ( end < start )
+					return start;
+
+				var mid = start + Math.floor( ( end - start ) / 2 );
+
+				if ( cumulativeAreas[ mid ] > value ) {
+
+					return binarySearch( start, mid - 1 );
+
+				} else if ( cumulativeAreas[ mid ] < value ) {
+
+					return binarySearch( mid + 1, end );
+
+				} else {
+
+					return mid;
+
+				}
+
+			}
+
+			var result = binarySearch( 0, cumulativeAreas.length - 1 );
+			return result;
+
+		}
+
+		// pick random face weighted by face area
+
+		var r, index,
+			result = [];
+
+		for ( i = 0; i < n; i ++ ) {
+
+			r = Math.random() * totalArea;
+
+			index = binarySearchIndices( r );
+
+			// result[ i ] = THREE.GeometryUtils.randomPointInFace( faces[ index ], geometry, true );
+			vA.set( vertices[ index * 9 + 0 ], vertices[ index * 9 + 1 ], vertices[ index * 9 + 2 ] );
+			vB.set( vertices[ index * 9 + 3 ], vertices[ index * 9 + 4 ], vertices[ index * 9 + 5 ] );
+			vC.set( vertices[ index * 9 + 6 ], vertices[ index * 9 + 7 ], vertices[ index * 9 + 8 ] );
+			result[ i ] = THREE.GeometryUtils.randomPointInTriangle( vA, vB, vC );
+
+		}
+
+		return result;
+
+	},
+
+	// Get triangle area (half of parallelogram)
+	// http://mathworld.wolfram.com/TriangleArea.html
+
+	triangleArea: function () {
+
+		var vector1 = new THREE.Vector3();
+		var vector2 = new THREE.Vector3();
+
+		return function ( vectorA, vectorB, vectorC ) {
+
+			vector1.subVectors( vectorB, vectorA );
+			vector2.subVectors( vectorC, vectorA );
+			vector1.cross( vector2 );
+
+			return 0.5 * vector1.length();
+
+		};
+
+	}(),
+
+	center: function ( geometry ) {
+
+		console.warn( 'THREE.GeometryUtils: .center() has been moved to Geometry. Use geometry.center() instead.' );
+		return geometry.center();
+
+	},
+
+	/**
+	 * Generates 2D-Coordinates in a very fast way.
+	 *
+	 * @author Dylan Grafmyre
+	 *
+	 * Based on work by:
+	 * @author Thomas Diewald
+	 * @link http://www.openprocessing.org/sketch/15493
+	 *
+	 * @param center     Center of Hilbert curve.
+	 * @param size       Total width of Hilbert curve.
+	 * @param iterations Number of subdivisions.
+	 * @param v0         Corner index -X, -Z.
+	 * @param v1         Corner index -X, +Z.
+	 * @param v2         Corner index +X, +Z.
+	 * @param v3         Corner index +X, -Z.
+	 */
+	hilbert2D: function ( center, size, iterations, v0, v1, v2, v3 ) {
+
+		// Default Vars
+		var center = center !== undefined ? center : new THREE.Vector3( 0, 0, 0 ),
+			size = size !== undefined ? size : 10,
+			half = size / 2,
+			iterations = iterations !== undefined ? iterations : 1,
+			v0 = v0 !== undefined ? v0 : 0,
+			v1 = v1 !== undefined ? v1 : 1,
+			v2 = v2 !== undefined ? v2 : 2,
+			v3 = v3 !== undefined ? v3 : 3
+		;
+
+		var vec_s = [
+			new THREE.Vector3( center.x - half, center.y, center.z - half ),
+			new THREE.Vector3( center.x - half, center.y, center.z + half ),
+			new THREE.Vector3( center.x + half, center.y, center.z + half ),
+			new THREE.Vector3( center.x + half, center.y, center.z - half )
+		];
+
+		var vec = [
+			vec_s[ v0 ],
+			vec_s[ v1 ],
+			vec_s[ v2 ],
+			vec_s[ v3 ]
+		];
+
+		// Recurse iterations
+		if ( 0 <= -- iterations ) {
+
+			var tmp = [];
+
+			Array.prototype.push.apply( tmp, THREE.GeometryUtils.hilbert2D( vec[ 0 ], half, iterations, v0, v3, v2, v1 ) );
+			Array.prototype.push.apply( tmp, THREE.GeometryUtils.hilbert2D( vec[ 1 ], half, iterations, v0, v1, v2, v3 ) );
+			Array.prototype.push.apply( tmp, THREE.GeometryUtils.hilbert2D( vec[ 2 ], half, iterations, v0, v1, v2, v3 ) );
+			Array.prototype.push.apply( tmp, THREE.GeometryUtils.hilbert2D( vec[ 3 ], half, iterations, v2, v1, v0, v3 ) );
+
+			// Return recursive call
+			return tmp;
+
+		}
+
+		// Return complete Hilbert Curve.
+		return vec;
+
+	},
+
+	/**
+	 * Generates 3D-Coordinates in a very fast way.
+	 *
+	 * @author Dylan Grafmyre
+	 *
+	 * Based on work by:
+	 * @author Thomas Diewald
+	 * @link http://www.openprocessing.org/visuals/?visualID=15599
+	 *
+	 * @param center     Center of Hilbert curve.
+	 * @param size       Total width of Hilbert curve.
+	 * @param iterations Number of subdivisions.
+	 * @param v0         Corner index -X, +Y, -Z.
+	 * @param v1         Corner index -X, +Y, +Z.
+	 * @param v2         Corner index -X, -Y, +Z.
+	 * @param v3         Corner index -X, -Y, -Z.
+	 * @param v4         Corner index +X, -Y, -Z.
+	 * @param v5         Corner index +X, -Y, +Z.
+	 * @param v6         Corner index +X, +Y, +Z.
+	 * @param v7         Corner index +X, +Y, -Z.
+	 */
+	hilbert3D: function ( center, size, iterations, v0, v1, v2, v3, v4, v5, v6, v7 ) {
+
+		// Default Vars
+		var center = center !== undefined ? center : new THREE.Vector3( 0, 0, 0 ),
+			size = size !== undefined ? size : 10,
+			half = size / 2,
+			iterations = iterations !== undefined ? iterations : 1,
+			v0 = v0 !== undefined ? v0 : 0,
+			v1 = v1 !== undefined ? v1 : 1,
+			v2 = v2 !== undefined ? v2 : 2,
+			v3 = v3 !== undefined ? v3 : 3,
+			v4 = v4 !== undefined ? v4 : 4,
+			v5 = v5 !== undefined ? v5 : 5,
+			v6 = v6 !== undefined ? v6 : 6,
+			v7 = v7 !== undefined ? v7 : 7
+		;
+
+		var vec_s = [
+			new THREE.Vector3( center.x - half, center.y + half, center.z - half ),
+			new THREE.Vector3( center.x - half, center.y + half, center.z + half ),
+			new THREE.Vector3( center.x - half, center.y - half, center.z + half ),
+			new THREE.Vector3( center.x - half, center.y - half, center.z - half ),
+			new THREE.Vector3( center.x + half, center.y - half, center.z - half ),
+			new THREE.Vector3( center.x + half, center.y - half, center.z + half ),
+			new THREE.Vector3( center.x + half, center.y + half, center.z + half ),
+			new THREE.Vector3( center.x + half, center.y + half, center.z - half )
+		];
+
+		var vec = [
+			vec_s[ v0 ],
+			vec_s[ v1 ],
+			vec_s[ v2 ],
+			vec_s[ v3 ],
+			vec_s[ v4 ],
+			vec_s[ v5 ],
+			vec_s[ v6 ],
+			vec_s[ v7 ]
+		];
+
+		// Recurse iterations
+		if ( -- iterations >= 0 ) {
+
+			var tmp = [];
+
+			Array.prototype.push.apply( tmp, THREE.GeometryUtils.hilbert3D( vec[ 0 ], half, iterations, v0, v3, v4, v7, v6, v5, v2, v1 ) );
+			Array.prototype.push.apply( tmp, THREE.GeometryUtils.hilbert3D( vec[ 1 ], half, iterations, v0, v7, v6, v1, v2, v5, v4, v3 ) );
+			Array.prototype.push.apply( tmp, THREE.GeometryUtils.hilbert3D( vec[ 2 ], half, iterations, v0, v7, v6, v1, v2, v5, v4, v3 ) );
+			Array.prototype.push.apply( tmp, THREE.GeometryUtils.hilbert3D( vec[ 3 ], half, iterations, v2, v3, v0, v1, v6, v7, v4, v5 ) );
+			Array.prototype.push.apply( tmp, THREE.GeometryUtils.hilbert3D( vec[ 4 ], half, iterations, v2, v3, v0, v1, v6, v7, v4, v5 ) );
+			Array.prototype.push.apply( tmp, THREE.GeometryUtils.hilbert3D( vec[ 5 ], half, iterations, v4, v3, v2, v5, v6, v1, v0, v7 ) );
+			Array.prototype.push.apply( tmp, THREE.GeometryUtils.hilbert3D( vec[ 6 ], half, iterations, v4, v3, v2, v5, v6, v1, v0, v7 ) );
+			Array.prototype.push.apply( tmp, THREE.GeometryUtils.hilbert3D( vec[ 7 ], half, iterations, v6, v5, v2, v1, v0, v3, v4, v7 ) );
+
+			// Return recursive call
+			return tmp;
+
+		}
+
+		// Return complete Hilbert Curve.
+		return vec;
+
+	}
+
+};
diff --git a/01_Code/physical_computing_interface/simulation/lib/Line2.js b/01_Code/physical_computing_interface/simulation/lib/Line2.js
new file mode 100644
index 0000000000000000000000000000000000000000..28e0445264af8299a0bfee537c1cdcb156671808
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/lib/Line2.js
@@ -0,0 +1,23 @@
+/**
+ * @author WestLangley / http://github.com/WestLangley
+ *
+ */
+
+THREE.Line2 = function ( geometry, material ) {
+
+	THREE.LineSegments2.call( this );
+
+	this.type = 'Line2';
+
+	this.geometry = geometry !== undefined ? geometry : new THREE.LineGeometry();
+	this.material = material !== undefined ? material : new THREE.LineMaterial( { color: Math.random() * 0xffffff } );
+
+};
+
+THREE.Line2.prototype = Object.assign( Object.create( THREE.LineSegments2.prototype ), {
+
+	constructor: THREE.Line2,
+
+	isLine2: true
+
+} );
diff --git a/01_Code/physical_computing_interface/simulation/lib/LineGeometry.js b/01_Code/physical_computing_interface/simulation/lib/LineGeometry.js
new file mode 100644
index 0000000000000000000000000000000000000000..77f2cfb0a5b91a24d6423cd61b37587b510982de
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/lib/LineGeometry.js
@@ -0,0 +1,98 @@
+/**
+ * @author WestLangley / http://github.com/WestLangley
+ *
+ */
+
+THREE.LineGeometry = function () {
+
+	THREE.LineSegmentsGeometry.call( this );
+
+	this.type = 'LineGeometry';
+
+};
+
+THREE.LineGeometry.prototype = Object.assign( Object.create( THREE.LineSegmentsGeometry.prototype ), {
+
+	constructor: THREE.LineGeometry,
+
+	isLineGeometry: true,
+
+	setPositions: function ( array ) {
+
+		// converts [ x1, y1, z1,  x2, y2, z2, ... ] to pairs format
+
+		var length = array.length - 3;
+		var points = new Float32Array( 2 * length );
+
+		for ( var i = 0; i < length; i += 3 ) {
+
+			points[ 2 * i ] = array[ i ];
+			points[ 2 * i + 1 ] = array[ i + 1 ];
+			points[ 2 * i + 2 ] = array[ i + 2 ];
+
+			points[ 2 * i + 3 ] = array[ i + 3 ];
+			points[ 2 * i + 4 ] = array[ i + 4 ];
+			points[ 2 * i + 5 ] = array[ i + 5 ];
+
+		}
+
+		THREE.LineSegmentsGeometry.prototype.setPositions.call( this, points );
+
+		return this;
+
+	},
+
+	setColors: function ( array ) {
+
+		// converts [ r1, g1, b1,  r2, g2, b2, ... ] to pairs format
+
+		var length = array.length - 3;
+		var colors = new Float32Array( 2 * length );
+
+		for ( var i = 0; i < length; i += 3 ) {
+
+			colors[ 2 * i ] = array[ i ];
+			colors[ 2 * i + 1 ] = array[ i + 1 ];
+			colors[ 2 * i + 2 ] = array[ i + 2 ];
+
+			colors[ 2 * i + 3 ] = array[ i + 3 ];
+			colors[ 2 * i + 4 ] = array[ i + 4 ];
+			colors[ 2 * i + 5 ] = array[ i + 5 ];
+
+		}
+
+		THREE.LineSegmentsGeometry.prototype.setColors.call( this, colors );
+
+		return this;
+
+	},
+
+	fromLine: function ( line ) {
+
+		var geometry = line.geometry;
+
+		if ( geometry.isGeometry ) {
+
+			this.setPositions( geometry.vertices );
+
+		} else if ( geometry.isBufferGeometry ) {
+
+			this.setPositions( geometry.position.array ); // assumes non-indexed
+
+		}
+
+		// set colors, maybe
+
+		return this;
+
+	},
+
+	copy: function ( /* source */ ) {
+
+		// todo
+
+		return this;
+
+	}
+
+} );
diff --git a/01_Code/physical_computing_interface/simulation/lib/LineMaterial.js b/01_Code/physical_computing_interface/simulation/lib/LineMaterial.js
new file mode 100644
index 0000000000000000000000000000000000000000..308be0fa2ba99d9a9cfff63db140e4a62ae13b1d
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/lib/LineMaterial.js
@@ -0,0 +1,375 @@
+/**
+ * @author WestLangley / http://github.com/WestLangley
+ *
+ * parameters = {
+ *  color: <hex>,
+ *  linewidth: <float>,
+ *  dashed: <boolean>,
+ *  dashScale: <float>,
+ *  dashSize: <float>,
+ *  gapSize: <float>,
+ *  resolution: <Vector2>, // to be set by renderer
+ * }
+ */
+
+THREE.UniformsLib.line = {
+
+	linewidth: { value: 1 },
+	resolution: { value: new THREE.Vector2( 1, 1 ) },
+	dashScale: { value: 1 },
+	dashSize: { value: 1 },
+	gapSize: { value: 1 } // todo FIX - maybe change to totalSize
+
+};
+
+THREE.ShaderLib[ 'line' ] = {
+
+	uniforms: THREE.UniformsUtils.merge( [
+		THREE.UniformsLib.common,
+		THREE.UniformsLib.fog,
+		THREE.UniformsLib.line
+	] ),
+
+	vertexShader:
+		`
+		#include <common>
+		#include <color_pars_vertex>
+		#include <fog_pars_vertex>
+		#include <logdepthbuf_pars_vertex>
+		#include <clipping_planes_pars_vertex>
+
+		uniform float linewidth;
+		uniform vec2 resolution;
+
+		attribute vec3 instanceStart;
+		attribute vec3 instanceEnd;
+
+		attribute vec3 instanceColorStart;
+		attribute vec3 instanceColorEnd;
+
+		varying vec2 vUv;
+
+		#ifdef USE_DASH
+
+			uniform float dashScale;
+			attribute float instanceDistanceStart;
+			attribute float instanceDistanceEnd;
+			varying float vLineDistance;
+
+		#endif
+
+		void trimSegment( const in vec4 start, inout vec4 end ) {
+
+			// trim end segment so it terminates between the camera plane and the near plane
+
+			// conservative estimate of the near plane
+			float a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column
+			float b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column
+			float nearEstimate = - 0.5 * b / a;
+
+			float alpha = ( nearEstimate - start.z ) / ( end.z - start.z );
+
+			end.xyz = mix( start.xyz, end.xyz, alpha );
+
+		}
+
+		void main() {
+
+			#ifdef USE_COLOR
+
+				vColor.xyz = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd;
+
+			#endif
+
+			#ifdef USE_DASH
+
+				vLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd;
+
+			#endif
+
+			float aspect = resolution.x / resolution.y;
+
+			vUv = uv;
+
+			// camera space
+			vec4 start = modelViewMatrix * vec4( instanceStart, 1.0 );
+			vec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 );
+
+			// special case for perspective projection, and segments that terminate either in, or behind, the camera plane
+			// clearly the gpu firmware has a way of addressing this issue when projecting into ndc space
+			// but we need to perform ndc-space calculations in the shader, so we must address this issue directly
+			// perhaps there is a more elegant solution -- WestLangley
+
+			bool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column
+
+			if ( perspective ) {
+
+				if ( start.z < 0.0 && end.z >= 0.0 ) {
+
+					trimSegment( start, end );
+
+				} else if ( end.z < 0.0 && start.z >= 0.0 ) {
+
+					trimSegment( end, start );
+
+				}
+
+			}
+
+			// clip space
+			vec4 clipStart = projectionMatrix * start;
+			vec4 clipEnd = projectionMatrix * end;
+
+			// ndc space
+			vec2 ndcStart = clipStart.xy / clipStart.w;
+			vec2 ndcEnd = clipEnd.xy / clipEnd.w;
+
+			// direction
+			vec2 dir = ndcEnd - ndcStart;
+
+			// account for clip-space aspect ratio
+			dir.x *= aspect;
+			dir = normalize( dir );
+
+			// perpendicular to dir
+			vec2 offset = vec2( dir.y, - dir.x );
+
+			// undo aspect ratio adjustment
+			dir.x /= aspect;
+			offset.x /= aspect;
+
+			// sign flip
+			if ( position.x < 0.0 ) offset *= - 1.0;
+
+			// endcaps
+			if ( position.y < 0.0 ) {
+
+				offset += - dir;
+
+			} else if ( position.y > 1.0 ) {
+
+				offset += dir;
+
+			}
+
+			// adjust for linewidth
+			offset *= linewidth;
+
+			// adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ...
+			offset /= resolution.y;
+
+			// select end
+			vec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd;
+
+			// back to clip space
+			offset *= clip.w;
+
+			clip.xy += offset;
+
+			gl_Position = clip;
+
+			vec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation
+
+			#include <logdepthbuf_vertex>
+			#include <clipping_planes_vertex>
+			#include <fog_vertex>
+
+		}
+		`,
+
+	fragmentShader:
+		`
+		uniform vec3 diffuse;
+		uniform float opacity;
+
+		#ifdef USE_DASH
+
+			uniform float dashSize;
+			uniform float gapSize;
+
+		#endif
+
+		varying float vLineDistance;
+
+		#include <common>
+		#include <color_pars_fragment>
+		#include <fog_pars_fragment>
+		#include <logdepthbuf_pars_fragment>
+		#include <clipping_planes_pars_fragment>
+
+		varying vec2 vUv;
+
+		void main() {
+
+			#include <clipping_planes_fragment>
+
+			#ifdef USE_DASH
+
+				if ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps
+
+				if ( mod( vLineDistance, dashSize + gapSize ) > dashSize ) discard; // todo - FIX
+
+			#endif
+
+			if ( abs( vUv.y ) > 1.0 ) {
+
+				float a = vUv.x;
+				float b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;
+				float len2 = a * a + b * b;
+
+				if ( len2 > 1.0 ) discard;
+
+			}
+
+			vec4 diffuseColor = vec4( diffuse, opacity );
+
+			#include <logdepthbuf_fragment>
+			#include <color_fragment>
+
+			gl_FragColor = vec4( diffuseColor.rgb, diffuseColor.a );
+
+			#include <premultiplied_alpha_fragment>
+			#include <tonemapping_fragment>
+			#include <encodings_fragment>
+			#include <fog_fragment>
+
+		}
+		`
+};
+
+THREE.LineMaterial = function ( parameters ) {
+
+	THREE.ShaderMaterial.call( this, {
+
+		type: 'LineMaterial',
+
+		uniforms: THREE.UniformsUtils.clone( THREE.ShaderLib[ 'line' ].uniforms ),
+
+		vertexShader: THREE.ShaderLib[ 'line' ].vertexShader,
+		fragmentShader: THREE.ShaderLib[ 'line' ].fragmentShader
+
+	} );
+
+	this.dashed = false;
+
+	Object.defineProperties( this, {
+
+		color: {
+
+			enumerable: true,
+
+			get: function () {
+
+				return this.uniforms.diffuse.value;
+
+			},
+
+			set: function ( value ) {
+
+				this.uniforms.diffuse.value = value;
+
+			}
+
+		},
+
+		linewidth: {
+
+			enumerable: true,
+
+			get: function () {
+
+				return this.uniforms.linewidth.value;
+
+			},
+
+			set: function ( value ) {
+
+				this.uniforms.linewidth.value = value;
+
+			}
+
+		},
+
+		dashScale: {
+
+			enumerable: true,
+
+			get: function () {
+
+				return this.uniforms.dashScale.value;
+
+			},
+
+			set: function ( value ) {
+
+				this.uniforms.dashScale.value = value;
+
+			}
+
+		},
+
+		dashSize: {
+
+			enumerable: true,
+
+			get: function () {
+
+				return this.uniforms.dashSize.value;
+
+			},
+
+			set: function ( value ) {
+
+				this.uniforms.dashSize.value = value;
+
+			}
+
+		},
+
+		gapSize: {
+
+			enumerable: true,
+
+			get: function () {
+
+				return this.uniforms.gapSize.value;
+
+			},
+
+			set: function ( value ) {
+
+				this.uniforms.gapSize.value = value;
+
+			}
+
+		},
+
+		resolution: {
+
+			enumerable: true,
+
+			get: function () {
+
+				return this.uniforms.resolution.value;
+
+			},
+
+			set: function ( value ) {
+
+				this.uniforms.resolution.value.copy( value );
+
+			}
+
+		}
+
+	} );
+
+	this.setValues( parameters );
+
+};
+
+THREE.LineMaterial.prototype = Object.create( THREE.ShaderMaterial.prototype );
+THREE.LineMaterial.prototype.constructor = THREE.LineMaterial;
+
+THREE.LineMaterial.prototype.isLineMaterial = true;
+
diff --git a/01_Code/physical_computing_interface/simulation/lib/LineSegments2.js b/01_Code/physical_computing_interface/simulation/lib/LineSegments2.js
new file mode 100644
index 0000000000000000000000000000000000000000..fd17bb39bd26300ef780b0a7d9f1dd2be9503225
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/lib/LineSegments2.js
@@ -0,0 +1,57 @@
+/**
+ * @author WestLangley / http://github.com/WestLangley
+ *
+ */
+
+THREE.LineSegments2 = function ( geometry, material ) {
+
+	THREE.Mesh.call( this );
+
+	this.type = 'LineSegments2';
+
+	this.geometry = geometry !== undefined ? geometry : new THREE.LineSegmentsGeometry();
+	this.material = material !== undefined ? material : new THREE.LineMaterial( { color: Math.random() * 0xffffff } );
+
+};
+
+THREE.LineSegments2.prototype = Object.assign( Object.create( THREE.Mesh.prototype ), {
+
+	constructor: THREE.LineSegments2,
+
+	isLineSegments2: true,
+
+	computeLineDistances: ( function () { // for backwards-compatability, but could be a method of LineSegmentsGeometry...
+
+		var start = new THREE.Vector3();
+		var end = new THREE.Vector3();
+
+		return function computeLineDistances() {
+
+			var geometry = this.geometry;
+
+			var instanceStart = geometry.attributes.instanceStart;
+			var instanceEnd = geometry.attributes.instanceEnd;
+			var lineDistances = new Float32Array( 2 * instanceStart.data.count );
+
+			for ( var i = 0, j = 0, l = instanceStart.data.count; i < l; i ++, j += 2 ) {
+
+				start.fromBufferAttribute( instanceStart, i );
+				end.fromBufferAttribute( instanceEnd, i );
+
+				lineDistances[ j ] = ( j === 0 ) ? 0 : lineDistances[ j - 1 ];
+				lineDistances[ j + 1 ] = lineDistances[ j ] + start.distanceTo( end );
+
+			}
+
+			var instanceDistanceBuffer = new THREE.InstancedInterleavedBuffer( lineDistances, 2, 1 ); // d0, d1
+
+			geometry.setAttribute( 'instanceDistanceStart', new THREE.InterleavedBufferAttribute( instanceDistanceBuffer, 1, 0 ) ); // d0
+			geometry.setAttribute( 'instanceDistanceEnd', new THREE.InterleavedBufferAttribute( instanceDistanceBuffer, 1, 1 ) ); // d1
+
+			return this;
+
+		};
+
+	}() )
+
+} );
diff --git a/01_Code/physical_computing_interface/simulation/lib/LineSegmentsGeometry.js b/01_Code/physical_computing_interface/simulation/lib/LineSegmentsGeometry.js
new file mode 100644
index 0000000000000000000000000000000000000000..6ccb2f77ab6aeedf23e634e58803fbcc61eb5655
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/lib/LineSegmentsGeometry.js
@@ -0,0 +1,244 @@
+/**
+ * @author WestLangley / http://github.com/WestLangley
+ *
+ */
+
+THREE.LineSegmentsGeometry = function () {
+
+	THREE.InstancedBufferGeometry.call( this );
+
+	this.type = 'LineSegmentsGeometry';
+
+	var positions = [ - 1, 2, 0, 1, 2, 0, - 1, 1, 0, 1, 1, 0, - 1, 0, 0, 1, 0, 0, - 1, - 1, 0, 1, - 1, 0 ];
+	var uvs = [ - 1, 2, 1, 2, - 1, 1, 1, 1, - 1, - 1, 1, - 1, - 1, - 2, 1, - 2 ];
+	var index = [ 0, 2, 1, 2, 3, 1, 2, 4, 3, 4, 5, 3, 4, 6, 5, 6, 7, 5 ];
+
+	this.setIndex( index );
+	this.setAttribute( 'position', new THREE.Float32BufferAttribute( positions, 3 ) );
+	this.setAttribute( 'uv', new THREE.Float32BufferAttribute( uvs, 2 ) );
+
+};
+
+THREE.LineSegmentsGeometry.prototype = Object.assign( Object.create( THREE.InstancedBufferGeometry.prototype ), {
+
+	constructor: THREE.LineSegmentsGeometry,
+
+	isLineSegmentsGeometry: true,
+
+	applyMatrix: function ( matrix ) {
+
+		var start = this.attributes.instanceStart;
+		var end = this.attributes.instanceEnd;
+
+		if ( start !== undefined ) {
+
+			matrix.applyToBufferAttribute( start );
+
+			matrix.applyToBufferAttribute( end );
+
+			start.data.needsUpdate = true;
+
+		}
+
+		if ( this.boundingBox !== null ) {
+
+			this.computeBoundingBox();
+
+		}
+
+		if ( this.boundingSphere !== null ) {
+
+			this.computeBoundingSphere();
+
+		}
+
+		return this;
+
+	},
+
+	setPositions: function ( array ) {
+
+		var lineSegments;
+
+		if ( array instanceof Float32Array ) {
+
+			lineSegments = array;
+
+		} else if ( Array.isArray( array ) ) {
+
+			lineSegments = new Float32Array( array );
+
+		}
+
+		var instanceBuffer = new THREE.InstancedInterleavedBuffer( lineSegments, 6, 1 ); // xyz, xyz
+
+		this.setAttribute( 'instanceStart', new THREE.InterleavedBufferAttribute( instanceBuffer, 3, 0 ) ); // xyz
+		this.setAttribute( 'instanceEnd', new THREE.InterleavedBufferAttribute( instanceBuffer, 3, 3 ) ); // xyz
+
+		//
+
+		this.computeBoundingBox();
+		this.computeBoundingSphere();
+
+		return this;
+
+	},
+
+	setColors: function ( array ) {
+
+		var colors;
+
+		if ( array instanceof Float32Array ) {
+
+			colors = array;
+
+		} else if ( Array.isArray( array ) ) {
+
+			colors = new Float32Array( array );
+
+		}
+
+		var instanceColorBuffer = new THREE.InstancedInterleavedBuffer( colors, 6, 1 ); // rgb, rgb
+
+		this.setAttribute( 'instanceColorStart', new THREE.InterleavedBufferAttribute( instanceColorBuffer, 3, 0 ) ); // rgb
+		this.setAttribute( 'instanceColorEnd', new THREE.InterleavedBufferAttribute( instanceColorBuffer, 3, 3 ) ); // rgb
+
+		return this;
+
+	},
+
+	fromWireframeGeometry: function ( geometry ) {
+
+		this.setPositions( geometry.attributes.position.array );
+
+		return this;
+
+	},
+
+	fromEdgesGeometry: function ( geometry ) {
+
+		this.setPositions( geometry.attributes.position.array );
+
+		return this;
+
+	},
+
+	fromMesh: function ( mesh ) {
+
+		this.fromWireframeGeometry( new THREE.WireframeGeometry( mesh.geometry ) );
+
+		// set colors, maybe
+
+		return this;
+
+	},
+
+	fromLineSegements: function ( lineSegments ) {
+
+		var geometry = lineSegments.geometry;
+
+		if ( geometry.isGeometry ) {
+
+			this.setPositions( geometry.vertices );
+
+		} else if ( geometry.isBufferGeometry ) {
+
+			this.setPositions( geometry.position.array ); // assumes non-indexed
+
+		}
+
+		// set colors, maybe
+
+		return this;
+
+	},
+
+	computeBoundingBox: function () {
+
+		var box = new THREE.Box3();
+
+		return function computeBoundingBox() {
+
+			if ( this.boundingBox === null ) {
+
+				this.boundingBox = new THREE.Box3();
+
+			}
+
+			var start = this.attributes.instanceStart;
+			var end = this.attributes.instanceEnd;
+
+			if ( start !== undefined && end !== undefined ) {
+
+				this.boundingBox.setFromBufferAttribute( start );
+
+				box.setFromBufferAttribute( end );
+
+				this.boundingBox.union( box );
+
+			}
+
+		};
+
+	}(),
+
+	computeBoundingSphere: function () {
+
+		var vector = new THREE.Vector3();
+
+		return function computeBoundingSphere() {
+
+			if ( this.boundingSphere === null ) {
+
+				this.boundingSphere = new THREE.Sphere();
+
+			}
+
+			if ( this.boundingBox === null ) {
+
+				this.computeBoundingBox();
+
+			}
+
+			var start = this.attributes.instanceStart;
+			var end = this.attributes.instanceEnd;
+
+			if ( start !== undefined && end !== undefined ) {
+
+				var center = this.boundingSphere.center;
+
+				this.boundingBox.getCenter( center );
+
+				var maxRadiusSq = 0;
+
+				for ( var i = 0, il = start.count; i < il; i ++ ) {
+
+					vector.fromBufferAttribute( start, i );
+					maxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( vector ) );
+
+					vector.fromBufferAttribute( end, i );
+					maxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( vector ) );
+
+				}
+
+				this.boundingSphere.radius = Math.sqrt( maxRadiusSq );
+
+				if ( isNaN( this.boundingSphere.radius ) ) {
+
+					console.error( 'THREE.LineSegmentsGeometry.computeBoundingSphere(): Computed radius is NaN. The instanced position data is likely to have NaN values.', this );
+
+				}
+
+			}
+
+		};
+
+	}(),
+
+	toJSON: function () {
+
+		// todo
+
+	}
+
+} );
diff --git a/01_Code/physical_computing_interface/simulation/lib/OrbitControls.js b/01_Code/physical_computing_interface/simulation/lib/OrbitControls.js
new file mode 100644
index 0000000000000000000000000000000000000000..82a9a85c0b48b3c56e835c471dcd8763604d5a67
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/lib/OrbitControls.js
@@ -0,0 +1,1180 @@
+/**
+ * @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
+ * @author ScieCode / http://github.com/sciecode
+ */
+
+// This set of controls performs orbiting, dollying (zooming), and panning.
+// Unlike TrackballControls, it maintains the "up" direction object.up (+Y by default).
+//
+//    Orbit - left mouse / touch: one-finger move
+//    Zoom - middle mouse, or mousewheel / touch: two-finger spread or squish
+//    Pan - right mouse, or left mouse + ctrl/meta/shiftKey, or arrow keys / touch: two-finger move
+
+THREE.OrbitControls = function ( object, domElement ) {
+
+	if ( domElement === undefined ) console.warn( 'THREE.OrbitControls: The second parameter "domElement" is now mandatory.' );
+	if ( domElement === document ) console.error( 'THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.' );
+
+	this.object = object;
+	this.domElement = domElement;
+
+	// Set to false to disable this control
+	this.enabled = true;
+
+	// "target" sets the location of focus, where the object orbits around
+	this.target = new THREE.Vector3();
+
+	// How far you can dolly in and out ( PerspectiveCamera only )
+	this.minDistance = 0;
+	this.maxDistance = Infinity;
+
+	// How far you can zoom in and out ( OrthographicCamera only )
+	this.minZoom = 0;
+	this.maxZoom = Infinity;
+
+	// 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 enable damping (inertia)
+	// If damping is enabled, you must call controls.update() in your animation loop
+	this.enableDamping = false;
+	this.dampingFactor = 0.05;
+
+	// This option actually enables dollying in and out; left as "zoom" for backwards compatibility.
+	// Set to false to disable zooming
+	this.enableZoom = true;
+	this.zoomSpeed = 1.0;
+
+	// Set to false to disable rotating
+	this.enableRotate = true;
+	this.rotateSpeed = 1.0;
+
+	// Set to false to disable panning
+	this.enablePan = true;
+	this.panSpeed = 1.0;
+	this.screenSpacePanning = false; // if true, pan in screen-space
+	this.keyPanSpeed = 7.0;	// pixels moved per arrow key push
+
+	// Set to true to automatically rotate around the target
+	// If auto-rotate is enabled, you must call controls.update() in your animation loop
+	this.autoRotate = false;
+	this.autoRotateSpeed = 2.0; // 30 seconds per round when fps is 60
+
+	// Set to false to disable use of the keys
+	this.enableKeys = true;
+
+	// The four arrow keys
+	this.keys = { LEFT: 37, UP: 38, RIGHT: 39, BOTTOM: 40 };
+
+	// Mouse buttons
+	this.mouseButtons = { LEFT: THREE.MOUSE.ROTATE, MIDDLE: THREE.MOUSE.DOLLY, RIGHT: THREE.MOUSE.PAN };
+
+	// Touch fingers
+	this.touches = { ONE: THREE.TOUCH.ROTATE, TWO: THREE.TOUCH.DOLLY_PAN };
+
+	// for reset
+	this.target0 = this.target.clone();
+	this.position0 = this.object.position.clone();
+	this.zoom0 = this.object.zoom;
+
+	//
+	// public methods
+	//
+
+	this.getPolarAngle = function () {
+
+		return spherical.phi;
+
+	};
+
+	this.getAzimuthalAngle = function () {
+
+		return spherical.theta;
+
+	};
+
+	this.saveState = function () {
+
+		scope.target0.copy( scope.target );
+		scope.position0.copy( scope.object.position );
+		scope.zoom0 = scope.object.zoom;
+
+	};
+
+	this.reset = function () {
+
+		scope.target.copy( scope.target0 );
+		scope.object.position.copy( scope.position0 );
+		scope.object.zoom = scope.zoom0;
+
+		scope.object.updateProjectionMatrix();
+		scope.dispatchEvent( changeEvent );
+
+		scope.update();
+
+		state = STATE.NONE;
+
+	};
+
+	// this method is exposed, but perhaps it would be better if we can make it private...
+	this.update = function () {
+
+		var offset = new THREE.Vector3();
+
+		// 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();
+
+		var lastPosition = new THREE.Vector3();
+		var lastQuaternion = new THREE.Quaternion();
+
+		return function update() {
+
+			var position = scope.object.position;
+
+			offset.copy( position ).sub( scope.target );
+
+			// rotate offset to "y-axis-is-up" space
+			offset.applyQuaternion( quat );
+
+			// angle from z-axis around y-axis
+			spherical.setFromVector3( offset );
+
+			if ( scope.autoRotate && state === STATE.NONE ) {
+
+				rotateLeft( getAutoRotationAngle() );
+
+			}
+
+			if ( scope.enableDamping ) {
+
+				spherical.theta += sphericalDelta.theta * scope.dampingFactor;
+				spherical.phi += sphericalDelta.phi * scope.dampingFactor;
+
+			} else {
+
+				spherical.theta += sphericalDelta.theta;
+				spherical.phi += sphericalDelta.phi;
+
+			}
+
+			// restrict theta to be between desired limits
+			spherical.theta = Math.max( scope.minAzimuthAngle, Math.min( scope.maxAzimuthAngle, spherical.theta ) );
+
+			// restrict phi to be between desired limits
+			spherical.phi = Math.max( scope.minPolarAngle, Math.min( scope.maxPolarAngle, spherical.phi ) );
+
+			spherical.makeSafe();
+
+
+			spherical.radius *= scale;
+
+			// restrict radius to be between desired limits
+			spherical.radius = Math.max( scope.minDistance, Math.min( scope.maxDistance, spherical.radius ) );
+
+			// move target to panned location
+
+			if ( scope.enableDamping === true ) {
+
+				scope.target.addScaledVector( panOffset, scope.dampingFactor );
+
+			} else {
+
+				scope.target.add( panOffset );
+
+			}
+
+			offset.setFromSpherical( spherical );
+
+			// rotate offset back to "camera-up-vector-is-up" space
+			offset.applyQuaternion( quatInverse );
+
+			position.copy( scope.target ).add( offset );
+
+			scope.object.lookAt( scope.target );
+
+			if ( scope.enableDamping === true ) {
+
+				sphericalDelta.theta *= ( 1 - scope.dampingFactor );
+				sphericalDelta.phi *= ( 1 - scope.dampingFactor );
+
+				panOffset.multiplyScalar( 1 - scope.dampingFactor );
+
+			} else {
+
+				sphericalDelta.set( 0, 0, 0 );
+
+				panOffset.set( 0, 0, 0 );
+
+			}
+
+			scale = 1;
+
+			// update condition is:
+			// min(camera displacement, camera rotation in radians)^2 > EPS
+			// using small-angle approximation cos(x/2) = 1 - x^2 / 8
+
+			if ( zoomChanged ||
+				lastPosition.distanceToSquared( scope.object.position ) > EPS ||
+				8 * ( 1 - lastQuaternion.dot( scope.object.quaternion ) ) > EPS ) {
+
+				scope.dispatchEvent( changeEvent );
+
+				lastPosition.copy( scope.object.position );
+				lastQuaternion.copy( scope.object.quaternion );
+				zoomChanged = false;
+
+				return true;
+
+			}
+
+			return false;
+
+		};
+
+	}();
+
+	this.dispose = function () {
+
+		scope.domElement.removeEventListener( 'contextmenu', onContextMenu, false );
+		scope.domElement.removeEventListener( 'mousedown', onMouseDown, false );
+		scope.domElement.removeEventListener( 'wheel', onMouseWheel, false );
+
+		scope.domElement.removeEventListener( 'touchstart', onTouchStart, false );
+		scope.domElement.removeEventListener( 'touchend', onTouchEnd, false );
+		scope.domElement.removeEventListener( 'touchmove', onTouchMove, false );
+
+		document.removeEventListener( 'mousemove', onMouseMove, false );
+		document.removeEventListener( 'mouseup', onMouseUp, false );
+
+		scope.domElement.removeEventListener( 'keydown', onKeyDown, false );
+
+		//scope.dispatchEvent( { type: 'dispose' } ); // should this be added here?
+
+	};
+
+	//
+	// internals
+	//
+
+	var scope = this;
+
+	var changeEvent = { type: 'change' };
+	var startEvent = { type: 'start' };
+	var endEvent = { type: 'end' };
+
+	var STATE = {
+		NONE: - 1,
+		ROTATE: 0,
+		DOLLY: 1,
+		PAN: 2,
+		TOUCH_ROTATE: 3,
+		TOUCH_PAN: 4,
+		TOUCH_DOLLY_PAN: 5,
+		TOUCH_DOLLY_ROTATE: 6
+	};
+
+	var state = STATE.NONE;
+
+	var EPS = 0.000001;
+
+	// current position in spherical coordinates
+	var spherical = new THREE.Spherical();
+	var sphericalDelta = new THREE.Spherical();
+
+	var scale = 1;
+	var panOffset = new THREE.Vector3();
+	var zoomChanged = false;
+
+	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 dollyStart = new THREE.Vector2();
+	var dollyEnd = new THREE.Vector2();
+	var dollyDelta = new THREE.Vector2();
+
+	function getAutoRotationAngle() {
+
+		return 2 * Math.PI / 60 / 60 * scope.autoRotateSpeed;
+
+	}
+
+	function getZoomScale() {
+
+		return Math.pow( 0.95, scope.zoomSpeed );
+
+	}
+
+	function rotateLeft( angle ) {
+
+		sphericalDelta.theta -= angle;
+
+	}
+
+	function rotateUp( angle ) {
+
+		sphericalDelta.phi -= angle;
+
+	}
+
+	var panLeft = function () {
+
+		var v = new THREE.Vector3();
+
+		return function panLeft( distance, objectMatrix ) {
+
+			v.setFromMatrixColumn( objectMatrix, 0 ); // get X column of objectMatrix
+			v.multiplyScalar( - distance );
+
+			panOffset.add( v );
+
+		};
+
+	}();
+
+	var panUp = function () {
+
+		var v = new THREE.Vector3();
+
+		return function panUp( distance, objectMatrix ) {
+
+			if ( scope.screenSpacePanning === true ) {
+
+				v.setFromMatrixColumn( objectMatrix, 1 );
+
+			} else {
+
+				v.setFromMatrixColumn( objectMatrix, 0 );
+				v.crossVectors( scope.object.up, v );
+
+			}
+
+			v.multiplyScalar( distance );
+
+			panOffset.add( v );
+
+		};
+
+	}();
+
+	// deltaX and deltaY are in pixels; right and down are positive
+	var pan = function () {
+
+		var offset = new THREE.Vector3();
+
+		return function pan( deltaX, deltaY ) {
+
+			var element = scope.domElement;
+
+			if ( scope.object.isPerspectiveCamera ) {
+
+				// perspective
+				var position = scope.object.position;
+				offset.copy( position ).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 use only clientHeight here so aspect ratio does not distort speed
+				panLeft( 2 * deltaX * targetDistance / element.clientHeight, scope.object.matrix );
+				panUp( 2 * deltaY * targetDistance / element.clientHeight, scope.object.matrix );
+
+			} else if ( scope.object.isOrthographicCamera ) {
+
+				// orthographic
+				panLeft( deltaX * ( scope.object.right - scope.object.left ) / scope.object.zoom / element.clientWidth, scope.object.matrix );
+				panUp( deltaY * ( scope.object.top - scope.object.bottom ) / scope.object.zoom / element.clientHeight, scope.object.matrix );
+
+			} else {
+
+				// camera neither orthographic nor perspective
+				console.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.' );
+				scope.enablePan = false;
+
+			}
+
+		};
+
+	}();
+
+	function dollyIn( dollyScale ) {
+
+		if ( scope.object.isPerspectiveCamera ) {
+
+			scale /= dollyScale;
+
+		} else if ( scope.object.isOrthographicCamera ) {
+
+			scope.object.zoom = Math.max( scope.minZoom, Math.min( scope.maxZoom, scope.object.zoom * dollyScale ) );
+			scope.object.updateProjectionMatrix();
+			zoomChanged = true;
+
+		} else {
+
+			console.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.' );
+			scope.enableZoom = false;
+
+		}
+
+	}
+
+	function dollyOut( dollyScale ) {
+
+		if ( scope.object.isPerspectiveCamera ) {
+
+			scale *= dollyScale;
+
+		} else if ( scope.object.isOrthographicCamera ) {
+
+			scope.object.zoom = Math.max( scope.minZoom, Math.min( scope.maxZoom, scope.object.zoom / dollyScale ) );
+			scope.object.updateProjectionMatrix();
+			zoomChanged = true;
+
+		} else {
+
+			console.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.' );
+			scope.enableZoom = false;
+
+		}
+
+	}
+
+	//
+	// event callbacks - update the object state
+	//
+
+	function handleMouseDownRotate( event ) {
+
+		rotateStart.set( event.clientX, event.clientY );
+
+	}
+
+	function handleMouseDownDolly( event ) {
+
+		dollyStart.set( event.clientX, event.clientY );
+
+	}
+
+	function handleMouseDownPan( event ) {
+
+		panStart.set( event.clientX, event.clientY );
+
+	}
+
+	function handleMouseMoveRotate( event ) {
+
+		rotateEnd.set( event.clientX, event.clientY );
+
+		rotateDelta.subVectors( rotateEnd, rotateStart ).multiplyScalar( scope.rotateSpeed );
+
+		var element = scope.domElement;
+
+		rotateLeft( 2 * Math.PI * rotateDelta.x / element.clientHeight ); // yes, height
+
+		rotateUp( 2 * Math.PI * rotateDelta.y / element.clientHeight );
+
+		rotateStart.copy( rotateEnd );
+
+		scope.update();
+
+	}
+
+	function handleMouseMoveDolly( event ) {
+
+		dollyEnd.set( event.clientX, event.clientY );
+
+		dollyDelta.subVectors( dollyEnd, dollyStart );
+
+		if ( dollyDelta.y > 0 ) {
+
+			dollyIn( getZoomScale() );
+
+		} else if ( dollyDelta.y < 0 ) {
+
+			dollyOut( getZoomScale() );
+
+		}
+
+		dollyStart.copy( dollyEnd );
+
+		scope.update();
+
+	}
+
+	function handleMouseMovePan( event ) {
+
+		panEnd.set( event.clientX, event.clientY );
+
+		panDelta.subVectors( panEnd, panStart ).multiplyScalar( scope.panSpeed );
+
+		pan( panDelta.x, panDelta.y );
+
+		panStart.copy( panEnd );
+
+		scope.update();
+
+	}
+
+	function handleMouseUp( /*event*/ ) {
+
+		// no-op
+
+	}
+
+	function handleMouseWheel( event ) {
+
+		if ( event.deltaY < 0 ) {
+
+			dollyOut( getZoomScale() );
+
+		} else if ( event.deltaY > 0 ) {
+
+			dollyIn( getZoomScale() );
+
+		}
+
+		scope.update();
+
+	}
+
+	function handleKeyDown( event ) {
+
+		var needsUpdate = false;
+
+		switch ( event.keyCode ) {
+
+			case scope.keys.UP:
+				pan( 0, scope.keyPanSpeed );
+				needsUpdate = true;
+				break;
+
+			case scope.keys.BOTTOM:
+				pan( 0, - scope.keyPanSpeed );
+				needsUpdate = true;
+				break;
+
+			case scope.keys.LEFT:
+				pan( scope.keyPanSpeed, 0 );
+				needsUpdate = true;
+				break;
+
+			case scope.keys.RIGHT:
+				pan( - scope.keyPanSpeed, 0 );
+				needsUpdate = true;
+				break;
+
+		}
+
+		if ( needsUpdate ) {
+
+			// prevent the browser from scrolling on cursor keys
+			event.preventDefault();
+
+			scope.update();
+
+		}
+
+
+	}
+
+	function handleTouchStartRotate( event ) {
+
+		if ( event.touches.length == 1 ) {
+
+			rotateStart.set( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY );
+
+		} else {
+
+			var x = 0.5 * ( event.touches[ 0 ].pageX + event.touches[ 1 ].pageX );
+			var y = 0.5 * ( event.touches[ 0 ].pageY + event.touches[ 1 ].pageY );
+
+			rotateStart.set( x, y );
+
+		}
+
+	}
+
+	function handleTouchStartPan( event ) {
+
+		if ( event.touches.length == 1 ) {
+
+			panStart.set( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY );
+
+		} else {
+
+			var x = 0.5 * ( event.touches[ 0 ].pageX + event.touches[ 1 ].pageX );
+			var y = 0.5 * ( event.touches[ 0 ].pageY + event.touches[ 1 ].pageY );
+
+			panStart.set( x, y );
+
+		}
+
+	}
+
+	function handleTouchStartDolly( event ) {
+
+		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 );
+
+	}
+
+	function handleTouchStartDollyPan( event ) {
+
+		if ( scope.enableZoom ) handleTouchStartDolly( event );
+
+		if ( scope.enablePan ) handleTouchStartPan( event );
+
+	}
+
+	function handleTouchStartDollyRotate( event ) {
+
+		if ( scope.enableZoom ) handleTouchStartDolly( event );
+
+		if ( scope.enableRotate ) handleTouchStartRotate( event );
+
+	}
+
+	function handleTouchMoveRotate( event ) {
+
+		if ( event.touches.length == 1 ) {
+
+			rotateEnd.set( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY );
+
+		} else {
+
+			var x = 0.5 * ( event.touches[ 0 ].pageX + event.touches[ 1 ].pageX );
+			var y = 0.5 * ( event.touches[ 0 ].pageY + event.touches[ 1 ].pageY );
+
+			rotateEnd.set( x, y );
+
+		}
+
+		rotateDelta.subVectors( rotateEnd, rotateStart ).multiplyScalar( scope.rotateSpeed );
+
+		var element = scope.domElement;
+
+		rotateLeft( 2 * Math.PI * rotateDelta.x / element.clientHeight ); // yes, height
+
+		rotateUp( 2 * Math.PI * rotateDelta.y / element.clientHeight );
+
+		rotateStart.copy( rotateEnd );
+
+	}
+
+	function handleTouchMovePan( event ) {
+
+		if ( event.touches.length == 1 ) {
+
+			panEnd.set( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY );
+
+		} else {
+
+			var x = 0.5 * ( event.touches[ 0 ].pageX + event.touches[ 1 ].pageX );
+			var y = 0.5 * ( event.touches[ 0 ].pageY + event.touches[ 1 ].pageY );
+
+			panEnd.set( x, y );
+
+		}
+
+		panDelta.subVectors( panEnd, panStart ).multiplyScalar( scope.panSpeed );
+
+		pan( panDelta.x, panDelta.y );
+
+		panStart.copy( panEnd );
+
+	}
+
+	function handleTouchMoveDolly( event ) {
+
+		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.set( 0, Math.pow( dollyEnd.y / dollyStart.y, scope.zoomSpeed ) );
+
+		dollyIn( dollyDelta.y );
+
+		dollyStart.copy( dollyEnd );
+
+	}
+
+	function handleTouchMoveDollyPan( event ) {
+
+		if ( scope.enableZoom ) handleTouchMoveDolly( event );
+
+		if ( scope.enablePan ) handleTouchMovePan( event );
+
+	}
+
+	function handleTouchMoveDollyRotate( event ) {
+
+		if ( scope.enableZoom ) handleTouchMoveDolly( event );
+
+		if ( scope.enableRotate ) handleTouchMoveRotate( event );
+
+	}
+
+	function handleTouchEnd( /*event*/ ) {
+
+		// no-op
+
+	}
+
+	//
+	// event handlers - FSM: listen for events and reset state
+	//
+
+	function onMouseDown( event ) {
+
+		if ( scope.enabled === false ) return;
+
+		// Prevent the browser from scrolling.
+
+		event.preventDefault();
+
+		// Manually set the focus since calling preventDefault above
+		// prevents the browser from setting it automatically.
+
+		scope.domElement.focus ? scope.domElement.focus() : window.focus();
+
+		switch ( event.button ) {
+
+			case 0:
+
+				switch ( scope.mouseButtons.LEFT ) {
+
+					case THREE.MOUSE.ROTATE:
+
+						if ( event.ctrlKey || event.metaKey || event.shiftKey ) {
+
+							if ( scope.enablePan === false ) return;
+
+							handleMouseDownPan( event );
+
+							state = STATE.PAN;
+
+						} else {
+
+							if ( scope.enableRotate === false ) return;
+
+							handleMouseDownRotate( event );
+
+							state = STATE.ROTATE;
+
+						}
+
+						break;
+
+					case THREE.MOUSE.PAN:
+
+						if ( event.ctrlKey || event.metaKey || event.shiftKey ) {
+
+							if ( scope.enableRotate === false ) return;
+
+							handleMouseDownRotate( event );
+
+							state = STATE.ROTATE;
+
+						} else {
+
+							if ( scope.enablePan === false ) return;
+
+							handleMouseDownPan( event );
+
+							state = STATE.PAN;
+
+						}
+
+						break;
+
+					default:
+
+						state = STATE.NONE;
+
+				}
+
+				break;
+
+
+			case 1:
+
+				switch ( scope.mouseButtons.MIDDLE ) {
+
+					case THREE.MOUSE.DOLLY:
+
+						if ( scope.enableZoom === false ) return;
+
+						handleMouseDownDolly( event );
+
+						state = STATE.DOLLY;
+
+						break;
+
+
+					default:
+
+						state = STATE.NONE;
+
+				}
+
+				break;
+
+			case 2:
+
+				switch ( scope.mouseButtons.RIGHT ) {
+
+					case THREE.MOUSE.ROTATE:
+
+						if ( scope.enableRotate === false ) return;
+
+						handleMouseDownRotate( event );
+
+						state = STATE.ROTATE;
+
+						break;
+
+					case THREE.MOUSE.PAN:
+
+						if ( scope.enablePan === false ) return;
+
+						handleMouseDownPan( event );
+
+						state = STATE.PAN;
+
+						break;
+
+					default:
+
+						state = STATE.NONE;
+
+				}
+
+				break;
+
+		}
+
+		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();
+
+		switch ( state ) {
+
+			case STATE.ROTATE:
+
+				if ( scope.enableRotate === false ) return;
+
+				handleMouseMoveRotate( event );
+
+				break;
+
+			case STATE.DOLLY:
+
+				if ( scope.enableZoom === false ) return;
+
+				handleMouseMoveDolly( event );
+
+				break;
+
+			case STATE.PAN:
+
+				if ( scope.enablePan === false ) return;
+
+				handleMouseMovePan( event );
+
+				break;
+
+		}
+
+	}
+
+	function onMouseUp( event ) {
+
+		if ( scope.enabled === false ) return;
+
+		handleMouseUp( event );
+
+		document.removeEventListener( 'mousemove', onMouseMove, false );
+		document.removeEventListener( 'mouseup', onMouseUp, false );
+
+		scope.dispatchEvent( endEvent );
+
+		state = STATE.NONE;
+
+	}
+
+	function onMouseWheel( event ) {
+
+		if ( scope.enabled === false || scope.enableZoom === false || ( state !== STATE.NONE && state !== STATE.ROTATE ) ) return;
+
+		event.preventDefault();
+		event.stopPropagation();
+
+		scope.dispatchEvent( startEvent );
+
+		handleMouseWheel( event );
+
+		scope.dispatchEvent( endEvent );
+
+	}
+
+	function onKeyDown( event ) {
+
+		if ( scope.enabled === false || scope.enableKeys === false || scope.enablePan === false ) return;
+
+		handleKeyDown( event );
+
+	}
+
+	function onTouchStart( event ) {
+
+		if ( scope.enabled === false ) return;
+
+		event.preventDefault();
+
+		switch ( event.touches.length ) {
+
+			case 1:
+
+				switch ( scope.touches.ONE ) {
+
+					case THREE.TOUCH.ROTATE:
+
+						if ( scope.enableRotate === false ) return;
+
+						handleTouchStartRotate( event );
+
+						state = STATE.TOUCH_ROTATE;
+
+						break;
+
+					case THREE.TOUCH.PAN:
+
+						if ( scope.enablePan === false ) return;
+
+						handleTouchStartPan( event );
+
+						state = STATE.TOUCH_PAN;
+
+						break;
+
+					default:
+
+						state = STATE.NONE;
+
+				}
+
+				break;
+
+			case 2:
+
+				switch ( scope.touches.TWO ) {
+
+					case THREE.TOUCH.DOLLY_PAN:
+
+						if ( scope.enableZoom === false && scope.enablePan === false ) return;
+
+						handleTouchStartDollyPan( event );
+
+						state = STATE.TOUCH_DOLLY_PAN;
+
+						break;
+
+					case THREE.TOUCH.DOLLY_ROTATE:
+
+						if ( scope.enableZoom === false && scope.enableRotate === false ) return;
+
+						handleTouchStartDollyRotate( event );
+
+						state = STATE.TOUCH_DOLLY_ROTATE;
+
+						break;
+
+					default:
+
+						state = STATE.NONE;
+
+				}
+
+				break;
+
+			default:
+
+				state = STATE.NONE;
+
+		}
+
+		if ( state !== STATE.NONE ) {
+
+			scope.dispatchEvent( startEvent );
+
+		}
+
+	}
+
+	function onTouchMove( event ) {
+
+		if ( scope.enabled === false ) return;
+
+		event.preventDefault();
+		event.stopPropagation();
+
+		switch ( state ) {
+
+			case STATE.TOUCH_ROTATE:
+
+				if ( scope.enableRotate === false ) return;
+
+				handleTouchMoveRotate( event );
+
+				scope.update();
+
+				break;
+
+			case STATE.TOUCH_PAN:
+
+				if ( scope.enablePan === false ) return;
+
+				handleTouchMovePan( event );
+
+				scope.update();
+
+				break;
+
+			case STATE.TOUCH_DOLLY_PAN:
+
+				if ( scope.enableZoom === false && scope.enablePan === false ) return;
+
+				handleTouchMoveDollyPan( event );
+
+				scope.update();
+
+				break;
+
+			case STATE.TOUCH_DOLLY_ROTATE:
+
+				if ( scope.enableZoom === false && scope.enableRotate === false ) return;
+
+				handleTouchMoveDollyRotate( event );
+
+				scope.update();
+
+				break;
+
+			default:
+
+				state = STATE.NONE;
+
+		}
+
+	}
+
+	function onTouchEnd( event ) {
+
+		if ( scope.enabled === false ) return;
+
+		handleTouchEnd( event );
+
+		scope.dispatchEvent( endEvent );
+
+		state = STATE.NONE;
+
+	}
+
+	function onContextMenu( event ) {
+
+		if ( scope.enabled === false ) return;
+
+		event.preventDefault();
+
+	}
+
+	//
+
+	scope.domElement.addEventListener( 'contextmenu', onContextMenu, false );
+
+	scope.domElement.addEventListener( 'mousedown', onMouseDown, false );
+	scope.domElement.addEventListener( 'wheel', onMouseWheel, false );
+
+	scope.domElement.addEventListener( 'touchstart', onTouchStart, false );
+	scope.domElement.addEventListener( 'touchend', onTouchEnd, false );
+	scope.domElement.addEventListener( 'touchmove', onTouchMove, false );
+
+	scope.domElement.addEventListener( 'keydown', onKeyDown, false );
+
+	// make sure element can receive keys.
+
+	if ( scope.domElement.tabIndex === - 1 ) {
+
+		scope.domElement.tabIndex = 0;
+
+	}
+
+	// force an update at start
+
+	this.update();
+
+};
+
+THREE.OrbitControls.prototype = Object.create( THREE.EventDispatcher.prototype );
+THREE.OrbitControls.prototype.constructor = THREE.OrbitControls;
+
+
+// This set of controls performs orbiting, dollying (zooming), and panning.
+// Unlike TrackballControls, it maintains the "up" direction object.up (+Y by default).
+// This is very similar to OrbitControls, another set of touch behavior
+//
+//    Orbit - right mouse, or left mouse + ctrl/meta/shiftKey / touch: two-finger rotate
+//    Zoom - middle mouse, or mousewheel / touch: two-finger spread or squish
+//    Pan - left mouse, or arrow keys / touch: one-finger move
+
+THREE.MapControls = function ( object, domElement ) {
+
+	THREE.OrbitControls.call( this, object, domElement );
+
+	this.mouseButtons.LEFT = THREE.MOUSE.PAN;
+	this.mouseButtons.RIGHT = THREE.MOUSE.ROTATE;
+
+	this.touches.ONE = THREE.TOUCH.PAN;
+	this.touches.TWO = THREE.TOUCH.DOLLY_ROTATE;
+
+};
+
+THREE.MapControls.prototype = Object.create( THREE.EventDispatcher.prototype );
+THREE.MapControls.prototype.constructor = THREE.MapControls;
diff --git a/01_Code/physical_computing_interface/simulation/lib/SVGRenderer.js b/01_Code/physical_computing_interface/simulation/lib/SVGRenderer.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cab4c927a0be03b44a480a2533f2497a2f44eed
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/lib/SVGRenderer.js
@@ -0,0 +1,533 @@
+/**
+ * @author mrdoob / http://mrdoob.com/
+ */
+
+THREE.SVGObject = function ( node ) {
+
+	THREE.Object3D.call( this );
+
+	this.node = node;
+
+};
+
+THREE.SVGObject.prototype = Object.create( THREE.Object3D.prototype );
+THREE.SVGObject.prototype.constructor = THREE.SVGObject;
+
+THREE.SVGRenderer = function () {
+
+	var _this = this,
+		_renderData, _elements, _lights,
+		_projector = new THREE.Projector(),
+		_svg = document.createElementNS( 'http://www.w3.org/2000/svg', 'svg' ),
+		_svgWidth, _svgHeight, _svgWidthHalf, _svgHeightHalf,
+
+		_v1, _v2, _v3,
+
+		_clipBox = new THREE.Box2(),
+		_elemBox = new THREE.Box2(),
+
+		_color = new THREE.Color(),
+		_diffuseColor = new THREE.Color(),
+		_ambientLight = new THREE.Color(),
+		_directionalLights = new THREE.Color(),
+		_pointLights = new THREE.Color(),
+		_clearColor = new THREE.Color(),
+		_clearAlpha = 1,
+
+		_vector3 = new THREE.Vector3(), // Needed for PointLight
+		_centroid = new THREE.Vector3(),
+		_normal = new THREE.Vector3(),
+		_normalViewMatrix = new THREE.Matrix3(),
+
+		_viewMatrix = new THREE.Matrix4(),
+		_viewProjectionMatrix = new THREE.Matrix4(),
+
+		_svgPathPool = [],
+		_svgNode, _pathCount = 0,
+
+		_currentPath, _currentStyle,
+
+		_quality = 1, _precision = null;
+
+	this.domElement = _svg;
+
+	this.autoClear = true;
+	this.sortObjects = true;
+	this.sortElements = true;
+
+	this.overdraw = 0.5;
+
+	this.info = {
+
+		render: {
+
+			vertices: 0,
+			faces: 0
+
+		}
+
+	};
+
+	this.setQuality = function ( quality ) {
+
+		switch ( quality ) {
+
+			case "high": _quality = 1; break;
+			case "low": _quality = 0; break;
+
+		}
+
+	};
+
+	this.setClearColor = function ( color, alpha ) {
+
+		_clearColor.set( color );
+		_clearAlpha = alpha !== undefined ? alpha : 1;
+
+	};
+
+	this.setPixelRatio = function () {};
+
+	this.setSize = function ( width, height ) {
+
+		_svgWidth = width; _svgHeight = height;
+		_svgWidthHalf = _svgWidth / 2; _svgHeightHalf = _svgHeight / 2;
+
+		_svg.setAttribute( 'viewBox', ( - _svgWidthHalf ) + ' ' + ( - _svgHeightHalf ) + ' ' + _svgWidth + ' ' + _svgHeight );
+		_svg.setAttribute( 'width', _svgWidth );
+		_svg.setAttribute( 'height', _svgHeight );
+
+		_clipBox.min.set( - _svgWidthHalf, - _svgHeightHalf );
+		_clipBox.max.set( _svgWidthHalf, _svgHeightHalf );
+
+	};
+
+	this.setPrecision = function ( precision ) {
+
+		_precision = precision;
+
+	};
+
+	function removeChildNodes() {
+
+		_pathCount = 0;
+
+		while ( _svg.childNodes.length > 0 ) {
+
+			_svg.removeChild( _svg.childNodes[ 0 ] );
+
+		}
+
+	}
+
+	function getSvgColor( color, opacity, asStroke ) {
+
+		var arg = Math.floor( color.r * 255 ) + ',' + Math.floor( color.g * 255 ) + ',' + Math.floor( color.b * 255 );
+
+		if ( opacity === undefined || opacity === 1 ) return 'rgb(' + arg + ')';
+
+		return 'rgb(' + arg + ');' + ( asStroke ? 'stroke-opacity' : 'fill-opacity' ) + ':' + opacity;
+
+	}
+
+	function convert( c ) {
+
+		return _precision !== null ? c.toFixed( _precision ) : c;
+
+	}
+
+	this.clear = function () {
+
+		removeChildNodes();
+		_svg.style.backgroundColor = getSvgColor( _clearColor, _clearAlpha );
+
+	};
+
+	this.render = function ( scene, camera ) {
+
+		if ( camera instanceof THREE.Camera === false ) {
+
+			console.error( 'THREE.SVGRenderer.render: camera is not an instance of THREE.Camera.' );
+			return;
+
+		}
+
+		var background = scene.background;
+
+		if ( background && background.isColor ) {
+
+			removeChildNodes();
+			_svg.style.backgroundColor = getSvgColor( background );
+
+		} else if ( this.autoClear === true ) {
+
+			this.clear();
+
+		}
+
+		_this.info.render.vertices = 0;
+		_this.info.render.faces = 0;
+
+		_viewMatrix.copy( camera.matrixWorldInverse );
+		_viewProjectionMatrix.multiplyMatrices( camera.projectionMatrix, _viewMatrix );
+
+		_renderData = _projector.projectScene( scene, camera, this.sortObjects, this.sortElements );
+		_elements = _renderData.elements;
+		_lights = _renderData.lights;
+
+		_normalViewMatrix.getNormalMatrix( camera.matrixWorldInverse );
+
+		calculateLights( _lights );
+
+		 // reset accumulated path
+
+		_currentPath = '';
+		_currentStyle = '';
+
+		for ( var e = 0, el = _elements.length; e < el; e ++ ) {
+
+			var element = _elements[ e ];
+			var material = element.material;
+
+			if ( material === undefined || material.opacity === 0 ) continue;
+
+			_elemBox.makeEmpty();
+
+			if ( element instanceof THREE.RenderableSprite ) {
+
+				_v1 = element;
+				_v1.x *= _svgWidthHalf; _v1.y *= - _svgHeightHalf;
+
+				renderSprite( _v1, element, material );
+
+			} else if ( element instanceof THREE.RenderableLine ) {
+
+				_v1 = element.v1; _v2 = element.v2;
+
+				_v1.positionScreen.x *= _svgWidthHalf; _v1.positionScreen.y *= - _svgHeightHalf;
+				_v2.positionScreen.x *= _svgWidthHalf; _v2.positionScreen.y *= - _svgHeightHalf;
+
+				_elemBox.setFromPoints( [ _v1.positionScreen, _v2.positionScreen ] );
+
+				if ( _clipBox.intersectsBox( _elemBox ) === true ) {
+
+					renderLine( _v1, _v2, element, material );
+
+				}
+
+			} else if ( element instanceof THREE.RenderableFace ) {
+
+				_v1 = element.v1; _v2 = element.v2; _v3 = element.v3;
+
+				if ( _v1.positionScreen.z < - 1 || _v1.positionScreen.z > 1 ) continue;
+				if ( _v2.positionScreen.z < - 1 || _v2.positionScreen.z > 1 ) continue;
+				if ( _v3.positionScreen.z < - 1 || _v3.positionScreen.z > 1 ) continue;
+
+				_v1.positionScreen.x *= _svgWidthHalf; _v1.positionScreen.y *= - _svgHeightHalf;
+				_v2.positionScreen.x *= _svgWidthHalf; _v2.positionScreen.y *= - _svgHeightHalf;
+				_v3.positionScreen.x *= _svgWidthHalf; _v3.positionScreen.y *= - _svgHeightHalf;
+
+				if ( this.overdraw > 0 ) {
+
+					expand( _v1.positionScreen, _v2.positionScreen, this.overdraw );
+					expand( _v2.positionScreen, _v3.positionScreen, this.overdraw );
+					expand( _v3.positionScreen, _v1.positionScreen, this.overdraw );
+
+				}
+
+				_elemBox.setFromPoints( [
+					_v1.positionScreen,
+					_v2.positionScreen,
+					_v3.positionScreen
+				] );
+
+				if ( _clipBox.intersectsBox( _elemBox ) === true ) {
+
+					renderFace3( _v1, _v2, _v3, element, material );
+
+				}
+
+			}
+
+		}
+
+		flushPath(); // just to flush last svg:path
+
+		scene.traverseVisible( function ( object ) {
+
+			 if ( object instanceof THREE.SVGObject ) {
+
+				_vector3.setFromMatrixPosition( object.matrixWorld );
+				_vector3.applyMatrix4( _viewProjectionMatrix );
+
+				if ( _vector3.z < - 1 || _vector3.z > 1 ) return;
+
+				var x = _vector3.x * _svgWidthHalf;
+				var y = - _vector3.y * _svgHeightHalf;
+
+				var node = object.node;
+				node.setAttribute( 'transform', 'translate(' + x + ',' + y + ')' );
+
+				_svg.appendChild( node );
+
+			}
+
+		} );
+
+	};
+
+	function calculateLights( lights ) {
+
+		_ambientLight.setRGB( 0, 0, 0 );
+		_directionalLights.setRGB( 0, 0, 0 );
+		_pointLights.setRGB( 0, 0, 0 );
+
+		for ( var l = 0, ll = lights.length; l < ll; l ++ ) {
+
+			var light = lights[ l ];
+			var lightColor = light.color;
+
+			if ( light.isAmbientLight ) {
+
+				_ambientLight.r += lightColor.r;
+				_ambientLight.g += lightColor.g;
+				_ambientLight.b += lightColor.b;
+
+			} else if ( light.isDirectionalLight ) {
+
+				_directionalLights.r += lightColor.r;
+				_directionalLights.g += lightColor.g;
+				_directionalLights.b += lightColor.b;
+
+			} else if ( light.isPointLight ) {
+
+				_pointLights.r += lightColor.r;
+				_pointLights.g += lightColor.g;
+				_pointLights.b += lightColor.b;
+
+			}
+
+		}
+
+	}
+
+	function calculateLight( lights, position, normal, color ) {
+
+		for ( var l = 0, ll = lights.length; l < ll; l ++ ) {
+
+			var light = lights[ l ];
+			var lightColor = light.color;
+
+			if ( light.isDirectionalLight ) {
+
+				var lightPosition = _vector3.setFromMatrixPosition( light.matrixWorld ).normalize();
+
+				var amount = normal.dot( lightPosition );
+
+				if ( amount <= 0 ) continue;
+
+				amount *= light.intensity;
+
+				color.r += lightColor.r * amount;
+				color.g += lightColor.g * amount;
+				color.b += lightColor.b * amount;
+
+			} else if ( light.isPointLight ) {
+
+				var lightPosition = _vector3.setFromMatrixPosition( light.matrixWorld );
+
+				var amount = normal.dot( _vector3.subVectors( lightPosition, position ).normalize() );
+
+				if ( amount <= 0 ) continue;
+
+				amount *= light.distance == 0 ? 1 : 1 - Math.min( position.distanceTo( lightPosition ) / light.distance, 1 );
+
+				if ( amount == 0 ) continue;
+
+				amount *= light.intensity;
+
+				color.r += lightColor.r * amount;
+				color.g += lightColor.g * amount;
+				color.b += lightColor.b * amount;
+
+			}
+
+		}
+
+	}
+
+	function renderSprite( v1, element, material ) {
+
+		var scaleX = element.scale.x * _svgWidthHalf;
+		var scaleY = element.scale.y * _svgHeightHalf;
+
+		if ( material.isPointsMaterial ) {
+
+			scaleX *= material.size;
+			scaleY *= material.size;
+
+		}
+
+		var path = 'M' + convert( v1.x - scaleX * 0.5 ) + ',' + convert( v1.y - scaleY * 0.5 ) + 'h' + convert( scaleX ) + 'v' + convert( scaleY ) + 'h' + convert( - scaleX ) + 'z';
+		var style = "";
+
+		if ( material.isSpriteMaterial || material.isPointsMaterial ) {
+
+			style = 'fill:' + getSvgColor( material.color, material.opacity );
+
+		}
+
+		addPath( style, path );
+
+	}
+
+	function renderLine( v1, v2, element, material ) {
+
+		var path = 'M' + convert( v1.positionScreen.x ) + ',' + convert( v1.positionScreen.y ) + 'L' + convert( v2.positionScreen.x ) + ',' + convert( v2.positionScreen.y );
+
+		if ( material.isLineBasicMaterial ) {
+
+			var style = 'fill:none;stroke:' + getSvgColor( material.color, material.opacity, true ) + ';stroke-width:' + material.linewidth + ';stroke-linecap:' + material.linecap;
+
+			if ( material.isLineDashedMaterial ) {
+
+				style = style + ';stroke-dasharray:' + material.dashSize + "," + material.gapSize;
+
+			}
+
+			addPath( style, path );
+
+		}
+
+	}
+
+	function renderFace3( v1, v2, v3, element, material ) {
+
+		_this.info.render.vertices += 3;
+		_this.info.render.faces ++;
+
+		var path = 'M' + convert( v1.positionScreen.x ) + ',' + convert( v1.positionScreen.y ) + 'L' + convert( v2.positionScreen.x ) + ',' + convert( v2.positionScreen.y ) + 'L' + convert( v3.positionScreen.x ) + ',' + convert( v3.positionScreen.y ) + 'z';
+		var style = '';
+
+		if ( material.isMeshBasicMaterial ) {
+
+			_color.copy( material.color );
+
+			if ( material.vertexColors === THREE.FaceColors || material.vertexColors === THREE.VertexColors ) {
+
+				_color.multiply( element.color );
+
+			}
+
+		} else if ( material.isMeshLambertMaterial || material.isMeshPhongMaterial || material.isMeshStandardMaterial ) {
+
+			_diffuseColor.copy( material.color );
+
+			if ( material.vertexColors === THREE.FaceColors || material.vertexColors === THREE.VertexColors ) {
+
+				_diffuseColor.multiply( element.color );
+
+			}
+
+			_color.copy( _ambientLight );
+
+			_centroid.copy( v1.positionWorld ).add( v2.positionWorld ).add( v3.positionWorld ).divideScalar( 3 );
+
+			calculateLight( _lights, _centroid, element.normalModel, _color );
+
+			_color.multiply( _diffuseColor ).add( material.emissive );
+
+		} else if ( material.isMeshNormalMaterial ) {
+
+			_normal.copy( element.normalModel ).applyMatrix3( _normalViewMatrix );
+
+			_color.setRGB( _normal.x, _normal.y, _normal.z ).multiplyScalar( 0.5 ).addScalar( 0.5 );
+
+		}
+
+		if ( material.wireframe ) {
+
+			style = 'fill:none;stroke:' + getSvgColor( _color, material.opacity, true ) + ';stroke-width:' + material.wireframeLinewidth + ';stroke-linecap:' + material.wireframeLinecap + ';stroke-linejoin:' + material.wireframeLinejoin;
+
+		} else {
+
+			style = 'fill:' + getSvgColor( _color, material.opacity );
+
+		}
+
+		addPath( style, path );
+
+	}
+
+	// Hide anti-alias gaps
+
+	function expand( v1, v2, pixels ) {
+
+		var x = v2.x - v1.x, y = v2.y - v1.y,
+			det = x * x + y * y, idet;
+
+		if ( det === 0 ) return;
+
+		idet = pixels / Math.sqrt( det );
+
+		x *= idet; y *= idet;
+
+		v2.x += x; v2.y += y;
+		v1.x -= x; v1.y -= y;
+
+	}
+
+	function addPath( style, path ) {
+
+		if ( _currentStyle === style ) {
+
+			_currentPath += path;
+
+		} else {
+
+			flushPath();
+
+			_currentStyle = style;
+			_currentPath = path;
+
+		}
+
+	}
+
+	function flushPath() {
+
+		if ( _currentPath ) {
+
+			_svgNode = getPathNode( _pathCount ++ );
+			_svgNode.setAttribute( 'd', _currentPath );
+			_svgNode.setAttribute( 'style', _currentStyle );
+			_svg.appendChild( _svgNode );
+
+		}
+
+		_currentPath = '';
+		_currentStyle = '';
+
+	}
+
+	function getPathNode( id ) {
+
+		if ( _svgPathPool[ id ] == null ) {
+
+			_svgPathPool[ id ] = document.createElementNS( 'http://www.w3.org/2000/svg', 'path' );
+
+			if ( _quality == 0 ) {
+
+				_svgPathPool[ id ].setAttribute( 'shape-rendering', 'crispEdges' ); //optimizeSpeed
+
+			}
+
+			return _svgPathPool[ id ];
+
+		}
+
+		return _svgPathPool[ id ];
+
+	}
+
+};
diff --git a/01_Code/physical_computing_interface/simulation/lib/TransformControls.js b/01_Code/physical_computing_interface/simulation/lib/TransformControls.js
new file mode 100644
index 0000000000000000000000000000000000000000..15595d6442ba58a11c07e5cd847bfccea43709f1
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/lib/TransformControls.js
@@ -0,0 +1,1590 @@
+/**
+ * @author arodic / https://github.com/arodic
+ */
+
+THREE.TransformControls = function ( camera, domElement ) {
+
+	if ( domElement === undefined ) {
+
+		console.warn( 'THREE.TransformControls: The second parameter "domElement" is now mandatory.' );
+		domElement = document;
+
+	}
+
+	THREE.Object3D.call( this );
+
+	this.visible = false;
+
+	var _gizmo = new THREE.TransformControlsGizmo();
+	this.add( _gizmo );
+
+	var _plane = new THREE.TransformControlsPlane();
+	this.add( _plane );
+
+	var scope = this;
+
+	// Define properties with getters/setter
+	// Setting the defined property will automatically trigger change event
+	// Defined properties are passed down to gizmo and plane
+
+	defineProperty( "camera", camera );
+	defineProperty( "object", undefined );
+	defineProperty( "enabled", true );
+	defineProperty( "axis", null );
+	defineProperty( "mode", "translate" );
+	defineProperty( "translationSnap", null );
+	defineProperty( "rotationSnap", null );
+	defineProperty( "space", "world" );
+	defineProperty( "size", 1 );
+	defineProperty( "dragging", false );
+	defineProperty( "showX", true );
+	defineProperty( "showY", true );
+	defineProperty( "showZ", true );
+
+	var changeEvent = { type: "change" };
+	var mouseDownEvent = { type: "mouseDown" };
+	var mouseUpEvent = { type: "mouseUp", mode: scope.mode };
+	var objectChangeEvent = { type: "objectChange" };
+
+	// Reusable utility variables
+
+	var ray = new THREE.Raycaster();
+
+	var _tempVector = new THREE.Vector3();
+	var _tempVector2 = new THREE.Vector3();
+	var _tempQuaternion = new THREE.Quaternion();
+	var _unit = {
+		X: new THREE.Vector3( 1, 0, 0 ),
+		Y: new THREE.Vector3( 0, 1, 0 ),
+		Z: new THREE.Vector3( 0, 0, 1 )
+	};
+
+	var pointStart = new THREE.Vector3();
+	var pointEnd = new THREE.Vector3();
+	var offset = new THREE.Vector3();
+	var rotationAxis = new THREE.Vector3();
+	var startNorm = new THREE.Vector3();
+	var endNorm = new THREE.Vector3();
+	var rotationAngle = 0;
+
+	var cameraPosition = new THREE.Vector3();
+	var cameraQuaternion = new THREE.Quaternion();
+	var cameraScale = new THREE.Vector3();
+
+	var parentPosition = new THREE.Vector3();
+	var parentQuaternion = new THREE.Quaternion();
+	var parentQuaternionInv = new THREE.Quaternion();
+	var parentScale = new THREE.Vector3();
+
+	var worldPositionStart = new THREE.Vector3();
+	var worldQuaternionStart = new THREE.Quaternion();
+	var worldScaleStart = new THREE.Vector3();
+
+	var worldPosition = new THREE.Vector3();
+	var worldQuaternion = new THREE.Quaternion();
+	var worldQuaternionInv = new THREE.Quaternion();
+	var worldScale = new THREE.Vector3();
+
+	var eye = new THREE.Vector3();
+
+	var positionStart = new THREE.Vector3();
+	var quaternionStart = new THREE.Quaternion();
+	var scaleStart = new THREE.Vector3();
+
+	// TODO: remove properties unused in plane and gizmo
+
+	defineProperty( "worldPosition", worldPosition );
+	defineProperty( "worldPositionStart", worldPositionStart );
+	defineProperty( "worldQuaternion", worldQuaternion );
+	defineProperty( "worldQuaternionStart", worldQuaternionStart );
+	defineProperty( "cameraPosition", cameraPosition );
+	defineProperty( "cameraQuaternion", cameraQuaternion );
+	defineProperty( "pointStart", pointStart );
+	defineProperty( "pointEnd", pointEnd );
+	defineProperty( "rotationAxis", rotationAxis );
+	defineProperty( "rotationAngle", rotationAngle );
+	defineProperty( "eye", eye );
+
+	{
+
+		domElement.addEventListener( "mousedown", onPointerDown, false );
+		domElement.addEventListener( "touchstart", onPointerDown, false );
+		domElement.addEventListener( "mousemove", onPointerHover, false );
+		domElement.addEventListener( "touchmove", onPointerHover, false );
+		domElement.addEventListener( "touchmove", onPointerMove, false );
+		document.addEventListener( "mouseup", onPointerUp, false );
+		domElement.addEventListener( "touchend", onPointerUp, false );
+		domElement.addEventListener( "touchcancel", onPointerUp, false );
+		domElement.addEventListener( "touchleave", onPointerUp, false );
+
+	}
+
+	this.dispose = function () {
+
+		domElement.removeEventListener( "mousedown", onPointerDown );
+		domElement.removeEventListener( "touchstart", onPointerDown );
+		domElement.removeEventListener( "mousemove", onPointerHover );
+		document.removeEventListener( "mousemove", onPointerMove );
+		domElement.removeEventListener( "touchmove", onPointerHover );
+		domElement.removeEventListener( "touchmove", onPointerMove );
+		document.removeEventListener( "mouseup", onPointerUp );
+		domElement.removeEventListener( "touchend", onPointerUp );
+		domElement.removeEventListener( "touchcancel", onPointerUp );
+		domElement.removeEventListener( "touchleave", onPointerUp );
+
+		this.traverse( function ( child ) {
+
+			if ( child.geometry ) child.geometry.dispose();
+			if ( child.material ) child.material.dispose();
+
+		} );
+
+	};
+
+	// Set current object
+	this.attach = function ( object ) {
+
+		this.object = object;
+		this.visible = true;
+
+		return this;
+
+	};
+
+	// Detatch from object
+	this.detach = function () {
+
+		this.object = undefined;
+		this.visible = false;
+		this.axis = null;
+
+		return this;
+
+	};
+
+	// Defined getter, setter and store for a property
+	function defineProperty( propName, defaultValue ) {
+
+		var propValue = defaultValue;
+
+		Object.defineProperty( scope, propName, {
+
+			get: function () {
+
+				return propValue !== undefined ? propValue : defaultValue;
+
+			},
+
+			set: function ( value ) {
+
+				if ( propValue !== value ) {
+
+					propValue = value;
+					_plane[ propName ] = value;
+					_gizmo[ propName ] = value;
+
+					scope.dispatchEvent( { type: propName + "-changed", value: value } );
+					scope.dispatchEvent( changeEvent );
+
+				}
+
+			}
+
+		} );
+
+		scope[ propName ] = defaultValue;
+		_plane[ propName ] = defaultValue;
+		_gizmo[ propName ] = defaultValue;
+
+	}
+
+	// updateMatrixWorld  updates key transformation variables
+	this.updateMatrixWorld = function () {
+
+		if ( this.object !== undefined ) {
+
+			this.object.updateMatrixWorld();
+			this.object.parent.matrixWorld.decompose( parentPosition, parentQuaternion, parentScale );
+			this.object.matrixWorld.decompose( worldPosition, worldQuaternion, worldScale );
+
+			parentQuaternionInv.copy( parentQuaternion ).inverse();
+			worldQuaternionInv.copy( worldQuaternion ).inverse();
+
+		}
+
+		this.camera.updateMatrixWorld();
+		this.camera.matrixWorld.decompose( cameraPosition, cameraQuaternion, cameraScale );
+
+		eye.copy( cameraPosition ).sub( worldPosition ).normalize();
+
+		THREE.Object3D.prototype.updateMatrixWorld.call( this );
+
+	};
+
+	this.pointerHover = function ( pointer ) {
+
+		if ( this.object === undefined || this.dragging === true || ( pointer.button !== undefined && pointer.button !== 0 ) ) return;
+
+		ray.setFromCamera( pointer, this.camera );
+
+		var intersect = ray.intersectObjects( _gizmo.picker[ this.mode ].children, true )[ 0 ] || false;
+
+		if ( intersect ) {
+
+			this.axis = intersect.object.name;
+
+		} else {
+
+			this.axis = null;
+
+		}
+
+	};
+
+	this.pointerDown = function ( pointer ) {
+
+		if ( this.object === undefined || this.dragging === true || ( pointer.button !== undefined && pointer.button !== 0 ) ) return;
+
+		if ( ( pointer.button === 0 || pointer.button === undefined ) && this.axis !== null ) {
+
+			ray.setFromCamera( pointer, this.camera );
+
+			var planeIntersect = ray.intersectObjects( [ _plane ], true )[ 0 ] || false;
+
+			if ( planeIntersect ) {
+
+				var space = this.space;
+
+				if ( this.mode === 'scale' ) {
+
+					space = 'local';
+
+				} else if ( this.axis === 'E' || this.axis === 'XYZE' || this.axis === 'XYZ' ) {
+
+					space = 'world';
+
+				}
+
+				if ( space === 'local' && this.mode === 'rotate' ) {
+
+					var snap = this.rotationSnap;
+
+					if ( this.axis === 'X' && snap ) this.object.rotation.x = Math.round( this.object.rotation.x / snap ) * snap;
+					if ( this.axis === 'Y' && snap ) this.object.rotation.y = Math.round( this.object.rotation.y / snap ) * snap;
+					if ( this.axis === 'Z' && snap ) this.object.rotation.z = Math.round( this.object.rotation.z / snap ) * snap;
+
+				}
+
+				this.object.updateMatrixWorld();
+				this.object.parent.updateMatrixWorld();
+
+				positionStart.copy( this.object.position );
+				quaternionStart.copy( this.object.quaternion );
+				scaleStart.copy( this.object.scale );
+
+				this.object.matrixWorld.decompose( worldPositionStart, worldQuaternionStart, worldScaleStart );
+
+				pointStart.copy( planeIntersect.point ).sub( worldPositionStart );
+
+			}
+
+			this.dragging = true;
+			mouseDownEvent.mode = this.mode;
+			this.dispatchEvent( mouseDownEvent );
+
+		}
+
+	};
+
+	this.pointerMove = function ( pointer ) {
+
+		var axis = this.axis;
+		var mode = this.mode;
+		var object = this.object;
+		var space = this.space;
+
+		if ( mode === 'scale' ) {
+
+			space = 'local';
+
+		} else if ( axis === 'E' || axis === 'XYZE' || axis === 'XYZ' ) {
+
+			space = 'world';
+
+		}
+
+		if ( object === undefined || axis === null || this.dragging === false || ( pointer.button !== undefined && pointer.button !== 0 ) ) return;
+
+		ray.setFromCamera( pointer, this.camera );
+
+		var planeIntersect = ray.intersectObjects( [ _plane ], true )[ 0 ] || false;
+
+		if ( planeIntersect === false ) return;
+
+		pointEnd.copy( planeIntersect.point ).sub( worldPositionStart );
+
+		if ( mode === 'translate' ) {
+
+			// Apply translate
+
+			offset.copy( pointEnd ).sub( pointStart );
+
+			if ( space === 'local' && axis !== 'XYZ' ) {
+
+				offset.applyQuaternion( worldQuaternionInv );
+
+			}
+
+			if ( axis.indexOf( 'X' ) === - 1 ) offset.x = 0;
+			if ( axis.indexOf( 'Y' ) === - 1 ) offset.y = 0;
+			if ( axis.indexOf( 'Z' ) === - 1 ) offset.z = 0;
+
+			if ( space === 'local' && axis !== 'XYZ' ) {
+
+				offset.applyQuaternion( quaternionStart ).divide( parentScale );
+
+			} else {
+
+				offset.applyQuaternion( parentQuaternionInv ).divide( parentScale );
+
+			}
+
+			object.position.copy( offset ).add( positionStart );
+
+			// Apply translation snap
+
+			if ( this.translationSnap ) {
+
+				if ( space === 'local' ) {
+
+					object.position.applyQuaternion( _tempQuaternion.copy( quaternionStart ).inverse() );
+
+					if ( axis.search( 'X' ) !== - 1 ) {
+
+						object.position.x = Math.round( object.position.x / this.translationSnap ) * this.translationSnap;
+
+					}
+
+					if ( axis.search( 'Y' ) !== - 1 ) {
+
+						object.position.y = Math.round( object.position.y / this.translationSnap ) * this.translationSnap;
+
+					}
+
+					if ( axis.search( 'Z' ) !== - 1 ) {
+
+						object.position.z = Math.round( object.position.z / this.translationSnap ) * this.translationSnap;
+
+					}
+
+					object.position.applyQuaternion( quaternionStart );
+
+				}
+
+				if ( space === 'world' ) {
+
+					if ( object.parent ) {
+
+						object.position.add( _tempVector.setFromMatrixPosition( object.parent.matrixWorld ) );
+
+					}
+
+					if ( axis.search( 'X' ) !== - 1 ) {
+
+						object.position.x = Math.round( object.position.x / this.translationSnap ) * this.translationSnap;
+
+					}
+
+					if ( axis.search( 'Y' ) !== - 1 ) {
+
+						object.position.y = Math.round( object.position.y / this.translationSnap ) * this.translationSnap;
+
+					}
+
+					if ( axis.search( 'Z' ) !== - 1 ) {
+
+						object.position.z = Math.round( object.position.z / this.translationSnap ) * this.translationSnap;
+
+					}
+
+					if ( object.parent ) {
+
+						object.position.sub( _tempVector.setFromMatrixPosition( object.parent.matrixWorld ) );
+
+					}
+
+				}
+
+			}
+
+		} else if ( mode === 'scale' ) {
+
+			if ( axis.search( 'XYZ' ) !== - 1 ) {
+
+				var d = pointEnd.length() / pointStart.length();
+
+				if ( pointEnd.dot( pointStart ) < 0 ) d *= - 1;
+
+				_tempVector2.set( d, d, d );
+
+			} else {
+
+				_tempVector.copy( pointStart );
+				_tempVector2.copy( pointEnd );
+
+				_tempVector.applyQuaternion( worldQuaternionInv );
+				_tempVector2.applyQuaternion( worldQuaternionInv );
+
+				_tempVector2.divide( _tempVector );
+
+				if ( axis.search( 'X' ) === - 1 ) {
+
+					_tempVector2.x = 1;
+
+				}
+				if ( axis.search( 'Y' ) === - 1 ) {
+
+					_tempVector2.y = 1;
+
+				}
+				if ( axis.search( 'Z' ) === - 1 ) {
+
+					_tempVector2.z = 1;
+
+				}
+
+			}
+
+			// Apply scale
+
+			object.scale.copy( scaleStart ).multiply( _tempVector2 );
+
+		} else if ( mode === 'rotate' ) {
+
+			offset.copy( pointEnd ).sub( pointStart );
+
+			var ROTATION_SPEED = 20 / worldPosition.distanceTo( _tempVector.setFromMatrixPosition( this.camera.matrixWorld ) );
+
+			if ( axis === 'E' ) {
+
+				rotationAxis.copy( eye );
+				rotationAngle = pointEnd.angleTo( pointStart );
+
+				startNorm.copy( pointStart ).normalize();
+				endNorm.copy( pointEnd ).normalize();
+
+				rotationAngle *= ( endNorm.cross( startNorm ).dot( eye ) < 0 ? 1 : - 1 );
+
+			} else if ( axis === 'XYZE' ) {
+
+				rotationAxis.copy( offset ).cross( eye ).normalize();
+				rotationAngle = offset.dot( _tempVector.copy( rotationAxis ).cross( this.eye ) ) * ROTATION_SPEED;
+
+			} else if ( axis === 'X' || axis === 'Y' || axis === 'Z' ) {
+
+				rotationAxis.copy( _unit[ axis ] );
+
+				_tempVector.copy( _unit[ axis ] );
+
+				if ( space === 'local' ) {
+
+					_tempVector.applyQuaternion( worldQuaternion );
+
+				}
+
+				rotationAngle = offset.dot( _tempVector.cross( eye ).normalize() ) * ROTATION_SPEED;
+
+			}
+
+			// Apply rotation snap
+
+			if ( this.rotationSnap ) rotationAngle = Math.round( rotationAngle / this.rotationSnap ) * this.rotationSnap;
+
+			this.rotationAngle = rotationAngle;
+
+			// Apply rotate
+			if ( space === 'local' && axis !== 'E' && axis !== 'XYZE' ) {
+
+				object.quaternion.copy( quaternionStart );
+				object.quaternion.multiply( _tempQuaternion.setFromAxisAngle( rotationAxis, rotationAngle ) ).normalize();
+
+			} else {
+
+				rotationAxis.applyQuaternion( parentQuaternionInv );
+				object.quaternion.copy( _tempQuaternion.setFromAxisAngle( rotationAxis, rotationAngle ) );
+				object.quaternion.multiply( quaternionStart ).normalize();
+
+			}
+
+		}
+
+		this.dispatchEvent( changeEvent );
+		this.dispatchEvent( objectChangeEvent );
+
+	};
+
+	this.pointerUp = function ( pointer ) {
+
+		if ( pointer.button !== undefined && pointer.button !== 0 ) return;
+
+		if ( this.dragging && ( this.axis !== null ) ) {
+
+			mouseUpEvent.mode = this.mode;
+			this.dispatchEvent( mouseUpEvent );
+
+		}
+
+		this.dragging = false;
+
+		if ( pointer.button === undefined ) this.axis = null;
+
+	};
+
+	// normalize mouse / touch pointer and remap {x,y} to view space.
+
+	function getPointer( event ) {
+
+		if ( document.pointerLockElement ) {
+
+			return {
+				x: 0,
+				y: 0,
+				button: event.button
+			};
+
+		} else {
+
+			var pointer = event.changedTouches ? event.changedTouches[ 0 ] : event;
+
+			var rect = domElement.getBoundingClientRect();
+
+			return {
+				x: ( pointer.clientX - rect.left ) / rect.width * 2 - 1,
+				y: - ( pointer.clientY - rect.top ) / rect.height * 2 + 1,
+				button: event.button
+			};
+
+		}
+
+	}
+
+	// mouse / touch event handlers
+
+	function onPointerHover( event ) {
+
+		if ( ! scope.enabled ) return;
+
+		scope.pointerHover( getPointer( event ) );
+
+	}
+
+	function onPointerDown( event ) {
+
+		if ( ! scope.enabled ) return;
+
+		document.addEventListener( "mousemove", onPointerMove, false );
+
+		scope.pointerHover( getPointer( event ) );
+		scope.pointerDown( getPointer( event ) );
+
+	}
+
+	function onPointerMove( event ) {
+
+		if ( ! scope.enabled ) return;
+
+		scope.pointerMove( getPointer( event ) );
+
+	}
+
+	function onPointerUp( event ) {
+
+		if ( ! scope.enabled ) return;
+
+		document.removeEventListener( "mousemove", onPointerMove, false );
+
+		scope.pointerUp( getPointer( event ) );
+
+	}
+
+	// TODO: deprecate
+
+	this.getMode = function () {
+
+		return scope.mode;
+
+	};
+
+	this.setMode = function ( mode ) {
+
+		scope.mode = mode;
+
+	};
+
+	this.setTranslationSnap = function ( translationSnap ) {
+
+		scope.translationSnap = translationSnap;
+
+	};
+
+	this.setRotationSnap = function ( rotationSnap ) {
+
+		scope.rotationSnap = rotationSnap;
+
+	};
+
+	this.setSize = function ( size ) {
+
+		scope.size = size;
+
+	};
+
+	this.setSpace = function ( space ) {
+
+		scope.space = space;
+
+	};
+
+	this.update = function () {
+
+		console.warn( 'THREE.TransformControls: update function has no more functionality and therefore has been deprecated.' );
+
+	};
+
+};
+
+THREE.TransformControls.prototype = Object.assign( Object.create( THREE.Object3D.prototype ), {
+
+	constructor: THREE.TransformControls,
+
+	isTransformControls: true
+
+} );
+
+
+THREE.TransformControlsGizmo = function () {
+
+	'use strict';
+
+	THREE.Object3D.call( this );
+
+	this.type = 'TransformControlsGizmo';
+
+	// shared materials
+
+	var gizmoMaterial = new THREE.MeshBasicMaterial( {
+		depthTest: false,
+		depthWrite: false,
+		transparent: true,
+		side: THREE.DoubleSide,
+		fog: false
+	} );
+
+	var gizmoLineMaterial = new THREE.LineBasicMaterial( {
+		depthTest: false,
+		depthWrite: false,
+		transparent: true,
+		linewidth: 1,
+		fog: false
+	} );
+
+	// Make unique material for each axis/color
+
+	var matInvisible = gizmoMaterial.clone();
+	matInvisible.opacity = 0.15;
+
+	var matHelper = gizmoMaterial.clone();
+	matHelper.opacity = 0.33;
+
+	var matRed = gizmoMaterial.clone();
+	matRed.color.set( 0xff0000 );
+
+	var matGreen = gizmoMaterial.clone();
+	matGreen.color.set( 0x00ff00 );
+
+	var matBlue = gizmoMaterial.clone();
+	matBlue.color.set( 0x0000ff );
+
+	var matWhiteTransparent = gizmoMaterial.clone();
+	matWhiteTransparent.opacity = 0.25;
+
+	var matYellowTransparent = matWhiteTransparent.clone();
+	matYellowTransparent.color.set( 0xffff00 );
+
+	var matCyanTransparent = matWhiteTransparent.clone();
+	matCyanTransparent.color.set( 0x00ffff );
+
+	var matMagentaTransparent = matWhiteTransparent.clone();
+	matMagentaTransparent.color.set( 0xff00ff );
+
+	var matYellow = gizmoMaterial.clone();
+	matYellow.color.set( 0xffff00 );
+
+	var matLineRed = gizmoLineMaterial.clone();
+	matLineRed.color.set( 0xff0000 );
+
+	var matLineGreen = gizmoLineMaterial.clone();
+	matLineGreen.color.set( 0x00ff00 );
+
+	var matLineBlue = gizmoLineMaterial.clone();
+	matLineBlue.color.set( 0x0000ff );
+
+	var matLineCyan = gizmoLineMaterial.clone();
+	matLineCyan.color.set( 0x00ffff );
+
+	var matLineMagenta = gizmoLineMaterial.clone();
+	matLineMagenta.color.set( 0xff00ff );
+
+	var matLineYellow = gizmoLineMaterial.clone();
+	matLineYellow.color.set( 0xffff00 );
+
+	var matLineGray = gizmoLineMaterial.clone();
+	matLineGray.color.set( 0x787878 );
+
+	var matLineYellowTransparent = matLineYellow.clone();
+	matLineYellowTransparent.opacity = 0.25;
+
+	// reusable geometry
+
+	var arrowGeometry = new THREE.CylinderBufferGeometry( 0, 0.05, 0.2, 12, 1, false );
+
+	var scaleHandleGeometry = new THREE.BoxBufferGeometry( 0.125, 0.125, 0.125 );
+
+	var lineGeometry = new THREE.BufferGeometry( );
+	lineGeometry.setAttribute( 'position', new THREE.Float32BufferAttribute( [ 0, 0, 0,	1, 0, 0 ], 3 ) );
+
+	var CircleGeometry = function ( radius, arc ) {
+
+		var geometry = new THREE.BufferGeometry( );
+		var vertices = [];
+
+		for ( var i = 0; i <= 64 * arc; ++ i ) {
+
+			vertices.push( 0, Math.cos( i / 32 * Math.PI ) * radius, Math.sin( i / 32 * Math.PI ) * radius );
+
+		}
+
+		geometry.setAttribute( 'position', new THREE.Float32BufferAttribute( vertices, 3 ) );
+
+		return geometry;
+
+	};
+
+	// Special geometry for transform helper. If scaled with position vector it spans from [0,0,0] to position
+
+	var TranslateHelperGeometry = function () {
+
+		var geometry = new THREE.BufferGeometry();
+
+		geometry.setAttribute( 'position', new THREE.Float32BufferAttribute( [ 0, 0, 0, 1, 1, 1 ], 3 ) );
+
+		return geometry;
+
+	};
+
+	// Gizmo definitions - custom hierarchy definitions for setupGizmo() function
+
+	var gizmoTranslate = {
+		X: [
+			[ new THREE.Mesh( arrowGeometry, matRed ), [ 1, 0, 0 ], [ 0, 0, - Math.PI / 2 ], null, 'fwd' ],
+			[ new THREE.Mesh( arrowGeometry, matRed ), [ 1, 0, 0 ], [ 0, 0, Math.PI / 2 ], null, 'bwd' ],
+			[ new THREE.Line( lineGeometry, matLineRed ) ]
+		],
+		Y: [
+			[ new THREE.Mesh( arrowGeometry, matGreen ), [ 0, 1, 0 ], null, null, 'fwd' ],
+			[ new THREE.Mesh( arrowGeometry, matGreen ), [ 0, 1, 0 ], [ Math.PI, 0, 0 ], null, 'bwd' ],
+			[ new THREE.Line( lineGeometry, matLineGreen ), null, [ 0, 0, Math.PI / 2 ]]
+		],
+		Z: [
+			[ new THREE.Mesh( arrowGeometry, matBlue ), [ 0, 0, 1 ], [ Math.PI / 2, 0, 0 ], null, 'fwd' ],
+			[ new THREE.Mesh( arrowGeometry, matBlue ), [ 0, 0, 1 ], [ - Math.PI / 2, 0, 0 ], null, 'bwd' ],
+			[ new THREE.Line( lineGeometry, matLineBlue ), null, [ 0, - Math.PI / 2, 0 ]]
+		],
+		XYZ: [
+			[ new THREE.Mesh( new THREE.OctahedronBufferGeometry( 0.1, 0 ), matWhiteTransparent.clone() ), [ 0, 0, 0 ], [ 0, 0, 0 ]]
+		],
+		XY: [
+			[ new THREE.Mesh( new THREE.PlaneBufferGeometry( 0.295, 0.295 ), matYellowTransparent.clone() ), [ 0.15, 0.15, 0 ]],
+			[ new THREE.Line( lineGeometry, matLineYellow ), [ 0.18, 0.3, 0 ], null, [ 0.125, 1, 1 ]],
+			[ new THREE.Line( lineGeometry, matLineYellow ), [ 0.3, 0.18, 0 ], [ 0, 0, Math.PI / 2 ], [ 0.125, 1, 1 ]]
+		],
+		YZ: [
+			[ new THREE.Mesh( new THREE.PlaneBufferGeometry( 0.295, 0.295 ), matCyanTransparent.clone() ), [ 0, 0.15, 0.15 ], [ 0, Math.PI / 2, 0 ]],
+			[ new THREE.Line( lineGeometry, matLineCyan ), [ 0, 0.18, 0.3 ], [ 0, 0, Math.PI / 2 ], [ 0.125, 1, 1 ]],
+			[ new THREE.Line( lineGeometry, matLineCyan ), [ 0, 0.3, 0.18 ], [ 0, - Math.PI / 2, 0 ], [ 0.125, 1, 1 ]]
+		],
+		XZ: [
+			[ new THREE.Mesh( new THREE.PlaneBufferGeometry( 0.295, 0.295 ), matMagentaTransparent.clone() ), [ 0.15, 0, 0.15 ], [ - Math.PI / 2, 0, 0 ]],
+			[ new THREE.Line( lineGeometry, matLineMagenta ), [ 0.18, 0, 0.3 ], null, [ 0.125, 1, 1 ]],
+			[ new THREE.Line( lineGeometry, matLineMagenta ), [ 0.3, 0, 0.18 ], [ 0, - Math.PI / 2, 0 ], [ 0.125, 1, 1 ]]
+		]
+	};
+
+	var pickerTranslate = {
+		X: [
+			[ new THREE.Mesh( new THREE.CylinderBufferGeometry( 0.2, 0, 1, 4, 1, false ), matInvisible ), [ 0.6, 0, 0 ], [ 0, 0, - Math.PI / 2 ]]
+		],
+		Y: [
+			[ new THREE.Mesh( new THREE.CylinderBufferGeometry( 0.2, 0, 1, 4, 1, false ), matInvisible ), [ 0, 0.6, 0 ]]
+		],
+		Z: [
+			[ new THREE.Mesh( new THREE.CylinderBufferGeometry( 0.2, 0, 1, 4, 1, false ), matInvisible ), [ 0, 0, 0.6 ], [ Math.PI / 2, 0, 0 ]]
+		],
+		XYZ: [
+			[ new THREE.Mesh( new THREE.OctahedronBufferGeometry( 0.2, 0 ), matInvisible ) ]
+		],
+		XY: [
+			[ new THREE.Mesh( new THREE.PlaneBufferGeometry( 0.4, 0.4 ), matInvisible ), [ 0.2, 0.2, 0 ]]
+		],
+		YZ: [
+			[ new THREE.Mesh( new THREE.PlaneBufferGeometry( 0.4, 0.4 ), matInvisible ), [ 0, 0.2, 0.2 ], [ 0, Math.PI / 2, 0 ]]
+		],
+		XZ: [
+			[ new THREE.Mesh( new THREE.PlaneBufferGeometry( 0.4, 0.4 ), matInvisible ), [ 0.2, 0, 0.2 ], [ - Math.PI / 2, 0, 0 ]]
+		]
+	};
+
+	var helperTranslate = {
+		START: [
+			[ new THREE.Mesh( new THREE.OctahedronBufferGeometry( 0.01, 2 ), matHelper ), null, null, null, 'helper' ]
+		],
+		END: [
+			[ new THREE.Mesh( new THREE.OctahedronBufferGeometry( 0.01, 2 ), matHelper ), null, null, null, 'helper' ]
+		],
+		DELTA: [
+			[ new THREE.Line( TranslateHelperGeometry(), matHelper ), null, null, null, 'helper' ]
+		],
+		X: [
+			[ new THREE.Line( lineGeometry, matHelper.clone() ), [ - 1e3, 0, 0 ], null, [ 1e6, 1, 1 ], 'helper' ]
+		],
+		Y: [
+			[ new THREE.Line( lineGeometry, matHelper.clone() ), [ 0, - 1e3, 0 ], [ 0, 0, Math.PI / 2 ], [ 1e6, 1, 1 ], 'helper' ]
+		],
+		Z: [
+			[ new THREE.Line( lineGeometry, matHelper.clone() ), [ 0, 0, - 1e3 ], [ 0, - Math.PI / 2, 0 ], [ 1e6, 1, 1 ], 'helper' ]
+		]
+	};
+
+	var gizmoRotate = {
+		X: [
+			[ new THREE.Line( CircleGeometry( 1, 0.5 ), matLineRed ) ],
+			[ new THREE.Mesh( new THREE.OctahedronBufferGeometry( 0.04, 0 ), matRed ), [ 0, 0, 0.99 ], null, [ 1, 3, 1 ]],
+		],
+		Y: [
+			[ new THREE.Line( CircleGeometry( 1, 0.5 ), matLineGreen ), null, [ 0, 0, - Math.PI / 2 ]],
+			[ new THREE.Mesh( new THREE.OctahedronBufferGeometry( 0.04, 0 ), matGreen ), [ 0, 0, 0.99 ], null, [ 3, 1, 1 ]],
+		],
+		Z: [
+			[ new THREE.Line( CircleGeometry( 1, 0.5 ), matLineBlue ), null, [ 0, Math.PI / 2, 0 ]],
+			[ new THREE.Mesh( new THREE.OctahedronBufferGeometry( 0.04, 0 ), matBlue ), [ 0.99, 0, 0 ], null, [ 1, 3, 1 ]],
+		],
+		E: [
+			[ new THREE.Line( CircleGeometry( 1.25, 1 ), matLineYellowTransparent ), null, [ 0, Math.PI / 2, 0 ]],
+			[ new THREE.Mesh( new THREE.CylinderBufferGeometry( 0.03, 0, 0.15, 4, 1, false ), matLineYellowTransparent ), [ 1.17, 0, 0 ], [ 0, 0, - Math.PI / 2 ], [ 1, 1, 0.001 ]],
+			[ new THREE.Mesh( new THREE.CylinderBufferGeometry( 0.03, 0, 0.15, 4, 1, false ), matLineYellowTransparent ), [ - 1.17, 0, 0 ], [ 0, 0, Math.PI / 2 ], [ 1, 1, 0.001 ]],
+			[ new THREE.Mesh( new THREE.CylinderBufferGeometry( 0.03, 0, 0.15, 4, 1, false ), matLineYellowTransparent ), [ 0, - 1.17, 0 ], [ Math.PI, 0, 0 ], [ 1, 1, 0.001 ]],
+			[ new THREE.Mesh( new THREE.CylinderBufferGeometry( 0.03, 0, 0.15, 4, 1, false ), matLineYellowTransparent ), [ 0, 1.17, 0 ], [ 0, 0, 0 ], [ 1, 1, 0.001 ]],
+		],
+		XYZE: [
+			[ new THREE.Line( CircleGeometry( 1, 1 ), matLineGray ), null, [ 0, Math.PI / 2, 0 ]]
+		]
+	};
+
+	var helperRotate = {
+		AXIS: [
+			[ new THREE.Line( lineGeometry, matHelper.clone() ), [ - 1e3, 0, 0 ], null, [ 1e6, 1, 1 ], 'helper' ]
+		]
+	};
+
+	var pickerRotate = {
+		X: [
+			[ new THREE.Mesh( new THREE.TorusBufferGeometry( 1, 0.1, 4, 24 ), matInvisible ), [ 0, 0, 0 ], [ 0, - Math.PI / 2, - Math.PI / 2 ]],
+		],
+		Y: [
+			[ new THREE.Mesh( new THREE.TorusBufferGeometry( 1, 0.1, 4, 24 ), matInvisible ), [ 0, 0, 0 ], [ Math.PI / 2, 0, 0 ]],
+		],
+		Z: [
+			[ new THREE.Mesh( new THREE.TorusBufferGeometry( 1, 0.1, 4, 24 ), matInvisible ), [ 0, 0, 0 ], [ 0, 0, - Math.PI / 2 ]],
+		],
+		E: [
+			[ new THREE.Mesh( new THREE.TorusBufferGeometry( 1.25, 0.1, 2, 24 ), matInvisible ) ]
+		],
+		XYZE: [
+			[ new THREE.Mesh( new THREE.SphereBufferGeometry( 0.7, 10, 8 ), matInvisible ) ]
+		]
+	};
+
+	var gizmoScale = {
+		X: [
+			[ new THREE.Mesh( scaleHandleGeometry, matRed ), [ 0.8, 0, 0 ], [ 0, 0, - Math.PI / 2 ]],
+			[ new THREE.Line( lineGeometry, matLineRed ), null, null, [ 0.8, 1, 1 ]]
+		],
+		Y: [
+			[ new THREE.Mesh( scaleHandleGeometry, matGreen ), [ 0, 0.8, 0 ]],
+			[ new THREE.Line( lineGeometry, matLineGreen ), null, [ 0, 0, Math.PI / 2 ], [ 0.8, 1, 1 ]]
+		],
+		Z: [
+			[ new THREE.Mesh( scaleHandleGeometry, matBlue ), [ 0, 0, 0.8 ], [ Math.PI / 2, 0, 0 ]],
+			[ new THREE.Line( lineGeometry, matLineBlue ), null, [ 0, - Math.PI / 2, 0 ], [ 0.8, 1, 1 ]]
+		],
+		XY: [
+			[ new THREE.Mesh( scaleHandleGeometry, matYellowTransparent ), [ 0.85, 0.85, 0 ], null, [ 2, 2, 0.2 ]],
+			[ new THREE.Line( lineGeometry, matLineYellow ), [ 0.855, 0.98, 0 ], null, [ 0.125, 1, 1 ]],
+			[ new THREE.Line( lineGeometry, matLineYellow ), [ 0.98, 0.855, 0 ], [ 0, 0, Math.PI / 2 ], [ 0.125, 1, 1 ]]
+		],
+		YZ: [
+			[ new THREE.Mesh( scaleHandleGeometry, matCyanTransparent ), [ 0, 0.85, 0.85 ], null, [ 0.2, 2, 2 ]],
+			[ new THREE.Line( lineGeometry, matLineCyan ), [ 0, 0.855, 0.98 ], [ 0, 0, Math.PI / 2 ], [ 0.125, 1, 1 ]],
+			[ new THREE.Line( lineGeometry, matLineCyan ), [ 0, 0.98, 0.855 ], [ 0, - Math.PI / 2, 0 ], [ 0.125, 1, 1 ]]
+		],
+		XZ: [
+			[ new THREE.Mesh( scaleHandleGeometry, matMagentaTransparent ), [ 0.85, 0, 0.85 ], null, [ 2, 0.2, 2 ]],
+			[ new THREE.Line( lineGeometry, matLineMagenta ), [ 0.855, 0, 0.98 ], null, [ 0.125, 1, 1 ]],
+			[ new THREE.Line( lineGeometry, matLineMagenta ), [ 0.98, 0, 0.855 ], [ 0, - Math.PI / 2, 0 ], [ 0.125, 1, 1 ]]
+		],
+		XYZX: [
+			[ new THREE.Mesh( new THREE.BoxBufferGeometry( 0.125, 0.125, 0.125 ), matWhiteTransparent.clone() ), [ 1.1, 0, 0 ]],
+		],
+		XYZY: [
+			[ new THREE.Mesh( new THREE.BoxBufferGeometry( 0.125, 0.125, 0.125 ), matWhiteTransparent.clone() ), [ 0, 1.1, 0 ]],
+		],
+		XYZZ: [
+			[ new THREE.Mesh( new THREE.BoxBufferGeometry( 0.125, 0.125, 0.125 ), matWhiteTransparent.clone() ), [ 0, 0, 1.1 ]],
+		]
+	};
+
+	var pickerScale = {
+		X: [
+			[ new THREE.Mesh( new THREE.CylinderBufferGeometry( 0.2, 0, 0.8, 4, 1, false ), matInvisible ), [ 0.5, 0, 0 ], [ 0, 0, - Math.PI / 2 ]]
+		],
+		Y: [
+			[ new THREE.Mesh( new THREE.CylinderBufferGeometry( 0.2, 0, 0.8, 4, 1, false ), matInvisible ), [ 0, 0.5, 0 ]]
+		],
+		Z: [
+			[ new THREE.Mesh( new THREE.CylinderBufferGeometry( 0.2, 0, 0.8, 4, 1, false ), matInvisible ), [ 0, 0, 0.5 ], [ Math.PI / 2, 0, 0 ]]
+		],
+		XY: [
+			[ new THREE.Mesh( scaleHandleGeometry, matInvisible ), [ 0.85, 0.85, 0 ], null, [ 3, 3, 0.2 ]],
+		],
+		YZ: [
+			[ new THREE.Mesh( scaleHandleGeometry, matInvisible ), [ 0, 0.85, 0.85 ], null, [ 0.2, 3, 3 ]],
+		],
+		XZ: [
+			[ new THREE.Mesh( scaleHandleGeometry, matInvisible ), [ 0.85, 0, 0.85 ], null, [ 3, 0.2, 3 ]],
+		],
+		XYZX: [
+			[ new THREE.Mesh( new THREE.BoxBufferGeometry( 0.2, 0.2, 0.2 ), matInvisible ), [ 1.1, 0, 0 ]],
+		],
+		XYZY: [
+			[ new THREE.Mesh( new THREE.BoxBufferGeometry( 0.2, 0.2, 0.2 ), matInvisible ), [ 0, 1.1, 0 ]],
+		],
+		XYZZ: [
+			[ new THREE.Mesh( new THREE.BoxBufferGeometry( 0.2, 0.2, 0.2 ), matInvisible ), [ 0, 0, 1.1 ]],
+		]
+	};
+
+	var helperScale = {
+		X: [
+			[ new THREE.Line( lineGeometry, matHelper.clone() ), [ - 1e3, 0, 0 ], null, [ 1e6, 1, 1 ], 'helper' ]
+		],
+		Y: [
+			[ new THREE.Line( lineGeometry, matHelper.clone() ), [ 0, - 1e3, 0 ], [ 0, 0, Math.PI / 2 ], [ 1e6, 1, 1 ], 'helper' ]
+		],
+		Z: [
+			[ new THREE.Line( lineGeometry, matHelper.clone() ), [ 0, 0, - 1e3 ], [ 0, - Math.PI / 2, 0 ], [ 1e6, 1, 1 ], 'helper' ]
+		]
+	};
+
+	// Creates an Object3D with gizmos described in custom hierarchy definition.
+
+	var setupGizmo = function ( gizmoMap ) {
+
+		var gizmo = new THREE.Object3D();
+
+		for ( var name in gizmoMap ) {
+
+			for ( var i = gizmoMap[ name ].length; i --; ) {
+
+				var object = gizmoMap[ name ][ i ][ 0 ].clone();
+				var position = gizmoMap[ name ][ i ][ 1 ];
+				var rotation = gizmoMap[ name ][ i ][ 2 ];
+				var scale = gizmoMap[ name ][ i ][ 3 ];
+				var tag = gizmoMap[ name ][ i ][ 4 ];
+
+				// name and tag properties are essential for picking and updating logic.
+				object.name = name;
+				object.tag = tag;
+
+				if ( position ) {
+
+					object.position.set( position[ 0 ], position[ 1 ], position[ 2 ] );
+
+				}
+				if ( rotation ) {
+
+					object.rotation.set( rotation[ 0 ], rotation[ 1 ], rotation[ 2 ] );
+
+				}
+				if ( scale ) {
+
+					object.scale.set( scale[ 0 ], scale[ 1 ], scale[ 2 ] );
+
+				}
+
+				object.updateMatrix();
+
+				var tempGeometry = object.geometry.clone();
+				tempGeometry.applyMatrix( object.matrix );
+				object.geometry = tempGeometry;
+				object.renderOrder = Infinity;
+
+				object.position.set( 0, 0, 0 );
+				object.rotation.set( 0, 0, 0 );
+				object.scale.set( 1, 1, 1 );
+
+				gizmo.add( object );
+
+			}
+
+		}
+
+		return gizmo;
+
+	};
+
+	// Reusable utility variables
+
+	var tempVector = new THREE.Vector3( 0, 0, 0 );
+	var tempEuler = new THREE.Euler();
+	var alignVector = new THREE.Vector3( 0, 1, 0 );
+	var zeroVector = new THREE.Vector3( 0, 0, 0 );
+	var lookAtMatrix = new THREE.Matrix4();
+	var tempQuaternion = new THREE.Quaternion();
+	var tempQuaternion2 = new THREE.Quaternion();
+	var identityQuaternion = new THREE.Quaternion();
+
+	var unitX = new THREE.Vector3( 1, 0, 0 );
+	var unitY = new THREE.Vector3( 0, 1, 0 );
+	var unitZ = new THREE.Vector3( 0, 0, 1 );
+
+	// Gizmo creation
+
+	this.gizmo = {};
+	this.picker = {};
+	this.helper = {};
+
+	this.add( this.gizmo[ "translate" ] = setupGizmo( gizmoTranslate ) );
+	this.add( this.gizmo[ "rotate" ] = setupGizmo( gizmoRotate ) );
+	this.add( this.gizmo[ "scale" ] = setupGizmo( gizmoScale ) );
+	this.add( this.picker[ "translate" ] = setupGizmo( pickerTranslate ) );
+	this.add( this.picker[ "rotate" ] = setupGizmo( pickerRotate ) );
+	this.add( this.picker[ "scale" ] = setupGizmo( pickerScale ) );
+	this.add( this.helper[ "translate" ] = setupGizmo( helperTranslate ) );
+	this.add( this.helper[ "rotate" ] = setupGizmo( helperRotate ) );
+	this.add( this.helper[ "scale" ] = setupGizmo( helperScale ) );
+
+	// Pickers should be hidden always
+
+	this.picker[ "translate" ].visible = false;
+	this.picker[ "rotate" ].visible = false;
+	this.picker[ "scale" ].visible = false;
+
+	// updateMatrixWorld will update transformations and appearance of individual handles
+
+	this.updateMatrixWorld = function () {
+
+		var space = this.space;
+
+		if ( this.mode === 'scale' ) space = 'local'; // scale always oriented to local rotation
+
+		var quaternion = space === "local" ? this.worldQuaternion : identityQuaternion;
+
+		// Show only gizmos for current transform mode
+
+		this.gizmo[ "translate" ].visible = this.mode === "translate";
+		this.gizmo[ "rotate" ].visible = this.mode === "rotate";
+		this.gizmo[ "scale" ].visible = this.mode === "scale";
+
+		this.helper[ "translate" ].visible = this.mode === "translate";
+		this.helper[ "rotate" ].visible = this.mode === "rotate";
+		this.helper[ "scale" ].visible = this.mode === "scale";
+
+
+		var handles = [];
+		handles = handles.concat( this.picker[ this.mode ].children );
+		handles = handles.concat( this.gizmo[ this.mode ].children );
+		handles = handles.concat( this.helper[ this.mode ].children );
+
+		for ( var i = 0; i < handles.length; i ++ ) {
+
+			var handle = handles[ i ];
+
+			// hide aligned to camera
+
+			handle.visible = true;
+			handle.rotation.set( 0, 0, 0 );
+			handle.position.copy( this.worldPosition );
+
+			var eyeDistance = this.worldPosition.distanceTo( this.cameraPosition );
+			handle.scale.set( 1, 1, 1 ).multiplyScalar( eyeDistance * this.size / 7 );
+
+			// TODO: simplify helpers and consider decoupling from gizmo
+
+			if ( handle.tag === 'helper' ) {
+
+				handle.visible = false;
+
+				if ( handle.name === 'AXIS' ) {
+
+					handle.position.copy( this.worldPositionStart );
+					handle.visible = !! this.axis;
+
+					if ( this.axis === 'X' ) {
+
+						tempQuaternion.setFromEuler( tempEuler.set( 0, 0, 0 ) );
+						handle.quaternion.copy( quaternion ).multiply( tempQuaternion );
+
+						if ( Math.abs( alignVector.copy( unitX ).applyQuaternion( quaternion ).dot( this.eye ) ) > 0.9 ) {
+
+							handle.visible = false;
+
+						}
+
+					}
+
+					if ( this.axis === 'Y' ) {
+
+						tempQuaternion.setFromEuler( tempEuler.set( 0, 0, Math.PI / 2 ) );
+						handle.quaternion.copy( quaternion ).multiply( tempQuaternion );
+
+						if ( Math.abs( alignVector.copy( unitY ).applyQuaternion( quaternion ).dot( this.eye ) ) > 0.9 ) {
+
+							handle.visible = false;
+
+						}
+
+					}
+
+					if ( this.axis === 'Z' ) {
+
+						tempQuaternion.setFromEuler( tempEuler.set( 0, Math.PI / 2, 0 ) );
+						handle.quaternion.copy( quaternion ).multiply( tempQuaternion );
+
+						if ( Math.abs( alignVector.copy( unitZ ).applyQuaternion( quaternion ).dot( this.eye ) ) > 0.9 ) {
+
+							handle.visible = false;
+
+						}
+
+					}
+
+					if ( this.axis === 'XYZE' ) {
+
+						tempQuaternion.setFromEuler( tempEuler.set( 0, Math.PI / 2, 0 ) );
+						alignVector.copy( this.rotationAxis );
+						handle.quaternion.setFromRotationMatrix( lookAtMatrix.lookAt( zeroVector, alignVector, unitY ) );
+						handle.quaternion.multiply( tempQuaternion );
+						handle.visible = this.dragging;
+
+					}
+
+					if ( this.axis === 'E' ) {
+
+						handle.visible = false;
+
+					}
+
+
+				} else if ( handle.name === 'START' ) {
+
+					handle.position.copy( this.worldPositionStart );
+					handle.visible = this.dragging;
+
+				} else if ( handle.name === 'END' ) {
+
+					handle.position.copy( this.worldPosition );
+					handle.visible = this.dragging;
+
+				} else if ( handle.name === 'DELTA' ) {
+
+					handle.position.copy( this.worldPositionStart );
+					handle.quaternion.copy( this.worldQuaternionStart );
+					tempVector.set( 1e-10, 1e-10, 1e-10 ).add( this.worldPositionStart ).sub( this.worldPosition ).multiplyScalar( - 1 );
+					tempVector.applyQuaternion( this.worldQuaternionStart.clone().inverse() );
+					handle.scale.copy( tempVector );
+					handle.visible = this.dragging;
+
+				} else {
+
+					handle.quaternion.copy( quaternion );
+
+					if ( this.dragging ) {
+
+						handle.position.copy( this.worldPositionStart );
+
+					} else {
+
+						handle.position.copy( this.worldPosition );
+
+					}
+
+					if ( this.axis ) {
+
+						handle.visible = this.axis.search( handle.name ) !== - 1;
+
+					}
+
+				}
+
+				// If updating helper, skip rest of the loop
+				continue;
+
+			}
+
+			// Align handles to current local or world rotation
+
+			handle.quaternion.copy( quaternion );
+
+			if ( this.mode === 'translate' || this.mode === 'scale' ) {
+
+				// Hide translate and scale axis facing the camera
+
+				var AXIS_HIDE_TRESHOLD = 0.99;
+				var PLANE_HIDE_TRESHOLD = 0.2;
+				var AXIS_FLIP_TRESHOLD = 0.0;
+
+
+				if ( handle.name === 'X' || handle.name === 'XYZX' ) {
+
+					if ( Math.abs( alignVector.copy( unitX ).applyQuaternion( quaternion ).dot( this.eye ) ) > AXIS_HIDE_TRESHOLD ) {
+
+						handle.scale.set( 1e-10, 1e-10, 1e-10 );
+						handle.visible = false;
+
+					}
+
+				}
+				if ( handle.name === 'Y' || handle.name === 'XYZY' ) {
+
+					if ( Math.abs( alignVector.copy( unitY ).applyQuaternion( quaternion ).dot( this.eye ) ) > AXIS_HIDE_TRESHOLD ) {
+
+						handle.scale.set( 1e-10, 1e-10, 1e-10 );
+						handle.visible = false;
+
+					}
+
+				}
+				if ( handle.name === 'Z' || handle.name === 'XYZZ' ) {
+
+					if ( Math.abs( alignVector.copy( unitZ ).applyQuaternion( quaternion ).dot( this.eye ) ) > AXIS_HIDE_TRESHOLD ) {
+
+						handle.scale.set( 1e-10, 1e-10, 1e-10 );
+						handle.visible = false;
+
+					}
+
+				}
+				if ( handle.name === 'XY' ) {
+
+					if ( Math.abs( alignVector.copy( unitZ ).applyQuaternion( quaternion ).dot( this.eye ) ) < PLANE_HIDE_TRESHOLD ) {
+
+						handle.scale.set( 1e-10, 1e-10, 1e-10 );
+						handle.visible = false;
+
+					}
+
+				}
+				if ( handle.name === 'YZ' ) {
+
+					if ( Math.abs( alignVector.copy( unitX ).applyQuaternion( quaternion ).dot( this.eye ) ) < PLANE_HIDE_TRESHOLD ) {
+
+						handle.scale.set( 1e-10, 1e-10, 1e-10 );
+						handle.visible = false;
+
+					}
+
+				}
+				if ( handle.name === 'XZ' ) {
+
+					if ( Math.abs( alignVector.copy( unitY ).applyQuaternion( quaternion ).dot( this.eye ) ) < PLANE_HIDE_TRESHOLD ) {
+
+						handle.scale.set( 1e-10, 1e-10, 1e-10 );
+						handle.visible = false;
+
+					}
+
+				}
+
+				// Flip translate and scale axis ocluded behind another axis
+
+				if ( handle.name.search( 'X' ) !== - 1 ) {
+
+					if ( alignVector.copy( unitX ).applyQuaternion( quaternion ).dot( this.eye ) < AXIS_FLIP_TRESHOLD ) {
+
+						if ( handle.tag === 'fwd' ) {
+
+							handle.visible = false;
+
+						} else {
+
+							handle.scale.x *= - 1;
+
+						}
+
+					} else if ( handle.tag === 'bwd' ) {
+
+						handle.visible = false;
+
+					}
+
+				}
+
+				if ( handle.name.search( 'Y' ) !== - 1 ) {
+
+					if ( alignVector.copy( unitY ).applyQuaternion( quaternion ).dot( this.eye ) < AXIS_FLIP_TRESHOLD ) {
+
+						if ( handle.tag === 'fwd' ) {
+
+							handle.visible = false;
+
+						} else {
+
+							handle.scale.y *= - 1;
+
+						}
+
+					} else if ( handle.tag === 'bwd' ) {
+
+						handle.visible = false;
+
+					}
+
+				}
+
+				if ( handle.name.search( 'Z' ) !== - 1 ) {
+
+					if ( alignVector.copy( unitZ ).applyQuaternion( quaternion ).dot( this.eye ) < AXIS_FLIP_TRESHOLD ) {
+
+						if ( handle.tag === 'fwd' ) {
+
+							handle.visible = false;
+
+						} else {
+
+							handle.scale.z *= - 1;
+
+						}
+
+					} else if ( handle.tag === 'bwd' ) {
+
+						handle.visible = false;
+
+					}
+
+				}
+
+			} else if ( this.mode === 'rotate' ) {
+
+				// Align handles to current local or world rotation
+
+				tempQuaternion2.copy( quaternion );
+				alignVector.copy( this.eye ).applyQuaternion( tempQuaternion.copy( quaternion ).inverse() );
+
+				if ( handle.name.search( "E" ) !== - 1 ) {
+
+					handle.quaternion.setFromRotationMatrix( lookAtMatrix.lookAt( this.eye, zeroVector, unitY ) );
+
+				}
+
+				if ( handle.name === 'X' ) {
+
+					tempQuaternion.setFromAxisAngle( unitX, Math.atan2( - alignVector.y, alignVector.z ) );
+					tempQuaternion.multiplyQuaternions( tempQuaternion2, tempQuaternion );
+					handle.quaternion.copy( tempQuaternion );
+
+				}
+
+				if ( handle.name === 'Y' ) {
+
+					tempQuaternion.setFromAxisAngle( unitY, Math.atan2( alignVector.x, alignVector.z ) );
+					tempQuaternion.multiplyQuaternions( tempQuaternion2, tempQuaternion );
+					handle.quaternion.copy( tempQuaternion );
+
+				}
+
+				if ( handle.name === 'Z' ) {
+
+					tempQuaternion.setFromAxisAngle( unitZ, Math.atan2( alignVector.y, alignVector.x ) );
+					tempQuaternion.multiplyQuaternions( tempQuaternion2, tempQuaternion );
+					handle.quaternion.copy( tempQuaternion );
+
+				}
+
+			}
+
+			// Hide disabled axes
+			handle.visible = handle.visible && ( handle.name.indexOf( "X" ) === - 1 || this.showX );
+			handle.visible = handle.visible && ( handle.name.indexOf( "Y" ) === - 1 || this.showY );
+			handle.visible = handle.visible && ( handle.name.indexOf( "Z" ) === - 1 || this.showZ );
+			handle.visible = handle.visible && ( handle.name.indexOf( "E" ) === - 1 || ( this.showX && this.showY && this.showZ ) );
+
+			// highlight selected axis
+
+			handle.material._opacity = handle.material._opacity || handle.material.opacity;
+			handle.material._color = handle.material._color || handle.material.color.clone();
+
+			handle.material.color.copy( handle.material._color );
+			handle.material.opacity = handle.material._opacity;
+
+			if ( ! this.enabled ) {
+
+				handle.material.opacity *= 0.5;
+				handle.material.color.lerp( new THREE.Color( 1, 1, 1 ), 0.5 );
+
+			} else if ( this.axis ) {
+
+				if ( handle.name === this.axis ) {
+
+					handle.material.opacity = 1.0;
+					handle.material.color.lerp( new THREE.Color( 1, 1, 1 ), 0.5 );
+
+				} else if ( this.axis.split( '' ).some( function ( a ) {
+
+					return handle.name === a;
+
+				} ) ) {
+
+					handle.material.opacity = 1.0;
+					handle.material.color.lerp( new THREE.Color( 1, 1, 1 ), 0.5 );
+
+				} else {
+
+					handle.material.opacity *= 0.25;
+					handle.material.color.lerp( new THREE.Color( 1, 1, 1 ), 0.5 );
+
+				}
+
+			}
+
+		}
+
+		THREE.Object3D.prototype.updateMatrixWorld.call( this );
+
+	};
+
+};
+
+THREE.TransformControlsGizmo.prototype = Object.assign( Object.create( THREE.Object3D.prototype ), {
+
+	constructor: THREE.TransformControlsGizmo,
+
+	isTransformControlsGizmo: true
+
+} );
+
+
+THREE.TransformControlsPlane = function () {
+
+	'use strict';
+
+	THREE.Mesh.call( this,
+		new THREE.PlaneBufferGeometry( 100000, 100000, 2, 2 ),
+		new THREE.MeshBasicMaterial( { visible: false, wireframe: true, side: THREE.DoubleSide, transparent: true, opacity: 0.1 } )
+	);
+
+	this.type = 'TransformControlsPlane';
+
+	var unitX = new THREE.Vector3( 1, 0, 0 );
+	var unitY = new THREE.Vector3( 0, 1, 0 );
+	var unitZ = new THREE.Vector3( 0, 0, 1 );
+
+	var tempVector = new THREE.Vector3();
+	var dirVector = new THREE.Vector3();
+	var alignVector = new THREE.Vector3();
+	var tempMatrix = new THREE.Matrix4();
+	var identityQuaternion = new THREE.Quaternion();
+
+	this.updateMatrixWorld = function () {
+
+		var space = this.space;
+
+		this.position.copy( this.worldPosition );
+
+		if ( this.mode === 'scale' ) space = 'local'; // scale always oriented to local rotation
+
+		unitX.set( 1, 0, 0 ).applyQuaternion( space === "local" ? this.worldQuaternion : identityQuaternion );
+		unitY.set( 0, 1, 0 ).applyQuaternion( space === "local" ? this.worldQuaternion : identityQuaternion );
+		unitZ.set( 0, 0, 1 ).applyQuaternion( space === "local" ? this.worldQuaternion : identityQuaternion );
+
+		// Align the plane for current transform mode, axis and space.
+
+		alignVector.copy( unitY );
+
+		switch ( this.mode ) {
+
+			case 'translate':
+			case 'scale':
+				switch ( this.axis ) {
+
+					case 'X':
+						alignVector.copy( this.eye ).cross( unitX );
+						dirVector.copy( unitX ).cross( alignVector );
+						break;
+					case 'Y':
+						alignVector.copy( this.eye ).cross( unitY );
+						dirVector.copy( unitY ).cross( alignVector );
+						break;
+					case 'Z':
+						alignVector.copy( this.eye ).cross( unitZ );
+						dirVector.copy( unitZ ).cross( alignVector );
+						break;
+					case 'XY':
+						dirVector.copy( unitZ );
+						break;
+					case 'YZ':
+						dirVector.copy( unitX );
+						break;
+					case 'XZ':
+						alignVector.copy( unitZ );
+						dirVector.copy( unitY );
+						break;
+					case 'XYZ':
+					case 'E':
+						dirVector.set( 0, 0, 0 );
+						break;
+
+				}
+				break;
+			case 'rotate':
+			default:
+				// special case for rotate
+				dirVector.set( 0, 0, 0 );
+
+		}
+
+		if ( dirVector.length() === 0 ) {
+
+			// If in rotate mode, make the plane parallel to camera
+			this.quaternion.copy( this.cameraQuaternion );
+
+		} else {
+
+			tempMatrix.lookAt( tempVector.set( 0, 0, 0 ), dirVector, alignVector );
+
+			this.quaternion.setFromRotationMatrix( tempMatrix );
+
+		}
+
+		THREE.Object3D.prototype.updateMatrixWorld.call( this );
+
+	};
+
+};
+
+THREE.TransformControlsPlane.prototype = Object.assign( Object.create( THREE.Mesh.prototype ), {
+
+	constructor: THREE.TransformControlsPlane,
+
+	isTransformControlsPlane: true
+
+} );
diff --git a/01_Code/physical_computing_interface/simulation/lib/compute.rhino3d.js b/01_Code/physical_computing_interface/simulation/lib/compute.rhino3d.js
new file mode 100644
index 0000000000000000000000000000000000000000..21bb36091a3261e3b6f651c80393283184052a8b
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/lib/compute.rhino3d.js
@@ -0,0 +1,3353 @@
+var RhinoCompute = {
+    version: "0.5.1",
+
+    url: "https://compute.rhino3d.com/",
+
+    authToken: null,
+
+    getAuthToken: function(useLocalStorage=true) {
+        var auth = null;
+        if( useLocalStorage )
+            auth = localStorage["compute_auth"];
+        if (auth == null) {
+            auth = window.prompt("Rhino Accounts auth token\nVisit https://www.rhino3d.com/compute/login");
+            if (auth != null && auth.length>20) {
+                auth = "Bearer " + auth;
+                localStorage.setItem("compute_auth", auth);
+            }
+        }
+        return auth;
+    },
+
+    computeFetch: function(endpoint, arglist) {
+        return fetch(RhinoCompute.url+endpoint, {
+                "method":"POST",
+                "body": JSON.stringify(arglist),
+                "headers": {
+                    "Authorization": RhinoCompute.authToken,
+                    "User-Agent": `compute.rhino3d.js/${RhinoCompute.version}`
+                },
+        }).then(r=>r.json());
+    },
+
+    zipArgs: function(multiple, ...args) {
+        if(!multiple)
+            return args;
+
+        if(args.length==1)
+            return args[0].map(function(_,i) { return [args[0][i]]; });
+        if(args.length==2)
+            return args[0].map(function(_,i) {
+                return [args[0][i],args[1][i]]; }
+            );
+        if(args.length==3)
+            return args[0].map(function(_,i) {
+                return [args[0][i],args[1][i],args[2][i]]; }
+            );
+        if(args.length==4)
+            return args[0].map(function(_,i) {
+                return [args[0][i],args[1][i],args[2][i],args[3][i]]; }
+            );
+        if(args.length==5)
+            return args[0].map(function(_,i) {
+                return [args[0][i],args[1][i],args[2][i],args[3][i],args[4][i]]; }
+            );
+        if(args.length==6)
+            return args[0].map(function(_,i) {
+                return [args[0][i],args[1][i],args[2][i],args[3][i],args[4][i],args[5][i]]; }
+            );
+        if(args.length==7)
+            return args[0].map(function(_,i) {
+                return [args[0][i],args[1][i],args[2][i],args[3][i],args[4][i],args[5][i],args[6][i]]; }
+            );
+        return args[0].map(function(_,i) {
+            return [args[0][i],args[1][i],args[2][i],args[3][i],args[4][i],args[5][i],args[6][i],args[7][i]]; }
+        );
+    },
+
+    Extrusion : {
+        getWireframe : function(extrusion, multiple=false) {
+            let url="rhino/geometry/extrusion/getwireframe-extrusion";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, extrusion);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+    },
+
+    BezierCurve : {
+        createCubicBeziers : function(sourceCurve, distanceTolerance, kinkTolerance, multiple=false) {
+            let url="rhino/geometry/beziercurve/createcubicbeziers-curve_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, sourceCurve, distanceTolerance, kinkTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createBeziers : function(sourceCurve, multiple=false) {
+            let url="rhino/geometry/beziercurve/createbeziers-curve";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, sourceCurve);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+    },
+
+    Brep : {
+        changeSeam : function(face, direction, parameter, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/changeseam-brepface_int_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, face, direction, parameter, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        copyTrimCurves : function(trimSource, surfaceSource, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/copytrimcurves-brepface_surface_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, trimSource, surfaceSource, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createBaseballSphere : function(center, radius, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createbaseballsphere-point3d_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, center, radius, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createDevelopableLoft : function(crv0, crv1, reverse0, reverse1, density, multiple=false) {
+            let url="rhino/geometry/brep/createdevelopableloft-curve_curve_bool_bool_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, crv0, crv1, reverse0, reverse1, density);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createDevelopableLoft1 : function(rail0, rail1, fixedRulings, multiple=false) {
+            let url="rhino/geometry/brep/createdevelopableloft-nurbscurve_nurbscurve_point2darray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, rail0, rail1, fixedRulings);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createPlanarBreps : function(inputLoops, multiple=false) {
+            let url="rhino/geometry/brep/createplanarbreps-curvearray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, inputLoops);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createPlanarBreps1 : function(inputLoops, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createplanarbreps-curvearray_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, inputLoops, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createPlanarBreps2 : function(inputLoop, multiple=false) {
+            let url="rhino/geometry/brep/createplanarbreps-curve";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, inputLoop);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createPlanarBreps3 : function(inputLoop, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createplanarbreps-curve_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, inputLoop, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createTrimmedSurface : function(trimSource, surfaceSource, multiple=false) {
+            let url="rhino/geometry/brep/createtrimmedsurface-brepface_surface";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, trimSource, surfaceSource);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createTrimmedSurface1 : function(trimSource, surfaceSource, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createtrimmedsurface-brepface_surface_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, trimSource, surfaceSource, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromCornerPoints : function(corner1, corner2, corner3, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createfromcornerpoints-point3d_point3d_point3d_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, corner1, corner2, corner3, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromCornerPoints1 : function(corner1, corner2, corner3, corner4, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createfromcornerpoints-point3d_point3d_point3d_point3d_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, corner1, corner2, corner3, corner4, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createEdgeSurface : function(curves, multiple=false) {
+            let url="rhino/geometry/brep/createedgesurface-curvearray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curves);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createPlanarBreps4 : function(inputLoops, multiple=false) {
+            let url="rhino/geometry/brep/createplanarbreps-rhino.collections.curvelist";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, inputLoops);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createPlanarBreps5 : function(inputLoops, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createplanarbreps-rhino.collections.curvelist_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, inputLoops, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromOffsetFace : function(face, offsetDistance, offsetTolerance, bothSides, createSolid, multiple=false) {
+            let url="rhino/geometry/brep/createfromoffsetface-brepface_double_double_bool_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, face, offsetDistance, offsetTolerance, bothSides, createSolid);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createSolid : function(breps, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createsolid-breparray_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, breps, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        mergeSurfaces : function(surface0, surface1, tolerance, angleToleranceRadians, multiple=false) {
+            let url="rhino/geometry/brep/mergesurfaces-surface_surface_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface0, surface1, tolerance, angleToleranceRadians);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        mergeSurfaces1 : function(brep0, brep1, tolerance, angleToleranceRadians, multiple=false) {
+            let url="rhino/geometry/brep/mergesurfaces-brep_brep_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep0, brep1, tolerance, angleToleranceRadians);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        mergeSurfaces2 : function(brep0, brep1, tolerance, angleToleranceRadians, point0, point1, roundness, smooth, multiple=false) {
+            let url="rhino/geometry/brep/mergesurfaces-brep_brep_double_double_point2d_point2d_double_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep0, brep1, tolerance, angleToleranceRadians, point0, point1, roundness, smooth);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createPatch : function(geometry, startingSurface, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createpatch-geometrybasearray_surface_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, geometry, startingSurface, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createPatch1 : function(geometry, uSpans, vSpans, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createpatch-geometrybasearray_int_int_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, geometry, uSpans, vSpans, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createPatch2 : function(geometry, startingSurface, uSpans, vSpans, trim, tangency, pointSpacing, flexibility, surfacePull, fixEdges, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createpatch-geometrybasearray_surface_int_int_bool_bool_double_double_double_boolarray_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, geometry, startingSurface, uSpans, vSpans, trim, tangency, pointSpacing, flexibility, surfacePull, fixEdges, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createPipe : function(rail, radius, localBlending, cap, fitRail, absoluteTolerance, angleToleranceRadians, multiple=false) {
+            let url="rhino/geometry/brep/createpipe-curve_double_bool_pipecapmode_bool_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, rail, radius, localBlending, cap, fitRail, absoluteTolerance, angleToleranceRadians);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createPipe1 : function(rail, railRadiiParameters, radii, localBlending, cap, fitRail, absoluteTolerance, angleToleranceRadians, multiple=false) {
+            let url="rhino/geometry/brep/createpipe-curve_doublearray_doublearray_bool_pipecapmode_bool_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, rail, railRadiiParameters, radii, localBlending, cap, fitRail, absoluteTolerance, angleToleranceRadians);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromSweep : function(rail, shape, closed, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createfromsweep-curve_curve_bool_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, rail, shape, closed, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromSweep1 : function(rail, shapes, closed, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createfromsweep-curve_curvearray_bool_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, rail, shapes, closed, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromSweep2 : function(rail1, rail2, shape, closed, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createfromsweep-curve_curve_curve_bool_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, rail1, rail2, shape, closed, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromSweep3 : function(rail1, rail2, shapes, closed, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createfromsweep-curve_curve_curvearray_bool_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, rail1, rail2, shapes, closed, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromSweepSegmented : function(rail, shape, closed, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createfromsweepsegmented-curve_curve_bool_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, rail, shape, closed, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromSweepSegmented1 : function(rail, shapes, closed, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createfromsweepsegmented-curve_curvearray_bool_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, rail, shapes, closed, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromSweepInParts : function(rail1, rail2, shapes, rail_params, closed, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createfromsweepinparts-curve_curve_curvearray_point2darray_bool_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, rail1, rail2, shapes, rail_params, closed, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromTaperedExtrude : function(curveToExtrude, distance, direction, basePoint, draftAngleRadians, cornerType, tolerance, angleToleranceRadians, multiple=false) {
+            let url="rhino/geometry/brep/createfromtaperedextrude-curve_double_vector3d_point3d_double_extrudecornertype_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curveToExtrude, distance, direction, basePoint, draftAngleRadians, cornerType, tolerance, angleToleranceRadians);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromTaperedExtrude1 : function(curveToExtrude, distance, direction, basePoint, draftAngleRadians, cornerType, multiple=false) {
+            let url="rhino/geometry/brep/createfromtaperedextrude-curve_double_vector3d_point3d_double_extrudecornertype";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curveToExtrude, distance, direction, basePoint, draftAngleRadians, cornerType);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createBlendSurface : function(face0, edge0, domain0, rev0, continuity0, face1, edge1, domain1, rev1, continuity1, multiple=false) {
+            let url="rhino/geometry/brep/createblendsurface-brepface_brepedge_interval_bool_blendcontinuity_brepface_brepedge_interval_bool_blendcontinuity";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, face0, edge0, domain0, rev0, continuity0, face1, edge1, domain1, rev1, continuity1);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createBlendShape : function(face0, edge0, t0, rev0, continuity0, face1, edge1, t1, rev1, continuity1, multiple=false) {
+            let url="rhino/geometry/brep/createblendshape-brepface_brepedge_double_bool_blendcontinuity_brepface_brepedge_double_bool_blendcontinuity";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, face0, edge0, t0, rev0, continuity0, face1, edge1, t1, rev1, continuity1);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFilletSurface : function(face0, uv0, face1, uv1, radius, extend, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createfilletsurface-brepface_point2d_brepface_point2d_double_bool_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, face0, uv0, face1, uv1, radius, extend, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFilletSurface1 : function(face0, uv0, face1, uv1, radius, trim, extend, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createfilletsurface-brepface_point2d_brepface_point2d_double_bool_bool_double_breparray_breparray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, face0, uv0, face1, uv1, radius, trim, extend, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createChamferSurface : function(face0, uv0, radius0, face1, uv1, radius1, extend, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createchamfersurface-brepface_point2d_double_brepface_point2d_double_bool_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, face0, uv0, radius0, face1, uv1, radius1, extend, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createChamferSurface1 : function(face0, uv0, radius0, face1, uv1, radius1, trim, extend, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createchamfersurface-brepface_point2d_double_brepface_point2d_double_bool_bool_double_breparray_breparray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, face0, uv0, radius0, face1, uv1, radius1, trim, extend, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFilletEdges : function(brep, edgeIndices, startRadii, endRadii, blendType, railType, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createfilletedges-brep_intarray_doublearray_doublearray_blendtype_railtype_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, edgeIndices, startRadii, endRadii, blendType, railType, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createOffsetBrep : function(brep, distance, solid, extend, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createoffsetbrep-brep_double_bool_bool_double_breparray_breparray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, distance, solid, extend, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromJoinedEdges : function(brep0, edgeIndex0, brep1, edgeIndex1, joinTolerance, multiple=false) {
+            let url="rhino/geometry/brep/createfromjoinededges-brep_int_brep_int_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep0, edgeIndex0, brep1, edgeIndex1, joinTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromLoft : function(curves, start, end, loftType, closed, multiple=false) {
+            let url="rhino/geometry/brep/createfromloft-curvearray_point3d_point3d_lofttype_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curves, start, end, loftType, closed);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromLoftRebuild : function(curves, start, end, loftType, closed, rebuildPointCount, multiple=false) {
+            let url="rhino/geometry/brep/createfromloftrebuild-curvearray_point3d_point3d_lofttype_bool_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curves, start, end, loftType, closed, rebuildPointCount);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromLoftRefit : function(curves, start, end, loftType, closed, refitTolerance, multiple=false) {
+            let url="rhino/geometry/brep/createfromloftrefit-curvearray_point3d_point3d_lofttype_bool_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curves, start, end, loftType, closed, refitTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createBooleanUnion : function(breps, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createbooleanunion-breparray_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, breps, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createBooleanUnion1 : function(breps, tolerance, manifoldOnly, multiple=false) {
+            let url="rhino/geometry/brep/createbooleanunion-breparray_double_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, breps, tolerance, manifoldOnly);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createBooleanIntersection : function(firstSet, secondSet, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createbooleanintersection-breparray_breparray_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, firstSet, secondSet, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createBooleanIntersection1 : function(firstSet, secondSet, tolerance, manifoldOnly, multiple=false) {
+            let url="rhino/geometry/brep/createbooleanintersection-breparray_breparray_double_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, firstSet, secondSet, tolerance, manifoldOnly);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createBooleanIntersection2 : function(firstBrep, secondBrep, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createbooleanintersection-brep_brep_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, firstBrep, secondBrep, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createBooleanIntersection3 : function(firstBrep, secondBrep, tolerance, manifoldOnly, multiple=false) {
+            let url="rhino/geometry/brep/createbooleanintersection-brep_brep_double_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, firstBrep, secondBrep, tolerance, manifoldOnly);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createBooleanDifference : function(firstSet, secondSet, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createbooleandifference-breparray_breparray_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, firstSet, secondSet, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createBooleanDifference1 : function(firstSet, secondSet, tolerance, manifoldOnly, multiple=false) {
+            let url="rhino/geometry/brep/createbooleandifference-breparray_breparray_double_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, firstSet, secondSet, tolerance, manifoldOnly);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createBooleanDifference2 : function(firstBrep, secondBrep, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createbooleandifference-brep_brep_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, firstBrep, secondBrep, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createBooleanDifference3 : function(firstBrep, secondBrep, tolerance, manifoldOnly, multiple=false) {
+            let url="rhino/geometry/brep/createbooleandifference-brep_brep_double_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, firstBrep, secondBrep, tolerance, manifoldOnly);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createShell : function(brep, facesToRemove, distance, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/createshell-brep_intarray_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, facesToRemove, distance, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        joinBreps : function(brepsToJoin, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/joinbreps-breparray_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brepsToJoin, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        mergeBreps : function(brepsToMerge, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/mergebreps-breparray_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brepsToMerge, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createContourCurves : function(brepToContour, contourStart, contourEnd, interval, multiple=false) {
+            let url="rhino/geometry/brep/createcontourcurves-brep_point3d_point3d_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brepToContour, contourStart, contourEnd, interval);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createContourCurves1 : function(brepToContour, sectionPlane, multiple=false) {
+            let url="rhino/geometry/brep/createcontourcurves-brep_plane";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brepToContour, sectionPlane);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createCurvatureAnalysisMesh : function(brep, state, multiple=false) {
+            let url="rhino/geometry/brep/createcurvatureanalysismesh-brep_rhino.applicationsettings.curvatureanalysissettingsstate";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, state);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        getRegions : function(brep, multiple=false) {
+            let url="rhino/geometry/brep/getregions-brep";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        getWireframe : function(brep, density, multiple=false) {
+            let url="rhino/geometry/brep/getwireframe-brep_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, density);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        closestPoint : function(brep, testPoint, multiple=false) {
+            let url="rhino/geometry/brep/closestpoint-brep_point3d";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, testPoint);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        isPointInside : function(brep, point, tolerance, strictlyIn, multiple=false) {
+            let url="rhino/geometry/brep/ispointinside-brep_point3d_double_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, point, tolerance, strictlyIn);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        capPlanarHoles : function(brep, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/capplanarholes-brep_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        join : function(brep, otherBrep, tolerance, compact, multiple=false) {
+            let url="rhino/geometry/brep/join-brep_brep_double_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, otherBrep, tolerance, compact);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        joinNakedEdges : function(brep, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/joinnakededges-brep_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        mergeCoplanarFaces : function(brep, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/mergecoplanarfaces-brep_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        mergeCoplanarFaces1 : function(brep, tolerance, angleTolerance, multiple=false) {
+            let url="rhino/geometry/brep/mergecoplanarfaces-brep_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, tolerance, angleTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        split : function(brep, cutter, intersectionTolerance, multiple=false) {
+            let url="rhino/geometry/brep/split-brep_brep_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, cutter, intersectionTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        split1 : function(brep, cutter, intersectionTolerance, multiple=false) {
+            let url="rhino/geometry/brep/split-brep_brep_double_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, cutter, intersectionTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        split2 : function(brep, cutters, intersectionTolerance, multiple=false) {
+            let url="rhino/geometry/brep/split-brep_breparray_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, cutters, intersectionTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        split3 : function(brep, cutters, intersectionTolerance, multiple=false) {
+            let url="rhino/geometry/brep/split-brep_curvearray_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, cutters, intersectionTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        split4 : function(brep, cutters, normal, planView, intersectionTolerance, multiple=false) {
+            let url="rhino/geometry/brep/split-brep_geometrybasearray_vector3d_bool_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, cutters, normal, planView, intersectionTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        trim : function(brep, cutter, intersectionTolerance, multiple=false) {
+            let url="rhino/geometry/brep/trim-brep_brep_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, cutter, intersectionTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        trim1 : function(brep, cutter, intersectionTolerance, multiple=false) {
+            let url="rhino/geometry/brep/trim-brep_plane_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, cutter, intersectionTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        unjoinEdges : function(brep, edgesToUnjoin, multiple=false) {
+            let url="rhino/geometry/brep/unjoinedges-brep_intarray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, edgesToUnjoin);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        joinEdges : function(brep, edgeIndex0, edgeIndex1, joinTolerance, compact, multiple=false) {
+            let url="rhino/geometry/brep/joinedges-brep_int_int_double_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, edgeIndex0, edgeIndex1, joinTolerance, compact);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        transformComponent : function(brep, components, xform, tolerance, timeLimit, useMultipleThreads, multiple=false) {
+            let url="rhino/geometry/brep/transformcomponent-brep_componentindexarray_transform_double_double_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, components, xform, tolerance, timeLimit, useMultipleThreads);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        getArea : function(brep, multiple=false) {
+            let url="rhino/geometry/brep/getarea-brep";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        getArea1 : function(brep, relativeTolerance, absoluteTolerance, multiple=false) {
+            let url="rhino/geometry/brep/getarea-brep_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, relativeTolerance, absoluteTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        getVolume : function(brep, multiple=false) {
+            let url="rhino/geometry/brep/getvolume-brep";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        getVolume1 : function(brep, relativeTolerance, absoluteTolerance, multiple=false) {
+            let url="rhino/geometry/brep/getvolume-brep_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, relativeTolerance, absoluteTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        rebuildTrimsForV2 : function(brep, face, nurbsSurface, multiple=false) {
+            let url="rhino/geometry/brep/rebuildtrimsforv2-brep_brepface_nurbssurface";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, face, nurbsSurface);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        makeValidForV2 : function(brep, multiple=false) {
+            let url="rhino/geometry/brep/makevalidforv2-brep";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        repair : function(brep, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/repair-brep_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        removeHoles : function(brep, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/removeholes-brep_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        removeHoles1 : function(brep, loops, tolerance, multiple=false) {
+            let url="rhino/geometry/brep/removeholes-brep_componentindexarray_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, loops, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+    },
+
+    BrepFace : {
+        pullPointsToFace : function(brepface, points, tolerance, multiple=false) {
+            let url="rhino/geometry/brepface/pullpointstoface-brepface_point3darray_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brepface, points, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        draftAnglePoint : function(brepface, testPoint, testAngle, pullDirection, edge, multiple=false) {
+            let url="rhino/geometry/brepface/draftanglepoint-brepface_point2d_double_vector3d_bool_point3d_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brepface, testPoint, testAngle, pullDirection, edge);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        removeHoles : function(brepface, tolerance, multiple=false) {
+            let url="rhino/geometry/brepface/removeholes-brepface_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brepface, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        split : function(brepface, curves, tolerance, multiple=false) {
+            let url="rhino/geometry/brepface/split-brepface_curvearray_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brepface, curves, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        isPointOnFace : function(brepface, u, v, multiple=false) {
+            let url="rhino/geometry/brepface/ispointonface-brepface_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brepface, u, v);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        trimAwareIsoIntervals : function(brepface, direction, constantParameter, multiple=false) {
+            let url="rhino/geometry/brepface/trimawareisointervals-brepface_int_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brepface, direction, constantParameter);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        trimAwareIsoCurve : function(brepface, direction, constantParameter, multiple=false) {
+            let url="rhino/geometry/brepface/trimawareisocurve-brepface_int_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brepface, direction, constantParameter);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        changeSurface : function(brepface, surfaceIndex, multiple=false) {
+            let url="rhino/geometry/brepface/changesurface-brepface_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brepface, surfaceIndex);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        rebuildEdges : function(brepface, tolerance, rebuildSharedEdges, rebuildVertices, multiple=false) {
+            let url="rhino/geometry/brepface/rebuildedges-brepface_double_bool_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brepface, tolerance, rebuildSharedEdges, rebuildVertices);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+    },
+
+    Curve : {
+        getConicSectionType : function(curve, multiple=false) {
+            let url="rhino/geometry/curve/getconicsectiontype-curve";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createInterpolatedCurve : function(points, degree, multiple=false) {
+            let url="rhino/geometry/curve/createinterpolatedcurve-point3darray_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, points, degree);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createInterpolatedCurve1 : function(points, degree, knots, multiple=false) {
+            let url="rhino/geometry/curve/createinterpolatedcurve-point3darray_int_curveknotstyle";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, points, degree, knots);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createInterpolatedCurve2 : function(points, degree, knots, startTangent, endTangent, multiple=false) {
+            let url="rhino/geometry/curve/createinterpolatedcurve-point3darray_int_curveknotstyle_vector3d_vector3d";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, points, degree, knots, startTangent, endTangent);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createSoftEditCurve : function(curve, t, delta, length, fixEnds, multiple=false) {
+            let url="rhino/geometry/curve/createsofteditcurve-curve_double_vector3d_double_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, t, delta, length, fixEnds);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFilletCornersCurve : function(curve, radius, tolerance, angleTolerance, multiple=false) {
+            let url="rhino/geometry/curve/createfilletcornerscurve-curve_double_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, radius, tolerance, angleTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createArcBlend : function(startPt, startDir, endPt, endDir, controlPointLengthRatio, multiple=false) {
+            let url="rhino/geometry/curve/createarcblend-point3d_vector3d_point3d_vector3d_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, startPt, startDir, endPt, endDir, controlPointLengthRatio);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createMeanCurve : function(curveA, curveB, angleToleranceRadians, multiple=false) {
+            let url="rhino/geometry/curve/createmeancurve-curve_curve_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curveA, curveB, angleToleranceRadians);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createMeanCurve1 : function(curveA, curveB, multiple=false) {
+            let url="rhino/geometry/curve/createmeancurve-curve_curve";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curveA, curveB);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createBlendCurve : function(curveA, curveB, continuity, multiple=false) {
+            let url="rhino/geometry/curve/createblendcurve-curve_curve_blendcontinuity";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curveA, curveB, continuity);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createBlendCurve1 : function(curveA, curveB, continuity, bulgeA, bulgeB, multiple=false) {
+            let url="rhino/geometry/curve/createblendcurve-curve_curve_blendcontinuity_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curveA, curveB, continuity, bulgeA, bulgeB);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createBlendCurve2 : function(curve0, t0, reverse0, continuity0, curve1, t1, reverse1, continuity1, multiple=false) {
+            let url="rhino/geometry/curve/createblendcurve-curve_double_bool_blendcontinuity_curve_double_bool_blendcontinuity";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve0, t0, reverse0, continuity0, curve1, t1, reverse1, continuity1);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createTweenCurves : function(curve0, curve1, numCurves, multiple=false) {
+            let url="rhino/geometry/curve/createtweencurves-curve_curve_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve0, curve1, numCurves);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createTweenCurves1 : function(curve0, curve1, numCurves, tolerance, multiple=false) {
+            let url="rhino/geometry/curve/createtweencurves-curve_curve_int_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve0, curve1, numCurves, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createTweenCurvesWithMatching : function(curve0, curve1, numCurves, multiple=false) {
+            let url="rhino/geometry/curve/createtweencurveswithmatching-curve_curve_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve0, curve1, numCurves);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createTweenCurvesWithMatching1 : function(curve0, curve1, numCurves, tolerance, multiple=false) {
+            let url="rhino/geometry/curve/createtweencurveswithmatching-curve_curve_int_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve0, curve1, numCurves, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createTweenCurvesWithSampling : function(curve0, curve1, numCurves, numSamples, multiple=false) {
+            let url="rhino/geometry/curve/createtweencurveswithsampling-curve_curve_int_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve0, curve1, numCurves, numSamples);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createTweenCurvesWithSampling1 : function(curve0, curve1, numCurves, numSamples, tolerance, multiple=false) {
+            let url="rhino/geometry/curve/createtweencurveswithsampling-curve_curve_int_int_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve0, curve1, numCurves, numSamples, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        joinCurves : function(inputCurves, multiple=false) {
+            let url="rhino/geometry/curve/joincurves-curvearray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, inputCurves);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        joinCurves1 : function(inputCurves, joinTolerance, multiple=false) {
+            let url="rhino/geometry/curve/joincurves-curvearray_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, inputCurves, joinTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        joinCurves2 : function(inputCurves, joinTolerance, preserveDirection, multiple=false) {
+            let url="rhino/geometry/curve/joincurves-curvearray_double_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, inputCurves, joinTolerance, preserveDirection);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        makeEndsMeet : function(curveA, adjustStartCurveA, curveB, adjustStartCurveB, multiple=false) {
+            let url="rhino/geometry/curve/makeendsmeet-curve_bool_curve_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curveA, adjustStartCurveA, curveB, adjustStartCurveB);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFillet : function(curve0, curve1, radius, t0Base, t1Base, multiple=false) {
+            let url="rhino/geometry/curve/createfillet-curve_curve_double_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve0, curve1, radius, t0Base, t1Base);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFilletCurves : function(curve0, point0, curve1, point1, radius, join, trim, arcExtension, tolerance, angleTolerance, multiple=false) {
+            let url="rhino/geometry/curve/createfilletcurves-curve_point3d_curve_point3d_double_bool_bool_bool_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve0, point0, curve1, point1, radius, join, trim, arcExtension, tolerance, angleTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createBooleanUnion : function(curves, multiple=false) {
+            let url="rhino/geometry/curve/createbooleanunion-curvearray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curves);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createBooleanUnion1 : function(curves, tolerance, multiple=false) {
+            let url="rhino/geometry/curve/createbooleanunion-curvearray_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curves, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createBooleanIntersection : function(curveA, curveB, multiple=false) {
+            let url="rhino/geometry/curve/createbooleanintersection-curve_curve";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curveA, curveB);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createBooleanIntersection1 : function(curveA, curveB, tolerance, multiple=false) {
+            let url="rhino/geometry/curve/createbooleanintersection-curve_curve_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curveA, curveB, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createBooleanDifference : function(curveA, curveB, multiple=false) {
+            let url="rhino/geometry/curve/createbooleandifference-curve_curve";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curveA, curveB);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createBooleanDifference1 : function(curveA, curveB, tolerance, multiple=false) {
+            let url="rhino/geometry/curve/createbooleandifference-curve_curve_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curveA, curveB, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createBooleanDifference2 : function(curveA, subtractors, multiple=false) {
+            let url="rhino/geometry/curve/createbooleandifference-curve_curvearray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curveA, subtractors);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createBooleanDifference3 : function(curveA, subtractors, tolerance, multiple=false) {
+            let url="rhino/geometry/curve/createbooleandifference-curve_curvearray_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curveA, subtractors, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createTextOutlines : function(text, font, textHeight, textStyle, closeLoops, plane, smallCapsScale, tolerance, multiple=false) {
+            let url="rhino/geometry/curve/createtextoutlines-string_string_double_int_bool_plane_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, text, font, textHeight, textStyle, closeLoops, plane, smallCapsScale, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createCurve2View : function(curveA, curveB, vectorA, vectorB, tolerance, angleTolerance, multiple=false) {
+            let url="rhino/geometry/curve/createcurve2view-curve_curve_vector3d_vector3d_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curveA, curveB, vectorA, vectorB, tolerance, angleTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        doDirectionsMatch : function(curveA, curveB, multiple=false) {
+            let url="rhino/geometry/curve/dodirectionsmatch-curve_curve";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curveA, curveB);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        projectToMesh : function(curve, mesh, direction, tolerance, multiple=false) {
+            let url="rhino/geometry/curve/projecttomesh-curve_mesh_vector3d_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, mesh, direction, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        projectToMesh1 : function(curve, meshes, direction, tolerance, multiple=false) {
+            let url="rhino/geometry/curve/projecttomesh-curve_mesharray_vector3d_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, meshes, direction, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        projectToMesh2 : function(curves, meshes, direction, tolerance, multiple=false) {
+            let url="rhino/geometry/curve/projecttomesh-curvearray_mesharray_vector3d_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curves, meshes, direction, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        projectToBrep : function(curve, brep, direction, tolerance, multiple=false) {
+            let url="rhino/geometry/curve/projecttobrep-curve_brep_vector3d_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, brep, direction, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        projectToBrep1 : function(curve, breps, direction, tolerance, multiple=false) {
+            let url="rhino/geometry/curve/projecttobrep-curve_breparray_vector3d_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, breps, direction, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        projectToBrep2 : function(curve, breps, direction, tolerance, multiple=false) {
+            let url="rhino/geometry/curve/projecttobrep-curve_breparray_vector3d_double_intarray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, breps, direction, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        projectToBrep3 : function(curves, breps, direction, tolerance, multiple=false) {
+            let url="rhino/geometry/curve/projecttobrep-curvearray_breparray_vector3d_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curves, breps, direction, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        projectToBrep4 : function(curves, breps, direction, tolerance, multiple=false) {
+            let url="rhino/geometry/curve/projecttobrep-curvearray_breparray_vector3d_double_intarray_intarray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curves, breps, direction, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        projectToPlane : function(curve, plane, multiple=false) {
+            let url="rhino/geometry/curve/projecttoplane-curve_plane";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, plane);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        pullToBrepFace : function(curve, face, tolerance, multiple=false) {
+            let url="rhino/geometry/curve/pulltobrepface-curve_brepface_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, face, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        planarClosedCurveRelationship : function(curveA, curveB, testPlane, tolerance, multiple=false) {
+            let url="rhino/geometry/curve/planarclosedcurverelationship-curve_curve_plane_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curveA, curveB, testPlane, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        planarCurveCollision : function(curveA, curveB, testPlane, tolerance, multiple=false) {
+            let url="rhino/geometry/curve/planarcurvecollision-curve_curve_plane_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curveA, curveB, testPlane, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        duplicateSegments : function(curve, multiple=false) {
+            let url="rhino/geometry/curve/duplicatesegments-curve";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        smooth : function(curve, smoothFactor, bXSmooth, bYSmooth, bZSmooth, bFixBoundaries, coordinateSystem, multiple=false) {
+            let url="rhino/geometry/curve/smooth-curve_double_bool_bool_bool_bool_smoothingcoordinatesystem";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, smoothFactor, bXSmooth, bYSmooth, bZSmooth, bFixBoundaries, coordinateSystem);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        smooth1 : function(curve, smoothFactor, bXSmooth, bYSmooth, bZSmooth, bFixBoundaries, coordinateSystem, plane, multiple=false) {
+            let url="rhino/geometry/curve/smooth-curve_double_bool_bool_bool_bool_smoothingcoordinatesystem_plane";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, smoothFactor, bXSmooth, bYSmooth, bZSmooth, bFixBoundaries, coordinateSystem, plane);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        getLocalPerpPoint : function(curve, testPoint, seedParmameter, multiple=false) {
+            let url="rhino/geometry/curve/getlocalperppoint-curve_point3d_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, testPoint, seedParmameter);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        getLocalPerpPoint1 : function(curve, testPoint, seedParmameter, subDomain, multiple=false) {
+            let url="rhino/geometry/curve/getlocalperppoint-curve_point3d_double_interval_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, testPoint, seedParmameter, subDomain);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        getLocalTangentPoint : function(curve, testPoint, seedParmameter, multiple=false) {
+            let url="rhino/geometry/curve/getlocaltangentpoint-curve_point3d_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, testPoint, seedParmameter);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        getLocalTangentPoint1 : function(curve, testPoint, seedParmameter, subDomain, multiple=false) {
+            let url="rhino/geometry/curve/getlocaltangentpoint-curve_point3d_double_interval_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, testPoint, seedParmameter, subDomain);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        makeClosed : function(curve, tolerance, multiple=false) {
+            let url="rhino/geometry/curve/makeclosed-curve_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        lcoalClosestPoint : function(curve, testPoint, seed, multiple=false) {
+            let url="rhino/geometry/curve/lcoalclosestpoint-curve_point3d_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, testPoint, seed);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        closestPoint : function(curve, testPoint, multiple=false) {
+            let url="rhino/geometry/curve/closestpoint-curve_point3d_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, testPoint);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        closestPoint1 : function(curve, testPoint, maximumDistance, multiple=false) {
+            let url="rhino/geometry/curve/closestpoint-curve_point3d_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, testPoint, maximumDistance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        closestPoints : function(curve, otherCurve, multiple=false) {
+            let url="rhino/geometry/curve/closestpoints-curve_curve_point3d_point3d";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, otherCurve);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        contains : function(curve, testPoint, multiple=false) {
+            let url="rhino/geometry/curve/contains-curve_point3d";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, testPoint);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        contains1 : function(curve, testPoint, plane, multiple=false) {
+            let url="rhino/geometry/curve/contains-curve_point3d_plane";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, testPoint, plane);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        contains2 : function(curve, testPoint, plane, tolerance, multiple=false) {
+            let url="rhino/geometry/curve/contains-curve_point3d_plane_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, testPoint, plane, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        extremeParameters : function(curve, direction, multiple=false) {
+            let url="rhino/geometry/curve/extremeparameters-curve_vector3d";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, direction);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createPeriodicCurve : function(curve, multiple=false) {
+            let url="rhino/geometry/curve/createperiodiccurve-curve";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createPeriodicCurve1 : function(curve, smooth, multiple=false) {
+            let url="rhino/geometry/curve/createperiodiccurve-curve_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, smooth);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        pointAtLength : function(curve, length, multiple=false) {
+            let url="rhino/geometry/curve/pointatlength-curve_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, length);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        pointAtNormalizedLength : function(curve, length, multiple=false) {
+            let url="rhino/geometry/curve/pointatnormalizedlength-curve_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, length);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        perpendicularFrameAt : function(curve, t, multiple=false) {
+            let url="rhino/geometry/curve/perpendicularframeat-curve_double_plane";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, t);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        getPerpendicularFrames : function(curve, parameters, multiple=false) {
+            let url="rhino/geometry/curve/getperpendicularframes-curve_doublearray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, parameters);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        getLength : function(curve, multiple=false) {
+            let url="rhino/geometry/curve/getlength-curve";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        getLength1 : function(curve, fractionalTolerance, multiple=false) {
+            let url="rhino/geometry/curve/getlength-curve_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, fractionalTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        getLength2 : function(curve, subdomain, multiple=false) {
+            let url="rhino/geometry/curve/getlength-curve_interval";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, subdomain);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        getLength3 : function(curve, fractionalTolerance, subdomain, multiple=false) {
+            let url="rhino/geometry/curve/getlength-curve_double_interval";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, fractionalTolerance, subdomain);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        isShort : function(curve, tolerance, multiple=false) {
+            let url="rhino/geometry/curve/isshort-curve_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        isShort1 : function(curve, tolerance, subdomain, multiple=false) {
+            let url="rhino/geometry/curve/isshort-curve_double_interval";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, tolerance, subdomain);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        removeShortSegments : function(curve, tolerance, multiple=false) {
+            let url="rhino/geometry/curve/removeshortsegments-curve_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        lengthParameter : function(curve, segmentLength, multiple=false) {
+            let url="rhino/geometry/curve/lengthparameter-curve_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, segmentLength);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        lengthParameter1 : function(curve, segmentLength, fractionalTolerance, multiple=false) {
+            let url="rhino/geometry/curve/lengthparameter-curve_double_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, segmentLength, fractionalTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        lengthParameter2 : function(curve, segmentLength, subdomain, multiple=false) {
+            let url="rhino/geometry/curve/lengthparameter-curve_double_double_interval";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, segmentLength, subdomain);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        lengthParameter3 : function(curve, segmentLength, fractionalTolerance, subdomain, multiple=false) {
+            let url="rhino/geometry/curve/lengthparameter-curve_double_double_double_interval";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, segmentLength, fractionalTolerance, subdomain);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        normalizedLengthParameter : function(curve, s, multiple=false) {
+            let url="rhino/geometry/curve/normalizedlengthparameter-curve_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, s);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        normalizedLengthParameter1 : function(curve, s, fractionalTolerance, multiple=false) {
+            let url="rhino/geometry/curve/normalizedlengthparameter-curve_double_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, s, fractionalTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        normalizedLengthParameter2 : function(curve, s, subdomain, multiple=false) {
+            let url="rhino/geometry/curve/normalizedlengthparameter-curve_double_double_interval";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, s, subdomain);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        normalizedLengthParameter3 : function(curve, s, fractionalTolerance, subdomain, multiple=false) {
+            let url="rhino/geometry/curve/normalizedlengthparameter-curve_double_double_double_interval";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, s, fractionalTolerance, subdomain);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        normalizedLengthParameters : function(curve, s, absoluteTolerance, multiple=false) {
+            let url="rhino/geometry/curve/normalizedlengthparameters-curve_doublearray_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, s, absoluteTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        normalizedLengthParameters1 : function(curve, s, absoluteTolerance, fractionalTolerance, multiple=false) {
+            let url="rhino/geometry/curve/normalizedlengthparameters-curve_doublearray_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, s, absoluteTolerance, fractionalTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        normalizedLengthParameters2 : function(curve, s, absoluteTolerance, subdomain, multiple=false) {
+            let url="rhino/geometry/curve/normalizedlengthparameters-curve_doublearray_double_interval";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, s, absoluteTolerance, subdomain);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        normalizedLengthParameters3 : function(curve, s, absoluteTolerance, fractionalTolerance, subdomain, multiple=false) {
+            let url="rhino/geometry/curve/normalizedlengthparameters-curve_doublearray_double_double_interval";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, s, absoluteTolerance, fractionalTolerance, subdomain);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        divideByCount : function(curve, segmentCount, includeEnds, multiple=false) {
+            let url="rhino/geometry/curve/dividebycount-curve_int_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, segmentCount, includeEnds);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        divideByCount1 : function(curve, segmentCount, includeEnds, multiple=false) {
+            let url="rhino/geometry/curve/dividebycount-curve_int_bool_point3darray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, segmentCount, includeEnds);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        divideByLength : function(curve, segmentLength, includeEnds, multiple=false) {
+            let url="rhino/geometry/curve/dividebylength-curve_double_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, segmentLength, includeEnds);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        divideByLength1 : function(curve, segmentLength, includeEnds, reverse, multiple=false) {
+            let url="rhino/geometry/curve/dividebylength-curve_double_bool_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, segmentLength, includeEnds, reverse);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        divideByLength2 : function(curve, segmentLength, includeEnds, multiple=false) {
+            let url="rhino/geometry/curve/dividebylength-curve_double_bool_point3darray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, segmentLength, includeEnds);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        divideByLength3 : function(curve, segmentLength, includeEnds, reverse, multiple=false) {
+            let url="rhino/geometry/curve/dividebylength-curve_double_bool_bool_point3darray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, segmentLength, includeEnds, reverse);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        divideEquidistant : function(curve, distance, multiple=false) {
+            let url="rhino/geometry/curve/divideequidistant-curve_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, distance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        divideAsContour : function(curve, contourStart, contourEnd, interval, multiple=false) {
+            let url="rhino/geometry/curve/divideascontour-curve_point3d_point3d_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, contourStart, contourEnd, interval);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        trim : function(curve, side, length, multiple=false) {
+            let url="rhino/geometry/curve/trim-curve_curveend_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, side, length);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        split : function(curve, cutter, tolerance, multiple=false) {
+            let url="rhino/geometry/curve/split-curve_brep_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, cutter, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        split1 : function(curve, cutter, tolerance, angleToleranceRadians, multiple=false) {
+            let url="rhino/geometry/curve/split-curve_brep_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, cutter, tolerance, angleToleranceRadians);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        split2 : function(curve, cutter, tolerance, multiple=false) {
+            let url="rhino/geometry/curve/split-curve_surface_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, cutter, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        split3 : function(curve, cutter, tolerance, angleToleranceRadians, multiple=false) {
+            let url="rhino/geometry/curve/split-curve_surface_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, cutter, tolerance, angleToleranceRadians);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        extend : function(curve, t0, t1, multiple=false) {
+            let url="rhino/geometry/curve/extend-curve_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, t0, t1);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        extend1 : function(curve, domain, multiple=false) {
+            let url="rhino/geometry/curve/extend-curve_interval";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, domain);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        extend2 : function(curve, side, length, style, multiple=false) {
+            let url="rhino/geometry/curve/extend-curve_curveend_double_curveextensionstyle";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, side, length, style);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        extend3 : function(curve, side, style, geometry, multiple=false) {
+            let url="rhino/geometry/curve/extend-curve_curveend_curveextensionstyle_geometrybasearray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, side, style, geometry);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        extend4 : function(curve, side, style, endPoint, multiple=false) {
+            let url="rhino/geometry/curve/extend-curve_curveend_curveextensionstyle_point3d";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, side, style, endPoint);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        extendOnSurface : function(curve, side, surface, multiple=false) {
+            let url="rhino/geometry/curve/extendonsurface-curve_curveend_surface";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, side, surface);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        extendOnSurface1 : function(curve, side, face, multiple=false) {
+            let url="rhino/geometry/curve/extendonsurface-curve_curveend_brepface";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, side, face);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        extendByLine : function(curve, side, geometry, multiple=false) {
+            let url="rhino/geometry/curve/extendbyline-curve_curveend_geometrybasearray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, side, geometry);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        extendByArc : function(curve, side, geometry, multiple=false) {
+            let url="rhino/geometry/curve/extendbyarc-curve_curveend_geometrybasearray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, side, geometry);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        simplify : function(curve, options, distanceTolerance, angleToleranceRadians, multiple=false) {
+            let url="rhino/geometry/curve/simplify-curve_curvesimplifyoptions_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, options, distanceTolerance, angleToleranceRadians);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        simplifyEnd : function(curve, end, options, distanceTolerance, angleToleranceRadians, multiple=false) {
+            let url="rhino/geometry/curve/simplifyend-curve_curveend_curvesimplifyoptions_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, end, options, distanceTolerance, angleToleranceRadians);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        fair : function(curve, distanceTolerance, angleTolerance, clampStart, clampEnd, iterations, multiple=false) {
+            let url="rhino/geometry/curve/fair-curve_double_double_int_int_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, distanceTolerance, angleTolerance, clampStart, clampEnd, iterations);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        fit : function(curve, degree, fitTolerance, angleTolerance, multiple=false) {
+            let url="rhino/geometry/curve/fit-curve_int_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, degree, fitTolerance, angleTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        rebuild : function(curve, pointCount, degree, preserveTangents, multiple=false) {
+            let url="rhino/geometry/curve/rebuild-curve_int_int_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, pointCount, degree, preserveTangents);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        toPolyline : function(curve, mainSegmentCount, subSegmentCount, maxAngleRadians, maxChordLengthRatio, maxAspectRatio, tolerance, minEdgeLength, maxEdgeLength, keepStartPoint, multiple=false) {
+            let url="rhino/geometry/curve/topolyline-curve_int_int_double_double_double_double_double_double_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, mainSegmentCount, subSegmentCount, maxAngleRadians, maxChordLengthRatio, maxAspectRatio, tolerance, minEdgeLength, maxEdgeLength, keepStartPoint);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        toPolyline1 : function(curve, mainSegmentCount, subSegmentCount, maxAngleRadians, maxChordLengthRatio, maxAspectRatio, tolerance, minEdgeLength, maxEdgeLength, keepStartPoint, curveDomain, multiple=false) {
+            let url="rhino/geometry/curve/topolyline-curve_int_int_double_double_double_double_double_double_bool_interval";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, mainSegmentCount, subSegmentCount, maxAngleRadians, maxChordLengthRatio, maxAspectRatio, tolerance, minEdgeLength, maxEdgeLength, keepStartPoint, curveDomain);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        toPolyline2 : function(curve, tolerance, angleTolerance, minimumLength, maximumLength, multiple=false) {
+            let url="rhino/geometry/curve/topolyline-curve_double_double_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, tolerance, angleTolerance, minimumLength, maximumLength);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        toArcsAndLines : function(curve, tolerance, angleTolerance, minimumLength, maximumLength, multiple=false) {
+            let url="rhino/geometry/curve/toarcsandlines-curve_double_double_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, tolerance, angleTolerance, minimumLength, maximumLength);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        pullToMesh : function(curve, mesh, tolerance, multiple=false) {
+            let url="rhino/geometry/curve/pulltomesh-curve_mesh_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, mesh, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        offset : function(curve, plane, distance, tolerance, cornerStyle, multiple=false) {
+            let url="rhino/geometry/curve/offset-curve_plane_double_double_curveoffsetcornerstyle";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, plane, distance, tolerance, cornerStyle);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        offset1 : function(curve, directionPoint, normal, distance, tolerance, cornerStyle, multiple=false) {
+            let url="rhino/geometry/curve/offset-curve_point3d_vector3d_double_double_curveoffsetcornerstyle";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, directionPoint, normal, distance, tolerance, cornerStyle);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        ribbonOffset : function(curve, distance, blendRadius, directionPoint, normal, tolerance, multiple=false) {
+            let url="rhino/geometry/curve/ribbonoffset-curve_double_double_point3d_vector3d_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, distance, blendRadius, directionPoint, normal, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        offsetOnSurface : function(curve, face, distance, fittingTolerance, multiple=false) {
+            let url="rhino/geometry/curve/offsetonsurface-curve_brepface_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, face, distance, fittingTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        offsetOnSurface1 : function(curve, face, throughPoint, fittingTolerance, multiple=false) {
+            let url="rhino/geometry/curve/offsetonsurface-curve_brepface_point2d_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, face, throughPoint, fittingTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        offsetOnSurface2 : function(curve, face, curveParameters, offsetDistances, fittingTolerance, multiple=false) {
+            let url="rhino/geometry/curve/offsetonsurface-curve_brepface_doublearray_doublearray_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, face, curveParameters, offsetDistances, fittingTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        offsetOnSurface3 : function(curve, surface, distance, fittingTolerance, multiple=false) {
+            let url="rhino/geometry/curve/offsetonsurface-curve_surface_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, surface, distance, fittingTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        offsetOnSurface4 : function(curve, surface, throughPoint, fittingTolerance, multiple=false) {
+            let url="rhino/geometry/curve/offsetonsurface-curve_surface_point2d_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, surface, throughPoint, fittingTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        offsetOnSurface5 : function(curve, surface, curveParameters, offsetDistances, fittingTolerance, multiple=false) {
+            let url="rhino/geometry/curve/offsetonsurface-curve_surface_doublearray_doublearray_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, surface, curveParameters, offsetDistances, fittingTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        pullToBrepFace1 : function(curve, face, tolerance, multiple=false) {
+            let url="rhino/geometry/curve/pulltobrepface-curve_brepface_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, face, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        offsetNormalToSurface : function(curve, surface, height, multiple=false) {
+            let url="rhino/geometry/curve/offsetnormaltosurface-curve_surface_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, surface, height);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+    },
+
+    AreaMassProperties : {
+        compute : function(closedPlanarCurve, multiple=false) {
+            let url="rhino/geometry/areamassproperties/compute-curve";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, closedPlanarCurve);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        compute1 : function(closedPlanarCurve, planarTolerance, multiple=false) {
+            let url="rhino/geometry/areamassproperties/compute-curve_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, closedPlanarCurve, planarTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        compute2 : function(hatch, multiple=false) {
+            let url="rhino/geometry/areamassproperties/compute-hatch";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, hatch);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        compute3 : function(mesh, multiple=false) {
+            let url="rhino/geometry/areamassproperties/compute-mesh";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        compute4 : function(mesh, area, firstMoments, secondMoments, productMoments, multiple=false) {
+            let url="rhino/geometry/areamassproperties/compute-mesh_bool_bool_bool_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, area, firstMoments, secondMoments, productMoments);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        compute5 : function(brep, multiple=false) {
+            let url="rhino/geometry/areamassproperties/compute-brep";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        compute6 : function(brep, area, firstMoments, secondMoments, productMoments, multiple=false) {
+            let url="rhino/geometry/areamassproperties/compute-brep_bool_bool_bool_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, area, firstMoments, secondMoments, productMoments);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        compute7 : function(surface, multiple=false) {
+            let url="rhino/geometry/areamassproperties/compute-surface";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        compute8 : function(surface, area, firstMoments, secondMoments, productMoments, multiple=false) {
+            let url="rhino/geometry/areamassproperties/compute-surface_bool_bool_bool_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface, area, firstMoments, secondMoments, productMoments);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        compute9 : function(geometry, multiple=false) {
+            let url="rhino/geometry/areamassproperties/compute-geometrybasearray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, geometry);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        compute10 : function(geometry, area, firstMoments, secondMoments, productMoments, multiple=false) {
+            let url="rhino/geometry/areamassproperties/compute-geometrybasearray_bool_bool_bool_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, geometry, area, firstMoments, secondMoments, productMoments);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+    },
+
+    VolumeMassProperties : {
+        compute : function(mesh, multiple=false) {
+            let url="rhino/geometry/volumemassproperties/compute-mesh";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        compute1 : function(mesh, volume, firstMoments, secondMoments, productMoments, multiple=false) {
+            let url="rhino/geometry/volumemassproperties/compute-mesh_bool_bool_bool_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, volume, firstMoments, secondMoments, productMoments);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        compute2 : function(brep, multiple=false) {
+            let url="rhino/geometry/volumemassproperties/compute-brep";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        compute3 : function(brep, volume, firstMoments, secondMoments, productMoments, multiple=false) {
+            let url="rhino/geometry/volumemassproperties/compute-brep_bool_bool_bool_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, volume, firstMoments, secondMoments, productMoments);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        compute4 : function(surface, multiple=false) {
+            let url="rhino/geometry/volumemassproperties/compute-surface";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        compute5 : function(surface, volume, firstMoments, secondMoments, productMoments, multiple=false) {
+            let url="rhino/geometry/volumemassproperties/compute-surface_bool_bool_bool_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface, volume, firstMoments, secondMoments, productMoments);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        compute6 : function(geometry, multiple=false) {
+            let url="rhino/geometry/volumemassproperties/compute-geometrybasearray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, geometry);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        compute7 : function(geometry, volume, firstMoments, secondMoments, productMoments, multiple=false) {
+            let url="rhino/geometry/volumemassproperties/compute-geometrybasearray_bool_bool_bool_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, geometry, volume, firstMoments, secondMoments, productMoments);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        sum : function(volumemassproperties, summand, multiple=false) {
+            let url="rhino/geometry/volumemassproperties/sum-volumemassproperties_volumemassproperties";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, volumemassproperties, summand);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+    },
+
+    Mesh : {
+        createFromPlane : function(plane, xInterval, yInterval, xCount, yCount, multiple=false) {
+            let url="rhino/geometry/mesh/createfromplane-plane_interval_interval_int_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, plane, xInterval, yInterval, xCount, yCount);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromBox : function(box, xCount, yCount, zCount, multiple=false) {
+            let url="rhino/geometry/mesh/createfrombox-boundingbox_int_int_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, box, xCount, yCount, zCount);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromBox1 : function(box, xCount, yCount, zCount, multiple=false) {
+            let url="rhino/geometry/mesh/createfrombox-box_int_int_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, box, xCount, yCount, zCount);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromBox2 : function(corners, xCount, yCount, zCount, multiple=false) {
+            let url="rhino/geometry/mesh/createfrombox-point3darray_int_int_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, corners, xCount, yCount, zCount);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromSphere : function(sphere, xCount, yCount, multiple=false) {
+            let url="rhino/geometry/mesh/createfromsphere-sphere_int_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, sphere, xCount, yCount);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createIcoSphere : function(sphere, subdivisions, multiple=false) {
+            let url="rhino/geometry/mesh/createicosphere-sphere_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, sphere, subdivisions);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createQuadSphere : function(sphere, subdivisions, multiple=false) {
+            let url="rhino/geometry/mesh/createquadsphere-sphere_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, sphere, subdivisions);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromCylinder : function(cylinder, vertical, around, multiple=false) {
+            let url="rhino/geometry/mesh/createfromcylinder-cylinder_int_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, cylinder, vertical, around);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromCone : function(cone, vertical, around, multiple=false) {
+            let url="rhino/geometry/mesh/createfromcone-cone_int_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, cone, vertical, around);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromCone1 : function(cone, vertical, around, solid, multiple=false) {
+            let url="rhino/geometry/mesh/createfromcone-cone_int_int_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, cone, vertical, around, solid);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromPlanarBoundary : function(boundary, parameters, multiple=false) {
+            let url="rhino/geometry/mesh/createfromplanarboundary-curve_meshingparameters";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, boundary, parameters);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromPlanarBoundary1 : function(boundary, parameters, tolerance, multiple=false) {
+            let url="rhino/geometry/mesh/createfromplanarboundary-curve_meshingparameters_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, boundary, parameters, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromClosedPolyline : function(polyline, multiple=false) {
+            let url="rhino/geometry/mesh/createfromclosedpolyline-polyline";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, polyline);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromTessellation : function(points, edges, plane, allowNewVertices, multiple=false) {
+            let url="rhino/geometry/mesh/createfromtessellation-point3darray_ienumerable<point3d>array_plane_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, points, edges, plane, allowNewVertices);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromBrep : function(brep, multiple=false) {
+            let url="rhino/geometry/mesh/createfrombrep-brep";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromBrep1 : function(brep, meshingParameters, multiple=false) {
+            let url="rhino/geometry/mesh/createfrombrep-brep_meshingparameters";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, meshingParameters);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromSurface : function(surface, multiple=false) {
+            let url="rhino/geometry/mesh/createfromsurface-surface";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromSurface1 : function(surface, meshingParameters, multiple=false) {
+            let url="rhino/geometry/mesh/createfromsurface-surface_meshingparameters";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface, meshingParameters);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createPatch : function(outerBoundary, angleToleranceRadians, pullbackSurface, innerBoundaryCurves, innerBothSideCurves, innerPoints, trimback, divisions, multiple=false) {
+            let url="rhino/geometry/mesh/createpatch-polyline_double_surface_curvearray_curvearray_point3darray_bool_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, outerBoundary, angleToleranceRadians, pullbackSurface, innerBoundaryCurves, innerBothSideCurves, innerPoints, trimback, divisions);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createBooleanUnion : function(meshes, multiple=false) {
+            let url="rhino/geometry/mesh/createbooleanunion-mesharray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, meshes);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createBooleanDifference : function(firstSet, secondSet, multiple=false) {
+            let url="rhino/geometry/mesh/createbooleandifference-mesharray_mesharray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, firstSet, secondSet);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createBooleanIntersection : function(firstSet, secondSet, multiple=false) {
+            let url="rhino/geometry/mesh/createbooleanintersection-mesharray_mesharray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, firstSet, secondSet);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createBooleanSplit : function(meshesToSplit, meshSplitters, multiple=false) {
+            let url="rhino/geometry/mesh/createbooleansplit-mesharray_mesharray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, meshesToSplit, meshSplitters);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromCurvePipe : function(curve, radius, segments, accuracy, capType, faceted, intervals, multiple=false) {
+            let url="rhino/geometry/mesh/createfromcurvepipe-curve_double_int_int_meshpipecapstyle_bool_intervalarray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, radius, segments, accuracy, capType, faceted, intervals);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        volume : function(mesh, multiple=false) {
+            let url="rhino/geometry/mesh/volume-mesh";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        smooth : function(mesh, smoothFactor, bXSmooth, bYSmooth, bZSmooth, bFixBoundaries, coordinateSystem, multiple=false) {
+            let url="rhino/geometry/mesh/smooth-mesh_double_bool_bool_bool_bool_smoothingcoordinatesystem";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, smoothFactor, bXSmooth, bYSmooth, bZSmooth, bFixBoundaries, coordinateSystem);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        smooth1 : function(mesh, smoothFactor, bXSmooth, bYSmooth, bZSmooth, bFixBoundaries, coordinateSystem, plane, multiple=false) {
+            let url="rhino/geometry/mesh/smooth-mesh_double_bool_bool_bool_bool_smoothingcoordinatesystem_plane";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, smoothFactor, bXSmooth, bYSmooth, bZSmooth, bFixBoundaries, coordinateSystem, plane);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        smooth2 : function(mesh, vertexIndices, smoothFactor, bXSmooth, bYSmooth, bZSmooth, bFixBoundaries, coordinateSystem, plane, multiple=false) {
+            let url="rhino/geometry/mesh/smooth-mesh_intarray_double_bool_bool_bool_bool_smoothingcoordinatesystem_plane";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, vertexIndices, smoothFactor, bXSmooth, bYSmooth, bZSmooth, bFixBoundaries, coordinateSystem, plane);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        unweld : function(mesh, angleToleranceRadians, modifyNormals, multiple=false) {
+            let url="rhino/geometry/mesh/unweld-mesh_double_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, angleToleranceRadians, modifyNormals);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        unweldEdge : function(mesh, edgeIndices, modifyNormals, multiple=false) {
+            let url="rhino/geometry/mesh/unweldedge-mesh_intarray_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, edgeIndices, modifyNormals);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        weld : function(mesh, angleToleranceRadians, multiple=false) {
+            let url="rhino/geometry/mesh/weld-mesh_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, angleToleranceRadians);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        rebuildNormals : function(mesh, multiple=false) {
+            let url="rhino/geometry/mesh/rebuildnormals-mesh";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        extractNonManifoldEdges : function(mesh, selective, multiple=false) {
+            let url="rhino/geometry/mesh/extractnonmanifoldedges-mesh_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, selective);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        healNakedEdges : function(mesh, distance, multiple=false) {
+            let url="rhino/geometry/mesh/healnakededges-mesh_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, distance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        fillHoles : function(mesh, multiple=false) {
+            let url="rhino/geometry/mesh/fillholes-mesh";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        fileHole : function(mesh, topologyEdgeIndex, multiple=false) {
+            let url="rhino/geometry/mesh/filehole-mesh_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, topologyEdgeIndex);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        unifyNormals : function(mesh, multiple=false) {
+            let url="rhino/geometry/mesh/unifynormals-mesh";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        unifyNormals1 : function(mesh, countOnly, multiple=false) {
+            let url="rhino/geometry/mesh/unifynormals-mesh_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, countOnly);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        splitDisjointPieces : function(mesh, multiple=false) {
+            let url="rhino/geometry/mesh/splitdisjointpieces-mesh";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        split : function(mesh, plane, multiple=false) {
+            let url="rhino/geometry/mesh/split-mesh_plane";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, plane);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        split1 : function(mesh, mesh2, multiple=false) {
+            let url="rhino/geometry/mesh/split-mesh_mesh";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, mesh2);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        split2 : function(mesh, meshes, multiple=false) {
+            let url="rhino/geometry/mesh/split-mesh_mesharray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, meshes);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        getOutlines : function(mesh, plane, multiple=false) {
+            let url="rhino/geometry/mesh/getoutlines-mesh_plane";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, plane);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        getOutlines1 : function(mesh, viewport, multiple=false) {
+            let url="rhino/geometry/mesh/getoutlines-mesh_display.rhinoviewport";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, viewport);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        getOutlines2 : function(mesh, viewportInfo, plane, multiple=false) {
+            let url="rhino/geometry/mesh/getoutlines-mesh_viewportinfo_plane";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, viewportInfo, plane);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        getNakedEdges : function(mesh, multiple=false) {
+            let url="rhino/geometry/mesh/getnakededges-mesh";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        explodeAtUnweldedEdges : function(mesh, multiple=false) {
+            let url="rhino/geometry/mesh/explodeatunweldededges-mesh";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        closestPoint : function(mesh, testPoint, multiple=false) {
+            let url="rhino/geometry/mesh/closestpoint-mesh_point3d";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, testPoint);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        closestMeshPoint : function(mesh, testPoint, maximumDistance, multiple=false) {
+            let url="rhino/geometry/mesh/closestmeshpoint-mesh_point3d_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, testPoint, maximumDistance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        closestPoint1 : function(mesh, testPoint, maximumDistance, multiple=false) {
+            let url="rhino/geometry/mesh/closestpoint-mesh_point3d_point3d_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, testPoint, maximumDistance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        closestPoint2 : function(mesh, testPoint, maximumDistance, multiple=false) {
+            let url="rhino/geometry/mesh/closestpoint-mesh_point3d_point3d_vector3d_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, testPoint, maximumDistance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        pointAt : function(mesh, meshPoint, multiple=false) {
+            let url="rhino/geometry/mesh/pointat-mesh_meshpoint";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, meshPoint);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        pointAt1 : function(mesh, faceIndex, t0, t1, t2, t3, multiple=false) {
+            let url="rhino/geometry/mesh/pointat-mesh_int_double_double_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, faceIndex, t0, t1, t2, t3);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        normalAt : function(mesh, meshPoint, multiple=false) {
+            let url="rhino/geometry/mesh/normalat-mesh_meshpoint";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, meshPoint);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        normalAt1 : function(mesh, faceIndex, t0, t1, t2, t3, multiple=false) {
+            let url="rhino/geometry/mesh/normalat-mesh_int_double_double_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, faceIndex, t0, t1, t2, t3);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        colorAt : function(mesh, meshPoint, multiple=false) {
+            let url="rhino/geometry/mesh/colorat-mesh_meshpoint";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, meshPoint);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        colorAt1 : function(mesh, faceIndex, t0, t1, t2, t3, multiple=false) {
+            let url="rhino/geometry/mesh/colorat-mesh_int_double_double_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, faceIndex, t0, t1, t2, t3);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        pullPointsToMesh : function(mesh, points, multiple=false) {
+            let url="rhino/geometry/mesh/pullpointstomesh-mesh_point3darray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, points);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        offset : function(mesh, distance, multiple=false) {
+            let url="rhino/geometry/mesh/offset-mesh_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, distance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        offset1 : function(mesh, distance, solidify, multiple=false) {
+            let url="rhino/geometry/mesh/offset-mesh_double_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, distance, solidify);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        offset2 : function(mesh, distance, solidify, direction, multiple=false) {
+            let url="rhino/geometry/mesh/offset-mesh_double_bool_vector3d";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, distance, solidify, direction);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        collapseFacesByEdgeLength : function(mesh, bGreaterThan, edgeLength, multiple=false) {
+            let url="rhino/geometry/mesh/collapsefacesbyedgelength-mesh_bool_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, bGreaterThan, edgeLength);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        collapseFacesByArea : function(mesh, lessThanArea, greaterThanArea, multiple=false) {
+            let url="rhino/geometry/mesh/collapsefacesbyarea-mesh_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, lessThanArea, greaterThanArea);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        collapseFacesByByAspectRatio : function(mesh, aspectRatio, multiple=false) {
+            let url="rhino/geometry/mesh/collapsefacesbybyaspectratio-mesh_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, aspectRatio);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        getUnsafeLock : function(mesh, writable, multiple=false) {
+            let url="rhino/geometry/mesh/getunsafelock-mesh_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, writable);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        releaseUnsafeLock : function(mesh, meshData, multiple=false) {
+            let url="rhino/geometry/mesh/releaseunsafelock-mesh_meshunsafelock";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, meshData);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        withShutLining : function(mesh, faceted, tolerance, curves, multiple=false) {
+            let url="rhino/geometry/mesh/withshutlining-mesh_bool_double_shutliningcurveinfoarray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, faceted, tolerance, curves);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        withDisplacement : function(mesh, displacement, multiple=false) {
+            let url="rhino/geometry/mesh/withdisplacement-mesh_meshdisplacementinfo";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, displacement);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        withEdgeSoftening : function(mesh, softeningRadius, chamfer, faceted, force, angleThreshold, multiple=false) {
+            let url="rhino/geometry/mesh/withedgesoftening-mesh_double_bool_bool_bool_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, softeningRadius, chamfer, faceted, force, angleThreshold);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        reduce : function(mesh, desiredPolygonCount, allowDistortion, accuracy, normalizeSize, multiple=false) {
+            let url="rhino/geometry/mesh/reduce-mesh_int_bool_int_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, desiredPolygonCount, allowDistortion, accuracy, normalizeSize);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        reduce1 : function(mesh, desiredPolygonCount, allowDistortion, accuracy, normalizeSize, cancelToken, progress, multiple=false) {
+            let url="rhino/geometry/mesh/reduce-mesh_int_bool_int_bool_system.threading.cancellationtoken_doublearray_string";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, desiredPolygonCount, allowDistortion, accuracy, normalizeSize, cancelToken, progress);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        reduce2 : function(mesh, parameters, multiple=false) {
+            let url="rhino/geometry/mesh/reduce-mesh_reducemeshparameters";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, parameters);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        computeThickness : function(meshes, maximumThickness, multiple=false) {
+            let url="rhino/geometry/mesh/computethickness-mesharray_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, meshes, maximumThickness);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        computeThickness1 : function(meshes, maximumThickness, cancelToken, multiple=false) {
+            let url="rhino/geometry/mesh/computethickness-mesharray_double_system.threading.cancellationtoken";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, meshes, maximumThickness, cancelToken);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        computeThickness2 : function(meshes, maximumThickness, sharpAngle, cancelToken, multiple=false) {
+            let url="rhino/geometry/mesh/computethickness-mesharray_double_double_system.threading.cancellationtoken";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, meshes, maximumThickness, sharpAngle, cancelToken);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createContourCurves : function(meshToContour, contourStart, contourEnd, interval, multiple=false) {
+            let url="rhino/geometry/mesh/createcontourcurves-mesh_point3d_point3d_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, meshToContour, contourStart, contourEnd, interval);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createContourCurves1 : function(meshToContour, sectionPlane, multiple=false) {
+            let url="rhino/geometry/mesh/createcontourcurves-mesh_plane";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, meshToContour, sectionPlane);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+    },
+
+    NurbsCurve : {
+        makeCompatible : function(curves, startPt, endPt, simplifyMethod, numPoints, refitTolerance, angleTolerance, multiple=false) {
+            let url="rhino/geometry/nurbscurve/makecompatible-curvearray_point3d_point3d_int_int_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curves, startPt, endPt, simplifyMethod, numPoints, refitTolerance, angleTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createParabolaFromVertex : function(vertex, startPoint, endPoint, multiple=false) {
+            let url="rhino/geometry/nurbscurve/createparabolafromvertex-point3d_point3d_point3d";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, vertex, startPoint, endPoint);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createParabolaFromFocus : function(focus, startPoint, endPoint, multiple=false) {
+            let url="rhino/geometry/nurbscurve/createparabolafromfocus-point3d_point3d_point3d";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, focus, startPoint, endPoint);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromArc : function(arc, degree, cvCount, multiple=false) {
+            let url="rhino/geometry/nurbscurve/createfromarc-arc_int_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, arc, degree, cvCount);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromCircle : function(circle, degree, cvCount, multiple=false) {
+            let url="rhino/geometry/nurbscurve/createfromcircle-circle_int_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, circle, degree, cvCount);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        setEndCondition : function(nurbscurve, bSetEnd, continuity, point, tangent, multiple=false) {
+            let url="rhino/geometry/nurbscurve/setendcondition-nurbscurve_bool_nurbscurveendconditiontype_point3d_vector3d";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, nurbscurve, bSetEnd, continuity, point, tangent);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        setEndCondition1 : function(nurbscurve, bSetEnd, continuity, point, tangent, curvature, multiple=false) {
+            let url="rhino/geometry/nurbscurve/setendcondition-nurbscurve_bool_nurbscurveendconditiontype_point3d_vector3d_vector3d";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, nurbscurve, bSetEnd, continuity, point, tangent, curvature);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        setGrevillePoints : function(nurbscurve, points, multiple=false) {
+            let url="rhino/geometry/nurbscurve/setgrevillepoints-nurbscurve_point3darray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, nurbscurve, points);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createSpiral : function(axisStart, axisDir, radiusPoint, pitch, turnCount, radius0, radius1, multiple=false) {
+            let url="rhino/geometry/nurbscurve/createspiral-point3d_vector3d_point3d_double_double_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, axisStart, axisDir, radiusPoint, pitch, turnCount, radius0, radius1);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createSpiral1 : function(railCurve, t0, t1, radiusPoint, pitch, turnCount, radius0, radius1, pointsPerTurn, multiple=false) {
+            let url="rhino/geometry/nurbscurve/createspiral-curve_double_double_point3d_double_double_double_double_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, railCurve, t0, t1, radiusPoint, pitch, turnCount, radius0, radius1, pointsPerTurn);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+    },
+
+    NurbsSurface : {
+        createCurveOnSurfacePoints : function(surface, fixedPoints, tolerance, periodic, initCount, levels, multiple=false) {
+            let url="rhino/geometry/nurbssurface/createcurveonsurfacepoints-surface_point2darray_double_bool_int_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface, fixedPoints, tolerance, periodic, initCount, levels);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createCurveOnSurface : function(surface, points, tolerance, periodic, multiple=false) {
+            let url="rhino/geometry/nurbssurface/createcurveonsurface-surface_point2darray_double_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface, points, tolerance, periodic);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        makeCompatible : function(surface0, surface1, multiple=false) {
+            let url="rhino/geometry/nurbssurface/makecompatible-surface_surface_nurbssurface_nurbssurface";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface0, surface1);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromPoints : function(points, uCount, vCount, uDegree, vDegree, multiple=false) {
+            let url="rhino/geometry/nurbssurface/createfrompoints-point3darray_int_int_int_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, points, uCount, vCount, uDegree, vDegree);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createThroughPoints : function(points, uCount, vCount, uDegree, vDegree, uClosed, vClosed, multiple=false) {
+            let url="rhino/geometry/nurbssurface/createthroughpoints-point3darray_int_int_int_int_bool_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, points, uCount, vCount, uDegree, vDegree, uClosed, vClosed);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromCorners : function(corner1, corner2, corner3, corner4, multiple=false) {
+            let url="rhino/geometry/nurbssurface/createfromcorners-point3d_point3d_point3d_point3d";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, corner1, corner2, corner3, corner4);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromCorners1 : function(corner1, corner2, corner3, corner4, tolerance, multiple=false) {
+            let url="rhino/geometry/nurbssurface/createfromcorners-point3d_point3d_point3d_point3d_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, corner1, corner2, corner3, corner4, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createFromCorners2 : function(corner1, corner2, corner3, multiple=false) {
+            let url="rhino/geometry/nurbssurface/createfromcorners-point3d_point3d_point3d";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, corner1, corner2, corner3);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createRailRevolvedSurface : function(profile, rail, axis, scaleHeight, multiple=false) {
+            let url="rhino/geometry/nurbssurface/createrailrevolvedsurface-curve_curve_line_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, profile, rail, axis, scaleHeight);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createNetworkSurface : function(uCurves, uContinuityStart, uContinuityEnd, vCurves, vContinuityStart, vContinuityEnd, edgeTolerance, interiorTolerance, angleTolerance, multiple=false) {
+            let url="rhino/geometry/nurbssurface/createnetworksurface-curvearray_int_int_curvearray_int_int_double_double_double_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, uCurves, uContinuityStart, uContinuityEnd, vCurves, vContinuityStart, vContinuityEnd, edgeTolerance, interiorTolerance, angleTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createNetworkSurface1 : function(curves, continuity, edgeTolerance, interiorTolerance, angleTolerance, multiple=false) {
+            let url="rhino/geometry/nurbssurface/createnetworksurface-curvearray_int_double_double_double_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curves, continuity, edgeTolerance, interiorTolerance, angleTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+    },
+
+    Surface : {
+        createRollingBallFillet : function(surfaceA, surfaceB, radius, tolerance, multiple=false) {
+            let url="rhino/geometry/surface/createrollingballfillet-surface_surface_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surfaceA, surfaceB, radius, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createRollingBallFillet1 : function(surfaceA, flipA, surfaceB, flipB, radius, tolerance, multiple=false) {
+            let url="rhino/geometry/surface/createrollingballfillet-surface_bool_surface_bool_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surfaceA, flipA, surfaceB, flipB, radius, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createRollingBallFillet2 : function(surfaceA, uvA, surfaceB, uvB, radius, tolerance, multiple=false) {
+            let url="rhino/geometry/surface/createrollingballfillet-surface_point2d_surface_point2d_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surfaceA, uvA, surfaceB, uvB, radius, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createExtrusion : function(profile, direction, multiple=false) {
+            let url="rhino/geometry/surface/createextrusion-curve_vector3d";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, profile, direction);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createExtrusionToPoint : function(profile, apexPoint, multiple=false) {
+            let url="rhino/geometry/surface/createextrusiontopoint-curve_point3d";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, profile, apexPoint);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createPeriodicSurface : function(surface, direction, multiple=false) {
+            let url="rhino/geometry/surface/createperiodicsurface-surface_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface, direction);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createPeriodicSurface1 : function(surface, direction, bSmooth, multiple=false) {
+            let url="rhino/geometry/surface/createperiodicsurface-surface_int_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface, direction, bSmooth);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        createSoftEditSurface : function(surface, uv, delta, uLength, vLength, tolerance, fixEnds, multiple=false) {
+            let url="rhino/geometry/surface/createsofteditsurface-surface_point2d_vector3d_double_double_double_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface, uv, delta, uLength, vLength, tolerance, fixEnds);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        smooth : function(surface, smoothFactor, bXSmooth, bYSmooth, bZSmooth, bFixBoundaries, coordinateSystem, multiple=false) {
+            let url="rhino/geometry/surface/smooth-surface_double_bool_bool_bool_bool_smoothingcoordinatesystem";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface, smoothFactor, bXSmooth, bYSmooth, bZSmooth, bFixBoundaries, coordinateSystem);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        smooth1 : function(surface, smoothFactor, bXSmooth, bYSmooth, bZSmooth, bFixBoundaries, coordinateSystem, plane, multiple=false) {
+            let url="rhino/geometry/surface/smooth-surface_double_bool_bool_bool_bool_smoothingcoordinatesystem_plane";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface, smoothFactor, bXSmooth, bYSmooth, bZSmooth, bFixBoundaries, coordinateSystem, plane);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        variableOffset : function(surface, uMinvMin, uMinvMax, uMaxvMin, uMaxvMax, tolerance, multiple=false) {
+            let url="rhino/geometry/surface/variableoffset-surface_double_double_double_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface, uMinvMin, uMinvMax, uMaxvMin, uMaxvMax, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        variableOffset1 : function(surface, uMinvMin, uMinvMax, uMaxvMin, uMaxvMax, interiorParameters, interiorDistances, tolerance, multiple=false) {
+            let url="rhino/geometry/surface/variableoffset-surface_double_double_double_double_point2darray_doublearray_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface, uMinvMin, uMinvMax, uMaxvMin, uMaxvMax, interiorParameters, interiorDistances, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        getSurfaceSize : function(surface, multiple=false) {
+            let url="rhino/geometry/surface/getsurfacesize-surface_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        closestSide : function(surface, u, v, multiple=false) {
+            let url="rhino/geometry/surface/closestside-surface_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface, u, v);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        extend : function(surface, edge, extensionLength, smooth, multiple=false) {
+            let url="rhino/geometry/surface/extend-surface_isostatus_double_bool";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface, edge, extensionLength, smooth);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        rebuild : function(surface, uDegree, vDegree, uPointCount, vPointCount, multiple=false) {
+            let url="rhino/geometry/surface/rebuild-surface_int_int_int_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface, uDegree, vDegree, uPointCount, vPointCount);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        rebuildOneDirection : function(surface, direction, pointCount, loftType, refitTolerance, multiple=false) {
+            let url="rhino/geometry/surface/rebuildonedirection-surface_int_int_lofttype_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface, direction, pointCount, loftType, refitTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        closestPoint : function(surface, testPoint, multiple=false) {
+            let url="rhino/geometry/surface/closestpoint-surface_point3d_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface, testPoint);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        localClosestPoint : function(surface, testPoint, seedU, seedV, multiple=false) {
+            let url="rhino/geometry/surface/localclosestpoint-surface_point3d_double_double_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface, testPoint, seedU, seedV);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        offset : function(surface, distance, tolerance, multiple=false) {
+            let url="rhino/geometry/surface/offset-surface_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface, distance, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        fit : function(surface, uDegree, vDegree, fitTolerance, multiple=false) {
+            let url="rhino/geometry/surface/fit-surface_int_int_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface, uDegree, vDegree, fitTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        interpolatedCurveOnSurfaceUV : function(surface, points, tolerance, multiple=false) {
+            let url="rhino/geometry/surface/interpolatedcurveonsurfaceuv-surface_point2darray_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface, points, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        interpolatedCurveOnSurface : function(surface, points, tolerance, multiple=false) {
+            let url="rhino/geometry/surface/interpolatedcurveonsurface-surface_point3darray_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface, points, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        shortPath : function(surface, start, end, tolerance, multiple=false) {
+            let url="rhino/geometry/surface/shortpath-surface_point2d_point2d_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface, start, end, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        pushup : function(surface, curve2d, tolerance, curve2dSubdomain, multiple=false) {
+            let url="rhino/geometry/surface/pushup-surface_curve_double_interval";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface, curve2d, tolerance, curve2dSubdomain);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        pushup1 : function(surface, curve2d, tolerance, multiple=false) {
+            let url="rhino/geometry/surface/pushup-surface_curve_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface, curve2d, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        pullback : function(surface, curve3d, tolerance, multiple=false) {
+            let url="rhino/geometry/surface/pullback-surface_curve_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface, curve3d, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        pullback1 : function(surface, curve3d, tolerance, curve3dSubdomain, multiple=false) {
+            let url="rhino/geometry/surface/pullback-surface_curve_double_interval";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surface, curve3d, tolerance, curve3dSubdomain);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+    },
+
+    Intersection : {
+        curvePlane : function(curve, plane, tolerance, multiple=false) {
+            let url="rhino/geometry/intersect/intersection/curveplane-curve_plane_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, plane, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        meshPlane : function(mesh, plane, multiple=false) {
+            let url="rhino/geometry/intersect/intersection/meshplane-mesh_plane";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, plane);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        meshPlane1 : function(mesh, planes, multiple=false) {
+            let url="rhino/geometry/intersect/intersection/meshplane-mesh_planearray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, planes);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        brepPlane : function(brep, plane, tolerance, multiple=false) {
+            let url="rhino/geometry/intersect/intersection/brepplane-brep_plane_double_curvearray_point3darray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, plane, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        curveSelf : function(curve, tolerance, multiple=false) {
+            let url="rhino/geometry/intersect/intersection/curveself-curve_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        curveCurve : function(curveA, curveB, tolerance, overlapTolerance, multiple=false) {
+            let url="rhino/geometry/intersect/intersection/curvecurve-curve_curve_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curveA, curveB, tolerance, overlapTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        curveLine : function(curve, line, tolerance, overlapTolerance, multiple=false) {
+            let url="rhino/geometry/intersect/intersection/curveline-curve_line_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, line, tolerance, overlapTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        curveSurface : function(curve, surface, tolerance, overlapTolerance, multiple=false) {
+            let url="rhino/geometry/intersect/intersection/curvesurface-curve_surface_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, surface, tolerance, overlapTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        curveSurface1 : function(curve, curveDomain, surface, tolerance, overlapTolerance, multiple=false) {
+            let url="rhino/geometry/intersect/intersection/curvesurface-curve_interval_surface_double_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, curveDomain, surface, tolerance, overlapTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        curveBrep : function(curve, brep, tolerance, multiple=false) {
+            let url="rhino/geometry/intersect/intersection/curvebrep-curve_brep_double_curvearray_point3darray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, brep, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        curveBrep1 : function(curve, brep, tolerance, angleTolerance, multiple=false) {
+            let url="rhino/geometry/intersect/intersection/curvebrep-curve_brep_double_double_doublearray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, brep, tolerance, angleTolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        curveBrepFace : function(curve, face, tolerance, multiple=false) {
+            let url="rhino/geometry/intersect/intersection/curvebrepface-curve_brepface_double_curvearray_point3darray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, curve, face, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        surfaceSurface : function(surfaceA, surfaceB, tolerance, multiple=false) {
+            let url="rhino/geometry/intersect/intersection/surfacesurface-surface_surface_double_curvearray_point3darray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, surfaceA, surfaceB, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        brepBrep : function(brepA, brepB, tolerance, multiple=false) {
+            let url="rhino/geometry/intersect/intersection/brepbrep-brep_brep_double_curvearray_point3darray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brepA, brepB, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        brepSurface : function(brep, surface, tolerance, multiple=false) {
+            let url="rhino/geometry/intersect/intersection/brepsurface-brep_surface_double_curvearray_point3darray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, brep, surface, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        meshMeshFast : function(meshA, meshB, multiple=false) {
+            let url="rhino/geometry/intersect/intersection/meshmeshfast-mesh_mesh";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, meshA, meshB);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        meshMesh : function(meshes, tolerance, mode, multiple=false) {
+            let url="rhino/geometry/intersect/intersection/meshmesh-mesharray_double_setscombinations";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, meshes, tolerance, mode);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        meshMeshAccurate : function(meshA, meshB, tolerance, multiple=false) {
+            let url="rhino/geometry/intersect/intersection/meshmeshaccurate-mesh_mesh_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, meshA, meshB, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        meshRay : function(mesh, ray, multiple=false) {
+            let url="rhino/geometry/intersect/intersection/meshray-mesh_ray3d";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, ray);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        meshRay1 : function(mesh, ray, multiple=false) {
+            let url="rhino/geometry/intersect/intersection/meshray-mesh_ray3d_intarray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, ray);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        meshPolyline : function(mesh, curve, multiple=false) {
+            let url="rhino/geometry/intersect/intersection/meshpolyline-mesh_polylinecurve_intarray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, curve);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        meshLine : function(mesh, line, multiple=false) {
+            let url="rhino/geometry/intersect/intersection/meshline-mesh_line_intarray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, mesh, line);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        rayShoot : function(ray, geometry, maxReflections, multiple=false) {
+            let url="rhino/geometry/intersect/intersection/rayshoot-ray3d_geometrybasearray_int";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, ray, geometry, maxReflections);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        projectPointsToMeshes : function(meshes, points, direction, tolerance, multiple=false) {
+            let url="rhino/geometry/intersect/intersection/projectpointstomeshes-mesharray_point3darray_vector3d_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, meshes, points, direction, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        projectPointsToMeshesEx : function(meshes, points, direction, tolerance, multiple=false) {
+            let url="rhino/geometry/intersect/intersection/projectpointstomeshesex-mesharray_point3darray_vector3d_double_intarray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, meshes, points, direction, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        projectPointsToBreps : function(breps, points, direction, tolerance, multiple=false) {
+            let url="rhino/geometry/intersect/intersection/projectpointstobreps-breparray_point3darray_vector3d_double";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, breps, points, direction, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+
+        projectPointsToBrepsEx : function(breps, points, direction, tolerance, multiple=false) {
+            let url="rhino/geometry/intersect/intersection/projectpointstobrepsex-breparray_point3darray_vector3d_double_intarray";
+            if(multiple) url = url + "?multiple=true"
+            let args = RhinoCompute.zipArgs(multiple, breps, points, direction, tolerance);
+            var promise = RhinoCompute.computeFetch(url, args);
+            return promise;
+        },
+    },
+};
+
+// export RhinoCompute object if node.js
+if (typeof exports === 'object' && typeof module === 'object')
+    module.exports = RhinoCompute;
\ No newline at end of file
diff --git a/01_Code/physical_computing_interface/simulation/lib/dat.gui.js b/01_Code/physical_computing_interface/simulation/lib/dat.gui.js
new file mode 100644
index 0000000000000000000000000000000000000000..85fadecc20e7bfefba7fd951227c73153ecb8705
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/lib/dat.gui.js
@@ -0,0 +1,2537 @@
+/**
+ * dat-gui JavaScript Controller Library
+ * http://code.google.com/p/dat-gui
+ *
+ * Copyright 2011 Data Arts Team, Google Creative Lab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ */
+
+(function (global, factory) {
+	typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
+	typeof define === 'function' && define.amd ? define(['exports'], factory) :
+	(factory((global.dat = {})));
+}(this, (function (exports) { 'use strict';
+
+function ___$insertStyle(css) {
+  if (!css) {
+    return;
+  }
+  if (typeof window === 'undefined') {
+    return;
+  }
+
+  var style = document.createElement('style');
+
+  style.setAttribute('type', 'text/css');
+  style.innerHTML = css;
+  document.head.appendChild(style);
+
+  return css;
+}
+
+function colorToString (color, forceCSSHex) {
+  var colorFormat = color.__state.conversionName.toString();
+  var r = Math.round(color.r);
+  var g = Math.round(color.g);
+  var b = Math.round(color.b);
+  var a = color.a;
+  var h = Math.round(color.h);
+  var s = color.s.toFixed(1);
+  var v = color.v.toFixed(1);
+  if (forceCSSHex || colorFormat === 'THREE_CHAR_HEX' || colorFormat === 'SIX_CHAR_HEX') {
+    var str = color.hex.toString(16);
+    while (str.length < 6) {
+      str = '0' + str;
+    }
+    return '#' + str;
+  } else if (colorFormat === 'CSS_RGB') {
+    return 'rgb(' + r + ',' + g + ',' + b + ')';
+  } else if (colorFormat === 'CSS_RGBA') {
+    return 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')';
+  } else if (colorFormat === 'HEX') {
+    return '0x' + color.hex.toString(16);
+  } else if (colorFormat === 'RGB_ARRAY') {
+    return '[' + r + ',' + g + ',' + b + ']';
+  } else if (colorFormat === 'RGBA_ARRAY') {
+    return '[' + r + ',' + g + ',' + b + ',' + a + ']';
+  } else if (colorFormat === 'RGB_OBJ') {
+    return '{r:' + r + ',g:' + g + ',b:' + b + '}';
+  } else if (colorFormat === 'RGBA_OBJ') {
+    return '{r:' + r + ',g:' + g + ',b:' + b + ',a:' + a + '}';
+  } else if (colorFormat === 'HSV_OBJ') {
+    return '{h:' + h + ',s:' + s + ',v:' + v + '}';
+  } else if (colorFormat === 'HSVA_OBJ') {
+    return '{h:' + h + ',s:' + s + ',v:' + v + ',a:' + a + '}';
+  }
+  return 'unknown format';
+}
+
+var ARR_EACH = Array.prototype.forEach;
+var ARR_SLICE = Array.prototype.slice;
+var Common = {
+  BREAK: {},
+  extend: function extend(target) {
+    this.each(ARR_SLICE.call(arguments, 1), function (obj) {
+      var keys = this.isObject(obj) ? Object.keys(obj) : [];
+      keys.forEach(function (key) {
+        if (!this.isUndefined(obj[key])) {
+          target[key] = obj[key];
+        }
+      }.bind(this));
+    }, this);
+    return target;
+  },
+  defaults: function defaults(target) {
+    this.each(ARR_SLICE.call(arguments, 1), function (obj) {
+      var keys = this.isObject(obj) ? Object.keys(obj) : [];
+      keys.forEach(function (key) {
+        if (this.isUndefined(target[key])) {
+          target[key] = obj[key];
+        }
+      }.bind(this));
+    }, this);
+    return target;
+  },
+  compose: function compose() {
+    var toCall = ARR_SLICE.call(arguments);
+    return function () {
+      var args = ARR_SLICE.call(arguments);
+      for (var i = toCall.length - 1; i >= 0; i--) {
+        args = [toCall[i].apply(this, args)];
+      }
+      return args[0];
+    };
+  },
+  each: function each(obj, itr, scope) {
+    if (!obj) {
+      return;
+    }
+    if (ARR_EACH && obj.forEach && obj.forEach === ARR_EACH) {
+      obj.forEach(itr, scope);
+    } else if (obj.length === obj.length + 0) {
+      var key = void 0;
+      var l = void 0;
+      for (key = 0, l = obj.length; key < l; key++) {
+        if (key in obj && itr.call(scope, obj[key], key) === this.BREAK) {
+          return;
+        }
+      }
+    } else {
+      for (var _key in obj) {
+        if (itr.call(scope, obj[_key], _key) === this.BREAK) {
+          return;
+        }
+      }
+    }
+  },
+  defer: function defer(fnc) {
+    setTimeout(fnc, 0);
+  },
+  debounce: function debounce(func, threshold, callImmediately) {
+    var timeout = void 0;
+    return function () {
+      var obj = this;
+      var args = arguments;
+      function delayed() {
+        timeout = null;
+        if (!callImmediately) func.apply(obj, args);
+      }
+      var callNow = callImmediately || !timeout;
+      clearTimeout(timeout);
+      timeout = setTimeout(delayed, threshold);
+      if (callNow) {
+        func.apply(obj, args);
+      }
+    };
+  },
+  toArray: function toArray(obj) {
+    if (obj.toArray) return obj.toArray();
+    return ARR_SLICE.call(obj);
+  },
+  isUndefined: function isUndefined(obj) {
+    return obj === undefined;
+  },
+  isNull: function isNull(obj) {
+    return obj === null;
+  },
+  isNaN: function (_isNaN) {
+    function isNaN(_x) {
+      return _isNaN.apply(this, arguments);
+    }
+    isNaN.toString = function () {
+      return _isNaN.toString();
+    };
+    return isNaN;
+  }(function (obj) {
+    return isNaN(obj);
+  }),
+  isArray: Array.isArray || function (obj) {
+    return obj.constructor === Array;
+  },
+  isObject: function isObject(obj) {
+    return obj === Object(obj);
+  },
+  isNumber: function isNumber(obj) {
+    return obj === obj + 0;
+  },
+  isString: function isString(obj) {
+    return obj === obj + '';
+  },
+  isBoolean: function isBoolean(obj) {
+    return obj === false || obj === true;
+  },
+  isFunction: function isFunction(obj) {
+    return Object.prototype.toString.call(obj) === '[object Function]';
+  }
+};
+
+var INTERPRETATIONS = [
+{
+  litmus: Common.isString,
+  conversions: {
+    THREE_CHAR_HEX: {
+      read: function read(original) {
+        var test = original.match(/^#([A-F0-9])([A-F0-9])([A-F0-9])$/i);
+        if (test === null) {
+          return false;
+        }
+        return {
+          space: 'HEX',
+          hex: parseInt('0x' + test[1].toString() + test[1].toString() + test[2].toString() + test[2].toString() + test[3].toString() + test[3].toString(), 0)
+        };
+      },
+      write: colorToString
+    },
+    SIX_CHAR_HEX: {
+      read: function read(original) {
+        var test = original.match(/^#([A-F0-9]{6})$/i);
+        if (test === null) {
+          return false;
+        }
+        return {
+          space: 'HEX',
+          hex: parseInt('0x' + test[1].toString(), 0)
+        };
+      },
+      write: colorToString
+    },
+    CSS_RGB: {
+      read: function read(original) {
+        var test = original.match(/^rgb\(\s*(.+)\s*,\s*(.+)\s*,\s*(.+)\s*\)/);
+        if (test === null) {
+          return false;
+        }
+        return {
+          space: 'RGB',
+          r: parseFloat(test[1]),
+          g: parseFloat(test[2]),
+          b: parseFloat(test[3])
+        };
+      },
+      write: colorToString
+    },
+    CSS_RGBA: {
+      read: function read(original) {
+        var test = original.match(/^rgba\(\s*(.+)\s*,\s*(.+)\s*,\s*(.+)\s*,\s*(.+)\s*\)/);
+        if (test === null) {
+          return false;
+        }
+        return {
+          space: 'RGB',
+          r: parseFloat(test[1]),
+          g: parseFloat(test[2]),
+          b: parseFloat(test[3]),
+          a: parseFloat(test[4])
+        };
+      },
+      write: colorToString
+    }
+  }
+},
+{
+  litmus: Common.isNumber,
+  conversions: {
+    HEX: {
+      read: function read(original) {
+        return {
+          space: 'HEX',
+          hex: original,
+          conversionName: 'HEX'
+        };
+      },
+      write: function write(color) {
+        return color.hex;
+      }
+    }
+  }
+},
+{
+  litmus: Common.isArray,
+  conversions: {
+    RGB_ARRAY: {
+      read: function read(original) {
+        if (original.length !== 3) {
+          return false;
+        }
+        return {
+          space: 'RGB',
+          r: original[0],
+          g: original[1],
+          b: original[2]
+        };
+      },
+      write: function write(color) {
+        return [color.r, color.g, color.b];
+      }
+    },
+    RGBA_ARRAY: {
+      read: function read(original) {
+        if (original.length !== 4) return false;
+        return {
+          space: 'RGB',
+          r: original[0],
+          g: original[1],
+          b: original[2],
+          a: original[3]
+        };
+      },
+      write: function write(color) {
+        return [color.r, color.g, color.b, color.a];
+      }
+    }
+  }
+},
+{
+  litmus: Common.isObject,
+  conversions: {
+    RGBA_OBJ: {
+      read: function read(original) {
+        if (Common.isNumber(original.r) && Common.isNumber(original.g) && Common.isNumber(original.b) && Common.isNumber(original.a)) {
+          return {
+            space: 'RGB',
+            r: original.r,
+            g: original.g,
+            b: original.b,
+            a: original.a
+          };
+        }
+        return false;
+      },
+      write: function write(color) {
+        return {
+          r: color.r,
+          g: color.g,
+          b: color.b,
+          a: color.a
+        };
+      }
+    },
+    RGB_OBJ: {
+      read: function read(original) {
+        if (Common.isNumber(original.r) && Common.isNumber(original.g) && Common.isNumber(original.b)) {
+          return {
+            space: 'RGB',
+            r: original.r,
+            g: original.g,
+            b: original.b
+          };
+        }
+        return false;
+      },
+      write: function write(color) {
+        return {
+          r: color.r,
+          g: color.g,
+          b: color.b
+        };
+      }
+    },
+    HSVA_OBJ: {
+      read: function read(original) {
+        if (Common.isNumber(original.h) && Common.isNumber(original.s) && Common.isNumber(original.v) && Common.isNumber(original.a)) {
+          return {
+            space: 'HSV',
+            h: original.h,
+            s: original.s,
+            v: original.v,
+            a: original.a
+          };
+        }
+        return false;
+      },
+      write: function write(color) {
+        return {
+          h: color.h,
+          s: color.s,
+          v: color.v,
+          a: color.a
+        };
+      }
+    },
+    HSV_OBJ: {
+      read: function read(original) {
+        if (Common.isNumber(original.h) && Common.isNumber(original.s) && Common.isNumber(original.v)) {
+          return {
+            space: 'HSV',
+            h: original.h,
+            s: original.s,
+            v: original.v
+          };
+        }
+        return false;
+      },
+      write: function write(color) {
+        return {
+          h: color.h,
+          s: color.s,
+          v: color.v
+        };
+      }
+    }
+  }
+}];
+var result = void 0;
+var toReturn = void 0;
+var interpret = function interpret() {
+  toReturn = false;
+  var original = arguments.length > 1 ? Common.toArray(arguments) : arguments[0];
+  Common.each(INTERPRETATIONS, function (family) {
+    if (family.litmus(original)) {
+      Common.each(family.conversions, function (conversion, conversionName) {
+        result = conversion.read(original);
+        if (toReturn === false && result !== false) {
+          toReturn = result;
+          result.conversionName = conversionName;
+          result.conversion = conversion;
+          return Common.BREAK;
+        }
+      });
+      return Common.BREAK;
+    }
+  });
+  return toReturn;
+};
+
+var tmpComponent = void 0;
+var ColorMath = {
+  hsv_to_rgb: function hsv_to_rgb(h, s, v) {
+    var hi = Math.floor(h / 60) % 6;
+    var f = h / 60 - Math.floor(h / 60);
+    var p = v * (1.0 - s);
+    var q = v * (1.0 - f * s);
+    var t = v * (1.0 - (1.0 - f) * s);
+    var c = [[v, t, p], [q, v, p], [p, v, t], [p, q, v], [t, p, v], [v, p, q]][hi];
+    return {
+      r: c[0] * 255,
+      g: c[1] * 255,
+      b: c[2] * 255
+    };
+  },
+  rgb_to_hsv: function rgb_to_hsv(r, g, b) {
+    var min = Math.min(r, g, b);
+    var max = Math.max(r, g, b);
+    var delta = max - min;
+    var h = void 0;
+    var s = void 0;
+    if (max !== 0) {
+      s = delta / max;
+    } else {
+      return {
+        h: NaN,
+        s: 0,
+        v: 0
+      };
+    }
+    if (r === max) {
+      h = (g - b) / delta;
+    } else if (g === max) {
+      h = 2 + (b - r) / delta;
+    } else {
+      h = 4 + (r - g) / delta;
+    }
+    h /= 6;
+    if (h < 0) {
+      h += 1;
+    }
+    return {
+      h: h * 360,
+      s: s,
+      v: max / 255
+    };
+  },
+  rgb_to_hex: function rgb_to_hex(r, g, b) {
+    var hex = this.hex_with_component(0, 2, r);
+    hex = this.hex_with_component(hex, 1, g);
+    hex = this.hex_with_component(hex, 0, b);
+    return hex;
+  },
+  component_from_hex: function component_from_hex(hex, componentIndex) {
+    return hex >> componentIndex * 8 & 0xFF;
+  },
+  hex_with_component: function hex_with_component(hex, componentIndex, value) {
+    return value << (tmpComponent = componentIndex * 8) | hex & ~(0xFF << tmpComponent);
+  }
+};
+
+var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
+  return typeof obj;
+} : function (obj) {
+  return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+};
+
+
+
+
+
+
+
+
+
+
+
+var classCallCheck = function (instance, Constructor) {
+  if (!(instance instanceof Constructor)) {
+    throw new TypeError("Cannot call a class as a function");
+  }
+};
+
+var createClass = function () {
+  function defineProperties(target, props) {
+    for (var i = 0; i < props.length; i++) {
+      var descriptor = props[i];
+      descriptor.enumerable = descriptor.enumerable || false;
+      descriptor.configurable = true;
+      if ("value" in descriptor) descriptor.writable = true;
+      Object.defineProperty(target, descriptor.key, descriptor);
+    }
+  }
+
+  return function (Constructor, protoProps, staticProps) {
+    if (protoProps) defineProperties(Constructor.prototype, protoProps);
+    if (staticProps) defineProperties(Constructor, staticProps);
+    return Constructor;
+  };
+}();
+
+
+
+
+
+
+
+var get = function get(object, property, receiver) {
+  if (object === null) object = Function.prototype;
+  var desc = Object.getOwnPropertyDescriptor(object, property);
+
+  if (desc === undefined) {
+    var parent = Object.getPrototypeOf(object);
+
+    if (parent === null) {
+      return undefined;
+    } else {
+      return get(parent, property, receiver);
+    }
+  } else if ("value" in desc) {
+    return desc.value;
+  } else {
+    var getter = desc.get;
+
+    if (getter === undefined) {
+      return undefined;
+    }
+
+    return getter.call(receiver);
+  }
+};
+
+var inherits = function (subClass, superClass) {
+  if (typeof superClass !== "function" && superClass !== null) {
+    throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
+  }
+
+  subClass.prototype = Object.create(superClass && superClass.prototype, {
+    constructor: {
+      value: subClass,
+      enumerable: false,
+      writable: true,
+      configurable: true
+    }
+  });
+  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
+};
+
+
+
+
+
+
+
+
+
+
+
+var possibleConstructorReturn = function (self, call) {
+  if (!self) {
+    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+  }
+
+  return call && (typeof call === "object" || typeof call === "function") ? call : self;
+};
+
+var Color = function () {
+  function Color() {
+    classCallCheck(this, Color);
+    this.__state = interpret.apply(this, arguments);
+    if (this.__state === false) {
+      throw new Error('Failed to interpret color arguments');
+    }
+    this.__state.a = this.__state.a || 1;
+  }
+  createClass(Color, [{
+    key: 'toString',
+    value: function toString() {
+      return colorToString(this);
+    }
+  }, {
+    key: 'toHexString',
+    value: function toHexString() {
+      return colorToString(this, true);
+    }
+  }, {
+    key: 'toOriginal',
+    value: function toOriginal() {
+      return this.__state.conversion.write(this);
+    }
+  }]);
+  return Color;
+}();
+function defineRGBComponent(target, component, componentHexIndex) {
+  Object.defineProperty(target, component, {
+    get: function get$$1() {
+      if (this.__state.space === 'RGB') {
+        return this.__state[component];
+      }
+      Color.recalculateRGB(this, component, componentHexIndex);
+      return this.__state[component];
+    },
+    set: function set$$1(v) {
+      if (this.__state.space !== 'RGB') {
+        Color.recalculateRGB(this, component, componentHexIndex);
+        this.__state.space = 'RGB';
+      }
+      this.__state[component] = v;
+    }
+  });
+}
+function defineHSVComponent(target, component) {
+  Object.defineProperty(target, component, {
+    get: function get$$1() {
+      if (this.__state.space === 'HSV') {
+        return this.__state[component];
+      }
+      Color.recalculateHSV(this);
+      return this.__state[component];
+    },
+    set: function set$$1(v) {
+      if (this.__state.space !== 'HSV') {
+        Color.recalculateHSV(this);
+        this.__state.space = 'HSV';
+      }
+      this.__state[component] = v;
+    }
+  });
+}
+Color.recalculateRGB = function (color, component, componentHexIndex) {
+  if (color.__state.space === 'HEX') {
+    color.__state[component] = ColorMath.component_from_hex(color.__state.hex, componentHexIndex);
+  } else if (color.__state.space === 'HSV') {
+    Common.extend(color.__state, ColorMath.hsv_to_rgb(color.__state.h, color.__state.s, color.__state.v));
+  } else {
+    throw new Error('Corrupted color state');
+  }
+};
+Color.recalculateHSV = function (color) {
+  var result = ColorMath.rgb_to_hsv(color.r, color.g, color.b);
+  Common.extend(color.__state, {
+    s: result.s,
+    v: result.v
+  });
+  if (!Common.isNaN(result.h)) {
+    color.__state.h = result.h;
+  } else if (Common.isUndefined(color.__state.h)) {
+    color.__state.h = 0;
+  }
+};
+Color.COMPONENTS = ['r', 'g', 'b', 'h', 's', 'v', 'hex', 'a'];
+defineRGBComponent(Color.prototype, 'r', 2);
+defineRGBComponent(Color.prototype, 'g', 1);
+defineRGBComponent(Color.prototype, 'b', 0);
+defineHSVComponent(Color.prototype, 'h');
+defineHSVComponent(Color.prototype, 's');
+defineHSVComponent(Color.prototype, 'v');
+Object.defineProperty(Color.prototype, 'a', {
+  get: function get$$1() {
+    return this.__state.a;
+  },
+  set: function set$$1(v) {
+    this.__state.a = v;
+  }
+});
+Object.defineProperty(Color.prototype, 'hex', {
+  get: function get$$1() {
+    if (!this.__state.space !== 'HEX') {
+      this.__state.hex = ColorMath.rgb_to_hex(this.r, this.g, this.b);
+    }
+    return this.__state.hex;
+  },
+  set: function set$$1(v) {
+    this.__state.space = 'HEX';
+    this.__state.hex = v;
+  }
+});
+
+var Controller = function () {
+  function Controller(object, property) {
+    classCallCheck(this, Controller);
+    this.initialValue = object[property];
+    this.domElement = document.createElement('div');
+    this.object = object;
+    this.property = property;
+    this.__onChange = undefined;
+    this.__onFinishChange = undefined;
+  }
+  createClass(Controller, [{
+    key: 'onChange',
+    value: function onChange(fnc) {
+      this.__onChange = fnc;
+      return this;
+    }
+  }, {
+    key: 'onFinishChange',
+    value: function onFinishChange(fnc) {
+      this.__onFinishChange = fnc;
+      return this;
+    }
+  }, {
+    key: 'setValue',
+    value: function setValue(newValue) {
+      this.object[this.property] = newValue;
+      if (this.__onChange) {
+        this.__onChange.call(this, newValue);
+      }
+      this.updateDisplay();
+      return this;
+    }
+  }, {
+    key: 'getValue',
+    value: function getValue() {
+      return this.object[this.property];
+    }
+  }, {
+    key: 'updateDisplay',
+    value: function updateDisplay() {
+      return this;
+    }
+  }, {
+    key: 'isModified',
+    value: function isModified() {
+      return this.initialValue !== this.getValue();
+    }
+  }]);
+  return Controller;
+}();
+
+var EVENT_MAP = {
+  HTMLEvents: ['change'],
+  MouseEvents: ['click', 'mousemove', 'mousedown', 'mouseup', 'mouseover'],
+  KeyboardEvents: ['keydown']
+};
+var EVENT_MAP_INV = {};
+Common.each(EVENT_MAP, function (v, k) {
+  Common.each(v, function (e) {
+    EVENT_MAP_INV[e] = k;
+  });
+});
+var CSS_VALUE_PIXELS = /(\d+(\.\d+)?)px/;
+function cssValueToPixels(val) {
+  if (val === '0' || Common.isUndefined(val)) {
+    return 0;
+  }
+  var match = val.match(CSS_VALUE_PIXELS);
+  if (!Common.isNull(match)) {
+    return parseFloat(match[1]);
+  }
+  return 0;
+}
+var dom = {
+  makeSelectable: function makeSelectable(elem, selectable) {
+    if (elem === undefined || elem.style === undefined) return;
+    elem.onselectstart = selectable ? function () {
+      return false;
+    } : function () {};
+    elem.style.MozUserSelect = selectable ? 'auto' : 'none';
+    elem.style.KhtmlUserSelect = selectable ? 'auto' : 'none';
+    elem.unselectable = selectable ? 'on' : 'off';
+  },
+  makeFullscreen: function makeFullscreen(elem, hor, vert) {
+    var vertical = vert;
+    var horizontal = hor;
+    if (Common.isUndefined(horizontal)) {
+      horizontal = true;
+    }
+    if (Common.isUndefined(vertical)) {
+      vertical = true;
+    }
+    elem.style.position = 'absolute';
+    if (horizontal) {
+      elem.style.left = 0;
+      elem.style.right = 0;
+    }
+    if (vertical) {
+      elem.style.top = 0;
+      elem.style.bottom = 0;
+    }
+  },
+  fakeEvent: function fakeEvent(elem, eventType, pars, aux) {
+    var params = pars || {};
+    var className = EVENT_MAP_INV[eventType];
+    if (!className) {
+      throw new Error('Event type ' + eventType + ' not supported.');
+    }
+    var evt = document.createEvent(className);
+    switch (className) {
+      case 'MouseEvents':
+        {
+          var clientX = params.x || params.clientX || 0;
+          var clientY = params.y || params.clientY || 0;
+          evt.initMouseEvent(eventType, params.bubbles || false, params.cancelable || true, window, params.clickCount || 1, 0,
+          0,
+          clientX,
+          clientY,
+          false, false, false, false, 0, null);
+          break;
+        }
+      case 'KeyboardEvents':
+        {
+          var init = evt.initKeyboardEvent || evt.initKeyEvent;
+          Common.defaults(params, {
+            cancelable: true,
+            ctrlKey: false,
+            altKey: false,
+            shiftKey: false,
+            metaKey: false,
+            keyCode: undefined,
+            charCode: undefined
+          });
+          init(eventType, params.bubbles || false, params.cancelable, window, params.ctrlKey, params.altKey, params.shiftKey, params.metaKey, params.keyCode, params.charCode);
+          break;
+        }
+      default:
+        {
+          evt.initEvent(eventType, params.bubbles || false, params.cancelable || true);
+          break;
+        }
+    }
+    Common.defaults(evt, aux);
+    elem.dispatchEvent(evt);
+  },
+  bind: function bind(elem, event, func, newBool) {
+    var bool = newBool || false;
+    if (elem.addEventListener) {
+      elem.addEventListener(event, func, bool);
+    } else if (elem.attachEvent) {
+      elem.attachEvent('on' + event, func);
+    }
+    return dom;
+  },
+  unbind: function unbind(elem, event, func, newBool) {
+    var bool = newBool || false;
+    if (elem.removeEventListener) {
+      elem.removeEventListener(event, func, bool);
+    } else if (elem.detachEvent) {
+      elem.detachEvent('on' + event, func);
+    }
+    return dom;
+  },
+  addClass: function addClass(elem, className) {
+    if (elem.className === undefined) {
+      elem.className = className;
+    } else if (elem.className !== className) {
+      var classes = elem.className.split(/ +/);
+      if (classes.indexOf(className) === -1) {
+        classes.push(className);
+        elem.className = classes.join(' ').replace(/^\s+/, '').replace(/\s+$/, '');
+      }
+    }
+    return dom;
+  },
+  removeClass: function removeClass(elem, className) {
+    if (className) {
+      if (elem.className === className) {
+        elem.removeAttribute('class');
+      } else {
+        var classes = elem.className.split(/ +/);
+        var index = classes.indexOf(className);
+        if (index !== -1) {
+          classes.splice(index, 1);
+          elem.className = classes.join(' ');
+        }
+      }
+    } else {
+      elem.className = undefined;
+    }
+    return dom;
+  },
+  hasClass: function hasClass(elem, className) {
+    return new RegExp('(?:^|\\s+)' + className + '(?:\\s+|$)').test(elem.className) || false;
+  },
+  getWidth: function getWidth(elem) {
+    var style = getComputedStyle(elem);
+    return cssValueToPixels(style['border-left-width']) + cssValueToPixels(style['border-right-width']) + cssValueToPixels(style['padding-left']) + cssValueToPixels(style['padding-right']) + cssValueToPixels(style.width);
+  },
+  getHeight: function getHeight(elem) {
+    var style = getComputedStyle(elem);
+    return cssValueToPixels(style['border-top-width']) + cssValueToPixels(style['border-bottom-width']) + cssValueToPixels(style['padding-top']) + cssValueToPixels(style['padding-bottom']) + cssValueToPixels(style.height);
+  },
+  getOffset: function getOffset(el) {
+    var elem = el;
+    var offset = { left: 0, top: 0 };
+    if (elem.offsetParent) {
+      do {
+        offset.left += elem.offsetLeft;
+        offset.top += elem.offsetTop;
+        elem = elem.offsetParent;
+      } while (elem);
+    }
+    return offset;
+  },
+  isActive: function isActive(elem) {
+    return elem === document.activeElement && (elem.type || elem.href);
+  }
+};
+
+var BooleanController = function (_Controller) {
+  inherits(BooleanController, _Controller);
+  function BooleanController(object, property) {
+    classCallCheck(this, BooleanController);
+    var _this2 = possibleConstructorReturn(this, (BooleanController.__proto__ || Object.getPrototypeOf(BooleanController)).call(this, object, property));
+    var _this = _this2;
+    _this2.__prev = _this2.getValue();
+    _this2.__checkbox = document.createElement('input');
+    _this2.__checkbox.setAttribute('type', 'checkbox');
+    function onChange() {
+      _this.setValue(!_this.__prev);
+    }
+    dom.bind(_this2.__checkbox, 'change', onChange, false);
+    _this2.domElement.appendChild(_this2.__checkbox);
+    _this2.updateDisplay();
+    return _this2;
+  }
+  createClass(BooleanController, [{
+    key: 'setValue',
+    value: function setValue(v) {
+      var toReturn = get(BooleanController.prototype.__proto__ || Object.getPrototypeOf(BooleanController.prototype), 'setValue', this).call(this, v);
+      if (this.__onFinishChange) {
+        this.__onFinishChange.call(this, this.getValue());
+      }
+      this.__prev = this.getValue();
+      return toReturn;
+    }
+  }, {
+    key: 'updateDisplay',
+    value: function updateDisplay() {
+      if (this.getValue() === true) {
+        this.__checkbox.setAttribute('checked', 'checked');
+        this.__checkbox.checked = true;
+        this.__prev = true;
+      } else {
+        this.__checkbox.checked = false;
+        this.__prev = false;
+      }
+      return get(BooleanController.prototype.__proto__ || Object.getPrototypeOf(BooleanController.prototype), 'updateDisplay', this).call(this);
+    }
+  }]);
+  return BooleanController;
+}(Controller);
+
+var OptionController = function (_Controller) {
+  inherits(OptionController, _Controller);
+  function OptionController(object, property, opts) {
+    classCallCheck(this, OptionController);
+    var _this2 = possibleConstructorReturn(this, (OptionController.__proto__ || Object.getPrototypeOf(OptionController)).call(this, object, property));
+    var options = opts;
+    var _this = _this2;
+    _this2.__select = document.createElement('select');
+    if (Common.isArray(options)) {
+      var map = {};
+      Common.each(options, function (element) {
+        map[element] = element;
+      });
+      options = map;
+    }
+    Common.each(options, function (value, key) {
+      var opt = document.createElement('option');
+      opt.innerHTML = key;
+      opt.setAttribute('value', value);
+      _this.__select.appendChild(opt);
+    });
+    _this2.updateDisplay();
+    dom.bind(_this2.__select, 'change', function () {
+      var desiredValue = this.options[this.selectedIndex].value;
+      _this.setValue(desiredValue);
+    });
+    _this2.domElement.appendChild(_this2.__select);
+    return _this2;
+  }
+  createClass(OptionController, [{
+    key: 'setValue',
+    value: function setValue(v) {
+      var toReturn = get(OptionController.prototype.__proto__ || Object.getPrototypeOf(OptionController.prototype), 'setValue', this).call(this, v);
+      if (this.__onFinishChange) {
+        this.__onFinishChange.call(this, this.getValue());
+      }
+      return toReturn;
+    }
+  }, {
+    key: 'updateDisplay',
+    value: function updateDisplay() {
+      if (dom.isActive(this.__select)) return this;
+      this.__select.value = this.getValue();
+      return get(OptionController.prototype.__proto__ || Object.getPrototypeOf(OptionController.prototype), 'updateDisplay', this).call(this);
+    }
+  }]);
+  return OptionController;
+}(Controller);
+
+var StringController = function (_Controller) {
+  inherits(StringController, _Controller);
+  function StringController(object, property) {
+    classCallCheck(this, StringController);
+    var _this2 = possibleConstructorReturn(this, (StringController.__proto__ || Object.getPrototypeOf(StringController)).call(this, object, property));
+    var _this = _this2;
+    function onChange() {
+      _this.setValue(_this.__input.value);
+    }
+    function onBlur() {
+      if (_this.__onFinishChange) {
+        _this.__onFinishChange.call(_this, _this.getValue());
+      }
+    }
+    _this2.__input = document.createElement('input');
+    _this2.__input.setAttribute('type', 'text');
+    dom.bind(_this2.__input, 'keyup', onChange);
+    dom.bind(_this2.__input, 'change', onChange);
+    dom.bind(_this2.__input, 'blur', onBlur);
+    dom.bind(_this2.__input, 'keydown', function (e) {
+      if (e.keyCode === 13) {
+        this.blur();
+      }
+    });
+    _this2.updateDisplay();
+    _this2.domElement.appendChild(_this2.__input);
+    return _this2;
+  }
+  createClass(StringController, [{
+    key: 'updateDisplay',
+    value: function updateDisplay() {
+      if (!dom.isActive(this.__input)) {
+        this.__input.value = this.getValue();
+      }
+      return get(StringController.prototype.__proto__ || Object.getPrototypeOf(StringController.prototype), 'updateDisplay', this).call(this);
+    }
+  }]);
+  return StringController;
+}(Controller);
+
+function numDecimals(x) {
+  var _x = x.toString();
+  if (_x.indexOf('.') > -1) {
+    return _x.length - _x.indexOf('.') - 1;
+  }
+  return 0;
+}
+var NumberController = function (_Controller) {
+  inherits(NumberController, _Controller);
+  function NumberController(object, property, params) {
+    classCallCheck(this, NumberController);
+    var _this = possibleConstructorReturn(this, (NumberController.__proto__ || Object.getPrototypeOf(NumberController)).call(this, object, property));
+    var _params = params || {};
+    _this.__min = _params.min;
+    _this.__max = _params.max;
+    _this.__step = _params.step;
+    if (Common.isUndefined(_this.__step)) {
+      if (_this.initialValue === 0) {
+        _this.__impliedStep = 1;
+      } else {
+        _this.__impliedStep = Math.pow(10, Math.floor(Math.log(Math.abs(_this.initialValue)) / Math.LN10)) / 10;
+      }
+    } else {
+      _this.__impliedStep = _this.__step;
+    }
+    _this.__precision = numDecimals(_this.__impliedStep);
+    return _this;
+  }
+  createClass(NumberController, [{
+    key: 'setValue',
+    value: function setValue(v) {
+      var _v = v;
+      if (this.__min !== undefined && _v < this.__min) {
+        _v = this.__min;
+      } else if (this.__max !== undefined && _v > this.__max) {
+        _v = this.__max;
+      }
+      if (this.__step !== undefined && _v % this.__step !== 0) {
+        _v = Math.round(_v / this.__step) * this.__step;
+      }
+      return get(NumberController.prototype.__proto__ || Object.getPrototypeOf(NumberController.prototype), 'setValue', this).call(this, _v);
+    }
+  }, {
+    key: 'min',
+    value: function min(minValue) {
+      this.__min = minValue;
+      return this;
+    }
+  }, {
+    key: 'max',
+    value: function max(maxValue) {
+      this.__max = maxValue;
+      return this;
+    }
+  }, {
+    key: 'step',
+    value: function step(stepValue) {
+      this.__step = stepValue;
+      this.__impliedStep = stepValue;
+      this.__precision = numDecimals(stepValue);
+      return this;
+    }
+  }]);
+  return NumberController;
+}(Controller);
+
+function roundToDecimal(value, decimals) {
+  var tenTo = Math.pow(10, decimals);
+  return Math.round(value * tenTo) / tenTo;
+}
+var NumberControllerBox = function (_NumberController) {
+  inherits(NumberControllerBox, _NumberController);
+  function NumberControllerBox(object, property, params) {
+    classCallCheck(this, NumberControllerBox);
+    var _this2 = possibleConstructorReturn(this, (NumberControllerBox.__proto__ || Object.getPrototypeOf(NumberControllerBox)).call(this, object, property, params));
+    _this2.__truncationSuspended = false;
+    var _this = _this2;
+    var prevY = void 0;
+    function onChange() {
+      var attempted = parseFloat(_this.__input.value);
+      if (!Common.isNaN(attempted)) {
+        _this.setValue(attempted);
+      }
+    }
+    function onFinish() {
+      if (_this.__onFinishChange) {
+        _this.__onFinishChange.call(_this, _this.getValue());
+      }
+    }
+    function onBlur() {
+      onFinish();
+    }
+    function onMouseDrag(e) {
+      var diff = prevY - e.clientY;
+      _this.setValue(_this.getValue() + diff * _this.__impliedStep);
+      prevY = e.clientY;
+    }
+    function onMouseUp() {
+      dom.unbind(window, 'mousemove', onMouseDrag);
+      dom.unbind(window, 'mouseup', onMouseUp);
+      onFinish();
+    }
+    function onMouseDown(e) {
+      dom.bind(window, 'mousemove', onMouseDrag);
+      dom.bind(window, 'mouseup', onMouseUp);
+      prevY = e.clientY;
+    }
+    _this2.__input = document.createElement('input');
+    _this2.__input.setAttribute('type', 'text');
+    dom.bind(_this2.__input, 'change', onChange);
+    dom.bind(_this2.__input, 'blur', onBlur);
+    dom.bind(_this2.__input, 'mousedown', onMouseDown);
+    dom.bind(_this2.__input, 'keydown', function (e) {
+      if (e.keyCode === 13) {
+        _this.__truncationSuspended = true;
+        this.blur();
+        _this.__truncationSuspended = false;
+        onFinish();
+      }
+    });
+    _this2.updateDisplay();
+    _this2.domElement.appendChild(_this2.__input);
+    return _this2;
+  }
+  createClass(NumberControllerBox, [{
+    key: 'updateDisplay',
+    value: function updateDisplay() {
+      this.__input.value = this.__truncationSuspended ? this.getValue() : roundToDecimal(this.getValue(), this.__precision);
+      return get(NumberControllerBox.prototype.__proto__ || Object.getPrototypeOf(NumberControllerBox.prototype), 'updateDisplay', this).call(this);
+    }
+  }]);
+  return NumberControllerBox;
+}(NumberController);
+
+function map(v, i1, i2, o1, o2) {
+  return o1 + (o2 - o1) * ((v - i1) / (i2 - i1));
+}
+var NumberControllerSlider = function (_NumberController) {
+  inherits(NumberControllerSlider, _NumberController);
+  function NumberControllerSlider(object, property, min, max, step) {
+    classCallCheck(this, NumberControllerSlider);
+    var _this2 = possibleConstructorReturn(this, (NumberControllerSlider.__proto__ || Object.getPrototypeOf(NumberControllerSlider)).call(this, object, property, { min: min, max: max, step: step }));
+    var _this = _this2;
+    _this2.__background = document.createElement('div');
+    _this2.__foreground = document.createElement('div');
+    dom.bind(_this2.__background, 'mousedown', onMouseDown);
+    dom.bind(_this2.__background, 'touchstart', onTouchStart);
+    dom.addClass(_this2.__background, 'slider');
+    dom.addClass(_this2.__foreground, 'slider-fg');
+    function onMouseDown(e) {
+      document.activeElement.blur();
+      dom.bind(window, 'mousemove', onMouseDrag);
+      dom.bind(window, 'mouseup', onMouseUp);
+      onMouseDrag(e);
+    }
+    function onMouseDrag(e) {
+      e.preventDefault();
+      var bgRect = _this.__background.getBoundingClientRect();
+      _this.setValue(map(e.clientX, bgRect.left, bgRect.right, _this.__min, _this.__max));
+      return false;
+    }
+    function onMouseUp() {
+      dom.unbind(window, 'mousemove', onMouseDrag);
+      dom.unbind(window, 'mouseup', onMouseUp);
+      if (_this.__onFinishChange) {
+        _this.__onFinishChange.call(_this, _this.getValue());
+      }
+    }
+    function onTouchStart(e) {
+      if (e.touches.length !== 1) {
+        return;
+      }
+      dom.bind(window, 'touchmove', onTouchMove);
+      dom.bind(window, 'touchend', onTouchEnd);
+      onTouchMove(e);
+    }
+    function onTouchMove(e) {
+      var clientX = e.touches[0].clientX;
+      var bgRect = _this.__background.getBoundingClientRect();
+      _this.setValue(map(clientX, bgRect.left, bgRect.right, _this.__min, _this.__max));
+    }
+    function onTouchEnd() {
+      dom.unbind(window, 'touchmove', onTouchMove);
+      dom.unbind(window, 'touchend', onTouchEnd);
+      if (_this.__onFinishChange) {
+        _this.__onFinishChange.call(_this, _this.getValue());
+      }
+    }
+    _this2.updateDisplay();
+    _this2.__background.appendChild(_this2.__foreground);
+    _this2.domElement.appendChild(_this2.__background);
+    return _this2;
+  }
+  createClass(NumberControllerSlider, [{
+    key: 'updateDisplay',
+    value: function updateDisplay() {
+      var pct = (this.getValue() - this.__min) / (this.__max - this.__min);
+      this.__foreground.style.width = pct * 100 + '%';
+      return get(NumberControllerSlider.prototype.__proto__ || Object.getPrototypeOf(NumberControllerSlider.prototype), 'updateDisplay', this).call(this);
+    }
+  }]);
+  return NumberControllerSlider;
+}(NumberController);
+
+var FunctionController = function (_Controller) {
+  inherits(FunctionController, _Controller);
+  function FunctionController(object, property, text) {
+    classCallCheck(this, FunctionController);
+    var _this2 = possibleConstructorReturn(this, (FunctionController.__proto__ || Object.getPrototypeOf(FunctionController)).call(this, object, property));
+    var _this = _this2;
+    _this2.__button = document.createElement('div');
+    _this2.__button.innerHTML = text === undefined ? 'Fire' : text;
+    dom.bind(_this2.__button, 'click', function (e) {
+      e.preventDefault();
+      _this.fire();
+      return false;
+    });
+    dom.addClass(_this2.__button, 'button');
+    _this2.domElement.appendChild(_this2.__button);
+    return _this2;
+  }
+  createClass(FunctionController, [{
+    key: 'fire',
+    value: function fire() {
+      if (this.__onChange) {
+        this.__onChange.call(this);
+      }
+      this.getValue().call(this.object);
+      if (this.__onFinishChange) {
+        this.__onFinishChange.call(this, this.getValue());
+      }
+    }
+  }]);
+  return FunctionController;
+}(Controller);
+
+var ColorController = function (_Controller) {
+  inherits(ColorController, _Controller);
+  function ColorController(object, property) {
+    classCallCheck(this, ColorController);
+    var _this2 = possibleConstructorReturn(this, (ColorController.__proto__ || Object.getPrototypeOf(ColorController)).call(this, object, property));
+    _this2.__color = new Color(_this2.getValue());
+    _this2.__temp = new Color(0);
+    var _this = _this2;
+    _this2.domElement = document.createElement('div');
+    dom.makeSelectable(_this2.domElement, false);
+    _this2.__selector = document.createElement('div');
+    _this2.__selector.className = 'selector';
+    _this2.__saturation_field = document.createElement('div');
+    _this2.__saturation_field.className = 'saturation-field';
+    _this2.__field_knob = document.createElement('div');
+    _this2.__field_knob.className = 'field-knob';
+    _this2.__field_knob_border = '2px solid ';
+    _this2.__hue_knob = document.createElement('div');
+    _this2.__hue_knob.className = 'hue-knob';
+    _this2.__hue_field = document.createElement('div');
+    _this2.__hue_field.className = 'hue-field';
+    _this2.__input = document.createElement('input');
+    _this2.__input.type = 'text';
+    _this2.__input_textShadow = '0 1px 1px ';
+    dom.bind(_this2.__input, 'keydown', function (e) {
+      if (e.keyCode === 13) {
+        onBlur.call(this);
+      }
+    });
+    dom.bind(_this2.__input, 'blur', onBlur);
+    dom.bind(_this2.__selector, 'mousedown', function ()        {
+      dom.addClass(this, 'drag').bind(window, 'mouseup', function ()        {
+        dom.removeClass(_this.__selector, 'drag');
+      });
+    });
+    dom.bind(_this2.__selector, 'touchstart', function ()        {
+      dom.addClass(this, 'drag').bind(window, 'touchend', function ()        {
+        dom.removeClass(_this.__selector, 'drag');
+      });
+    });
+    var valueField = document.createElement('div');
+    Common.extend(_this2.__selector.style, {
+      width: '122px',
+      height: '102px',
+      padding: '3px',
+      backgroundColor: '#222',
+      boxShadow: '0px 1px 3px rgba(0,0,0,0.3)'
+    });
+    Common.extend(_this2.__field_knob.style, {
+      position: 'absolute',
+      width: '12px',
+      height: '12px',
+      border: _this2.__field_knob_border + (_this2.__color.v < 0.5 ? '#fff' : '#000'),
+      boxShadow: '0px 1px 3px rgba(0,0,0,0.5)',
+      borderRadius: '12px',
+      zIndex: 1
+    });
+    Common.extend(_this2.__hue_knob.style, {
+      position: 'absolute',
+      width: '15px',
+      height: '2px',
+      borderRight: '4px solid #fff',
+      zIndex: 1
+    });
+    Common.extend(_this2.__saturation_field.style, {
+      width: '100px',
+      height: '100px',
+      border: '1px solid #555',
+      marginRight: '3px',
+      display: 'inline-block',
+      cursor: 'pointer'
+    });
+    Common.extend(valueField.style, {
+      width: '100%',
+      height: '100%',
+      background: 'none'
+    });
+    linearGradient(valueField, 'top', 'rgba(0,0,0,0)', '#000');
+    Common.extend(_this2.__hue_field.style, {
+      width: '15px',
+      height: '100px',
+      border: '1px solid #555',
+      cursor: 'ns-resize',
+      position: 'absolute',
+      top: '3px',
+      right: '3px'
+    });
+    hueGradient(_this2.__hue_field);
+    Common.extend(_this2.__input.style, {
+      outline: 'none',
+      textAlign: 'center',
+      color: '#fff',
+      border: 0,
+      fontWeight: 'bold',
+      textShadow: _this2.__input_textShadow + 'rgba(0,0,0,0.7)'
+    });
+    dom.bind(_this2.__saturation_field, 'mousedown', fieldDown);
+    dom.bind(_this2.__saturation_field, 'touchstart', fieldDown);
+    dom.bind(_this2.__field_knob, 'mousedown', fieldDown);
+    dom.bind(_this2.__field_knob, 'touchstart', fieldDown);
+    dom.bind(_this2.__hue_field, 'mousedown', fieldDownH);
+    dom.bind(_this2.__hue_field, 'touchstart', fieldDownH);
+    function fieldDown(e) {
+      setSV(e);
+      dom.bind(window, 'mousemove', setSV);
+      dom.bind(window, 'touchmove', setSV);
+      dom.bind(window, 'mouseup', fieldUpSV);
+      dom.bind(window, 'touchend', fieldUpSV);
+    }
+    function fieldDownH(e) {
+      setH(e);
+      dom.bind(window, 'mousemove', setH);
+      dom.bind(window, 'touchmove', setH);
+      dom.bind(window, 'mouseup', fieldUpH);
+      dom.bind(window, 'touchend', fieldUpH);
+    }
+    function fieldUpSV() {
+      dom.unbind(window, 'mousemove', setSV);
+      dom.unbind(window, 'touchmove', setSV);
+      dom.unbind(window, 'mouseup', fieldUpSV);
+      dom.unbind(window, 'touchend', fieldUpSV);
+      onFinish();
+    }
+    function fieldUpH() {
+      dom.unbind(window, 'mousemove', setH);
+      dom.unbind(window, 'touchmove', setH);
+      dom.unbind(window, 'mouseup', fieldUpH);
+      dom.unbind(window, 'touchend', fieldUpH);
+      onFinish();
+    }
+    function onBlur() {
+      var i = interpret(this.value);
+      if (i !== false) {
+        _this.__color.__state = i;
+        _this.setValue(_this.__color.toOriginal());
+      } else {
+        this.value = _this.__color.toString();
+      }
+    }
+    function onFinish() {
+      if (_this.__onFinishChange) {
+        _this.__onFinishChange.call(_this, _this.__color.toOriginal());
+      }
+    }
+    _this2.__saturation_field.appendChild(valueField);
+    _this2.__selector.appendChild(_this2.__field_knob);
+    _this2.__selector.appendChild(_this2.__saturation_field);
+    _this2.__selector.appendChild(_this2.__hue_field);
+    _this2.__hue_field.appendChild(_this2.__hue_knob);
+    _this2.domElement.appendChild(_this2.__input);
+    _this2.domElement.appendChild(_this2.__selector);
+    _this2.updateDisplay();
+    function setSV(e) {
+      if (e.type.indexOf('touch') === -1) {
+        e.preventDefault();
+      }
+      var fieldRect = _this.__saturation_field.getBoundingClientRect();
+      var _ref = e.touches && e.touches[0] || e,
+          clientX = _ref.clientX,
+          clientY = _ref.clientY;
+      var s = (clientX - fieldRect.left) / (fieldRect.right - fieldRect.left);
+      var v = 1 - (clientY - fieldRect.top) / (fieldRect.bottom - fieldRect.top);
+      if (v > 1) {
+        v = 1;
+      } else if (v < 0) {
+        v = 0;
+      }
+      if (s > 1) {
+        s = 1;
+      } else if (s < 0) {
+        s = 0;
+      }
+      _this.__color.v = v;
+      _this.__color.s = s;
+      _this.setValue(_this.__color.toOriginal());
+      return false;
+    }
+    function setH(e) {
+      if (e.type.indexOf('touch') === -1) {
+        e.preventDefault();
+      }
+      var fieldRect = _this.__hue_field.getBoundingClientRect();
+      var _ref2 = e.touches && e.touches[0] || e,
+          clientY = _ref2.clientY;
+      var h = 1 - (clientY - fieldRect.top) / (fieldRect.bottom - fieldRect.top);
+      if (h > 1) {
+        h = 1;
+      } else if (h < 0) {
+        h = 0;
+      }
+      _this.__color.h = h * 360;
+      _this.setValue(_this.__color.toOriginal());
+      return false;
+    }
+    return _this2;
+  }
+  createClass(ColorController, [{
+    key: 'updateDisplay',
+    value: function updateDisplay() {
+      var i = interpret(this.getValue());
+      if (i !== false) {
+        var mismatch = false;
+        Common.each(Color.COMPONENTS, function (component) {
+          if (!Common.isUndefined(i[component]) && !Common.isUndefined(this.__color.__state[component]) && i[component] !== this.__color.__state[component]) {
+            mismatch = true;
+            return {};
+          }
+        }, this);
+        if (mismatch) {
+          Common.extend(this.__color.__state, i);
+        }
+      }
+      Common.extend(this.__temp.__state, this.__color.__state);
+      this.__temp.a = 1;
+      var flip = this.__color.v < 0.5 || this.__color.s > 0.5 ? 255 : 0;
+      var _flip = 255 - flip;
+      Common.extend(this.__field_knob.style, {
+        marginLeft: 100 * this.__color.s - 7 + 'px',
+        marginTop: 100 * (1 - this.__color.v) - 7 + 'px',
+        backgroundColor: this.__temp.toHexString(),
+        border: this.__field_knob_border + 'rgb(' + flip + ',' + flip + ',' + flip + ')'
+      });
+      this.__hue_knob.style.marginTop = (1 - this.__color.h / 360) * 100 + 'px';
+      this.__temp.s = 1;
+      this.__temp.v = 1;
+      linearGradient(this.__saturation_field, 'left', '#fff', this.__temp.toHexString());
+      this.__input.value = this.__color.toString();
+      Common.extend(this.__input.style, {
+        backgroundColor: this.__color.toHexString(),
+        color: 'rgb(' + flip + ',' + flip + ',' + flip + ')',
+        textShadow: this.__input_textShadow + 'rgba(' + _flip + ',' + _flip + ',' + _flip + ',.7)'
+      });
+    }
+  }]);
+  return ColorController;
+}(Controller);
+var vendors = ['-moz-', '-o-', '-webkit-', '-ms-', ''];
+function linearGradient(elem, x, a, b) {
+  elem.style.background = '';
+  Common.each(vendors, function (vendor) {
+    elem.style.cssText += 'background: ' + vendor + 'linear-gradient(' + x + ', ' + a + ' 0%, ' + b + ' 100%); ';
+  });
+}
+function hueGradient(elem) {
+  elem.style.background = '';
+  elem.style.cssText += 'background: -moz-linear-gradient(top,  #ff0000 0%, #ff00ff 17%, #0000ff 34%, #00ffff 50%, #00ff00 67%, #ffff00 84%, #ff0000 100%);';
+  elem.style.cssText += 'background: -webkit-linear-gradient(top,  #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);';
+  elem.style.cssText += 'background: -o-linear-gradient(top,  #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);';
+  elem.style.cssText += 'background: -ms-linear-gradient(top,  #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);';
+  elem.style.cssText += 'background: linear-gradient(top,  #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);';
+}
+
+var css = {
+  load: function load(url, indoc) {
+    var doc = indoc || document;
+    var link = doc.createElement('link');
+    link.type = 'text/css';
+    link.rel = 'stylesheet';
+    link.href = url;
+    doc.getElementsByTagName('head')[0].appendChild(link);
+  },
+  inject: function inject(cssContent, indoc) {
+    var doc = indoc || document;
+    var injected = document.createElement('style');
+    injected.type = 'text/css';
+    injected.innerHTML = cssContent;
+    var head = doc.getElementsByTagName('head')[0];
+    try {
+      head.appendChild(injected);
+    } catch (e) {
+    }
+  }
+};
+
+var saveDialogContents = "<div id=\"dg-save\" class=\"dg dialogue\">\n\n  Here's the new load parameter for your <code>GUI</code>'s constructor:\n\n  <textarea id=\"dg-new-constructor\"></textarea>\n\n  <div id=\"dg-save-locally\">\n\n    <input id=\"dg-local-storage\" type=\"checkbox\"/> Automatically save\n    values to <code>localStorage</code> on exit.\n\n    <div id=\"dg-local-explain\">The values saved to <code>localStorage</code> will\n      override those passed to <code>dat.GUI</code>'s constructor. This makes it\n      easier to work incrementally, but <code>localStorage</code> is fragile,\n      and your friends may not see the same values you do.\n\n    </div>\n\n  </div>\n\n</div>";
+
+var ControllerFactory = function ControllerFactory(object, property) {
+  var initialValue = object[property];
+  if (Common.isArray(arguments[2]) || Common.isObject(arguments[2])) {
+    return new OptionController(object, property, arguments[2]);
+  }
+  if (Common.isNumber(initialValue)) {
+    if (Common.isNumber(arguments[2]) && Common.isNumber(arguments[3])) {
+      if (Common.isNumber(arguments[4])) {
+        return new NumberControllerSlider(object, property, arguments[2], arguments[3], arguments[4]);
+      }
+      return new NumberControllerSlider(object, property, arguments[2], arguments[3]);
+    }
+    if (Common.isNumber(arguments[4])) {
+      return new NumberControllerBox(object, property, { min: arguments[2], max: arguments[3], step: arguments[4] });
+    }
+    return new NumberControllerBox(object, property, { min: arguments[2], max: arguments[3] });
+  }
+  if (Common.isString(initialValue)) {
+    return new StringController(object, property);
+  }
+  if (Common.isFunction(initialValue)) {
+    return new FunctionController(object, property, '');
+  }
+  if (Common.isBoolean(initialValue)) {
+    return new BooleanController(object, property);
+  }
+  return null;
+};
+
+function requestAnimationFrame(callback) {
+  setTimeout(callback, 1000 / 60);
+}
+var requestAnimationFrame$1 = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || requestAnimationFrame;
+
+var CenteredDiv = function () {
+  function CenteredDiv() {
+    classCallCheck(this, CenteredDiv);
+    this.backgroundElement = document.createElement('div');
+    Common.extend(this.backgroundElement.style, {
+      backgroundColor: 'rgba(0,0,0,0.8)',
+      top: 0,
+      left: 0,
+      display: 'none',
+      zIndex: '1000',
+      opacity: 0,
+      WebkitTransition: 'opacity 0.2s linear',
+      transition: 'opacity 0.2s linear'
+    });
+    dom.makeFullscreen(this.backgroundElement);
+    this.backgroundElement.style.position = 'fixed';
+    this.domElement = document.createElement('div');
+    Common.extend(this.domElement.style, {
+      position: 'fixed',
+      display: 'none',
+      zIndex: '1001',
+      opacity: 0,
+      WebkitTransition: '-webkit-transform 0.2s ease-out, opacity 0.2s linear',
+      transition: 'transform 0.2s ease-out, opacity 0.2s linear'
+    });
+    document.body.appendChild(this.backgroundElement);
+    document.body.appendChild(this.domElement);
+    var _this = this;
+    dom.bind(this.backgroundElement, 'click', function () {
+      _this.hide();
+    });
+  }
+  createClass(CenteredDiv, [{
+    key: 'show',
+    value: function show() {
+      var _this = this;
+      this.backgroundElement.style.display = 'block';
+      this.domElement.style.display = 'block';
+      this.domElement.style.opacity = 0;
+      this.domElement.style.webkitTransform = 'scale(1.1)';
+      this.layout();
+      Common.defer(function () {
+        _this.backgroundElement.style.opacity = 1;
+        _this.domElement.style.opacity = 1;
+        _this.domElement.style.webkitTransform = 'scale(1)';
+      });
+    }
+  }, {
+    key: 'hide',
+    value: function hide() {
+      var _this = this;
+      var hide = function hide() {
+        _this.domElement.style.display = 'none';
+        _this.backgroundElement.style.display = 'none';
+        dom.unbind(_this.domElement, 'webkitTransitionEnd', hide);
+        dom.unbind(_this.domElement, 'transitionend', hide);
+        dom.unbind(_this.domElement, 'oTransitionEnd', hide);
+      };
+      dom.bind(this.domElement, 'webkitTransitionEnd', hide);
+      dom.bind(this.domElement, 'transitionend', hide);
+      dom.bind(this.domElement, 'oTransitionEnd', hide);
+      this.backgroundElement.style.opacity = 0;
+      this.domElement.style.opacity = 0;
+      this.domElement.style.webkitTransform = 'scale(1.1)';
+    }
+  }, {
+    key: 'layout',
+    value: function layout() {
+      this.domElement.style.left = window.innerWidth / 2 - dom.getWidth(this.domElement) / 2 + 'px';
+      this.domElement.style.top = window.innerHeight / 2 - dom.getHeight(this.domElement) / 2 + 'px';
+    }
+  }]);
+  return CenteredDiv;
+}();
+
+var styleSheet = ___$insertStyle(".dg ul{list-style:none;margin:0;padding:0;width:100%;clear:both}.dg.ac{position:fixed;top:0;left:0;right:0;height:0;z-index:0}.dg:not(.ac) .main{overflow:hidden}.dg.main{-webkit-transition:opacity .1s linear;-o-transition:opacity .1s linear;-moz-transition:opacity .1s linear;transition:opacity .1s linear}.dg.main.taller-than-window{overflow-y:auto}.dg.main.taller-than-window .close-button{opacity:1;margin-top:-1px;border-top:1px solid #2c2c2c}.dg.main ul.closed .close-button{opacity:1 !important}.dg.main:hover .close-button,.dg.main .close-button.drag{opacity:1}.dg.main .close-button{-webkit-transition:opacity .1s linear;-o-transition:opacity .1s linear;-moz-transition:opacity .1s linear;transition:opacity .1s linear;border:0;line-height:19px;height:20px;cursor:pointer;text-align:center;background-color:#000}.dg.main .close-button.close-top{position:relative}.dg.main .close-button.close-bottom{position:absolute}.dg.main .close-button:hover{background-color:#111}.dg.a{float:right;margin-right:15px;overflow-y:visible}.dg.a.has-save>ul.close-top{margin-top:0}.dg.a.has-save>ul.close-bottom{margin-top:27px}.dg.a.has-save>ul.closed{margin-top:0}.dg.a .save-row{top:0;z-index:1002}.dg.a .save-row.close-top{position:relative}.dg.a .save-row.close-bottom{position:fixed}.dg li{-webkit-transition:height .1s ease-out;-o-transition:height .1s ease-out;-moz-transition:height .1s ease-out;transition:height .1s ease-out;-webkit-transition:overflow .1s linear;-o-transition:overflow .1s linear;-moz-transition:overflow .1s linear;transition:overflow .1s linear}.dg li:not(.folder){cursor:auto;height:27px;line-height:27px;padding:0 4px 0 5px}.dg li.folder{padding:0;border-left:4px solid rgba(0,0,0,0)}.dg li.title{cursor:pointer;margin-left:-4px}.dg .closed li:not(.title),.dg .closed ul li,.dg .closed ul li>*{height:0;overflow:hidden;border:0}.dg .cr{clear:both;padding-left:3px;height:27px;overflow:hidden}.dg .property-name{cursor:default;float:left;clear:left;width:40%;overflow:hidden;text-overflow:ellipsis}.dg .c{float:left;width:60%;position:relative}.dg .c input[type=text]{border:0;margin-top:4px;padding:3px;width:100%;float:right}.dg .has-slider input[type=text]{width:30%;margin-left:0}.dg .slider{float:left;width:66%;margin-left:-5px;margin-right:0;height:19px;margin-top:4px}.dg .slider-fg{height:100%}.dg .c input[type=checkbox]{margin-top:7px}.dg .c select{margin-top:5px}.dg .cr.function,.dg .cr.function .property-name,.dg .cr.function *,.dg .cr.boolean,.dg .cr.boolean *{cursor:pointer}.dg .cr.color{overflow:visible}.dg .selector{display:none;position:absolute;margin-left:-9px;margin-top:23px;z-index:10}.dg .c:hover .selector,.dg .selector.drag{display:block}.dg li.save-row{padding:0}.dg li.save-row .button{display:inline-block;padding:0px 6px}.dg.dialogue{background-color:#222;width:460px;padding:15px;font-size:13px;line-height:15px}#dg-new-constructor{padding:10px;color:#222;font-family:Monaco, monospace;font-size:10px;border:0;resize:none;box-shadow:inset 1px 1px 1px #888;word-wrap:break-word;margin:12px 0;display:block;width:440px;overflow-y:scroll;height:100px;position:relative}#dg-local-explain{display:none;font-size:11px;line-height:17px;border-radius:3px;background-color:#333;padding:8px;margin-top:10px}#dg-local-explain code{font-size:10px}#dat-gui-save-locally{display:none}.dg{color:#eee;font:11px 'Lucida Grande', sans-serif;text-shadow:0 -1px 0 #111}.dg.main::-webkit-scrollbar{width:5px;background:#1a1a1a}.dg.main::-webkit-scrollbar-corner{height:0;display:none}.dg.main::-webkit-scrollbar-thumb{border-radius:5px;background:#676767}.dg li:not(.folder){background:#1a1a1a;border-bottom:1px solid #2c2c2c}.dg li.save-row{line-height:25px;background:#dad5cb;border:0}.dg li.save-row select{margin-left:5px;width:108px}.dg li.save-row .button{margin-left:5px;margin-top:1px;border-radius:2px;font-size:9px;line-height:7px;padding:4px 4px 5px 4px;background:#c5bdad;color:#fff;text-shadow:0 1px 0 #b0a58f;box-shadow:0 -1px 0 #b0a58f;cursor:pointer}.dg li.save-row .button.gears{background:#c5bdad url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAANCAYAAAB/9ZQ7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQJJREFUeNpiYKAU/P//PwGIC/ApCABiBSAW+I8AClAcgKxQ4T9hoMAEUrxx2QSGN6+egDX+/vWT4e7N82AMYoPAx/evwWoYoSYbACX2s7KxCxzcsezDh3evFoDEBYTEEqycggWAzA9AuUSQQgeYPa9fPv6/YWm/Acx5IPb7ty/fw+QZblw67vDs8R0YHyQhgObx+yAJkBqmG5dPPDh1aPOGR/eugW0G4vlIoTIfyFcA+QekhhHJhPdQxbiAIguMBTQZrPD7108M6roWYDFQiIAAv6Aow/1bFwXgis+f2LUAynwoIaNcz8XNx3Dl7MEJUDGQpx9gtQ8YCueB+D26OECAAQDadt7e46D42QAAAABJRU5ErkJggg==) 2px 1px no-repeat;height:7px;width:8px}.dg li.save-row .button:hover{background-color:#bab19e;box-shadow:0 -1px 0 #b0a58f}.dg li.folder{border-bottom:0}.dg li.title{padding-left:16px;background:#000 url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlI+hKgFxoCgAOw==) 6px 10px no-repeat;cursor:pointer;border-bottom:1px solid rgba(255,255,255,0.2)}.dg .closed li.title{background-image:url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlGIWqMCbWAEAOw==)}.dg .cr.boolean{border-left:3px solid #806787}.dg .cr.color{border-left:3px solid}.dg .cr.function{border-left:3px solid #e61d5f}.dg .cr.number{border-left:3px solid #2FA1D6}.dg .cr.number input[type=text]{color:#2FA1D6}.dg .cr.string{border-left:3px solid #1ed36f}.dg .cr.string input[type=text]{color:#1ed36f}.dg .cr.function:hover,.dg .cr.boolean:hover{background:#111}.dg .c input[type=text]{background:#303030;outline:none}.dg .c input[type=text]:hover{background:#3c3c3c}.dg .c input[type=text]:focus{background:#494949;color:#fff}.dg .c .slider{background:#303030;cursor:ew-resize}.dg .c .slider-fg{background:#2FA1D6;max-width:100%}.dg .c .slider:hover{background:#3c3c3c}.dg .c .slider:hover .slider-fg{background:#44abda}\n");
+
+css.inject(styleSheet);
+var CSS_NAMESPACE = 'dg';
+var HIDE_KEY_CODE = 72;
+var CLOSE_BUTTON_HEIGHT = 20;
+var DEFAULT_DEFAULT_PRESET_NAME = 'Default';
+var SUPPORTS_LOCAL_STORAGE = function () {
+  try {
+    return !!window.localStorage;
+  } catch (e) {
+    return false;
+  }
+}();
+var SAVE_DIALOGUE = void 0;
+var autoPlaceVirgin = true;
+var autoPlaceContainer = void 0;
+var hide = false;
+var hideableGuis = [];
+var GUI = function GUI(pars) {
+  var _this = this;
+  var params = pars || {};
+  this.domElement = document.createElement('div');
+  this.__ul = document.createElement('ul');
+  this.domElement.appendChild(this.__ul);
+  dom.addClass(this.domElement, CSS_NAMESPACE);
+  this.__folders = {};
+  this.__controllers = [];
+  this.__rememberedObjects = [];
+  this.__rememberedObjectIndecesToControllers = [];
+  this.__listening = [];
+  params = Common.defaults(params, {
+    closeOnTop: false,
+    autoPlace: true,
+    width: GUI.DEFAULT_WIDTH
+  });
+  params = Common.defaults(params, {
+    resizable: params.autoPlace,
+    hideable: params.autoPlace
+  });
+  if (!Common.isUndefined(params.load)) {
+    if (params.preset) {
+      params.load.preset = params.preset;
+    }
+  } else {
+    params.load = { preset: DEFAULT_DEFAULT_PRESET_NAME };
+  }
+  if (Common.isUndefined(params.parent) && params.hideable) {
+    hideableGuis.push(this);
+  }
+  params.resizable = Common.isUndefined(params.parent) && params.resizable;
+  if (params.autoPlace && Common.isUndefined(params.scrollable)) {
+    params.scrollable = true;
+  }
+  var useLocalStorage = SUPPORTS_LOCAL_STORAGE && localStorage.getItem(getLocalStorageHash(this, 'isLocal')) === 'true';
+  var saveToLocalStorage = void 0;
+  var titleRow = void 0;
+  Object.defineProperties(this,
+  {
+    parent: {
+      get: function get$$1() {
+        return params.parent;
+      }
+    },
+    scrollable: {
+      get: function get$$1() {
+        return params.scrollable;
+      }
+    },
+    autoPlace: {
+      get: function get$$1() {
+        return params.autoPlace;
+      }
+    },
+    closeOnTop: {
+      get: function get$$1() {
+        return params.closeOnTop;
+      }
+    },
+    preset: {
+      get: function get$$1() {
+        if (_this.parent) {
+          return _this.getRoot().preset;
+        }
+        return params.load.preset;
+      },
+      set: function set$$1(v) {
+        if (_this.parent) {
+          _this.getRoot().preset = v;
+        } else {
+          params.load.preset = v;
+        }
+        setPresetSelectIndex(this);
+        _this.revert();
+      }
+    },
+    width: {
+      get: function get$$1() {
+        return params.width;
+      },
+      set: function set$$1(v) {
+        params.width = v;
+        setWidth(_this, v);
+      }
+    },
+    name: {
+      get: function get$$1() {
+        return params.name;
+      },
+      set: function set$$1(v) {
+        params.name = v;
+        if (titleRow) {
+          titleRow.innerHTML = params.name;
+        }
+      }
+    },
+    closed: {
+      get: function get$$1() {
+        return params.closed;
+      },
+      set: function set$$1(v) {
+        params.closed = v;
+        if (params.closed) {
+          dom.addClass(_this.__ul, GUI.CLASS_CLOSED);
+        } else {
+          dom.removeClass(_this.__ul, GUI.CLASS_CLOSED);
+        }
+        this.onResize();
+        if (_this.__closeButton) {
+          _this.__closeButton.innerHTML = v ? GUI.TEXT_OPEN : GUI.TEXT_CLOSED;
+        }
+      }
+    },
+    load: {
+      get: function get$$1() {
+        return params.load;
+      }
+    },
+    useLocalStorage: {
+      get: function get$$1() {
+        return useLocalStorage;
+      },
+      set: function set$$1(bool) {
+        if (SUPPORTS_LOCAL_STORAGE) {
+          useLocalStorage = bool;
+          if (bool) {
+            dom.bind(window, 'unload', saveToLocalStorage);
+          } else {
+            dom.unbind(window, 'unload', saveToLocalStorage);
+          }
+          localStorage.setItem(getLocalStorageHash(_this, 'isLocal'), bool);
+        }
+      }
+    }
+  });
+  if (Common.isUndefined(params.parent)) {
+    this.closed = params.closed || false;
+    dom.addClass(this.domElement, GUI.CLASS_MAIN);
+    dom.makeSelectable(this.domElement, false);
+    if (SUPPORTS_LOCAL_STORAGE) {
+      if (useLocalStorage) {
+        _this.useLocalStorage = true;
+        var savedGui = localStorage.getItem(getLocalStorageHash(this, 'gui'));
+        if (savedGui) {
+          params.load = JSON.parse(savedGui);
+        }
+      }
+    }
+    this.__closeButton = document.createElement('div');
+    this.__closeButton.innerHTML = GUI.TEXT_CLOSED;
+    dom.addClass(this.__closeButton, GUI.CLASS_CLOSE_BUTTON);
+    if (params.closeOnTop) {
+      dom.addClass(this.__closeButton, GUI.CLASS_CLOSE_TOP);
+      this.domElement.insertBefore(this.__closeButton, this.domElement.childNodes[0]);
+    } else {
+      dom.addClass(this.__closeButton, GUI.CLASS_CLOSE_BOTTOM);
+      this.domElement.appendChild(this.__closeButton);
+    }
+    dom.bind(this.__closeButton, 'click', function () {
+      _this.closed = !_this.closed;
+    });
+  } else {
+    if (params.closed === undefined) {
+      params.closed = true;
+    }
+    var titleRowName = document.createTextNode(params.name);
+    dom.addClass(titleRowName, 'controller-name');
+    titleRow = addRow(_this, titleRowName);
+    var onClickTitle = function onClickTitle(e) {
+      e.preventDefault();
+      _this.closed = !_this.closed;
+      return false;
+    };
+    dom.addClass(this.__ul, GUI.CLASS_CLOSED);
+    dom.addClass(titleRow, 'title');
+    dom.bind(titleRow, 'click', onClickTitle);
+    if (!params.closed) {
+      this.closed = false;
+    }
+  }
+  if (params.autoPlace) {
+    if (Common.isUndefined(params.parent)) {
+      if (autoPlaceVirgin) {
+        autoPlaceContainer = document.createElement('div');
+        dom.addClass(autoPlaceContainer, CSS_NAMESPACE);
+        dom.addClass(autoPlaceContainer, GUI.CLASS_AUTO_PLACE_CONTAINER);
+        document.body.appendChild(autoPlaceContainer);
+        autoPlaceVirgin = false;
+      }
+      autoPlaceContainer.appendChild(this.domElement);
+      dom.addClass(this.domElement, GUI.CLASS_AUTO_PLACE);
+    }
+    if (!this.parent) {
+      setWidth(_this, params.width);
+    }
+  }
+  this.__resizeHandler = function () {
+    _this.onResizeDebounced();
+  };
+  dom.bind(window, 'resize', this.__resizeHandler);
+  dom.bind(this.__ul, 'webkitTransitionEnd', this.__resizeHandler);
+  dom.bind(this.__ul, 'transitionend', this.__resizeHandler);
+  dom.bind(this.__ul, 'oTransitionEnd', this.__resizeHandler);
+  this.onResize();
+  if (params.resizable) {
+    addResizeHandle(this);
+  }
+  saveToLocalStorage = function saveToLocalStorage() {
+    if (SUPPORTS_LOCAL_STORAGE && localStorage.getItem(getLocalStorageHash(_this, 'isLocal')) === 'true') {
+      localStorage.setItem(getLocalStorageHash(_this, 'gui'), JSON.stringify(_this.getSaveObject()));
+    }
+  };
+  this.saveToLocalStorageIfPossible = saveToLocalStorage;
+  function resetWidth() {
+    var root = _this.getRoot();
+    root.width += 1;
+    Common.defer(function () {
+      root.width -= 1;
+    });
+  }
+  if (!params.parent) {
+    resetWidth();
+  }
+};
+GUI.toggleHide = function () {
+  hide = !hide;
+  Common.each(hideableGuis, function (gui) {
+    gui.domElement.style.display = hide ? 'none' : '';
+  });
+};
+GUI.CLASS_AUTO_PLACE = 'a';
+GUI.CLASS_AUTO_PLACE_CONTAINER = 'ac';
+GUI.CLASS_MAIN = 'main';
+GUI.CLASS_CONTROLLER_ROW = 'cr';
+GUI.CLASS_TOO_TALL = 'taller-than-window';
+GUI.CLASS_CLOSED = 'closed';
+GUI.CLASS_CLOSE_BUTTON = 'close-button';
+GUI.CLASS_CLOSE_TOP = 'close-top';
+GUI.CLASS_CLOSE_BOTTOM = 'close-bottom';
+GUI.CLASS_DRAG = 'drag';
+GUI.DEFAULT_WIDTH = 245;
+GUI.TEXT_CLOSED = 'Close Controls';
+GUI.TEXT_OPEN = 'Open Controls';
+GUI._keydownHandler = function (e) {
+  if (document.activeElement.type !== 'text' && (e.which === HIDE_KEY_CODE || e.keyCode === HIDE_KEY_CODE)) {
+    GUI.toggleHide();
+  }
+};
+dom.bind(window, 'keydown', GUI._keydownHandler, false);
+Common.extend(GUI.prototype,
+{
+  add: function add(object, property) {
+    return _add(this, object, property, {
+      factoryArgs: Array.prototype.slice.call(arguments, 2)
+    });
+  },
+  addColor: function addColor(object, property) {
+    return _add(this, object, property, {
+      color: true
+    });
+  },
+  remove: function remove(controller) {
+    this.__ul.removeChild(controller.__li);
+    this.__controllers.splice(this.__controllers.indexOf(controller), 1);
+    var _this = this;
+    Common.defer(function () {
+      _this.onResize();
+    });
+  },
+  destroy: function destroy() {
+    if (this.parent) {
+      throw new Error('Only the root GUI should be removed with .destroy(). ' + 'For subfolders, use gui.removeFolder(folder) instead.');
+    }
+    if (this.autoPlace) {
+      autoPlaceContainer.removeChild(this.domElement);
+    }
+    var _this = this;
+    Common.each(this.__folders, function (subfolder) {
+      _this.removeFolder(subfolder);
+    });
+    dom.unbind(window, 'keydown', GUI._keydownHandler, false);
+    removeListeners(this);
+  },
+  addFolder: function addFolder(name) {
+    if (this.__folders[name] !== undefined) {
+      throw new Error('You already have a folder in this GUI by the' + ' name "' + name + '"');
+    }
+    var newGuiParams = { name: name, parent: this };
+    newGuiParams.autoPlace = this.autoPlace;
+    if (this.load &&
+    this.load.folders &&
+    this.load.folders[name]) {
+      newGuiParams.closed = this.load.folders[name].closed;
+      newGuiParams.load = this.load.folders[name];
+    }
+    var gui = new GUI(newGuiParams);
+    this.__folders[name] = gui;
+    var li = addRow(this, gui.domElement);
+    dom.addClass(li, 'folder');
+    return gui;
+  },
+  removeFolder: function removeFolder(folder) {
+    this.__ul.removeChild(folder.domElement.parentElement);
+    delete this.__folders[folder.name];
+    if (this.load &&
+    this.load.folders &&
+    this.load.folders[folder.name]) {
+      delete this.load.folders[folder.name];
+    }
+    removeListeners(folder);
+    var _this = this;
+    Common.each(folder.__folders, function (subfolder) {
+      folder.removeFolder(subfolder);
+    });
+    Common.defer(function () {
+      _this.onResize();
+    });
+  },
+  open: function open() {
+    this.closed = false;
+  },
+  close: function close() {
+    this.closed = true;
+  },
+  hide: function hide() {
+    this.domElement.style.display = 'none';
+  },
+  show: function show() {
+    this.domElement.style.display = '';
+  },
+  onResize: function onResize() {
+    var root = this.getRoot();
+    if (root.scrollable) {
+      var top = dom.getOffset(root.__ul).top;
+      var h = 0;
+      Common.each(root.__ul.childNodes, function (node) {
+        if (!(root.autoPlace && node === root.__save_row)) {
+          h += dom.getHeight(node);
+        }
+      });
+      if (window.innerHeight - top - CLOSE_BUTTON_HEIGHT < h) {
+        dom.addClass(root.domElement, GUI.CLASS_TOO_TALL);
+        root.__ul.style.height = window.innerHeight - top - CLOSE_BUTTON_HEIGHT + 'px';
+      } else {
+        dom.removeClass(root.domElement, GUI.CLASS_TOO_TALL);
+        root.__ul.style.height = 'auto';
+      }
+    }
+    if (root.__resize_handle) {
+      Common.defer(function () {
+        root.__resize_handle.style.height = root.__ul.offsetHeight + 'px';
+      });
+    }
+    if (root.__closeButton) {
+      root.__closeButton.style.width = root.width + 'px';
+    }
+  },
+  onResizeDebounced: Common.debounce(function () {
+    this.onResize();
+  }, 50),
+  remember: function remember() {
+    if (Common.isUndefined(SAVE_DIALOGUE)) {
+      SAVE_DIALOGUE = new CenteredDiv();
+      SAVE_DIALOGUE.domElement.innerHTML = saveDialogContents;
+    }
+    if (this.parent) {
+      throw new Error('You can only call remember on a top level GUI.');
+    }
+    var _this = this;
+    Common.each(Array.prototype.slice.call(arguments), function (object) {
+      if (_this.__rememberedObjects.length === 0) {
+        addSaveMenu(_this);
+      }
+      if (_this.__rememberedObjects.indexOf(object) === -1) {
+        _this.__rememberedObjects.push(object);
+      }
+    });
+    if (this.autoPlace) {
+      setWidth(this, this.width);
+    }
+  },
+  getRoot: function getRoot() {
+    var gui = this;
+    while (gui.parent) {
+      gui = gui.parent;
+    }
+    return gui;
+  },
+  getSaveObject: function getSaveObject() {
+    var toReturn = this.load;
+    toReturn.closed = this.closed;
+    if (this.__rememberedObjects.length > 0) {
+      toReturn.preset = this.preset;
+      if (!toReturn.remembered) {
+        toReturn.remembered = {};
+      }
+      toReturn.remembered[this.preset] = getCurrentPreset(this);
+    }
+    toReturn.folders = {};
+    Common.each(this.__folders, function (element, key) {
+      toReturn.folders[key] = element.getSaveObject();
+    });
+    return toReturn;
+  },
+  save: function save() {
+    if (!this.load.remembered) {
+      this.load.remembered = {};
+    }
+    this.load.remembered[this.preset] = getCurrentPreset(this);
+    markPresetModified(this, false);
+    this.saveToLocalStorageIfPossible();
+  },
+  saveAs: function saveAs(presetName) {
+    if (!this.load.remembered) {
+      this.load.remembered = {};
+      this.load.remembered[DEFAULT_DEFAULT_PRESET_NAME] = getCurrentPreset(this, true);
+    }
+    this.load.remembered[presetName] = getCurrentPreset(this);
+    this.preset = presetName;
+    addPresetOption(this, presetName, true);
+    this.saveToLocalStorageIfPossible();
+  },
+  revert: function revert(gui) {
+    Common.each(this.__controllers, function (controller) {
+      if (!this.getRoot().load.remembered) {
+        controller.setValue(controller.initialValue);
+      } else {
+        recallSavedValue(gui || this.getRoot(), controller);
+      }
+      if (controller.__onFinishChange) {
+        controller.__onFinishChange.call(controller, controller.getValue());
+      }
+    }, this);
+    Common.each(this.__folders, function (folder) {
+      folder.revert(folder);
+    });
+    if (!gui) {
+      markPresetModified(this.getRoot(), false);
+    }
+  },
+  listen: function listen(controller) {
+    var init = this.__listening.length === 0;
+    this.__listening.push(controller);
+    if (init) {
+      updateDisplays(this.__listening);
+    }
+  },
+  updateDisplay: function updateDisplay() {
+    Common.each(this.__controllers, function (controller) {
+      controller.updateDisplay();
+    });
+    Common.each(this.__folders, function (folder) {
+      folder.updateDisplay();
+    });
+  }
+});
+function addRow(gui, newDom, liBefore) {
+  var li = document.createElement('li');
+  if (newDom) {
+    li.appendChild(newDom);
+  }
+  if (liBefore) {
+    gui.__ul.insertBefore(li, liBefore);
+  } else {
+    gui.__ul.appendChild(li);
+  }
+  gui.onResize();
+  return li;
+}
+function removeListeners(gui) {
+  dom.unbind(window, 'resize', gui.__resizeHandler);
+  if (gui.saveToLocalStorageIfPossible) {
+    dom.unbind(window, 'unload', gui.saveToLocalStorageIfPossible);
+  }
+}
+function markPresetModified(gui, modified) {
+  var opt = gui.__preset_select[gui.__preset_select.selectedIndex];
+  if (modified) {
+    opt.innerHTML = opt.value + '*';
+  } else {
+    opt.innerHTML = opt.value;
+  }
+}
+function augmentController(gui, li, controller) {
+  controller.__li = li;
+  controller.__gui = gui;
+  Common.extend(controller,                                   {
+    options: function options(_options) {
+      if (arguments.length > 1) {
+        var nextSibling = controller.__li.nextElementSibling;
+        controller.remove();
+        return _add(gui, controller.object, controller.property, {
+          before: nextSibling,
+          factoryArgs: [Common.toArray(arguments)]
+        });
+      }
+      if (Common.isArray(_options) || Common.isObject(_options)) {
+        var _nextSibling = controller.__li.nextElementSibling;
+        controller.remove();
+        return _add(gui, controller.object, controller.property, {
+          before: _nextSibling,
+          factoryArgs: [_options]
+        });
+      }
+    },
+    name: function name(_name) {
+      controller.__li.firstElementChild.firstElementChild.innerHTML = _name;
+      return controller;
+    },
+    listen: function listen() {
+      controller.__gui.listen(controller);
+      return controller;
+    },
+    remove: function remove() {
+      controller.__gui.remove(controller);
+      return controller;
+    }
+  });
+  if (controller instanceof NumberControllerSlider) {
+    var box = new NumberControllerBox(controller.object, controller.property, { min: controller.__min, max: controller.__max, step: controller.__step });
+    Common.each(['updateDisplay', 'onChange', 'onFinishChange', 'step', 'min', 'max'], function (method) {
+      var pc = controller[method];
+      var pb = box[method];
+      controller[method] = box[method] = function () {
+        var args = Array.prototype.slice.call(arguments);
+        pb.apply(box, args);
+        return pc.apply(controller, args);
+      };
+    });
+    dom.addClass(li, 'has-slider');
+    controller.domElement.insertBefore(box.domElement, controller.domElement.firstElementChild);
+  } else if (controller instanceof NumberControllerBox) {
+    var r = function r(returned) {
+      if (Common.isNumber(controller.__min) && Common.isNumber(controller.__max)) {
+        var oldName = controller.__li.firstElementChild.firstElementChild.innerHTML;
+        var wasListening = controller.__gui.__listening.indexOf(controller) > -1;
+        controller.remove();
+        var newController = _add(gui, controller.object, controller.property, {
+          before: controller.__li.nextElementSibling,
+          factoryArgs: [controller.__min, controller.__max, controller.__step]
+        });
+        newController.name(oldName);
+        if (wasListening) newController.listen();
+        return newController;
+      }
+      return returned;
+    };
+    controller.min = Common.compose(r, controller.min);
+    controller.max = Common.compose(r, controller.max);
+  } else if (controller instanceof BooleanController) {
+    dom.bind(li, 'click', function () {
+      dom.fakeEvent(controller.__checkbox, 'click');
+    });
+    dom.bind(controller.__checkbox, 'click', function (e) {
+      e.stopPropagation();
+    });
+  } else if (controller instanceof FunctionController) {
+    dom.bind(li, 'click', function () {
+      dom.fakeEvent(controller.__button, 'click');
+    });
+    dom.bind(li, 'mouseover', function () {
+      dom.addClass(controller.__button, 'hover');
+    });
+    dom.bind(li, 'mouseout', function () {
+      dom.removeClass(controller.__button, 'hover');
+    });
+  } else if (controller instanceof ColorController) {
+    dom.addClass(li, 'color');
+    controller.updateDisplay = Common.compose(function (val) {
+      li.style.borderLeftColor = controller.__color.toString();
+      return val;
+    }, controller.updateDisplay);
+    controller.updateDisplay();
+  }
+  controller.setValue = Common.compose(function (val) {
+    if (gui.getRoot().__preset_select && controller.isModified()) {
+      markPresetModified(gui.getRoot(), true);
+    }
+    return val;
+  }, controller.setValue);
+}
+function recallSavedValue(gui, controller) {
+  var root = gui.getRoot();
+  var matchedIndex = root.__rememberedObjects.indexOf(controller.object);
+  if (matchedIndex !== -1) {
+    var controllerMap = root.__rememberedObjectIndecesToControllers[matchedIndex];
+    if (controllerMap === undefined) {
+      controllerMap = {};
+      root.__rememberedObjectIndecesToControllers[matchedIndex] = controllerMap;
+    }
+    controllerMap[controller.property] = controller;
+    if (root.load && root.load.remembered) {
+      var presetMap = root.load.remembered;
+      var preset = void 0;
+      if (presetMap[gui.preset]) {
+        preset = presetMap[gui.preset];
+      } else if (presetMap[DEFAULT_DEFAULT_PRESET_NAME]) {
+        preset = presetMap[DEFAULT_DEFAULT_PRESET_NAME];
+      } else {
+        return;
+      }
+      if (preset[matchedIndex] && preset[matchedIndex][controller.property] !== undefined) {
+        var value = preset[matchedIndex][controller.property];
+        controller.initialValue = value;
+        controller.setValue(value);
+      }
+    }
+  }
+}
+function _add(gui, object, property, params) {
+  if (object[property] === undefined) {
+    throw new Error('Object "' + object + '" has no property "' + property + '"');
+  }
+  var controller = void 0;
+  if (params.color) {
+    controller = new ColorController(object, property);
+  } else {
+    var factoryArgs = [object, property].concat(params.factoryArgs);
+    controller = ControllerFactory.apply(gui, factoryArgs);
+  }
+  if (params.before instanceof Controller) {
+    params.before = params.before.__li;
+  }
+  recallSavedValue(gui, controller);
+  dom.addClass(controller.domElement, 'c');
+  var name = document.createElement('span');
+  dom.addClass(name, 'property-name');
+  name.innerHTML = controller.property;
+  var container = document.createElement('div');
+  container.appendChild(name);
+  container.appendChild(controller.domElement);
+  var li = addRow(gui, container, params.before);
+  dom.addClass(li, GUI.CLASS_CONTROLLER_ROW);
+  if (controller instanceof ColorController) {
+    dom.addClass(li, 'color');
+  } else {
+    dom.addClass(li, _typeof(controller.getValue()));
+  }
+  augmentController(gui, li, controller);
+  gui.__controllers.push(controller);
+  return controller;
+}
+function getLocalStorageHash(gui, key) {
+  return document.location.href + '.' + key;
+}
+function addPresetOption(gui, name, setSelected) {
+  var opt = document.createElement('option');
+  opt.innerHTML = name;
+  opt.value = name;
+  gui.__preset_select.appendChild(opt);
+  if (setSelected) {
+    gui.__preset_select.selectedIndex = gui.__preset_select.length - 1;
+  }
+}
+function showHideExplain(gui, explain) {
+  explain.style.display = gui.useLocalStorage ? 'block' : 'none';
+}
+function addSaveMenu(gui) {
+  var div = gui.__save_row = document.createElement('li');
+  dom.addClass(gui.domElement, 'has-save');
+  gui.__ul.insertBefore(div, gui.__ul.firstChild);
+  dom.addClass(div, 'save-row');
+  var gears = document.createElement('span');
+  gears.innerHTML = '&nbsp;';
+  dom.addClass(gears, 'button gears');
+  var button = document.createElement('span');
+  button.innerHTML = 'Save';
+  dom.addClass(button, 'button');
+  dom.addClass(button, 'save');
+  var button2 = document.createElement('span');
+  button2.innerHTML = 'New';
+  dom.addClass(button2, 'button');
+  dom.addClass(button2, 'save-as');
+  var button3 = document.createElement('span');
+  button3.innerHTML = 'Revert';
+  dom.addClass(button3, 'button');
+  dom.addClass(button3, 'revert');
+  var select = gui.__preset_select = document.createElement('select');
+  if (gui.load && gui.load.remembered) {
+    Common.each(gui.load.remembered, function (value, key) {
+      addPresetOption(gui, key, key === gui.preset);
+    });
+  } else {
+    addPresetOption(gui, DEFAULT_DEFAULT_PRESET_NAME, false);
+  }
+  dom.bind(select, 'change', function () {
+    for (var index = 0; index < gui.__preset_select.length; index++) {
+      gui.__preset_select[index].innerHTML = gui.__preset_select[index].value;
+    }
+    gui.preset = this.value;
+  });
+  div.appendChild(select);
+  div.appendChild(gears);
+  div.appendChild(button);
+  div.appendChild(button2);
+  div.appendChild(button3);
+  if (SUPPORTS_LOCAL_STORAGE) {
+    var explain = document.getElementById('dg-local-explain');
+    var localStorageCheckBox = document.getElementById('dg-local-storage');
+    var saveLocally = document.getElementById('dg-save-locally');
+    saveLocally.style.display = 'block';
+    if (localStorage.getItem(getLocalStorageHash(gui, 'isLocal')) === 'true') {
+      localStorageCheckBox.setAttribute('checked', 'checked');
+    }
+    showHideExplain(gui, explain);
+    dom.bind(localStorageCheckBox, 'change', function () {
+      gui.useLocalStorage = !gui.useLocalStorage;
+      showHideExplain(gui, explain);
+    });
+  }
+  var newConstructorTextArea = document.getElementById('dg-new-constructor');
+  dom.bind(newConstructorTextArea, 'keydown', function (e) {
+    if (e.metaKey && (e.which === 67 || e.keyCode === 67)) {
+      SAVE_DIALOGUE.hide();
+    }
+  });
+  dom.bind(gears, 'click', function () {
+    newConstructorTextArea.innerHTML = JSON.stringify(gui.getSaveObject(), undefined, 2);
+    SAVE_DIALOGUE.show();
+    newConstructorTextArea.focus();
+    newConstructorTextArea.select();
+  });
+  dom.bind(button, 'click', function () {
+    gui.save();
+  });
+  dom.bind(button2, 'click', function () {
+    var presetName = prompt('Enter a new preset name.');
+    if (presetName) {
+      gui.saveAs(presetName);
+    }
+  });
+  dom.bind(button3, 'click', function () {
+    gui.revert();
+  });
+}
+function addResizeHandle(gui) {
+  var pmouseX = void 0;
+  gui.__resize_handle = document.createElement('div');
+  Common.extend(gui.__resize_handle.style, {
+    width: '6px',
+    marginLeft: '-3px',
+    height: '200px',
+    cursor: 'ew-resize',
+    position: 'absolute'
+  });
+  function drag(e) {
+    e.preventDefault();
+    gui.width += pmouseX - e.clientX;
+    gui.onResize();
+    pmouseX = e.clientX;
+    return false;
+  }
+  function dragStop() {
+    dom.removeClass(gui.__closeButton, GUI.CLASS_DRAG);
+    dom.unbind(window, 'mousemove', drag);
+    dom.unbind(window, 'mouseup', dragStop);
+  }
+  function dragStart(e) {
+    e.preventDefault();
+    pmouseX = e.clientX;
+    dom.addClass(gui.__closeButton, GUI.CLASS_DRAG);
+    dom.bind(window, 'mousemove', drag);
+    dom.bind(window, 'mouseup', dragStop);
+    return false;
+  }
+  dom.bind(gui.__resize_handle, 'mousedown', dragStart);
+  dom.bind(gui.__closeButton, 'mousedown', dragStart);
+  gui.domElement.insertBefore(gui.__resize_handle, gui.domElement.firstElementChild);
+}
+function setWidth(gui, w) {
+  gui.domElement.style.width = w + 'px';
+  if (gui.__save_row && gui.autoPlace) {
+    gui.__save_row.style.width = w + 'px';
+  }
+  if (gui.__closeButton) {
+    gui.__closeButton.style.width = w + 'px';
+  }
+}
+function getCurrentPreset(gui, useInitialValues) {
+  var toReturn = {};
+  Common.each(gui.__rememberedObjects, function (val, index) {
+    var savedValues = {};
+    var controllerMap = gui.__rememberedObjectIndecesToControllers[index];
+    Common.each(controllerMap, function (controller, property) {
+      savedValues[property] = useInitialValues ? controller.initialValue : controller.getValue();
+    });
+    toReturn[index] = savedValues;
+  });
+  return toReturn;
+}
+function setPresetSelectIndex(gui) {
+  for (var index = 0; index < gui.__preset_select.length; index++) {
+    if (gui.__preset_select[index].value === gui.preset) {
+      gui.__preset_select.selectedIndex = index;
+    }
+  }
+}
+function updateDisplays(controllerArray) {
+  if (controllerArray.length !== 0) {
+    requestAnimationFrame$1.call(window, function () {
+      updateDisplays(controllerArray);
+    });
+  }
+  Common.each(controllerArray, function (c) {
+    c.updateDisplay();
+  });
+}
+
+var color = {
+  Color: Color,
+  math: ColorMath,
+  interpret: interpret
+};
+var controllers = {
+  Controller: Controller,
+  BooleanController: BooleanController,
+  OptionController: OptionController,
+  StringController: StringController,
+  NumberController: NumberController,
+  NumberControllerBox: NumberControllerBox,
+  NumberControllerSlider: NumberControllerSlider,
+  FunctionController: FunctionController,
+  ColorController: ColorController
+};
+var dom$1 = { dom: dom };
+var gui = { GUI: GUI };
+var GUI$1 = GUI;
+var index = {
+  color: color,
+  controllers: controllers,
+  dom: dom$1,
+  gui: gui,
+  GUI: GUI$1
+};
+
+exports.color = color;
+exports.controllers = controllers;
+exports.dom = dom$1;
+exports.gui = gui;
+exports.GUI = GUI$1;
+exports['default'] = index;
+
+Object.defineProperty(exports, '__esModule', { value: true });
+
+})));
+//# sourceMappingURL=dat.gui.js.map
diff --git a/01_Code/physical_computing_interface/simulation/lib/dat.gui.module.js b/01_Code/physical_computing_interface/simulation/lib/dat.gui.module.js
new file mode 100644
index 0000000000000000000000000000000000000000..de2a05381c424fdb6f795aa59f28b3f86a7d3bb7
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/lib/dat.gui.module.js
@@ -0,0 +1,3574 @@
+/**
+ * dat-gui JavaScript Controller Library
+ * http://code.google.com/p/dat-gui
+ *
+ * Copyright 2011 Data Arts Team, Google Creative Lab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ */
+
+function ___$insertStyle( css ) {
+
+	if ( ! css ) {
+
+		return;
+
+	}
+	if ( typeof window === 'undefined' ) {
+
+		return;
+
+	}
+
+	var style = document.createElement( 'style' );
+
+	style.setAttribute( 'type', 'text/css' );
+	style.innerHTML = css;
+	document.head.appendChild( style );
+
+	return css;
+
+}
+
+function colorToString( color, forceCSSHex ) {
+
+	var colorFormat = color.__state.conversionName.toString();
+	var r = Math.round( color.r );
+	var g = Math.round( color.g );
+	var b = Math.round( color.b );
+	var a = color.a;
+	var h = Math.round( color.h );
+	var s = color.s.toFixed( 1 );
+	var v = color.v.toFixed( 1 );
+	if ( forceCSSHex || colorFormat === 'THREE_CHAR_HEX' || colorFormat === 'SIX_CHAR_HEX' ) {
+
+		var str = color.hex.toString( 16 );
+		while ( str.length < 6 ) {
+
+			str = '0' + str;
+
+		}
+		return '#' + str;
+
+	} else if ( colorFormat === 'CSS_RGB' ) {
+
+		return 'rgb(' + r + ',' + g + ',' + b + ')';
+
+	} else if ( colorFormat === 'CSS_RGBA' ) {
+
+		return 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')';
+
+	} else if ( colorFormat === 'HEX' ) {
+
+		return '0x' + color.hex.toString( 16 );
+
+	} else if ( colorFormat === 'RGB_ARRAY' ) {
+
+		return '[' + r + ',' + g + ',' + b + ']';
+
+	} else if ( colorFormat === 'RGBA_ARRAY' ) {
+
+		return '[' + r + ',' + g + ',' + b + ',' + a + ']';
+
+	} else if ( colorFormat === 'RGB_OBJ' ) {
+
+		return '{r:' + r + ',g:' + g + ',b:' + b + '}';
+
+	} else if ( colorFormat === 'RGBA_OBJ' ) {
+
+		return '{r:' + r + ',g:' + g + ',b:' + b + ',a:' + a + '}';
+
+	} else if ( colorFormat === 'HSV_OBJ' ) {
+
+		return '{h:' + h + ',s:' + s + ',v:' + v + '}';
+
+	} else if ( colorFormat === 'HSVA_OBJ' ) {
+
+		return '{h:' + h + ',s:' + s + ',v:' + v + ',a:' + a + '}';
+
+	}
+	return 'unknown format';
+
+}
+
+var ARR_EACH = Array.prototype.forEach;
+var ARR_SLICE = Array.prototype.slice;
+var Common = {
+	BREAK: {},
+	extend: function extend( target ) {
+
+		this.each( ARR_SLICE.call( arguments, 1 ), function ( obj ) {
+
+			var keys = this.isObject( obj ) ? Object.keys( obj ) : [];
+			keys.forEach( function ( key ) {
+
+				if ( ! this.isUndefined( obj[ key ] ) ) {
+
+					target[ key ] = obj[ key ];
+
+				}
+
+			}.bind( this ) );
+
+		}, this );
+		return target;
+
+	},
+	defaults: function defaults( target ) {
+
+		this.each( ARR_SLICE.call( arguments, 1 ), function ( obj ) {
+
+			var keys = this.isObject( obj ) ? Object.keys( obj ) : [];
+			keys.forEach( function ( key ) {
+
+				if ( this.isUndefined( target[ key ] ) ) {
+
+					target[ key ] = obj[ key ];
+
+				}
+
+			}.bind( this ) );
+
+		}, this );
+		return target;
+
+	},
+	compose: function compose() {
+
+		var toCall = ARR_SLICE.call( arguments );
+		return function () {
+
+			var args = ARR_SLICE.call( arguments );
+			for ( var i = toCall.length - 1; i >= 0; i -- ) {
+
+				args = [ toCall[ i ].apply( this, args ) ];
+
+			}
+			return args[ 0 ];
+
+		};
+
+	},
+	each: function each( obj, itr, scope ) {
+
+		if ( ! obj ) {
+
+			return;
+
+		}
+		if ( ARR_EACH && obj.forEach && obj.forEach === ARR_EACH ) {
+
+			obj.forEach( itr, scope );
+
+		} else if ( obj.length === obj.length + 0 ) {
+
+			var key = void 0;
+			var l = void 0;
+			for ( key = 0, l = obj.length; key < l; key ++ ) {
+
+				if ( key in obj && itr.call( scope, obj[ key ], key ) === this.BREAK ) {
+
+					return;
+
+				}
+
+			}
+
+		} else {
+
+			for ( var _key in obj ) {
+
+				if ( itr.call( scope, obj[ _key ], _key ) === this.BREAK ) {
+
+					return;
+
+				}
+
+			}
+
+		}
+
+	},
+	defer: function defer( fnc ) {
+
+		setTimeout( fnc, 0 );
+
+	},
+	debounce: function debounce( func, threshold, callImmediately ) {
+
+		var timeout = void 0;
+		return function () {
+
+			var obj = this;
+			var args = arguments;
+			function delayed() {
+
+				timeout = null;
+				if ( ! callImmediately ) func.apply( obj, args );
+
+			}
+			var callNow = callImmediately || ! timeout;
+			clearTimeout( timeout );
+			timeout = setTimeout( delayed, threshold );
+			if ( callNow ) {
+
+				func.apply( obj, args );
+
+			}
+
+		};
+
+	},
+	toArray: function toArray( obj ) {
+
+		if ( obj.toArray ) return obj.toArray();
+		return ARR_SLICE.call( obj );
+
+	},
+	isUndefined: function isUndefined( obj ) {
+
+		return obj === undefined;
+
+	},
+	isNull: function isNull( obj ) {
+
+		return obj === null;
+
+	},
+	isNaN: function ( _isNaN ) {
+
+		function isNaN() {
+
+			return _isNaN.apply( this, arguments );
+
+		}
+		isNaN.toString = function () {
+
+			return _isNaN.toString();
+
+		};
+		return isNaN;
+
+	}( function ( obj ) {
+
+		return isNaN( obj );
+
+	} ),
+	isArray: Array.isArray || function ( obj ) {
+
+		return obj.constructor === Array;
+
+	},
+	isObject: function isObject( obj ) {
+
+		return obj === Object( obj );
+
+	},
+	isNumber: function isNumber( obj ) {
+
+		return obj === obj + 0;
+
+	},
+	isString: function isString( obj ) {
+
+		return obj === obj + '';
+
+	},
+	isBoolean: function isBoolean( obj ) {
+
+		return obj === false || obj === true;
+
+	},
+	isFunction: function isFunction( obj ) {
+
+		return Object.prototype.toString.call( obj ) === '[object Function]';
+
+	}
+};
+
+var INTERPRETATIONS = [
+	{
+		litmus: Common.isString,
+		conversions: {
+			THREE_CHAR_HEX: {
+				read: function read( original ) {
+
+					var test = original.match( /^#([A-F0-9])([A-F0-9])([A-F0-9])$/i );
+					if ( test === null ) {
+
+						return false;
+
+					}
+					return {
+						space: 'HEX',
+						hex: parseInt( '0x' + test[ 1 ].toString() + test[ 1 ].toString() + test[ 2 ].toString() + test[ 2 ].toString() + test[ 3 ].toString() + test[ 3 ].toString(), 0 )
+					};
+
+				},
+				write: colorToString
+			},
+			SIX_CHAR_HEX: {
+				read: function read( original ) {
+
+					var test = original.match( /^#([A-F0-9]{6})$/i );
+					if ( test === null ) {
+
+						return false;
+
+					}
+					return {
+						space: 'HEX',
+						hex: parseInt( '0x' + test[ 1 ].toString(), 0 )
+					};
+
+				},
+				write: colorToString
+			},
+			CSS_RGB: {
+				read: function read( original ) {
+
+					var test = original.match( /^rgb\(\s*(.+)\s*,\s*(.+)\s*,\s*(.+)\s*\)/ );
+					if ( test === null ) {
+
+						return false;
+
+					}
+					return {
+						space: 'RGB',
+						r: parseFloat( test[ 1 ] ),
+						g: parseFloat( test[ 2 ] ),
+						b: parseFloat( test[ 3 ] )
+					};
+
+				},
+				write: colorToString
+			},
+			CSS_RGBA: {
+				read: function read( original ) {
+
+					var test = original.match( /^rgba\(\s*(.+)\s*,\s*(.+)\s*,\s*(.+)\s*,\s*(.+)\s*\)/ );
+					if ( test === null ) {
+
+						return false;
+
+					}
+					return {
+						space: 'RGB',
+						r: parseFloat( test[ 1 ] ),
+						g: parseFloat( test[ 2 ] ),
+						b: parseFloat( test[ 3 ] ),
+						a: parseFloat( test[ 4 ] )
+					};
+
+				},
+				write: colorToString
+			}
+		}
+	},
+	{
+		litmus: Common.isNumber,
+		conversions: {
+			HEX: {
+				read: function read( original ) {
+
+					return {
+						space: 'HEX',
+						hex: original,
+						conversionName: 'HEX'
+					};
+
+				},
+				write: function write( color ) {
+
+					return color.hex;
+
+				}
+			}
+		}
+	},
+	{
+		litmus: Common.isArray,
+		conversions: {
+			RGB_ARRAY: {
+				read: function read( original ) {
+
+					if ( original.length !== 3 ) {
+
+						return false;
+
+					}
+					return {
+						space: 'RGB',
+						r: original[ 0 ],
+						g: original[ 1 ],
+						b: original[ 2 ]
+					};
+
+				},
+				write: function write( color ) {
+
+					return [ color.r, color.g, color.b ];
+
+				}
+			},
+			RGBA_ARRAY: {
+				read: function read( original ) {
+
+					if ( original.length !== 4 ) return false;
+					return {
+						space: 'RGB',
+						r: original[ 0 ],
+						g: original[ 1 ],
+						b: original[ 2 ],
+						a: original[ 3 ]
+					};
+
+				},
+				write: function write( color ) {
+
+					return [ color.r, color.g, color.b, color.a ];
+
+				}
+			}
+		}
+	},
+	{
+		litmus: Common.isObject,
+		conversions: {
+			RGBA_OBJ: {
+				read: function read( original ) {
+
+					if ( Common.isNumber( original.r ) && Common.isNumber( original.g ) && Common.isNumber( original.b ) && Common.isNumber( original.a ) ) {
+
+						return {
+							space: 'RGB',
+							r: original.r,
+							g: original.g,
+							b: original.b,
+							a: original.a
+						};
+
+					}
+					return false;
+
+				},
+				write: function write( color ) {
+
+					return {
+						r: color.r,
+						g: color.g,
+						b: color.b,
+						a: color.a
+					};
+
+				}
+			},
+			RGB_OBJ: {
+				read: function read( original ) {
+
+					if ( Common.isNumber( original.r ) && Common.isNumber( original.g ) && Common.isNumber( original.b ) ) {
+
+						return {
+							space: 'RGB',
+							r: original.r,
+							g: original.g,
+							b: original.b
+						};
+
+					}
+					return false;
+
+				},
+				write: function write( color ) {
+
+					return {
+						r: color.r,
+						g: color.g,
+						b: color.b
+					};
+
+				}
+			},
+			HSVA_OBJ: {
+				read: function read( original ) {
+
+					if ( Common.isNumber( original.h ) && Common.isNumber( original.s ) && Common.isNumber( original.v ) && Common.isNumber( original.a ) ) {
+
+						return {
+							space: 'HSV',
+							h: original.h,
+							s: original.s,
+							v: original.v,
+							a: original.a
+						};
+
+					}
+					return false;
+
+				},
+				write: function write( color ) {
+
+					return {
+						h: color.h,
+						s: color.s,
+						v: color.v,
+						a: color.a
+					};
+
+				}
+			},
+			HSV_OBJ: {
+				read: function read( original ) {
+
+					if ( Common.isNumber( original.h ) && Common.isNumber( original.s ) && Common.isNumber( original.v ) ) {
+
+						return {
+							space: 'HSV',
+							h: original.h,
+							s: original.s,
+							v: original.v
+						};
+
+					}
+					return false;
+
+				},
+				write: function write( color ) {
+
+					return {
+						h: color.h,
+						s: color.s,
+						v: color.v
+					};
+
+				}
+			}
+		}
+	} ];
+var result = void 0;
+var toReturn = void 0;
+var interpret = function interpret() {
+
+	toReturn = false;
+	var original = arguments.length > 1 ? Common.toArray( arguments ) : arguments[ 0 ];
+	Common.each( INTERPRETATIONS, function ( family ) {
+
+		if ( family.litmus( original ) ) {
+
+			Common.each( family.conversions, function ( conversion, conversionName ) {
+
+				result = conversion.read( original );
+				if ( toReturn === false && result !== false ) {
+
+					toReturn = result;
+					result.conversionName = conversionName;
+					result.conversion = conversion;
+					return Common.BREAK;
+
+				}
+
+			} );
+			return Common.BREAK;
+
+		}
+
+	} );
+	return toReturn;
+
+};
+
+var tmpComponent = void 0;
+var ColorMath = {
+	hsv_to_rgb: function hsv_to_rgb( h, s, v ) {
+
+		var hi = Math.floor( h / 60 ) % 6;
+		var f = h / 60 - Math.floor( h / 60 );
+		var p = v * ( 1.0 - s );
+		var q = v * ( 1.0 - f * s );
+		var t = v * ( 1.0 - ( 1.0 - f ) * s );
+		var c = [[ v, t, p ], [ q, v, p ], [ p, v, t ], [ p, q, v ], [ t, p, v ], [ v, p, q ]][ hi ];
+		return {
+			r: c[ 0 ] * 255,
+			g: c[ 1 ] * 255,
+			b: c[ 2 ] * 255
+		};
+
+	},
+	rgb_to_hsv: function rgb_to_hsv( r, g, b ) {
+
+		var min = Math.min( r, g, b );
+		var max = Math.max( r, g, b );
+		var delta = max - min;
+		var h = void 0;
+		var s = void 0;
+		if ( max !== 0 ) {
+
+			s = delta / max;
+
+		} else {
+
+			return {
+				h: NaN,
+				s: 0,
+				v: 0
+			};
+
+		}
+		if ( r === max ) {
+
+			h = ( g - b ) / delta;
+
+		} else if ( g === max ) {
+
+			h = 2 + ( b - r ) / delta;
+
+		} else {
+
+			h = 4 + ( r - g ) / delta;
+
+		}
+		h /= 6;
+		if ( h < 0 ) {
+
+			h += 1;
+
+		}
+		return {
+			h: h * 360,
+			s: s,
+			v: max / 255
+		};
+
+	},
+	rgb_to_hex: function rgb_to_hex( r, g, b ) {
+
+		var hex = this.hex_with_component( 0, 2, r );
+		hex = this.hex_with_component( hex, 1, g );
+		hex = this.hex_with_component( hex, 0, b );
+		return hex;
+
+	},
+	component_from_hex: function component_from_hex( hex, componentIndex ) {
+
+		return hex >> componentIndex * 8 & 0xFF;
+
+	},
+	hex_with_component: function hex_with_component( hex, componentIndex, value ) {
+
+		return value << ( tmpComponent = componentIndex * 8 ) | hex & ~ ( 0xFF << tmpComponent );
+
+	}
+};
+
+var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function ( obj ) {
+
+	return typeof obj;
+
+} : function ( obj ) {
+
+	return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+
+};
+
+
+
+
+
+
+
+
+
+
+
+var classCallCheck = function ( instance, Constructor ) {
+
+	if ( ! ( instance instanceof Constructor ) ) {
+
+		throw new TypeError( "Cannot call a class as a function" );
+
+	}
+
+};
+
+var createClass = function () {
+
+	function defineProperties( target, props ) {
+
+		for ( var i = 0; i < props.length; i ++ ) {
+
+			var descriptor = props[ i ];
+			descriptor.enumerable = descriptor.enumerable || false;
+			descriptor.configurable = true;
+			if ( "value" in descriptor ) descriptor.writable = true;
+			Object.defineProperty( target, descriptor.key, descriptor );
+
+		}
+
+	}
+
+	return function ( Constructor, protoProps, staticProps ) {
+
+		if ( protoProps ) defineProperties( Constructor.prototype, protoProps );
+		if ( staticProps ) defineProperties( Constructor, staticProps );
+		return Constructor;
+
+	};
+
+}();
+
+
+
+
+
+
+
+var get = function get( object, property, receiver ) {
+
+	if ( object === null ) object = Function.prototype;
+	var desc = Object.getOwnPropertyDescriptor( object, property );
+
+	if ( desc === undefined ) {
+
+		var parent = Object.getPrototypeOf( object );
+
+		if ( parent === null ) {
+
+			return undefined;
+
+		} else {
+
+			return get( parent, property, receiver );
+
+		}
+
+	} else if ( "value" in desc ) {
+
+		return desc.value;
+
+	} else {
+
+		var getter = desc.get;
+
+		if ( getter === undefined ) {
+
+			return undefined;
+
+		}
+
+		return getter.call( receiver );
+
+	}
+
+};
+
+var inherits = function ( subClass, superClass ) {
+
+	if ( typeof superClass !== "function" && superClass !== null ) {
+
+		throw new TypeError( "Super expression must either be null or a function, not " + typeof superClass );
+
+	}
+
+	subClass.prototype = Object.create( superClass && superClass.prototype, {
+		constructor: {
+			value: subClass,
+			enumerable: false,
+			writable: true,
+			configurable: true
+		}
+	} );
+	if ( superClass ) Object.setPrototypeOf ? Object.setPrototypeOf( subClass, superClass ) : subClass.__proto__ = superClass;
+
+};
+
+
+
+
+
+
+
+
+
+
+
+var possibleConstructorReturn = function ( self, call ) {
+
+	if ( ! self ) {
+
+		throw new ReferenceError( "this hasn't been initialised - super() hasn't been called" );
+
+	}
+
+	return call && ( typeof call === "object" || typeof call === "function" ) ? call : self;
+
+};
+
+var Color = function () {
+
+	function Color() {
+
+		classCallCheck( this, Color );
+		this.__state = interpret.apply( this, arguments );
+		if ( this.__state === false ) {
+
+			throw new Error( 'Failed to interpret color arguments' );
+
+		}
+		this.__state.a = this.__state.a || 1;
+
+	}
+	createClass( Color, [ {
+		key: 'toString',
+		value: function toString() {
+
+			return colorToString( this );
+
+		}
+	}, {
+		key: 'toHexString',
+		value: function toHexString() {
+
+			return colorToString( this, true );
+
+		}
+	}, {
+		key: 'toOriginal',
+		value: function toOriginal() {
+
+			return this.__state.conversion.write( this );
+
+		}
+	} ] );
+	return Color;
+
+}();
+function defineRGBComponent( target, component, componentHexIndex ) {
+
+	Object.defineProperty( target, component, {
+		get: function get$$1() {
+
+			if ( this.__state.space === 'RGB' ) {
+
+				return this.__state[ component ];
+
+			}
+			Color.recalculateRGB( this, component, componentHexIndex );
+			return this.__state[ component ];
+
+		},
+		set: function set$$1( v ) {
+
+			if ( this.__state.space !== 'RGB' ) {
+
+				Color.recalculateRGB( this, component, componentHexIndex );
+				this.__state.space = 'RGB';
+
+			}
+			this.__state[ component ] = v;
+
+		}
+	} );
+
+}
+function defineHSVComponent( target, component ) {
+
+	Object.defineProperty( target, component, {
+		get: function get$$1() {
+
+			if ( this.__state.space === 'HSV' ) {
+
+				return this.__state[ component ];
+
+			}
+			Color.recalculateHSV( this );
+			return this.__state[ component ];
+
+		},
+		set: function set$$1( v ) {
+
+			if ( this.__state.space !== 'HSV' ) {
+
+				Color.recalculateHSV( this );
+				this.__state.space = 'HSV';
+
+			}
+			this.__state[ component ] = v;
+
+		}
+	} );
+
+}
+Color.recalculateRGB = function ( color, component, componentHexIndex ) {
+
+	if ( color.__state.space === 'HEX' ) {
+
+		color.__state[ component ] = ColorMath.component_from_hex( color.__state.hex, componentHexIndex );
+
+	} else if ( color.__state.space === 'HSV' ) {
+
+		Common.extend( color.__state, ColorMath.hsv_to_rgb( color.__state.h, color.__state.s, color.__state.v ) );
+
+	} else {
+
+		throw new Error( 'Corrupted color state' );
+
+	}
+
+};
+Color.recalculateHSV = function ( color ) {
+
+	var result = ColorMath.rgb_to_hsv( color.r, color.g, color.b );
+	Common.extend( color.__state, {
+		s: result.s,
+		v: result.v
+	} );
+	if ( ! Common.isNaN( result.h ) ) {
+
+		color.__state.h = result.h;
+
+	} else if ( Common.isUndefined( color.__state.h ) ) {
+
+		color.__state.h = 0;
+
+	}
+
+};
+Color.COMPONENTS = [ 'r', 'g', 'b', 'h', 's', 'v', 'hex', 'a' ];
+defineRGBComponent( Color.prototype, 'r', 2 );
+defineRGBComponent( Color.prototype, 'g', 1 );
+defineRGBComponent( Color.prototype, 'b', 0 );
+defineHSVComponent( Color.prototype, 'h' );
+defineHSVComponent( Color.prototype, 's' );
+defineHSVComponent( Color.prototype, 'v' );
+Object.defineProperty( Color.prototype, 'a', {
+	get: function get$$1() {
+
+		return this.__state.a;
+
+	},
+	set: function set$$1( v ) {
+
+		this.__state.a = v;
+
+	}
+} );
+Object.defineProperty( Color.prototype, 'hex', {
+	get: function get$$1() {
+
+		if ( ! this.__state.space !== 'HEX' ) {
+
+			this.__state.hex = ColorMath.rgb_to_hex( this.r, this.g, this.b );
+
+		}
+		return this.__state.hex;
+
+	},
+	set: function set$$1( v ) {
+
+		this.__state.space = 'HEX';
+		this.__state.hex = v;
+
+	}
+} );
+
+var Controller = function () {
+
+	function Controller( object, property ) {
+
+		classCallCheck( this, Controller );
+		this.initialValue = object[ property ];
+		this.domElement = document.createElement( 'div' );
+		this.object = object;
+		this.property = property;
+		this.__onChange = undefined;
+		this.__onFinishChange = undefined;
+
+	}
+	createClass( Controller, [ {
+		key: 'onChange',
+		value: function onChange( fnc ) {
+
+			this.__onChange = fnc;
+			return this;
+
+		}
+	}, {
+		key: 'onFinishChange',
+		value: function onFinishChange( fnc ) {
+
+			this.__onFinishChange = fnc;
+			return this;
+
+		}
+	}, {
+		key: 'setValue',
+		value: function setValue( newValue ) {
+
+			this.object[ this.property ] = newValue;
+			if ( this.__onChange ) {
+
+				this.__onChange.call( this, newValue );
+
+			}
+			this.updateDisplay();
+			return this;
+
+		}
+	}, {
+		key: 'getValue',
+		value: function getValue() {
+
+			return this.object[ this.property ];
+
+		}
+	}, {
+		key: 'updateDisplay',
+		value: function updateDisplay() {
+
+			return this;
+
+		}
+	}, {
+		key: 'isModified',
+		value: function isModified() {
+
+			return this.initialValue !== this.getValue();
+
+		}
+	} ] );
+	return Controller;
+
+}();
+
+var EVENT_MAP = {
+	HTMLEvents: [ 'change' ],
+	MouseEvents: [ 'click', 'mousemove', 'mousedown', 'mouseup', 'mouseover' ],
+	KeyboardEvents: [ 'keydown' ]
+};
+var EVENT_MAP_INV = {};
+Common.each( EVENT_MAP, function ( v, k ) {
+
+	Common.each( v, function ( e ) {
+
+		EVENT_MAP_INV[ e ] = k;
+
+	} );
+
+} );
+var CSS_VALUE_PIXELS = /(\d+(\.\d+)?)px/;
+function cssValueToPixels( val ) {
+
+	if ( val === '0' || Common.isUndefined( val ) ) {
+
+		return 0;
+
+	}
+	var match = val.match( CSS_VALUE_PIXELS );
+	if ( ! Common.isNull( match ) ) {
+
+		return parseFloat( match[ 1 ] );
+
+	}
+	return 0;
+
+}
+var dom = {
+	makeSelectable: function makeSelectable( elem, selectable ) {
+
+		if ( elem === undefined || elem.style === undefined ) return;
+		elem.onselectstart = selectable ? function () {
+
+			return false;
+
+		} : function () {};
+		elem.style.MozUserSelect = selectable ? 'auto' : 'none';
+		elem.style.KhtmlUserSelect = selectable ? 'auto' : 'none';
+		elem.unselectable = selectable ? 'on' : 'off';
+
+	},
+	makeFullscreen: function makeFullscreen( elem, hor, vert ) {
+
+		var vertical = vert;
+		var horizontal = hor;
+		if ( Common.isUndefined( horizontal ) ) {
+
+			horizontal = true;
+
+		}
+		if ( Common.isUndefined( vertical ) ) {
+
+			vertical = true;
+
+		}
+		elem.style.position = 'absolute';
+		if ( horizontal ) {
+
+			elem.style.left = 0;
+			elem.style.right = 0;
+
+		}
+		if ( vertical ) {
+
+			elem.style.top = 0;
+			elem.style.bottom = 0;
+
+		}
+
+	},
+	fakeEvent: function fakeEvent( elem, eventType, pars, aux ) {
+
+		var params = pars || {};
+		var className = EVENT_MAP_INV[ eventType ];
+		if ( ! className ) {
+
+			throw new Error( 'Event type ' + eventType + ' not supported.' );
+
+		}
+		var evt = document.createEvent( className );
+		switch ( className ) {
+
+			case 'MouseEvents':
+			{
+
+				var clientX = params.x || params.clientX || 0;
+				var clientY = params.y || params.clientY || 0;
+				evt.initMouseEvent( eventType, params.bubbles || false, params.cancelable || true, window, params.clickCount || 1, 0,
+					0,
+					clientX,
+					clientY,
+					false, false, false, false, 0, null );
+				break;
+
+			}
+			case 'KeyboardEvents':
+			{
+
+				var init = evt.initKeyboardEvent || evt.initKeyEvent;
+				Common.defaults( params, {
+					cancelable: true,
+					ctrlKey: false,
+					altKey: false,
+					shiftKey: false,
+					metaKey: false,
+					keyCode: undefined,
+					charCode: undefined
+				} );
+				init( eventType, params.bubbles || false, params.cancelable, window, params.ctrlKey, params.altKey, params.shiftKey, params.metaKey, params.keyCode, params.charCode );
+				break;
+
+			}
+			default:
+			{
+
+				evt.initEvent( eventType, params.bubbles || false, params.cancelable || true );
+				break;
+
+			}
+
+		}
+		Common.defaults( evt, aux );
+		elem.dispatchEvent( evt );
+
+	},
+	bind: function bind( elem, event, func, newBool ) {
+
+		var bool = newBool || false;
+		if ( elem.addEventListener ) {
+
+			elem.addEventListener( event, func, bool );
+
+		} else if ( elem.attachEvent ) {
+
+			elem.attachEvent( 'on' + event, func );
+
+		}
+		return dom;
+
+	},
+	unbind: function unbind( elem, event, func, newBool ) {
+
+		var bool = newBool || false;
+		if ( elem.removeEventListener ) {
+
+			elem.removeEventListener( event, func, bool );
+
+		} else if ( elem.detachEvent ) {
+
+			elem.detachEvent( 'on' + event, func );
+
+		}
+		return dom;
+
+	},
+	addClass: function addClass( elem, className ) {
+
+		if ( elem.className === undefined ) {
+
+			elem.className = className;
+
+		} else if ( elem.className !== className ) {
+
+			var classes = elem.className.split( / +/ );
+			if ( classes.indexOf( className ) === - 1 ) {
+
+				classes.push( className );
+				elem.className = classes.join( ' ' ).replace( /^\s+/, '' ).replace( /\s+$/, '' );
+
+			}
+
+		}
+		return dom;
+
+	},
+	removeClass: function removeClass( elem, className ) {
+
+		if ( className ) {
+
+			if ( elem.className === className ) {
+
+				elem.removeAttribute( 'class' );
+
+			} else {
+
+				var classes = elem.className.split( / +/ );
+				var index = classes.indexOf( className );
+				if ( index !== - 1 ) {
+
+					classes.splice( index, 1 );
+					elem.className = classes.join( ' ' );
+
+				}
+
+			}
+
+		} else {
+
+			elem.className = undefined;
+
+		}
+		return dom;
+
+	},
+	hasClass: function hasClass( elem, className ) {
+
+		return new RegExp( '(?:^|\\s+)' + className + '(?:\\s+|$)' ).test( elem.className ) || false;
+
+	},
+	getWidth: function getWidth( elem ) {
+
+		var style = getComputedStyle( elem );
+		return cssValueToPixels( style[ 'border-left-width' ] ) + cssValueToPixels( style[ 'border-right-width' ] ) + cssValueToPixels( style[ 'padding-left' ] ) + cssValueToPixels( style[ 'padding-right' ] ) + cssValueToPixels( style.width );
+
+	},
+	getHeight: function getHeight( elem ) {
+
+		var style = getComputedStyle( elem );
+		return cssValueToPixels( style[ 'border-top-width' ] ) + cssValueToPixels( style[ 'border-bottom-width' ] ) + cssValueToPixels( style[ 'padding-top' ] ) + cssValueToPixels( style[ 'padding-bottom' ] ) + cssValueToPixels( style.height );
+
+	},
+	getOffset: function getOffset( el ) {
+
+		var elem = el;
+		var offset = { left: 0, top: 0 };
+		if ( elem.offsetParent ) {
+
+			do {
+
+				offset.left += elem.offsetLeft;
+				offset.top += elem.offsetTop;
+				elem = elem.offsetParent;
+
+			} while ( elem );
+
+		}
+		return offset;
+
+	},
+	isActive: function isActive( elem ) {
+
+		return elem === document.activeElement && ( elem.type || elem.href );
+
+	}
+};
+
+var BooleanController = function ( _Controller ) {
+
+	inherits( BooleanController, _Controller );
+	function BooleanController( object, property ) {
+
+		classCallCheck( this, BooleanController );
+		var _this2 = possibleConstructorReturn( this, ( BooleanController.__proto__ || Object.getPrototypeOf( BooleanController ) ).call( this, object, property ) );
+		var _this = _this2;
+		_this2.__prev = _this2.getValue();
+		_this2.__checkbox = document.createElement( 'input' );
+		_this2.__checkbox.setAttribute( 'type', 'checkbox' );
+		function onChange() {
+
+			_this.setValue( ! _this.__prev );
+
+		}
+		dom.bind( _this2.__checkbox, 'change', onChange, false );
+		_this2.domElement.appendChild( _this2.__checkbox );
+		_this2.updateDisplay();
+		return _this2;
+
+	}
+	createClass( BooleanController, [ {
+		key: 'setValue',
+		value: function setValue( v ) {
+
+			var toReturn = get( BooleanController.prototype.__proto__ || Object.getPrototypeOf( BooleanController.prototype ), 'setValue', this ).call( this, v );
+			if ( this.__onFinishChange ) {
+
+				this.__onFinishChange.call( this, this.getValue() );
+
+			}
+			this.__prev = this.getValue();
+			return toReturn;
+
+		}
+	}, {
+		key: 'updateDisplay',
+		value: function updateDisplay() {
+
+			if ( this.getValue() === true ) {
+
+				this.__checkbox.setAttribute( 'checked', 'checked' );
+				this.__checkbox.checked = true;
+				this.__prev = true;
+
+			} else {
+
+				this.__checkbox.checked = false;
+				this.__prev = false;
+
+			}
+			return get( BooleanController.prototype.__proto__ || Object.getPrototypeOf( BooleanController.prototype ), 'updateDisplay', this ).call( this );
+
+		}
+	} ] );
+	return BooleanController;
+
+}( Controller );
+
+var OptionController = function ( _Controller ) {
+
+	inherits( OptionController, _Controller );
+	function OptionController( object, property, opts ) {
+
+		classCallCheck( this, OptionController );
+		var _this2 = possibleConstructorReturn( this, ( OptionController.__proto__ || Object.getPrototypeOf( OptionController ) ).call( this, object, property ) );
+		var options = opts;
+		var _this = _this2;
+		_this2.__select = document.createElement( 'select' );
+		if ( Common.isArray( options ) ) {
+
+			var map = {};
+			Common.each( options, function ( element ) {
+
+				map[ element ] = element;
+
+			} );
+			options = map;
+
+		}
+		Common.each( options, function ( value, key ) {
+
+			var opt = document.createElement( 'option' );
+			opt.innerHTML = key;
+			opt.setAttribute( 'value', value );
+			_this.__select.appendChild( opt );
+
+		} );
+		_this2.updateDisplay();
+		dom.bind( _this2.__select, 'change', function () {
+
+			var desiredValue = this.options[ this.selectedIndex ].value;
+			_this.setValue( desiredValue );
+
+		} );
+		_this2.domElement.appendChild( _this2.__select );
+		return _this2;
+
+	}
+	createClass( OptionController, [ {
+		key: 'setValue',
+		value: function setValue( v ) {
+
+			var toReturn = get( OptionController.prototype.__proto__ || Object.getPrototypeOf( OptionController.prototype ), 'setValue', this ).call( this, v );
+			if ( this.__onFinishChange ) {
+
+				this.__onFinishChange.call( this, this.getValue() );
+
+			}
+			return toReturn;
+
+		}
+	}, {
+		key: 'updateDisplay',
+		value: function updateDisplay() {
+
+			if ( dom.isActive( this.__select ) ) return this;
+			this.__select.value = this.getValue();
+			return get( OptionController.prototype.__proto__ || Object.getPrototypeOf( OptionController.prototype ), 'updateDisplay', this ).call( this );
+
+		}
+	} ] );
+	return OptionController;
+
+}( Controller );
+
+var StringController = function ( _Controller ) {
+
+	inherits( StringController, _Controller );
+	function StringController( object, property ) {
+
+		classCallCheck( this, StringController );
+		var _this2 = possibleConstructorReturn( this, ( StringController.__proto__ || Object.getPrototypeOf( StringController ) ).call( this, object, property ) );
+		var _this = _this2;
+		function onChange() {
+
+			_this.setValue( _this.__input.value );
+
+		}
+		function onBlur() {
+
+			if ( _this.__onFinishChange ) {
+
+				_this.__onFinishChange.call( _this, _this.getValue() );
+
+			}
+
+		}
+		_this2.__input = document.createElement( 'input' );
+		_this2.__input.setAttribute( 'type', 'text' );
+		dom.bind( _this2.__input, 'keyup', onChange );
+		dom.bind( _this2.__input, 'change', onChange );
+		dom.bind( _this2.__input, 'blur', onBlur );
+		dom.bind( _this2.__input, 'keydown', function ( e ) {
+
+			if ( e.keyCode === 13 ) {
+
+				this.blur();
+
+			}
+
+		} );
+		_this2.updateDisplay();
+		_this2.domElement.appendChild( _this2.__input );
+		return _this2;
+
+	}
+	createClass( StringController, [ {
+		key: 'updateDisplay',
+		value: function updateDisplay() {
+
+			if ( ! dom.isActive( this.__input ) ) {
+
+				this.__input.value = this.getValue();
+
+			}
+			return get( StringController.prototype.__proto__ || Object.getPrototypeOf( StringController.prototype ), 'updateDisplay', this ).call( this );
+
+		}
+	} ] );
+	return StringController;
+
+}( Controller );
+
+function numDecimals( x ) {
+
+	var _x = x.toString();
+	if ( _x.indexOf( '.' ) > - 1 ) {
+
+		return _x.length - _x.indexOf( '.' ) - 1;
+
+	}
+	return 0;
+
+}
+var NumberController = function ( _Controller ) {
+
+	inherits( NumberController, _Controller );
+	function NumberController( object, property, params ) {
+
+		classCallCheck( this, NumberController );
+		var _this = possibleConstructorReturn( this, ( NumberController.__proto__ || Object.getPrototypeOf( NumberController ) ).call( this, object, property ) );
+		var _params = params || {};
+		_this.__min = _params.min;
+		_this.__max = _params.max;
+		_this.__step = _params.step;
+		if ( Common.isUndefined( _this.__step ) ) {
+
+			if ( _this.initialValue === 0 ) {
+
+				_this.__impliedStep = 1;
+
+			} else {
+
+				_this.__impliedStep = Math.pow( 10, Math.floor( Math.log( Math.abs( _this.initialValue ) ) / Math.LN10 ) ) / 10;
+
+			}
+
+		} else {
+
+			_this.__impliedStep = _this.__step;
+
+		}
+		_this.__precision = numDecimals( _this.__impliedStep );
+		return _this;
+
+	}
+	createClass( NumberController, [ {
+		key: 'setValue',
+		value: function setValue( v ) {
+
+			var _v = v;
+			if ( this.__min !== undefined && _v < this.__min ) {
+
+				_v = this.__min;
+
+			} else if ( this.__max !== undefined && _v > this.__max ) {
+
+				_v = this.__max;
+
+			}
+			if ( this.__step !== undefined && _v % this.__step !== 0 ) {
+
+				_v = Math.round( _v / this.__step ) * this.__step;
+
+			}
+			return get( NumberController.prototype.__proto__ || Object.getPrototypeOf( NumberController.prototype ), 'setValue', this ).call( this, _v );
+
+		}
+	}, {
+		key: 'min',
+		value: function min( minValue ) {
+
+			this.__min = minValue;
+			return this;
+
+		}
+	}, {
+		key: 'max',
+		value: function max( maxValue ) {
+
+			this.__max = maxValue;
+			return this;
+
+		}
+	}, {
+		key: 'step',
+		value: function step( stepValue ) {
+
+			this.__step = stepValue;
+			this.__impliedStep = stepValue;
+			this.__precision = numDecimals( stepValue );
+			return this;
+
+		}
+	} ] );
+	return NumberController;
+
+}( Controller );
+
+function roundToDecimal( value, decimals ) {
+
+	var tenTo = Math.pow( 10, decimals );
+	return Math.round( value * tenTo ) / tenTo;
+
+}
+var NumberControllerBox = function ( _NumberController ) {
+
+	inherits( NumberControllerBox, _NumberController );
+	function NumberControllerBox( object, property, params ) {
+
+		classCallCheck( this, NumberControllerBox );
+		var _this2 = possibleConstructorReturn( this, ( NumberControllerBox.__proto__ || Object.getPrototypeOf( NumberControllerBox ) ).call( this, object, property, params ) );
+		_this2.__truncationSuspended = false;
+		var _this = _this2;
+		var prevY = void 0;
+		function onChange() {
+
+			var attempted = parseFloat( _this.__input.value );
+			if ( ! Common.isNaN( attempted ) ) {
+
+				_this.setValue( attempted );
+
+			}
+
+		}
+		function onFinish() {
+
+			if ( _this.__onFinishChange ) {
+
+				_this.__onFinishChange.call( _this, _this.getValue() );
+
+			}
+
+		}
+		function onBlur() {
+
+			onFinish();
+
+		}
+		function onMouseDrag( e ) {
+
+			var diff = prevY - e.clientY;
+			_this.setValue( _this.getValue() + diff * _this.__impliedStep );
+			prevY = e.clientY;
+
+		}
+		function onMouseUp() {
+
+			dom.unbind( window, 'mousemove', onMouseDrag );
+			dom.unbind( window, 'mouseup', onMouseUp );
+			onFinish();
+
+		}
+		function onMouseDown( e ) {
+
+			dom.bind( window, 'mousemove', onMouseDrag );
+			dom.bind( window, 'mouseup', onMouseUp );
+			prevY = e.clientY;
+
+		}
+		_this2.__input = document.createElement( 'input' );
+		_this2.__input.setAttribute( 'type', 'text' );
+		dom.bind( _this2.__input, 'change', onChange );
+		dom.bind( _this2.__input, 'blur', onBlur );
+		dom.bind( _this2.__input, 'mousedown', onMouseDown );
+		dom.bind( _this2.__input, 'keydown', function ( e ) {
+
+			if ( e.keyCode === 13 ) {
+
+				_this.__truncationSuspended = true;
+				this.blur();
+				_this.__truncationSuspended = false;
+				onFinish();
+
+			}
+
+		} );
+		_this2.updateDisplay();
+		_this2.domElement.appendChild( _this2.__input );
+		return _this2;
+
+	}
+	createClass( NumberControllerBox, [ {
+		key: 'updateDisplay',
+		value: function updateDisplay() {
+
+			this.__input.value = this.__truncationSuspended ? this.getValue() : roundToDecimal( this.getValue(), this.__precision );
+			return get( NumberControllerBox.prototype.__proto__ || Object.getPrototypeOf( NumberControllerBox.prototype ), 'updateDisplay', this ).call( this );
+
+		}
+	} ] );
+	return NumberControllerBox;
+
+}( NumberController );
+
+function map( v, i1, i2, o1, o2 ) {
+
+	return o1 + ( o2 - o1 ) * ( ( v - i1 ) / ( i2 - i1 ) );
+
+}
+var NumberControllerSlider = function ( _NumberController ) {
+
+	inherits( NumberControllerSlider, _NumberController );
+	function NumberControllerSlider( object, property, min, max, step ) {
+
+		classCallCheck( this, NumberControllerSlider );
+		var _this2 = possibleConstructorReturn( this, ( NumberControllerSlider.__proto__ || Object.getPrototypeOf( NumberControllerSlider ) ).call( this, object, property, { min: min, max: max, step: step } ) );
+		var _this = _this2;
+		_this2.__background = document.createElement( 'div' );
+		_this2.__foreground = document.createElement( 'div' );
+		dom.bind( _this2.__background, 'mousedown', onMouseDown );
+		dom.bind( _this2.__background, 'touchstart', onTouchStart );
+		dom.addClass( _this2.__background, 'slider' );
+		dom.addClass( _this2.__foreground, 'slider-fg' );
+		function onMouseDown( e ) {
+
+			document.activeElement.blur();
+			dom.bind( window, 'mousemove', onMouseDrag );
+			dom.bind( window, 'mouseup', onMouseUp );
+			onMouseDrag( e );
+
+		}
+		function onMouseDrag( e ) {
+
+			e.preventDefault();
+			var bgRect = _this.__background.getBoundingClientRect();
+			_this.setValue( map( e.clientX, bgRect.left, bgRect.right, _this.__min, _this.__max ) );
+			return false;
+
+		}
+		function onMouseUp() {
+
+			dom.unbind( window, 'mousemove', onMouseDrag );
+			dom.unbind( window, 'mouseup', onMouseUp );
+			if ( _this.__onFinishChange ) {
+
+				_this.__onFinishChange.call( _this, _this.getValue() );
+
+			}
+
+		}
+		function onTouchStart( e ) {
+
+			if ( e.touches.length !== 1 ) {
+
+				return;
+
+			}
+			dom.bind( window, 'touchmove', onTouchMove );
+			dom.bind( window, 'touchend', onTouchEnd );
+			onTouchMove( e );
+
+		}
+		function onTouchMove( e ) {
+
+			var clientX = e.touches[ 0 ].clientX;
+			var bgRect = _this.__background.getBoundingClientRect();
+			_this.setValue( map( clientX, bgRect.left, bgRect.right, _this.__min, _this.__max ) );
+
+		}
+		function onTouchEnd() {
+
+			dom.unbind( window, 'touchmove', onTouchMove );
+			dom.unbind( window, 'touchend', onTouchEnd );
+			if ( _this.__onFinishChange ) {
+
+				_this.__onFinishChange.call( _this, _this.getValue() );
+
+			}
+
+		}
+		_this2.updateDisplay();
+		_this2.__background.appendChild( _this2.__foreground );
+		_this2.domElement.appendChild( _this2.__background );
+		return _this2;
+
+	}
+	createClass( NumberControllerSlider, [ {
+		key: 'updateDisplay',
+		value: function updateDisplay() {
+
+			var pct = ( this.getValue() - this.__min ) / ( this.__max - this.__min );
+			this.__foreground.style.width = pct * 100 + '%';
+			return get( NumberControllerSlider.prototype.__proto__ || Object.getPrototypeOf( NumberControllerSlider.prototype ), 'updateDisplay', this ).call( this );
+
+		}
+	} ] );
+	return NumberControllerSlider;
+
+}( NumberController );
+
+var FunctionController = function ( _Controller ) {
+
+	inherits( FunctionController, _Controller );
+	function FunctionController( object, property, text ) {
+
+		classCallCheck( this, FunctionController );
+		var _this2 = possibleConstructorReturn( this, ( FunctionController.__proto__ || Object.getPrototypeOf( FunctionController ) ).call( this, object, property ) );
+		var _this = _this2;
+		_this2.__button = document.createElement( 'div' );
+		_this2.__button.innerHTML = text === undefined ? 'Fire' : text;
+		dom.bind( _this2.__button, 'click', function ( e ) {
+
+			e.preventDefault();
+			_this.fire();
+			return false;
+
+		} );
+		dom.addClass( _this2.__button, 'button' );
+		_this2.domElement.appendChild( _this2.__button );
+		return _this2;
+
+	}
+	createClass( FunctionController, [ {
+		key: 'fire',
+		value: function fire() {
+
+			if ( this.__onChange ) {
+
+				this.__onChange.call( this );
+
+			}
+			this.getValue().call( this.object );
+			if ( this.__onFinishChange ) {
+
+				this.__onFinishChange.call( this, this.getValue() );
+
+			}
+
+		}
+	} ] );
+	return FunctionController;
+
+}( Controller );
+
+var ColorController = function ( _Controller ) {
+
+	inherits( ColorController, _Controller );
+	function ColorController( object, property ) {
+
+		classCallCheck( this, ColorController );
+		var _this2 = possibleConstructorReturn( this, ( ColorController.__proto__ || Object.getPrototypeOf( ColorController ) ).call( this, object, property ) );
+		_this2.__color = new Color( _this2.getValue() );
+		_this2.__temp = new Color( 0 );
+		var _this = _this2;
+		_this2.domElement = document.createElement( 'div' );
+		dom.makeSelectable( _this2.domElement, false );
+		_this2.__selector = document.createElement( 'div' );
+		_this2.__selector.className = 'selector';
+		_this2.__saturation_field = document.createElement( 'div' );
+		_this2.__saturation_field.className = 'saturation-field';
+		_this2.__field_knob = document.createElement( 'div' );
+		_this2.__field_knob.className = 'field-knob';
+		_this2.__field_knob_border = '2px solid ';
+		_this2.__hue_knob = document.createElement( 'div' );
+		_this2.__hue_knob.className = 'hue-knob';
+		_this2.__hue_field = document.createElement( 'div' );
+		_this2.__hue_field.className = 'hue-field';
+		_this2.__input = document.createElement( 'input' );
+		_this2.__input.type = 'text';
+		_this2.__input_textShadow = '0 1px 1px ';
+		dom.bind( _this2.__input, 'keydown', function ( e ) {
+
+			if ( e.keyCode === 13 ) {
+
+				onBlur.call( this );
+
+			}
+
+		} );
+		dom.bind( _this2.__input, 'blur', onBlur );
+		dom.bind( _this2.__selector, 'mousedown', function () {
+
+			dom.addClass( this, 'drag' ).bind( window, 'mouseup', function () {
+
+				dom.removeClass( _this.__selector, 'drag' );
+
+			} );
+
+		} );
+		dom.bind( _this2.__selector, 'touchstart', function () {
+
+			dom.addClass( this, 'drag' ).bind( window, 'touchend', function () {
+
+				dom.removeClass( _this.__selector, 'drag' );
+
+			} );
+
+		} );
+		var valueField = document.createElement( 'div' );
+		Common.extend( _this2.__selector.style, {
+			width: '122px',
+			height: '102px',
+			padding: '3px',
+			backgroundColor: '#222',
+			boxShadow: '0px 1px 3px rgba(0,0,0,0.3)'
+		} );
+		Common.extend( _this2.__field_knob.style, {
+			position: 'absolute',
+			width: '12px',
+			height: '12px',
+			border: _this2.__field_knob_border + ( _this2.__color.v < 0.5 ? '#fff' : '#000' ),
+			boxShadow: '0px 1px 3px rgba(0,0,0,0.5)',
+			borderRadius: '12px',
+			zIndex: 1
+		} );
+		Common.extend( _this2.__hue_knob.style, {
+			position: 'absolute',
+			width: '15px',
+			height: '2px',
+			borderRight: '4px solid #fff',
+			zIndex: 1
+		} );
+		Common.extend( _this2.__saturation_field.style, {
+			width: '100px',
+			height: '100px',
+			border: '1px solid #555',
+			marginRight: '3px',
+			display: 'inline-block',
+			cursor: 'pointer'
+		} );
+		Common.extend( valueField.style, {
+			width: '100%',
+			height: '100%',
+			background: 'none'
+		} );
+		linearGradient( valueField, 'top', 'rgba(0,0,0,0)', '#000' );
+		Common.extend( _this2.__hue_field.style, {
+			width: '15px',
+			height: '100px',
+			border: '1px solid #555',
+			cursor: 'ns-resize',
+			position: 'absolute',
+			top: '3px',
+			right: '3px'
+		} );
+		hueGradient( _this2.__hue_field );
+		Common.extend( _this2.__input.style, {
+			outline: 'none',
+			textAlign: 'center',
+			color: '#fff',
+			border: 0,
+			fontWeight: 'bold',
+			textShadow: _this2.__input_textShadow + 'rgba(0,0,0,0.7)'
+		} );
+		dom.bind( _this2.__saturation_field, 'mousedown', fieldDown );
+		dom.bind( _this2.__saturation_field, 'touchstart', fieldDown );
+		dom.bind( _this2.__field_knob, 'mousedown', fieldDown );
+		dom.bind( _this2.__field_knob, 'touchstart', fieldDown );
+		dom.bind( _this2.__hue_field, 'mousedown', fieldDownH );
+		dom.bind( _this2.__hue_field, 'touchstart', fieldDownH );
+		function fieldDown( e ) {
+
+			setSV( e );
+			dom.bind( window, 'mousemove', setSV );
+			dom.bind( window, 'touchmove', setSV );
+			dom.bind( window, 'mouseup', fieldUpSV );
+			dom.bind( window, 'touchend', fieldUpSV );
+
+		}
+		function fieldDownH( e ) {
+
+			setH( e );
+			dom.bind( window, 'mousemove', setH );
+			dom.bind( window, 'touchmove', setH );
+			dom.bind( window, 'mouseup', fieldUpH );
+			dom.bind( window, 'touchend', fieldUpH );
+
+		}
+		function fieldUpSV() {
+
+			dom.unbind( window, 'mousemove', setSV );
+			dom.unbind( window, 'touchmove', setSV );
+			dom.unbind( window, 'mouseup', fieldUpSV );
+			dom.unbind( window, 'touchend', fieldUpSV );
+			onFinish();
+
+		}
+		function fieldUpH() {
+
+			dom.unbind( window, 'mousemove', setH );
+			dom.unbind( window, 'touchmove', setH );
+			dom.unbind( window, 'mouseup', fieldUpH );
+			dom.unbind( window, 'touchend', fieldUpH );
+			onFinish();
+
+		}
+		function onBlur() {
+
+			var i = interpret( this.value );
+			if ( i !== false ) {
+
+				_this.__color.__state = i;
+				_this.setValue( _this.__color.toOriginal() );
+
+			} else {
+
+				this.value = _this.__color.toString();
+
+			}
+
+		}
+		function onFinish() {
+
+			if ( _this.__onFinishChange ) {
+
+				_this.__onFinishChange.call( _this, _this.__color.toOriginal() );
+
+			}
+
+		}
+		_this2.__saturation_field.appendChild( valueField );
+		_this2.__selector.appendChild( _this2.__field_knob );
+		_this2.__selector.appendChild( _this2.__saturation_field );
+		_this2.__selector.appendChild( _this2.__hue_field );
+		_this2.__hue_field.appendChild( _this2.__hue_knob );
+		_this2.domElement.appendChild( _this2.__input );
+		_this2.domElement.appendChild( _this2.__selector );
+		_this2.updateDisplay();
+		function setSV( e ) {
+
+			if ( e.type.indexOf( 'touch' ) === - 1 ) {
+
+				e.preventDefault();
+
+			}
+			var fieldRect = _this.__saturation_field.getBoundingClientRect();
+			var _ref = e.touches && e.touches[ 0 ] || e,
+				clientX = _ref.clientX,
+				clientY = _ref.clientY;
+			var s = ( clientX - fieldRect.left ) / ( fieldRect.right - fieldRect.left );
+			var v = 1 - ( clientY - fieldRect.top ) / ( fieldRect.bottom - fieldRect.top );
+			if ( v > 1 ) {
+
+				v = 1;
+
+			} else if ( v < 0 ) {
+
+				v = 0;
+
+			}
+			if ( s > 1 ) {
+
+				s = 1;
+
+			} else if ( s < 0 ) {
+
+				s = 0;
+
+			}
+			_this.__color.v = v;
+			_this.__color.s = s;
+			_this.setValue( _this.__color.toOriginal() );
+			return false;
+
+		}
+		function setH( e ) {
+
+			if ( e.type.indexOf( 'touch' ) === - 1 ) {
+
+				e.preventDefault();
+
+			}
+			var fieldRect = _this.__hue_field.getBoundingClientRect();
+			var _ref2 = e.touches && e.touches[ 0 ] || e,
+				clientY = _ref2.clientY;
+			var h = 1 - ( clientY - fieldRect.top ) / ( fieldRect.bottom - fieldRect.top );
+			if ( h > 1 ) {
+
+				h = 1;
+
+			} else if ( h < 0 ) {
+
+				h = 0;
+
+			}
+			_this.__color.h = h * 360;
+			_this.setValue( _this.__color.toOriginal() );
+			return false;
+
+		}
+		return _this2;
+
+	}
+	createClass( ColorController, [ {
+		key: 'updateDisplay',
+		value: function updateDisplay() {
+
+			var i = interpret( this.getValue() );
+			if ( i !== false ) {
+
+				var mismatch = false;
+				Common.each( Color.COMPONENTS, function ( component ) {
+
+					if ( ! Common.isUndefined( i[ component ] ) && ! Common.isUndefined( this.__color.__state[ component ] ) && i[ component ] !== this.__color.__state[ component ] ) {
+
+						mismatch = true;
+						return {};
+
+					}
+
+				}, this );
+				if ( mismatch ) {
+
+					Common.extend( this.__color.__state, i );
+
+				}
+
+			}
+			Common.extend( this.__temp.__state, this.__color.__state );
+			this.__temp.a = 1;
+			var flip = this.__color.v < 0.5 || this.__color.s > 0.5 ? 255 : 0;
+			var _flip = 255 - flip;
+			Common.extend( this.__field_knob.style, {
+				marginLeft: 100 * this.__color.s - 7 + 'px',
+				marginTop: 100 * ( 1 - this.__color.v ) - 7 + 'px',
+				backgroundColor: this.__temp.toHexString(),
+				border: this.__field_knob_border + 'rgb(' + flip + ',' + flip + ',' + flip + ')'
+			} );
+			this.__hue_knob.style.marginTop = ( 1 - this.__color.h / 360 ) * 100 + 'px';
+			this.__temp.s = 1;
+			this.__temp.v = 1;
+			linearGradient( this.__saturation_field, 'left', '#fff', this.__temp.toHexString() );
+			this.__input.value = this.__color.toString();
+			Common.extend( this.__input.style, {
+				backgroundColor: this.__color.toHexString(),
+				color: 'rgb(' + flip + ',' + flip + ',' + flip + ')',
+				textShadow: this.__input_textShadow + 'rgba(' + _flip + ',' + _flip + ',' + _flip + ',.7)'
+			} );
+
+		}
+	} ] );
+	return ColorController;
+
+}( Controller );
+var vendors = [ '-moz-', '-o-', '-webkit-', '-ms-', '' ];
+function linearGradient( elem, x, a, b ) {
+
+	elem.style.background = '';
+	Common.each( vendors, function ( vendor ) {
+
+		elem.style.cssText += 'background: ' + vendor + 'linear-gradient(' + x + ', ' + a + ' 0%, ' + b + ' 100%); ';
+
+	} );
+
+}
+function hueGradient( elem ) {
+
+	elem.style.background = '';
+	elem.style.cssText += 'background: -moz-linear-gradient(top,  #ff0000 0%, #ff00ff 17%, #0000ff 34%, #00ffff 50%, #00ff00 67%, #ffff00 84%, #ff0000 100%);';
+	elem.style.cssText += 'background: -webkit-linear-gradient(top,  #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);';
+	elem.style.cssText += 'background: -o-linear-gradient(top,  #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);';
+	elem.style.cssText += 'background: -ms-linear-gradient(top,  #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);';
+	elem.style.cssText += 'background: linear-gradient(top,  #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);';
+
+}
+
+var css = {
+	load: function load( url, indoc ) {
+
+		var doc = indoc || document;
+		var link = doc.createElement( 'link' );
+		link.type = 'text/css';
+		link.rel = 'stylesheet';
+		link.href = url;
+		doc.getElementsByTagName( 'head' )[ 0 ].appendChild( link );
+
+	},
+	inject: function inject( cssContent, indoc ) {
+
+		var doc = indoc || document;
+		var injected = document.createElement( 'style' );
+		injected.type = 'text/css';
+		injected.innerHTML = cssContent;
+		var head = doc.getElementsByTagName( 'head' )[ 0 ];
+		try {
+
+			head.appendChild( injected );
+
+		} catch ( e ) {
+		}
+
+	}
+};
+
+var saveDialogContents = "<div id=\"dg-save\" class=\"dg dialogue\">\n\n  Here's the new load parameter for your <code>GUI</code>'s constructor:\n\n  <textarea id=\"dg-new-constructor\"></textarea>\n\n  <div id=\"dg-save-locally\">\n\n    <input id=\"dg-local-storage\" type=\"checkbox\"/> Automatically save\n    values to <code>localStorage</code> on exit.\n\n    <div id=\"dg-local-explain\">The values saved to <code>localStorage</code> will\n      override those passed to <code>dat.GUI</code>'s constructor. This makes it\n      easier to work incrementally, but <code>localStorage</code> is fragile,\n      and your friends may not see the same values you do.\n\n    </div>\n\n  </div>\n\n</div>";
+
+var ControllerFactory = function ControllerFactory( object, property ) {
+
+	var initialValue = object[ property ];
+	if ( Common.isArray( arguments[ 2 ] ) || Common.isObject( arguments[ 2 ] ) ) {
+
+		return new OptionController( object, property, arguments[ 2 ] );
+
+	}
+	if ( Common.isNumber( initialValue ) ) {
+
+		if ( Common.isNumber( arguments[ 2 ] ) && Common.isNumber( arguments[ 3 ] ) ) {
+
+			if ( Common.isNumber( arguments[ 4 ] ) ) {
+
+				return new NumberControllerSlider( object, property, arguments[ 2 ], arguments[ 3 ], arguments[ 4 ] );
+
+			}
+			return new NumberControllerSlider( object, property, arguments[ 2 ], arguments[ 3 ] );
+
+		}
+		if ( Common.isNumber( arguments[ 4 ] ) ) {
+
+			return new NumberControllerBox( object, property, { min: arguments[ 2 ], max: arguments[ 3 ], step: arguments[ 4 ] } );
+
+		}
+		return new NumberControllerBox( object, property, { min: arguments[ 2 ], max: arguments[ 3 ] } );
+
+	}
+	if ( Common.isString( initialValue ) ) {
+
+		return new StringController( object, property );
+
+	}
+	if ( Common.isFunction( initialValue ) ) {
+
+		return new FunctionController( object, property, '' );
+
+	}
+	if ( Common.isBoolean( initialValue ) ) {
+
+		return new BooleanController( object, property );
+
+	}
+	return null;
+
+};
+
+function requestAnimationFrame( callback ) {
+
+	setTimeout( callback, 1000 / 60 );
+
+}
+var requestAnimationFrame$1 = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || requestAnimationFrame;
+
+var CenteredDiv = function () {
+
+	function CenteredDiv() {
+
+		classCallCheck( this, CenteredDiv );
+		this.backgroundElement = document.createElement( 'div' );
+		Common.extend( this.backgroundElement.style, {
+			backgroundColor: 'rgba(0,0,0,0.8)',
+			top: 0,
+			left: 0,
+			display: 'none',
+			zIndex: '1000',
+			opacity: 0,
+			WebkitTransition: 'opacity 0.2s linear',
+			transition: 'opacity 0.2s linear'
+		} );
+		dom.makeFullscreen( this.backgroundElement );
+		this.backgroundElement.style.position = 'fixed';
+		this.domElement = document.createElement( 'div' );
+		Common.extend( this.domElement.style, {
+			position: 'fixed',
+			display: 'none',
+			zIndex: '1001',
+			opacity: 0,
+			WebkitTransition: '-webkit-transform 0.2s ease-out, opacity 0.2s linear',
+			transition: 'transform 0.2s ease-out, opacity 0.2s linear'
+		} );
+		document.body.appendChild( this.backgroundElement );
+		document.body.appendChild( this.domElement );
+		var _this = this;
+		dom.bind( this.backgroundElement, 'click', function () {
+
+			_this.hide();
+
+		} );
+
+	}
+	createClass( CenteredDiv, [ {
+		key: 'show',
+		value: function show() {
+
+			var _this = this;
+			this.backgroundElement.style.display = 'block';
+			this.domElement.style.display = 'block';
+			this.domElement.style.opacity = 0;
+			this.domElement.style.webkitTransform = 'scale(1.1)';
+			this.layout();
+			Common.defer( function () {
+
+				_this.backgroundElement.style.opacity = 1;
+				_this.domElement.style.opacity = 1;
+				_this.domElement.style.webkitTransform = 'scale(1)';
+
+			} );
+
+		}
+	}, {
+		key: 'hide',
+		value: function hide() {
+
+			var _this = this;
+			var hide = function hide() {
+
+				_this.domElement.style.display = 'none';
+				_this.backgroundElement.style.display = 'none';
+				dom.unbind( _this.domElement, 'webkitTransitionEnd', hide );
+				dom.unbind( _this.domElement, 'transitionend', hide );
+				dom.unbind( _this.domElement, 'oTransitionEnd', hide );
+
+			};
+			dom.bind( this.domElement, 'webkitTransitionEnd', hide );
+			dom.bind( this.domElement, 'transitionend', hide );
+			dom.bind( this.domElement, 'oTransitionEnd', hide );
+			this.backgroundElement.style.opacity = 0;
+			this.domElement.style.opacity = 0;
+			this.domElement.style.webkitTransform = 'scale(1.1)';
+
+		}
+	}, {
+		key: 'layout',
+		value: function layout() {
+
+			this.domElement.style.left = window.innerWidth / 2 - dom.getWidth( this.domElement ) / 2 + 'px';
+			this.domElement.style.top = window.innerHeight / 2 - dom.getHeight( this.domElement ) / 2 + 'px';
+
+		}
+	} ] );
+	return CenteredDiv;
+
+}();
+
+var styleSheet = ___$insertStyle( ".dg ul{list-style:none;margin:0;padding:0;width:100%;clear:both}.dg.ac{position:fixed;top:0;left:0;right:0;height:0;z-index:0}.dg:not(.ac) .main{overflow:hidden}.dg.main{-webkit-transition:opacity .1s linear;-o-transition:opacity .1s linear;-moz-transition:opacity .1s linear;transition:opacity .1s linear}.dg.main.taller-than-window{overflow-y:auto}.dg.main.taller-than-window .close-button{opacity:1;margin-top:-1px;border-top:1px solid #2c2c2c}.dg.main ul.closed .close-button{opacity:1 !important}.dg.main:hover .close-button,.dg.main .close-button.drag{opacity:1}.dg.main .close-button{-webkit-transition:opacity .1s linear;-o-transition:opacity .1s linear;-moz-transition:opacity .1s linear;transition:opacity .1s linear;border:0;line-height:19px;height:20px;cursor:pointer;text-align:center;background-color:#000}.dg.main .close-button.close-top{position:relative}.dg.main .close-button.close-bottom{position:absolute}.dg.main .close-button:hover{background-color:#111}.dg.a{float:right;margin-right:15px;overflow-y:visible}.dg.a.has-save>ul.close-top{margin-top:0}.dg.a.has-save>ul.close-bottom{margin-top:27px}.dg.a.has-save>ul.closed{margin-top:0}.dg.a .save-row{top:0;z-index:1002}.dg.a .save-row.close-top{position:relative}.dg.a .save-row.close-bottom{position:fixed}.dg li{-webkit-transition:height .1s ease-out;-o-transition:height .1s ease-out;-moz-transition:height .1s ease-out;transition:height .1s ease-out;-webkit-transition:overflow .1s linear;-o-transition:overflow .1s linear;-moz-transition:overflow .1s linear;transition:overflow .1s linear}.dg li:not(.folder){cursor:auto;height:27px;line-height:27px;padding:0 4px 0 5px}.dg li.folder{padding:0;border-left:4px solid rgba(0,0,0,0)}.dg li.title{cursor:pointer;margin-left:-4px}.dg .closed li:not(.title),.dg .closed ul li,.dg .closed ul li>*{height:0;overflow:hidden;border:0}.dg .cr{clear:both;padding-left:3px;height:27px;overflow:hidden}.dg .property-name{cursor:default;float:left;clear:left;width:40%;overflow:hidden;text-overflow:ellipsis}.dg .c{float:left;width:60%;position:relative}.dg .c input[type=text]{border:0;margin-top:4px;padding:3px;width:100%;float:right}.dg .has-slider input[type=text]{width:30%;margin-left:0}.dg .slider{float:left;width:66%;margin-left:-5px;margin-right:0;height:19px;margin-top:4px}.dg .slider-fg{height:100%}.dg .c input[type=checkbox]{margin-top:7px}.dg .c select{margin-top:5px}.dg .cr.function,.dg .cr.function .property-name,.dg .cr.function *,.dg .cr.boolean,.dg .cr.boolean *{cursor:pointer}.dg .cr.color{overflow:visible}.dg .selector{display:none;position:absolute;margin-left:-9px;margin-top:23px;z-index:10}.dg .c:hover .selector,.dg .selector.drag{display:block}.dg li.save-row{padding:0}.dg li.save-row .button{display:inline-block;padding:0px 6px}.dg.dialogue{background-color:#222;width:460px;padding:15px;font-size:13px;line-height:15px}#dg-new-constructor{padding:10px;color:#222;font-family:Monaco, monospace;font-size:10px;border:0;resize:none;box-shadow:inset 1px 1px 1px #888;word-wrap:break-word;margin:12px 0;display:block;width:440px;overflow-y:scroll;height:100px;position:relative}#dg-local-explain{display:none;font-size:11px;line-height:17px;border-radius:3px;background-color:#333;padding:8px;margin-top:10px}#dg-local-explain code{font-size:10px}#dat-gui-save-locally{display:none}.dg{color:#eee;font:11px 'Lucida Grande', sans-serif;text-shadow:0 -1px 0 #111}.dg.main::-webkit-scrollbar{width:5px;background:#1a1a1a}.dg.main::-webkit-scrollbar-corner{height:0;display:none}.dg.main::-webkit-scrollbar-thumb{border-radius:5px;background:#676767}.dg li:not(.folder){background:#1a1a1a;border-bottom:1px solid #2c2c2c}.dg li.save-row{line-height:25px;background:#dad5cb;border:0}.dg li.save-row select{margin-left:5px;width:108px}.dg li.save-row .button{margin-left:5px;margin-top:1px;border-radius:2px;font-size:9px;line-height:7px;padding:4px 4px 5px 4px;background:#c5bdad;color:#fff;text-shadow:0 1px 0 #b0a58f;box-shadow:0 -1px 0 #b0a58f;cursor:pointer}.dg li.save-row .button.gears{background:#c5bdad url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAANCAYAAAB/9ZQ7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQJJREFUeNpiYKAU/P//PwGIC/ApCABiBSAW+I8AClAcgKxQ4T9hoMAEUrxx2QSGN6+egDX+/vWT4e7N82AMYoPAx/evwWoYoSYbACX2s7KxCxzcsezDh3evFoDEBYTEEqycggWAzA9AuUSQQgeYPa9fPv6/YWm/Acx5IPb7ty/fw+QZblw67vDs8R0YHyQhgObx+yAJkBqmG5dPPDh1aPOGR/eugW0G4vlIoTIfyFcA+QekhhHJhPdQxbiAIguMBTQZrPD7108M6roWYDFQiIAAv6Aow/1bFwXgis+f2LUAynwoIaNcz8XNx3Dl7MEJUDGQpx9gtQ8YCueB+D26OECAAQDadt7e46D42QAAAABJRU5ErkJggg==) 2px 1px no-repeat;height:7px;width:8px}.dg li.save-row .button:hover{background-color:#bab19e;box-shadow:0 -1px 0 #b0a58f}.dg li.folder{border-bottom:0}.dg li.title{padding-left:16px;background:#000 url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlI+hKgFxoCgAOw==) 6px 10px no-repeat;cursor:pointer;border-bottom:1px solid rgba(255,255,255,0.2)}.dg .closed li.title{background-image:url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlGIWqMCbWAEAOw==)}.dg .cr.boolean{border-left:3px solid #806787}.dg .cr.color{border-left:3px solid}.dg .cr.function{border-left:3px solid #e61d5f}.dg .cr.number{border-left:3px solid #2FA1D6}.dg .cr.number input[type=text]{color:#2FA1D6}.dg .cr.string{border-left:3px solid #1ed36f}.dg .cr.string input[type=text]{color:#1ed36f}.dg .cr.function:hover,.dg .cr.boolean:hover{background:#111}.dg .c input[type=text]{background:#303030;outline:none}.dg .c input[type=text]:hover{background:#3c3c3c}.dg .c input[type=text]:focus{background:#494949;color:#fff}.dg .c .slider{background:#303030;cursor:ew-resize}.dg .c .slider-fg{background:#2FA1D6;max-width:100%}.dg .c .slider:hover{background:#3c3c3c}.dg .c .slider:hover .slider-fg{background:#44abda}\n" );
+
+css.inject( styleSheet );
+var CSS_NAMESPACE = 'dg';
+var HIDE_KEY_CODE = 72;
+var CLOSE_BUTTON_HEIGHT = 20;
+var DEFAULT_DEFAULT_PRESET_NAME = 'Default';
+var SUPPORTS_LOCAL_STORAGE = function () {
+
+	try {
+
+		return !! window.localStorage;
+
+	} catch ( e ) {
+
+		return false;
+
+	}
+
+}();
+var SAVE_DIALOGUE = void 0;
+var autoPlaceVirgin = true;
+var autoPlaceContainer = void 0;
+var hide = false;
+var hideableGuis = [];
+var GUI = function GUI( pars ) {
+
+	var _this = this;
+	var params = pars || {};
+	this.domElement = document.createElement( 'div' );
+	this.__ul = document.createElement( 'ul' );
+	this.domElement.appendChild( this.__ul );
+	dom.addClass( this.domElement, CSS_NAMESPACE );
+	this.__folders = {};
+	this.__controllers = [];
+	this.__rememberedObjects = [];
+	this.__rememberedObjectIndecesToControllers = [];
+	this.__listening = [];
+	params = Common.defaults( params, {
+		closeOnTop: false,
+		autoPlace: true,
+		width: GUI.DEFAULT_WIDTH
+	} );
+	params = Common.defaults( params, {
+		resizable: params.autoPlace,
+		hideable: params.autoPlace
+	} );
+	if ( ! Common.isUndefined( params.load ) ) {
+
+		if ( params.preset ) {
+
+			params.load.preset = params.preset;
+
+		}
+
+	} else {
+
+		params.load = { preset: DEFAULT_DEFAULT_PRESET_NAME };
+
+	}
+	if ( Common.isUndefined( params.parent ) && params.hideable ) {
+
+		hideableGuis.push( this );
+
+	}
+	params.resizable = Common.isUndefined( params.parent ) && params.resizable;
+	if ( params.autoPlace && Common.isUndefined( params.scrollable ) ) {
+
+		params.scrollable = true;
+
+	}
+	var useLocalStorage = SUPPORTS_LOCAL_STORAGE && localStorage.getItem( getLocalStorageHash( this, 'isLocal' ) ) === 'true';
+	var saveToLocalStorage = void 0;
+	var titleRow = void 0;
+	Object.defineProperties( this,
+		{
+			parent: {
+				get: function get$$1() {
+
+					return params.parent;
+
+				}
+			},
+			scrollable: {
+				get: function get$$1() {
+
+					return params.scrollable;
+
+				}
+			},
+			autoPlace: {
+				get: function get$$1() {
+
+					return params.autoPlace;
+
+				}
+			},
+			closeOnTop: {
+				get: function get$$1() {
+
+					return params.closeOnTop;
+
+				}
+			},
+			preset: {
+				get: function get$$1() {
+
+					if ( _this.parent ) {
+
+						return _this.getRoot().preset;
+
+					}
+					return params.load.preset;
+
+				},
+				set: function set$$1( v ) {
+
+					if ( _this.parent ) {
+
+						_this.getRoot().preset = v;
+
+					} else {
+
+						params.load.preset = v;
+
+					}
+					setPresetSelectIndex( this );
+					_this.revert();
+
+				}
+			},
+			width: {
+				get: function get$$1() {
+
+					return params.width;
+
+				},
+				set: function set$$1( v ) {
+
+					params.width = v;
+					setWidth( _this, v );
+
+				}
+			},
+			name: {
+				get: function get$$1() {
+
+					return params.name;
+
+				},
+				set: function set$$1( v ) {
+
+					params.name = v;
+					if ( titleRow ) {
+
+						titleRow.innerHTML = params.name;
+
+					}
+
+				}
+			},
+			closed: {
+				get: function get$$1() {
+
+					return params.closed;
+
+				},
+				set: function set$$1( v ) {
+
+					params.closed = v;
+					if ( params.closed ) {
+
+						dom.addClass( _this.__ul, GUI.CLASS_CLOSED );
+
+					} else {
+
+						dom.removeClass( _this.__ul, GUI.CLASS_CLOSED );
+
+					}
+					this.onResize();
+					if ( _this.__closeButton ) {
+
+						_this.__closeButton.innerHTML = v ? GUI.TEXT_OPEN : GUI.TEXT_CLOSED;
+
+					}
+
+				}
+			},
+			load: {
+				get: function get$$1() {
+
+					return params.load;
+
+				}
+			},
+			useLocalStorage: {
+				get: function get$$1() {
+
+					return useLocalStorage;
+
+				},
+				set: function set$$1( bool ) {
+
+					if ( SUPPORTS_LOCAL_STORAGE ) {
+
+						useLocalStorage = bool;
+						if ( bool ) {
+
+							dom.bind( window, 'unload', saveToLocalStorage );
+
+						} else {
+
+							dom.unbind( window, 'unload', saveToLocalStorage );
+
+						}
+						localStorage.setItem( getLocalStorageHash( _this, 'isLocal' ), bool );
+
+					}
+
+				}
+			}
+		} );
+	if ( Common.isUndefined( params.parent ) ) {
+
+		this.closed = params.closed || false;
+		dom.addClass( this.domElement, GUI.CLASS_MAIN );
+		dom.makeSelectable( this.domElement, false );
+		if ( SUPPORTS_LOCAL_STORAGE ) {
+
+			if ( useLocalStorage ) {
+
+				_this.useLocalStorage = true;
+				var savedGui = localStorage.getItem( getLocalStorageHash( this, 'gui' ) );
+				if ( savedGui ) {
+
+					params.load = JSON.parse( savedGui );
+
+				}
+
+			}
+
+		}
+		this.__closeButton = document.createElement( 'div' );
+		this.__closeButton.innerHTML = GUI.TEXT_CLOSED;
+		dom.addClass( this.__closeButton, GUI.CLASS_CLOSE_BUTTON );
+		if ( params.closeOnTop ) {
+
+			dom.addClass( this.__closeButton, GUI.CLASS_CLOSE_TOP );
+			this.domElement.insertBefore( this.__closeButton, this.domElement.childNodes[ 0 ] );
+
+		} else {
+
+			dom.addClass( this.__closeButton, GUI.CLASS_CLOSE_BOTTOM );
+			this.domElement.appendChild( this.__closeButton );
+
+		}
+		dom.bind( this.__closeButton, 'click', function () {
+
+			_this.closed = ! _this.closed;
+
+		} );
+
+	} else {
+
+		if ( params.closed === undefined ) {
+
+			params.closed = true;
+
+		}
+		var titleRowName = document.createTextNode( params.name );
+		dom.addClass( titleRowName, 'controller-name' );
+		titleRow = addRow( _this, titleRowName );
+		var onClickTitle = function onClickTitle( e ) {
+
+			e.preventDefault();
+			_this.closed = ! _this.closed;
+			return false;
+
+		};
+		dom.addClass( this.__ul, GUI.CLASS_CLOSED );
+		dom.addClass( titleRow, 'title' );
+		dom.bind( titleRow, 'click', onClickTitle );
+		if ( ! params.closed ) {
+
+			this.closed = false;
+
+		}
+
+	}
+	if ( params.autoPlace ) {
+
+		if ( Common.isUndefined( params.parent ) ) {
+
+			if ( autoPlaceVirgin ) {
+
+				autoPlaceContainer = document.createElement( 'div' );
+				dom.addClass( autoPlaceContainer, CSS_NAMESPACE );
+				dom.addClass( autoPlaceContainer, GUI.CLASS_AUTO_PLACE_CONTAINER );
+				document.body.appendChild( autoPlaceContainer );
+				autoPlaceVirgin = false;
+
+			}
+			autoPlaceContainer.appendChild( this.domElement );
+			dom.addClass( this.domElement, GUI.CLASS_AUTO_PLACE );
+
+		}
+		if ( ! this.parent ) {
+
+			setWidth( _this, params.width );
+
+		}
+
+	}
+	this.__resizeHandler = function () {
+
+		_this.onResizeDebounced();
+
+	};
+	dom.bind( window, 'resize', this.__resizeHandler );
+	dom.bind( this.__ul, 'webkitTransitionEnd', this.__resizeHandler );
+	dom.bind( this.__ul, 'transitionend', this.__resizeHandler );
+	dom.bind( this.__ul, 'oTransitionEnd', this.__resizeHandler );
+	this.onResize();
+	if ( params.resizable ) {
+
+		addResizeHandle( this );
+
+	}
+	saveToLocalStorage = function saveToLocalStorage() {
+
+		if ( SUPPORTS_LOCAL_STORAGE && localStorage.getItem( getLocalStorageHash( _this, 'isLocal' ) ) === 'true' ) {
+
+			localStorage.setItem( getLocalStorageHash( _this, 'gui' ), JSON.stringify( _this.getSaveObject() ) );
+
+		}
+
+	};
+	this.saveToLocalStorageIfPossible = saveToLocalStorage;
+	function resetWidth() {
+
+		var root = _this.getRoot();
+		root.width += 1;
+		Common.defer( function () {
+
+			root.width -= 1;
+
+		} );
+
+	}
+	if ( ! params.parent ) {
+
+		resetWidth();
+
+	}
+
+};
+GUI.toggleHide = function () {
+
+	hide = ! hide;
+	Common.each( hideableGuis, function ( gui ) {
+
+		gui.domElement.style.display = hide ? 'none' : '';
+
+	} );
+
+};
+GUI.CLASS_AUTO_PLACE = 'a';
+GUI.CLASS_AUTO_PLACE_CONTAINER = 'ac';
+GUI.CLASS_MAIN = 'main';
+GUI.CLASS_CONTROLLER_ROW = 'cr';
+GUI.CLASS_TOO_TALL = 'taller-than-window';
+GUI.CLASS_CLOSED = 'closed';
+GUI.CLASS_CLOSE_BUTTON = 'close-button';
+GUI.CLASS_CLOSE_TOP = 'close-top';
+GUI.CLASS_CLOSE_BOTTOM = 'close-bottom';
+GUI.CLASS_DRAG = 'drag';
+GUI.DEFAULT_WIDTH = 245;
+GUI.TEXT_CLOSED = 'Close Controls';
+GUI.TEXT_OPEN = 'Open Controls';
+GUI._keydownHandler = function ( e ) {
+
+	if ( document.activeElement.type !== 'text' && ( e.which === HIDE_KEY_CODE || e.keyCode === HIDE_KEY_CODE ) ) {
+
+		GUI.toggleHide();
+
+	}
+
+};
+dom.bind( window, 'keydown', GUI._keydownHandler, false );
+Common.extend( GUI.prototype,
+	{
+		add: function add( object, property ) {
+
+			return _add( this, object, property, {
+				factoryArgs: Array.prototype.slice.call( arguments, 2 )
+			} );
+
+		},
+		addColor: function addColor( object, property ) {
+
+			return _add( this, object, property, {
+				color: true
+			} );
+
+		},
+		remove: function remove( controller ) {
+
+			this.__ul.removeChild( controller.__li );
+			this.__controllers.splice( this.__controllers.indexOf( controller ), 1 );
+			var _this = this;
+			Common.defer( function () {
+
+				_this.onResize();
+
+			} );
+
+		},
+		destroy: function destroy() {
+
+			if ( this.parent ) {
+
+				throw new Error( 'Only the root GUI should be removed with .destroy(). ' + 'For subfolders, use gui.removeFolder(folder) instead.' );
+
+			}
+			if ( this.autoPlace ) {
+
+				autoPlaceContainer.removeChild( this.domElement );
+
+			}
+			var _this = this;
+			Common.each( this.__folders, function ( subfolder ) {
+
+				_this.removeFolder( subfolder );
+
+			} );
+			dom.unbind( window, 'keydown', GUI._keydownHandler, false );
+			removeListeners( this );
+
+		},
+		addFolder: function addFolder( name ) {
+
+			if ( this.__folders[ name ] !== undefined ) {
+
+				throw new Error( 'You already have a folder in this GUI by the' + ' name "' + name + '"' );
+
+			}
+			var newGuiParams = { name: name, parent: this };
+			newGuiParams.autoPlace = this.autoPlace;
+			if ( this.load &&
+    this.load.folders &&
+    this.load.folders[ name ] ) {
+
+				newGuiParams.closed = this.load.folders[ name ].closed;
+				newGuiParams.load = this.load.folders[ name ];
+
+			}
+			var gui = new GUI( newGuiParams );
+			this.__folders[ name ] = gui;
+			var li = addRow( this, gui.domElement );
+			dom.addClass( li, 'folder' );
+			return gui;
+
+		},
+		removeFolder: function removeFolder( folder ) {
+
+			this.__ul.removeChild( folder.domElement.parentElement );
+			delete this.__folders[ folder.name ];
+			if ( this.load &&
+    this.load.folders &&
+    this.load.folders[ folder.name ] ) {
+
+				delete this.load.folders[ folder.name ];
+
+			}
+			removeListeners( folder );
+			var _this = this;
+			Common.each( folder.__folders, function ( subfolder ) {
+
+				folder.removeFolder( subfolder );
+
+			} );
+			Common.defer( function () {
+
+				_this.onResize();
+
+			} );
+
+		},
+		open: function open() {
+
+			this.closed = false;
+
+		},
+		close: function close() {
+
+			this.closed = true;
+
+		},
+		hide: function hide() {
+
+			this.domElement.style.display = 'none';
+
+		},
+		show: function show() {
+
+			this.domElement.style.display = '';
+
+		},
+		onResize: function onResize() {
+
+			var root = this.getRoot();
+			if ( root.scrollable ) {
+
+				var top = dom.getOffset( root.__ul ).top;
+				var h = 0;
+				Common.each( root.__ul.childNodes, function ( node ) {
+
+					if ( ! ( root.autoPlace && node === root.__save_row ) ) {
+
+						h += dom.getHeight( node );
+
+					}
+
+				} );
+				if ( window.innerHeight - top - CLOSE_BUTTON_HEIGHT < h ) {
+
+					dom.addClass( root.domElement, GUI.CLASS_TOO_TALL );
+					root.__ul.style.height = window.innerHeight - top - CLOSE_BUTTON_HEIGHT + 'px';
+
+				} else {
+
+					dom.removeClass( root.domElement, GUI.CLASS_TOO_TALL );
+					root.__ul.style.height = 'auto';
+
+				}
+
+			}
+			if ( root.__resize_handle ) {
+
+				Common.defer( function () {
+
+					root.__resize_handle.style.height = root.__ul.offsetHeight + 'px';
+
+				} );
+
+			}
+			if ( root.__closeButton ) {
+
+				root.__closeButton.style.width = root.width + 'px';
+
+			}
+
+		},
+		onResizeDebounced: Common.debounce( function () {
+
+			this.onResize();
+
+		}, 50 ),
+		remember: function remember() {
+
+			if ( Common.isUndefined( SAVE_DIALOGUE ) ) {
+
+				SAVE_DIALOGUE = new CenteredDiv();
+				SAVE_DIALOGUE.domElement.innerHTML = saveDialogContents;
+
+			}
+			if ( this.parent ) {
+
+				throw new Error( 'You can only call remember on a top level GUI.' );
+
+			}
+			var _this = this;
+			Common.each( Array.prototype.slice.call( arguments ), function ( object ) {
+
+				if ( _this.__rememberedObjects.length === 0 ) {
+
+					addSaveMenu( _this );
+
+				}
+				if ( _this.__rememberedObjects.indexOf( object ) === - 1 ) {
+
+					_this.__rememberedObjects.push( object );
+
+				}
+
+			} );
+			if ( this.autoPlace ) {
+
+				setWidth( this, this.width );
+
+			}
+
+		},
+		getRoot: function getRoot() {
+
+			var gui = this;
+			while ( gui.parent ) {
+
+				gui = gui.parent;
+
+			}
+			return gui;
+
+		},
+		getSaveObject: function getSaveObject() {
+
+			var toReturn = this.load;
+			toReturn.closed = this.closed;
+			if ( this.__rememberedObjects.length > 0 ) {
+
+				toReturn.preset = this.preset;
+				if ( ! toReturn.remembered ) {
+
+					toReturn.remembered = {};
+
+				}
+				toReturn.remembered[ this.preset ] = getCurrentPreset( this );
+
+			}
+			toReturn.folders = {};
+			Common.each( this.__folders, function ( element, key ) {
+
+				toReturn.folders[ key ] = element.getSaveObject();
+
+			} );
+			return toReturn;
+
+		},
+		save: function save() {
+
+			if ( ! this.load.remembered ) {
+
+				this.load.remembered = {};
+
+			}
+			this.load.remembered[ this.preset ] = getCurrentPreset( this );
+			markPresetModified( this, false );
+			this.saveToLocalStorageIfPossible();
+
+		},
+		saveAs: function saveAs( presetName ) {
+
+			if ( ! this.load.remembered ) {
+
+				this.load.remembered = {};
+				this.load.remembered[ DEFAULT_DEFAULT_PRESET_NAME ] = getCurrentPreset( this, true );
+
+			}
+			this.load.remembered[ presetName ] = getCurrentPreset( this );
+			this.preset = presetName;
+			addPresetOption( this, presetName, true );
+			this.saveToLocalStorageIfPossible();
+
+		},
+		revert: function revert( gui ) {
+
+			Common.each( this.__controllers, function ( controller ) {
+
+				if ( ! this.getRoot().load.remembered ) {
+
+					controller.setValue( controller.initialValue );
+
+				} else {
+
+					recallSavedValue( gui || this.getRoot(), controller );
+
+				}
+				if ( controller.__onFinishChange ) {
+
+					controller.__onFinishChange.call( controller, controller.getValue() );
+
+				}
+
+			}, this );
+			Common.each( this.__folders, function ( folder ) {
+
+				folder.revert( folder );
+
+			} );
+			if ( ! gui ) {
+
+				markPresetModified( this.getRoot(), false );
+
+			}
+
+		},
+		listen: function listen( controller ) {
+
+			var init = this.__listening.length === 0;
+			this.__listening.push( controller );
+			if ( init ) {
+
+				updateDisplays( this.__listening );
+
+			}
+
+		},
+		updateDisplay: function updateDisplay() {
+
+			Common.each( this.__controllers, function ( controller ) {
+
+				controller.updateDisplay();
+
+			} );
+			Common.each( this.__folders, function ( folder ) {
+
+				folder.updateDisplay();
+
+			} );
+
+		}
+	} );
+function addRow( gui, newDom, liBefore ) {
+
+	var li = document.createElement( 'li' );
+	if ( newDom ) {
+
+		li.appendChild( newDom );
+
+	}
+	if ( liBefore ) {
+
+		gui.__ul.insertBefore( li, liBefore );
+
+	} else {
+
+		gui.__ul.appendChild( li );
+
+	}
+	gui.onResize();
+	return li;
+
+}
+function removeListeners( gui ) {
+
+	dom.unbind( window, 'resize', gui.__resizeHandler );
+	if ( gui.saveToLocalStorageIfPossible ) {
+
+		dom.unbind( window, 'unload', gui.saveToLocalStorageIfPossible );
+
+	}
+
+}
+function markPresetModified( gui, modified ) {
+
+	var opt = gui.__preset_select[ gui.__preset_select.selectedIndex ];
+	if ( modified ) {
+
+		opt.innerHTML = opt.value + '*';
+
+	} else {
+
+		opt.innerHTML = opt.value;
+
+	}
+
+}
+function augmentController( gui, li, controller ) {
+
+	controller.__li = li;
+	controller.__gui = gui;
+	Common.extend( controller, {
+		options: function options( _options ) {
+
+			if ( arguments.length > 1 ) {
+
+				var nextSibling = controller.__li.nextElementSibling;
+				controller.remove();
+				return _add( gui, controller.object, controller.property, {
+					before: nextSibling,
+					factoryArgs: [ Common.toArray( arguments ) ]
+				} );
+
+			}
+			if ( Common.isArray( _options ) || Common.isObject( _options ) ) {
+
+				var _nextSibling = controller.__li.nextElementSibling;
+				controller.remove();
+				return _add( gui, controller.object, controller.property, {
+					before: _nextSibling,
+					factoryArgs: [ _options ]
+				} );
+
+			}
+
+		},
+		name: function name( _name ) {
+
+			controller.__li.firstElementChild.firstElementChild.innerHTML = _name;
+			return controller;
+
+		},
+		listen: function listen() {
+
+			controller.__gui.listen( controller );
+			return controller;
+
+		},
+		remove: function remove() {
+
+			controller.__gui.remove( controller );
+			return controller;
+
+		}
+	} );
+	if ( controller instanceof NumberControllerSlider ) {
+
+		var box = new NumberControllerBox( controller.object, controller.property, { min: controller.__min, max: controller.__max, step: controller.__step } );
+		Common.each( [ 'updateDisplay', 'onChange', 'onFinishChange', 'step', 'min', 'max' ], function ( method ) {
+
+			var pc = controller[ method ];
+			var pb = box[ method ];
+			controller[ method ] = box[ method ] = function () {
+
+				var args = Array.prototype.slice.call( arguments );
+				pb.apply( box, args );
+				return pc.apply( controller, args );
+
+			};
+
+		} );
+		dom.addClass( li, 'has-slider' );
+		controller.domElement.insertBefore( box.domElement, controller.domElement.firstElementChild );
+
+	} else if ( controller instanceof NumberControllerBox ) {
+
+		var r = function r( returned ) {
+
+			if ( Common.isNumber( controller.__min ) && Common.isNumber( controller.__max ) ) {
+
+				var oldName = controller.__li.firstElementChild.firstElementChild.innerHTML;
+				var wasListening = controller.__gui.__listening.indexOf( controller ) > - 1;
+				controller.remove();
+				var newController = _add( gui, controller.object, controller.property, {
+					before: controller.__li.nextElementSibling,
+					factoryArgs: [ controller.__min, controller.__max, controller.__step ]
+				} );
+				newController.name( oldName );
+				if ( wasListening ) newController.listen();
+				return newController;
+
+			}
+			return returned;
+
+		};
+		controller.min = Common.compose( r, controller.min );
+		controller.max = Common.compose( r, controller.max );
+
+	} else if ( controller instanceof BooleanController ) {
+
+		dom.bind( li, 'click', function () {
+
+			dom.fakeEvent( controller.__checkbox, 'click' );
+
+		} );
+		dom.bind( controller.__checkbox, 'click', function ( e ) {
+
+			e.stopPropagation();
+
+		} );
+
+	} else if ( controller instanceof FunctionController ) {
+
+		dom.bind( li, 'click', function () {
+
+			dom.fakeEvent( controller.__button, 'click' );
+
+		} );
+		dom.bind( li, 'mouseover', function () {
+
+			dom.addClass( controller.__button, 'hover' );
+
+		} );
+		dom.bind( li, 'mouseout', function () {
+
+			dom.removeClass( controller.__button, 'hover' );
+
+		} );
+
+	} else if ( controller instanceof ColorController ) {
+
+		dom.addClass( li, 'color' );
+		controller.updateDisplay = Common.compose( function ( val ) {
+
+			li.style.borderLeftColor = controller.__color.toString();
+			return val;
+
+		}, controller.updateDisplay );
+		controller.updateDisplay();
+
+	}
+	controller.setValue = Common.compose( function ( val ) {
+
+		if ( gui.getRoot().__preset_select && controller.isModified() ) {
+
+			markPresetModified( gui.getRoot(), true );
+
+		}
+		return val;
+
+	}, controller.setValue );
+
+}
+function recallSavedValue( gui, controller ) {
+
+	var root = gui.getRoot();
+	var matchedIndex = root.__rememberedObjects.indexOf( controller.object );
+	if ( matchedIndex !== - 1 ) {
+
+		var controllerMap = root.__rememberedObjectIndecesToControllers[ matchedIndex ];
+		if ( controllerMap === undefined ) {
+
+			controllerMap = {};
+			root.__rememberedObjectIndecesToControllers[ matchedIndex ] = controllerMap;
+
+		}
+		controllerMap[ controller.property ] = controller;
+		if ( root.load && root.load.remembered ) {
+
+			var presetMap = root.load.remembered;
+			var preset = void 0;
+			if ( presetMap[ gui.preset ] ) {
+
+				preset = presetMap[ gui.preset ];
+
+			} else if ( presetMap[ DEFAULT_DEFAULT_PRESET_NAME ] ) {
+
+				preset = presetMap[ DEFAULT_DEFAULT_PRESET_NAME ];
+
+			} else {
+
+				return;
+
+			}
+			if ( preset[ matchedIndex ] && preset[ matchedIndex ][ controller.property ] !== undefined ) {
+
+				var value = preset[ matchedIndex ][ controller.property ];
+				controller.initialValue = value;
+				controller.setValue( value );
+
+			}
+
+		}
+
+	}
+
+}
+function _add( gui, object, property, params ) {
+
+	if ( object[ property ] === undefined ) {
+
+		throw new Error( 'Object "' + object + '" has no property "' + property + '"' );
+
+	}
+	var controller = void 0;
+	if ( params.color ) {
+
+		controller = new ColorController( object, property );
+
+	} else {
+
+		var factoryArgs = [ object, property ].concat( params.factoryArgs );
+		controller = ControllerFactory.apply( gui, factoryArgs );
+
+	}
+	if ( params.before instanceof Controller ) {
+
+		params.before = params.before.__li;
+
+	}
+	recallSavedValue( gui, controller );
+	dom.addClass( controller.domElement, 'c' );
+	var name = document.createElement( 'span' );
+	dom.addClass( name, 'property-name' );
+	name.innerHTML = controller.property;
+	var container = document.createElement( 'div' );
+	container.appendChild( name );
+	container.appendChild( controller.domElement );
+	var li = addRow( gui, container, params.before );
+	dom.addClass( li, GUI.CLASS_CONTROLLER_ROW );
+	if ( controller instanceof ColorController ) {
+
+		dom.addClass( li, 'color' );
+
+	} else {
+
+		dom.addClass( li, _typeof( controller.getValue() ) );
+
+	}
+	augmentController( gui, li, controller );
+	gui.__controllers.push( controller );
+	return controller;
+
+}
+function getLocalStorageHash( gui, key ) {
+
+	return document.location.href + '.' + key;
+
+}
+function addPresetOption( gui, name, setSelected ) {
+
+	var opt = document.createElement( 'option' );
+	opt.innerHTML = name;
+	opt.value = name;
+	gui.__preset_select.appendChild( opt );
+	if ( setSelected ) {
+
+		gui.__preset_select.selectedIndex = gui.__preset_select.length - 1;
+
+	}
+
+}
+function showHideExplain( gui, explain ) {
+
+	explain.style.display = gui.useLocalStorage ? 'block' : 'none';
+
+}
+function addSaveMenu( gui ) {
+
+	var div = gui.__save_row = document.createElement( 'li' );
+	dom.addClass( gui.domElement, 'has-save' );
+	gui.__ul.insertBefore( div, gui.__ul.firstChild );
+	dom.addClass( div, 'save-row' );
+	var gears = document.createElement( 'span' );
+	gears.innerHTML = '&nbsp;';
+	dom.addClass( gears, 'button gears' );
+	var button = document.createElement( 'span' );
+	button.innerHTML = 'Save';
+	dom.addClass( button, 'button' );
+	dom.addClass( button, 'save' );
+	var button2 = document.createElement( 'span' );
+	button2.innerHTML = 'New';
+	dom.addClass( button2, 'button' );
+	dom.addClass( button2, 'save-as' );
+	var button3 = document.createElement( 'span' );
+	button3.innerHTML = 'Revert';
+	dom.addClass( button3, 'button' );
+	dom.addClass( button3, 'revert' );
+	var select = gui.__preset_select = document.createElement( 'select' );
+	if ( gui.load && gui.load.remembered ) {
+
+		Common.each( gui.load.remembered, function ( value, key ) {
+
+			addPresetOption( gui, key, key === gui.preset );
+
+		} );
+
+	} else {
+
+		addPresetOption( gui, DEFAULT_DEFAULT_PRESET_NAME, false );
+
+	}
+	dom.bind( select, 'change', function () {
+
+		for ( var index = 0; index < gui.__preset_select.length; index ++ ) {
+
+			gui.__preset_select[ index ].innerHTML = gui.__preset_select[ index ].value;
+
+		}
+		gui.preset = this.value;
+
+	} );
+	div.appendChild( select );
+	div.appendChild( gears );
+	div.appendChild( button );
+	div.appendChild( button2 );
+	div.appendChild( button3 );
+	if ( SUPPORTS_LOCAL_STORAGE ) {
+
+		var explain = document.getElementById( 'dg-local-explain' );
+		var localStorageCheckBox = document.getElementById( 'dg-local-storage' );
+		var saveLocally = document.getElementById( 'dg-save-locally' );
+		saveLocally.style.display = 'block';
+		if ( localStorage.getItem( getLocalStorageHash( gui, 'isLocal' ) ) === 'true' ) {
+
+			localStorageCheckBox.setAttribute( 'checked', 'checked' );
+
+		}
+		showHideExplain( gui, explain );
+		dom.bind( localStorageCheckBox, 'change', function () {
+
+			gui.useLocalStorage = ! gui.useLocalStorage;
+			showHideExplain( gui, explain );
+
+		} );
+
+	}
+	var newConstructorTextArea = document.getElementById( 'dg-new-constructor' );
+	dom.bind( newConstructorTextArea, 'keydown', function ( e ) {
+
+		if ( e.metaKey && ( e.which === 67 || e.keyCode === 67 ) ) {
+
+			SAVE_DIALOGUE.hide();
+
+		}
+
+	} );
+	dom.bind( gears, 'click', function () {
+
+		newConstructorTextArea.innerHTML = JSON.stringify( gui.getSaveObject(), undefined, 2 );
+		SAVE_DIALOGUE.show();
+		newConstructorTextArea.focus();
+		newConstructorTextArea.select();
+
+	} );
+	dom.bind( button, 'click', function () {
+
+		gui.save();
+
+	} );
+	dom.bind( button2, 'click', function () {
+
+		var presetName = prompt( 'Enter a new preset name.' );
+		if ( presetName ) {
+
+			gui.saveAs( presetName );
+
+		}
+
+	} );
+	dom.bind( button3, 'click', function () {
+
+		gui.revert();
+
+	} );
+
+}
+function addResizeHandle( gui ) {
+
+	var pmouseX = void 0;
+	gui.__resize_handle = document.createElement( 'div' );
+	Common.extend( gui.__resize_handle.style, {
+		width: '6px',
+		marginLeft: '-3px',
+		height: '200px',
+		cursor: 'ew-resize',
+		position: 'absolute'
+	} );
+	function drag( e ) {
+
+		e.preventDefault();
+		gui.width += pmouseX - e.clientX;
+		gui.onResize();
+		pmouseX = e.clientX;
+		return false;
+
+	}
+	function dragStop() {
+
+		dom.removeClass( gui.__closeButton, GUI.CLASS_DRAG );
+		dom.unbind( window, 'mousemove', drag );
+		dom.unbind( window, 'mouseup', dragStop );
+
+	}
+	function dragStart( e ) {
+
+		e.preventDefault();
+		pmouseX = e.clientX;
+		dom.addClass( gui.__closeButton, GUI.CLASS_DRAG );
+		dom.bind( window, 'mousemove', drag );
+		dom.bind( window, 'mouseup', dragStop );
+		return false;
+
+	}
+	dom.bind( gui.__resize_handle, 'mousedown', dragStart );
+	dom.bind( gui.__closeButton, 'mousedown', dragStart );
+	gui.domElement.insertBefore( gui.__resize_handle, gui.domElement.firstElementChild );
+
+}
+function setWidth( gui, w ) {
+
+	gui.domElement.style.width = w + 'px';
+	if ( gui.__save_row && gui.autoPlace ) {
+
+		gui.__save_row.style.width = w + 'px';
+
+	}
+	if ( gui.__closeButton ) {
+
+		gui.__closeButton.style.width = w + 'px';
+
+	}
+
+}
+function getCurrentPreset( gui, useInitialValues ) {
+
+	var toReturn = {};
+	Common.each( gui.__rememberedObjects, function ( val, index ) {
+
+		var savedValues = {};
+		var controllerMap = gui.__rememberedObjectIndecesToControllers[ index ];
+		Common.each( controllerMap, function ( controller, property ) {
+
+			savedValues[ property ] = useInitialValues ? controller.initialValue : controller.getValue();
+
+		} );
+		toReturn[ index ] = savedValues;
+
+	} );
+	return toReturn;
+
+}
+function setPresetSelectIndex( gui ) {
+
+	for ( var index = 0; index < gui.__preset_select.length; index ++ ) {
+
+		if ( gui.__preset_select[ index ].value === gui.preset ) {
+
+			gui.__preset_select.selectedIndex = index;
+
+		}
+
+	}
+
+}
+function updateDisplays( controllerArray ) {
+
+	if ( controllerArray.length !== 0 ) {
+
+		requestAnimationFrame$1.call( window, function () {
+
+			updateDisplays( controllerArray );
+
+		} );
+
+	}
+	Common.each( controllerArray, function ( c ) {
+
+		c.updateDisplay();
+
+	} );
+
+}
+
+var color = {
+	Color: Color,
+	math: ColorMath,
+	interpret: interpret
+};
+var controllers = {
+	Controller: Controller,
+	BooleanController: BooleanController,
+	OptionController: OptionController,
+	StringController: StringController,
+	NumberController: NumberController,
+	NumberControllerBox: NumberControllerBox,
+	NumberControllerSlider: NumberControllerSlider,
+	FunctionController: FunctionController,
+	ColorController: ColorController
+};
+var dom$1 = { dom: dom };
+var gui = { GUI: GUI };
+var GUI$1 = GUI;
+var index = {
+	color: color,
+	controllers: controllers,
+	dom: dom$1,
+	gui: gui,
+	GUI: GUI$1
+};
+
+export { color, controllers, dom$1 as dom, gui, GUI$1 as GUI };
+export default index;
diff --git a/01_Code/physical_computing_interface/simulation/lib/js-colormaps.js b/01_Code/physical_computing_interface/simulation/lib/js-colormaps.js
new file mode 100644
index 0000000000000000000000000000000000000000..cbc99710a55ec7c175fd2edda1d5d873eb0c7462
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/lib/js-colormaps.js
@@ -0,0 +1,77 @@
+// Diverging
+var BrBG = [[0.000, [0.329, 0.188, 0.020]], [0.002, [0.329, 0.188, 0.020]], [0.004, [0.338, 0.193, 0.020]], [0.006, [0.338, 0.193, 0.020]], [0.008, [0.347, 0.198, 0.021]], [0.010, [0.347, 0.198, 0.021]], [0.012, [0.355, 0.203, 0.022]], [0.014, [0.355, 0.203, 0.022]], [0.016, [0.364, 0.209, 0.023]], [0.018, [0.364, 0.209, 0.023]], [0.020, [0.372, 0.214, 0.023]], [0.022, [0.372, 0.214, 0.023]], [0.023, [0.381, 0.219, 0.024]], [0.025, [0.381, 0.219, 0.024]], [0.027, [0.390, 0.224, 0.025]], [0.029, [0.390, 0.224, 0.025]], [0.031, [0.398, 0.229, 0.026]], [0.033, [0.398, 0.229, 0.026]], [0.035, [0.407, 0.234, 0.027]], [0.037, [0.407, 0.234, 0.027]], [0.039, [0.416, 0.239, 0.027]], [0.041, [0.416, 0.239, 0.027]], [0.043, [0.424, 0.244, 0.028]], [0.045, [0.424, 0.244, 0.028]], [0.047, [0.433, 0.249, 0.029]], [0.049, [0.433, 0.249, 0.029]], [0.051, [0.441, 0.254, 0.030]], [0.053, [0.441, 0.254, 0.030]], [0.055, [0.450, 0.259, 0.030]], [0.057, [0.450, 0.259, 0.030]], [0.059, [0.459, 0.264, 0.031]], [0.061, [0.459, 0.264, 0.031]], [0.063, [0.467, 0.269, 0.032]], [0.065, [0.467, 0.269, 0.032]], [0.067, [0.476, 0.275, 0.033]], [0.068, [0.476, 0.275, 0.033]], [0.070, [0.484, 0.280, 0.033]], [0.072, [0.484, 0.280, 0.033]], [0.074, [0.493, 0.285, 0.034]], [0.076, [0.493, 0.285, 0.034]], [0.078, [0.502, 0.290, 0.035]], [0.080, [0.502, 0.290, 0.035]], [0.082, [0.510, 0.295, 0.036]], [0.084, [0.510, 0.295, 0.036]], [0.086, [0.519, 0.300, 0.037]], [0.088, [0.519, 0.300, 0.037]], [0.090, [0.527, 0.305, 0.037]], [0.092, [0.527, 0.305, 0.037]], [0.094, [0.536, 0.310, 0.038]], [0.096, [0.536, 0.310, 0.038]], [0.098, [0.545, 0.315, 0.039]], [0.100, [0.545, 0.315, 0.039]], [0.102, [0.553, 0.321, 0.042]], [0.104, [0.553, 0.321, 0.042]], [0.106, [0.561, 0.329, 0.047]], [0.108, [0.561, 0.329, 0.047]], [0.110, [0.569, 0.336, 0.053]], [0.112, [0.569, 0.336, 0.053]], [0.114, [0.576, 0.343, 0.058]], [0.115, [0.576, 0.343, 0.058]], [0.117, [0.584, 0.351, 0.063]], [0.119, [0.584, 0.351, 0.063]], [0.121, [0.592, 0.358, 0.069]], [0.123, [0.592, 0.358, 0.069]], [0.125, [0.600, 0.366, 0.074]], [0.127, [0.600, 0.366, 0.074]], [0.129, [0.608, 0.373, 0.080]], [0.131, [0.608, 0.373, 0.080]], [0.133, [0.616, 0.380, 0.085]], [0.135, [0.616, 0.380, 0.085]], [0.137, [0.624, 0.388, 0.090]], [0.139, [0.624, 0.388, 0.090]], [0.141, [0.631, 0.395, 0.096]], [0.143, [0.631, 0.395, 0.096]], [0.145, [0.639, 0.403, 0.101]], [0.147, [0.639, 0.403, 0.101]], [0.149, [0.647, 0.410, 0.106]], [0.151, [0.647, 0.410, 0.106]], [0.153, [0.655, 0.417, 0.112]], [0.155, [0.655, 0.417, 0.112]], [0.157, [0.663, 0.425, 0.117]], [0.159, [0.663, 0.425, 0.117]], [0.160, [0.671, 0.432, 0.123]], [0.162, [0.671, 0.432, 0.123]], [0.164, [0.678, 0.439, 0.128]], [0.166, [0.678, 0.439, 0.128]], [0.168, [0.686, 0.447, 0.133]], [0.170, [0.686, 0.447, 0.133]], [0.172, [0.694, 0.454, 0.139]], [0.174, [0.694, 0.454, 0.139]], [0.176, [0.702, 0.462, 0.144]], [0.178, [0.702, 0.462, 0.144]], [0.180, [0.710, 0.469, 0.150]], [0.182, [0.710, 0.469, 0.150]], [0.184, [0.718, 0.476, 0.155]], [0.186, [0.718, 0.476, 0.155]], [0.188, [0.725, 0.484, 0.160]], [0.190, [0.725, 0.484, 0.160]], [0.192, [0.733, 0.491, 0.166]], [0.194, [0.733, 0.491, 0.166]], [0.196, [0.741, 0.499, 0.171]], [0.198, [0.741, 0.499, 0.171]], [0.200, [0.749, 0.506, 0.176]], [0.202, [0.749, 0.506, 0.176]], [0.204, [0.754, 0.516, 0.189]], [0.205, [0.754, 0.516, 0.189]], [0.207, [0.759, 0.526, 0.201]], [0.209, [0.759, 0.526, 0.201]], [0.211, [0.764, 0.536, 0.213]], [0.213, [0.764, 0.536, 0.213]], [0.215, [0.769, 0.546, 0.226]], [0.217, [0.769, 0.546, 0.226]], [0.219, [0.774, 0.556, 0.238]], [0.221, [0.774, 0.556, 0.238]], [0.223, [0.779, 0.566, 0.250]], [0.225, [0.779, 0.566, 0.250]], [0.227, [0.783, 0.576, 0.263]], [0.229, [0.783, 0.576, 0.263]], [0.231, [0.788, 0.586, 0.275]], [0.233, [0.788, 0.586, 0.275]], [0.235, [0.793, 0.596, 0.287]], [0.237, [0.793, 0.596, 0.287]], [0.239, [0.798, 0.606, 0.300]], [0.241, [0.798, 0.606, 0.300]], [0.243, [0.803, 0.616, 0.312]], [0.245, [0.803, 0.616, 0.312]], [0.247, [0.808, 0.626, 0.324]], [0.249, [0.808, 0.626, 0.324]], [0.250, [0.813, 0.636, 0.336]], [0.252, [0.813, 0.636, 0.336]], [0.254, [0.818, 0.646, 0.349]], [0.256, [0.818, 0.646, 0.349]], [0.258, [0.823, 0.656, 0.361]], [0.260, [0.823, 0.656, 0.361]], [0.262, [0.828, 0.666, 0.373]], [0.264, [0.828, 0.666, 0.373]], [0.266, [0.833, 0.676, 0.386]], [0.268, [0.833, 0.676, 0.386]], [0.270, [0.838, 0.686, 0.398]], [0.272, [0.838, 0.686, 0.398]], [0.274, [0.843, 0.696, 0.410]], [0.276, [0.843, 0.696, 0.410]], [0.278, [0.847, 0.706, 0.423]], [0.280, [0.847, 0.706, 0.423]], [0.282, [0.852, 0.716, 0.435]], [0.284, [0.852, 0.716, 0.435]], [0.286, [0.857, 0.726, 0.447]], [0.288, [0.857, 0.726, 0.447]], [0.290, [0.862, 0.736, 0.459]], [0.292, [0.862, 0.736, 0.459]], [0.294, [0.867, 0.746, 0.472]], [0.295, [0.867, 0.746, 0.472]], [0.297, [0.872, 0.756, 0.484]], [0.299, [0.872, 0.756, 0.484]], [0.301, [0.876, 0.764, 0.496]], [0.303, [0.876, 0.764, 0.496]], [0.305, [0.880, 0.770, 0.506]], [0.307, [0.880, 0.770, 0.506]], [0.309, [0.883, 0.775, 0.517]], [0.311, [0.883, 0.775, 0.517]], [0.313, [0.887, 0.781, 0.528]], [0.315, [0.887, 0.781, 0.528]], [0.317, [0.890, 0.787, 0.539]], [0.319, [0.890, 0.787, 0.539]], [0.321, [0.894, 0.793, 0.549]], [0.323, [0.894, 0.793, 0.549]], [0.325, [0.898, 0.799, 0.560]], [0.327, [0.898, 0.799, 0.560]], [0.329, [0.901, 0.805, 0.571]], [0.331, [0.901, 0.805, 0.571]], [0.333, [0.905, 0.810, 0.582]], [0.335, [0.905, 0.810, 0.582]], [0.337, [0.908, 0.816, 0.592]], [0.339, [0.908, 0.816, 0.592]], [0.341, [0.912, 0.822, 0.603]], [0.342, [0.912, 0.822, 0.603]], [0.344, [0.915, 0.828, 0.614]], [0.346, [0.915, 0.828, 0.614]], [0.348, [0.919, 0.834, 0.625]], [0.350, [0.919, 0.834, 0.625]], [0.352, [0.922, 0.840, 0.636]], [0.354, [0.922, 0.840, 0.636]], [0.356, [0.926, 0.846, 0.646]], [0.358, [0.926, 0.846, 0.646]], [0.360, [0.929, 0.851, 0.657]], [0.362, [0.929, 0.851, 0.657]], [0.364, [0.933, 0.857, 0.668]], [0.366, [0.933, 0.857, 0.668]], [0.368, [0.936, 0.863, 0.679]], [0.370, [0.936, 0.863, 0.679]], [0.372, [0.940, 0.869, 0.689]], [0.374, [0.940, 0.869, 0.689]], [0.376, [0.943, 0.875, 0.700]], [0.378, [0.943, 0.875, 0.700]], [0.380, [0.947, 0.881, 0.711]], [0.382, [0.947, 0.881, 0.711]], [0.384, [0.951, 0.886, 0.722]], [0.386, [0.951, 0.886, 0.722]], [0.387, [0.954, 0.892, 0.732]], [0.389, [0.954, 0.892, 0.732]], [0.391, [0.958, 0.898, 0.743]], [0.393, [0.958, 0.898, 0.743]], [0.395, [0.961, 0.904, 0.754]], [0.397, [0.961, 0.904, 0.754]], [0.399, [0.965, 0.910, 0.765]], [0.401, [0.965, 0.910, 0.765]], [0.403, [0.965, 0.912, 0.772]], [0.405, [0.965, 0.912, 0.772]], [0.407, [0.964, 0.914, 0.780]], [0.409, [0.964, 0.914, 0.780]], [0.411, [0.964, 0.916, 0.788]], [0.413, [0.964, 0.916, 0.788]], [0.415, [0.964, 0.918, 0.795]], [0.417, [0.964, 0.918, 0.795]], [0.419, [0.964, 0.920, 0.803]], [0.421, [0.964, 0.920, 0.803]], [0.423, [0.964, 0.922, 0.811]], [0.425, [0.964, 0.922, 0.811]], [0.427, [0.964, 0.924, 0.819]], [0.429, [0.964, 0.924, 0.819]], [0.431, [0.963, 0.926, 0.826]], [0.432, [0.963, 0.926, 0.826]], [0.434, [0.963, 0.928, 0.834]], [0.436, [0.963, 0.928, 0.834]], [0.438, [0.963, 0.930, 0.842]], [0.440, [0.963, 0.930, 0.842]], [0.442, [0.963, 0.932, 0.849]], [0.444, [0.963, 0.932, 0.849]], [0.446, [0.963, 0.934, 0.857]], [0.448, [0.963, 0.934, 0.857]], [0.450, [0.963, 0.936, 0.865]], [0.452, [0.963, 0.936, 0.865]], [0.454, [0.963, 0.938, 0.872]], [0.456, [0.963, 0.938, 0.872]], [0.458, [0.962, 0.940, 0.880]], [0.460, [0.962, 0.940, 0.880]], [0.462, [0.962, 0.942, 0.888]], [0.464, [0.962, 0.942, 0.888]], [0.466, [0.962, 0.944, 0.895]], [0.468, [0.962, 0.944, 0.895]], [0.470, [0.962, 0.946, 0.903]], [0.472, [0.962, 0.946, 0.903]], [0.474, [0.962, 0.948, 0.911]], [0.476, [0.962, 0.948, 0.911]], [0.477, [0.962, 0.950, 0.918]], [0.479, [0.962, 0.950, 0.918]], [0.481, [0.961, 0.952, 0.926]], [0.483, [0.961, 0.952, 0.926]], [0.485, [0.961, 0.954, 0.934]], [0.487, [0.961, 0.954, 0.934]], [0.489, [0.961, 0.956, 0.942]], [0.491, [0.961, 0.956, 0.942]], [0.493, [0.961, 0.958, 0.949]], [0.495, [0.961, 0.958, 0.949]], [0.497, [0.961, 0.960, 0.957]], [0.499, [0.961, 0.960, 0.957]], [0.501, [0.957, 0.960, 0.960]], [0.503, [0.957, 0.960, 0.960]], [0.505, [0.950, 0.958, 0.957]], [0.507, [0.950, 0.958, 0.957]], [0.509, [0.943, 0.957, 0.955]], [0.511, [0.943, 0.957, 0.955]], [0.513, [0.936, 0.955, 0.952]], [0.515, [0.936, 0.955, 0.952]], [0.517, [0.929, 0.953, 0.950]], [0.519, [0.929, 0.953, 0.950]], [0.521, [0.922, 0.951, 0.947]], [0.523, [0.922, 0.951, 0.947]], [0.524, [0.915, 0.950, 0.945]], [0.526, [0.915, 0.950, 0.945]], [0.528, [0.908, 0.948, 0.942]], [0.530, [0.908, 0.948, 0.942]], [0.532, [0.901, 0.946, 0.940]], [0.534, [0.901, 0.946, 0.940]], [0.536, [0.894, 0.945, 0.937]], [0.538, [0.894, 0.945, 0.937]], [0.540, [0.887, 0.943, 0.935]], [0.542, [0.887, 0.943, 0.935]], [0.544, [0.879, 0.941, 0.932]], [0.546, [0.879, 0.941, 0.932]], [0.548, [0.872, 0.940, 0.930]], [0.550, [0.872, 0.940, 0.930]], [0.552, [0.865, 0.938, 0.928]], [0.554, [0.865, 0.938, 0.928]], [0.556, [0.858, 0.936, 0.925]], [0.558, [0.858, 0.936, 0.925]], [0.560, [0.851, 0.935, 0.923]], [0.562, [0.851, 0.935, 0.923]], [0.564, [0.844, 0.933, 0.920]], [0.566, [0.844, 0.933, 0.920]], [0.568, [0.837, 0.931, 0.918]], [0.569, [0.837, 0.931, 0.918]], [0.571, [0.830, 0.929, 0.915]], [0.573, [0.830, 0.929, 0.915]], [0.575, [0.823, 0.928, 0.913]], [0.577, [0.823, 0.928, 0.913]], [0.579, [0.816, 0.926, 0.910]], [0.581, [0.816, 0.926, 0.910]], [0.583, [0.809, 0.924, 0.908]], [0.585, [0.809, 0.924, 0.908]], [0.587, [0.802, 0.923, 0.905]], [0.589, [0.802, 0.923, 0.905]], [0.591, [0.795, 0.921, 0.903]], [0.593, [0.795, 0.921, 0.903]], [0.595, [0.787, 0.919, 0.900]], [0.597, [0.787, 0.919, 0.900]], [0.599, [0.780, 0.918, 0.898]], [0.601, [0.780, 0.918, 0.898]], [0.603, [0.769, 0.913, 0.893]], [0.605, [0.769, 0.913, 0.893]], [0.607, [0.759, 0.909, 0.887]], [0.609, [0.759, 0.909, 0.887]], [0.611, [0.748, 0.904, 0.881]], [0.613, [0.748, 0.904, 0.881]], [0.614, [0.737, 0.900, 0.876]], [0.616, [0.737, 0.900, 0.876]], [0.618, [0.726, 0.895, 0.870]], [0.620, [0.726, 0.895, 0.870]], [0.622, [0.715, 0.891, 0.865]], [0.624, [0.715, 0.891, 0.865]], [0.626, [0.704, 0.886, 0.859]], [0.628, [0.704, 0.886, 0.859]], [0.630, [0.693, 0.882, 0.854]], [0.632, [0.693, 0.882, 0.854]], [0.634, [0.682, 0.878, 0.848]], [0.636, [0.682, 0.878, 0.848]], [0.638, [0.671, 0.873, 0.843]], [0.640, [0.671, 0.873, 0.843]], [0.642, [0.660, 0.869, 0.837]], [0.644, [0.660, 0.869, 0.837]], [0.646, [0.649, 0.864, 0.832]], [0.648, [0.649, 0.864, 0.832]], [0.650, [0.638, 0.860, 0.826]], [0.652, [0.638, 0.860, 0.826]], [0.654, [0.628, 0.855, 0.821]], [0.656, [0.628, 0.855, 0.821]], [0.658, [0.617, 0.851, 0.815]], [0.659, [0.617, 0.851, 0.815]], [0.661, [0.606, 0.846, 0.809]], [0.663, [0.606, 0.846, 0.809]], [0.665, [0.595, 0.842, 0.804]], [0.667, [0.595, 0.842, 0.804]], [0.669, [0.584, 0.837, 0.798]], [0.671, [0.584, 0.837, 0.798]], [0.673, [0.573, 0.833, 0.793]], [0.675, [0.573, 0.833, 0.793]], [0.677, [0.562, 0.828, 0.787]], [0.679, [0.562, 0.828, 0.787]], [0.681, [0.551, 0.824, 0.782]], [0.683, [0.551, 0.824, 0.782]], [0.685, [0.540, 0.820, 0.776]], [0.687, [0.540, 0.820, 0.776]], [0.689, [0.529, 0.815, 0.771]], [0.691, [0.529, 0.815, 0.771]], [0.693, [0.518, 0.811, 0.765]], [0.695, [0.518, 0.811, 0.765]], [0.697, [0.507, 0.806, 0.760]], [0.699, [0.507, 0.806, 0.760]], [0.701, [0.496, 0.800, 0.753]], [0.703, [0.496, 0.800, 0.753]], [0.705, [0.485, 0.791, 0.745]], [0.706, [0.485, 0.791, 0.745]], [0.708, [0.473, 0.783, 0.738]], [0.710, [0.473, 0.783, 0.738]], [0.712, [0.462, 0.775, 0.730]], [0.714, [0.462, 0.775, 0.730]], [0.716, [0.450, 0.767, 0.722]], [0.718, [0.450, 0.767, 0.722]], [0.720, [0.439, 0.758, 0.715]], [0.722, [0.439, 0.758, 0.715]], [0.724, [0.427, 0.750, 0.707]], [0.726, [0.427, 0.750, 0.707]], [0.728, [0.415, 0.742, 0.699]], [0.730, [0.415, 0.742, 0.699]], [0.732, [0.404, 0.733, 0.692]], [0.734, [0.404, 0.733, 0.692]], [0.736, [0.392, 0.725, 0.684]], [0.738, [0.392, 0.725, 0.684]], [0.740, [0.381, 0.717, 0.676]], [0.742, [0.381, 0.717, 0.676]], [0.744, [0.369, 0.708, 0.668]], [0.746, [0.369, 0.708, 0.668]], [0.748, [0.358, 0.700, 0.661]], [0.750, [0.358, 0.700, 0.661]], [0.751, [0.346, 0.692, 0.653]], [0.753, [0.346, 0.692, 0.653]], [0.755, [0.335, 0.684, 0.645]], [0.757, [0.335, 0.684, 0.645]], [0.759, [0.323, 0.675, 0.638]], [0.761, [0.323, 0.675, 0.638]], [0.763, [0.312, 0.667, 0.630]], [0.765, [0.312, 0.667, 0.630]], [0.767, [0.300, 0.659, 0.622]], [0.769, [0.300, 0.659, 0.622]], [0.771, [0.289, 0.650, 0.615]], [0.773, [0.289, 0.650, 0.615]], [0.775, [0.277, 0.642, 0.607]], [0.777, [0.277, 0.642, 0.607]], [0.779, [0.266, 0.634, 0.599]], [0.781, [0.266, 0.634, 0.599]], [0.783, [0.254, 0.625, 0.592]], [0.785, [0.254, 0.625, 0.592]], [0.787, [0.242, 0.617, 0.584]], [0.789, [0.242, 0.617, 0.584]], [0.791, [0.231, 0.609, 0.576]], [0.793, [0.231, 0.609, 0.576]], [0.795, [0.219, 0.600, 0.568]], [0.796, [0.219, 0.600, 0.568]], [0.798, [0.208, 0.592, 0.561]], [0.800, [0.208, 0.592, 0.561]], [0.802, [0.200, 0.585, 0.553]], [0.804, [0.200, 0.585, 0.553]], [0.806, [0.192, 0.577, 0.546]], [0.808, [0.192, 0.577, 0.546]], [0.810, [0.184, 0.570, 0.538]], [0.812, [0.184, 0.570, 0.538]], [0.814, [0.176, 0.562, 0.531]], [0.816, [0.176, 0.562, 0.531]], [0.818, [0.168, 0.554, 0.523]], [0.820, [0.168, 0.554, 0.523]], [0.822, [0.160, 0.547, 0.516]], [0.824, [0.160, 0.547, 0.516]], [0.826, [0.152, 0.539, 0.508]], [0.828, [0.152, 0.539, 0.508]], [0.830, [0.144, 0.532, 0.500]], [0.832, [0.144, 0.532, 0.500]], [0.834, [0.136, 0.524, 0.493]], [0.836, [0.136, 0.524, 0.493]], [0.838, [0.128, 0.517, 0.485]], [0.840, [0.128, 0.517, 0.485]], [0.841, [0.120, 0.509, 0.478]], [0.843, [0.120, 0.509, 0.478]], [0.845, [0.112, 0.502, 0.470]], [0.847, [0.112, 0.502, 0.470]], [0.849, [0.104, 0.494, 0.463]], [0.851, [0.104, 0.494, 0.463]], [0.853, [0.096, 0.487, 0.455]], [0.855, [0.096, 0.487, 0.455]], [0.857, [0.088, 0.479, 0.448]], [0.859, [0.088, 0.479, 0.448]], [0.861, [0.080, 0.472, 0.440]], [0.863, [0.080, 0.472, 0.440]], [0.865, [0.072, 0.464, 0.433]], [0.867, [0.072, 0.464, 0.433]], [0.869, [0.064, 0.457, 0.425]], [0.871, [0.064, 0.457, 0.425]], [0.873, [0.056, 0.449, 0.418]], [0.875, [0.056, 0.449, 0.418]], [0.877, [0.048, 0.441, 0.410]], [0.879, [0.048, 0.441, 0.410]], [0.881, [0.040, 0.434, 0.403]], [0.883, [0.040, 0.434, 0.403]], [0.885, [0.032, 0.426, 0.395]], [0.886, [0.032, 0.426, 0.395]], [0.888, [0.024, 0.419, 0.387]], [0.890, [0.024, 0.419, 0.387]], [0.892, [0.016, 0.411, 0.380]], [0.894, [0.016, 0.411, 0.380]], [0.896, [0.008, 0.404, 0.372]], [0.898, [0.008, 0.404, 0.372]], [0.900, [0.004, 0.397, 0.365]], [0.902, [0.004, 0.397, 0.365]], [0.904, [0.004, 0.390, 0.358]], [0.906, [0.004, 0.390, 0.358]], [0.908, [0.004, 0.384, 0.351]], [0.910, [0.004, 0.384, 0.351]], [0.912, [0.003, 0.377, 0.344]], [0.914, [0.003, 0.377, 0.344]], [0.916, [0.003, 0.371, 0.337]], [0.918, [0.003, 0.371, 0.337]], [0.920, [0.003, 0.364, 0.330]], [0.922, [0.003, 0.364, 0.330]], [0.924, [0.003, 0.358, 0.323]], [0.926, [0.003, 0.358, 0.323]], [0.928, [0.003, 0.352, 0.316]], [0.930, [0.003, 0.352, 0.316]], [0.932, [0.003, 0.345, 0.308]], [0.933, [0.003, 0.345, 0.308]], [0.935, [0.002, 0.339, 0.301]], [0.937, [0.002, 0.339, 0.301]], [0.939, [0.002, 0.332, 0.294]], [0.941, [0.002, 0.332, 0.294]], [0.943, [0.002, 0.326, 0.287]], [0.945, [0.002, 0.326, 0.287]], [0.947, [0.002, 0.319, 0.280]], [0.949, [0.002, 0.319, 0.280]], [0.951, [0.002, 0.313, 0.273]], [0.953, [0.002, 0.313, 0.273]], [0.955, [0.002, 0.306, 0.266]], [0.957, [0.002, 0.306, 0.266]], [0.959, [0.002, 0.300, 0.259]], [0.961, [0.002, 0.300, 0.259]], [0.963, [0.001, 0.293, 0.252]], [0.965, [0.001, 0.293, 0.252]], [0.967, [0.001, 0.287, 0.245]], [0.969, [0.001, 0.287, 0.245]], [0.971, [0.001, 0.281, 0.238]], [0.973, [0.001, 0.281, 0.238]], [0.975, [0.001, 0.274, 0.231]], [0.977, [0.001, 0.274, 0.231]], [0.978, [0.001, 0.268, 0.224]], [0.980, [0.001, 0.268, 0.224]], [0.982, [0.001, 0.261, 0.217]], [0.984, [0.001, 0.261, 0.217]], [0.986, [0.000, 0.255, 0.209]], [0.988, [0.000, 0.255, 0.209]], [0.990, [0.000, 0.248, 0.202]], [0.992, [0.000, 0.248, 0.202]], [0.994, [0.000, 0.242, 0.195]], [0.996, [0.000, 0.242, 0.195]], [0.998, [0.000, 0.235, 0.188]], [1.000, [0.000, 0.235, 0.188]]];
+var PRGn = [[0.000, [0.251, 0.000, 0.294]], [0.002, [0.251, 0.000, 0.294]], [0.004, [0.259, 0.006, 0.303]], [0.006, [0.259, 0.006, 0.303]], [0.008, [0.268, 0.013, 0.311]], [0.010, [0.268, 0.013, 0.311]], [0.012, [0.276, 0.019, 0.320]], [0.014, [0.276, 0.019, 0.320]], [0.016, [0.284, 0.026, 0.329]], [0.018, [0.284, 0.026, 0.329]], [0.020, [0.293, 0.032, 0.337]], [0.022, [0.293, 0.032, 0.337]], [0.023, [0.301, 0.039, 0.346]], [0.025, [0.301, 0.039, 0.346]], [0.027, [0.309, 0.045, 0.354]], [0.029, [0.309, 0.045, 0.354]], [0.031, [0.317, 0.052, 0.363]], [0.033, [0.317, 0.052, 0.363]], [0.035, [0.326, 0.058, 0.372]], [0.037, [0.326, 0.058, 0.372]], [0.039, [0.334, 0.065, 0.380]], [0.041, [0.334, 0.065, 0.380]], [0.043, [0.342, 0.071, 0.389]], [0.045, [0.342, 0.071, 0.389]], [0.047, [0.351, 0.078, 0.397]], [0.049, [0.351, 0.078, 0.397]], [0.051, [0.359, 0.084, 0.406]], [0.053, [0.359, 0.084, 0.406]], [0.055, [0.367, 0.090, 0.415]], [0.057, [0.367, 0.090, 0.415]], [0.059, [0.376, 0.097, 0.423]], [0.061, [0.376, 0.097, 0.423]], [0.063, [0.384, 0.103, 0.432]], [0.065, [0.384, 0.103, 0.432]], [0.067, [0.392, 0.110, 0.441]], [0.068, [0.392, 0.110, 0.441]], [0.070, [0.400, 0.116, 0.449]], [0.072, [0.400, 0.116, 0.449]], [0.074, [0.409, 0.123, 0.458]], [0.076, [0.409, 0.123, 0.458]], [0.078, [0.417, 0.129, 0.466]], [0.080, [0.417, 0.129, 0.466]], [0.082, [0.425, 0.136, 0.475]], [0.084, [0.425, 0.136, 0.475]], [0.086, [0.434, 0.142, 0.484]], [0.088, [0.434, 0.142, 0.484]], [0.090, [0.442, 0.149, 0.492]], [0.092, [0.442, 0.149, 0.492]], [0.094, [0.450, 0.155, 0.501]], [0.096, [0.450, 0.155, 0.501]], [0.098, [0.459, 0.161, 0.509]], [0.100, [0.459, 0.161, 0.509]], [0.102, [0.465, 0.170, 0.517]], [0.104, [0.465, 0.170, 0.517]], [0.106, [0.471, 0.181, 0.523]], [0.108, [0.471, 0.181, 0.523]], [0.110, [0.476, 0.192, 0.529]], [0.112, [0.476, 0.192, 0.529]], [0.114, [0.482, 0.202, 0.535]], [0.115, [0.482, 0.202, 0.535]], [0.117, [0.487, 0.213, 0.541]], [0.119, [0.487, 0.213, 0.541]], [0.121, [0.492, 0.224, 0.548]], [0.123, [0.492, 0.224, 0.548]], [0.125, [0.498, 0.235, 0.554]], [0.127, [0.498, 0.235, 0.554]], [0.129, [0.503, 0.245, 0.560]], [0.131, [0.503, 0.245, 0.560]], [0.133, [0.508, 0.256, 0.566]], [0.135, [0.508, 0.256, 0.566]], [0.137, [0.514, 0.267, 0.572]], [0.139, [0.514, 0.267, 0.572]], [0.141, [0.519, 0.278, 0.578]], [0.143, [0.519, 0.278, 0.578]], [0.145, [0.525, 0.289, 0.584]], [0.147, [0.525, 0.289, 0.584]], [0.149, [0.530, 0.299, 0.591]], [0.151, [0.530, 0.299, 0.591]], [0.153, [0.535, 0.310, 0.597]], [0.155, [0.535, 0.310, 0.597]], [0.157, [0.541, 0.321, 0.603]], [0.159, [0.541, 0.321, 0.603]], [0.160, [0.546, 0.332, 0.609]], [0.162, [0.546, 0.332, 0.609]], [0.164, [0.552, 0.342, 0.615]], [0.166, [0.552, 0.342, 0.615]], [0.168, [0.557, 0.353, 0.621]], [0.170, [0.557, 0.353, 0.621]], [0.172, [0.562, 0.364, 0.628]], [0.174, [0.562, 0.364, 0.628]], [0.176, [0.568, 0.375, 0.634]], [0.178, [0.568, 0.375, 0.634]], [0.180, [0.573, 0.385, 0.640]], [0.182, [0.573, 0.385, 0.640]], [0.184, [0.578, 0.396, 0.646]], [0.186, [0.578, 0.396, 0.646]], [0.188, [0.584, 0.407, 0.652]], [0.190, [0.584, 0.407, 0.652]], [0.192, [0.589, 0.418, 0.658]], [0.194, [0.589, 0.418, 0.658]], [0.196, [0.595, 0.428, 0.664]], [0.198, [0.595, 0.428, 0.664]], [0.200, [0.600, 0.439, 0.671]], [0.202, [0.600, 0.439, 0.671]], [0.204, [0.606, 0.447, 0.676]], [0.205, [0.606, 0.447, 0.676]], [0.207, [0.613, 0.456, 0.682]], [0.209, [0.613, 0.456, 0.682]], [0.211, [0.619, 0.464, 0.687]], [0.213, [0.619, 0.464, 0.687]], [0.215, [0.625, 0.472, 0.693]], [0.217, [0.625, 0.472, 0.693]], [0.219, [0.632, 0.480, 0.698]], [0.221, [0.632, 0.480, 0.698]], [0.223, [0.638, 0.488, 0.704]], [0.225, [0.638, 0.488, 0.704]], [0.227, [0.644, 0.496, 0.709]], [0.229, [0.644, 0.496, 0.709]], [0.231, [0.650, 0.504, 0.715]], [0.233, [0.650, 0.504, 0.715]], [0.235, [0.657, 0.513, 0.720]], [0.237, [0.657, 0.513, 0.720]], [0.239, [0.663, 0.521, 0.726]], [0.241, [0.663, 0.521, 0.726]], [0.243, [0.669, 0.529, 0.731]], [0.245, [0.669, 0.529, 0.731]], [0.247, [0.676, 0.537, 0.737]], [0.249, [0.676, 0.537, 0.737]], [0.250, [0.682, 0.545, 0.743]], [0.252, [0.682, 0.545, 0.743]], [0.254, [0.688, 0.553, 0.748]], [0.256, [0.688, 0.553, 0.748]], [0.258, [0.695, 0.561, 0.754]], [0.260, [0.695, 0.561, 0.754]], [0.262, [0.701, 0.570, 0.759]], [0.264, [0.701, 0.570, 0.759]], [0.266, [0.707, 0.578, 0.765]], [0.268, [0.707, 0.578, 0.765]], [0.270, [0.713, 0.586, 0.770]], [0.272, [0.713, 0.586, 0.770]], [0.274, [0.720, 0.594, 0.776]], [0.276, [0.720, 0.594, 0.776]], [0.278, [0.726, 0.602, 0.781]], [0.280, [0.726, 0.602, 0.781]], [0.282, [0.732, 0.610, 0.787]], [0.284, [0.732, 0.610, 0.787]], [0.286, [0.739, 0.619, 0.792]], [0.288, [0.739, 0.619, 0.792]], [0.290, [0.745, 0.627, 0.798]], [0.292, [0.745, 0.627, 0.798]], [0.294, [0.751, 0.635, 0.803]], [0.295, [0.751, 0.635, 0.803]], [0.297, [0.758, 0.643, 0.809]], [0.299, [0.758, 0.643, 0.809]], [0.301, [0.764, 0.651, 0.814]], [0.303, [0.764, 0.651, 0.814]], [0.305, [0.769, 0.658, 0.818]], [0.307, [0.769, 0.658, 0.818]], [0.309, [0.775, 0.665, 0.821]], [0.311, [0.775, 0.665, 0.821]], [0.313, [0.781, 0.672, 0.825]], [0.315, [0.781, 0.672, 0.825]], [0.317, [0.786, 0.680, 0.829]], [0.319, [0.786, 0.680, 0.829]], [0.321, [0.792, 0.687, 0.833]], [0.323, [0.792, 0.687, 0.833]], [0.325, [0.798, 0.694, 0.837]], [0.327, [0.798, 0.694, 0.837]], [0.329, [0.803, 0.701, 0.841]], [0.331, [0.803, 0.701, 0.841]], [0.333, [0.809, 0.708, 0.844]], [0.335, [0.809, 0.708, 0.844]], [0.337, [0.815, 0.716, 0.848]], [0.339, [0.815, 0.716, 0.848]], [0.341, [0.821, 0.723, 0.852]], [0.342, [0.821, 0.723, 0.852]], [0.344, [0.826, 0.730, 0.856]], [0.346, [0.826, 0.730, 0.856]], [0.348, [0.832, 0.737, 0.860]], [0.350, [0.832, 0.737, 0.860]], [0.352, [0.838, 0.745, 0.864]], [0.354, [0.838, 0.745, 0.864]], [0.356, [0.843, 0.752, 0.868]], [0.358, [0.843, 0.752, 0.868]], [0.360, [0.849, 0.759, 0.871]], [0.362, [0.849, 0.759, 0.871]], [0.364, [0.855, 0.766, 0.875]], [0.366, [0.855, 0.766, 0.875]], [0.368, [0.860, 0.774, 0.879]], [0.370, [0.860, 0.774, 0.879]], [0.372, [0.866, 0.781, 0.883]], [0.374, [0.866, 0.781, 0.883]], [0.376, [0.872, 0.788, 0.887]], [0.378, [0.872, 0.788, 0.887]], [0.380, [0.877, 0.795, 0.891]], [0.382, [0.877, 0.795, 0.891]], [0.384, [0.883, 0.802, 0.894]], [0.386, [0.883, 0.802, 0.894]], [0.387, [0.889, 0.810, 0.898]], [0.389, [0.889, 0.810, 0.898]], [0.391, [0.895, 0.817, 0.902]], [0.393, [0.895, 0.817, 0.902]], [0.395, [0.900, 0.824, 0.906]], [0.397, [0.900, 0.824, 0.906]], [0.399, [0.906, 0.831, 0.910]], [0.401, [0.906, 0.831, 0.910]], [0.403, [0.908, 0.837, 0.912]], [0.405, [0.908, 0.837, 0.912]], [0.407, [0.911, 0.842, 0.914]], [0.409, [0.911, 0.842, 0.914]], [0.411, [0.913, 0.848, 0.917]], [0.413, [0.913, 0.848, 0.917]], [0.415, [0.916, 0.853, 0.919]], [0.417, [0.916, 0.853, 0.919]], [0.419, [0.918, 0.858, 0.921]], [0.421, [0.918, 0.858, 0.921]], [0.423, [0.921, 0.864, 0.924]], [0.425, [0.921, 0.864, 0.924]], [0.427, [0.923, 0.869, 0.926]], [0.429, [0.923, 0.869, 0.926]], [0.431, [0.926, 0.874, 0.928]], [0.432, [0.926, 0.874, 0.928]], [0.434, [0.928, 0.880, 0.931]], [0.436, [0.928, 0.880, 0.931]], [0.438, [0.930, 0.885, 0.933]], [0.440, [0.930, 0.885, 0.933]], [0.442, [0.933, 0.891, 0.935]], [0.444, [0.933, 0.891, 0.935]], [0.446, [0.935, 0.896, 0.937]], [0.448, [0.935, 0.896, 0.937]], [0.450, [0.938, 0.901, 0.940]], [0.452, [0.938, 0.901, 0.940]], [0.454, [0.940, 0.907, 0.942]], [0.456, [0.940, 0.907, 0.942]], [0.458, [0.943, 0.912, 0.944]], [0.460, [0.943, 0.912, 0.944]], [0.462, [0.945, 0.917, 0.947]], [0.464, [0.945, 0.917, 0.947]], [0.466, [0.948, 0.923, 0.949]], [0.468, [0.948, 0.923, 0.949]], [0.470, [0.950, 0.928, 0.951]], [0.472, [0.950, 0.928, 0.951]], [0.474, [0.953, 0.934, 0.954]], [0.476, [0.953, 0.934, 0.954]], [0.477, [0.955, 0.939, 0.956]], [0.479, [0.955, 0.939, 0.956]], [0.481, [0.958, 0.944, 0.958]], [0.483, [0.958, 0.944, 0.958]], [0.485, [0.960, 0.950, 0.961]], [0.487, [0.960, 0.950, 0.961]], [0.489, [0.962, 0.955, 0.963]], [0.491, [0.962, 0.955, 0.963]], [0.493, [0.965, 0.961, 0.965]], [0.495, [0.965, 0.961, 0.965]], [0.497, [0.967, 0.966, 0.967]], [0.499, [0.967, 0.966, 0.967]], [0.501, [0.966, 0.968, 0.966]], [0.503, [0.966, 0.968, 0.966]], [0.505, [0.962, 0.967, 0.960]], [0.507, [0.962, 0.967, 0.960]], [0.509, [0.957, 0.966, 0.955]], [0.511, [0.957, 0.966, 0.955]], [0.513, [0.952, 0.965, 0.949]], [0.515, [0.952, 0.965, 0.949]], [0.517, [0.948, 0.964, 0.944]], [0.519, [0.948, 0.964, 0.944]], [0.521, [0.943, 0.963, 0.938]], [0.523, [0.943, 0.963, 0.938]], [0.524, [0.939, 0.962, 0.933]], [0.526, [0.939, 0.962, 0.933]], [0.528, [0.934, 0.961, 0.927]], [0.530, [0.934, 0.961, 0.927]], [0.532, [0.929, 0.959, 0.922]], [0.534, [0.929, 0.959, 0.922]], [0.536, [0.925, 0.958, 0.916]], [0.538, [0.925, 0.958, 0.916]], [0.540, [0.920, 0.957, 0.910]], [0.542, [0.920, 0.957, 0.910]], [0.544, [0.916, 0.956, 0.905]], [0.546, [0.916, 0.956, 0.905]], [0.548, [0.911, 0.955, 0.899]], [0.550, [0.911, 0.955, 0.899]], [0.552, [0.906, 0.954, 0.894]], [0.554, [0.906, 0.954, 0.894]], [0.556, [0.902, 0.953, 0.888]], [0.558, [0.902, 0.953, 0.888]], [0.560, [0.897, 0.952, 0.883]], [0.562, [0.897, 0.952, 0.883]], [0.564, [0.893, 0.951, 0.877]], [0.566, [0.893, 0.951, 0.877]], [0.568, [0.888, 0.950, 0.872]], [0.569, [0.888, 0.950, 0.872]], [0.571, [0.883, 0.949, 0.866]], [0.573, [0.883, 0.949, 0.866]], [0.575, [0.879, 0.948, 0.861]], [0.577, [0.879, 0.948, 0.861]], [0.579, [0.874, 0.947, 0.855]], [0.581, [0.874, 0.947, 0.855]], [0.583, [0.869, 0.945, 0.850]], [0.585, [0.869, 0.945, 0.850]], [0.587, [0.865, 0.944, 0.844]], [0.589, [0.865, 0.944, 0.844]], [0.591, [0.860, 0.943, 0.839]], [0.593, [0.860, 0.943, 0.839]], [0.595, [0.856, 0.942, 0.833]], [0.597, [0.856, 0.942, 0.833]], [0.599, [0.851, 0.941, 0.827]], [0.601, [0.851, 0.941, 0.827]], [0.603, [0.843, 0.938, 0.820]], [0.605, [0.843, 0.938, 0.820]], [0.607, [0.835, 0.935, 0.812]], [0.609, [0.835, 0.935, 0.812]], [0.611, [0.827, 0.931, 0.804]], [0.613, [0.827, 0.931, 0.804]], [0.614, [0.820, 0.928, 0.796]], [0.616, [0.820, 0.928, 0.796]], [0.618, [0.812, 0.925, 0.788]], [0.620, [0.812, 0.925, 0.788]], [0.622, [0.804, 0.922, 0.780]], [0.624, [0.804, 0.922, 0.780]], [0.626, [0.796, 0.919, 0.773]], [0.628, [0.796, 0.919, 0.773]], [0.630, [0.788, 0.915, 0.765]], [0.632, [0.788, 0.915, 0.765]], [0.634, [0.780, 0.912, 0.757]], [0.636, [0.780, 0.912, 0.757]], [0.638, [0.773, 0.909, 0.749]], [0.640, [0.773, 0.909, 0.749]], [0.642, [0.765, 0.906, 0.741]], [0.644, [0.765, 0.906, 0.741]], [0.646, [0.757, 0.902, 0.733]], [0.648, [0.757, 0.902, 0.733]], [0.650, [0.749, 0.899, 0.725]], [0.652, [0.749, 0.899, 0.725]], [0.654, [0.741, 0.896, 0.718]], [0.656, [0.741, 0.896, 0.718]], [0.658, [0.733, 0.893, 0.710]], [0.659, [0.733, 0.893, 0.710]], [0.661, [0.725, 0.890, 0.702]], [0.663, [0.725, 0.890, 0.702]], [0.665, [0.718, 0.886, 0.694]], [0.667, [0.718, 0.886, 0.694]], [0.669, [0.710, 0.883, 0.686]], [0.671, [0.710, 0.883, 0.686]], [0.673, [0.702, 0.880, 0.678]], [0.675, [0.702, 0.880, 0.678]], [0.677, [0.694, 0.877, 0.671]], [0.679, [0.694, 0.877, 0.671]], [0.681, [0.686, 0.873, 0.663]], [0.683, [0.686, 0.873, 0.663]], [0.685, [0.678, 0.870, 0.655]], [0.687, [0.678, 0.870, 0.655]], [0.689, [0.671, 0.867, 0.647]], [0.691, [0.671, 0.867, 0.647]], [0.693, [0.663, 0.864, 0.639]], [0.695, [0.663, 0.864, 0.639]], [0.697, [0.655, 0.860, 0.631]], [0.699, [0.655, 0.860, 0.631]], [0.701, [0.645, 0.855, 0.623]], [0.703, [0.645, 0.855, 0.623]], [0.705, [0.633, 0.848, 0.613]], [0.706, [0.633, 0.848, 0.613]], [0.708, [0.622, 0.842, 0.603]], [0.710, [0.622, 0.842, 0.603]], [0.712, [0.610, 0.835, 0.594]], [0.714, [0.610, 0.835, 0.594]], [0.716, [0.598, 0.828, 0.584]], [0.718, [0.598, 0.828, 0.584]], [0.720, [0.587, 0.821, 0.574]], [0.722, [0.587, 0.821, 0.574]], [0.724, [0.575, 0.814, 0.564]], [0.726, [0.575, 0.814, 0.564]], [0.728, [0.563, 0.807, 0.555]], [0.730, [0.563, 0.807, 0.555]], [0.732, [0.552, 0.800, 0.545]], [0.734, [0.552, 0.800, 0.545]], [0.736, [0.540, 0.793, 0.535]], [0.738, [0.540, 0.793, 0.535]], [0.740, [0.528, 0.786, 0.526]], [0.742, [0.528, 0.786, 0.526]], [0.744, [0.517, 0.779, 0.516]], [0.746, [0.517, 0.779, 0.516]], [0.748, [0.505, 0.772, 0.506]], [0.750, [0.505, 0.772, 0.506]], [0.751, [0.493, 0.765, 0.497]], [0.753, [0.493, 0.765, 0.497]], [0.755, [0.482, 0.758, 0.487]], [0.757, [0.482, 0.758, 0.487]], [0.759, [0.470, 0.752, 0.477]], [0.761, [0.470, 0.752, 0.477]], [0.763, [0.458, 0.745, 0.468]], [0.765, [0.458, 0.745, 0.468]], [0.767, [0.446, 0.738, 0.458]], [0.769, [0.446, 0.738, 0.458]], [0.771, [0.435, 0.731, 0.448]], [0.773, [0.435, 0.731, 0.448]], [0.775, [0.423, 0.724, 0.439]], [0.777, [0.423, 0.724, 0.439]], [0.779, [0.411, 0.717, 0.429]], [0.781, [0.411, 0.717, 0.429]], [0.783, [0.400, 0.710, 0.419]], [0.785, [0.400, 0.710, 0.419]], [0.787, [0.388, 0.703, 0.409]], [0.789, [0.388, 0.703, 0.409]], [0.791, [0.376, 0.696, 0.400]], [0.793, [0.376, 0.696, 0.400]], [0.795, [0.365, 0.689, 0.390]], [0.796, [0.365, 0.689, 0.390]], [0.798, [0.353, 0.682, 0.380]], [0.800, [0.353, 0.682, 0.380]], [0.802, [0.343, 0.674, 0.374]], [0.804, [0.343, 0.674, 0.374]], [0.806, [0.334, 0.666, 0.367]], [0.808, [0.334, 0.666, 0.367]], [0.810, [0.324, 0.657, 0.361]], [0.812, [0.324, 0.657, 0.361]], [0.814, [0.314, 0.649, 0.355]], [0.816, [0.314, 0.649, 0.355]], [0.818, [0.304, 0.641, 0.348]], [0.820, [0.304, 0.641, 0.348]], [0.822, [0.295, 0.633, 0.342]], [0.824, [0.295, 0.633, 0.342]], [0.826, [0.285, 0.624, 0.335]], [0.828, [0.285, 0.624, 0.335]], [0.830, [0.275, 0.616, 0.329]], [0.832, [0.275, 0.616, 0.329]], [0.834, [0.266, 0.608, 0.322]], [0.836, [0.266, 0.608, 0.322]], [0.838, [0.256, 0.599, 0.316]], [0.840, [0.256, 0.599, 0.316]], [0.841, [0.246, 0.591, 0.309]], [0.843, [0.246, 0.591, 0.309]], [0.845, [0.237, 0.583, 0.303]], [0.847, [0.237, 0.583, 0.303]], [0.849, [0.227, 0.574, 0.296]], [0.851, [0.227, 0.574, 0.296]], [0.853, [0.217, 0.566, 0.290]], [0.855, [0.217, 0.566, 0.290]], [0.857, [0.208, 0.558, 0.284]], [0.859, [0.208, 0.558, 0.284]], [0.861, [0.198, 0.549, 0.277]], [0.863, [0.198, 0.549, 0.277]], [0.865, [0.188, 0.541, 0.271]], [0.867, [0.188, 0.541, 0.271]], [0.869, [0.179, 0.533, 0.264]], [0.871, [0.179, 0.533, 0.264]], [0.873, [0.169, 0.525, 0.258]], [0.875, [0.169, 0.525, 0.258]], [0.877, [0.159, 0.516, 0.251]], [0.879, [0.159, 0.516, 0.251]], [0.881, [0.149, 0.508, 0.245]], [0.883, [0.149, 0.508, 0.245]], [0.885, [0.140, 0.500, 0.238]], [0.886, [0.140, 0.500, 0.238]], [0.888, [0.130, 0.491, 0.232]], [0.890, [0.130, 0.491, 0.232]], [0.892, [0.120, 0.483, 0.225]], [0.894, [0.120, 0.483, 0.225]], [0.896, [0.111, 0.475, 0.219]], [0.898, [0.111, 0.475, 0.219]], [0.900, [0.104, 0.467, 0.214]], [0.902, [0.104, 0.467, 0.214]], [0.904, [0.100, 0.459, 0.209]], [0.906, [0.100, 0.459, 0.209]], [0.908, [0.096, 0.451, 0.205]], [0.910, [0.096, 0.451, 0.205]], [0.912, [0.091, 0.443, 0.201]], [0.914, [0.091, 0.443, 0.201]], [0.916, [0.087, 0.435, 0.196]], [0.918, [0.087, 0.435, 0.196]], [0.920, [0.083, 0.427, 0.192]], [0.922, [0.083, 0.427, 0.192]], [0.924, [0.079, 0.419, 0.188]], [0.926, [0.079, 0.419, 0.188]], [0.928, [0.075, 0.411, 0.183]], [0.930, [0.075, 0.411, 0.183]], [0.932, [0.071, 0.403, 0.179]], [0.933, [0.071, 0.403, 0.179]], [0.935, [0.066, 0.395, 0.175]], [0.937, [0.066, 0.395, 0.175]], [0.939, [0.062, 0.387, 0.170]], [0.941, [0.062, 0.387, 0.170]], [0.943, [0.058, 0.379, 0.166]], [0.945, [0.058, 0.379, 0.166]], [0.947, [0.054, 0.371, 0.162]], [0.949, [0.054, 0.371, 0.162]], [0.951, [0.050, 0.363, 0.158]], [0.953, [0.050, 0.363, 0.158]], [0.955, [0.046, 0.355, 0.153]], [0.957, [0.046, 0.355, 0.153]], [0.959, [0.042, 0.347, 0.149]], [0.961, [0.042, 0.347, 0.149]], [0.963, [0.037, 0.339, 0.145]], [0.965, [0.037, 0.339, 0.145]], [0.967, [0.033, 0.331, 0.140]], [0.969, [0.033, 0.331, 0.140]], [0.971, [0.029, 0.323, 0.136]], [0.973, [0.029, 0.323, 0.136]], [0.975, [0.025, 0.315, 0.132]], [0.977, [0.025, 0.315, 0.132]], [0.978, [0.021, 0.307, 0.127]], [0.980, [0.021, 0.307, 0.127]], [0.982, [0.017, 0.299, 0.123]], [0.984, [0.017, 0.299, 0.123]], [0.986, [0.012, 0.291, 0.119]], [0.988, [0.012, 0.291, 0.119]], [0.990, [0.008, 0.283, 0.114]], [0.992, [0.008, 0.283, 0.114]], [0.994, [0.004, 0.275, 0.110]], [0.996, [0.004, 0.275, 0.110]], [0.998, [0.000, 0.267, 0.106]], [1.000, [0.000, 0.267, 0.106]]];
+var PiYG = [[0.000, [0.557, 0.004, 0.322]], [0.002, [0.557, 0.004, 0.322]], [0.004, [0.565, 0.008, 0.328]], [0.006, [0.565, 0.008, 0.328]], [0.008, [0.574, 0.012, 0.335]], [0.010, [0.574, 0.012, 0.335]], [0.012, [0.582, 0.016, 0.341]], [0.014, [0.582, 0.016, 0.341]], [0.016, [0.591, 0.020, 0.348]], [0.018, [0.591, 0.020, 0.348]], [0.020, [0.599, 0.024, 0.355]], [0.022, [0.599, 0.024, 0.355]], [0.023, [0.608, 0.028, 0.361]], [0.025, [0.608, 0.028, 0.361]], [0.027, [0.616, 0.032, 0.368]], [0.029, [0.616, 0.032, 0.368]], [0.031, [0.625, 0.036, 0.374]], [0.033, [0.625, 0.036, 0.374]], [0.035, [0.633, 0.040, 0.381]], [0.037, [0.633, 0.040, 0.381]], [0.039, [0.641, 0.044, 0.388]], [0.041, [0.641, 0.044, 0.388]], [0.043, [0.650, 0.048, 0.394]], [0.045, [0.650, 0.048, 0.394]], [0.047, [0.658, 0.052, 0.401]], [0.049, [0.658, 0.052, 0.401]], [0.051, [0.667, 0.056, 0.408]], [0.053, [0.667, 0.056, 0.408]], [0.055, [0.675, 0.060, 0.414]], [0.057, [0.675, 0.060, 0.414]], [0.059, [0.684, 0.064, 0.421]], [0.061, [0.684, 0.064, 0.421]], [0.063, [0.692, 0.068, 0.427]], [0.065, [0.692, 0.068, 0.427]], [0.067, [0.701, 0.072, 0.434]], [0.068, [0.701, 0.072, 0.434]], [0.070, [0.709, 0.076, 0.441]], [0.072, [0.709, 0.076, 0.441]], [0.074, [0.718, 0.080, 0.447]], [0.076, [0.718, 0.080, 0.447]], [0.078, [0.726, 0.084, 0.454]], [0.080, [0.726, 0.084, 0.454]], [0.082, [0.734, 0.088, 0.460]], [0.084, [0.734, 0.088, 0.460]], [0.086, [0.743, 0.092, 0.467]], [0.088, [0.743, 0.092, 0.467]], [0.090, [0.751, 0.096, 0.474]], [0.092, [0.751, 0.096, 0.474]], [0.094, [0.760, 0.100, 0.480]], [0.096, [0.760, 0.100, 0.480]], [0.098, [0.768, 0.104, 0.487]], [0.100, [0.768, 0.104, 0.487]], [0.102, [0.774, 0.113, 0.494]], [0.104, [0.774, 0.113, 0.494]], [0.106, [0.778, 0.127, 0.501]], [0.108, [0.778, 0.127, 0.501]], [0.110, [0.782, 0.141, 0.509]], [0.112, [0.782, 0.141, 0.509]], [0.114, [0.786, 0.155, 0.517]], [0.115, [0.786, 0.155, 0.517]], [0.117, [0.790, 0.170, 0.524]], [0.119, [0.790, 0.170, 0.524]], [0.121, [0.794, 0.184, 0.532]], [0.123, [0.794, 0.184, 0.532]], [0.125, [0.798, 0.198, 0.539]], [0.127, [0.798, 0.198, 0.539]], [0.129, [0.801, 0.212, 0.547]], [0.131, [0.801, 0.212, 0.547]], [0.133, [0.805, 0.226, 0.554]], [0.135, [0.805, 0.226, 0.554]], [0.137, [0.809, 0.240, 0.562]], [0.139, [0.809, 0.240, 0.562]], [0.141, [0.813, 0.254, 0.569]], [0.143, [0.813, 0.254, 0.569]], [0.145, [0.817, 0.269, 0.577]], [0.147, [0.817, 0.269, 0.577]], [0.149, [0.821, 0.283, 0.584]], [0.151, [0.821, 0.283, 0.584]], [0.153, [0.824, 0.297, 0.592]], [0.155, [0.824, 0.297, 0.592]], [0.157, [0.828, 0.311, 0.599]], [0.159, [0.828, 0.311, 0.599]], [0.160, [0.832, 0.325, 0.607]], [0.162, [0.832, 0.325, 0.607]], [0.164, [0.836, 0.339, 0.615]], [0.166, [0.836, 0.339, 0.615]], [0.168, [0.840, 0.353, 0.622]], [0.170, [0.840, 0.353, 0.622]], [0.172, [0.844, 0.368, 0.630]], [0.174, [0.844, 0.368, 0.630]], [0.176, [0.848, 0.382, 0.637]], [0.178, [0.848, 0.382, 0.637]], [0.180, [0.851, 0.396, 0.645]], [0.182, [0.851, 0.396, 0.645]], [0.184, [0.855, 0.410, 0.652]], [0.186, [0.855, 0.410, 0.652]], [0.188, [0.859, 0.424, 0.660]], [0.190, [0.859, 0.424, 0.660]], [0.192, [0.863, 0.438, 0.667]], [0.194, [0.863, 0.438, 0.667]], [0.196, [0.867, 0.453, 0.675]], [0.198, [0.867, 0.453, 0.675]], [0.200, [0.871, 0.467, 0.682]], [0.202, [0.871, 0.467, 0.682]], [0.204, [0.874, 0.476, 0.689]], [0.205, [0.874, 0.476, 0.689]], [0.207, [0.876, 0.486, 0.696]], [0.209, [0.876, 0.486, 0.696]], [0.211, [0.879, 0.496, 0.703]], [0.213, [0.879, 0.496, 0.703]], [0.215, [0.882, 0.505, 0.709]], [0.217, [0.882, 0.505, 0.709]], [0.219, [0.885, 0.515, 0.716]], [0.221, [0.885, 0.515, 0.716]], [0.223, [0.888, 0.525, 0.723]], [0.225, [0.888, 0.525, 0.723]], [0.227, [0.891, 0.534, 0.730]], [0.229, [0.891, 0.534, 0.730]], [0.231, [0.894, 0.544, 0.736]], [0.233, [0.894, 0.544, 0.736]], [0.235, [0.897, 0.554, 0.743]], [0.237, [0.897, 0.554, 0.743]], [0.239, [0.900, 0.564, 0.750]], [0.241, [0.900, 0.564, 0.750]], [0.243, [0.903, 0.573, 0.757]], [0.245, [0.903, 0.573, 0.757]], [0.247, [0.906, 0.583, 0.764]], [0.249, [0.906, 0.583, 0.764]], [0.250, [0.909, 0.593, 0.770]], [0.252, [0.909, 0.593, 0.770]], [0.254, [0.911, 0.602, 0.777]], [0.256, [0.911, 0.602, 0.777]], [0.258, [0.914, 0.612, 0.784]], [0.260, [0.914, 0.612, 0.784]], [0.262, [0.917, 0.622, 0.791]], [0.264, [0.917, 0.622, 0.791]], [0.266, [0.920, 0.631, 0.797]], [0.268, [0.920, 0.631, 0.797]], [0.270, [0.923, 0.641, 0.804]], [0.272, [0.923, 0.641, 0.804]], [0.274, [0.926, 0.651, 0.811]], [0.276, [0.926, 0.651, 0.811]], [0.278, [0.929, 0.660, 0.818]], [0.280, [0.929, 0.660, 0.818]], [0.282, [0.932, 0.670, 0.824]], [0.284, [0.932, 0.670, 0.824]], [0.286, [0.935, 0.680, 0.831]], [0.288, [0.935, 0.680, 0.831]], [0.290, [0.938, 0.690, 0.838]], [0.292, [0.938, 0.690, 0.838]], [0.294, [0.941, 0.699, 0.845]], [0.295, [0.941, 0.699, 0.845]], [0.297, [0.944, 0.709, 0.852]], [0.299, [0.944, 0.709, 0.852]], [0.301, [0.946, 0.717, 0.857]], [0.303, [0.946, 0.717, 0.857]], [0.305, [0.948, 0.723, 0.860]], [0.307, [0.948, 0.723, 0.860]], [0.309, [0.950, 0.730, 0.863]], [0.311, [0.950, 0.730, 0.863]], [0.313, [0.952, 0.736, 0.866]], [0.315, [0.952, 0.736, 0.866]], [0.317, [0.953, 0.743, 0.869]], [0.319, [0.953, 0.743, 0.869]], [0.321, [0.955, 0.749, 0.873]], [0.323, [0.955, 0.749, 0.873]], [0.325, [0.957, 0.756, 0.876]], [0.327, [0.957, 0.756, 0.876]], [0.329, [0.959, 0.762, 0.879]], [0.331, [0.959, 0.762, 0.879]], [0.333, [0.961, 0.769, 0.882]], [0.335, [0.961, 0.769, 0.882]], [0.337, [0.963, 0.775, 0.886]], [0.339, [0.963, 0.775, 0.886]], [0.341, [0.964, 0.782, 0.889]], [0.342, [0.964, 0.782, 0.889]], [0.344, [0.966, 0.788, 0.892]], [0.346, [0.966, 0.788, 0.892]], [0.348, [0.968, 0.794, 0.895]], [0.350, [0.968, 0.794, 0.895]], [0.352, [0.970, 0.801, 0.899]], [0.354, [0.970, 0.801, 0.899]], [0.356, [0.972, 0.807, 0.902]], [0.358, [0.972, 0.807, 0.902]], [0.360, [0.974, 0.814, 0.905]], [0.362, [0.974, 0.814, 0.905]], [0.364, [0.976, 0.820, 0.908]], [0.366, [0.976, 0.820, 0.908]], [0.368, [0.977, 0.827, 0.911]], [0.370, [0.977, 0.827, 0.911]], [0.372, [0.979, 0.833, 0.915]], [0.374, [0.979, 0.833, 0.915]], [0.376, [0.981, 0.840, 0.918]], [0.378, [0.981, 0.840, 0.918]], [0.380, [0.983, 0.846, 0.921]], [0.382, [0.983, 0.846, 0.921]], [0.384, [0.985, 0.853, 0.924]], [0.386, [0.985, 0.853, 0.924]], [0.387, [0.987, 0.859, 0.928]], [0.389, [0.987, 0.859, 0.928]], [0.391, [0.988, 0.866, 0.931]], [0.393, [0.988, 0.866, 0.931]], [0.395, [0.990, 0.872, 0.934]], [0.397, [0.990, 0.872, 0.934]], [0.399, [0.992, 0.878, 0.937]], [0.401, [0.992, 0.878, 0.937]], [0.403, [0.991, 0.882, 0.938]], [0.405, [0.991, 0.882, 0.938]], [0.407, [0.990, 0.886, 0.940]], [0.409, [0.990, 0.886, 0.940]], [0.411, [0.989, 0.889, 0.941]], [0.413, [0.989, 0.889, 0.941]], [0.415, [0.988, 0.893, 0.942]], [0.417, [0.988, 0.893, 0.942]], [0.419, [0.988, 0.896, 0.943]], [0.421, [0.988, 0.896, 0.943]], [0.423, [0.987, 0.900, 0.945]], [0.425, [0.987, 0.900, 0.945]], [0.427, [0.986, 0.903, 0.946]], [0.429, [0.986, 0.903, 0.946]], [0.431, [0.985, 0.907, 0.947]], [0.432, [0.985, 0.907, 0.947]], [0.434, [0.984, 0.910, 0.948]], [0.436, [0.984, 0.910, 0.948]], [0.438, [0.983, 0.914, 0.950]], [0.440, [0.983, 0.914, 0.950]], [0.442, [0.982, 0.917, 0.951]], [0.444, [0.982, 0.917, 0.951]], [0.446, [0.981, 0.921, 0.952]], [0.448, [0.981, 0.921, 0.952]], [0.450, [0.980, 0.924, 0.953]], [0.452, [0.980, 0.924, 0.953]], [0.454, [0.979, 0.928, 0.954]], [0.456, [0.979, 0.928, 0.954]], [0.458, [0.978, 0.931, 0.956]], [0.460, [0.978, 0.931, 0.956]], [0.462, [0.977, 0.935, 0.957]], [0.464, [0.977, 0.935, 0.957]], [0.466, [0.976, 0.939, 0.958]], [0.468, [0.976, 0.939, 0.958]], [0.470, [0.976, 0.942, 0.959]], [0.472, [0.976, 0.942, 0.959]], [0.474, [0.975, 0.946, 0.961]], [0.476, [0.975, 0.946, 0.961]], [0.477, [0.974, 0.949, 0.962]], [0.479, [0.974, 0.949, 0.962]], [0.481, [0.973, 0.953, 0.963]], [0.483, [0.973, 0.953, 0.963]], [0.485, [0.972, 0.956, 0.964]], [0.487, [0.972, 0.956, 0.964]], [0.489, [0.971, 0.960, 0.966]], [0.491, [0.971, 0.960, 0.966]], [0.493, [0.970, 0.963, 0.967]], [0.495, [0.970, 0.963, 0.967]], [0.497, [0.969, 0.967, 0.968]], [0.499, [0.969, 0.967, 0.968]], [0.501, [0.967, 0.968, 0.966]], [0.503, [0.967, 0.968, 0.966]], [0.505, [0.965, 0.968, 0.960]], [0.507, [0.965, 0.968, 0.960]], [0.509, [0.962, 0.968, 0.954]], [0.511, [0.962, 0.968, 0.954]], [0.513, [0.959, 0.968, 0.948]], [0.515, [0.959, 0.968, 0.948]], [0.517, [0.957, 0.967, 0.942]], [0.519, [0.957, 0.967, 0.942]], [0.521, [0.954, 0.967, 0.936]], [0.523, [0.954, 0.967, 0.936]], [0.524, [0.952, 0.967, 0.930]], [0.526, [0.952, 0.967, 0.930]], [0.528, [0.949, 0.966, 0.924]], [0.530, [0.949, 0.966, 0.924]], [0.532, [0.946, 0.966, 0.918]], [0.534, [0.946, 0.966, 0.918]], [0.536, [0.944, 0.966, 0.912]], [0.538, [0.944, 0.966, 0.912]], [0.540, [0.941, 0.965, 0.906]], [0.542, [0.941, 0.965, 0.906]], [0.544, [0.939, 0.965, 0.900]], [0.546, [0.939, 0.965, 0.900]], [0.548, [0.936, 0.965, 0.894]], [0.550, [0.936, 0.965, 0.894]], [0.552, [0.933, 0.964, 0.888]], [0.554, [0.933, 0.964, 0.888]], [0.556, [0.931, 0.964, 0.882]], [0.558, [0.931, 0.964, 0.882]], [0.560, [0.928, 0.964, 0.876]], [0.562, [0.928, 0.964, 0.876]], [0.564, [0.925, 0.964, 0.870]], [0.566, [0.925, 0.964, 0.870]], [0.568, [0.923, 0.963, 0.864]], [0.569, [0.923, 0.963, 0.864]], [0.571, [0.920, 0.963, 0.858]], [0.573, [0.920, 0.963, 0.858]], [0.575, [0.918, 0.963, 0.852]], [0.577, [0.918, 0.963, 0.852]], [0.579, [0.915, 0.962, 0.846]], [0.581, [0.915, 0.962, 0.846]], [0.583, [0.912, 0.962, 0.840]], [0.585, [0.912, 0.962, 0.840]], [0.587, [0.910, 0.962, 0.834]], [0.589, [0.910, 0.962, 0.834]], [0.591, [0.907, 0.961, 0.828]], [0.593, [0.907, 0.961, 0.828]], [0.595, [0.905, 0.961, 0.822]], [0.597, [0.905, 0.961, 0.822]], [0.599, [0.902, 0.961, 0.816]], [0.601, [0.902, 0.961, 0.816]], [0.603, [0.895, 0.958, 0.804]], [0.605, [0.895, 0.958, 0.804]], [0.607, [0.888, 0.955, 0.793]], [0.609, [0.888, 0.955, 0.793]], [0.611, [0.881, 0.952, 0.782]], [0.613, [0.881, 0.952, 0.782]], [0.614, [0.874, 0.948, 0.770]], [0.616, [0.874, 0.948, 0.770]], [0.618, [0.867, 0.945, 0.759]], [0.620, [0.867, 0.945, 0.759]], [0.622, [0.860, 0.942, 0.747]], [0.624, [0.860, 0.942, 0.747]], [0.626, [0.852, 0.939, 0.736]], [0.628, [0.852, 0.939, 0.736]], [0.630, [0.845, 0.936, 0.725]], [0.632, [0.845, 0.936, 0.725]], [0.634, [0.838, 0.933, 0.713]], [0.636, [0.838, 0.933, 0.713]], [0.638, [0.831, 0.930, 0.702]], [0.640, [0.831, 0.930, 0.702]], [0.642, [0.824, 0.927, 0.691]], [0.644, [0.824, 0.927, 0.691]], [0.646, [0.817, 0.924, 0.679]], [0.648, [0.817, 0.924, 0.679]], [0.650, [0.810, 0.921, 0.668]], [0.652, [0.810, 0.921, 0.668]], [0.654, [0.803, 0.918, 0.656]], [0.656, [0.803, 0.918, 0.656]], [0.658, [0.796, 0.915, 0.645]], [0.659, [0.796, 0.915, 0.645]], [0.661, [0.789, 0.912, 0.634]], [0.663, [0.789, 0.912, 0.634]], [0.665, [0.782, 0.908, 0.622]], [0.667, [0.782, 0.908, 0.622]], [0.669, [0.775, 0.905, 0.611]], [0.671, [0.775, 0.905, 0.611]], [0.673, [0.768, 0.902, 0.599]], [0.675, [0.768, 0.902, 0.599]], [0.677, [0.760, 0.899, 0.588]], [0.679, [0.760, 0.899, 0.588]], [0.681, [0.753, 0.896, 0.577]], [0.683, [0.753, 0.896, 0.577]], [0.685, [0.746, 0.893, 0.565]], [0.687, [0.746, 0.893, 0.565]], [0.689, [0.739, 0.890, 0.554]], [0.691, [0.739, 0.890, 0.554]], [0.693, [0.732, 0.887, 0.543]], [0.695, [0.732, 0.887, 0.543]], [0.697, [0.725, 0.884, 0.531]], [0.699, [0.725, 0.884, 0.531]], [0.701, [0.717, 0.880, 0.520]], [0.703, [0.717, 0.880, 0.520]], [0.705, [0.708, 0.874, 0.510]], [0.706, [0.708, 0.874, 0.510]], [0.708, [0.700, 0.868, 0.499]], [0.710, [0.700, 0.868, 0.499]], [0.712, [0.691, 0.862, 0.488]], [0.714, [0.691, 0.862, 0.488]], [0.716, [0.682, 0.857, 0.478]], [0.718, [0.682, 0.857, 0.478]], [0.720, [0.673, 0.851, 0.467]], [0.722, [0.673, 0.851, 0.467]], [0.724, [0.665, 0.845, 0.457]], [0.726, [0.665, 0.845, 0.457]], [0.728, [0.656, 0.840, 0.446]], [0.730, [0.656, 0.840, 0.446]], [0.732, [0.647, 0.834, 0.435]], [0.734, [0.647, 0.834, 0.435]], [0.736, [0.638, 0.828, 0.425]], [0.738, [0.638, 0.828, 0.425]], [0.740, [0.630, 0.823, 0.414]], [0.742, [0.630, 0.823, 0.414]], [0.744, [0.621, 0.817, 0.403]], [0.746, [0.621, 0.817, 0.403]], [0.748, [0.612, 0.811, 0.393]], [0.750, [0.612, 0.811, 0.393]], [0.751, [0.603, 0.806, 0.382]], [0.753, [0.603, 0.806, 0.382]], [0.755, [0.594, 0.800, 0.372]], [0.757, [0.594, 0.800, 0.372]], [0.759, [0.586, 0.794, 0.361]], [0.761, [0.586, 0.794, 0.361]], [0.763, [0.577, 0.788, 0.350]], [0.765, [0.577, 0.788, 0.350]], [0.767, [0.568, 0.783, 0.340]], [0.769, [0.568, 0.783, 0.340]], [0.771, [0.559, 0.777, 0.329]], [0.773, [0.559, 0.777, 0.329]], [0.775, [0.551, 0.771, 0.319]], [0.777, [0.551, 0.771, 0.319]], [0.779, [0.542, 0.766, 0.308]], [0.781, [0.542, 0.766, 0.308]], [0.783, [0.533, 0.760, 0.297]], [0.785, [0.533, 0.760, 0.297]], [0.787, [0.524, 0.754, 0.287]], [0.789, [0.524, 0.754, 0.287]], [0.791, [0.516, 0.749, 0.276]], [0.793, [0.516, 0.749, 0.276]], [0.795, [0.507, 0.743, 0.266]], [0.796, [0.507, 0.743, 0.266]], [0.798, [0.498, 0.737, 0.255]], [0.800, [0.498, 0.737, 0.255]], [0.802, [0.490, 0.731, 0.250]], [0.804, [0.490, 0.731, 0.250]], [0.806, [0.483, 0.724, 0.245]], [0.808, [0.483, 0.724, 0.245]], [0.810, [0.475, 0.718, 0.240]], [0.812, [0.475, 0.718, 0.240]], [0.814, [0.467, 0.711, 0.235]], [0.816, [0.467, 0.711, 0.235]], [0.818, [0.460, 0.705, 0.230]], [0.820, [0.460, 0.705, 0.230]], [0.822, [0.452, 0.699, 0.225]], [0.824, [0.452, 0.699, 0.225]], [0.826, [0.444, 0.692, 0.220]], [0.828, [0.444, 0.692, 0.220]], [0.830, [0.437, 0.686, 0.216]], [0.832, [0.437, 0.686, 0.216]], [0.834, [0.429, 0.679, 0.211]], [0.836, [0.429, 0.679, 0.211]], [0.838, [0.421, 0.673, 0.206]], [0.840, [0.421, 0.673, 0.206]], [0.841, [0.413, 0.666, 0.201]], [0.843, [0.413, 0.666, 0.201]], [0.845, [0.406, 0.660, 0.196]], [0.847, [0.406, 0.660, 0.196]], [0.849, [0.398, 0.653, 0.191]], [0.851, [0.398, 0.653, 0.191]], [0.853, [0.390, 0.647, 0.186]], [0.855, [0.390, 0.647, 0.186]], [0.857, [0.383, 0.640, 0.181]], [0.859, [0.383, 0.640, 0.181]], [0.861, [0.375, 0.634, 0.176]], [0.863, [0.375, 0.634, 0.176]], [0.865, [0.367, 0.627, 0.171]], [0.867, [0.367, 0.627, 0.171]], [0.869, [0.360, 0.621, 0.166]], [0.871, [0.360, 0.621, 0.166]], [0.873, [0.352, 0.615, 0.161]], [0.875, [0.352, 0.615, 0.161]], [0.877, [0.344, 0.608, 0.156]], [0.879, [0.344, 0.608, 0.156]], [0.881, [0.337, 0.602, 0.152]], [0.883, [0.337, 0.602, 0.152]], [0.885, [0.329, 0.595, 0.147]], [0.886, [0.329, 0.595, 0.147]], [0.888, [0.321, 0.589, 0.142]], [0.890, [0.321, 0.589, 0.142]], [0.892, [0.313, 0.582, 0.137]], [0.894, [0.313, 0.582, 0.137]], [0.896, [0.306, 0.576, 0.132]], [0.898, [0.306, 0.576, 0.132]], [0.900, [0.299, 0.569, 0.129]], [0.902, [0.299, 0.569, 0.129]], [0.904, [0.293, 0.562, 0.128]], [0.906, [0.293, 0.562, 0.128]], [0.908, [0.287, 0.555, 0.126]], [0.910, [0.287, 0.555, 0.126]], [0.912, [0.282, 0.548, 0.125]], [0.914, [0.282, 0.548, 0.125]], [0.916, [0.276, 0.541, 0.124]], [0.918, [0.276, 0.541, 0.124]], [0.920, [0.270, 0.534, 0.123]], [0.922, [0.270, 0.534, 0.123]], [0.924, [0.264, 0.527, 0.121]], [0.926, [0.264, 0.527, 0.121]], [0.928, [0.258, 0.519, 0.120]], [0.930, [0.258, 0.519, 0.120]], [0.932, [0.252, 0.512, 0.119]], [0.933, [0.252, 0.512, 0.119]], [0.935, [0.246, 0.505, 0.118]], [0.937, [0.246, 0.505, 0.118]], [0.939, [0.241, 0.498, 0.116]], [0.941, [0.241, 0.498, 0.116]], [0.943, [0.235, 0.491, 0.115]], [0.945, [0.235, 0.491, 0.115]], [0.947, [0.229, 0.484, 0.114]], [0.949, [0.229, 0.484, 0.114]], [0.951, [0.223, 0.477, 0.113]], [0.953, [0.223, 0.477, 0.113]], [0.955, [0.217, 0.470, 0.112]], [0.957, [0.217, 0.470, 0.112]], [0.959, [0.211, 0.463, 0.110]], [0.961, [0.211, 0.463, 0.110]], [0.963, [0.206, 0.456, 0.109]], [0.965, [0.206, 0.456, 0.109]], [0.967, [0.200, 0.449, 0.108]], [0.969, [0.200, 0.449, 0.108]], [0.971, [0.194, 0.442, 0.107]], [0.973, [0.194, 0.442, 0.107]], [0.975, [0.188, 0.435, 0.105]], [0.977, [0.188, 0.435, 0.105]], [0.978, [0.182, 0.428, 0.104]], [0.980, [0.182, 0.428, 0.104]], [0.982, [0.176, 0.420, 0.103]], [0.984, [0.176, 0.420, 0.103]], [0.986, [0.170, 0.413, 0.102]], [0.988, [0.170, 0.413, 0.102]], [0.990, [0.165, 0.406, 0.100]], [0.992, [0.165, 0.406, 0.100]], [0.994, [0.159, 0.399, 0.099]], [0.996, [0.159, 0.399, 0.099]], [0.998, [0.153, 0.392, 0.098]], [1.000, [0.153, 0.392, 0.098]]];
+var PuOr = [[0.000, [0.498, 0.231, 0.031]], [0.002, [0.498, 0.231, 0.031]], [0.004, [0.506, 0.236, 0.031]], [0.006, [0.506, 0.236, 0.031]], [0.008, [0.514, 0.240, 0.031]], [0.010, [0.514, 0.240, 0.031]], [0.012, [0.522, 0.245, 0.030]], [0.014, [0.522, 0.245, 0.030]], [0.016, [0.530, 0.249, 0.030]], [0.018, [0.530, 0.249, 0.030]], [0.020, [0.538, 0.254, 0.030]], [0.022, [0.538, 0.254, 0.030]], [0.023, [0.546, 0.258, 0.030]], [0.025, [0.546, 0.258, 0.030]], [0.027, [0.554, 0.263, 0.029]], [0.029, [0.554, 0.263, 0.029]], [0.031, [0.562, 0.267, 0.029]], [0.033, [0.562, 0.267, 0.029]], [0.035, [0.570, 0.272, 0.029]], [0.037, [0.570, 0.272, 0.029]], [0.039, [0.578, 0.276, 0.028]], [0.041, [0.578, 0.276, 0.028]], [0.043, [0.586, 0.280, 0.028]], [0.045, [0.586, 0.280, 0.028]], [0.047, [0.594, 0.285, 0.028]], [0.049, [0.594, 0.285, 0.028]], [0.051, [0.602, 0.289, 0.027]], [0.053, [0.602, 0.289, 0.027]], [0.055, [0.610, 0.294, 0.027]], [0.057, [0.610, 0.294, 0.027]], [0.059, [0.618, 0.298, 0.027]], [0.061, [0.618, 0.298, 0.027]], [0.063, [0.626, 0.303, 0.026]], [0.065, [0.626, 0.303, 0.026]], [0.067, [0.634, 0.307, 0.026]], [0.068, [0.634, 0.307, 0.026]], [0.070, [0.642, 0.312, 0.026]], [0.072, [0.642, 0.312, 0.026]], [0.074, [0.650, 0.316, 0.026]], [0.076, [0.650, 0.316, 0.026]], [0.078, [0.658, 0.321, 0.025]], [0.080, [0.658, 0.321, 0.025]], [0.082, [0.666, 0.325, 0.025]], [0.084, [0.666, 0.325, 0.025]], [0.086, [0.674, 0.329, 0.025]], [0.088, [0.674, 0.329, 0.025]], [0.090, [0.682, 0.334, 0.024]], [0.092, [0.682, 0.334, 0.024]], [0.094, [0.690, 0.338, 0.024]], [0.096, [0.690, 0.338, 0.024]], [0.098, [0.698, 0.343, 0.024]], [0.100, [0.698, 0.343, 0.024]], [0.102, [0.705, 0.348, 0.025]], [0.104, [0.705, 0.348, 0.025]], [0.106, [0.712, 0.355, 0.027]], [0.108, [0.712, 0.355, 0.027]], [0.110, [0.719, 0.361, 0.029]], [0.112, [0.719, 0.361, 0.029]], [0.114, [0.726, 0.368, 0.031]], [0.115, [0.726, 0.368, 0.031]], [0.117, [0.733, 0.374, 0.033]], [0.119, [0.733, 0.374, 0.033]], [0.121, [0.740, 0.381, 0.035]], [0.123, [0.740, 0.381, 0.035]], [0.125, [0.747, 0.387, 0.038]], [0.127, [0.747, 0.387, 0.038]], [0.129, [0.754, 0.394, 0.040]], [0.131, [0.754, 0.394, 0.040]], [0.133, [0.761, 0.400, 0.042]], [0.135, [0.761, 0.400, 0.042]], [0.137, [0.768, 0.406, 0.044]], [0.139, [0.768, 0.406, 0.044]], [0.141, [0.775, 0.413, 0.046]], [0.143, [0.775, 0.413, 0.046]], [0.145, [0.782, 0.419, 0.048]], [0.147, [0.782, 0.419, 0.048]], [0.149, [0.788, 0.426, 0.050]], [0.151, [0.788, 0.426, 0.050]], [0.153, [0.795, 0.432, 0.053]], [0.155, [0.795, 0.432, 0.053]], [0.157, [0.802, 0.439, 0.055]], [0.159, [0.802, 0.439, 0.055]], [0.160, [0.809, 0.445, 0.057]], [0.162, [0.809, 0.445, 0.057]], [0.164, [0.816, 0.452, 0.059]], [0.166, [0.816, 0.452, 0.059]], [0.168, [0.823, 0.458, 0.061]], [0.170, [0.823, 0.458, 0.061]], [0.172, [0.830, 0.465, 0.063]], [0.174, [0.830, 0.465, 0.063]], [0.176, [0.837, 0.471, 0.066]], [0.178, [0.837, 0.471, 0.066]], [0.180, [0.844, 0.478, 0.068]], [0.182, [0.844, 0.478, 0.068]], [0.184, [0.851, 0.484, 0.070]], [0.186, [0.851, 0.484, 0.070]], [0.188, [0.858, 0.490, 0.072]], [0.190, [0.858, 0.490, 0.072]], [0.192, [0.865, 0.497, 0.074]], [0.194, [0.865, 0.497, 0.074]], [0.196, [0.872, 0.503, 0.076]], [0.198, [0.872, 0.503, 0.076]], [0.200, [0.878, 0.510, 0.078]], [0.202, [0.878, 0.510, 0.078]], [0.204, [0.883, 0.518, 0.091]], [0.205, [0.883, 0.518, 0.091]], [0.207, [0.887, 0.526, 0.103]], [0.209, [0.887, 0.526, 0.103]], [0.211, [0.892, 0.535, 0.115]], [0.213, [0.892, 0.535, 0.115]], [0.215, [0.896, 0.543, 0.127]], [0.217, [0.896, 0.543, 0.127]], [0.219, [0.901, 0.551, 0.139]], [0.221, [0.901, 0.551, 0.139]], [0.223, [0.905, 0.560, 0.151]], [0.225, [0.905, 0.560, 0.151]], [0.227, [0.910, 0.568, 0.163]], [0.229, [0.910, 0.568, 0.163]], [0.231, [0.914, 0.576, 0.176]], [0.233, [0.914, 0.576, 0.176]], [0.235, [0.919, 0.585, 0.188]], [0.237, [0.919, 0.585, 0.188]], [0.239, [0.923, 0.593, 0.200]], [0.241, [0.923, 0.593, 0.200]], [0.243, [0.927, 0.601, 0.212]], [0.245, [0.927, 0.601, 0.212]], [0.247, [0.932, 0.609, 0.224]], [0.249, [0.932, 0.609, 0.224]], [0.250, [0.936, 0.618, 0.236]], [0.252, [0.936, 0.618, 0.236]], [0.254, [0.941, 0.626, 0.249]], [0.256, [0.941, 0.626, 0.249]], [0.258, [0.945, 0.634, 0.261]], [0.260, [0.945, 0.634, 0.261]], [0.262, [0.950, 0.643, 0.273]], [0.264, [0.950, 0.643, 0.273]], [0.266, [0.954, 0.651, 0.285]], [0.268, [0.954, 0.651, 0.285]], [0.270, [0.959, 0.659, 0.297]], [0.272, [0.959, 0.659, 0.297]], [0.274, [0.963, 0.668, 0.309]], [0.276, [0.963, 0.668, 0.309]], [0.278, [0.968, 0.676, 0.321]], [0.280, [0.968, 0.676, 0.321]], [0.282, [0.972, 0.684, 0.334]], [0.284, [0.972, 0.684, 0.334]], [0.286, [0.977, 0.693, 0.346]], [0.288, [0.977, 0.693, 0.346]], [0.290, [0.981, 0.701, 0.358]], [0.292, [0.981, 0.701, 0.358]], [0.294, [0.985, 0.709, 0.370]], [0.295, [0.985, 0.709, 0.370]], [0.297, [0.990, 0.717, 0.382]], [0.299, [0.990, 0.717, 0.382]], [0.301, [0.992, 0.725, 0.395]], [0.303, [0.992, 0.725, 0.395]], [0.305, [0.992, 0.731, 0.407]], [0.307, [0.992, 0.731, 0.407]], [0.309, [0.993, 0.737, 0.420]], [0.311, [0.993, 0.737, 0.420]], [0.313, [0.993, 0.743, 0.433]], [0.315, [0.993, 0.743, 0.433]], [0.317, [0.993, 0.749, 0.446]], [0.319, [0.993, 0.749, 0.446]], [0.321, [0.993, 0.755, 0.458]], [0.323, [0.993, 0.755, 0.458]], [0.325, [0.993, 0.762, 0.471]], [0.327, [0.993, 0.762, 0.471]], [0.329, [0.993, 0.768, 0.484]], [0.331, [0.993, 0.768, 0.484]], [0.333, [0.993, 0.774, 0.497]], [0.335, [0.993, 0.774, 0.497]], [0.337, [0.994, 0.780, 0.509]], [0.339, [0.994, 0.780, 0.509]], [0.341, [0.994, 0.786, 0.522]], [0.342, [0.994, 0.786, 0.522]], [0.344, [0.994, 0.792, 0.535]], [0.346, [0.994, 0.792, 0.535]], [0.348, [0.994, 0.798, 0.548]], [0.350, [0.994, 0.798, 0.548]], [0.352, [0.994, 0.805, 0.561]], [0.354, [0.994, 0.805, 0.561]], [0.356, [0.994, 0.811, 0.573]], [0.358, [0.994, 0.811, 0.573]], [0.360, [0.995, 0.817, 0.586]], [0.362, [0.995, 0.817, 0.586]], [0.364, [0.995, 0.823, 0.599]], [0.366, [0.995, 0.823, 0.599]], [0.368, [0.995, 0.829, 0.612]], [0.370, [0.995, 0.829, 0.612]], [0.372, [0.995, 0.835, 0.624]], [0.374, [0.995, 0.835, 0.624]], [0.376, [0.995, 0.842, 0.637]], [0.378, [0.995, 0.842, 0.637]], [0.380, [0.995, 0.848, 0.650]], [0.382, [0.995, 0.848, 0.650]], [0.384, [0.995, 0.854, 0.663]], [0.386, [0.995, 0.854, 0.663]], [0.387, [0.996, 0.860, 0.675]], [0.389, [0.996, 0.860, 0.675]], [0.391, [0.996, 0.866, 0.688]], [0.393, [0.996, 0.866, 0.688]], [0.395, [0.996, 0.872, 0.701]], [0.397, [0.996, 0.872, 0.701]], [0.399, [0.996, 0.878, 0.714]], [0.401, [0.996, 0.878, 0.714]], [0.403, [0.995, 0.882, 0.724]], [0.405, [0.995, 0.882, 0.724]], [0.407, [0.994, 0.886, 0.734]], [0.409, [0.994, 0.886, 0.734]], [0.411, [0.993, 0.889, 0.744]], [0.413, [0.993, 0.889, 0.744]], [0.415, [0.992, 0.893, 0.754]], [0.417, [0.992, 0.893, 0.754]], [0.419, [0.991, 0.896, 0.764]], [0.421, [0.991, 0.896, 0.764]], [0.423, [0.990, 0.900, 0.774]], [0.425, [0.990, 0.900, 0.774]], [0.427, [0.989, 0.903, 0.784]], [0.429, [0.989, 0.903, 0.784]], [0.431, [0.987, 0.907, 0.794]], [0.432, [0.987, 0.907, 0.794]], [0.434, [0.986, 0.910, 0.804]], [0.436, [0.986, 0.910, 0.804]], [0.438, [0.985, 0.914, 0.814]], [0.440, [0.985, 0.914, 0.814]], [0.442, [0.984, 0.917, 0.824]], [0.444, [0.984, 0.917, 0.824]], [0.446, [0.983, 0.921, 0.834]], [0.448, [0.983, 0.921, 0.834]], [0.450, [0.982, 0.924, 0.844]], [0.452, [0.982, 0.924, 0.844]], [0.454, [0.981, 0.928, 0.854]], [0.456, [0.981, 0.928, 0.854]], [0.458, [0.980, 0.931, 0.864]], [0.460, [0.980, 0.931, 0.864]], [0.462, [0.979, 0.935, 0.874]], [0.464, [0.979, 0.935, 0.874]], [0.466, [0.978, 0.939, 0.884]], [0.468, [0.978, 0.939, 0.884]], [0.470, [0.977, 0.942, 0.894]], [0.472, [0.977, 0.942, 0.894]], [0.474, [0.976, 0.946, 0.904]], [0.476, [0.976, 0.946, 0.904]], [0.477, [0.975, 0.949, 0.914]], [0.479, [0.975, 0.949, 0.914]], [0.481, [0.973, 0.953, 0.924]], [0.483, [0.973, 0.953, 0.924]], [0.485, [0.972, 0.956, 0.934]], [0.487, [0.972, 0.956, 0.934]], [0.489, [0.971, 0.960, 0.944]], [0.491, [0.971, 0.960, 0.944]], [0.493, [0.970, 0.963, 0.954]], [0.495, [0.970, 0.963, 0.954]], [0.497, [0.969, 0.967, 0.964]], [0.499, [0.969, 0.967, 0.964]], [0.501, [0.966, 0.966, 0.968]], [0.503, [0.966, 0.966, 0.968]], [0.505, [0.961, 0.962, 0.966]], [0.507, [0.961, 0.962, 0.966]], [0.509, [0.957, 0.957, 0.964]], [0.511, [0.957, 0.957, 0.964]], [0.513, [0.952, 0.953, 0.962]], [0.515, [0.952, 0.953, 0.962]], [0.517, [0.947, 0.949, 0.960]], [0.519, [0.947, 0.949, 0.960]], [0.521, [0.942, 0.944, 0.958]], [0.523, [0.942, 0.944, 0.958]], [0.524, [0.938, 0.940, 0.957]], [0.526, [0.938, 0.940, 0.957]], [0.528, [0.933, 0.935, 0.955]], [0.530, [0.933, 0.935, 0.955]], [0.532, [0.928, 0.931, 0.953]], [0.534, [0.928, 0.931, 0.953]], [0.536, [0.923, 0.926, 0.951]], [0.538, [0.923, 0.926, 0.951]], [0.540, [0.919, 0.922, 0.949]], [0.542, [0.919, 0.922, 0.949]], [0.544, [0.914, 0.917, 0.947]], [0.546, [0.914, 0.917, 0.947]], [0.548, [0.909, 0.913, 0.946]], [0.550, [0.909, 0.913, 0.946]], [0.552, [0.904, 0.908, 0.944]], [0.554, [0.904, 0.908, 0.944]], [0.556, [0.900, 0.904, 0.942]], [0.558, [0.900, 0.904, 0.942]], [0.560, [0.895, 0.900, 0.940]], [0.562, [0.895, 0.900, 0.940]], [0.564, [0.890, 0.895, 0.938]], [0.566, [0.890, 0.895, 0.938]], [0.568, [0.885, 0.891, 0.936]], [0.569, [0.885, 0.891, 0.936]], [0.571, [0.880, 0.886, 0.934]], [0.573, [0.880, 0.886, 0.934]], [0.575, [0.876, 0.882, 0.933]], [0.577, [0.876, 0.882, 0.933]], [0.579, [0.871, 0.877, 0.931]], [0.581, [0.871, 0.877, 0.931]], [0.583, [0.866, 0.873, 0.929]], [0.585, [0.866, 0.873, 0.929]], [0.587, [0.861, 0.868, 0.927]], [0.589, [0.861, 0.868, 0.927]], [0.591, [0.857, 0.864, 0.925]], [0.593, [0.857, 0.864, 0.925]], [0.595, [0.852, 0.859, 0.923]], [0.597, [0.852, 0.859, 0.923]], [0.599, [0.847, 0.855, 0.922]], [0.601, [0.847, 0.855, 0.922]], [0.603, [0.841, 0.848, 0.918]], [0.605, [0.841, 0.848, 0.918]], [0.607, [0.835, 0.840, 0.914]], [0.609, [0.835, 0.840, 0.914]], [0.611, [0.830, 0.833, 0.910]], [0.613, [0.830, 0.833, 0.910]], [0.614, [0.824, 0.826, 0.906]], [0.616, [0.824, 0.826, 0.906]], [0.618, [0.818, 0.819, 0.902]], [0.620, [0.818, 0.819, 0.902]], [0.622, [0.812, 0.812, 0.899]], [0.624, [0.812, 0.812, 0.899]], [0.626, [0.806, 0.804, 0.895]], [0.628, [0.806, 0.804, 0.895]], [0.630, [0.800, 0.797, 0.891]], [0.632, [0.800, 0.797, 0.891]], [0.634, [0.794, 0.790, 0.887]], [0.636, [0.794, 0.790, 0.887]], [0.638, [0.789, 0.783, 0.883]], [0.640, [0.789, 0.783, 0.883]], [0.642, [0.783, 0.775, 0.879]], [0.644, [0.783, 0.775, 0.879]], [0.646, [0.777, 0.768, 0.875]], [0.648, [0.777, 0.768, 0.875]], [0.650, [0.771, 0.761, 0.872]], [0.652, [0.771, 0.761, 0.872]], [0.654, [0.765, 0.754, 0.868]], [0.656, [0.765, 0.754, 0.868]], [0.658, [0.759, 0.746, 0.864]], [0.659, [0.759, 0.746, 0.864]], [0.661, [0.754, 0.739, 0.860]], [0.663, [0.754, 0.739, 0.860]], [0.665, [0.748, 0.732, 0.856]], [0.667, [0.748, 0.732, 0.856]], [0.669, [0.742, 0.725, 0.852]], [0.671, [0.742, 0.725, 0.852]], [0.673, [0.736, 0.718, 0.849]], [0.675, [0.736, 0.718, 0.849]], [0.677, [0.730, 0.710, 0.845]], [0.679, [0.730, 0.710, 0.845]], [0.681, [0.724, 0.703, 0.841]], [0.683, [0.724, 0.703, 0.841]], [0.685, [0.718, 0.696, 0.837]], [0.687, [0.718, 0.696, 0.837]], [0.689, [0.713, 0.689, 0.833]], [0.691, [0.713, 0.689, 0.833]], [0.693, [0.707, 0.681, 0.829]], [0.695, [0.707, 0.681, 0.829]], [0.697, [0.701, 0.674, 0.825]], [0.699, [0.701, 0.674, 0.825]], [0.701, [0.694, 0.666, 0.821]], [0.703, [0.694, 0.666, 0.821]], [0.705, [0.687, 0.658, 0.815]], [0.706, [0.687, 0.658, 0.815]], [0.708, [0.679, 0.649, 0.809]], [0.710, [0.679, 0.649, 0.809]], [0.712, [0.671, 0.640, 0.803]], [0.714, [0.671, 0.640, 0.803]], [0.716, [0.663, 0.632, 0.797]], [0.718, [0.663, 0.632, 0.797]], [0.720, [0.656, 0.623, 0.791]], [0.722, [0.656, 0.623, 0.791]], [0.724, [0.648, 0.615, 0.786]], [0.726, [0.648, 0.615, 0.786]], [0.728, [0.640, 0.606, 0.780]], [0.730, [0.640, 0.606, 0.780]], [0.732, [0.633, 0.597, 0.774]], [0.734, [0.633, 0.597, 0.774]], [0.736, [0.625, 0.589, 0.768]], [0.738, [0.625, 0.589, 0.768]], [0.740, [0.617, 0.580, 0.762]], [0.742, [0.617, 0.580, 0.762]], [0.744, [0.610, 0.572, 0.756]], [0.746, [0.610, 0.572, 0.756]], [0.748, [0.602, 0.563, 0.750]], [0.750, [0.602, 0.563, 0.750]], [0.751, [0.594, 0.554, 0.745]], [0.753, [0.594, 0.554, 0.745]], [0.755, [0.587, 0.546, 0.739]], [0.757, [0.587, 0.546, 0.739]], [0.759, [0.579, 0.537, 0.733]], [0.761, [0.579, 0.537, 0.733]], [0.763, [0.571, 0.528, 0.727]], [0.765, [0.571, 0.528, 0.727]], [0.767, [0.563, 0.520, 0.721]], [0.769, [0.563, 0.520, 0.721]], [0.771, [0.556, 0.511, 0.715]], [0.773, [0.556, 0.511, 0.715]], [0.775, [0.548, 0.503, 0.710]], [0.777, [0.548, 0.503, 0.710]], [0.779, [0.540, 0.494, 0.704]], [0.781, [0.540, 0.494, 0.704]], [0.783, [0.533, 0.485, 0.698]], [0.785, [0.533, 0.485, 0.698]], [0.787, [0.525, 0.477, 0.692]], [0.789, [0.525, 0.477, 0.692]], [0.791, [0.517, 0.468, 0.686]], [0.793, [0.517, 0.468, 0.686]], [0.795, [0.510, 0.460, 0.680]], [0.796, [0.510, 0.460, 0.680]], [0.798, [0.502, 0.451, 0.675]], [0.800, [0.502, 0.451, 0.675]], [0.802, [0.495, 0.439, 0.669]], [0.804, [0.495, 0.439, 0.669]], [0.806, [0.488, 0.428, 0.663]], [0.808, [0.488, 0.428, 0.663]], [0.810, [0.482, 0.416, 0.658]], [0.812, [0.482, 0.416, 0.658]], [0.814, [0.475, 0.404, 0.652]], [0.816, [0.475, 0.404, 0.652]], [0.818, [0.468, 0.393, 0.647]], [0.820, [0.468, 0.393, 0.647]], [0.822, [0.461, 0.381, 0.641]], [0.824, [0.461, 0.381, 0.641]], [0.826, [0.455, 0.369, 0.636]], [0.828, [0.455, 0.369, 0.636]], [0.830, [0.448, 0.357, 0.630]], [0.832, [0.448, 0.357, 0.630]], [0.834, [0.441, 0.346, 0.625]], [0.836, [0.441, 0.346, 0.625]], [0.838, [0.434, 0.334, 0.619]], [0.840, [0.434, 0.334, 0.619]], [0.841, [0.428, 0.322, 0.614]], [0.843, [0.428, 0.322, 0.614]], [0.845, [0.421, 0.311, 0.608]], [0.847, [0.421, 0.311, 0.608]], [0.849, [0.414, 0.299, 0.603]], [0.851, [0.414, 0.299, 0.603]], [0.853, [0.407, 0.287, 0.597]], [0.855, [0.407, 0.287, 0.597]], [0.857, [0.400, 0.276, 0.591]], [0.859, [0.400, 0.276, 0.591]], [0.861, [0.394, 0.264, 0.586]], [0.863, [0.394, 0.264, 0.586]], [0.865, [0.387, 0.252, 0.580]], [0.867, [0.387, 0.252, 0.580]], [0.869, [0.380, 0.241, 0.575]], [0.871, [0.380, 0.241, 0.575]], [0.873, [0.373, 0.229, 0.569]], [0.875, [0.373, 0.229, 0.569]], [0.877, [0.367, 0.217, 0.564]], [0.879, [0.367, 0.217, 0.564]], [0.881, [0.360, 0.206, 0.558]], [0.883, [0.360, 0.206, 0.558]], [0.885, [0.353, 0.194, 0.553]], [0.886, [0.353, 0.194, 0.553]], [0.888, [0.346, 0.182, 0.547]], [0.890, [0.346, 0.182, 0.547]], [0.892, [0.340, 0.170, 0.542]], [0.894, [0.340, 0.170, 0.542]], [0.896, [0.333, 0.159, 0.536]], [0.898, [0.333, 0.159, 0.536]], [0.900, [0.326, 0.150, 0.529]], [0.902, [0.326, 0.150, 0.529]], [0.904, [0.320, 0.144, 0.519]], [0.906, [0.320, 0.144, 0.519]], [0.908, [0.314, 0.138, 0.510]], [0.910, [0.314, 0.138, 0.510]], [0.912, [0.308, 0.132, 0.500]], [0.914, [0.308, 0.132, 0.500]], [0.916, [0.302, 0.126, 0.491]], [0.918, [0.302, 0.126, 0.491]], [0.920, [0.296, 0.120, 0.482]], [0.922, [0.296, 0.120, 0.482]], [0.924, [0.290, 0.114, 0.472]], [0.926, [0.290, 0.114, 0.472]], [0.928, [0.284, 0.108, 0.463]], [0.930, [0.284, 0.108, 0.463]], [0.932, [0.278, 0.102, 0.454]], [0.933, [0.278, 0.102, 0.454]], [0.935, [0.272, 0.096, 0.444]], [0.937, [0.272, 0.096, 0.444]], [0.939, [0.266, 0.090, 0.435]], [0.941, [0.266, 0.090, 0.435]], [0.943, [0.260, 0.084, 0.425]], [0.945, [0.260, 0.084, 0.425]], [0.947, [0.254, 0.078, 0.416]], [0.949, [0.254, 0.078, 0.416]], [0.951, [0.248, 0.072, 0.407]], [0.953, [0.248, 0.072, 0.407]], [0.955, [0.242, 0.066, 0.397]], [0.957, [0.242, 0.066, 0.397]], [0.959, [0.236, 0.060, 0.388]], [0.961, [0.236, 0.060, 0.388]], [0.963, [0.230, 0.054, 0.379]], [0.965, [0.230, 0.054, 0.379]], [0.967, [0.224, 0.048, 0.369]], [0.969, [0.224, 0.048, 0.369]], [0.971, [0.218, 0.042, 0.360]], [0.973, [0.218, 0.042, 0.360]], [0.975, [0.212, 0.036, 0.350]], [0.977, [0.212, 0.036, 0.350]], [0.978, [0.206, 0.030, 0.341]], [0.980, [0.206, 0.030, 0.341]], [0.982, [0.200, 0.024, 0.332]], [0.984, [0.200, 0.024, 0.332]], [0.986, [0.194, 0.018, 0.322]], [0.988, [0.194, 0.018, 0.322]], [0.990, [0.188, 0.012, 0.313]], [0.992, [0.188, 0.012, 0.313]], [0.994, [0.182, 0.006, 0.303]], [0.996, [0.182, 0.006, 0.303]], [0.998, [0.176, 0.000, 0.294]], [1.000, [0.176, 0.000, 0.294]]];
+var RdBu = [[0.000, [0.404, 0.000, 0.122]], [0.002, [0.404, 0.000, 0.122]], [0.004, [0.415, 0.004, 0.123]], [0.006, [0.415, 0.004, 0.123]], [0.008, [0.427, 0.007, 0.125]], [0.010, [0.427, 0.007, 0.125]], [0.012, [0.439, 0.011, 0.127]], [0.014, [0.439, 0.011, 0.127]], [0.016, [0.450, 0.015, 0.129]], [0.018, [0.450, 0.015, 0.129]], [0.020, [0.462, 0.018, 0.131]], [0.022, [0.462, 0.018, 0.131]], [0.023, [0.473, 0.022, 0.133]], [0.025, [0.473, 0.022, 0.133]], [0.027, [0.485, 0.026, 0.134]], [0.029, [0.485, 0.026, 0.134]], [0.031, [0.496, 0.030, 0.136]], [0.033, [0.496, 0.030, 0.136]], [0.035, [0.508, 0.033, 0.138]], [0.037, [0.508, 0.033, 0.138]], [0.039, [0.519, 0.037, 0.140]], [0.041, [0.519, 0.037, 0.140]], [0.043, [0.531, 0.041, 0.142]], [0.045, [0.531, 0.041, 0.142]], [0.047, [0.542, 0.044, 0.144]], [0.049, [0.542, 0.044, 0.144]], [0.051, [0.554, 0.048, 0.146]], [0.053, [0.554, 0.048, 0.146]], [0.055, [0.565, 0.052, 0.147]], [0.057, [0.565, 0.052, 0.147]], [0.059, [0.577, 0.055, 0.149]], [0.061, [0.577, 0.055, 0.149]], [0.063, [0.588, 0.059, 0.151]], [0.065, [0.588, 0.059, 0.151]], [0.067, [0.600, 0.063, 0.153]], [0.068, [0.600, 0.063, 0.153]], [0.070, [0.612, 0.066, 0.155]], [0.072, [0.612, 0.066, 0.155]], [0.074, [0.623, 0.070, 0.157]], [0.076, [0.623, 0.070, 0.157]], [0.078, [0.635, 0.074, 0.158]], [0.080, [0.635, 0.074, 0.158]], [0.082, [0.646, 0.078, 0.160]], [0.084, [0.646, 0.078, 0.160]], [0.086, [0.658, 0.081, 0.162]], [0.088, [0.658, 0.081, 0.162]], [0.090, [0.669, 0.085, 0.164]], [0.092, [0.669, 0.085, 0.164]], [0.094, [0.681, 0.089, 0.166]], [0.096, [0.681, 0.089, 0.166]], [0.098, [0.692, 0.092, 0.168]], [0.100, [0.692, 0.092, 0.168]], [0.102, [0.701, 0.100, 0.171]], [0.104, [0.701, 0.100, 0.171]], [0.106, [0.706, 0.111, 0.176]], [0.108, [0.706, 0.111, 0.176]], [0.110, [0.712, 0.122, 0.182]], [0.112, [0.712, 0.122, 0.182]], [0.114, [0.717, 0.133, 0.187]], [0.115, [0.717, 0.133, 0.187]], [0.117, [0.723, 0.144, 0.192]], [0.119, [0.723, 0.144, 0.192]], [0.121, [0.728, 0.155, 0.197]], [0.123, [0.728, 0.155, 0.197]], [0.125, [0.734, 0.166, 0.203]], [0.127, [0.734, 0.166, 0.203]], [0.129, [0.740, 0.177, 0.208]], [0.131, [0.740, 0.177, 0.208]], [0.133, [0.745, 0.188, 0.213]], [0.135, [0.745, 0.188, 0.213]], [0.137, [0.751, 0.199, 0.218]], [0.139, [0.751, 0.199, 0.218]], [0.141, [0.756, 0.210, 0.224]], [0.143, [0.756, 0.210, 0.224]], [0.145, [0.762, 0.221, 0.229]], [0.147, [0.762, 0.221, 0.229]], [0.149, [0.767, 0.233, 0.234]], [0.151, [0.767, 0.233, 0.234]], [0.153, [0.773, 0.244, 0.239]], [0.155, [0.773, 0.244, 0.239]], [0.157, [0.778, 0.255, 0.244]], [0.159, [0.778, 0.255, 0.244]], [0.160, [0.784, 0.266, 0.250]], [0.162, [0.784, 0.266, 0.250]], [0.164, [0.789, 0.277, 0.255]], [0.166, [0.789, 0.277, 0.255]], [0.168, [0.795, 0.288, 0.260]], [0.170, [0.795, 0.288, 0.260]], [0.172, [0.800, 0.299, 0.265]], [0.174, [0.800, 0.299, 0.265]], [0.176, [0.806, 0.310, 0.271]], [0.178, [0.806, 0.310, 0.271]], [0.180, [0.812, 0.321, 0.276]], [0.182, [0.812, 0.321, 0.276]], [0.184, [0.817, 0.332, 0.281]], [0.186, [0.817, 0.332, 0.281]], [0.188, [0.823, 0.343, 0.286]], [0.190, [0.823, 0.343, 0.286]], [0.192, [0.828, 0.354, 0.292]], [0.194, [0.828, 0.354, 0.292]], [0.196, [0.834, 0.365, 0.297]], [0.198, [0.834, 0.365, 0.297]], [0.200, [0.839, 0.376, 0.302]], [0.202, [0.839, 0.376, 0.302]], [0.204, [0.844, 0.387, 0.310]], [0.205, [0.844, 0.387, 0.310]], [0.207, [0.848, 0.398, 0.318]], [0.209, [0.848, 0.398, 0.318]], [0.211, [0.853, 0.408, 0.326]], [0.213, [0.853, 0.408, 0.326]], [0.215, [0.858, 0.419, 0.335]], [0.217, [0.858, 0.419, 0.335]], [0.219, [0.862, 0.430, 0.343]], [0.221, [0.862, 0.430, 0.343]], [0.223, [0.867, 0.440, 0.351]], [0.225, [0.867, 0.440, 0.351]], [0.227, [0.872, 0.451, 0.359]], [0.229, [0.872, 0.451, 0.359]], [0.231, [0.876, 0.461, 0.367]], [0.233, [0.876, 0.461, 0.367]], [0.235, [0.881, 0.472, 0.375]], [0.237, [0.881, 0.472, 0.375]], [0.239, [0.885, 0.483, 0.383]], [0.241, [0.885, 0.483, 0.383]], [0.243, [0.890, 0.493, 0.392]], [0.245, [0.890, 0.493, 0.392]], [0.247, [0.895, 0.504, 0.400]], [0.249, [0.895, 0.504, 0.400]], [0.250, [0.899, 0.514, 0.408]], [0.252, [0.899, 0.514, 0.408]], [0.254, [0.904, 0.525, 0.416]], [0.256, [0.904, 0.525, 0.416]], [0.258, [0.908, 0.536, 0.424]], [0.260, [0.908, 0.536, 0.424]], [0.262, [0.913, 0.546, 0.432]], [0.264, [0.913, 0.546, 0.432]], [0.266, [0.918, 0.557, 0.441]], [0.268, [0.918, 0.557, 0.441]], [0.270, [0.922, 0.567, 0.449]], [0.272, [0.922, 0.567, 0.449]], [0.274, [0.927, 0.578, 0.457]], [0.276, [0.927, 0.578, 0.457]], [0.278, [0.931, 0.589, 0.465]], [0.280, [0.931, 0.589, 0.465]], [0.282, [0.936, 0.599, 0.473]], [0.284, [0.936, 0.599, 0.473]], [0.286, [0.941, 0.610, 0.481]], [0.288, [0.941, 0.610, 0.481]], [0.290, [0.945, 0.621, 0.489]], [0.292, [0.945, 0.621, 0.489]], [0.294, [0.950, 0.631, 0.498]], [0.295, [0.950, 0.631, 0.498]], [0.297, [0.955, 0.642, 0.506]], [0.299, [0.955, 0.642, 0.506]], [0.301, [0.958, 0.651, 0.515]], [0.303, [0.958, 0.651, 0.515]], [0.305, [0.959, 0.660, 0.526]], [0.307, [0.959, 0.660, 0.526]], [0.309, [0.960, 0.668, 0.536]], [0.311, [0.960, 0.668, 0.536]], [0.313, [0.962, 0.676, 0.547]], [0.315, [0.962, 0.676, 0.547]], [0.317, [0.963, 0.684, 0.558]], [0.319, [0.963, 0.684, 0.558]], [0.321, [0.964, 0.693, 0.568]], [0.323, [0.964, 0.693, 0.568]], [0.325, [0.966, 0.701, 0.579]], [0.327, [0.966, 0.701, 0.579]], [0.329, [0.967, 0.709, 0.589]], [0.331, [0.967, 0.709, 0.589]], [0.333, [0.969, 0.718, 0.600]], [0.335, [0.969, 0.718, 0.600]], [0.337, [0.970, 0.726, 0.611]], [0.339, [0.970, 0.726, 0.611]], [0.341, [0.971, 0.734, 0.621]], [0.342, [0.971, 0.734, 0.621]], [0.344, [0.973, 0.743, 0.632]], [0.346, [0.973, 0.743, 0.632]], [0.348, [0.974, 0.751, 0.642]], [0.350, [0.974, 0.751, 0.642]], [0.352, [0.976, 0.759, 0.653]], [0.354, [0.976, 0.759, 0.653]], [0.356, [0.977, 0.767, 0.664]], [0.358, [0.977, 0.767, 0.664]], [0.360, [0.978, 0.776, 0.674]], [0.362, [0.978, 0.776, 0.674]], [0.364, [0.980, 0.784, 0.685]], [0.366, [0.980, 0.784, 0.685]], [0.368, [0.981, 0.792, 0.696]], [0.370, [0.981, 0.792, 0.696]], [0.372, [0.982, 0.801, 0.706]], [0.374, [0.982, 0.801, 0.706]], [0.376, [0.984, 0.809, 0.717]], [0.378, [0.984, 0.809, 0.717]], [0.380, [0.985, 0.817, 0.727]], [0.382, [0.985, 0.817, 0.727]], [0.384, [0.987, 0.826, 0.738]], [0.386, [0.987, 0.826, 0.738]], [0.387, [0.988, 0.834, 0.749]], [0.389, [0.988, 0.834, 0.749]], [0.391, [0.989, 0.842, 0.759]], [0.393, [0.989, 0.842, 0.759]], [0.395, [0.991, 0.851, 0.770]], [0.397, [0.991, 0.851, 0.770]], [0.399, [0.992, 0.859, 0.780]], [0.401, [0.992, 0.859, 0.780]], [0.403, [0.991, 0.863, 0.788]], [0.405, [0.991, 0.863, 0.788]], [0.407, [0.990, 0.867, 0.795]], [0.409, [0.990, 0.867, 0.795]], [0.411, [0.989, 0.872, 0.803]], [0.413, [0.989, 0.872, 0.803]], [0.415, [0.988, 0.876, 0.810]], [0.417, [0.988, 0.876, 0.810]], [0.419, [0.988, 0.880, 0.817]], [0.421, [0.988, 0.880, 0.817]], [0.423, [0.987, 0.885, 0.825]], [0.425, [0.987, 0.885, 0.825]], [0.427, [0.986, 0.889, 0.832]], [0.429, [0.986, 0.889, 0.832]], [0.431, [0.985, 0.893, 0.839]], [0.432, [0.985, 0.893, 0.839]], [0.434, [0.984, 0.898, 0.847]], [0.436, [0.984, 0.898, 0.847]], [0.438, [0.983, 0.902, 0.854]], [0.440, [0.983, 0.902, 0.854]], [0.442, [0.982, 0.906, 0.862]], [0.444, [0.982, 0.906, 0.862]], [0.446, [0.981, 0.910, 0.869]], [0.448, [0.981, 0.910, 0.869]], [0.450, [0.980, 0.915, 0.876]], [0.452, [0.980, 0.915, 0.876]], [0.454, [0.979, 0.919, 0.884]], [0.456, [0.979, 0.919, 0.884]], [0.458, [0.978, 0.923, 0.891]], [0.460, [0.978, 0.923, 0.891]], [0.462, [0.977, 0.928, 0.899]], [0.464, [0.977, 0.928, 0.899]], [0.466, [0.976, 0.932, 0.906]], [0.468, [0.976, 0.932, 0.906]], [0.470, [0.976, 0.936, 0.913]], [0.472, [0.976, 0.936, 0.913]], [0.474, [0.975, 0.941, 0.921]], [0.476, [0.975, 0.941, 0.921]], [0.477, [0.974, 0.945, 0.928]], [0.479, [0.974, 0.945, 0.928]], [0.481, [0.973, 0.949, 0.935]], [0.483, [0.973, 0.949, 0.935]], [0.485, [0.972, 0.954, 0.943]], [0.487, [0.972, 0.954, 0.943]], [0.489, [0.971, 0.958, 0.950]], [0.491, [0.971, 0.958, 0.950]], [0.493, [0.970, 0.962, 0.958]], [0.495, [0.970, 0.962, 0.958]], [0.497, [0.969, 0.966, 0.965]], [0.499, [0.969, 0.966, 0.965]], [0.501, [0.966, 0.967, 0.968]], [0.503, [0.966, 0.967, 0.968]], [0.505, [0.960, 0.964, 0.967]], [0.507, [0.960, 0.964, 0.967]], [0.509, [0.954, 0.962, 0.966]], [0.511, [0.954, 0.962, 0.966]], [0.513, [0.948, 0.959, 0.965]], [0.515, [0.948, 0.959, 0.965]], [0.517, [0.942, 0.956, 0.964]], [0.519, [0.942, 0.956, 0.964]], [0.521, [0.936, 0.953, 0.963]], [0.523, [0.936, 0.953, 0.963]], [0.524, [0.931, 0.951, 0.962]], [0.526, [0.931, 0.951, 0.962]], [0.528, [0.925, 0.948, 0.961]], [0.530, [0.925, 0.948, 0.961]], [0.532, [0.919, 0.945, 0.959]], [0.534, [0.919, 0.945, 0.959]], [0.536, [0.913, 0.942, 0.958]], [0.538, [0.913, 0.942, 0.958]], [0.540, [0.907, 0.940, 0.957]], [0.542, [0.907, 0.940, 0.957]], [0.544, [0.901, 0.937, 0.956]], [0.546, [0.901, 0.937, 0.956]], [0.548, [0.896, 0.934, 0.955]], [0.550, [0.896, 0.934, 0.955]], [0.552, [0.890, 0.931, 0.954]], [0.554, [0.890, 0.931, 0.954]], [0.556, [0.884, 0.928, 0.953]], [0.558, [0.884, 0.928, 0.953]], [0.560, [0.878, 0.926, 0.952]], [0.562, [0.878, 0.926, 0.952]], [0.564, [0.872, 0.923, 0.951]], [0.566, [0.872, 0.923, 0.951]], [0.568, [0.866, 0.920, 0.950]], [0.569, [0.866, 0.920, 0.950]], [0.571, [0.861, 0.917, 0.949]], [0.573, [0.861, 0.917, 0.949]], [0.575, [0.855, 0.915, 0.948]], [0.577, [0.855, 0.915, 0.948]], [0.579, [0.849, 0.912, 0.947]], [0.581, [0.849, 0.912, 0.947]], [0.583, [0.843, 0.909, 0.945]], [0.585, [0.843, 0.909, 0.945]], [0.587, [0.837, 0.906, 0.944]], [0.589, [0.837, 0.906, 0.944]], [0.591, [0.831, 0.904, 0.943]], [0.593, [0.831, 0.904, 0.943]], [0.595, [0.825, 0.901, 0.942]], [0.597, [0.825, 0.901, 0.942]], [0.599, [0.820, 0.898, 0.941]], [0.601, [0.820, 0.898, 0.941]], [0.603, [0.810, 0.893, 0.938]], [0.605, [0.810, 0.893, 0.938]], [0.607, [0.800, 0.888, 0.936]], [0.609, [0.800, 0.888, 0.936]], [0.611, [0.791, 0.883, 0.933]], [0.613, [0.791, 0.883, 0.933]], [0.614, [0.781, 0.878, 0.930]], [0.616, [0.781, 0.878, 0.930]], [0.618, [0.771, 0.873, 0.927]], [0.620, [0.771, 0.873, 0.927]], [0.622, [0.761, 0.869, 0.925]], [0.624, [0.761, 0.869, 0.925]], [0.626, [0.752, 0.864, 0.922]], [0.628, [0.752, 0.864, 0.922]], [0.630, [0.742, 0.859, 0.919]], [0.632, [0.742, 0.859, 0.919]], [0.634, [0.732, 0.854, 0.916]], [0.636, [0.732, 0.854, 0.916]], [0.638, [0.723, 0.849, 0.913]], [0.640, [0.723, 0.849, 0.913]], [0.642, [0.713, 0.844, 0.911]], [0.644, [0.713, 0.844, 0.911]], [0.646, [0.703, 0.839, 0.908]], [0.648, [0.703, 0.839, 0.908]], [0.650, [0.694, 0.834, 0.905]], [0.652, [0.694, 0.834, 0.905]], [0.654, [0.684, 0.829, 0.902]], [0.656, [0.684, 0.829, 0.902]], [0.658, [0.674, 0.824, 0.900]], [0.659, [0.674, 0.824, 0.900]], [0.661, [0.665, 0.819, 0.897]], [0.663, [0.665, 0.819, 0.897]], [0.665, [0.655, 0.814, 0.894]], [0.667, [0.655, 0.814, 0.894]], [0.669, [0.645, 0.809, 0.891]], [0.671, [0.645, 0.809, 0.891]], [0.673, [0.636, 0.805, 0.889]], [0.675, [0.636, 0.805, 0.889]], [0.677, [0.626, 0.800, 0.886]], [0.679, [0.626, 0.800, 0.886]], [0.681, [0.616, 0.795, 0.883]], [0.683, [0.616, 0.795, 0.883]], [0.685, [0.606, 0.790, 0.880]], [0.687, [0.606, 0.790, 0.880]], [0.689, [0.597, 0.785, 0.878]], [0.691, [0.597, 0.785, 0.878]], [0.693, [0.587, 0.780, 0.875]], [0.695, [0.587, 0.780, 0.875]], [0.697, [0.577, 0.775, 0.872]], [0.699, [0.577, 0.775, 0.872]], [0.701, [0.566, 0.769, 0.869]], [0.703, [0.566, 0.769, 0.869]], [0.705, [0.554, 0.761, 0.864]], [0.706, [0.554, 0.761, 0.864]], [0.708, [0.542, 0.753, 0.860]], [0.710, [0.542, 0.753, 0.860]], [0.712, [0.530, 0.746, 0.856]], [0.714, [0.530, 0.746, 0.856]], [0.716, [0.518, 0.738, 0.852]], [0.718, [0.518, 0.738, 0.852]], [0.720, [0.506, 0.730, 0.848]], [0.722, [0.506, 0.730, 0.848]], [0.724, [0.494, 0.723, 0.844]], [0.726, [0.494, 0.723, 0.844]], [0.728, [0.481, 0.715, 0.839]], [0.730, [0.481, 0.715, 0.839]], [0.732, [0.469, 0.707, 0.835]], [0.734, [0.469, 0.707, 0.835]], [0.736, [0.457, 0.700, 0.831]], [0.738, [0.457, 0.700, 0.831]], [0.740, [0.445, 0.692, 0.827]], [0.742, [0.445, 0.692, 0.827]], [0.744, [0.433, 0.684, 0.823]], [0.746, [0.433, 0.684, 0.823]], [0.748, [0.421, 0.676, 0.819]], [0.750, [0.421, 0.676, 0.819]], [0.751, [0.409, 0.669, 0.815]], [0.753, [0.409, 0.669, 0.815]], [0.755, [0.396, 0.661, 0.810]], [0.757, [0.396, 0.661, 0.810]], [0.759, [0.384, 0.653, 0.806]], [0.761, [0.384, 0.653, 0.806]], [0.763, [0.372, 0.646, 0.802]], [0.765, [0.372, 0.646, 0.802]], [0.767, [0.360, 0.638, 0.798]], [0.769, [0.360, 0.638, 0.798]], [0.771, [0.348, 0.630, 0.794]], [0.773, [0.348, 0.630, 0.794]], [0.775, [0.336, 0.623, 0.790]], [0.777, [0.336, 0.623, 0.790]], [0.779, [0.323, 0.615, 0.785]], [0.781, [0.323, 0.615, 0.785]], [0.783, [0.311, 0.607, 0.781]], [0.785, [0.311, 0.607, 0.781]], [0.787, [0.299, 0.600, 0.777]], [0.789, [0.299, 0.600, 0.777]], [0.791, [0.287, 0.592, 0.773]], [0.793, [0.287, 0.592, 0.773]], [0.795, [0.275, 0.584, 0.769]], [0.796, [0.275, 0.584, 0.769]], [0.798, [0.263, 0.576, 0.765]], [0.800, [0.263, 0.576, 0.765]], [0.802, [0.258, 0.570, 0.761]], [0.804, [0.258, 0.570, 0.761]], [0.806, [0.252, 0.563, 0.758]], [0.808, [0.252, 0.563, 0.758]], [0.810, [0.247, 0.556, 0.754]], [0.812, [0.247, 0.556, 0.754]], [0.814, [0.242, 0.549, 0.751]], [0.816, [0.242, 0.549, 0.751]], [0.818, [0.237, 0.542, 0.747]], [0.820, [0.237, 0.542, 0.747]], [0.822, [0.231, 0.535, 0.743]], [0.824, [0.231, 0.535, 0.743]], [0.826, [0.226, 0.528, 0.740]], [0.828, [0.226, 0.528, 0.740]], [0.830, [0.221, 0.521, 0.736]], [0.832, [0.221, 0.521, 0.736]], [0.834, [0.216, 0.514, 0.733]], [0.836, [0.216, 0.514, 0.733]], [0.838, [0.210, 0.507, 0.729]], [0.840, [0.210, 0.507, 0.729]], [0.841, [0.205, 0.500, 0.726]], [0.843, [0.205, 0.500, 0.726]], [0.845, [0.200, 0.493, 0.722]], [0.847, [0.200, 0.493, 0.722]], [0.849, [0.195, 0.487, 0.719]], [0.851, [0.195, 0.487, 0.719]], [0.853, [0.190, 0.480, 0.715]], [0.855, [0.190, 0.480, 0.715]], [0.857, [0.184, 0.473, 0.712]], [0.859, [0.184, 0.473, 0.712]], [0.861, [0.179, 0.466, 0.708]], [0.863, [0.179, 0.466, 0.708]], [0.865, [0.174, 0.459, 0.705]], [0.867, [0.174, 0.459, 0.705]], [0.869, [0.169, 0.452, 0.701]], [0.871, [0.169, 0.452, 0.701]], [0.873, [0.163, 0.445, 0.698]], [0.875, [0.163, 0.445, 0.698]], [0.877, [0.158, 0.438, 0.694]], [0.879, [0.158, 0.438, 0.694]], [0.881, [0.153, 0.431, 0.690]], [0.883, [0.153, 0.431, 0.690]], [0.885, [0.148, 0.424, 0.687]], [0.886, [0.148, 0.424, 0.687]], [0.888, [0.142, 0.417, 0.683]], [0.890, [0.142, 0.417, 0.683]], [0.892, [0.137, 0.410, 0.680]], [0.894, [0.137, 0.410, 0.680]], [0.896, [0.132, 0.403, 0.676]], [0.898, [0.132, 0.403, 0.676]], [0.900, [0.127, 0.396, 0.669]], [0.902, [0.127, 0.396, 0.669]], [0.904, [0.123, 0.388, 0.657]], [0.906, [0.123, 0.388, 0.657]], [0.908, [0.119, 0.379, 0.646]], [0.910, [0.119, 0.379, 0.646]], [0.912, [0.114, 0.371, 0.634]], [0.914, [0.114, 0.371, 0.634]], [0.916, [0.110, 0.363, 0.623]], [0.918, [0.110, 0.363, 0.623]], [0.920, [0.106, 0.354, 0.611]], [0.922, [0.106, 0.354, 0.611]], [0.924, [0.101, 0.346, 0.600]], [0.926, [0.101, 0.346, 0.600]], [0.928, [0.097, 0.338, 0.588]], [0.930, [0.097, 0.338, 0.588]], [0.932, [0.093, 0.329, 0.576]], [0.933, [0.093, 0.329, 0.576]], [0.935, [0.089, 0.321, 0.565]], [0.937, [0.089, 0.321, 0.565]], [0.939, [0.084, 0.313, 0.553]], [0.941, [0.084, 0.313, 0.553]], [0.943, [0.080, 0.304, 0.542]], [0.945, [0.080, 0.304, 0.542]], [0.947, [0.076, 0.296, 0.530]], [0.949, [0.076, 0.296, 0.530]], [0.951, [0.071, 0.288, 0.519]], [0.953, [0.071, 0.288, 0.519]], [0.955, [0.067, 0.280, 0.507]], [0.957, [0.067, 0.280, 0.507]], [0.959, [0.063, 0.271, 0.496]], [0.961, [0.063, 0.271, 0.496]], [0.963, [0.058, 0.263, 0.484]], [0.965, [0.058, 0.263, 0.484]], [0.967, [0.054, 0.255, 0.473]], [0.969, [0.054, 0.255, 0.473]], [0.971, [0.050, 0.246, 0.461]], [0.973, [0.050, 0.246, 0.461]], [0.975, [0.045, 0.238, 0.450]], [0.977, [0.045, 0.238, 0.450]], [0.978, [0.041, 0.230, 0.438]], [0.980, [0.041, 0.230, 0.438]], [0.982, [0.037, 0.221, 0.427]], [0.984, [0.037, 0.221, 0.427]], [0.986, [0.033, 0.213, 0.415]], [0.988, [0.033, 0.213, 0.415]], [0.990, [0.028, 0.205, 0.403]], [0.992, [0.028, 0.205, 0.403]], [0.994, [0.024, 0.197, 0.392]], [0.996, [0.024, 0.197, 0.392]], [0.998, [0.020, 0.188, 0.380]], [1.000, [0.020, 0.188, 0.380]]];
+var RdGy = [[0.000, [0.404, 0.000, 0.122]], [0.002, [0.404, 0.000, 0.122]], [0.004, [0.415, 0.004, 0.123]], [0.006, [0.415, 0.004, 0.123]], [0.008, [0.427, 0.007, 0.125]], [0.010, [0.427, 0.007, 0.125]], [0.012, [0.439, 0.011, 0.127]], [0.014, [0.439, 0.011, 0.127]], [0.016, [0.450, 0.015, 0.129]], [0.018, [0.450, 0.015, 0.129]], [0.020, [0.462, 0.018, 0.131]], [0.022, [0.462, 0.018, 0.131]], [0.023, [0.473, 0.022, 0.133]], [0.025, [0.473, 0.022, 0.133]], [0.027, [0.485, 0.026, 0.134]], [0.029, [0.485, 0.026, 0.134]], [0.031, [0.496, 0.030, 0.136]], [0.033, [0.496, 0.030, 0.136]], [0.035, [0.508, 0.033, 0.138]], [0.037, [0.508, 0.033, 0.138]], [0.039, [0.519, 0.037, 0.140]], [0.041, [0.519, 0.037, 0.140]], [0.043, [0.531, 0.041, 0.142]], [0.045, [0.531, 0.041, 0.142]], [0.047, [0.542, 0.044, 0.144]], [0.049, [0.542, 0.044, 0.144]], [0.051, [0.554, 0.048, 0.146]], [0.053, [0.554, 0.048, 0.146]], [0.055, [0.565, 0.052, 0.147]], [0.057, [0.565, 0.052, 0.147]], [0.059, [0.577, 0.055, 0.149]], [0.061, [0.577, 0.055, 0.149]], [0.063, [0.588, 0.059, 0.151]], [0.065, [0.588, 0.059, 0.151]], [0.067, [0.600, 0.063, 0.153]], [0.068, [0.600, 0.063, 0.153]], [0.070, [0.612, 0.066, 0.155]], [0.072, [0.612, 0.066, 0.155]], [0.074, [0.623, 0.070, 0.157]], [0.076, [0.623, 0.070, 0.157]], [0.078, [0.635, 0.074, 0.158]], [0.080, [0.635, 0.074, 0.158]], [0.082, [0.646, 0.078, 0.160]], [0.084, [0.646, 0.078, 0.160]], [0.086, [0.658, 0.081, 0.162]], [0.088, [0.658, 0.081, 0.162]], [0.090, [0.669, 0.085, 0.164]], [0.092, [0.669, 0.085, 0.164]], [0.094, [0.681, 0.089, 0.166]], [0.096, [0.681, 0.089, 0.166]], [0.098, [0.692, 0.092, 0.168]], [0.100, [0.692, 0.092, 0.168]], [0.102, [0.701, 0.100, 0.171]], [0.104, [0.701, 0.100, 0.171]], [0.106, [0.706, 0.111, 0.176]], [0.108, [0.706, 0.111, 0.176]], [0.110, [0.712, 0.122, 0.182]], [0.112, [0.712, 0.122, 0.182]], [0.114, [0.717, 0.133, 0.187]], [0.115, [0.717, 0.133, 0.187]], [0.117, [0.723, 0.144, 0.192]], [0.119, [0.723, 0.144, 0.192]], [0.121, [0.728, 0.155, 0.197]], [0.123, [0.728, 0.155, 0.197]], [0.125, [0.734, 0.166, 0.203]], [0.127, [0.734, 0.166, 0.203]], [0.129, [0.740, 0.177, 0.208]], [0.131, [0.740, 0.177, 0.208]], [0.133, [0.745, 0.188, 0.213]], [0.135, [0.745, 0.188, 0.213]], [0.137, [0.751, 0.199, 0.218]], [0.139, [0.751, 0.199, 0.218]], [0.141, [0.756, 0.210, 0.224]], [0.143, [0.756, 0.210, 0.224]], [0.145, [0.762, 0.221, 0.229]], [0.147, [0.762, 0.221, 0.229]], [0.149, [0.767, 0.233, 0.234]], [0.151, [0.767, 0.233, 0.234]], [0.153, [0.773, 0.244, 0.239]], [0.155, [0.773, 0.244, 0.239]], [0.157, [0.778, 0.255, 0.244]], [0.159, [0.778, 0.255, 0.244]], [0.160, [0.784, 0.266, 0.250]], [0.162, [0.784, 0.266, 0.250]], [0.164, [0.789, 0.277, 0.255]], [0.166, [0.789, 0.277, 0.255]], [0.168, [0.795, 0.288, 0.260]], [0.170, [0.795, 0.288, 0.260]], [0.172, [0.800, 0.299, 0.265]], [0.174, [0.800, 0.299, 0.265]], [0.176, [0.806, 0.310, 0.271]], [0.178, [0.806, 0.310, 0.271]], [0.180, [0.812, 0.321, 0.276]], [0.182, [0.812, 0.321, 0.276]], [0.184, [0.817, 0.332, 0.281]], [0.186, [0.817, 0.332, 0.281]], [0.188, [0.823, 0.343, 0.286]], [0.190, [0.823, 0.343, 0.286]], [0.192, [0.828, 0.354, 0.292]], [0.194, [0.828, 0.354, 0.292]], [0.196, [0.834, 0.365, 0.297]], [0.198, [0.834, 0.365, 0.297]], [0.200, [0.839, 0.376, 0.302]], [0.202, [0.839, 0.376, 0.302]], [0.204, [0.844, 0.387, 0.310]], [0.205, [0.844, 0.387, 0.310]], [0.207, [0.848, 0.398, 0.318]], [0.209, [0.848, 0.398, 0.318]], [0.211, [0.853, 0.408, 0.326]], [0.213, [0.853, 0.408, 0.326]], [0.215, [0.858, 0.419, 0.335]], [0.217, [0.858, 0.419, 0.335]], [0.219, [0.862, 0.430, 0.343]], [0.221, [0.862, 0.430, 0.343]], [0.223, [0.867, 0.440, 0.351]], [0.225, [0.867, 0.440, 0.351]], [0.227, [0.872, 0.451, 0.359]], [0.229, [0.872, 0.451, 0.359]], [0.231, [0.876, 0.461, 0.367]], [0.233, [0.876, 0.461, 0.367]], [0.235, [0.881, 0.472, 0.375]], [0.237, [0.881, 0.472, 0.375]], [0.239, [0.885, 0.483, 0.383]], [0.241, [0.885, 0.483, 0.383]], [0.243, [0.890, 0.493, 0.392]], [0.245, [0.890, 0.493, 0.392]], [0.247, [0.895, 0.504, 0.400]], [0.249, [0.895, 0.504, 0.400]], [0.250, [0.899, 0.514, 0.408]], [0.252, [0.899, 0.514, 0.408]], [0.254, [0.904, 0.525, 0.416]], [0.256, [0.904, 0.525, 0.416]], [0.258, [0.908, 0.536, 0.424]], [0.260, [0.908, 0.536, 0.424]], [0.262, [0.913, 0.546, 0.432]], [0.264, [0.913, 0.546, 0.432]], [0.266, [0.918, 0.557, 0.441]], [0.268, [0.918, 0.557, 0.441]], [0.270, [0.922, 0.567, 0.449]], [0.272, [0.922, 0.567, 0.449]], [0.274, [0.927, 0.578, 0.457]], [0.276, [0.927, 0.578, 0.457]], [0.278, [0.931, 0.589, 0.465]], [0.280, [0.931, 0.589, 0.465]], [0.282, [0.936, 0.599, 0.473]], [0.284, [0.936, 0.599, 0.473]], [0.286, [0.941, 0.610, 0.481]], [0.288, [0.941, 0.610, 0.481]], [0.290, [0.945, 0.621, 0.489]], [0.292, [0.945, 0.621, 0.489]], [0.294, [0.950, 0.631, 0.498]], [0.295, [0.950, 0.631, 0.498]], [0.297, [0.955, 0.642, 0.506]], [0.299, [0.955, 0.642, 0.506]], [0.301, [0.958, 0.651, 0.515]], [0.303, [0.958, 0.651, 0.515]], [0.305, [0.959, 0.660, 0.526]], [0.307, [0.959, 0.660, 0.526]], [0.309, [0.960, 0.668, 0.536]], [0.311, [0.960, 0.668, 0.536]], [0.313, [0.962, 0.676, 0.547]], [0.315, [0.962, 0.676, 0.547]], [0.317, [0.963, 0.684, 0.558]], [0.319, [0.963, 0.684, 0.558]], [0.321, [0.964, 0.693, 0.568]], [0.323, [0.964, 0.693, 0.568]], [0.325, [0.966, 0.701, 0.579]], [0.327, [0.966, 0.701, 0.579]], [0.329, [0.967, 0.709, 0.589]], [0.331, [0.967, 0.709, 0.589]], [0.333, [0.969, 0.718, 0.600]], [0.335, [0.969, 0.718, 0.600]], [0.337, [0.970, 0.726, 0.611]], [0.339, [0.970, 0.726, 0.611]], [0.341, [0.971, 0.734, 0.621]], [0.342, [0.971, 0.734, 0.621]], [0.344, [0.973, 0.743, 0.632]], [0.346, [0.973, 0.743, 0.632]], [0.348, [0.974, 0.751, 0.642]], [0.350, [0.974, 0.751, 0.642]], [0.352, [0.976, 0.759, 0.653]], [0.354, [0.976, 0.759, 0.653]], [0.356, [0.977, 0.767, 0.664]], [0.358, [0.977, 0.767, 0.664]], [0.360, [0.978, 0.776, 0.674]], [0.362, [0.978, 0.776, 0.674]], [0.364, [0.980, 0.784, 0.685]], [0.366, [0.980, 0.784, 0.685]], [0.368, [0.981, 0.792, 0.696]], [0.370, [0.981, 0.792, 0.696]], [0.372, [0.982, 0.801, 0.706]], [0.374, [0.982, 0.801, 0.706]], [0.376, [0.984, 0.809, 0.717]], [0.378, [0.984, 0.809, 0.717]], [0.380, [0.985, 0.817, 0.727]], [0.382, [0.985, 0.817, 0.727]], [0.384, [0.987, 0.826, 0.738]], [0.386, [0.987, 0.826, 0.738]], [0.387, [0.988, 0.834, 0.749]], [0.389, [0.988, 0.834, 0.749]], [0.391, [0.989, 0.842, 0.759]], [0.393, [0.989, 0.842, 0.759]], [0.395, [0.991, 0.851, 0.770]], [0.397, [0.991, 0.851, 0.770]], [0.399, [0.992, 0.859, 0.780]], [0.401, [0.992, 0.859, 0.780]], [0.403, [0.992, 0.864, 0.789]], [0.405, [0.992, 0.864, 0.789]], [0.407, [0.993, 0.870, 0.798]], [0.409, [0.993, 0.870, 0.798]], [0.411, [0.993, 0.875, 0.806]], [0.413, [0.993, 0.875, 0.806]], [0.415, [0.993, 0.881, 0.815]], [0.417, [0.993, 0.881, 0.815]], [0.419, [0.994, 0.887, 0.823]], [0.421, [0.994, 0.887, 0.823]], [0.423, [0.994, 0.892, 0.832]], [0.425, [0.994, 0.892, 0.832]], [0.427, [0.994, 0.898, 0.841]], [0.429, [0.994, 0.898, 0.841]], [0.431, [0.995, 0.903, 0.849]], [0.432, [0.995, 0.903, 0.849]], [0.434, [0.995, 0.909, 0.858]], [0.436, [0.995, 0.909, 0.858]], [0.438, [0.995, 0.914, 0.867]], [0.440, [0.995, 0.914, 0.867]], [0.442, [0.996, 0.920, 0.875]], [0.444, [0.996, 0.920, 0.875]], [0.446, [0.996, 0.925, 0.884]], [0.448, [0.996, 0.925, 0.884]], [0.450, [0.996, 0.931, 0.892]], [0.452, [0.996, 0.931, 0.892]], [0.454, [0.996, 0.936, 0.901]], [0.456, [0.996, 0.936, 0.901]], [0.458, [0.997, 0.942, 0.910]], [0.460, [0.997, 0.942, 0.910]], [0.462, [0.997, 0.947, 0.918]], [0.464, [0.997, 0.947, 0.918]], [0.466, [0.997, 0.953, 0.927]], [0.468, [0.997, 0.953, 0.927]], [0.470, [0.998, 0.958, 0.935]], [0.472, [0.998, 0.958, 0.935]], [0.474, [0.998, 0.964, 0.944]], [0.476, [0.998, 0.964, 0.944]], [0.477, [0.998, 0.970, 0.953]], [0.479, [0.998, 0.970, 0.953]], [0.481, [0.999, 0.975, 0.961]], [0.483, [0.999, 0.975, 0.961]], [0.485, [0.999, 0.981, 0.970]], [0.487, [0.999, 0.981, 0.970]], [0.489, [0.999, 0.986, 0.978]], [0.491, [0.999, 0.986, 0.978]], [0.493, [1.000, 0.992, 0.987]], [0.495, [1.000, 0.992, 0.987]], [0.497, [1.000, 0.997, 0.996]], [0.499, [1.000, 0.997, 0.996]], [0.501, [0.998, 0.998, 0.998]], [0.503, [0.998, 0.998, 0.998]], [0.505, [0.993, 0.993, 0.993]], [0.507, [0.993, 0.993, 0.993]], [0.509, [0.988, 0.988, 0.988]], [0.511, [0.988, 0.988, 0.988]], [0.513, [0.983, 0.983, 0.983]], [0.515, [0.983, 0.983, 0.983]], [0.517, [0.979, 0.979, 0.979]], [0.519, [0.979, 0.979, 0.979]], [0.521, [0.974, 0.974, 0.974]], [0.523, [0.974, 0.974, 0.974]], [0.524, [0.969, 0.969, 0.969]], [0.526, [0.969, 0.969, 0.969]], [0.528, [0.964, 0.964, 0.964]], [0.530, [0.964, 0.964, 0.964]], [0.532, [0.959, 0.959, 0.959]], [0.534, [0.959, 0.959, 0.959]], [0.536, [0.955, 0.955, 0.955]], [0.538, [0.955, 0.955, 0.955]], [0.540, [0.950, 0.950, 0.950]], [0.542, [0.950, 0.950, 0.950]], [0.544, [0.945, 0.945, 0.945]], [0.546, [0.945, 0.945, 0.945]], [0.548, [0.940, 0.940, 0.940]], [0.550, [0.940, 0.940, 0.940]], [0.552, [0.936, 0.936, 0.936]], [0.554, [0.936, 0.936, 0.936]], [0.556, [0.931, 0.931, 0.931]], [0.558, [0.931, 0.931, 0.931]], [0.560, [0.926, 0.926, 0.926]], [0.562, [0.926, 0.926, 0.926]], [0.564, [0.921, 0.921, 0.921]], [0.566, [0.921, 0.921, 0.921]], [0.568, [0.917, 0.917, 0.917]], [0.569, [0.917, 0.917, 0.917]], [0.571, [0.912, 0.912, 0.912]], [0.573, [0.912, 0.912, 0.912]], [0.575, [0.907, 0.907, 0.907]], [0.577, [0.907, 0.907, 0.907]], [0.579, [0.902, 0.902, 0.902]], [0.581, [0.902, 0.902, 0.902]], [0.583, [0.898, 0.898, 0.898]], [0.585, [0.898, 0.898, 0.898]], [0.587, [0.893, 0.893, 0.893]], [0.589, [0.893, 0.893, 0.893]], [0.591, [0.888, 0.888, 0.888]], [0.593, [0.888, 0.888, 0.888]], [0.595, [0.883, 0.883, 0.883]], [0.597, [0.883, 0.883, 0.883]], [0.599, [0.878, 0.878, 0.878]], [0.601, [0.878, 0.878, 0.878]], [0.603, [0.873, 0.873, 0.873]], [0.605, [0.873, 0.873, 0.873]], [0.607, [0.867, 0.867, 0.867]], [0.609, [0.867, 0.867, 0.867]], [0.611, [0.861, 0.861, 0.861]], [0.613, [0.861, 0.861, 0.861]], [0.614, [0.855, 0.855, 0.855]], [0.616, [0.855, 0.855, 0.855]], [0.618, [0.849, 0.849, 0.849]], [0.620, [0.849, 0.849, 0.849]], [0.622, [0.843, 0.843, 0.843]], [0.624, [0.843, 0.843, 0.843]], [0.626, [0.838, 0.838, 0.838]], [0.628, [0.838, 0.838, 0.838]], [0.630, [0.832, 0.832, 0.832]], [0.632, [0.832, 0.832, 0.832]], [0.634, [0.826, 0.826, 0.826]], [0.636, [0.826, 0.826, 0.826]], [0.638, [0.820, 0.820, 0.820]], [0.640, [0.820, 0.820, 0.820]], [0.642, [0.814, 0.814, 0.814]], [0.644, [0.814, 0.814, 0.814]], [0.646, [0.808, 0.808, 0.808]], [0.648, [0.808, 0.808, 0.808]], [0.650, [0.802, 0.802, 0.802]], [0.652, [0.802, 0.802, 0.802]], [0.654, [0.797, 0.797, 0.797]], [0.656, [0.797, 0.797, 0.797]], [0.658, [0.791, 0.791, 0.791]], [0.659, [0.791, 0.791, 0.791]], [0.661, [0.785, 0.785, 0.785]], [0.663, [0.785, 0.785, 0.785]], [0.665, [0.779, 0.779, 0.779]], [0.667, [0.779, 0.779, 0.779]], [0.669, [0.773, 0.773, 0.773]], [0.671, [0.773, 0.773, 0.773]], [0.673, [0.767, 0.767, 0.767]], [0.675, [0.767, 0.767, 0.767]], [0.677, [0.762, 0.762, 0.762]], [0.679, [0.762, 0.762, 0.762]], [0.681, [0.756, 0.756, 0.756]], [0.683, [0.756, 0.756, 0.756]], [0.685, [0.750, 0.750, 0.750]], [0.687, [0.750, 0.750, 0.750]], [0.689, [0.744, 0.744, 0.744]], [0.691, [0.744, 0.744, 0.744]], [0.693, [0.738, 0.738, 0.738]], [0.695, [0.738, 0.738, 0.738]], [0.697, [0.732, 0.732, 0.732]], [0.699, [0.732, 0.732, 0.732]], [0.701, [0.725, 0.725, 0.725]], [0.703, [0.725, 0.725, 0.725]], [0.705, [0.718, 0.718, 0.718]], [0.706, [0.718, 0.718, 0.718]], [0.708, [0.710, 0.710, 0.710]], [0.710, [0.710, 0.710, 0.710]], [0.712, [0.702, 0.702, 0.702]], [0.714, [0.702, 0.702, 0.702]], [0.716, [0.694, 0.694, 0.694]], [0.718, [0.694, 0.694, 0.694]], [0.720, [0.686, 0.686, 0.686]], [0.722, [0.686, 0.686, 0.686]], [0.724, [0.678, 0.678, 0.678]], [0.726, [0.678, 0.678, 0.678]], [0.728, [0.671, 0.671, 0.671]], [0.730, [0.671, 0.671, 0.671]], [0.732, [0.663, 0.663, 0.663]], [0.734, [0.663, 0.663, 0.663]], [0.736, [0.655, 0.655, 0.655]], [0.738, [0.655, 0.655, 0.655]], [0.740, [0.647, 0.647, 0.647]], [0.742, [0.647, 0.647, 0.647]], [0.744, [0.639, 0.639, 0.639]], [0.746, [0.639, 0.639, 0.639]], [0.748, [0.631, 0.631, 0.631]], [0.750, [0.631, 0.631, 0.631]], [0.751, [0.624, 0.624, 0.624]], [0.753, [0.624, 0.624, 0.624]], [0.755, [0.616, 0.616, 0.616]], [0.757, [0.616, 0.616, 0.616]], [0.759, [0.608, 0.608, 0.608]], [0.761, [0.608, 0.608, 0.608]], [0.763, [0.600, 0.600, 0.600]], [0.765, [0.600, 0.600, 0.600]], [0.767, [0.592, 0.592, 0.592]], [0.769, [0.592, 0.592, 0.592]], [0.771, [0.584, 0.584, 0.584]], [0.773, [0.584, 0.584, 0.584]], [0.775, [0.576, 0.576, 0.576]], [0.777, [0.576, 0.576, 0.576]], [0.779, [0.569, 0.569, 0.569]], [0.781, [0.569, 0.569, 0.569]], [0.783, [0.561, 0.561, 0.561]], [0.785, [0.561, 0.561, 0.561]], [0.787, [0.553, 0.553, 0.553]], [0.789, [0.553, 0.553, 0.553]], [0.791, [0.545, 0.545, 0.545]], [0.793, [0.545, 0.545, 0.545]], [0.795, [0.537, 0.537, 0.537]], [0.796, [0.537, 0.537, 0.537]], [0.798, [0.529, 0.529, 0.529]], [0.800, [0.529, 0.529, 0.529]], [0.802, [0.520, 0.520, 0.520]], [0.804, [0.520, 0.520, 0.520]], [0.806, [0.512, 0.512, 0.512]], [0.808, [0.512, 0.512, 0.512]], [0.810, [0.503, 0.503, 0.503]], [0.812, [0.503, 0.503, 0.503]], [0.814, [0.494, 0.494, 0.494]], [0.816, [0.494, 0.494, 0.494]], [0.818, [0.485, 0.485, 0.485]], [0.820, [0.485, 0.485, 0.485]], [0.822, [0.476, 0.476, 0.476]], [0.824, [0.476, 0.476, 0.476]], [0.826, [0.467, 0.467, 0.467]], [0.828, [0.467, 0.467, 0.467]], [0.830, [0.458, 0.458, 0.458]], [0.832, [0.458, 0.458, 0.458]], [0.834, [0.449, 0.449, 0.449]], [0.836, [0.449, 0.449, 0.449]], [0.838, [0.440, 0.440, 0.440]], [0.840, [0.440, 0.440, 0.440]], [0.841, [0.431, 0.431, 0.431]], [0.843, [0.431, 0.431, 0.431]], [0.845, [0.422, 0.422, 0.422]], [0.847, [0.422, 0.422, 0.422]], [0.849, [0.413, 0.413, 0.413]], [0.851, [0.413, 0.413, 0.413]], [0.853, [0.405, 0.405, 0.405]], [0.855, [0.405, 0.405, 0.405]], [0.857, [0.396, 0.396, 0.396]], [0.859, [0.396, 0.396, 0.396]], [0.861, [0.387, 0.387, 0.387]], [0.863, [0.387, 0.387, 0.387]], [0.865, [0.378, 0.378, 0.378]], [0.867, [0.378, 0.378, 0.378]], [0.869, [0.369, 0.369, 0.369]], [0.871, [0.369, 0.369, 0.369]], [0.873, [0.360, 0.360, 0.360]], [0.875, [0.360, 0.360, 0.360]], [0.877, [0.351, 0.351, 0.351]], [0.879, [0.351, 0.351, 0.351]], [0.881, [0.342, 0.342, 0.342]], [0.883, [0.342, 0.342, 0.342]], [0.885, [0.333, 0.333, 0.333]], [0.886, [0.333, 0.333, 0.333]], [0.888, [0.324, 0.324, 0.324]], [0.890, [0.324, 0.324, 0.324]], [0.892, [0.315, 0.315, 0.315]], [0.894, [0.315, 0.315, 0.315]], [0.896, [0.306, 0.306, 0.306]], [0.898, [0.306, 0.306, 0.306]], [0.900, [0.298, 0.298, 0.298]], [0.902, [0.298, 0.298, 0.298]], [0.904, [0.290, 0.290, 0.290]], [0.906, [0.290, 0.290, 0.290]], [0.908, [0.282, 0.282, 0.282]], [0.910, [0.282, 0.282, 0.282]], [0.912, [0.275, 0.275, 0.275]], [0.914, [0.275, 0.275, 0.275]], [0.916, [0.267, 0.267, 0.267]], [0.918, [0.267, 0.267, 0.267]], [0.920, [0.259, 0.259, 0.259]], [0.922, [0.259, 0.259, 0.259]], [0.924, [0.251, 0.251, 0.251]], [0.926, [0.251, 0.251, 0.251]], [0.928, [0.243, 0.243, 0.243]], [0.930, [0.243, 0.243, 0.243]], [0.932, [0.235, 0.235, 0.235]], [0.933, [0.235, 0.235, 0.235]], [0.935, [0.227, 0.227, 0.227]], [0.937, [0.227, 0.227, 0.227]], [0.939, [0.220, 0.220, 0.220]], [0.941, [0.220, 0.220, 0.220]], [0.943, [0.212, 0.212, 0.212]], [0.945, [0.212, 0.212, 0.212]], [0.947, [0.204, 0.204, 0.204]], [0.949, [0.204, 0.204, 0.204]], [0.951, [0.196, 0.196, 0.196]], [0.953, [0.196, 0.196, 0.196]], [0.955, [0.188, 0.188, 0.188]], [0.957, [0.188, 0.188, 0.188]], [0.959, [0.180, 0.180, 0.180]], [0.961, [0.180, 0.180, 0.180]], [0.963, [0.173, 0.173, 0.173]], [0.965, [0.173, 0.173, 0.173]], [0.967, [0.165, 0.165, 0.165]], [0.969, [0.165, 0.165, 0.165]], [0.971, [0.157, 0.157, 0.157]], [0.973, [0.157, 0.157, 0.157]], [0.975, [0.149, 0.149, 0.149]], [0.977, [0.149, 0.149, 0.149]], [0.978, [0.141, 0.141, 0.141]], [0.980, [0.141, 0.141, 0.141]], [0.982, [0.133, 0.133, 0.133]], [0.984, [0.133, 0.133, 0.133]], [0.986, [0.125, 0.125, 0.125]], [0.988, [0.125, 0.125, 0.125]], [0.990, [0.118, 0.118, 0.118]], [0.992, [0.118, 0.118, 0.118]], [0.994, [0.110, 0.110, 0.110]], [0.996, [0.110, 0.110, 0.110]], [0.998, [0.102, 0.102, 0.102]], [1.000, [0.102, 0.102, 0.102]]];
+var RdYlBu = [[0.000, [0.647, 0.000, 0.149]], [0.002, [0.647, 0.000, 0.149]], [0.004, [0.655, 0.007, 0.149]], [0.006, [0.655, 0.007, 0.149]], [0.008, [0.662, 0.015, 0.149]], [0.010, [0.662, 0.015, 0.149]], [0.012, [0.670, 0.022, 0.149]], [0.014, [0.670, 0.022, 0.149]], [0.016, [0.678, 0.030, 0.150]], [0.018, [0.678, 0.030, 0.150]], [0.020, [0.686, 0.037, 0.150]], [0.022, [0.686, 0.037, 0.150]], [0.023, [0.693, 0.044, 0.150]], [0.025, [0.693, 0.044, 0.150]], [0.027, [0.701, 0.052, 0.150]], [0.029, [0.701, 0.052, 0.150]], [0.031, [0.709, 0.059, 0.150]], [0.033, [0.709, 0.059, 0.150]], [0.035, [0.716, 0.066, 0.150]], [0.037, [0.716, 0.066, 0.150]], [0.039, [0.724, 0.074, 0.151]], [0.041, [0.724, 0.074, 0.151]], [0.043, [0.732, 0.081, 0.151]], [0.045, [0.732, 0.081, 0.151]], [0.047, [0.739, 0.089, 0.151]], [0.049, [0.739, 0.089, 0.151]], [0.051, [0.747, 0.096, 0.151]], [0.053, [0.747, 0.096, 0.151]], [0.055, [0.755, 0.103, 0.151]], [0.057, [0.755, 0.103, 0.151]], [0.059, [0.762, 0.111, 0.151]], [0.061, [0.762, 0.111, 0.151]], [0.063, [0.770, 0.118, 0.151]], [0.065, [0.770, 0.118, 0.151]], [0.067, [0.778, 0.125, 0.152]], [0.068, [0.778, 0.125, 0.152]], [0.070, [0.785, 0.133, 0.152]], [0.072, [0.785, 0.133, 0.152]], [0.074, [0.793, 0.140, 0.152]], [0.076, [0.793, 0.140, 0.152]], [0.078, [0.801, 0.148, 0.152]], [0.080, [0.801, 0.148, 0.152]], [0.082, [0.809, 0.155, 0.152]], [0.084, [0.809, 0.155, 0.152]], [0.086, [0.816, 0.162, 0.152]], [0.088, [0.816, 0.162, 0.152]], [0.090, [0.824, 0.170, 0.153]], [0.092, [0.824, 0.170, 0.153]], [0.094, [0.832, 0.177, 0.153]], [0.096, [0.832, 0.177, 0.153]], [0.098, [0.839, 0.185, 0.153]], [0.100, [0.839, 0.185, 0.153]], [0.102, [0.845, 0.193, 0.155]], [0.104, [0.845, 0.193, 0.155]], [0.106, [0.850, 0.202, 0.159]], [0.108, [0.850, 0.202, 0.159]], [0.110, [0.854, 0.212, 0.164]], [0.112, [0.854, 0.212, 0.164]], [0.114, [0.859, 0.221, 0.168]], [0.115, [0.859, 0.221, 0.168]], [0.117, [0.863, 0.230, 0.172]], [0.119, [0.863, 0.230, 0.172]], [0.121, [0.868, 0.240, 0.177]], [0.123, [0.868, 0.240, 0.177]], [0.125, [0.872, 0.249, 0.181]], [0.127, [0.872, 0.249, 0.181]], [0.129, [0.877, 0.259, 0.185]], [0.131, [0.877, 0.259, 0.185]], [0.133, [0.881, 0.268, 0.190]], [0.135, [0.881, 0.268, 0.190]], [0.137, [0.886, 0.277, 0.194]], [0.139, [0.886, 0.277, 0.194]], [0.141, [0.890, 0.287, 0.198]], [0.143, [0.890, 0.287, 0.198]], [0.145, [0.894, 0.296, 0.202]], [0.147, [0.894, 0.296, 0.202]], [0.149, [0.899, 0.305, 0.207]], [0.151, [0.899, 0.305, 0.207]], [0.153, [0.903, 0.315, 0.211]], [0.155, [0.903, 0.315, 0.211]], [0.157, [0.908, 0.324, 0.215]], [0.159, [0.908, 0.324, 0.215]], [0.160, [0.912, 0.334, 0.220]], [0.162, [0.912, 0.334, 0.220]], [0.164, [0.917, 0.343, 0.224]], [0.166, [0.917, 0.343, 0.224]], [0.168, [0.921, 0.352, 0.228]], [0.170, [0.921, 0.352, 0.228]], [0.172, [0.926, 0.362, 0.233]], [0.174, [0.926, 0.362, 0.233]], [0.176, [0.930, 0.371, 0.237]], [0.178, [0.930, 0.371, 0.237]], [0.180, [0.935, 0.381, 0.241]], [0.182, [0.935, 0.381, 0.241]], [0.184, [0.939, 0.390, 0.246]], [0.186, [0.939, 0.390, 0.246]], [0.188, [0.943, 0.399, 0.250]], [0.190, [0.943, 0.399, 0.250]], [0.192, [0.948, 0.409, 0.254]], [0.194, [0.948, 0.409, 0.254]], [0.196, [0.952, 0.418, 0.258]], [0.198, [0.952, 0.418, 0.258]], [0.200, [0.957, 0.427, 0.263]], [0.202, [0.957, 0.427, 0.263]], [0.204, [0.958, 0.437, 0.267]], [0.205, [0.958, 0.437, 0.267]], [0.207, [0.960, 0.447, 0.272]], [0.209, [0.960, 0.447, 0.272]], [0.211, [0.961, 0.457, 0.277]], [0.213, [0.961, 0.457, 0.277]], [0.215, [0.962, 0.467, 0.281]], [0.217, [0.962, 0.467, 0.281]], [0.219, [0.964, 0.477, 0.286]], [0.221, [0.964, 0.477, 0.286]], [0.223, [0.965, 0.487, 0.290]], [0.225, [0.965, 0.487, 0.290]], [0.227, [0.967, 0.497, 0.295]], [0.229, [0.967, 0.497, 0.295]], [0.231, [0.968, 0.507, 0.300]], [0.233, [0.968, 0.507, 0.300]], [0.235, [0.969, 0.517, 0.304]], [0.237, [0.969, 0.517, 0.304]], [0.239, [0.971, 0.527, 0.309]], [0.241, [0.971, 0.527, 0.309]], [0.243, [0.972, 0.537, 0.313]], [0.245, [0.972, 0.537, 0.313]], [0.247, [0.973, 0.547, 0.318]], [0.249, [0.973, 0.547, 0.318]], [0.250, [0.975, 0.557, 0.323]], [0.252, [0.975, 0.557, 0.323]], [0.254, [0.976, 0.567, 0.327]], [0.256, [0.976, 0.567, 0.327]], [0.258, [0.978, 0.577, 0.332]], [0.260, [0.978, 0.577, 0.332]], [0.262, [0.979, 0.587, 0.337]], [0.264, [0.979, 0.587, 0.337]], [0.266, [0.980, 0.597, 0.341]], [0.268, [0.980, 0.597, 0.341]], [0.270, [0.982, 0.607, 0.346]], [0.272, [0.982, 0.607, 0.346]], [0.274, [0.983, 0.617, 0.350]], [0.276, [0.983, 0.617, 0.350]], [0.278, [0.985, 0.627, 0.355]], [0.280, [0.985, 0.627, 0.355]], [0.282, [0.986, 0.637, 0.360]], [0.284, [0.986, 0.637, 0.360]], [0.286, [0.987, 0.647, 0.364]], [0.288, [0.987, 0.647, 0.364]], [0.290, [0.989, 0.657, 0.369]], [0.292, [0.989, 0.657, 0.369]], [0.294, [0.990, 0.667, 0.373]], [0.295, [0.990, 0.667, 0.373]], [0.297, [0.991, 0.677, 0.378]], [0.299, [0.991, 0.677, 0.378]], [0.301, [0.992, 0.686, 0.384]], [0.303, [0.992, 0.686, 0.384]], [0.305, [0.992, 0.694, 0.391]], [0.307, [0.992, 0.694, 0.391]], [0.309, [0.993, 0.702, 0.398]], [0.311, [0.993, 0.702, 0.398]], [0.313, [0.993, 0.709, 0.406]], [0.315, [0.993, 0.709, 0.406]], [0.317, [0.993, 0.717, 0.413]], [0.319, [0.993, 0.717, 0.413]], [0.321, [0.993, 0.725, 0.420]], [0.323, [0.993, 0.725, 0.420]], [0.325, [0.993, 0.732, 0.427]], [0.327, [0.993, 0.732, 0.427]], [0.329, [0.993, 0.740, 0.435]], [0.331, [0.993, 0.740, 0.435]], [0.333, [0.993, 0.748, 0.442]], [0.335, [0.993, 0.748, 0.442]], [0.337, [0.994, 0.755, 0.449]], [0.339, [0.994, 0.755, 0.449]], [0.341, [0.994, 0.763, 0.456]], [0.342, [0.994, 0.763, 0.456]], [0.344, [0.994, 0.771, 0.464]], [0.346, [0.994, 0.771, 0.464]], [0.348, [0.994, 0.778, 0.471]], [0.350, [0.994, 0.778, 0.471]], [0.352, [0.994, 0.786, 0.478]], [0.354, [0.994, 0.786, 0.478]], [0.356, [0.994, 0.794, 0.485]], [0.358, [0.994, 0.794, 0.485]], [0.360, [0.995, 0.802, 0.492]], [0.362, [0.995, 0.802, 0.492]], [0.364, [0.995, 0.809, 0.500]], [0.366, [0.995, 0.809, 0.500]], [0.368, [0.995, 0.817, 0.507]], [0.370, [0.995, 0.817, 0.507]], [0.372, [0.995, 0.825, 0.514]], [0.374, [0.995, 0.825, 0.514]], [0.376, [0.995, 0.832, 0.521]], [0.378, [0.995, 0.832, 0.521]], [0.380, [0.995, 0.840, 0.529]], [0.382, [0.995, 0.840, 0.529]], [0.384, [0.995, 0.848, 0.536]], [0.386, [0.995, 0.848, 0.536]], [0.387, [0.996, 0.855, 0.543]], [0.389, [0.996, 0.855, 0.543]], [0.391, [0.996, 0.863, 0.550]], [0.393, [0.996, 0.863, 0.550]], [0.395, [0.996, 0.871, 0.557]], [0.397, [0.996, 0.871, 0.557]], [0.399, [0.996, 0.878, 0.565]], [0.401, [0.996, 0.878, 0.565]], [0.403, [0.996, 0.883, 0.572]], [0.405, [0.996, 0.883, 0.572]], [0.407, [0.996, 0.888, 0.579]], [0.409, [0.996, 0.888, 0.579]], [0.411, [0.997, 0.893, 0.586]], [0.413, [0.997, 0.893, 0.586]], [0.415, [0.997, 0.898, 0.594]], [0.417, [0.997, 0.898, 0.594]], [0.419, [0.997, 0.902, 0.601]], [0.421, [0.997, 0.902, 0.601]], [0.423, [0.997, 0.907, 0.608]], [0.425, [0.997, 0.907, 0.608]], [0.427, [0.997, 0.912, 0.615]], [0.429, [0.997, 0.912, 0.615]], [0.431, [0.997, 0.917, 0.623]], [0.432, [0.997, 0.917, 0.623]], [0.434, [0.997, 0.921, 0.630]], [0.436, [0.997, 0.921, 0.630]], [0.438, [0.998, 0.926, 0.637]], [0.440, [0.998, 0.926, 0.637]], [0.442, [0.998, 0.931, 0.644]], [0.444, [0.998, 0.931, 0.644]], [0.446, [0.998, 0.936, 0.651]], [0.448, [0.998, 0.936, 0.651]], [0.450, [0.998, 0.940, 0.659]], [0.452, [0.998, 0.940, 0.659]], [0.454, [0.998, 0.945, 0.666]], [0.456, [0.998, 0.945, 0.666]], [0.458, [0.998, 0.950, 0.673]], [0.460, [0.998, 0.950, 0.673]], [0.462, [0.999, 0.955, 0.680]], [0.464, [0.999, 0.955, 0.680]], [0.466, [0.999, 0.959, 0.688]], [0.468, [0.999, 0.959, 0.688]], [0.470, [0.999, 0.964, 0.695]], [0.472, [0.999, 0.964, 0.695]], [0.474, [0.999, 0.969, 0.702]], [0.476, [0.999, 0.969, 0.702]], [0.477, [0.999, 0.974, 0.709]], [0.479, [0.999, 0.974, 0.709]], [0.481, [0.999, 0.979, 0.716]], [0.483, [0.999, 0.979, 0.716]], [0.485, [0.999, 0.983, 0.724]], [0.487, [0.999, 0.983, 0.724]], [0.489, [1.000, 0.988, 0.731]], [0.491, [1.000, 0.988, 0.731]], [0.493, [1.000, 0.993, 0.738]], [0.495, [1.000, 0.993, 0.738]], [0.497, [1.000, 0.998, 0.745]], [0.499, [1.000, 0.998, 0.745]], [0.501, [0.998, 0.999, 0.753]], [0.503, [0.998, 0.999, 0.753]], [0.505, [0.993, 0.997, 0.762]], [0.507, [0.993, 0.997, 0.762]], [0.509, [0.988, 0.995, 0.771]], [0.511, [0.988, 0.995, 0.771]], [0.513, [0.983, 0.994, 0.780]], [0.515, [0.983, 0.994, 0.780]], [0.517, [0.979, 0.992, 0.788]], [0.519, [0.979, 0.992, 0.788]], [0.521, [0.974, 0.990, 0.797]], [0.523, [0.974, 0.990, 0.797]], [0.524, [0.969, 0.988, 0.806]], [0.526, [0.969, 0.988, 0.806]], [0.528, [0.964, 0.986, 0.815]], [0.530, [0.964, 0.986, 0.815]], [0.532, [0.959, 0.984, 0.824]], [0.534, [0.959, 0.984, 0.824]], [0.536, [0.955, 0.982, 0.832]], [0.538, [0.955, 0.982, 0.832]], [0.540, [0.950, 0.981, 0.841]], [0.542, [0.950, 0.981, 0.841]], [0.544, [0.945, 0.979, 0.850]], [0.546, [0.945, 0.979, 0.850]], [0.548, [0.940, 0.977, 0.859]], [0.550, [0.940, 0.977, 0.859]], [0.552, [0.936, 0.975, 0.867]], [0.554, [0.936, 0.975, 0.867]], [0.556, [0.931, 0.973, 0.876]], [0.558, [0.931, 0.973, 0.876]], [0.560, [0.926, 0.971, 0.885]], [0.562, [0.926, 0.971, 0.885]], [0.564, [0.921, 0.970, 0.894]], [0.566, [0.921, 0.970, 0.894]], [0.568, [0.917, 0.968, 0.902]], [0.569, [0.917, 0.968, 0.902]], [0.571, [0.912, 0.966, 0.911]], [0.573, [0.912, 0.966, 0.911]], [0.575, [0.907, 0.964, 0.920]], [0.577, [0.907, 0.964, 0.920]], [0.579, [0.902, 0.962, 0.929]], [0.581, [0.902, 0.962, 0.929]], [0.583, [0.898, 0.960, 0.937]], [0.585, [0.898, 0.960, 0.937]], [0.587, [0.893, 0.958, 0.946]], [0.589, [0.893, 0.958, 0.946]], [0.591, [0.888, 0.957, 0.955]], [0.593, [0.888, 0.957, 0.955]], [0.595, [0.883, 0.955, 0.964]], [0.597, [0.883, 0.955, 0.964]], [0.599, [0.878, 0.953, 0.973]], [0.601, [0.878, 0.953, 0.973]], [0.603, [0.870, 0.949, 0.970]], [0.605, [0.870, 0.949, 0.970]], [0.607, [0.862, 0.945, 0.968]], [0.609, [0.862, 0.945, 0.968]], [0.611, [0.854, 0.941, 0.966]], [0.613, [0.854, 0.941, 0.966]], [0.614, [0.846, 0.937, 0.963]], [0.616, [0.846, 0.937, 0.963]], [0.618, [0.838, 0.933, 0.961]], [0.620, [0.838, 0.933, 0.961]], [0.622, [0.830, 0.929, 0.959]], [0.624, [0.830, 0.929, 0.959]], [0.626, [0.821, 0.925, 0.956]], [0.628, [0.821, 0.925, 0.956]], [0.630, [0.813, 0.921, 0.954]], [0.632, [0.813, 0.921, 0.954]], [0.634, [0.805, 0.917, 0.952]], [0.636, [0.805, 0.917, 0.952]], [0.638, [0.797, 0.913, 0.949]], [0.640, [0.797, 0.913, 0.949]], [0.642, [0.789, 0.909, 0.947]], [0.644, [0.789, 0.909, 0.947]], [0.646, [0.781, 0.905, 0.945]], [0.648, [0.781, 0.905, 0.945]], [0.650, [0.772, 0.901, 0.943]], [0.652, [0.772, 0.901, 0.943]], [0.654, [0.764, 0.897, 0.940]], [0.656, [0.764, 0.897, 0.940]], [0.658, [0.756, 0.893, 0.938]], [0.659, [0.756, 0.893, 0.938]], [0.661, [0.748, 0.889, 0.936]], [0.663, [0.748, 0.889, 0.936]], [0.665, [0.740, 0.885, 0.933]], [0.667, [0.740, 0.885, 0.933]], [0.669, [0.732, 0.881, 0.931]], [0.671, [0.732, 0.881, 0.931]], [0.673, [0.724, 0.877, 0.929]], [0.675, [0.724, 0.877, 0.929]], [0.677, [0.715, 0.873, 0.926]], [0.679, [0.715, 0.873, 0.926]], [0.681, [0.707, 0.869, 0.924]], [0.683, [0.707, 0.869, 0.924]], [0.685, [0.699, 0.865, 0.922]], [0.687, [0.699, 0.865, 0.922]], [0.689, [0.691, 0.861, 0.919]], [0.691, [0.691, 0.861, 0.919]], [0.693, [0.683, 0.857, 0.917]], [0.695, [0.683, 0.857, 0.917]], [0.697, [0.675, 0.853, 0.915]], [0.699, [0.675, 0.853, 0.915]], [0.701, [0.666, 0.848, 0.912]], [0.703, [0.666, 0.848, 0.912]], [0.705, [0.658, 0.841, 0.908]], [0.706, [0.658, 0.841, 0.908]], [0.708, [0.649, 0.834, 0.904]], [0.710, [0.649, 0.834, 0.904]], [0.712, [0.641, 0.827, 0.901]], [0.714, [0.641, 0.827, 0.901]], [0.716, [0.633, 0.821, 0.897]], [0.718, [0.633, 0.821, 0.897]], [0.720, [0.624, 0.814, 0.893]], [0.722, [0.624, 0.814, 0.893]], [0.724, [0.616, 0.807, 0.890]], [0.726, [0.616, 0.807, 0.890]], [0.728, [0.607, 0.800, 0.886]], [0.730, [0.607, 0.800, 0.886]], [0.732, [0.599, 0.793, 0.882]], [0.734, [0.599, 0.793, 0.882]], [0.736, [0.590, 0.787, 0.879]], [0.738, [0.590, 0.787, 0.879]], [0.740, [0.582, 0.780, 0.875]], [0.742, [0.582, 0.780, 0.875]], [0.744, [0.573, 0.773, 0.871]], [0.746, [0.573, 0.773, 0.871]], [0.748, [0.565, 0.766, 0.868]], [0.750, [0.565, 0.766, 0.868]], [0.751, [0.556, 0.760, 0.864]], [0.753, [0.556, 0.760, 0.864]], [0.755, [0.548, 0.753, 0.860]], [0.757, [0.548, 0.753, 0.860]], [0.759, [0.539, 0.746, 0.857]], [0.761, [0.539, 0.746, 0.857]], [0.763, [0.531, 0.739, 0.853]], [0.765, [0.531, 0.739, 0.853]], [0.767, [0.523, 0.733, 0.849]], [0.769, [0.523, 0.733, 0.849]], [0.771, [0.514, 0.726, 0.845]], [0.773, [0.514, 0.726, 0.845]], [0.775, [0.506, 0.719, 0.842]], [0.777, [0.506, 0.719, 0.842]], [0.779, [0.497, 0.712, 0.838]], [0.781, [0.497, 0.712, 0.838]], [0.783, [0.489, 0.705, 0.834]], [0.785, [0.489, 0.705, 0.834]], [0.787, [0.480, 0.699, 0.831]], [0.789, [0.480, 0.699, 0.831]], [0.791, [0.472, 0.692, 0.827]], [0.793, [0.472, 0.692, 0.827]], [0.795, [0.463, 0.685, 0.823]], [0.796, [0.463, 0.685, 0.823]], [0.798, [0.455, 0.678, 0.820]], [0.800, [0.455, 0.678, 0.820]], [0.802, [0.448, 0.670, 0.815]], [0.804, [0.448, 0.670, 0.815]], [0.806, [0.440, 0.661, 0.811]], [0.808, [0.440, 0.661, 0.811]], [0.810, [0.433, 0.653, 0.806]], [0.812, [0.433, 0.653, 0.806]], [0.814, [0.426, 0.644, 0.802]], [0.816, [0.426, 0.644, 0.802]], [0.818, [0.419, 0.635, 0.797]], [0.820, [0.419, 0.635, 0.797]], [0.822, [0.412, 0.627, 0.793]], [0.824, [0.412, 0.627, 0.793]], [0.826, [0.404, 0.618, 0.788]], [0.828, [0.404, 0.618, 0.788]], [0.830, [0.397, 0.610, 0.784]], [0.832, [0.397, 0.610, 0.784]], [0.834, [0.390, 0.601, 0.779]], [0.836, [0.390, 0.601, 0.779]], [0.838, [0.383, 0.592, 0.775]], [0.840, [0.383, 0.592, 0.775]], [0.841, [0.375, 0.584, 0.771]], [0.843, [0.375, 0.584, 0.771]], [0.845, [0.368, 0.575, 0.766]], [0.847, [0.368, 0.575, 0.766]], [0.849, [0.361, 0.566, 0.762]], [0.851, [0.361, 0.566, 0.762]], [0.853, [0.354, 0.558, 0.757]], [0.855, [0.354, 0.558, 0.757]], [0.857, [0.346, 0.549, 0.753]], [0.859, [0.346, 0.549, 0.753]], [0.861, [0.339, 0.541, 0.748]], [0.863, [0.339, 0.541, 0.748]], [0.865, [0.332, 0.532, 0.744]], [0.867, [0.332, 0.532, 0.744]], [0.869, [0.325, 0.523, 0.739]], [0.871, [0.325, 0.523, 0.739]], [0.873, [0.318, 0.515, 0.735]], [0.875, [0.318, 0.515, 0.735]], [0.877, [0.310, 0.506, 0.730]], [0.879, [0.310, 0.506, 0.730]], [0.881, [0.303, 0.498, 0.726]], [0.883, [0.303, 0.498, 0.726]], [0.885, [0.296, 0.489, 0.721]], [0.886, [0.296, 0.489, 0.721]], [0.888, [0.289, 0.480, 0.717]], [0.890, [0.289, 0.480, 0.717]], [0.892, [0.281, 0.472, 0.713]], [0.894, [0.281, 0.472, 0.713]], [0.896, [0.274, 0.463, 0.708]], [0.898, [0.274, 0.463, 0.708]], [0.900, [0.269, 0.454, 0.703]], [0.902, [0.269, 0.454, 0.703]], [0.904, [0.266, 0.444, 0.699]], [0.906, [0.266, 0.444, 0.699]], [0.908, [0.263, 0.435, 0.694]], [0.910, [0.263, 0.435, 0.694]], [0.912, [0.260, 0.425, 0.689]], [0.914, [0.260, 0.425, 0.689]], [0.916, [0.257, 0.415, 0.684]], [0.918, [0.257, 0.415, 0.684]], [0.920, [0.254, 0.406, 0.680]], [0.922, [0.254, 0.406, 0.680]], [0.924, [0.251, 0.396, 0.675]], [0.926, [0.251, 0.396, 0.675]], [0.928, [0.248, 0.386, 0.670]], [0.930, [0.248, 0.386, 0.670]], [0.932, [0.244, 0.376, 0.665]], [0.933, [0.244, 0.376, 0.665]], [0.935, [0.241, 0.367, 0.661]], [0.937, [0.241, 0.367, 0.661]], [0.939, [0.238, 0.357, 0.656]], [0.941, [0.238, 0.357, 0.656]], [0.943, [0.235, 0.347, 0.651]], [0.945, [0.235, 0.347, 0.651]], [0.947, [0.232, 0.338, 0.646]], [0.949, [0.232, 0.338, 0.646]], [0.951, [0.229, 0.328, 0.642]], [0.953, [0.229, 0.328, 0.642]], [0.955, [0.226, 0.318, 0.637]], [0.957, [0.226, 0.318, 0.637]], [0.959, [0.223, 0.309, 0.632]], [0.961, [0.223, 0.309, 0.632]], [0.963, [0.220, 0.299, 0.627]], [0.965, [0.220, 0.299, 0.627]], [0.967, [0.217, 0.289, 0.622]], [0.969, [0.217, 0.289, 0.622]], [0.971, [0.214, 0.280, 0.618]], [0.973, [0.214, 0.280, 0.618]], [0.975, [0.211, 0.270, 0.613]], [0.977, [0.211, 0.270, 0.613]], [0.978, [0.208, 0.260, 0.608]], [0.980, [0.208, 0.260, 0.608]], [0.982, [0.204, 0.251, 0.603]], [0.984, [0.204, 0.251, 0.603]], [0.986, [0.201, 0.241, 0.599]], [0.988, [0.201, 0.241, 0.599]], [0.990, [0.198, 0.231, 0.594]], [0.992, [0.198, 0.231, 0.594]], [0.994, [0.195, 0.221, 0.589]], [0.996, [0.195, 0.221, 0.589]], [0.998, [0.192, 0.212, 0.584]], [1.000, [0.192, 0.212, 0.584]]];
+var RdYlGn = [[0.000, [0.647, 0.000, 0.149]], [0.002, [0.647, 0.000, 0.149]], [0.004, [0.655, 0.007, 0.149]], [0.006, [0.655, 0.007, 0.149]], [0.008, [0.662, 0.015, 0.149]], [0.010, [0.662, 0.015, 0.149]], [0.012, [0.670, 0.022, 0.149]], [0.014, [0.670, 0.022, 0.149]], [0.016, [0.678, 0.030, 0.150]], [0.018, [0.678, 0.030, 0.150]], [0.020, [0.686, 0.037, 0.150]], [0.022, [0.686, 0.037, 0.150]], [0.023, [0.693, 0.044, 0.150]], [0.025, [0.693, 0.044, 0.150]], [0.027, [0.701, 0.052, 0.150]], [0.029, [0.701, 0.052, 0.150]], [0.031, [0.709, 0.059, 0.150]], [0.033, [0.709, 0.059, 0.150]], [0.035, [0.716, 0.066, 0.150]], [0.037, [0.716, 0.066, 0.150]], [0.039, [0.724, 0.074, 0.151]], [0.041, [0.724, 0.074, 0.151]], [0.043, [0.732, 0.081, 0.151]], [0.045, [0.732, 0.081, 0.151]], [0.047, [0.739, 0.089, 0.151]], [0.049, [0.739, 0.089, 0.151]], [0.051, [0.747, 0.096, 0.151]], [0.053, [0.747, 0.096, 0.151]], [0.055, [0.755, 0.103, 0.151]], [0.057, [0.755, 0.103, 0.151]], [0.059, [0.762, 0.111, 0.151]], [0.061, [0.762, 0.111, 0.151]], [0.063, [0.770, 0.118, 0.151]], [0.065, [0.770, 0.118, 0.151]], [0.067, [0.778, 0.125, 0.152]], [0.068, [0.778, 0.125, 0.152]], [0.070, [0.785, 0.133, 0.152]], [0.072, [0.785, 0.133, 0.152]], [0.074, [0.793, 0.140, 0.152]], [0.076, [0.793, 0.140, 0.152]], [0.078, [0.801, 0.148, 0.152]], [0.080, [0.801, 0.148, 0.152]], [0.082, [0.809, 0.155, 0.152]], [0.084, [0.809, 0.155, 0.152]], [0.086, [0.816, 0.162, 0.152]], [0.088, [0.816, 0.162, 0.152]], [0.090, [0.824, 0.170, 0.153]], [0.092, [0.824, 0.170, 0.153]], [0.094, [0.832, 0.177, 0.153]], [0.096, [0.832, 0.177, 0.153]], [0.098, [0.839, 0.185, 0.153]], [0.100, [0.839, 0.185, 0.153]], [0.102, [0.845, 0.193, 0.155]], [0.104, [0.845, 0.193, 0.155]], [0.106, [0.850, 0.202, 0.159]], [0.108, [0.850, 0.202, 0.159]], [0.110, [0.854, 0.212, 0.164]], [0.112, [0.854, 0.212, 0.164]], [0.114, [0.859, 0.221, 0.168]], [0.115, [0.859, 0.221, 0.168]], [0.117, [0.863, 0.230, 0.172]], [0.119, [0.863, 0.230, 0.172]], [0.121, [0.868, 0.240, 0.177]], [0.123, [0.868, 0.240, 0.177]], [0.125, [0.872, 0.249, 0.181]], [0.127, [0.872, 0.249, 0.181]], [0.129, [0.877, 0.259, 0.185]], [0.131, [0.877, 0.259, 0.185]], [0.133, [0.881, 0.268, 0.190]], [0.135, [0.881, 0.268, 0.190]], [0.137, [0.886, 0.277, 0.194]], [0.139, [0.886, 0.277, 0.194]], [0.141, [0.890, 0.287, 0.198]], [0.143, [0.890, 0.287, 0.198]], [0.145, [0.894, 0.296, 0.202]], [0.147, [0.894, 0.296, 0.202]], [0.149, [0.899, 0.305, 0.207]], [0.151, [0.899, 0.305, 0.207]], [0.153, [0.903, 0.315, 0.211]], [0.155, [0.903, 0.315, 0.211]], [0.157, [0.908, 0.324, 0.215]], [0.159, [0.908, 0.324, 0.215]], [0.160, [0.912, 0.334, 0.220]], [0.162, [0.912, 0.334, 0.220]], [0.164, [0.917, 0.343, 0.224]], [0.166, [0.917, 0.343, 0.224]], [0.168, [0.921, 0.352, 0.228]], [0.170, [0.921, 0.352, 0.228]], [0.172, [0.926, 0.362, 0.233]], [0.174, [0.926, 0.362, 0.233]], [0.176, [0.930, 0.371, 0.237]], [0.178, [0.930, 0.371, 0.237]], [0.180, [0.935, 0.381, 0.241]], [0.182, [0.935, 0.381, 0.241]], [0.184, [0.939, 0.390, 0.246]], [0.186, [0.939, 0.390, 0.246]], [0.188, [0.943, 0.399, 0.250]], [0.190, [0.943, 0.399, 0.250]], [0.192, [0.948, 0.409, 0.254]], [0.194, [0.948, 0.409, 0.254]], [0.196, [0.952, 0.418, 0.258]], [0.198, [0.952, 0.418, 0.258]], [0.200, [0.957, 0.427, 0.263]], [0.202, [0.957, 0.427, 0.263]], [0.204, [0.958, 0.437, 0.267]], [0.205, [0.958, 0.437, 0.267]], [0.207, [0.960, 0.447, 0.272]], [0.209, [0.960, 0.447, 0.272]], [0.211, [0.961, 0.457, 0.277]], [0.213, [0.961, 0.457, 0.277]], [0.215, [0.962, 0.467, 0.281]], [0.217, [0.962, 0.467, 0.281]], [0.219, [0.964, 0.477, 0.286]], [0.221, [0.964, 0.477, 0.286]], [0.223, [0.965, 0.487, 0.290]], [0.225, [0.965, 0.487, 0.290]], [0.227, [0.967, 0.497, 0.295]], [0.229, [0.967, 0.497, 0.295]], [0.231, [0.968, 0.507, 0.300]], [0.233, [0.968, 0.507, 0.300]], [0.235, [0.969, 0.517, 0.304]], [0.237, [0.969, 0.517, 0.304]], [0.239, [0.971, 0.527, 0.309]], [0.241, [0.971, 0.527, 0.309]], [0.243, [0.972, 0.537, 0.313]], [0.245, [0.972, 0.537, 0.313]], [0.247, [0.973, 0.547, 0.318]], [0.249, [0.973, 0.547, 0.318]], [0.250, [0.975, 0.557, 0.323]], [0.252, [0.975, 0.557, 0.323]], [0.254, [0.976, 0.567, 0.327]], [0.256, [0.976, 0.567, 0.327]], [0.258, [0.978, 0.577, 0.332]], [0.260, [0.978, 0.577, 0.332]], [0.262, [0.979, 0.587, 0.337]], [0.264, [0.979, 0.587, 0.337]], [0.266, [0.980, 0.597, 0.341]], [0.268, [0.980, 0.597, 0.341]], [0.270, [0.982, 0.607, 0.346]], [0.272, [0.982, 0.607, 0.346]], [0.274, [0.983, 0.617, 0.350]], [0.276, [0.983, 0.617, 0.350]], [0.278, [0.985, 0.627, 0.355]], [0.280, [0.985, 0.627, 0.355]], [0.282, [0.986, 0.637, 0.360]], [0.284, [0.986, 0.637, 0.360]], [0.286, [0.987, 0.647, 0.364]], [0.288, [0.987, 0.647, 0.364]], [0.290, [0.989, 0.657, 0.369]], [0.292, [0.989, 0.657, 0.369]], [0.294, [0.990, 0.667, 0.373]], [0.295, [0.990, 0.667, 0.373]], [0.297, [0.991, 0.677, 0.378]], [0.299, [0.991, 0.677, 0.378]], [0.301, [0.992, 0.686, 0.384]], [0.303, [0.992, 0.686, 0.384]], [0.305, [0.992, 0.694, 0.390]], [0.307, [0.992, 0.694, 0.390]], [0.309, [0.993, 0.702, 0.397]], [0.311, [0.993, 0.702, 0.397]], [0.313, [0.993, 0.709, 0.403]], [0.315, [0.993, 0.709, 0.403]], [0.317, [0.993, 0.717, 0.409]], [0.319, [0.993, 0.717, 0.409]], [0.321, [0.993, 0.725, 0.416]], [0.323, [0.993, 0.725, 0.416]], [0.325, [0.993, 0.732, 0.422]], [0.327, [0.993, 0.732, 0.422]], [0.329, [0.993, 0.740, 0.429]], [0.331, [0.993, 0.740, 0.429]], [0.333, [0.993, 0.748, 0.435]], [0.335, [0.993, 0.748, 0.435]], [0.337, [0.994, 0.755, 0.442]], [0.339, [0.994, 0.755, 0.442]], [0.341, [0.994, 0.763, 0.448]], [0.342, [0.994, 0.763, 0.448]], [0.344, [0.994, 0.771, 0.455]], [0.346, [0.994, 0.771, 0.455]], [0.348, [0.994, 0.778, 0.461]], [0.350, [0.994, 0.778, 0.461]], [0.352, [0.994, 0.786, 0.468]], [0.354, [0.994, 0.786, 0.468]], [0.356, [0.994, 0.794, 0.474]], [0.358, [0.994, 0.794, 0.474]], [0.360, [0.995, 0.802, 0.481]], [0.362, [0.995, 0.802, 0.481]], [0.364, [0.995, 0.809, 0.487]], [0.366, [0.995, 0.809, 0.487]], [0.368, [0.995, 0.817, 0.493]], [0.370, [0.995, 0.817, 0.493]], [0.372, [0.995, 0.825, 0.500]], [0.374, [0.995, 0.825, 0.500]], [0.376, [0.995, 0.832, 0.506]], [0.378, [0.995, 0.832, 0.506]], [0.380, [0.995, 0.840, 0.513]], [0.382, [0.995, 0.840, 0.513]], [0.384, [0.995, 0.848, 0.519]], [0.386, [0.995, 0.848, 0.519]], [0.387, [0.996, 0.855, 0.526]], [0.389, [0.996, 0.855, 0.526]], [0.391, [0.996, 0.863, 0.532]], [0.393, [0.996, 0.863, 0.532]], [0.395, [0.996, 0.871, 0.539]], [0.397, [0.996, 0.871, 0.539]], [0.399, [0.996, 0.878, 0.545]], [0.401, [0.996, 0.878, 0.545]], [0.403, [0.996, 0.883, 0.553]], [0.405, [0.996, 0.883, 0.553]], [0.407, [0.996, 0.888, 0.561]], [0.409, [0.996, 0.888, 0.561]], [0.411, [0.997, 0.893, 0.569]], [0.413, [0.997, 0.893, 0.569]], [0.415, [0.997, 0.898, 0.577]], [0.417, [0.997, 0.898, 0.577]], [0.419, [0.997, 0.902, 0.585]], [0.421, [0.997, 0.902, 0.585]], [0.423, [0.997, 0.907, 0.593]], [0.425, [0.997, 0.907, 0.593]], [0.427, [0.997, 0.912, 0.601]], [0.429, [0.997, 0.912, 0.601]], [0.431, [0.997, 0.917, 0.609]], [0.432, [0.997, 0.917, 0.609]], [0.434, [0.997, 0.921, 0.617]], [0.436, [0.997, 0.921, 0.617]], [0.438, [0.998, 0.926, 0.625]], [0.440, [0.998, 0.926, 0.625]], [0.442, [0.998, 0.931, 0.633]], [0.444, [0.998, 0.931, 0.633]], [0.446, [0.998, 0.936, 0.641]], [0.448, [0.998, 0.936, 0.641]], [0.450, [0.998, 0.940, 0.649]], [0.452, [0.998, 0.940, 0.649]], [0.454, [0.998, 0.945, 0.657]], [0.456, [0.998, 0.945, 0.657]], [0.458, [0.998, 0.950, 0.665]], [0.460, [0.998, 0.950, 0.665]], [0.462, [0.999, 0.955, 0.673]], [0.464, [0.999, 0.955, 0.673]], [0.466, [0.999, 0.959, 0.681]], [0.468, [0.999, 0.959, 0.681]], [0.470, [0.999, 0.964, 0.689]], [0.472, [0.999, 0.964, 0.689]], [0.474, [0.999, 0.969, 0.697]], [0.476, [0.999, 0.969, 0.697]], [0.477, [0.999, 0.974, 0.705]], [0.479, [0.999, 0.974, 0.705]], [0.481, [0.999, 0.979, 0.713]], [0.483, [0.999, 0.979, 0.713]], [0.485, [0.999, 0.983, 0.721]], [0.487, [0.999, 0.983, 0.721]], [0.489, [1.000, 0.988, 0.729]], [0.491, [1.000, 0.988, 0.729]], [0.493, [1.000, 0.993, 0.737]], [0.495, [1.000, 0.993, 0.737]], [0.497, [1.000, 0.998, 0.745]], [0.499, [1.000, 0.998, 0.745]], [0.501, [0.997, 0.999, 0.745]], [0.503, [0.997, 0.999, 0.745]], [0.505, [0.991, 0.996, 0.737]], [0.507, [0.991, 0.996, 0.737]], [0.509, [0.985, 0.994, 0.729]], [0.511, [0.985, 0.994, 0.729]], [0.513, [0.980, 0.991, 0.721]], [0.515, [0.980, 0.991, 0.721]], [0.517, [0.974, 0.989, 0.713]], [0.519, [0.974, 0.989, 0.713]], [0.521, [0.968, 0.986, 0.705]], [0.523, [0.968, 0.986, 0.705]], [0.524, [0.962, 0.984, 0.697]], [0.526, [0.962, 0.984, 0.697]], [0.528, [0.956, 0.982, 0.689]], [0.530, [0.956, 0.982, 0.689]], [0.532, [0.950, 0.979, 0.681]], [0.534, [0.950, 0.979, 0.681]], [0.536, [0.944, 0.977, 0.673]], [0.538, [0.944, 0.977, 0.673]], [0.540, [0.939, 0.974, 0.665]], [0.542, [0.939, 0.974, 0.665]], [0.544, [0.933, 0.972, 0.657]], [0.546, [0.933, 0.972, 0.657]], [0.548, [0.927, 0.969, 0.649]], [0.550, [0.927, 0.969, 0.649]], [0.552, [0.921, 0.967, 0.641]], [0.554, [0.921, 0.967, 0.641]], [0.556, [0.915, 0.964, 0.633]], [0.558, [0.915, 0.964, 0.633]], [0.560, [0.909, 0.962, 0.625]], [0.562, [0.909, 0.962, 0.625]], [0.564, [0.904, 0.959, 0.617]], [0.566, [0.904, 0.959, 0.617]], [0.568, [0.898, 0.957, 0.609]], [0.569, [0.898, 0.957, 0.609]], [0.571, [0.892, 0.954, 0.601]], [0.573, [0.892, 0.954, 0.601]], [0.575, [0.886, 0.952, 0.593]], [0.577, [0.886, 0.952, 0.593]], [0.579, [0.880, 0.950, 0.585]], [0.581, [0.880, 0.950, 0.585]], [0.583, [0.874, 0.947, 0.577]], [0.585, [0.874, 0.947, 0.577]], [0.587, [0.869, 0.945, 0.569]], [0.589, [0.869, 0.945, 0.569]], [0.591, [0.863, 0.942, 0.561]], [0.593, [0.863, 0.942, 0.561]], [0.595, [0.857, 0.940, 0.553]], [0.597, [0.857, 0.940, 0.553]], [0.599, [0.851, 0.937, 0.545]], [0.601, [0.851, 0.937, 0.545]], [0.603, [0.843, 0.934, 0.540]], [0.605, [0.843, 0.934, 0.540]], [0.607, [0.835, 0.930, 0.535]], [0.609, [0.835, 0.930, 0.535]], [0.611, [0.827, 0.927, 0.530]], [0.613, [0.827, 0.927, 0.530]], [0.614, [0.820, 0.924, 0.525]], [0.616, [0.820, 0.924, 0.525]], [0.618, [0.812, 0.920, 0.520]], [0.620, [0.812, 0.920, 0.520]], [0.622, [0.804, 0.917, 0.515]], [0.624, [0.804, 0.917, 0.515]], [0.626, [0.796, 0.914, 0.510]], [0.628, [0.796, 0.914, 0.510]], [0.630, [0.788, 0.910, 0.504]], [0.632, [0.788, 0.910, 0.504]], [0.634, [0.780, 0.907, 0.499]], [0.636, [0.780, 0.907, 0.499]], [0.638, [0.773, 0.903, 0.494]], [0.640, [0.773, 0.903, 0.494]], [0.642, [0.765, 0.900, 0.489]], [0.644, [0.765, 0.900, 0.489]], [0.646, [0.757, 0.897, 0.484]], [0.648, [0.757, 0.897, 0.484]], [0.650, [0.749, 0.893, 0.479]], [0.652, [0.749, 0.893, 0.479]], [0.654, [0.741, 0.890, 0.474]], [0.656, [0.741, 0.890, 0.474]], [0.658, [0.733, 0.887, 0.469]], [0.659, [0.733, 0.887, 0.469]], [0.661, [0.725, 0.883, 0.464]], [0.663, [0.725, 0.883, 0.464]], [0.665, [0.718, 0.880, 0.459]], [0.667, [0.718, 0.880, 0.459]], [0.669, [0.710, 0.876, 0.454]], [0.671, [0.710, 0.876, 0.454]], [0.673, [0.702, 0.873, 0.449]], [0.675, [0.702, 0.873, 0.449]], [0.677, [0.694, 0.870, 0.444]], [0.679, [0.694, 0.870, 0.444]], [0.681, [0.686, 0.866, 0.439]], [0.683, [0.686, 0.866, 0.439]], [0.685, [0.678, 0.863, 0.433]], [0.687, [0.678, 0.863, 0.433]], [0.689, [0.671, 0.859, 0.428]], [0.691, [0.671, 0.859, 0.428]], [0.693, [0.663, 0.856, 0.423]], [0.695, [0.663, 0.856, 0.423]], [0.697, [0.655, 0.853, 0.418]], [0.699, [0.655, 0.853, 0.418]], [0.701, [0.646, 0.849, 0.415]], [0.703, [0.646, 0.849, 0.415]], [0.705, [0.636, 0.845, 0.414]], [0.706, [0.636, 0.845, 0.414]], [0.708, [0.626, 0.840, 0.413]], [0.710, [0.626, 0.840, 0.413]], [0.712, [0.617, 0.836, 0.412]], [0.714, [0.617, 0.836, 0.412]], [0.716, [0.607, 0.832, 0.411]], [0.718, [0.607, 0.832, 0.411]], [0.720, [0.597, 0.827, 0.410]], [0.722, [0.597, 0.827, 0.410]], [0.724, [0.587, 0.823, 0.409]], [0.726, [0.587, 0.823, 0.409]], [0.728, [0.577, 0.819, 0.408]], [0.730, [0.577, 0.819, 0.408]], [0.732, [0.567, 0.814, 0.407]], [0.734, [0.567, 0.814, 0.407]], [0.736, [0.557, 0.810, 0.405]], [0.738, [0.557, 0.810, 0.405]], [0.740, [0.548, 0.806, 0.404]], [0.742, [0.548, 0.806, 0.404]], [0.744, [0.538, 0.801, 0.403]], [0.746, [0.538, 0.801, 0.403]], [0.748, [0.528, 0.797, 0.402]], [0.750, [0.528, 0.797, 0.402]], [0.751, [0.518, 0.793, 0.401]], [0.753, [0.518, 0.793, 0.401]], [0.755, [0.508, 0.789, 0.400]], [0.757, [0.508, 0.789, 0.400]], [0.759, [0.498, 0.784, 0.399]], [0.761, [0.498, 0.784, 0.399]], [0.763, [0.489, 0.780, 0.398]], [0.765, [0.489, 0.780, 0.398]], [0.767, [0.479, 0.776, 0.397]], [0.769, [0.479, 0.776, 0.397]], [0.771, [0.469, 0.771, 0.396]], [0.773, [0.469, 0.771, 0.396]], [0.775, [0.459, 0.767, 0.395]], [0.777, [0.459, 0.767, 0.395]], [0.779, [0.449, 0.763, 0.394]], [0.781, [0.449, 0.763, 0.394]], [0.783, [0.439, 0.758, 0.393]], [0.785, [0.439, 0.758, 0.393]], [0.787, [0.430, 0.754, 0.391]], [0.789, [0.430, 0.754, 0.391]], [0.791, [0.420, 0.750, 0.390]], [0.793, [0.420, 0.750, 0.390]], [0.795, [0.410, 0.745, 0.389]], [0.796, [0.410, 0.745, 0.389]], [0.798, [0.400, 0.741, 0.388]], [0.800, [0.400, 0.741, 0.388]], [0.802, [0.388, 0.735, 0.385]], [0.804, [0.388, 0.735, 0.385]], [0.806, [0.377, 0.730, 0.382]], [0.808, [0.377, 0.730, 0.382]], [0.810, [0.365, 0.724, 0.379]], [0.812, [0.365, 0.724, 0.379]], [0.814, [0.353, 0.718, 0.377]], [0.816, [0.353, 0.718, 0.377]], [0.818, [0.342, 0.713, 0.374]], [0.820, [0.342, 0.713, 0.374]], [0.822, [0.330, 0.707, 0.371]], [0.824, [0.330, 0.707, 0.371]], [0.826, [0.318, 0.701, 0.368]], [0.828, [0.318, 0.701, 0.368]], [0.830, [0.306, 0.696, 0.365]], [0.832, [0.306, 0.696, 0.365]], [0.834, [0.295, 0.690, 0.362]], [0.836, [0.295, 0.690, 0.362]], [0.838, [0.283, 0.684, 0.359]], [0.840, [0.283, 0.684, 0.359]], [0.841, [0.271, 0.679, 0.356]], [0.843, [0.271, 0.679, 0.356]], [0.845, [0.260, 0.673, 0.353]], [0.847, [0.260, 0.673, 0.353]], [0.849, [0.248, 0.667, 0.350]], [0.851, [0.248, 0.667, 0.350]], [0.853, [0.236, 0.662, 0.347]], [0.855, [0.236, 0.662, 0.347]], [0.857, [0.225, 0.656, 0.344]], [0.859, [0.225, 0.656, 0.344]], [0.861, [0.213, 0.650, 0.341]], [0.863, [0.213, 0.650, 0.341]], [0.865, [0.201, 0.644, 0.339]], [0.867, [0.201, 0.644, 0.339]], [0.869, [0.190, 0.639, 0.336]], [0.871, [0.190, 0.639, 0.336]], [0.873, [0.178, 0.633, 0.333]], [0.875, [0.178, 0.633, 0.333]], [0.877, [0.166, 0.627, 0.330]], [0.879, [0.166, 0.627, 0.330]], [0.881, [0.155, 0.622, 0.327]], [0.883, [0.155, 0.622, 0.327]], [0.885, [0.143, 0.616, 0.324]], [0.886, [0.143, 0.616, 0.324]], [0.888, [0.131, 0.610, 0.321]], [0.890, [0.131, 0.610, 0.321]], [0.892, [0.119, 0.605, 0.318]], [0.894, [0.119, 0.605, 0.318]], [0.896, [0.108, 0.599, 0.315]], [0.898, [0.108, 0.599, 0.315]], [0.900, [0.100, 0.592, 0.312]], [0.902, [0.100, 0.592, 0.312]], [0.904, [0.096, 0.585, 0.308]], [0.906, [0.096, 0.585, 0.308]], [0.908, [0.092, 0.578, 0.304]], [0.910, [0.092, 0.578, 0.304]], [0.912, [0.088, 0.570, 0.300]], [0.914, [0.088, 0.570, 0.300]], [0.916, [0.084, 0.563, 0.296]], [0.918, [0.084, 0.563, 0.296]], [0.920, [0.080, 0.555, 0.293]], [0.922, [0.080, 0.555, 0.293]], [0.924, [0.076, 0.548, 0.289]], [0.926, [0.076, 0.548, 0.289]], [0.928, [0.072, 0.541, 0.285]], [0.930, [0.072, 0.541, 0.285]], [0.932, [0.068, 0.533, 0.281]], [0.933, [0.068, 0.533, 0.281]], [0.935, [0.064, 0.526, 0.277]], [0.937, [0.064, 0.526, 0.277]], [0.939, [0.060, 0.519, 0.273]], [0.941, [0.060, 0.519, 0.273]], [0.943, [0.056, 0.511, 0.270]], [0.945, [0.056, 0.511, 0.270]], [0.947, [0.052, 0.504, 0.266]], [0.949, [0.052, 0.504, 0.266]], [0.951, [0.048, 0.496, 0.262]], [0.953, [0.048, 0.496, 0.262]], [0.955, [0.044, 0.489, 0.258]], [0.957, [0.044, 0.489, 0.258]], [0.959, [0.040, 0.482, 0.254]], [0.961, [0.040, 0.482, 0.254]], [0.963, [0.036, 0.474, 0.250]], [0.965, [0.036, 0.474, 0.250]], [0.967, [0.032, 0.467, 0.246]], [0.969, [0.032, 0.467, 0.246]], [0.971, [0.028, 0.460, 0.243]], [0.973, [0.028, 0.460, 0.243]], [0.975, [0.024, 0.452, 0.239]], [0.977, [0.024, 0.452, 0.239]], [0.978, [0.020, 0.445, 0.235]], [0.980, [0.020, 0.445, 0.235]], [0.982, [0.016, 0.437, 0.231]], [0.984, [0.016, 0.437, 0.231]], [0.986, [0.012, 0.430, 0.227]], [0.988, [0.012, 0.430, 0.227]], [0.990, [0.008, 0.423, 0.223]], [0.992, [0.008, 0.423, 0.223]], [0.994, [0.004, 0.415, 0.220]], [0.996, [0.004, 0.415, 0.220]], [0.998, [0.000, 0.408, 0.216]], [1.000, [0.000, 0.408, 0.216]]];
+var Spectral = [[0.000, [0.620, 0.004, 0.259]], [0.002, [0.620, 0.004, 0.259]], [0.004, [0.628, 0.013, 0.261]], [0.006, [0.628, 0.013, 0.261]], [0.008, [0.637, 0.023, 0.263]], [0.010, [0.637, 0.023, 0.263]], [0.012, [0.645, 0.032, 0.265]], [0.014, [0.645, 0.032, 0.265]], [0.016, [0.653, 0.041, 0.267]], [0.018, [0.653, 0.041, 0.267]], [0.020, [0.662, 0.051, 0.269]], [0.022, [0.662, 0.051, 0.269]], [0.023, [0.670, 0.060, 0.271]], [0.025, [0.670, 0.060, 0.271]], [0.027, [0.679, 0.070, 0.273]], [0.029, [0.679, 0.070, 0.273]], [0.031, [0.687, 0.079, 0.275]], [0.033, [0.687, 0.079, 0.275]], [0.035, [0.696, 0.088, 0.277]], [0.037, [0.696, 0.088, 0.277]], [0.039, [0.704, 0.098, 0.279]], [0.041, [0.704, 0.098, 0.279]], [0.043, [0.713, 0.107, 0.281]], [0.045, [0.713, 0.107, 0.281]], [0.047, [0.721, 0.116, 0.283]], [0.049, [0.721, 0.116, 0.283]], [0.051, [0.730, 0.126, 0.285]], [0.053, [0.730, 0.126, 0.285]], [0.055, [0.738, 0.135, 0.287]], [0.057, [0.738, 0.135, 0.287]], [0.059, [0.746, 0.145, 0.289]], [0.061, [0.746, 0.145, 0.289]], [0.063, [0.755, 0.154, 0.291]], [0.065, [0.755, 0.154, 0.291]], [0.067, [0.763, 0.163, 0.293]], [0.068, [0.763, 0.163, 0.293]], [0.070, [0.772, 0.173, 0.295]], [0.072, [0.772, 0.173, 0.295]], [0.074, [0.780, 0.182, 0.297]], [0.076, [0.780, 0.182, 0.297]], [0.078, [0.789, 0.192, 0.299]], [0.080, [0.789, 0.192, 0.299]], [0.082, [0.797, 0.201, 0.301]], [0.084, [0.797, 0.201, 0.301]], [0.086, [0.806, 0.210, 0.303]], [0.088, [0.806, 0.210, 0.303]], [0.090, [0.814, 0.220, 0.305]], [0.092, [0.814, 0.220, 0.305]], [0.094, [0.823, 0.229, 0.307]], [0.096, [0.823, 0.229, 0.307]], [0.098, [0.831, 0.238, 0.309]], [0.100, [0.831, 0.238, 0.309]], [0.102, [0.838, 0.247, 0.309]], [0.104, [0.838, 0.247, 0.309]], [0.106, [0.842, 0.254, 0.307]], [0.108, [0.842, 0.254, 0.307]], [0.110, [0.847, 0.261, 0.305]], [0.112, [0.847, 0.261, 0.305]], [0.114, [0.852, 0.268, 0.303]], [0.115, [0.852, 0.268, 0.303]], [0.117, [0.857, 0.276, 0.301]], [0.119, [0.857, 0.276, 0.301]], [0.121, [0.862, 0.283, 0.300]], [0.123, [0.862, 0.283, 0.300]], [0.125, [0.866, 0.290, 0.298]], [0.127, [0.866, 0.290, 0.298]], [0.129, [0.871, 0.297, 0.296]], [0.131, [0.871, 0.297, 0.296]], [0.133, [0.876, 0.305, 0.294]], [0.135, [0.876, 0.305, 0.294]], [0.137, [0.881, 0.312, 0.292]], [0.139, [0.881, 0.312, 0.292]], [0.141, [0.885, 0.319, 0.290]], [0.143, [0.885, 0.319, 0.290]], [0.145, [0.890, 0.326, 0.289]], [0.147, [0.890, 0.326, 0.289]], [0.149, [0.895, 0.333, 0.287]], [0.151, [0.895, 0.333, 0.287]], [0.153, [0.900, 0.341, 0.285]], [0.155, [0.900, 0.341, 0.285]], [0.157, [0.904, 0.348, 0.283]], [0.159, [0.904, 0.348, 0.283]], [0.160, [0.909, 0.355, 0.281]], [0.162, [0.909, 0.355, 0.281]], [0.164, [0.914, 0.362, 0.279]], [0.166, [0.914, 0.362, 0.279]], [0.168, [0.919, 0.370, 0.278]], [0.170, [0.919, 0.370, 0.278]], [0.172, [0.923, 0.377, 0.276]], [0.174, [0.923, 0.377, 0.276]], [0.176, [0.928, 0.384, 0.274]], [0.178, [0.928, 0.384, 0.274]], [0.180, [0.933, 0.391, 0.272]], [0.182, [0.933, 0.391, 0.272]], [0.184, [0.938, 0.399, 0.270]], [0.186, [0.938, 0.399, 0.270]], [0.188, [0.943, 0.406, 0.268]], [0.190, [0.943, 0.406, 0.268]], [0.192, [0.947, 0.413, 0.266]], [0.194, [0.947, 0.413, 0.266]], [0.196, [0.952, 0.420, 0.265]], [0.198, [0.952, 0.420, 0.265]], [0.200, [0.957, 0.427, 0.263]], [0.202, [0.957, 0.427, 0.263]], [0.204, [0.958, 0.437, 0.267]], [0.205, [0.958, 0.437, 0.267]], [0.207, [0.960, 0.447, 0.272]], [0.209, [0.960, 0.447, 0.272]], [0.211, [0.961, 0.457, 0.277]], [0.213, [0.961, 0.457, 0.277]], [0.215, [0.962, 0.467, 0.281]], [0.217, [0.962, 0.467, 0.281]], [0.219, [0.964, 0.477, 0.286]], [0.221, [0.964, 0.477, 0.286]], [0.223, [0.965, 0.487, 0.290]], [0.225, [0.965, 0.487, 0.290]], [0.227, [0.967, 0.497, 0.295]], [0.229, [0.967, 0.497, 0.295]], [0.231, [0.968, 0.507, 0.300]], [0.233, [0.968, 0.507, 0.300]], [0.235, [0.969, 0.517, 0.304]], [0.237, [0.969, 0.517, 0.304]], [0.239, [0.971, 0.527, 0.309]], [0.241, [0.971, 0.527, 0.309]], [0.243, [0.972, 0.537, 0.313]], [0.245, [0.972, 0.537, 0.313]], [0.247, [0.973, 0.547, 0.318]], [0.249, [0.973, 0.547, 0.318]], [0.250, [0.975, 0.557, 0.323]], [0.252, [0.975, 0.557, 0.323]], [0.254, [0.976, 0.567, 0.327]], [0.256, [0.976, 0.567, 0.327]], [0.258, [0.978, 0.577, 0.332]], [0.260, [0.978, 0.577, 0.332]], [0.262, [0.979, 0.587, 0.337]], [0.264, [0.979, 0.587, 0.337]], [0.266, [0.980, 0.597, 0.341]], [0.268, [0.980, 0.597, 0.341]], [0.270, [0.982, 0.607, 0.346]], [0.272, [0.982, 0.607, 0.346]], [0.274, [0.983, 0.617, 0.350]], [0.276, [0.983, 0.617, 0.350]], [0.278, [0.985, 0.627, 0.355]], [0.280, [0.985, 0.627, 0.355]], [0.282, [0.986, 0.637, 0.360]], [0.284, [0.986, 0.637, 0.360]], [0.286, [0.987, 0.647, 0.364]], [0.288, [0.987, 0.647, 0.364]], [0.290, [0.989, 0.657, 0.369]], [0.292, [0.989, 0.657, 0.369]], [0.294, [0.990, 0.667, 0.373]], [0.295, [0.990, 0.667, 0.373]], [0.297, [0.991, 0.677, 0.378]], [0.299, [0.991, 0.677, 0.378]], [0.301, [0.992, 0.686, 0.384]], [0.303, [0.992, 0.686, 0.384]], [0.305, [0.992, 0.694, 0.390]], [0.307, [0.992, 0.694, 0.390]], [0.309, [0.993, 0.702, 0.397]], [0.311, [0.993, 0.702, 0.397]], [0.313, [0.993, 0.709, 0.403]], [0.315, [0.993, 0.709, 0.403]], [0.317, [0.993, 0.717, 0.409]], [0.319, [0.993, 0.717, 0.409]], [0.321, [0.993, 0.725, 0.416]], [0.323, [0.993, 0.725, 0.416]], [0.325, [0.993, 0.732, 0.422]], [0.327, [0.993, 0.732, 0.422]], [0.329, [0.993, 0.740, 0.429]], [0.331, [0.993, 0.740, 0.429]], [0.333, [0.993, 0.748, 0.435]], [0.335, [0.993, 0.748, 0.435]], [0.337, [0.994, 0.755, 0.442]], [0.339, [0.994, 0.755, 0.442]], [0.341, [0.994, 0.763, 0.448]], [0.342, [0.994, 0.763, 0.448]], [0.344, [0.994, 0.771, 0.455]], [0.346, [0.994, 0.771, 0.455]], [0.348, [0.994, 0.778, 0.461]], [0.350, [0.994, 0.778, 0.461]], [0.352, [0.994, 0.786, 0.468]], [0.354, [0.994, 0.786, 0.468]], [0.356, [0.994, 0.794, 0.474]], [0.358, [0.994, 0.794, 0.474]], [0.360, [0.995, 0.802, 0.481]], [0.362, [0.995, 0.802, 0.481]], [0.364, [0.995, 0.809, 0.487]], [0.366, [0.995, 0.809, 0.487]], [0.368, [0.995, 0.817, 0.493]], [0.370, [0.995, 0.817, 0.493]], [0.372, [0.995, 0.825, 0.500]], [0.374, [0.995, 0.825, 0.500]], [0.376, [0.995, 0.832, 0.506]], [0.378, [0.995, 0.832, 0.506]], [0.380, [0.995, 0.840, 0.513]], [0.382, [0.995, 0.840, 0.513]], [0.384, [0.995, 0.848, 0.519]], [0.386, [0.995, 0.848, 0.519]], [0.387, [0.996, 0.855, 0.526]], [0.389, [0.996, 0.855, 0.526]], [0.391, [0.996, 0.863, 0.532]], [0.393, [0.996, 0.863, 0.532]], [0.395, [0.996, 0.871, 0.539]], [0.397, [0.996, 0.871, 0.539]], [0.399, [0.996, 0.878, 0.545]], [0.401, [0.996, 0.878, 0.545]], [0.403, [0.996, 0.883, 0.553]], [0.405, [0.996, 0.883, 0.553]], [0.407, [0.996, 0.888, 0.561]], [0.409, [0.996, 0.888, 0.561]], [0.411, [0.997, 0.893, 0.569]], [0.413, [0.997, 0.893, 0.569]], [0.415, [0.997, 0.898, 0.577]], [0.417, [0.997, 0.898, 0.577]], [0.419, [0.997, 0.902, 0.585]], [0.421, [0.997, 0.902, 0.585]], [0.423, [0.997, 0.907, 0.593]], [0.425, [0.997, 0.907, 0.593]], [0.427, [0.997, 0.912, 0.601]], [0.429, [0.997, 0.912, 0.601]], [0.431, [0.997, 0.917, 0.609]], [0.432, [0.997, 0.917, 0.609]], [0.434, [0.997, 0.921, 0.617]], [0.436, [0.997, 0.921, 0.617]], [0.438, [0.998, 0.926, 0.625]], [0.440, [0.998, 0.926, 0.625]], [0.442, [0.998, 0.931, 0.633]], [0.444, [0.998, 0.931, 0.633]], [0.446, [0.998, 0.936, 0.641]], [0.448, [0.998, 0.936, 0.641]], [0.450, [0.998, 0.940, 0.649]], [0.452, [0.998, 0.940, 0.649]], [0.454, [0.998, 0.945, 0.657]], [0.456, [0.998, 0.945, 0.657]], [0.458, [0.998, 0.950, 0.665]], [0.460, [0.998, 0.950, 0.665]], [0.462, [0.999, 0.955, 0.673]], [0.464, [0.999, 0.955, 0.673]], [0.466, [0.999, 0.959, 0.681]], [0.468, [0.999, 0.959, 0.681]], [0.470, [0.999, 0.964, 0.689]], [0.472, [0.999, 0.964, 0.689]], [0.474, [0.999, 0.969, 0.697]], [0.476, [0.999, 0.969, 0.697]], [0.477, [0.999, 0.974, 0.705]], [0.479, [0.999, 0.974, 0.705]], [0.481, [0.999, 0.979, 0.713]], [0.483, [0.999, 0.979, 0.713]], [0.485, [0.999, 0.983, 0.721]], [0.487, [0.999, 0.983, 0.721]], [0.489, [1.000, 0.988, 0.729]], [0.491, [1.000, 0.988, 0.729]], [0.493, [1.000, 0.993, 0.737]], [0.495, [1.000, 0.993, 0.737]], [0.497, [1.000, 0.998, 0.745]], [0.499, [1.000, 0.998, 0.745]], [0.501, [0.998, 0.999, 0.746]], [0.503, [0.998, 0.999, 0.746]], [0.505, [0.994, 0.998, 0.740]], [0.507, [0.994, 0.998, 0.740]], [0.509, [0.990, 0.996, 0.734]], [0.511, [0.990, 0.996, 0.734]], [0.513, [0.987, 0.995, 0.728]], [0.515, [0.987, 0.995, 0.728]], [0.517, [0.983, 0.993, 0.722]], [0.519, [0.983, 0.993, 0.722]], [0.521, [0.979, 0.992, 0.716]], [0.523, [0.979, 0.992, 0.716]], [0.524, [0.975, 0.990, 0.710]], [0.526, [0.975, 0.990, 0.710]], [0.528, [0.971, 0.988, 0.704]], [0.530, [0.971, 0.988, 0.704]], [0.532, [0.967, 0.987, 0.698]], [0.534, [0.967, 0.987, 0.698]], [0.536, [0.963, 0.985, 0.692]], [0.538, [0.963, 0.985, 0.692]], [0.540, [0.960, 0.984, 0.686]], [0.542, [0.960, 0.984, 0.686]], [0.544, [0.956, 0.982, 0.680]], [0.546, [0.956, 0.982, 0.680]], [0.548, [0.952, 0.981, 0.674]], [0.550, [0.952, 0.981, 0.674]], [0.552, [0.948, 0.979, 0.668]], [0.554, [0.948, 0.979, 0.668]], [0.556, [0.944, 0.978, 0.662]], [0.558, [0.944, 0.978, 0.662]], [0.560, [0.940, 0.976, 0.656]], [0.562, [0.940, 0.976, 0.656]], [0.564, [0.937, 0.975, 0.650]], [0.566, [0.937, 0.975, 0.650]], [0.568, [0.933, 0.973, 0.644]], [0.569, [0.933, 0.973, 0.644]], [0.571, [0.929, 0.972, 0.638]], [0.573, [0.929, 0.972, 0.638]], [0.575, [0.925, 0.970, 0.632]], [0.577, [0.925, 0.970, 0.632]], [0.579, [0.921, 0.968, 0.626]], [0.581, [0.921, 0.968, 0.626]], [0.583, [0.917, 0.967, 0.620]], [0.585, [0.917, 0.967, 0.620]], [0.587, [0.913, 0.965, 0.614]], [0.589, [0.913, 0.965, 0.614]], [0.591, [0.910, 0.964, 0.608]], [0.593, [0.910, 0.964, 0.608]], [0.595, [0.906, 0.962, 0.602]], [0.597, [0.906, 0.962, 0.602]], [0.599, [0.902, 0.961, 0.596]], [0.601, [0.902, 0.961, 0.596]], [0.603, [0.893, 0.957, 0.598]], [0.605, [0.893, 0.957, 0.598]], [0.607, [0.884, 0.953, 0.600]], [0.609, [0.884, 0.953, 0.600]], [0.611, [0.875, 0.950, 0.602]], [0.613, [0.875, 0.950, 0.602]], [0.614, [0.866, 0.946, 0.603]], [0.616, [0.866, 0.946, 0.603]], [0.618, [0.857, 0.942, 0.605]], [0.620, [0.857, 0.942, 0.605]], [0.622, [0.848, 0.939, 0.607]], [0.624, [0.848, 0.939, 0.607]], [0.626, [0.838, 0.935, 0.609]], [0.628, [0.838, 0.935, 0.609]], [0.630, [0.829, 0.931, 0.611]], [0.632, [0.829, 0.931, 0.611]], [0.634, [0.820, 0.928, 0.613]], [0.636, [0.820, 0.928, 0.613]], [0.638, [0.811, 0.924, 0.615]], [0.640, [0.811, 0.924, 0.615]], [0.642, [0.802, 0.920, 0.616]], [0.644, [0.802, 0.920, 0.616]], [0.646, [0.793, 0.916, 0.618]], [0.648, [0.793, 0.916, 0.618]], [0.650, [0.784, 0.913, 0.620]], [0.652, [0.784, 0.913, 0.620]], [0.654, [0.775, 0.909, 0.622]], [0.656, [0.775, 0.909, 0.622]], [0.658, [0.766, 0.905, 0.624]], [0.659, [0.766, 0.905, 0.624]], [0.661, [0.757, 0.902, 0.626]], [0.663, [0.757, 0.902, 0.626]], [0.665, [0.748, 0.898, 0.627]], [0.667, [0.748, 0.898, 0.627]], [0.669, [0.739, 0.894, 0.629]], [0.671, [0.739, 0.894, 0.629]], [0.673, [0.730, 0.891, 0.631]], [0.675, [0.730, 0.891, 0.631]], [0.677, [0.720, 0.887, 0.633]], [0.679, [0.720, 0.887, 0.633]], [0.681, [0.711, 0.883, 0.635]], [0.683, [0.711, 0.883, 0.635]], [0.685, [0.702, 0.880, 0.637]], [0.687, [0.702, 0.880, 0.637]], [0.689, [0.693, 0.876, 0.639]], [0.691, [0.693, 0.876, 0.639]], [0.693, [0.684, 0.872, 0.640]], [0.695, [0.684, 0.872, 0.640]], [0.697, [0.675, 0.869, 0.642]], [0.699, [0.675, 0.869, 0.642]], [0.701, [0.665, 0.865, 0.643]], [0.703, [0.665, 0.865, 0.643]], [0.705, [0.655, 0.860, 0.643]], [0.706, [0.655, 0.860, 0.643]], [0.708, [0.644, 0.856, 0.644]], [0.710, [0.644, 0.856, 0.644]], [0.712, [0.633, 0.852, 0.644]], [0.714, [0.633, 0.852, 0.644]], [0.716, [0.623, 0.848, 0.644]], [0.718, [0.623, 0.848, 0.644]], [0.720, [0.612, 0.844, 0.644]], [0.722, [0.612, 0.844, 0.644]], [0.724, [0.602, 0.840, 0.644]], [0.726, [0.602, 0.840, 0.644]], [0.728, [0.591, 0.836, 0.644]], [0.730, [0.591, 0.836, 0.644]], [0.732, [0.580, 0.831, 0.644]], [0.734, [0.580, 0.831, 0.644]], [0.736, [0.570, 0.827, 0.645]], [0.738, [0.570, 0.827, 0.645]], [0.740, [0.559, 0.823, 0.645]], [0.742, [0.559, 0.823, 0.645]], [0.744, [0.549, 0.819, 0.645]], [0.746, [0.549, 0.819, 0.645]], [0.748, [0.538, 0.815, 0.645]], [0.750, [0.538, 0.815, 0.645]], [0.751, [0.527, 0.811, 0.645]], [0.753, [0.527, 0.811, 0.645]], [0.755, [0.517, 0.806, 0.645]], [0.757, [0.517, 0.806, 0.645]], [0.759, [0.506, 0.802, 0.646]], [0.761, [0.506, 0.802, 0.646]], [0.763, [0.496, 0.798, 0.646]], [0.765, [0.496, 0.798, 0.646]], [0.767, [0.485, 0.794, 0.646]], [0.769, [0.485, 0.794, 0.646]], [0.771, [0.474, 0.790, 0.646]], [0.773, [0.474, 0.790, 0.646]], [0.775, [0.464, 0.786, 0.646]], [0.777, [0.464, 0.786, 0.646]], [0.779, [0.453, 0.782, 0.646]], [0.781, [0.453, 0.782, 0.646]], [0.783, [0.442, 0.777, 0.646]], [0.785, [0.442, 0.777, 0.646]], [0.787, [0.432, 0.773, 0.647]], [0.789, [0.432, 0.773, 0.647]], [0.791, [0.421, 0.769, 0.647]], [0.793, [0.421, 0.769, 0.647]], [0.795, [0.411, 0.765, 0.647]], [0.796, [0.411, 0.765, 0.647]], [0.798, [0.400, 0.761, 0.647]], [0.800, [0.400, 0.761, 0.647]], [0.802, [0.392, 0.752, 0.651]], [0.804, [0.392, 0.752, 0.651]], [0.806, [0.384, 0.743, 0.654]], [0.808, [0.384, 0.743, 0.654]], [0.810, [0.376, 0.734, 0.658]], [0.812, [0.376, 0.734, 0.658]], [0.814, [0.368, 0.725, 0.662]], [0.816, [0.368, 0.725, 0.662]], [0.818, [0.360, 0.716, 0.666]], [0.820, [0.360, 0.716, 0.666]], [0.822, [0.352, 0.707, 0.669]], [0.824, [0.352, 0.707, 0.669]], [0.826, [0.344, 0.698, 0.673]], [0.828, [0.344, 0.698, 0.673]], [0.830, [0.336, 0.689, 0.677]], [0.832, [0.336, 0.689, 0.677]], [0.834, [0.328, 0.681, 0.680]], [0.836, [0.328, 0.681, 0.680]], [0.838, [0.320, 0.672, 0.684]], [0.840, [0.320, 0.672, 0.684]], [0.841, [0.312, 0.663, 0.688]], [0.843, [0.312, 0.663, 0.688]], [0.845, [0.304, 0.654, 0.691]], [0.847, [0.304, 0.654, 0.691]], [0.849, [0.296, 0.645, 0.695]], [0.851, [0.296, 0.645, 0.695]], [0.853, [0.288, 0.636, 0.699]], [0.855, [0.288, 0.636, 0.699]], [0.857, [0.280, 0.627, 0.702]], [0.859, [0.280, 0.627, 0.702]], [0.861, [0.272, 0.618, 0.706]], [0.863, [0.272, 0.618, 0.706]], [0.865, [0.264, 0.609, 0.710]], [0.867, [0.264, 0.609, 0.710]], [0.869, [0.256, 0.600, 0.713]], [0.871, [0.256, 0.600, 0.713]], [0.873, [0.248, 0.591, 0.717]], [0.875, [0.248, 0.591, 0.717]], [0.877, [0.240, 0.582, 0.721]], [0.879, [0.240, 0.582, 0.721]], [0.881, [0.232, 0.573, 0.725]], [0.883, [0.232, 0.573, 0.725]], [0.885, [0.224, 0.565, 0.728]], [0.886, [0.224, 0.565, 0.728]], [0.888, [0.216, 0.556, 0.732]], [0.890, [0.216, 0.556, 0.732]], [0.892, [0.208, 0.547, 0.736]], [0.894, [0.208, 0.547, 0.736]], [0.896, [0.200, 0.538, 0.739]], [0.898, [0.200, 0.538, 0.739]], [0.900, [0.199, 0.529, 0.739]], [0.902, [0.199, 0.529, 0.739]], [0.904, [0.206, 0.520, 0.735]], [0.906, [0.206, 0.520, 0.735]], [0.908, [0.213, 0.511, 0.731]], [0.910, [0.213, 0.511, 0.731]], [0.912, [0.220, 0.503, 0.727]], [0.914, [0.220, 0.503, 0.727]], [0.916, [0.227, 0.494, 0.722]], [0.918, [0.227, 0.494, 0.722]], [0.920, [0.233, 0.485, 0.718]], [0.922, [0.233, 0.485, 0.718]], [0.924, [0.240, 0.476, 0.714]], [0.926, [0.240, 0.476, 0.714]], [0.928, [0.247, 0.468, 0.710]], [0.930, [0.247, 0.468, 0.710]], [0.932, [0.254, 0.459, 0.706]], [0.933, [0.254, 0.459, 0.706]], [0.935, [0.260, 0.450, 0.702]], [0.937, [0.260, 0.450, 0.702]], [0.939, [0.267, 0.441, 0.698]], [0.941, [0.267, 0.441, 0.698]], [0.943, [0.274, 0.433, 0.693]], [0.945, [0.274, 0.433, 0.693]], [0.947, [0.281, 0.424, 0.689]], [0.949, [0.281, 0.424, 0.689]], [0.951, [0.287, 0.415, 0.685]], [0.953, [0.287, 0.415, 0.685]], [0.955, [0.294, 0.406, 0.681]], [0.957, [0.294, 0.406, 0.681]], [0.959, [0.301, 0.397, 0.677]], [0.961, [0.301, 0.397, 0.677]], [0.963, [0.308, 0.389, 0.673]], [0.965, [0.308, 0.389, 0.673]], [0.967, [0.314, 0.380, 0.669]], [0.969, [0.314, 0.380, 0.669]], [0.971, [0.321, 0.371, 0.664]], [0.973, [0.321, 0.371, 0.664]], [0.975, [0.328, 0.362, 0.660]], [0.977, [0.328, 0.362, 0.660]], [0.978, [0.335, 0.354, 0.656]], [0.980, [0.335, 0.354, 0.656]], [0.982, [0.342, 0.345, 0.652]], [0.984, [0.342, 0.345, 0.652]], [0.986, [0.348, 0.336, 0.648]], [0.988, [0.348, 0.336, 0.648]], [0.990, [0.355, 0.327, 0.644]], [0.992, [0.355, 0.327, 0.644]], [0.994, [0.362, 0.319, 0.639]], [0.996, [0.362, 0.319, 0.639]], [0.998, [0.369, 0.310, 0.635]], [1.000, [0.369, 0.310, 0.635]]];
+var bwr = [[0.000, [0.000, 0.000, 1.000]], [0.002, [0.000, 0.000, 1.000]], [0.004, [0.008, 0.008, 1.000]], [0.006, [0.008, 0.008, 1.000]], [0.008, [0.016, 0.016, 1.000]], [0.010, [0.016, 0.016, 1.000]], [0.012, [0.024, 0.024, 1.000]], [0.014, [0.024, 0.024, 1.000]], [0.016, [0.031, 0.031, 1.000]], [0.018, [0.031, 0.031, 1.000]], [0.020, [0.039, 0.039, 1.000]], [0.022, [0.039, 0.039, 1.000]], [0.023, [0.047, 0.047, 1.000]], [0.025, [0.047, 0.047, 1.000]], [0.027, [0.055, 0.055, 1.000]], [0.029, [0.055, 0.055, 1.000]], [0.031, [0.063, 0.063, 1.000]], [0.033, [0.063, 0.063, 1.000]], [0.035, [0.071, 0.071, 1.000]], [0.037, [0.071, 0.071, 1.000]], [0.039, [0.078, 0.078, 1.000]], [0.041, [0.078, 0.078, 1.000]], [0.043, [0.086, 0.086, 1.000]], [0.045, [0.086, 0.086, 1.000]], [0.047, [0.094, 0.094, 1.000]], [0.049, [0.094, 0.094, 1.000]], [0.051, [0.102, 0.102, 1.000]], [0.053, [0.102, 0.102, 1.000]], [0.055, [0.110, 0.110, 1.000]], [0.057, [0.110, 0.110, 1.000]], [0.059, [0.118, 0.118, 1.000]], [0.061, [0.118, 0.118, 1.000]], [0.063, [0.125, 0.125, 1.000]], [0.065, [0.125, 0.125, 1.000]], [0.067, [0.133, 0.133, 1.000]], [0.068, [0.133, 0.133, 1.000]], [0.070, [0.141, 0.141, 1.000]], [0.072, [0.141, 0.141, 1.000]], [0.074, [0.149, 0.149, 1.000]], [0.076, [0.149, 0.149, 1.000]], [0.078, [0.157, 0.157, 1.000]], [0.080, [0.157, 0.157, 1.000]], [0.082, [0.165, 0.165, 1.000]], [0.084, [0.165, 0.165, 1.000]], [0.086, [0.173, 0.173, 1.000]], [0.088, [0.173, 0.173, 1.000]], [0.090, [0.180, 0.180, 1.000]], [0.092, [0.180, 0.180, 1.000]], [0.094, [0.188, 0.188, 1.000]], [0.096, [0.188, 0.188, 1.000]], [0.098, [0.196, 0.196, 1.000]], [0.100, [0.196, 0.196, 1.000]], [0.102, [0.204, 0.204, 1.000]], [0.104, [0.204, 0.204, 1.000]], [0.106, [0.212, 0.212, 1.000]], [0.108, [0.212, 0.212, 1.000]], [0.110, [0.220, 0.220, 1.000]], [0.112, [0.220, 0.220, 1.000]], [0.114, [0.227, 0.227, 1.000]], [0.115, [0.227, 0.227, 1.000]], [0.117, [0.235, 0.235, 1.000]], [0.119, [0.235, 0.235, 1.000]], [0.121, [0.243, 0.243, 1.000]], [0.123, [0.243, 0.243, 1.000]], [0.125, [0.251, 0.251, 1.000]], [0.127, [0.251, 0.251, 1.000]], [0.129, [0.259, 0.259, 1.000]], [0.131, [0.259, 0.259, 1.000]], [0.133, [0.267, 0.267, 1.000]], [0.135, [0.267, 0.267, 1.000]], [0.137, [0.275, 0.275, 1.000]], [0.139, [0.275, 0.275, 1.000]], [0.141, [0.282, 0.282, 1.000]], [0.143, [0.282, 0.282, 1.000]], [0.145, [0.290, 0.290, 1.000]], [0.147, [0.290, 0.290, 1.000]], [0.149, [0.298, 0.298, 1.000]], [0.151, [0.298, 0.298, 1.000]], [0.153, [0.306, 0.306, 1.000]], [0.155, [0.306, 0.306, 1.000]], [0.157, [0.314, 0.314, 1.000]], [0.159, [0.314, 0.314, 1.000]], [0.160, [0.322, 0.322, 1.000]], [0.162, [0.322, 0.322, 1.000]], [0.164, [0.329, 0.329, 1.000]], [0.166, [0.329, 0.329, 1.000]], [0.168, [0.337, 0.337, 1.000]], [0.170, [0.337, 0.337, 1.000]], [0.172, [0.345, 0.345, 1.000]], [0.174, [0.345, 0.345, 1.000]], [0.176, [0.353, 0.353, 1.000]], [0.178, [0.353, 0.353, 1.000]], [0.180, [0.361, 0.361, 1.000]], [0.182, [0.361, 0.361, 1.000]], [0.184, [0.369, 0.369, 1.000]], [0.186, [0.369, 0.369, 1.000]], [0.188, [0.376, 0.376, 1.000]], [0.190, [0.376, 0.376, 1.000]], [0.192, [0.384, 0.384, 1.000]], [0.194, [0.384, 0.384, 1.000]], [0.196, [0.392, 0.392, 1.000]], [0.198, [0.392, 0.392, 1.000]], [0.200, [0.400, 0.400, 1.000]], [0.202, [0.400, 0.400, 1.000]], [0.204, [0.408, 0.408, 1.000]], [0.205, [0.408, 0.408, 1.000]], [0.207, [0.416, 0.416, 1.000]], [0.209, [0.416, 0.416, 1.000]], [0.211, [0.424, 0.424, 1.000]], [0.213, [0.424, 0.424, 1.000]], [0.215, [0.431, 0.431, 1.000]], [0.217, [0.431, 0.431, 1.000]], [0.219, [0.439, 0.439, 1.000]], [0.221, [0.439, 0.439, 1.000]], [0.223, [0.447, 0.447, 1.000]], [0.225, [0.447, 0.447, 1.000]], [0.227, [0.455, 0.455, 1.000]], [0.229, [0.455, 0.455, 1.000]], [0.231, [0.463, 0.463, 1.000]], [0.233, [0.463, 0.463, 1.000]], [0.235, [0.471, 0.471, 1.000]], [0.237, [0.471, 0.471, 1.000]], [0.239, [0.478, 0.478, 1.000]], [0.241, [0.478, 0.478, 1.000]], [0.243, [0.486, 0.486, 1.000]], [0.245, [0.486, 0.486, 1.000]], [0.247, [0.494, 0.494, 1.000]], [0.249, [0.494, 0.494, 1.000]], [0.250, [0.502, 0.502, 1.000]], [0.252, [0.502, 0.502, 1.000]], [0.254, [0.510, 0.510, 1.000]], [0.256, [0.510, 0.510, 1.000]], [0.258, [0.518, 0.518, 1.000]], [0.260, [0.518, 0.518, 1.000]], [0.262, [0.525, 0.525, 1.000]], [0.264, [0.525, 0.525, 1.000]], [0.266, [0.533, 0.533, 1.000]], [0.268, [0.533, 0.533, 1.000]], [0.270, [0.541, 0.541, 1.000]], [0.272, [0.541, 0.541, 1.000]], [0.274, [0.549, 0.549, 1.000]], [0.276, [0.549, 0.549, 1.000]], [0.278, [0.557, 0.557, 1.000]], [0.280, [0.557, 0.557, 1.000]], [0.282, [0.565, 0.565, 1.000]], [0.284, [0.565, 0.565, 1.000]], [0.286, [0.573, 0.573, 1.000]], [0.288, [0.573, 0.573, 1.000]], [0.290, [0.580, 0.580, 1.000]], [0.292, [0.580, 0.580, 1.000]], [0.294, [0.588, 0.588, 1.000]], [0.295, [0.588, 0.588, 1.000]], [0.297, [0.596, 0.596, 1.000]], [0.299, [0.596, 0.596, 1.000]], [0.301, [0.604, 0.604, 1.000]], [0.303, [0.604, 0.604, 1.000]], [0.305, [0.612, 0.612, 1.000]], [0.307, [0.612, 0.612, 1.000]], [0.309, [0.620, 0.620, 1.000]], [0.311, [0.620, 0.620, 1.000]], [0.313, [0.627, 0.627, 1.000]], [0.315, [0.627, 0.627, 1.000]], [0.317, [0.635, 0.635, 1.000]], [0.319, [0.635, 0.635, 1.000]], [0.321, [0.643, 0.643, 1.000]], [0.323, [0.643, 0.643, 1.000]], [0.325, [0.651, 0.651, 1.000]], [0.327, [0.651, 0.651, 1.000]], [0.329, [0.659, 0.659, 1.000]], [0.331, [0.659, 0.659, 1.000]], [0.333, [0.667, 0.667, 1.000]], [0.335, [0.667, 0.667, 1.000]], [0.337, [0.675, 0.675, 1.000]], [0.339, [0.675, 0.675, 1.000]], [0.341, [0.682, 0.682, 1.000]], [0.342, [0.682, 0.682, 1.000]], [0.344, [0.690, 0.690, 1.000]], [0.346, [0.690, 0.690, 1.000]], [0.348, [0.698, 0.698, 1.000]], [0.350, [0.698, 0.698, 1.000]], [0.352, [0.706, 0.706, 1.000]], [0.354, [0.706, 0.706, 1.000]], [0.356, [0.714, 0.714, 1.000]], [0.358, [0.714, 0.714, 1.000]], [0.360, [0.722, 0.722, 1.000]], [0.362, [0.722, 0.722, 1.000]], [0.364, [0.729, 0.729, 1.000]], [0.366, [0.729, 0.729, 1.000]], [0.368, [0.737, 0.737, 1.000]], [0.370, [0.737, 0.737, 1.000]], [0.372, [0.745, 0.745, 1.000]], [0.374, [0.745, 0.745, 1.000]], [0.376, [0.753, 0.753, 1.000]], [0.378, [0.753, 0.753, 1.000]], [0.380, [0.761, 0.761, 1.000]], [0.382, [0.761, 0.761, 1.000]], [0.384, [0.769, 0.769, 1.000]], [0.386, [0.769, 0.769, 1.000]], [0.387, [0.776, 0.776, 1.000]], [0.389, [0.776, 0.776, 1.000]], [0.391, [0.784, 0.784, 1.000]], [0.393, [0.784, 0.784, 1.000]], [0.395, [0.792, 0.792, 1.000]], [0.397, [0.792, 0.792, 1.000]], [0.399, [0.800, 0.800, 1.000]], [0.401, [0.800, 0.800, 1.000]], [0.403, [0.808, 0.808, 1.000]], [0.405, [0.808, 0.808, 1.000]], [0.407, [0.816, 0.816, 1.000]], [0.409, [0.816, 0.816, 1.000]], [0.411, [0.824, 0.824, 1.000]], [0.413, [0.824, 0.824, 1.000]], [0.415, [0.831, 0.831, 1.000]], [0.417, [0.831, 0.831, 1.000]], [0.419, [0.839, 0.839, 1.000]], [0.421, [0.839, 0.839, 1.000]], [0.423, [0.847, 0.847, 1.000]], [0.425, [0.847, 0.847, 1.000]], [0.427, [0.855, 0.855, 1.000]], [0.429, [0.855, 0.855, 1.000]], [0.431, [0.863, 0.863, 1.000]], [0.432, [0.863, 0.863, 1.000]], [0.434, [0.871, 0.871, 1.000]], [0.436, [0.871, 0.871, 1.000]], [0.438, [0.878, 0.878, 1.000]], [0.440, [0.878, 0.878, 1.000]], [0.442, [0.886, 0.886, 1.000]], [0.444, [0.886, 0.886, 1.000]], [0.446, [0.894, 0.894, 1.000]], [0.448, [0.894, 0.894, 1.000]], [0.450, [0.902, 0.902, 1.000]], [0.452, [0.902, 0.902, 1.000]], [0.454, [0.910, 0.910, 1.000]], [0.456, [0.910, 0.910, 1.000]], [0.458, [0.918, 0.918, 1.000]], [0.460, [0.918, 0.918, 1.000]], [0.462, [0.925, 0.925, 1.000]], [0.464, [0.925, 0.925, 1.000]], [0.466, [0.933, 0.933, 1.000]], [0.468, [0.933, 0.933, 1.000]], [0.470, [0.941, 0.941, 1.000]], [0.472, [0.941, 0.941, 1.000]], [0.474, [0.949, 0.949, 1.000]], [0.476, [0.949, 0.949, 1.000]], [0.477, [0.957, 0.957, 1.000]], [0.479, [0.957, 0.957, 1.000]], [0.481, [0.965, 0.965, 1.000]], [0.483, [0.965, 0.965, 1.000]], [0.485, [0.973, 0.973, 1.000]], [0.487, [0.973, 0.973, 1.000]], [0.489, [0.980, 0.980, 1.000]], [0.491, [0.980, 0.980, 1.000]], [0.493, [0.988, 0.988, 1.000]], [0.495, [0.988, 0.988, 1.000]], [0.497, [0.996, 0.996, 1.000]], [0.499, [0.996, 0.996, 1.000]], [0.501, [1.000, 0.996, 0.996]], [0.503, [1.000, 0.996, 0.996]], [0.505, [1.000, 0.988, 0.988]], [0.507, [1.000, 0.988, 0.988]], [0.509, [1.000, 0.980, 0.980]], [0.511, [1.000, 0.980, 0.980]], [0.513, [1.000, 0.973, 0.973]], [0.515, [1.000, 0.973, 0.973]], [0.517, [1.000, 0.965, 0.965]], [0.519, [1.000, 0.965, 0.965]], [0.521, [1.000, 0.957, 0.957]], [0.523, [1.000, 0.957, 0.957]], [0.524, [1.000, 0.949, 0.949]], [0.526, [1.000, 0.949, 0.949]], [0.528, [1.000, 0.941, 0.941]], [0.530, [1.000, 0.941, 0.941]], [0.532, [1.000, 0.933, 0.933]], [0.534, [1.000, 0.933, 0.933]], [0.536, [1.000, 0.925, 0.925]], [0.538, [1.000, 0.925, 0.925]], [0.540, [1.000, 0.918, 0.918]], [0.542, [1.000, 0.918, 0.918]], [0.544, [1.000, 0.910, 0.910]], [0.546, [1.000, 0.910, 0.910]], [0.548, [1.000, 0.902, 0.902]], [0.550, [1.000, 0.902, 0.902]], [0.552, [1.000, 0.894, 0.894]], [0.554, [1.000, 0.894, 0.894]], [0.556, [1.000, 0.886, 0.886]], [0.558, [1.000, 0.886, 0.886]], [0.560, [1.000, 0.878, 0.878]], [0.562, [1.000, 0.878, 0.878]], [0.564, [1.000, 0.871, 0.871]], [0.566, [1.000, 0.871, 0.871]], [0.568, [1.000, 0.863, 0.863]], [0.569, [1.000, 0.863, 0.863]], [0.571, [1.000, 0.855, 0.855]], [0.573, [1.000, 0.855, 0.855]], [0.575, [1.000, 0.847, 0.847]], [0.577, [1.000, 0.847, 0.847]], [0.579, [1.000, 0.839, 0.839]], [0.581, [1.000, 0.839, 0.839]], [0.583, [1.000, 0.831, 0.831]], [0.585, [1.000, 0.831, 0.831]], [0.587, [1.000, 0.824, 0.824]], [0.589, [1.000, 0.824, 0.824]], [0.591, [1.000, 0.816, 0.816]], [0.593, [1.000, 0.816, 0.816]], [0.595, [1.000, 0.808, 0.808]], [0.597, [1.000, 0.808, 0.808]], [0.599, [1.000, 0.800, 0.800]], [0.601, [1.000, 0.800, 0.800]], [0.603, [1.000, 0.792, 0.792]], [0.605, [1.000, 0.792, 0.792]], [0.607, [1.000, 0.784, 0.784]], [0.609, [1.000, 0.784, 0.784]], [0.611, [1.000, 0.776, 0.776]], [0.613, [1.000, 0.776, 0.776]], [0.614, [1.000, 0.769, 0.769]], [0.616, [1.000, 0.769, 0.769]], [0.618, [1.000, 0.761, 0.761]], [0.620, [1.000, 0.761, 0.761]], [0.622, [1.000, 0.753, 0.753]], [0.624, [1.000, 0.753, 0.753]], [0.626, [1.000, 0.745, 0.745]], [0.628, [1.000, 0.745, 0.745]], [0.630, [1.000, 0.737, 0.737]], [0.632, [1.000, 0.737, 0.737]], [0.634, [1.000, 0.729, 0.729]], [0.636, [1.000, 0.729, 0.729]], [0.638, [1.000, 0.722, 0.722]], [0.640, [1.000, 0.722, 0.722]], [0.642, [1.000, 0.714, 0.714]], [0.644, [1.000, 0.714, 0.714]], [0.646, [1.000, 0.706, 0.706]], [0.648, [1.000, 0.706, 0.706]], [0.650, [1.000, 0.698, 0.698]], [0.652, [1.000, 0.698, 0.698]], [0.654, [1.000, 0.690, 0.690]], [0.656, [1.000, 0.690, 0.690]], [0.658, [1.000, 0.682, 0.682]], [0.659, [1.000, 0.682, 0.682]], [0.661, [1.000, 0.675, 0.675]], [0.663, [1.000, 0.675, 0.675]], [0.665, [1.000, 0.667, 0.667]], [0.667, [1.000, 0.667, 0.667]], [0.669, [1.000, 0.659, 0.659]], [0.671, [1.000, 0.659, 0.659]], [0.673, [1.000, 0.651, 0.651]], [0.675, [1.000, 0.651, 0.651]], [0.677, [1.000, 0.643, 0.643]], [0.679, [1.000, 0.643, 0.643]], [0.681, [1.000, 0.635, 0.635]], [0.683, [1.000, 0.635, 0.635]], [0.685, [1.000, 0.627, 0.627]], [0.687, [1.000, 0.627, 0.627]], [0.689, [1.000, 0.620, 0.620]], [0.691, [1.000, 0.620, 0.620]], [0.693, [1.000, 0.612, 0.612]], [0.695, [1.000, 0.612, 0.612]], [0.697, [1.000, 0.604, 0.604]], [0.699, [1.000, 0.604, 0.604]], [0.701, [1.000, 0.596, 0.596]], [0.703, [1.000, 0.596, 0.596]], [0.705, [1.000, 0.588, 0.588]], [0.706, [1.000, 0.588, 0.588]], [0.708, [1.000, 0.580, 0.580]], [0.710, [1.000, 0.580, 0.580]], [0.712, [1.000, 0.573, 0.573]], [0.714, [1.000, 0.573, 0.573]], [0.716, [1.000, 0.565, 0.565]], [0.718, [1.000, 0.565, 0.565]], [0.720, [1.000, 0.557, 0.557]], [0.722, [1.000, 0.557, 0.557]], [0.724, [1.000, 0.549, 0.549]], [0.726, [1.000, 0.549, 0.549]], [0.728, [1.000, 0.541, 0.541]], [0.730, [1.000, 0.541, 0.541]], [0.732, [1.000, 0.533, 0.533]], [0.734, [1.000, 0.533, 0.533]], [0.736, [1.000, 0.525, 0.525]], [0.738, [1.000, 0.525, 0.525]], [0.740, [1.000, 0.518, 0.518]], [0.742, [1.000, 0.518, 0.518]], [0.744, [1.000, 0.510, 0.510]], [0.746, [1.000, 0.510, 0.510]], [0.748, [1.000, 0.502, 0.502]], [0.750, [1.000, 0.502, 0.502]], [0.751, [1.000, 0.494, 0.494]], [0.753, [1.000, 0.494, 0.494]], [0.755, [1.000, 0.486, 0.486]], [0.757, [1.000, 0.486, 0.486]], [0.759, [1.000, 0.478, 0.478]], [0.761, [1.000, 0.478, 0.478]], [0.763, [1.000, 0.471, 0.471]], [0.765, [1.000, 0.471, 0.471]], [0.767, [1.000, 0.463, 0.463]], [0.769, [1.000, 0.463, 0.463]], [0.771, [1.000, 0.455, 0.455]], [0.773, [1.000, 0.455, 0.455]], [0.775, [1.000, 0.447, 0.447]], [0.777, [1.000, 0.447, 0.447]], [0.779, [1.000, 0.439, 0.439]], [0.781, [1.000, 0.439, 0.439]], [0.783, [1.000, 0.431, 0.431]], [0.785, [1.000, 0.431, 0.431]], [0.787, [1.000, 0.424, 0.424]], [0.789, [1.000, 0.424, 0.424]], [0.791, [1.000, 0.416, 0.416]], [0.793, [1.000, 0.416, 0.416]], [0.795, [1.000, 0.408, 0.408]], [0.796, [1.000, 0.408, 0.408]], [0.798, [1.000, 0.400, 0.400]], [0.800, [1.000, 0.400, 0.400]], [0.802, [1.000, 0.392, 0.392]], [0.804, [1.000, 0.392, 0.392]], [0.806, [1.000, 0.384, 0.384]], [0.808, [1.000, 0.384, 0.384]], [0.810, [1.000, 0.376, 0.376]], [0.812, [1.000, 0.376, 0.376]], [0.814, [1.000, 0.369, 0.369]], [0.816, [1.000, 0.369, 0.369]], [0.818, [1.000, 0.361, 0.361]], [0.820, [1.000, 0.361, 0.361]], [0.822, [1.000, 0.353, 0.353]], [0.824, [1.000, 0.353, 0.353]], [0.826, [1.000, 0.345, 0.345]], [0.828, [1.000, 0.345, 0.345]], [0.830, [1.000, 0.337, 0.337]], [0.832, [1.000, 0.337, 0.337]], [0.834, [1.000, 0.329, 0.329]], [0.836, [1.000, 0.329, 0.329]], [0.838, [1.000, 0.322, 0.322]], [0.840, [1.000, 0.322, 0.322]], [0.841, [1.000, 0.314, 0.314]], [0.843, [1.000, 0.314, 0.314]], [0.845, [1.000, 0.306, 0.306]], [0.847, [1.000, 0.306, 0.306]], [0.849, [1.000, 0.298, 0.298]], [0.851, [1.000, 0.298, 0.298]], [0.853, [1.000, 0.290, 0.290]], [0.855, [1.000, 0.290, 0.290]], [0.857, [1.000, 0.282, 0.282]], [0.859, [1.000, 0.282, 0.282]], [0.861, [1.000, 0.275, 0.275]], [0.863, [1.000, 0.275, 0.275]], [0.865, [1.000, 0.267, 0.267]], [0.867, [1.000, 0.267, 0.267]], [0.869, [1.000, 0.259, 0.259]], [0.871, [1.000, 0.259, 0.259]], [0.873, [1.000, 0.251, 0.251]], [0.875, [1.000, 0.251, 0.251]], [0.877, [1.000, 0.243, 0.243]], [0.879, [1.000, 0.243, 0.243]], [0.881, [1.000, 0.235, 0.235]], [0.883, [1.000, 0.235, 0.235]], [0.885, [1.000, 0.227, 0.227]], [0.886, [1.000, 0.227, 0.227]], [0.888, [1.000, 0.220, 0.220]], [0.890, [1.000, 0.220, 0.220]], [0.892, [1.000, 0.212, 0.212]], [0.894, [1.000, 0.212, 0.212]], [0.896, [1.000, 0.204, 0.204]], [0.898, [1.000, 0.204, 0.204]], [0.900, [1.000, 0.196, 0.196]], [0.902, [1.000, 0.196, 0.196]], [0.904, [1.000, 0.188, 0.188]], [0.906, [1.000, 0.188, 0.188]], [0.908, [1.000, 0.180, 0.180]], [0.910, [1.000, 0.180, 0.180]], [0.912, [1.000, 0.173, 0.173]], [0.914, [1.000, 0.173, 0.173]], [0.916, [1.000, 0.165, 0.165]], [0.918, [1.000, 0.165, 0.165]], [0.920, [1.000, 0.157, 0.157]], [0.922, [1.000, 0.157, 0.157]], [0.924, [1.000, 0.149, 0.149]], [0.926, [1.000, 0.149, 0.149]], [0.928, [1.000, 0.141, 0.141]], [0.930, [1.000, 0.141, 0.141]], [0.932, [1.000, 0.133, 0.133]], [0.933, [1.000, 0.133, 0.133]], [0.935, [1.000, 0.125, 0.125]], [0.937, [1.000, 0.125, 0.125]], [0.939, [1.000, 0.118, 0.118]], [0.941, [1.000, 0.118, 0.118]], [0.943, [1.000, 0.110, 0.110]], [0.945, [1.000, 0.110, 0.110]], [0.947, [1.000, 0.102, 0.102]], [0.949, [1.000, 0.102, 0.102]], [0.951, [1.000, 0.094, 0.094]], [0.953, [1.000, 0.094, 0.094]], [0.955, [1.000, 0.086, 0.086]], [0.957, [1.000, 0.086, 0.086]], [0.959, [1.000, 0.078, 0.078]], [0.961, [1.000, 0.078, 0.078]], [0.963, [1.000, 0.071, 0.071]], [0.965, [1.000, 0.071, 0.071]], [0.967, [1.000, 0.063, 0.063]], [0.969, [1.000, 0.063, 0.063]], [0.971, [1.000, 0.055, 0.055]], [0.973, [1.000, 0.055, 0.055]], [0.975, [1.000, 0.047, 0.047]], [0.977, [1.000, 0.047, 0.047]], [0.978, [1.000, 0.039, 0.039]], [0.980, [1.000, 0.039, 0.039]], [0.982, [1.000, 0.031, 0.031]], [0.984, [1.000, 0.031, 0.031]], [0.986, [1.000, 0.024, 0.024]], [0.988, [1.000, 0.024, 0.024]], [0.990, [1.000, 0.016, 0.016]], [0.992, [1.000, 0.016, 0.016]], [0.994, [1.000, 0.008, 0.008]], [0.996, [1.000, 0.008, 0.008]], [0.998, [1.000, 0.000, 0.000]], [1.000, [1.000, 0.000, 0.000]]];
+var coolwarm = [[0.000, [0.230, 0.299, 0.754]], [0.002, [0.230, 0.299, 0.754]], [0.004, [0.234, 0.306, 0.760]], [0.006, [0.234, 0.306, 0.760]], [0.008, [0.239, 0.312, 0.766]], [0.010, [0.239, 0.312, 0.766]], [0.012, [0.244, 0.319, 0.772]], [0.014, [0.244, 0.319, 0.772]], [0.016, [0.248, 0.326, 0.778]], [0.018, [0.248, 0.326, 0.778]], [0.020, [0.253, 0.333, 0.784]], [0.022, [0.253, 0.333, 0.784]], [0.023, [0.257, 0.340, 0.790]], [0.025, [0.257, 0.340, 0.790]], [0.027, [0.262, 0.346, 0.796]], [0.029, [0.262, 0.346, 0.796]], [0.031, [0.266, 0.353, 0.802]], [0.033, [0.266, 0.353, 0.802]], [0.035, [0.271, 0.360, 0.807]], [0.037, [0.271, 0.360, 0.807]], [0.039, [0.276, 0.367, 0.813]], [0.041, [0.276, 0.367, 0.813]], [0.043, [0.281, 0.373, 0.818]], [0.045, [0.281, 0.373, 0.818]], [0.047, [0.285, 0.380, 0.823]], [0.049, [0.285, 0.380, 0.823]], [0.051, [0.290, 0.387, 0.829]], [0.053, [0.290, 0.387, 0.829]], [0.055, [0.295, 0.394, 0.834]], [0.057, [0.295, 0.394, 0.834]], [0.059, [0.299, 0.400, 0.840]], [0.061, [0.299, 0.400, 0.840]], [0.063, [0.304, 0.407, 0.845]], [0.065, [0.304, 0.407, 0.845]], [0.067, [0.309, 0.413, 0.850]], [0.068, [0.309, 0.413, 0.850]], [0.070, [0.314, 0.420, 0.855]], [0.072, [0.314, 0.420, 0.855]], [0.074, [0.319, 0.427, 0.860]], [0.076, [0.319, 0.427, 0.860]], [0.078, [0.324, 0.433, 0.865]], [0.080, [0.324, 0.433, 0.865]], [0.082, [0.329, 0.440, 0.870]], [0.084, [0.329, 0.440, 0.870]], [0.086, [0.333, 0.446, 0.874]], [0.088, [0.333, 0.446, 0.874]], [0.090, [0.338, 0.453, 0.879]], [0.092, [0.338, 0.453, 0.879]], [0.094, [0.343, 0.459, 0.884]], [0.096, [0.343, 0.459, 0.884]], [0.098, [0.348, 0.466, 0.888]], [0.100, [0.348, 0.466, 0.888]], [0.102, [0.353, 0.472, 0.893]], [0.104, [0.353, 0.472, 0.893]], [0.106, [0.358, 0.478, 0.897]], [0.108, [0.358, 0.478, 0.897]], [0.110, [0.363, 0.485, 0.901]], [0.112, [0.363, 0.485, 0.901]], [0.114, [0.369, 0.491, 0.905]], [0.115, [0.369, 0.491, 0.905]], [0.117, [0.374, 0.497, 0.909]], [0.119, [0.374, 0.497, 0.909]], [0.121, [0.379, 0.504, 0.914]], [0.123, [0.379, 0.504, 0.914]], [0.125, [0.384, 0.510, 0.918]], [0.127, [0.384, 0.510, 0.918]], [0.129, [0.389, 0.516, 0.921]], [0.131, [0.389, 0.516, 0.921]], [0.133, [0.394, 0.522, 0.925]], [0.135, [0.394, 0.522, 0.925]], [0.137, [0.399, 0.529, 0.928]], [0.139, [0.399, 0.529, 0.928]], [0.141, [0.404, 0.535, 0.932]], [0.143, [0.404, 0.535, 0.932]], [0.145, [0.410, 0.541, 0.936]], [0.147, [0.410, 0.541, 0.936]], [0.149, [0.415, 0.547, 0.939]], [0.151, [0.415, 0.547, 0.939]], [0.153, [0.420, 0.553, 0.943]], [0.155, [0.420, 0.553, 0.943]], [0.157, [0.425, 0.559, 0.946]], [0.159, [0.425, 0.559, 0.946]], [0.160, [0.431, 0.565, 0.949]], [0.162, [0.431, 0.565, 0.949]], [0.164, [0.436, 0.571, 0.952]], [0.166, [0.436, 0.571, 0.952]], [0.168, [0.441, 0.577, 0.955]], [0.170, [0.441, 0.577, 0.955]], [0.172, [0.446, 0.582, 0.957]], [0.174, [0.446, 0.582, 0.957]], [0.176, [0.452, 0.588, 0.960]], [0.178, [0.452, 0.588, 0.960]], [0.180, [0.457, 0.594, 0.963]], [0.182, [0.457, 0.594, 0.963]], [0.184, [0.462, 0.600, 0.966]], [0.186, [0.462, 0.600, 0.966]], [0.188, [0.468, 0.606, 0.969]], [0.190, [0.468, 0.606, 0.969]], [0.192, [0.473, 0.611, 0.971]], [0.194, [0.473, 0.611, 0.971]], [0.196, [0.478, 0.617, 0.973]], [0.198, [0.478, 0.617, 0.973]], [0.200, [0.484, 0.622, 0.975]], [0.202, [0.484, 0.622, 0.975]], [0.204, [0.489, 0.628, 0.977]], [0.205, [0.489, 0.628, 0.977]], [0.207, [0.495, 0.633, 0.979]], [0.209, [0.495, 0.633, 0.979]], [0.211, [0.500, 0.639, 0.981]], [0.213, [0.500, 0.639, 0.981]], [0.215, [0.505, 0.644, 0.983]], [0.217, [0.505, 0.644, 0.983]], [0.219, [0.511, 0.649, 0.985]], [0.221, [0.511, 0.649, 0.985]], [0.223, [0.516, 0.654, 0.986]], [0.225, [0.516, 0.654, 0.986]], [0.227, [0.522, 0.660, 0.988]], [0.229, [0.522, 0.660, 0.988]], [0.231, [0.527, 0.665, 0.989]], [0.233, [0.527, 0.665, 0.989]], [0.235, [0.533, 0.670, 0.990]], [0.237, [0.533, 0.670, 0.990]], [0.239, [0.538, 0.675, 0.992]], [0.241, [0.538, 0.675, 0.992]], [0.243, [0.543, 0.680, 0.993]], [0.245, [0.543, 0.680, 0.993]], [0.247, [0.549, 0.685, 0.994]], [0.249, [0.549, 0.685, 0.994]], [0.250, [0.554, 0.690, 0.996]], [0.252, [0.554, 0.690, 0.996]], [0.254, [0.560, 0.695, 0.996]], [0.256, [0.560, 0.695, 0.996]], [0.258, [0.565, 0.699, 0.997]], [0.260, [0.565, 0.699, 0.997]], [0.262, [0.571, 0.704, 0.997]], [0.264, [0.571, 0.704, 0.997]], [0.266, [0.576, 0.709, 0.998]], [0.268, [0.576, 0.709, 0.998]], [0.270, [0.581, 0.713, 0.998]], [0.272, [0.581, 0.713, 0.998]], [0.274, [0.587, 0.718, 0.999]], [0.276, [0.587, 0.718, 0.999]], [0.278, [0.592, 0.723, 0.999]], [0.280, [0.592, 0.723, 0.999]], [0.282, [0.598, 0.727, 1.000]], [0.284, [0.598, 0.727, 1.000]], [0.286, [0.603, 0.732, 1.000]], [0.288, [0.603, 0.732, 1.000]], [0.290, [0.609, 0.736, 0.999]], [0.292, [0.609, 0.736, 0.999]], [0.294, [0.614, 0.740, 0.999]], [0.295, [0.614, 0.740, 0.999]], [0.297, [0.619, 0.744, 0.999]], [0.299, [0.619, 0.744, 0.999]], [0.301, [0.625, 0.748, 0.999]], [0.303, [0.625, 0.748, 0.999]], [0.305, [0.630, 0.753, 0.999]], [0.307, [0.630, 0.753, 0.999]], [0.309, [0.635, 0.757, 0.998]], [0.311, [0.635, 0.757, 0.998]], [0.313, [0.641, 0.761, 0.998]], [0.315, [0.641, 0.761, 0.998]], [0.317, [0.646, 0.764, 0.997]], [0.319, [0.646, 0.764, 0.997]], [0.321, [0.651, 0.768, 0.996]], [0.323, [0.651, 0.768, 0.996]], [0.325, [0.657, 0.772, 0.995]], [0.327, [0.657, 0.772, 0.995]], [0.329, [0.662, 0.775, 0.994]], [0.331, [0.662, 0.775, 0.994]], [0.333, [0.667, 0.779, 0.993]], [0.335, [0.667, 0.779, 0.993]], [0.337, [0.673, 0.783, 0.992]], [0.339, [0.673, 0.783, 0.992]], [0.341, [0.678, 0.787, 0.991]], [0.342, [0.678, 0.787, 0.991]], [0.344, [0.683, 0.790, 0.990]], [0.346, [0.683, 0.790, 0.990]], [0.348, [0.688, 0.793, 0.988]], [0.350, [0.688, 0.793, 0.988]], [0.352, [0.693, 0.796, 0.986]], [0.354, [0.693, 0.796, 0.986]], [0.356, [0.698, 0.799, 0.985]], [0.358, [0.698, 0.799, 0.985]], [0.360, [0.704, 0.803, 0.983]], [0.362, [0.704, 0.803, 0.983]], [0.364, [0.709, 0.806, 0.981]], [0.366, [0.709, 0.806, 0.981]], [0.368, [0.714, 0.809, 0.979]], [0.370, [0.714, 0.809, 0.979]], [0.372, [0.719, 0.812, 0.978]], [0.374, [0.719, 0.812, 0.978]], [0.376, [0.724, 0.815, 0.976]], [0.378, [0.724, 0.815, 0.976]], [0.380, [0.729, 0.817, 0.973]], [0.382, [0.729, 0.817, 0.973]], [0.384, [0.734, 0.820, 0.971]], [0.386, [0.734, 0.820, 0.971]], [0.387, [0.739, 0.823, 0.968]], [0.389, [0.739, 0.823, 0.968]], [0.391, [0.744, 0.825, 0.966]], [0.393, [0.744, 0.825, 0.966]], [0.395, [0.749, 0.828, 0.963]], [0.397, [0.749, 0.828, 0.963]], [0.399, [0.754, 0.830, 0.961]], [0.401, [0.754, 0.830, 0.961]], [0.403, [0.759, 0.833, 0.958]], [0.405, [0.759, 0.833, 0.958]], [0.407, [0.763, 0.835, 0.956]], [0.409, [0.763, 0.835, 0.956]], [0.411, [0.768, 0.837, 0.952]], [0.413, [0.768, 0.837, 0.952]], [0.415, [0.773, 0.839, 0.949]], [0.417, [0.773, 0.839, 0.949]], [0.419, [0.777, 0.841, 0.946]], [0.421, [0.777, 0.841, 0.946]], [0.423, [0.782, 0.843, 0.943]], [0.425, [0.782, 0.843, 0.943]], [0.427, [0.787, 0.845, 0.940]], [0.429, [0.787, 0.845, 0.940]], [0.431, [0.791, 0.847, 0.937]], [0.432, [0.791, 0.847, 0.937]], [0.434, [0.796, 0.849, 0.933]], [0.436, [0.796, 0.849, 0.933]], [0.438, [0.801, 0.850, 0.930]], [0.440, [0.801, 0.850, 0.930]], [0.442, [0.805, 0.852, 0.926]], [0.444, [0.805, 0.852, 0.926]], [0.446, [0.809, 0.853, 0.922]], [0.448, [0.809, 0.853, 0.922]], [0.450, [0.814, 0.854, 0.918]], [0.452, [0.814, 0.854, 0.918]], [0.454, [0.818, 0.856, 0.915]], [0.456, [0.818, 0.856, 0.915]], [0.458, [0.822, 0.857, 0.911]], [0.460, [0.822, 0.857, 0.911]], [0.462, [0.827, 0.858, 0.907]], [0.464, [0.827, 0.858, 0.907]], [0.466, [0.831, 0.860, 0.903]], [0.468, [0.831, 0.860, 0.903]], [0.470, [0.835, 0.861, 0.899]], [0.472, [0.835, 0.861, 0.899]], [0.474, [0.839, 0.861, 0.894]], [0.476, [0.839, 0.861, 0.894]], [0.477, [0.843, 0.862, 0.890]], [0.479, [0.843, 0.862, 0.890]], [0.481, [0.847, 0.862, 0.886]], [0.483, [0.847, 0.862, 0.886]], [0.485, [0.851, 0.863, 0.881]], [0.487, [0.851, 0.863, 0.881]], [0.489, [0.855, 0.864, 0.877]], [0.491, [0.855, 0.864, 0.877]], [0.493, [0.859, 0.864, 0.872]], [0.495, [0.859, 0.864, 0.872]], [0.497, [0.863, 0.865, 0.868]], [0.499, [0.863, 0.865, 0.868]], [0.501, [0.867, 0.864, 0.863]], [0.503, [0.867, 0.864, 0.863]], [0.505, [0.871, 0.862, 0.857]], [0.507, [0.871, 0.862, 0.857]], [0.509, [0.876, 0.860, 0.851]], [0.511, [0.876, 0.860, 0.851]], [0.513, [0.880, 0.858, 0.846]], [0.515, [0.880, 0.858, 0.846]], [0.517, [0.884, 0.856, 0.840]], [0.519, [0.884, 0.856, 0.840]], [0.521, [0.888, 0.854, 0.835]], [0.523, [0.888, 0.854, 0.835]], [0.524, [0.892, 0.852, 0.829]], [0.526, [0.892, 0.852, 0.829]], [0.528, [0.896, 0.850, 0.823]], [0.530, [0.896, 0.850, 0.823]], [0.532, [0.900, 0.848, 0.818]], [0.534, [0.900, 0.848, 0.818]], [0.536, [0.903, 0.845, 0.812]], [0.538, [0.903, 0.845, 0.812]], [0.540, [0.906, 0.842, 0.806]], [0.542, [0.906, 0.842, 0.806]], [0.544, [0.909, 0.839, 0.800]], [0.546, [0.909, 0.839, 0.800]], [0.548, [0.913, 0.837, 0.795]], [0.550, [0.913, 0.837, 0.795]], [0.552, [0.916, 0.834, 0.789]], [0.554, [0.916, 0.834, 0.789]], [0.556, [0.919, 0.831, 0.783]], [0.558, [0.919, 0.831, 0.783]], [0.560, [0.923, 0.829, 0.777]], [0.562, [0.923, 0.829, 0.777]], [0.564, [0.926, 0.826, 0.771]], [0.566, [0.926, 0.826, 0.771]], [0.568, [0.928, 0.822, 0.765]], [0.569, [0.928, 0.822, 0.765]], [0.571, [0.931, 0.819, 0.759]], [0.573, [0.931, 0.819, 0.759]], [0.575, [0.933, 0.816, 0.753]], [0.577, [0.933, 0.816, 0.753]], [0.579, [0.936, 0.812, 0.747]], [0.581, [0.936, 0.812, 0.747]], [0.583, [0.938, 0.809, 0.741]], [0.585, [0.938, 0.809, 0.741]], [0.587, [0.941, 0.806, 0.735]], [0.589, [0.941, 0.806, 0.735]], [0.591, [0.943, 0.802, 0.729]], [0.593, [0.943, 0.802, 0.729]], [0.595, [0.946, 0.799, 0.723]], [0.597, [0.946, 0.799, 0.723]], [0.599, [0.947, 0.795, 0.717]], [0.601, [0.947, 0.795, 0.717]], [0.603, [0.949, 0.791, 0.711]], [0.605, [0.949, 0.791, 0.711]], [0.607, [0.951, 0.787, 0.705]], [0.609, [0.951, 0.787, 0.705]], [0.611, [0.953, 0.783, 0.699]], [0.613, [0.953, 0.783, 0.699]], [0.614, [0.955, 0.779, 0.693]], [0.616, [0.955, 0.779, 0.693]], [0.618, [0.956, 0.775, 0.686]], [0.620, [0.956, 0.775, 0.686]], [0.622, [0.958, 0.771, 0.680]], [0.624, [0.958, 0.771, 0.680]], [0.626, [0.960, 0.767, 0.674]], [0.628, [0.960, 0.767, 0.674]], [0.630, [0.961, 0.763, 0.668]], [0.632, [0.961, 0.763, 0.668]], [0.634, [0.962, 0.758, 0.662]], [0.636, [0.962, 0.758, 0.662]], [0.638, [0.963, 0.754, 0.656]], [0.640, [0.963, 0.754, 0.656]], [0.642, [0.964, 0.749, 0.649]], [0.644, [0.964, 0.749, 0.649]], [0.646, [0.965, 0.745, 0.643]], [0.648, [0.965, 0.745, 0.643]], [0.650, [0.966, 0.740, 0.637]], [0.652, [0.966, 0.740, 0.637]], [0.654, [0.967, 0.736, 0.631]], [0.656, [0.967, 0.736, 0.631]], [0.658, [0.968, 0.731, 0.625]], [0.659, [0.968, 0.731, 0.625]], [0.661, [0.968, 0.726, 0.618]], [0.663, [0.968, 0.726, 0.618]], [0.665, [0.968, 0.721, 0.612]], [0.667, [0.968, 0.721, 0.612]], [0.669, [0.969, 0.716, 0.606]], [0.671, [0.969, 0.716, 0.606]], [0.673, [0.969, 0.711, 0.600]], [0.675, [0.969, 0.711, 0.600]], [0.677, [0.969, 0.706, 0.594]], [0.679, [0.969, 0.706, 0.594]], [0.681, [0.970, 0.701, 0.588]], [0.683, [0.970, 0.701, 0.588]], [0.685, [0.970, 0.696, 0.581]], [0.687, [0.970, 0.696, 0.581]], [0.689, [0.970, 0.690, 0.575]], [0.691, [0.970, 0.690, 0.575]], [0.693, [0.969, 0.685, 0.569]], [0.695, [0.969, 0.685, 0.569]], [0.697, [0.969, 0.679, 0.563]], [0.699, [0.969, 0.679, 0.563]], [0.701, [0.968, 0.674, 0.557]], [0.703, [0.968, 0.674, 0.557]], [0.705, [0.968, 0.668, 0.550]], [0.706, [0.968, 0.668, 0.550]], [0.708, [0.968, 0.663, 0.544]], [0.710, [0.968, 0.663, 0.544]], [0.712, [0.967, 0.657, 0.538]], [0.714, [0.967, 0.657, 0.538]], [0.716, [0.967, 0.652, 0.532]], [0.718, [0.967, 0.652, 0.532]], [0.720, [0.966, 0.646, 0.526]], [0.722, [0.966, 0.646, 0.526]], [0.724, [0.965, 0.640, 0.520]], [0.726, [0.965, 0.640, 0.520]], [0.728, [0.964, 0.634, 0.514]], [0.730, [0.964, 0.634, 0.514]], [0.732, [0.963, 0.628, 0.508]], [0.734, [0.963, 0.628, 0.508]], [0.736, [0.962, 0.622, 0.502]], [0.738, [0.962, 0.622, 0.502]], [0.740, [0.960, 0.616, 0.495]], [0.742, [0.960, 0.616, 0.495]], [0.744, [0.959, 0.610, 0.489]], [0.746, [0.959, 0.610, 0.489]], [0.748, [0.958, 0.604, 0.483]], [0.750, [0.958, 0.604, 0.483]], [0.751, [0.957, 0.598, 0.477]], [0.753, [0.957, 0.598, 0.477]], [0.755, [0.955, 0.592, 0.471]], [0.757, [0.955, 0.592, 0.471]], [0.759, [0.953, 0.585, 0.465]], [0.761, [0.953, 0.585, 0.465]], [0.763, [0.951, 0.579, 0.459]], [0.765, [0.951, 0.579, 0.459]], [0.767, [0.949, 0.572, 0.453]], [0.769, [0.949, 0.572, 0.453]], [0.771, [0.948, 0.566, 0.447]], [0.773, [0.948, 0.566, 0.447]], [0.775, [0.946, 0.560, 0.442]], [0.777, [0.946, 0.560, 0.442]], [0.779, [0.944, 0.553, 0.436]], [0.781, [0.944, 0.553, 0.436]], [0.783, [0.942, 0.546, 0.430]], [0.785, [0.942, 0.546, 0.430]], [0.787, [0.939, 0.540, 0.424]], [0.789, [0.939, 0.540, 0.424]], [0.791, [0.937, 0.533, 0.418]], [0.793, [0.937, 0.533, 0.418]], [0.795, [0.934, 0.526, 0.412]], [0.796, [0.934, 0.526, 0.412]], [0.798, [0.932, 0.519, 0.406]], [0.800, [0.932, 0.519, 0.406]], [0.802, [0.929, 0.512, 0.401]], [0.804, [0.929, 0.512, 0.401]], [0.806, [0.927, 0.505, 0.395]], [0.808, [0.927, 0.505, 0.395]], [0.810, [0.924, 0.499, 0.389]], [0.812, [0.924, 0.499, 0.389]], [0.814, [0.921, 0.491, 0.383]], [0.816, [0.921, 0.491, 0.383]], [0.818, [0.918, 0.484, 0.378]], [0.820, [0.918, 0.484, 0.378]], [0.822, [0.915, 0.477, 0.372]], [0.824, [0.915, 0.477, 0.372]], [0.826, [0.912, 0.470, 0.367]], [0.828, [0.912, 0.470, 0.367]], [0.830, [0.909, 0.462, 0.361]], [0.832, [0.909, 0.462, 0.361]], [0.834, [0.906, 0.455, 0.355]], [0.836, [0.906, 0.455, 0.355]], [0.838, [0.903, 0.448, 0.350]], [0.840, [0.903, 0.448, 0.350]], [0.841, [0.900, 0.441, 0.344]], [0.843, [0.900, 0.441, 0.344]], [0.845, [0.896, 0.433, 0.339]], [0.847, [0.896, 0.433, 0.339]], [0.849, [0.892, 0.425, 0.333]], [0.851, [0.892, 0.425, 0.333]], [0.853, [0.888, 0.418, 0.328]], [0.855, [0.888, 0.418, 0.328]], [0.857, [0.885, 0.410, 0.323]], [0.859, [0.885, 0.410, 0.323]], [0.861, [0.881, 0.402, 0.317]], [0.863, [0.881, 0.402, 0.317]], [0.865, [0.877, 0.395, 0.312]], [0.867, [0.877, 0.395, 0.312]], [0.869, [0.873, 0.387, 0.306]], [0.871, [0.873, 0.387, 0.306]], [0.873, [0.870, 0.379, 0.301]], [0.875, [0.870, 0.379, 0.301]], [0.877, [0.865, 0.371, 0.296]], [0.879, [0.865, 0.371, 0.296]], [0.881, [0.861, 0.363, 0.291]], [0.883, [0.861, 0.363, 0.291]], [0.885, [0.857, 0.355, 0.285]], [0.886, [0.857, 0.355, 0.285]], [0.888, [0.852, 0.346, 0.280]], [0.890, [0.852, 0.346, 0.280]], [0.892, [0.848, 0.338, 0.275]], [0.894, [0.848, 0.338, 0.275]], [0.896, [0.844, 0.330, 0.270]], [0.898, [0.844, 0.330, 0.270]], [0.900, [0.839, 0.322, 0.265]], [0.902, [0.839, 0.322, 0.265]], [0.904, [0.835, 0.314, 0.260]], [0.906, [0.835, 0.314, 0.260]], [0.908, [0.830, 0.305, 0.255]], [0.910, [0.830, 0.305, 0.255]], [0.912, [0.825, 0.296, 0.250]], [0.914, [0.825, 0.296, 0.250]], [0.916, [0.820, 0.287, 0.245]], [0.918, [0.820, 0.287, 0.245]], [0.920, [0.816, 0.278, 0.240]], [0.922, [0.816, 0.278, 0.240]], [0.924, [0.811, 0.269, 0.235]], [0.926, [0.811, 0.269, 0.235]], [0.928, [0.806, 0.260, 0.231]], [0.930, [0.806, 0.260, 0.231]], [0.932, [0.801, 0.251, 0.226]], [0.933, [0.801, 0.251, 0.226]], [0.935, [0.796, 0.242, 0.221]], [0.937, [0.796, 0.242, 0.221]], [0.939, [0.791, 0.231, 0.216]], [0.941, [0.791, 0.231, 0.216]], [0.943, [0.785, 0.221, 0.212]], [0.945, [0.785, 0.221, 0.212]], [0.947, [0.780, 0.210, 0.207]], [0.949, [0.780, 0.210, 0.207]], [0.951, [0.774, 0.200, 0.203]], [0.953, [0.774, 0.200, 0.203]], [0.955, [0.769, 0.189, 0.198]], [0.957, [0.769, 0.189, 0.198]], [0.959, [0.764, 0.179, 0.193]], [0.961, [0.764, 0.179, 0.193]], [0.963, [0.758, 0.168, 0.189]], [0.965, [0.758, 0.168, 0.189]], [0.967, [0.753, 0.158, 0.184]], [0.969, [0.753, 0.158, 0.184]], [0.971, [0.747, 0.140, 0.180]], [0.973, [0.747, 0.140, 0.180]], [0.975, [0.741, 0.122, 0.176]], [0.977, [0.741, 0.122, 0.176]], [0.978, [0.735, 0.104, 0.171]], [0.980, [0.735, 0.104, 0.171]], [0.982, [0.729, 0.087, 0.167]], [0.984, [0.729, 0.087, 0.167]], [0.986, [0.723, 0.069, 0.163]], [0.988, [0.723, 0.069, 0.163]], [0.990, [0.717, 0.051, 0.159]], [0.992, [0.717, 0.051, 0.159]], [0.994, [0.712, 0.033, 0.154]], [0.996, [0.712, 0.033, 0.154]], [0.998, [0.706, 0.016, 0.150]], [1.000, [0.706, 0.016, 0.150]]];
+var seismic = [[0.000, [0.000, 0.000, 0.300]], [0.002, [0.000, 0.000, 0.300]], [0.004, [0.000, 0.000, 0.311]], [0.006, [0.000, 0.000, 0.311]], [0.008, [0.000, 0.000, 0.322]], [0.010, [0.000, 0.000, 0.322]], [0.012, [0.000, 0.000, 0.333]], [0.014, [0.000, 0.000, 0.333]], [0.016, [0.000, 0.000, 0.344]], [0.018, [0.000, 0.000, 0.344]], [0.020, [0.000, 0.000, 0.355]], [0.022, [0.000, 0.000, 0.355]], [0.023, [0.000, 0.000, 0.366]], [0.025, [0.000, 0.000, 0.366]], [0.027, [0.000, 0.000, 0.377]], [0.029, [0.000, 0.000, 0.377]], [0.031, [0.000, 0.000, 0.388]], [0.033, [0.000, 0.000, 0.388]], [0.035, [0.000, 0.000, 0.399]], [0.037, [0.000, 0.000, 0.399]], [0.039, [0.000, 0.000, 0.410]], [0.041, [0.000, 0.000, 0.410]], [0.043, [0.000, 0.000, 0.421]], [0.045, [0.000, 0.000, 0.421]], [0.047, [0.000, 0.000, 0.432]], [0.049, [0.000, 0.000, 0.432]], [0.051, [0.000, 0.000, 0.443]], [0.053, [0.000, 0.000, 0.443]], [0.055, [0.000, 0.000, 0.454]], [0.057, [0.000, 0.000, 0.454]], [0.059, [0.000, 0.000, 0.465]], [0.061, [0.000, 0.000, 0.465]], [0.063, [0.000, 0.000, 0.476]], [0.065, [0.000, 0.000, 0.476]], [0.067, [0.000, 0.000, 0.487]], [0.068, [0.000, 0.000, 0.487]], [0.070, [0.000, 0.000, 0.498]], [0.072, [0.000, 0.000, 0.498]], [0.074, [0.000, 0.000, 0.509]], [0.076, [0.000, 0.000, 0.509]], [0.078, [0.000, 0.000, 0.520]], [0.080, [0.000, 0.000, 0.520]], [0.082, [0.000, 0.000, 0.531]], [0.084, [0.000, 0.000, 0.531]], [0.086, [0.000, 0.000, 0.542]], [0.088, [0.000, 0.000, 0.542]], [0.090, [0.000, 0.000, 0.553]], [0.092, [0.000, 0.000, 0.553]], [0.094, [0.000, 0.000, 0.564]], [0.096, [0.000, 0.000, 0.564]], [0.098, [0.000, 0.000, 0.575]], [0.100, [0.000, 0.000, 0.575]], [0.102, [0.000, 0.000, 0.585]], [0.104, [0.000, 0.000, 0.585]], [0.106, [0.000, 0.000, 0.596]], [0.108, [0.000, 0.000, 0.596]], [0.110, [0.000, 0.000, 0.607]], [0.112, [0.000, 0.000, 0.607]], [0.114, [0.000, 0.000, 0.618]], [0.115, [0.000, 0.000, 0.618]], [0.117, [0.000, 0.000, 0.629]], [0.119, [0.000, 0.000, 0.629]], [0.121, [0.000, 0.000, 0.640]], [0.123, [0.000, 0.000, 0.640]], [0.125, [0.000, 0.000, 0.651]], [0.127, [0.000, 0.000, 0.651]], [0.129, [0.000, 0.000, 0.662]], [0.131, [0.000, 0.000, 0.662]], [0.133, [0.000, 0.000, 0.673]], [0.135, [0.000, 0.000, 0.673]], [0.137, [0.000, 0.000, 0.684]], [0.139, [0.000, 0.000, 0.684]], [0.141, [0.000, 0.000, 0.695]], [0.143, [0.000, 0.000, 0.695]], [0.145, [0.000, 0.000, 0.706]], [0.147, [0.000, 0.000, 0.706]], [0.149, [0.000, 0.000, 0.717]], [0.151, [0.000, 0.000, 0.717]], [0.153, [0.000, 0.000, 0.728]], [0.155, [0.000, 0.000, 0.728]], [0.157, [0.000, 0.000, 0.739]], [0.159, [0.000, 0.000, 0.739]], [0.160, [0.000, 0.000, 0.750]], [0.162, [0.000, 0.000, 0.750]], [0.164, [0.000, 0.000, 0.761]], [0.166, [0.000, 0.000, 0.761]], [0.168, [0.000, 0.000, 0.772]], [0.170, [0.000, 0.000, 0.772]], [0.172, [0.000, 0.000, 0.783]], [0.174, [0.000, 0.000, 0.783]], [0.176, [0.000, 0.000, 0.794]], [0.178, [0.000, 0.000, 0.794]], [0.180, [0.000, 0.000, 0.805]], [0.182, [0.000, 0.000, 0.805]], [0.184, [0.000, 0.000, 0.816]], [0.186, [0.000, 0.000, 0.816]], [0.188, [0.000, 0.000, 0.827]], [0.190, [0.000, 0.000, 0.827]], [0.192, [0.000, 0.000, 0.838]], [0.194, [0.000, 0.000, 0.838]], [0.196, [0.000, 0.000, 0.849]], [0.198, [0.000, 0.000, 0.849]], [0.200, [0.000, 0.000, 0.860]], [0.202, [0.000, 0.000, 0.860]], [0.204, [0.000, 0.000, 0.871]], [0.205, [0.000, 0.000, 0.871]], [0.207, [0.000, 0.000, 0.882]], [0.209, [0.000, 0.000, 0.882]], [0.211, [0.000, 0.000, 0.893]], [0.213, [0.000, 0.000, 0.893]], [0.215, [0.000, 0.000, 0.904]], [0.217, [0.000, 0.000, 0.904]], [0.219, [0.000, 0.000, 0.915]], [0.221, [0.000, 0.000, 0.915]], [0.223, [0.000, 0.000, 0.926]], [0.225, [0.000, 0.000, 0.926]], [0.227, [0.000, 0.000, 0.937]], [0.229, [0.000, 0.000, 0.937]], [0.231, [0.000, 0.000, 0.948]], [0.233, [0.000, 0.000, 0.948]], [0.235, [0.000, 0.000, 0.959]], [0.237, [0.000, 0.000, 0.959]], [0.239, [0.000, 0.000, 0.970]], [0.241, [0.000, 0.000, 0.970]], [0.243, [0.000, 0.000, 0.981]], [0.245, [0.000, 0.000, 0.981]], [0.247, [0.000, 0.000, 0.992]], [0.249, [0.000, 0.000, 0.992]], [0.250, [0.004, 0.004, 1.000]], [0.252, [0.004, 0.004, 1.000]], [0.254, [0.020, 0.020, 1.000]], [0.256, [0.020, 0.020, 1.000]], [0.258, [0.035, 0.035, 1.000]], [0.260, [0.035, 0.035, 1.000]], [0.262, [0.051, 0.051, 1.000]], [0.264, [0.051, 0.051, 1.000]], [0.266, [0.067, 0.067, 1.000]], [0.268, [0.067, 0.067, 1.000]], [0.270, [0.082, 0.082, 1.000]], [0.272, [0.082, 0.082, 1.000]], [0.274, [0.098, 0.098, 1.000]], [0.276, [0.098, 0.098, 1.000]], [0.278, [0.114, 0.114, 1.000]], [0.280, [0.114, 0.114, 1.000]], [0.282, [0.129, 0.129, 1.000]], [0.284, [0.129, 0.129, 1.000]], [0.286, [0.145, 0.145, 1.000]], [0.288, [0.145, 0.145, 1.000]], [0.290, [0.161, 0.161, 1.000]], [0.292, [0.161, 0.161, 1.000]], [0.294, [0.176, 0.176, 1.000]], [0.295, [0.176, 0.176, 1.000]], [0.297, [0.192, 0.192, 1.000]], [0.299, [0.192, 0.192, 1.000]], [0.301, [0.208, 0.208, 1.000]], [0.303, [0.208, 0.208, 1.000]], [0.305, [0.224, 0.224, 1.000]], [0.307, [0.224, 0.224, 1.000]], [0.309, [0.239, 0.239, 1.000]], [0.311, [0.239, 0.239, 1.000]], [0.313, [0.255, 0.255, 1.000]], [0.315, [0.255, 0.255, 1.000]], [0.317, [0.271, 0.271, 1.000]], [0.319, [0.271, 0.271, 1.000]], [0.321, [0.286, 0.286, 1.000]], [0.323, [0.286, 0.286, 1.000]], [0.325, [0.302, 0.302, 1.000]], [0.327, [0.302, 0.302, 1.000]], [0.329, [0.318, 0.318, 1.000]], [0.331, [0.318, 0.318, 1.000]], [0.333, [0.333, 0.333, 1.000]], [0.335, [0.333, 0.333, 1.000]], [0.337, [0.349, 0.349, 1.000]], [0.339, [0.349, 0.349, 1.000]], [0.341, [0.365, 0.365, 1.000]], [0.342, [0.365, 0.365, 1.000]], [0.344, [0.380, 0.380, 1.000]], [0.346, [0.380, 0.380, 1.000]], [0.348, [0.396, 0.396, 1.000]], [0.350, [0.396, 0.396, 1.000]], [0.352, [0.412, 0.412, 1.000]], [0.354, [0.412, 0.412, 1.000]], [0.356, [0.427, 0.427, 1.000]], [0.358, [0.427, 0.427, 1.000]], [0.360, [0.443, 0.443, 1.000]], [0.362, [0.443, 0.443, 1.000]], [0.364, [0.459, 0.459, 1.000]], [0.366, [0.459, 0.459, 1.000]], [0.368, [0.475, 0.475, 1.000]], [0.370, [0.475, 0.475, 1.000]], [0.372, [0.490, 0.490, 1.000]], [0.374, [0.490, 0.490, 1.000]], [0.376, [0.506, 0.506, 1.000]], [0.378, [0.506, 0.506, 1.000]], [0.380, [0.522, 0.522, 1.000]], [0.382, [0.522, 0.522, 1.000]], [0.384, [0.537, 0.537, 1.000]], [0.386, [0.537, 0.537, 1.000]], [0.387, [0.553, 0.553, 1.000]], [0.389, [0.553, 0.553, 1.000]], [0.391, [0.569, 0.569, 1.000]], [0.393, [0.569, 0.569, 1.000]], [0.395, [0.584, 0.584, 1.000]], [0.397, [0.584, 0.584, 1.000]], [0.399, [0.600, 0.600, 1.000]], [0.401, [0.600, 0.600, 1.000]], [0.403, [0.616, 0.616, 1.000]], [0.405, [0.616, 0.616, 1.000]], [0.407, [0.631, 0.631, 1.000]], [0.409, [0.631, 0.631, 1.000]], [0.411, [0.647, 0.647, 1.000]], [0.413, [0.647, 0.647, 1.000]], [0.415, [0.663, 0.663, 1.000]], [0.417, [0.663, 0.663, 1.000]], [0.419, [0.678, 0.678, 1.000]], [0.421, [0.678, 0.678, 1.000]], [0.423, [0.694, 0.694, 1.000]], [0.425, [0.694, 0.694, 1.000]], [0.427, [0.710, 0.710, 1.000]], [0.429, [0.710, 0.710, 1.000]], [0.431, [0.725, 0.725, 1.000]], [0.432, [0.725, 0.725, 1.000]], [0.434, [0.741, 0.741, 1.000]], [0.436, [0.741, 0.741, 1.000]], [0.438, [0.757, 0.757, 1.000]], [0.440, [0.757, 0.757, 1.000]], [0.442, [0.773, 0.773, 1.000]], [0.444, [0.773, 0.773, 1.000]], [0.446, [0.788, 0.788, 1.000]], [0.448, [0.788, 0.788, 1.000]], [0.450, [0.804, 0.804, 1.000]], [0.452, [0.804, 0.804, 1.000]], [0.454, [0.820, 0.820, 1.000]], [0.456, [0.820, 0.820, 1.000]], [0.458, [0.835, 0.835, 1.000]], [0.460, [0.835, 0.835, 1.000]], [0.462, [0.851, 0.851, 1.000]], [0.464, [0.851, 0.851, 1.000]], [0.466, [0.867, 0.867, 1.000]], [0.468, [0.867, 0.867, 1.000]], [0.470, [0.882, 0.882, 1.000]], [0.472, [0.882, 0.882, 1.000]], [0.474, [0.898, 0.898, 1.000]], [0.476, [0.898, 0.898, 1.000]], [0.477, [0.914, 0.914, 1.000]], [0.479, [0.914, 0.914, 1.000]], [0.481, [0.929, 0.929, 1.000]], [0.483, [0.929, 0.929, 1.000]], [0.485, [0.945, 0.945, 1.000]], [0.487, [0.945, 0.945, 1.000]], [0.489, [0.961, 0.961, 1.000]], [0.491, [0.961, 0.961, 1.000]], [0.493, [0.976, 0.976, 1.000]], [0.495, [0.976, 0.976, 1.000]], [0.497, [0.992, 0.992, 1.000]], [0.499, [0.992, 0.992, 1.000]], [0.501, [1.000, 0.992, 0.992]], [0.503, [1.000, 0.992, 0.992]], [0.505, [1.000, 0.976, 0.976]], [0.507, [1.000, 0.976, 0.976]], [0.509, [1.000, 0.961, 0.961]], [0.511, [1.000, 0.961, 0.961]], [0.513, [1.000, 0.945, 0.945]], [0.515, [1.000, 0.945, 0.945]], [0.517, [1.000, 0.929, 0.929]], [0.519, [1.000, 0.929, 0.929]], [0.521, [1.000, 0.914, 0.914]], [0.523, [1.000, 0.914, 0.914]], [0.524, [1.000, 0.898, 0.898]], [0.526, [1.000, 0.898, 0.898]], [0.528, [1.000, 0.882, 0.882]], [0.530, [1.000, 0.882, 0.882]], [0.532, [1.000, 0.867, 0.867]], [0.534, [1.000, 0.867, 0.867]], [0.536, [1.000, 0.851, 0.851]], [0.538, [1.000, 0.851, 0.851]], [0.540, [1.000, 0.835, 0.835]], [0.542, [1.000, 0.835, 0.835]], [0.544, [1.000, 0.820, 0.820]], [0.546, [1.000, 0.820, 0.820]], [0.548, [1.000, 0.804, 0.804]], [0.550, [1.000, 0.804, 0.804]], [0.552, [1.000, 0.788, 0.788]], [0.554, [1.000, 0.788, 0.788]], [0.556, [1.000, 0.773, 0.773]], [0.558, [1.000, 0.773, 0.773]], [0.560, [1.000, 0.757, 0.757]], [0.562, [1.000, 0.757, 0.757]], [0.564, [1.000, 0.741, 0.741]], [0.566, [1.000, 0.741, 0.741]], [0.568, [1.000, 0.725, 0.725]], [0.569, [1.000, 0.725, 0.725]], [0.571, [1.000, 0.710, 0.710]], [0.573, [1.000, 0.710, 0.710]], [0.575, [1.000, 0.694, 0.694]], [0.577, [1.000, 0.694, 0.694]], [0.579, [1.000, 0.678, 0.678]], [0.581, [1.000, 0.678, 0.678]], [0.583, [1.000, 0.663, 0.663]], [0.585, [1.000, 0.663, 0.663]], [0.587, [1.000, 0.647, 0.647]], [0.589, [1.000, 0.647, 0.647]], [0.591, [1.000, 0.631, 0.631]], [0.593, [1.000, 0.631, 0.631]], [0.595, [1.000, 0.616, 0.616]], [0.597, [1.000, 0.616, 0.616]], [0.599, [1.000, 0.600, 0.600]], [0.601, [1.000, 0.600, 0.600]], [0.603, [1.000, 0.584, 0.584]], [0.605, [1.000, 0.584, 0.584]], [0.607, [1.000, 0.569, 0.569]], [0.609, [1.000, 0.569, 0.569]], [0.611, [1.000, 0.553, 0.553]], [0.613, [1.000, 0.553, 0.553]], [0.614, [1.000, 0.537, 0.537]], [0.616, [1.000, 0.537, 0.537]], [0.618, [1.000, 0.522, 0.522]], [0.620, [1.000, 0.522, 0.522]], [0.622, [1.000, 0.506, 0.506]], [0.624, [1.000, 0.506, 0.506]], [0.626, [1.000, 0.490, 0.490]], [0.628, [1.000, 0.490, 0.490]], [0.630, [1.000, 0.475, 0.475]], [0.632, [1.000, 0.475, 0.475]], [0.634, [1.000, 0.459, 0.459]], [0.636, [1.000, 0.459, 0.459]], [0.638, [1.000, 0.443, 0.443]], [0.640, [1.000, 0.443, 0.443]], [0.642, [1.000, 0.427, 0.427]], [0.644, [1.000, 0.427, 0.427]], [0.646, [1.000, 0.412, 0.412]], [0.648, [1.000, 0.412, 0.412]], [0.650, [1.000, 0.396, 0.396]], [0.652, [1.000, 0.396, 0.396]], [0.654, [1.000, 0.380, 0.380]], [0.656, [1.000, 0.380, 0.380]], [0.658, [1.000, 0.365, 0.365]], [0.659, [1.000, 0.365, 0.365]], [0.661, [1.000, 0.349, 0.349]], [0.663, [1.000, 0.349, 0.349]], [0.665, [1.000, 0.333, 0.333]], [0.667, [1.000, 0.333, 0.333]], [0.669, [1.000, 0.318, 0.318]], [0.671, [1.000, 0.318, 0.318]], [0.673, [1.000, 0.302, 0.302]], [0.675, [1.000, 0.302, 0.302]], [0.677, [1.000, 0.286, 0.286]], [0.679, [1.000, 0.286, 0.286]], [0.681, [1.000, 0.271, 0.271]], [0.683, [1.000, 0.271, 0.271]], [0.685, [1.000, 0.255, 0.255]], [0.687, [1.000, 0.255, 0.255]], [0.689, [1.000, 0.239, 0.239]], [0.691, [1.000, 0.239, 0.239]], [0.693, [1.000, 0.224, 0.224]], [0.695, [1.000, 0.224, 0.224]], [0.697, [1.000, 0.208, 0.208]], [0.699, [1.000, 0.208, 0.208]], [0.701, [1.000, 0.192, 0.192]], [0.703, [1.000, 0.192, 0.192]], [0.705, [1.000, 0.176, 0.176]], [0.706, [1.000, 0.176, 0.176]], [0.708, [1.000, 0.161, 0.161]], [0.710, [1.000, 0.161, 0.161]], [0.712, [1.000, 0.145, 0.145]], [0.714, [1.000, 0.145, 0.145]], [0.716, [1.000, 0.129, 0.129]], [0.718, [1.000, 0.129, 0.129]], [0.720, [1.000, 0.114, 0.114]], [0.722, [1.000, 0.114, 0.114]], [0.724, [1.000, 0.098, 0.098]], [0.726, [1.000, 0.098, 0.098]], [0.728, [1.000, 0.082, 0.082]], [0.730, [1.000, 0.082, 0.082]], [0.732, [1.000, 0.067, 0.067]], [0.734, [1.000, 0.067, 0.067]], [0.736, [1.000, 0.051, 0.051]], [0.738, [1.000, 0.051, 0.051]], [0.740, [1.000, 0.035, 0.035]], [0.742, [1.000, 0.035, 0.035]], [0.744, [1.000, 0.020, 0.020]], [0.746, [1.000, 0.020, 0.020]], [0.748, [1.000, 0.004, 0.004]], [0.750, [1.000, 0.004, 0.004]], [0.751, [0.994, 0.000, 0.000]], [0.753, [0.994, 0.000, 0.000]], [0.755, [0.986, 0.000, 0.000]], [0.757, [0.986, 0.000, 0.000]], [0.759, [0.978, 0.000, 0.000]], [0.761, [0.978, 0.000, 0.000]], [0.763, [0.971, 0.000, 0.000]], [0.765, [0.971, 0.000, 0.000]], [0.767, [0.963, 0.000, 0.000]], [0.769, [0.963, 0.000, 0.000]], [0.771, [0.955, 0.000, 0.000]], [0.773, [0.955, 0.000, 0.000]], [0.775, [0.947, 0.000, 0.000]], [0.777, [0.947, 0.000, 0.000]], [0.779, [0.939, 0.000, 0.000]], [0.781, [0.939, 0.000, 0.000]], [0.783, [0.931, 0.000, 0.000]], [0.785, [0.931, 0.000, 0.000]], [0.787, [0.924, 0.000, 0.000]], [0.789, [0.924, 0.000, 0.000]], [0.791, [0.916, 0.000, 0.000]], [0.793, [0.916, 0.000, 0.000]], [0.795, [0.908, 0.000, 0.000]], [0.796, [0.908, 0.000, 0.000]], [0.798, [0.900, 0.000, 0.000]], [0.800, [0.900, 0.000, 0.000]], [0.802, [0.892, 0.000, 0.000]], [0.804, [0.892, 0.000, 0.000]], [0.806, [0.884, 0.000, 0.000]], [0.808, [0.884, 0.000, 0.000]], [0.810, [0.876, 0.000, 0.000]], [0.812, [0.876, 0.000, 0.000]], [0.814, [0.869, 0.000, 0.000]], [0.816, [0.869, 0.000, 0.000]], [0.818, [0.861, 0.000, 0.000]], [0.820, [0.861, 0.000, 0.000]], [0.822, [0.853, 0.000, 0.000]], [0.824, [0.853, 0.000, 0.000]], [0.826, [0.845, 0.000, 0.000]], [0.828, [0.845, 0.000, 0.000]], [0.830, [0.837, 0.000, 0.000]], [0.832, [0.837, 0.000, 0.000]], [0.834, [0.829, 0.000, 0.000]], [0.836, [0.829, 0.000, 0.000]], [0.838, [0.822, 0.000, 0.000]], [0.840, [0.822, 0.000, 0.000]], [0.841, [0.814, 0.000, 0.000]], [0.843, [0.814, 0.000, 0.000]], [0.845, [0.806, 0.000, 0.000]], [0.847, [0.806, 0.000, 0.000]], [0.849, [0.798, 0.000, 0.000]], [0.851, [0.798, 0.000, 0.000]], [0.853, [0.790, 0.000, 0.000]], [0.855, [0.790, 0.000, 0.000]], [0.857, [0.782, 0.000, 0.000]], [0.859, [0.782, 0.000, 0.000]], [0.861, [0.775, 0.000, 0.000]], [0.863, [0.775, 0.000, 0.000]], [0.865, [0.767, 0.000, 0.000]], [0.867, [0.767, 0.000, 0.000]], [0.869, [0.759, 0.000, 0.000]], [0.871, [0.759, 0.000, 0.000]], [0.873, [0.751, 0.000, 0.000]], [0.875, [0.751, 0.000, 0.000]], [0.877, [0.743, 0.000, 0.000]], [0.879, [0.743, 0.000, 0.000]], [0.881, [0.735, 0.000, 0.000]], [0.883, [0.735, 0.000, 0.000]], [0.885, [0.727, 0.000, 0.000]], [0.886, [0.727, 0.000, 0.000]], [0.888, [0.720, 0.000, 0.000]], [0.890, [0.720, 0.000, 0.000]], [0.892, [0.712, 0.000, 0.000]], [0.894, [0.712, 0.000, 0.000]], [0.896, [0.704, 0.000, 0.000]], [0.898, [0.704, 0.000, 0.000]], [0.900, [0.696, 0.000, 0.000]], [0.902, [0.696, 0.000, 0.000]], [0.904, [0.688, 0.000, 0.000]], [0.906, [0.688, 0.000, 0.000]], [0.908, [0.680, 0.000, 0.000]], [0.910, [0.680, 0.000, 0.000]], [0.912, [0.673, 0.000, 0.000]], [0.914, [0.673, 0.000, 0.000]], [0.916, [0.665, 0.000, 0.000]], [0.918, [0.665, 0.000, 0.000]], [0.920, [0.657, 0.000, 0.000]], [0.922, [0.657, 0.000, 0.000]], [0.924, [0.649, 0.000, 0.000]], [0.926, [0.649, 0.000, 0.000]], [0.928, [0.641, 0.000, 0.000]], [0.930, [0.641, 0.000, 0.000]], [0.932, [0.633, 0.000, 0.000]], [0.933, [0.633, 0.000, 0.000]], [0.935, [0.625, 0.000, 0.000]], [0.937, [0.625, 0.000, 0.000]], [0.939, [0.618, 0.000, 0.000]], [0.941, [0.618, 0.000, 0.000]], [0.943, [0.610, 0.000, 0.000]], [0.945, [0.610, 0.000, 0.000]], [0.947, [0.602, 0.000, 0.000]], [0.949, [0.602, 0.000, 0.000]], [0.951, [0.594, 0.000, 0.000]], [0.953, [0.594, 0.000, 0.000]], [0.955, [0.586, 0.000, 0.000]], [0.957, [0.586, 0.000, 0.000]], [0.959, [0.578, 0.000, 0.000]], [0.961, [0.578, 0.000, 0.000]], [0.963, [0.571, 0.000, 0.000]], [0.965, [0.571, 0.000, 0.000]], [0.967, [0.563, 0.000, 0.000]], [0.969, [0.563, 0.000, 0.000]], [0.971, [0.555, 0.000, 0.000]], [0.973, [0.555, 0.000, 0.000]], [0.975, [0.547, 0.000, 0.000]], [0.977, [0.547, 0.000, 0.000]], [0.978, [0.539, 0.000, 0.000]], [0.980, [0.539, 0.000, 0.000]], [0.982, [0.531, 0.000, 0.000]], [0.984, [0.531, 0.000, 0.000]], [0.986, [0.524, 0.000, 0.000]], [0.988, [0.524, 0.000, 0.000]], [0.990, [0.516, 0.000, 0.000]], [0.992, [0.516, 0.000, 0.000]], [0.994, [0.508, 0.000, 0.000]], [0.996, [0.508, 0.000, 0.000]], [0.998, [0.500, 0.000, 0.000]], [1.000, [0.500, 0.000, 0.000]]];
+
+// Qualitative
+var Accent = [[0.000, [0.498, 0.788, 0.498]], [0.002, [0.498, 0.788, 0.498]], [0.004, [0.505, 0.785, 0.507]], [0.006, [0.505, 0.785, 0.507]], [0.008, [0.512, 0.782, 0.516]], [0.010, [0.512, 0.782, 0.516]], [0.012, [0.518, 0.780, 0.525]], [0.014, [0.518, 0.780, 0.525]], [0.016, [0.525, 0.777, 0.535]], [0.018, [0.525, 0.777, 0.535]], [0.020, [0.532, 0.774, 0.544]], [0.022, [0.532, 0.774, 0.544]], [0.023, [0.539, 0.771, 0.553]], [0.025, [0.539, 0.771, 0.553]], [0.027, [0.546, 0.768, 0.562]], [0.029, [0.546, 0.768, 0.562]], [0.031, [0.552, 0.765, 0.571]], [0.033, [0.552, 0.765, 0.571]], [0.035, [0.559, 0.762, 0.580]], [0.037, [0.559, 0.762, 0.580]], [0.039, [0.566, 0.759, 0.590]], [0.041, [0.566, 0.759, 0.590]], [0.043, [0.573, 0.756, 0.599]], [0.045, [0.573, 0.756, 0.599]], [0.047, [0.579, 0.753, 0.608]], [0.049, [0.579, 0.753, 0.608]], [0.051, [0.586, 0.750, 0.617]], [0.053, [0.586, 0.750, 0.617]], [0.055, [0.593, 0.748, 0.626]], [0.057, [0.593, 0.748, 0.626]], [0.059, [0.600, 0.745, 0.635]], [0.061, [0.600, 0.745, 0.635]], [0.063, [0.607, 0.742, 0.644]], [0.065, [0.607, 0.742, 0.644]], [0.067, [0.613, 0.739, 0.654]], [0.068, [0.613, 0.739, 0.654]], [0.070, [0.620, 0.736, 0.663]], [0.072, [0.620, 0.736, 0.663]], [0.074, [0.627, 0.733, 0.672]], [0.076, [0.627, 0.733, 0.672]], [0.078, [0.634, 0.730, 0.681]], [0.080, [0.634, 0.730, 0.681]], [0.082, [0.640, 0.727, 0.690]], [0.084, [0.640, 0.727, 0.690]], [0.086, [0.647, 0.724, 0.699]], [0.088, [0.647, 0.724, 0.699]], [0.090, [0.654, 0.721, 0.708]], [0.092, [0.654, 0.721, 0.708]], [0.094, [0.661, 0.718, 0.718]], [0.096, [0.661, 0.718, 0.718]], [0.098, [0.668, 0.716, 0.727]], [0.100, [0.668, 0.716, 0.727]], [0.102, [0.674, 0.713, 0.736]], [0.104, [0.674, 0.713, 0.736]], [0.106, [0.681, 0.710, 0.745]], [0.108, [0.681, 0.710, 0.745]], [0.110, [0.688, 0.707, 0.754]], [0.112, [0.688, 0.707, 0.754]], [0.114, [0.695, 0.704, 0.763]], [0.115, [0.695, 0.704, 0.763]], [0.117, [0.701, 0.701, 0.773]], [0.119, [0.701, 0.701, 0.773]], [0.121, [0.708, 0.698, 0.782]], [0.123, [0.708, 0.698, 0.782]], [0.125, [0.715, 0.695, 0.791]], [0.127, [0.715, 0.695, 0.791]], [0.129, [0.722, 0.692, 0.800]], [0.131, [0.722, 0.692, 0.800]], [0.133, [0.729, 0.689, 0.809]], [0.135, [0.729, 0.689, 0.809]], [0.137, [0.735, 0.687, 0.818]], [0.139, [0.735, 0.687, 0.818]], [0.141, [0.742, 0.684, 0.827]], [0.143, [0.742, 0.684, 0.827]], [0.145, [0.749, 0.683, 0.827]], [0.147, [0.749, 0.683, 0.827]], [0.149, [0.756, 0.685, 0.818]], [0.151, [0.756, 0.685, 0.818]], [0.153, [0.763, 0.687, 0.810]], [0.155, [0.763, 0.687, 0.810]], [0.157, [0.769, 0.689, 0.801]], [0.159, [0.769, 0.689, 0.801]], [0.160, [0.776, 0.691, 0.793]], [0.162, [0.776, 0.691, 0.793]], [0.164, [0.783, 0.693, 0.785]], [0.166, [0.783, 0.693, 0.785]], [0.168, [0.790, 0.695, 0.776]], [0.170, [0.790, 0.695, 0.776]], [0.172, [0.796, 0.697, 0.768]], [0.174, [0.796, 0.697, 0.768]], [0.176, [0.803, 0.699, 0.759]], [0.178, [0.803, 0.699, 0.759]], [0.180, [0.810, 0.701, 0.751]], [0.182, [0.810, 0.701, 0.751]], [0.184, [0.817, 0.703, 0.743]], [0.186, [0.817, 0.703, 0.743]], [0.188, [0.824, 0.705, 0.734]], [0.190, [0.824, 0.705, 0.734]], [0.192, [0.830, 0.707, 0.726]], [0.194, [0.830, 0.707, 0.726]], [0.196, [0.837, 0.709, 0.717]], [0.198, [0.837, 0.709, 0.717]], [0.200, [0.844, 0.711, 0.709]], [0.202, [0.844, 0.711, 0.709]], [0.204, [0.851, 0.713, 0.701]], [0.205, [0.851, 0.713, 0.701]], [0.207, [0.857, 0.714, 0.692]], [0.209, [0.857, 0.714, 0.692]], [0.211, [0.864, 0.716, 0.684]], [0.213, [0.864, 0.716, 0.684]], [0.215, [0.871, 0.718, 0.675]], [0.217, [0.871, 0.718, 0.675]], [0.219, [0.878, 0.720, 0.667]], [0.221, [0.878, 0.720, 0.667]], [0.223, [0.885, 0.722, 0.659]], [0.225, [0.885, 0.722, 0.659]], [0.227, [0.891, 0.724, 0.650]], [0.229, [0.891, 0.724, 0.650]], [0.231, [0.898, 0.726, 0.642]], [0.233, [0.898, 0.726, 0.642]], [0.235, [0.905, 0.728, 0.633]], [0.237, [0.905, 0.728, 0.633]], [0.239, [0.912, 0.730, 0.625]], [0.241, [0.912, 0.730, 0.625]], [0.243, [0.919, 0.732, 0.617]], [0.245, [0.919, 0.732, 0.617]], [0.247, [0.925, 0.734, 0.608]], [0.249, [0.925, 0.734, 0.608]], [0.250, [0.932, 0.736, 0.600]], [0.252, [0.932, 0.736, 0.600]], [0.254, [0.939, 0.738, 0.591]], [0.256, [0.939, 0.738, 0.591]], [0.258, [0.946, 0.740, 0.583]], [0.260, [0.946, 0.740, 0.583]], [0.262, [0.952, 0.742, 0.575]], [0.264, [0.952, 0.742, 0.575]], [0.266, [0.959, 0.744, 0.566]], [0.268, [0.959, 0.744, 0.566]], [0.270, [0.966, 0.745, 0.558]], [0.272, [0.966, 0.745, 0.558]], [0.274, [0.973, 0.747, 0.549]], [0.276, [0.973, 0.747, 0.549]], [0.278, [0.980, 0.749, 0.541]], [0.280, [0.980, 0.749, 0.541]], [0.282, [0.986, 0.751, 0.533]], [0.284, [0.986, 0.751, 0.533]], [0.286, [0.992, 0.754, 0.526]], [0.288, [0.992, 0.754, 0.526]], [0.290, [0.992, 0.761, 0.528]], [0.292, [0.992, 0.761, 0.528]], [0.294, [0.993, 0.767, 0.530]], [0.295, [0.993, 0.767, 0.530]], [0.297, [0.993, 0.774, 0.532]], [0.299, [0.993, 0.774, 0.532]], [0.301, [0.993, 0.781, 0.534]], [0.303, [0.993, 0.781, 0.534]], [0.305, [0.993, 0.788, 0.536]], [0.307, [0.993, 0.788, 0.536]], [0.309, [0.993, 0.795, 0.538]], [0.311, [0.993, 0.795, 0.538]], [0.313, [0.994, 0.801, 0.540]], [0.315, [0.994, 0.801, 0.540]], [0.317, [0.994, 0.808, 0.542]], [0.319, [0.994, 0.808, 0.542]], [0.321, [0.994, 0.815, 0.544]], [0.323, [0.994, 0.815, 0.544]], [0.325, [0.994, 0.822, 0.546]], [0.327, [0.994, 0.822, 0.546]], [0.329, [0.995, 0.829, 0.548]], [0.331, [0.995, 0.829, 0.548]], [0.333, [0.995, 0.835, 0.550]], [0.335, [0.995, 0.835, 0.550]], [0.337, [0.995, 0.842, 0.552]], [0.339, [0.995, 0.842, 0.552]], [0.341, [0.995, 0.849, 0.554]], [0.342, [0.995, 0.849, 0.554]], [0.344, [0.995, 0.856, 0.556]], [0.346, [0.995, 0.856, 0.556]], [0.348, [0.996, 0.862, 0.559]], [0.350, [0.996, 0.862, 0.559]], [0.352, [0.996, 0.869, 0.561]], [0.354, [0.996, 0.869, 0.561]], [0.356, [0.996, 0.876, 0.563]], [0.358, [0.996, 0.876, 0.563]], [0.360, [0.996, 0.883, 0.565]], [0.362, [0.996, 0.883, 0.565]], [0.364, [0.996, 0.890, 0.567]], [0.366, [0.996, 0.890, 0.567]], [0.368, [0.997, 0.896, 0.569]], [0.370, [0.997, 0.896, 0.569]], [0.372, [0.997, 0.903, 0.571]], [0.374, [0.997, 0.903, 0.571]], [0.376, [0.997, 0.910, 0.573]], [0.378, [0.997, 0.910, 0.573]], [0.380, [0.997, 0.917, 0.575]], [0.382, [0.997, 0.917, 0.575]], [0.384, [0.998, 0.923, 0.577]], [0.386, [0.998, 0.923, 0.577]], [0.387, [0.998, 0.930, 0.579]], [0.389, [0.998, 0.930, 0.579]], [0.391, [0.998, 0.937, 0.581]], [0.393, [0.998, 0.937, 0.581]], [0.395, [0.998, 0.944, 0.583]], [0.397, [0.998, 0.944, 0.583]], [0.399, [0.998, 0.951, 0.585]], [0.401, [0.998, 0.951, 0.585]], [0.403, [0.999, 0.957, 0.587]], [0.405, [0.999, 0.957, 0.587]], [0.407, [0.999, 0.964, 0.589]], [0.409, [0.999, 0.964, 0.589]], [0.411, [0.999, 0.971, 0.591]], [0.413, [0.999, 0.971, 0.591]], [0.415, [0.999, 0.978, 0.593]], [0.417, [0.999, 0.978, 0.593]], [0.419, [1.000, 0.984, 0.595]], [0.421, [1.000, 0.984, 0.595]], [0.423, [1.000, 0.991, 0.597]], [0.425, [1.000, 0.991, 0.597]], [0.427, [1.000, 0.998, 0.599]], [0.429, [1.000, 0.998, 0.599]], [0.431, [0.985, 0.989, 0.602]], [0.432, [0.985, 0.989, 0.602]], [0.434, [0.963, 0.973, 0.604]], [0.436, [0.963, 0.973, 0.604]], [0.438, [0.942, 0.957, 0.607]], [0.440, [0.942, 0.957, 0.607]], [0.442, [0.920, 0.941, 0.609]], [0.444, [0.920, 0.941, 0.609]], [0.446, [0.899, 0.925, 0.612]], [0.448, [0.899, 0.925, 0.612]], [0.450, [0.878, 0.910, 0.614]], [0.452, [0.878, 0.910, 0.614]], [0.454, [0.856, 0.894, 0.617]], [0.456, [0.856, 0.894, 0.617]], [0.458, [0.835, 0.878, 0.619]], [0.460, [0.835, 0.878, 0.619]], [0.462, [0.813, 0.862, 0.622]], [0.464, [0.813, 0.862, 0.622]], [0.466, [0.792, 0.846, 0.624]], [0.468, [0.792, 0.846, 0.624]], [0.470, [0.770, 0.830, 0.627]], [0.472, [0.770, 0.830, 0.627]], [0.474, [0.749, 0.815, 0.629]], [0.476, [0.749, 0.815, 0.629]], [0.477, [0.728, 0.799, 0.631]], [0.479, [0.728, 0.799, 0.631]], [0.481, [0.706, 0.783, 0.634]], [0.483, [0.706, 0.783, 0.634]], [0.485, [0.685, 0.767, 0.636]], [0.487, [0.685, 0.767, 0.636]], [0.489, [0.663, 0.751, 0.639]], [0.491, [0.663, 0.751, 0.639]], [0.493, [0.642, 0.736, 0.641]], [0.495, [0.642, 0.736, 0.641]], [0.497, [0.621, 0.720, 0.644]], [0.499, [0.621, 0.720, 0.644]], [0.501, [0.599, 0.704, 0.646]], [0.503, [0.599, 0.704, 0.646]], [0.505, [0.578, 0.688, 0.649]], [0.507, [0.578, 0.688, 0.649]], [0.509, [0.556, 0.672, 0.651]], [0.511, [0.556, 0.672, 0.651]], [0.513, [0.535, 0.656, 0.654]], [0.515, [0.535, 0.656, 0.654]], [0.517, [0.513, 0.641, 0.656]], [0.519, [0.513, 0.641, 0.656]], [0.521, [0.492, 0.625, 0.659]], [0.523, [0.492, 0.625, 0.659]], [0.524, [0.471, 0.609, 0.661]], [0.526, [0.471, 0.609, 0.661]], [0.528, [0.449, 0.593, 0.664]], [0.530, [0.449, 0.593, 0.664]], [0.532, [0.428, 0.577, 0.666]], [0.534, [0.428, 0.577, 0.666]], [0.536, [0.406, 0.561, 0.669]], [0.538, [0.406, 0.561, 0.669]], [0.540, [0.385, 0.546, 0.671]], [0.542, [0.385, 0.546, 0.671]], [0.544, [0.363, 0.530, 0.674]], [0.546, [0.363, 0.530, 0.674]], [0.548, [0.342, 0.514, 0.676]], [0.550, [0.342, 0.514, 0.676]], [0.552, [0.321, 0.498, 0.679]], [0.554, [0.321, 0.498, 0.679]], [0.556, [0.299, 0.482, 0.681]], [0.558, [0.299, 0.482, 0.681]], [0.560, [0.278, 0.466, 0.683]], [0.562, [0.278, 0.466, 0.683]], [0.564, [0.256, 0.451, 0.686]], [0.566, [0.256, 0.451, 0.686]], [0.568, [0.235, 0.435, 0.688]], [0.569, [0.235, 0.435, 0.688]], [0.571, [0.225, 0.420, 0.689]], [0.573, [0.225, 0.420, 0.689]], [0.575, [0.245, 0.409, 0.683]], [0.577, [0.245, 0.409, 0.683]], [0.579, [0.265, 0.397, 0.678]], [0.581, [0.265, 0.397, 0.678]], [0.583, [0.285, 0.386, 0.673]], [0.585, [0.285, 0.386, 0.673]], [0.587, [0.304, 0.375, 0.668]], [0.589, [0.304, 0.375, 0.668]], [0.591, [0.324, 0.363, 0.662]], [0.593, [0.324, 0.363, 0.662]], [0.595, [0.344, 0.352, 0.657]], [0.597, [0.344, 0.352, 0.657]], [0.599, [0.364, 0.340, 0.652]], [0.601, [0.364, 0.340, 0.652]], [0.603, [0.384, 0.329, 0.646]], [0.605, [0.384, 0.329, 0.646]], [0.607, [0.404, 0.318, 0.641]], [0.609, [0.404, 0.318, 0.641]], [0.611, [0.423, 0.306, 0.636]], [0.613, [0.423, 0.306, 0.636]], [0.614, [0.443, 0.295, 0.631]], [0.616, [0.443, 0.295, 0.631]], [0.618, [0.463, 0.283, 0.625]], [0.620, [0.463, 0.283, 0.625]], [0.622, [0.483, 0.272, 0.620]], [0.624, [0.483, 0.272, 0.620]], [0.626, [0.503, 0.261, 0.615]], [0.628, [0.503, 0.261, 0.615]], [0.630, [0.522, 0.249, 0.610]], [0.632, [0.522, 0.249, 0.610]], [0.634, [0.542, 0.238, 0.604]], [0.636, [0.542, 0.238, 0.604]], [0.638, [0.562, 0.226, 0.599]], [0.640, [0.562, 0.226, 0.599]], [0.642, [0.582, 0.215, 0.594]], [0.644, [0.582, 0.215, 0.594]], [0.646, [0.602, 0.203, 0.588]], [0.648, [0.602, 0.203, 0.588]], [0.650, [0.621, 0.192, 0.583]], [0.652, [0.621, 0.192, 0.583]], [0.654, [0.641, 0.181, 0.578]], [0.656, [0.641, 0.181, 0.578]], [0.658, [0.661, 0.169, 0.573]], [0.659, [0.661, 0.169, 0.573]], [0.661, [0.681, 0.158, 0.567]], [0.663, [0.681, 0.158, 0.567]], [0.665, [0.701, 0.146, 0.562]], [0.667, [0.701, 0.146, 0.562]], [0.669, [0.720, 0.135, 0.557]], [0.671, [0.720, 0.135, 0.557]], [0.673, [0.740, 0.124, 0.552]], [0.675, [0.740, 0.124, 0.552]], [0.677, [0.760, 0.112, 0.546]], [0.679, [0.760, 0.112, 0.546]], [0.681, [0.780, 0.101, 0.541]], [0.683, [0.780, 0.101, 0.541]], [0.685, [0.800, 0.089, 0.536]], [0.687, [0.800, 0.089, 0.536]], [0.689, [0.820, 0.078, 0.530]], [0.691, [0.820, 0.078, 0.530]], [0.693, [0.839, 0.067, 0.525]], [0.695, [0.839, 0.067, 0.525]], [0.697, [0.859, 0.055, 0.520]], [0.699, [0.859, 0.055, 0.520]], [0.701, [0.879, 0.044, 0.515]], [0.703, [0.879, 0.044, 0.515]], [0.705, [0.899, 0.032, 0.509]], [0.706, [0.899, 0.032, 0.509]], [0.708, [0.919, 0.021, 0.504]], [0.710, [0.919, 0.021, 0.504]], [0.712, [0.938, 0.009, 0.499]], [0.714, [0.938, 0.009, 0.499]], [0.716, [0.937, 0.016, 0.488]], [0.718, [0.937, 0.016, 0.488]], [0.720, [0.931, 0.026, 0.477]], [0.722, [0.931, 0.026, 0.477]], [0.724, [0.926, 0.035, 0.466]], [0.726, [0.926, 0.035, 0.466]], [0.728, [0.921, 0.045, 0.455]], [0.730, [0.921, 0.045, 0.455]], [0.732, [0.916, 0.054, 0.444]], [0.734, [0.916, 0.054, 0.444]], [0.736, [0.910, 0.064, 0.432]], [0.738, [0.910, 0.064, 0.432]], [0.740, [0.905, 0.074, 0.421]], [0.742, [0.905, 0.074, 0.421]], [0.744, [0.900, 0.083, 0.410]], [0.746, [0.900, 0.083, 0.410]], [0.748, [0.894, 0.093, 0.399]], [0.750, [0.894, 0.093, 0.399]], [0.751, [0.889, 0.102, 0.388]], [0.753, [0.889, 0.102, 0.388]], [0.755, [0.884, 0.112, 0.376]], [0.757, [0.884, 0.112, 0.376]], [0.759, [0.879, 0.121, 0.365]], [0.761, [0.879, 0.121, 0.365]], [0.763, [0.873, 0.131, 0.354]], [0.765, [0.873, 0.131, 0.354]], [0.767, [0.868, 0.141, 0.343]], [0.769, [0.868, 0.141, 0.343]], [0.771, [0.863, 0.150, 0.332]], [0.773, [0.863, 0.150, 0.332]], [0.775, [0.858, 0.160, 0.321]], [0.777, [0.858, 0.160, 0.321]], [0.779, [0.852, 0.169, 0.309]], [0.781, [0.852, 0.169, 0.309]], [0.783, [0.847, 0.179, 0.298]], [0.785, [0.847, 0.179, 0.298]], [0.787, [0.842, 0.189, 0.287]], [0.789, [0.842, 0.189, 0.287]], [0.791, [0.836, 0.198, 0.276]], [0.793, [0.836, 0.198, 0.276]], [0.795, [0.831, 0.208, 0.265]], [0.796, [0.831, 0.208, 0.265]], [0.798, [0.826, 0.217, 0.253]], [0.800, [0.826, 0.217, 0.253]], [0.802, [0.821, 0.227, 0.242]], [0.804, [0.821, 0.227, 0.242]], [0.806, [0.815, 0.236, 0.231]], [0.808, [0.815, 0.236, 0.231]], [0.810, [0.810, 0.246, 0.220]], [0.812, [0.810, 0.246, 0.220]], [0.814, [0.805, 0.256, 0.209]], [0.816, [0.805, 0.256, 0.209]], [0.818, [0.800, 0.265, 0.197]], [0.820, [0.800, 0.265, 0.197]], [0.822, [0.794, 0.275, 0.186]], [0.824, [0.794, 0.275, 0.186]], [0.826, [0.789, 0.284, 0.175]], [0.828, [0.789, 0.284, 0.175]], [0.830, [0.784, 0.294, 0.164]], [0.832, [0.784, 0.294, 0.164]], [0.834, [0.778, 0.303, 0.153]], [0.836, [0.778, 0.303, 0.153]], [0.838, [0.773, 0.313, 0.141]], [0.840, [0.773, 0.313, 0.141]], [0.841, [0.768, 0.323, 0.130]], [0.843, [0.768, 0.323, 0.130]], [0.845, [0.763, 0.332, 0.119]], [0.847, [0.763, 0.332, 0.119]], [0.849, [0.757, 0.342, 0.108]], [0.851, [0.757, 0.342, 0.108]], [0.853, [0.752, 0.351, 0.097]], [0.855, [0.752, 0.351, 0.097]], [0.857, [0.745, 0.357, 0.094]], [0.859, [0.745, 0.357, 0.094]], [0.861, [0.735, 0.359, 0.102]], [0.863, [0.735, 0.359, 0.102]], [0.865, [0.726, 0.360, 0.111]], [0.867, [0.726, 0.360, 0.111]], [0.869, [0.716, 0.361, 0.119]], [0.871, [0.716, 0.361, 0.119]], [0.873, [0.707, 0.362, 0.128]], [0.875, [0.707, 0.362, 0.128]], [0.877, [0.697, 0.363, 0.136]], [0.879, [0.697, 0.363, 0.136]], [0.881, [0.687, 0.364, 0.145]], [0.883, [0.687, 0.364, 0.145]], [0.885, [0.678, 0.366, 0.153]], [0.886, [0.678, 0.366, 0.153]], [0.888, [0.668, 0.367, 0.162]], [0.890, [0.668, 0.367, 0.162]], [0.892, [0.659, 0.368, 0.170]], [0.894, [0.659, 0.368, 0.170]], [0.896, [0.649, 0.369, 0.179]], [0.898, [0.649, 0.369, 0.179]], [0.900, [0.640, 0.370, 0.187]], [0.902, [0.640, 0.370, 0.187]], [0.904, [0.630, 0.372, 0.196]], [0.906, [0.630, 0.372, 0.196]], [0.908, [0.620, 0.373, 0.204]], [0.910, [0.620, 0.373, 0.204]], [0.912, [0.611, 0.374, 0.213]], [0.914, [0.611, 0.374, 0.213]], [0.916, [0.601, 0.375, 0.221]], [0.918, [0.601, 0.375, 0.221]], [0.920, [0.592, 0.376, 0.230]], [0.922, [0.592, 0.376, 0.230]], [0.924, [0.582, 0.378, 0.238]], [0.926, [0.582, 0.378, 0.238]], [0.928, [0.572, 0.379, 0.247]], [0.930, [0.572, 0.379, 0.247]], [0.932, [0.563, 0.380, 0.255]], [0.933, [0.563, 0.380, 0.255]], [0.935, [0.553, 0.381, 0.264]], [0.937, [0.553, 0.381, 0.264]], [0.939, [0.544, 0.382, 0.272]], [0.941, [0.544, 0.382, 0.272]], [0.943, [0.534, 0.383, 0.281]], [0.945, [0.534, 0.383, 0.281]], [0.947, [0.525, 0.385, 0.289]], [0.949, [0.525, 0.385, 0.289]], [0.951, [0.515, 0.386, 0.298]], [0.953, [0.515, 0.386, 0.298]], [0.955, [0.505, 0.387, 0.306]], [0.957, [0.505, 0.387, 0.306]], [0.959, [0.496, 0.388, 0.315]], [0.961, [0.496, 0.388, 0.315]], [0.963, [0.486, 0.389, 0.323]], [0.965, [0.486, 0.389, 0.323]], [0.967, [0.477, 0.391, 0.332]], [0.969, [0.477, 0.391, 0.332]], [0.971, [0.467, 0.392, 0.340]], [0.973, [0.467, 0.392, 0.340]], [0.975, [0.457, 0.393, 0.349]], [0.977, [0.457, 0.393, 0.349]], [0.978, [0.448, 0.394, 0.357]], [0.980, [0.448, 0.394, 0.357]], [0.982, [0.438, 0.395, 0.366]], [0.984, [0.438, 0.395, 0.366]], [0.986, [0.429, 0.396, 0.374]], [0.988, [0.429, 0.396, 0.374]], [0.990, [0.419, 0.398, 0.383]], [0.992, [0.419, 0.398, 0.383]], [0.994, [0.410, 0.399, 0.391]], [0.996, [0.410, 0.399, 0.391]], [0.998, [0.400, 0.400, 0.400]], [1.000, [0.400, 0.400, 0.400]]];
+var Dark2 = [[0.000, [0.106, 0.620, 0.467]], [0.002, [0.106, 0.620, 0.467]], [0.004, [0.126, 0.613, 0.454]], [0.006, [0.126, 0.613, 0.454]], [0.008, [0.147, 0.606, 0.441]], [0.010, [0.147, 0.606, 0.441]], [0.012, [0.167, 0.599, 0.429]], [0.014, [0.167, 0.599, 0.429]], [0.016, [0.188, 0.592, 0.416]], [0.018, [0.188, 0.592, 0.416]], [0.020, [0.208, 0.586, 0.404]], [0.022, [0.208, 0.586, 0.404]], [0.023, [0.229, 0.579, 0.391]], [0.025, [0.229, 0.579, 0.391]], [0.027, [0.249, 0.572, 0.379]], [0.029, [0.249, 0.572, 0.379]], [0.031, [0.270, 0.565, 0.366]], [0.033, [0.270, 0.565, 0.366]], [0.035, [0.290, 0.559, 0.353]], [0.037, [0.290, 0.559, 0.353]], [0.039, [0.310, 0.552, 0.341]], [0.041, [0.310, 0.552, 0.341]], [0.043, [0.331, 0.545, 0.328]], [0.045, [0.331, 0.545, 0.328]], [0.047, [0.351, 0.538, 0.316]], [0.049, [0.351, 0.538, 0.316]], [0.051, [0.372, 0.531, 0.303]], [0.053, [0.372, 0.531, 0.303]], [0.055, [0.392, 0.525, 0.290]], [0.057, [0.392, 0.525, 0.290]], [0.059, [0.413, 0.518, 0.278]], [0.061, [0.413, 0.518, 0.278]], [0.063, [0.433, 0.511, 0.265]], [0.065, [0.433, 0.511, 0.265]], [0.067, [0.454, 0.504, 0.253]], [0.068, [0.454, 0.504, 0.253]], [0.070, [0.474, 0.498, 0.240]], [0.072, [0.474, 0.498, 0.240]], [0.074, [0.495, 0.491, 0.227]], [0.076, [0.495, 0.491, 0.227]], [0.078, [0.515, 0.484, 0.215]], [0.080, [0.515, 0.484, 0.215]], [0.082, [0.535, 0.477, 0.202]], [0.084, [0.535, 0.477, 0.202]], [0.086, [0.556, 0.470, 0.190]], [0.088, [0.556, 0.470, 0.190]], [0.090, [0.576, 0.464, 0.177]], [0.092, [0.576, 0.464, 0.177]], [0.094, [0.597, 0.457, 0.164]], [0.096, [0.597, 0.457, 0.164]], [0.098, [0.617, 0.450, 0.152]], [0.100, [0.617, 0.450, 0.152]], [0.102, [0.638, 0.443, 0.139]], [0.104, [0.638, 0.443, 0.139]], [0.106, [0.658, 0.436, 0.127]], [0.108, [0.658, 0.436, 0.127]], [0.110, [0.679, 0.430, 0.114]], [0.112, [0.679, 0.430, 0.114]], [0.114, [0.699, 0.423, 0.101]], [0.115, [0.699, 0.423, 0.101]], [0.117, [0.719, 0.416, 0.089]], [0.119, [0.719, 0.416, 0.089]], [0.121, [0.740, 0.409, 0.076]], [0.123, [0.740, 0.409, 0.076]], [0.125, [0.760, 0.403, 0.064]], [0.127, [0.760, 0.403, 0.064]], [0.129, [0.781, 0.396, 0.051]], [0.131, [0.781, 0.396, 0.051]], [0.133, [0.801, 0.389, 0.038]], [0.135, [0.801, 0.389, 0.038]], [0.137, [0.822, 0.382, 0.026]], [0.139, [0.822, 0.382, 0.026]], [0.141, [0.842, 0.375, 0.013]], [0.143, [0.842, 0.375, 0.013]], [0.145, [0.845, 0.374, 0.019]], [0.147, [0.845, 0.374, 0.019]], [0.149, [0.834, 0.375, 0.038]], [0.151, [0.834, 0.375, 0.038]], [0.153, [0.823, 0.377, 0.057]], [0.155, [0.823, 0.377, 0.057]], [0.157, [0.813, 0.379, 0.076]], [0.159, [0.813, 0.379, 0.076]], [0.160, [0.802, 0.381, 0.095]], [0.162, [0.802, 0.381, 0.095]], [0.164, [0.791, 0.383, 0.114]], [0.166, [0.791, 0.383, 0.114]], [0.168, [0.780, 0.385, 0.133]], [0.170, [0.780, 0.385, 0.133]], [0.172, [0.769, 0.386, 0.152]], [0.174, [0.769, 0.386, 0.152]], [0.176, [0.759, 0.388, 0.171]], [0.178, [0.759, 0.388, 0.171]], [0.180, [0.748, 0.390, 0.190]], [0.182, [0.748, 0.390, 0.190]], [0.184, [0.737, 0.392, 0.209]], [0.186, [0.737, 0.392, 0.209]], [0.188, [0.726, 0.394, 0.228]], [0.190, [0.726, 0.394, 0.228]], [0.192, [0.716, 0.396, 0.247]], [0.194, [0.716, 0.396, 0.247]], [0.196, [0.705, 0.397, 0.266]], [0.198, [0.705, 0.397, 0.266]], [0.200, [0.694, 0.399, 0.285]], [0.202, [0.694, 0.399, 0.285]], [0.204, [0.683, 0.401, 0.305]], [0.205, [0.683, 0.401, 0.305]], [0.207, [0.673, 0.403, 0.324]], [0.209, [0.673, 0.403, 0.324]], [0.211, [0.662, 0.405, 0.343]], [0.213, [0.662, 0.405, 0.343]], [0.215, [0.651, 0.407, 0.362]], [0.217, [0.651, 0.407, 0.362]], [0.219, [0.640, 0.408, 0.381]], [0.221, [0.640, 0.408, 0.381]], [0.223, [0.630, 0.410, 0.400]], [0.225, [0.630, 0.410, 0.400]], [0.227, [0.619, 0.412, 0.419]], [0.229, [0.619, 0.412, 0.419]], [0.231, [0.608, 0.414, 0.438]], [0.233, [0.608, 0.414, 0.438]], [0.235, [0.597, 0.416, 0.457]], [0.237, [0.597, 0.416, 0.457]], [0.239, [0.586, 0.418, 0.476]], [0.241, [0.586, 0.418, 0.476]], [0.243, [0.576, 0.419, 0.495]], [0.245, [0.576, 0.419, 0.495]], [0.247, [0.565, 0.421, 0.514]], [0.249, [0.565, 0.421, 0.514]], [0.250, [0.554, 0.423, 0.533]], [0.252, [0.554, 0.423, 0.533]], [0.254, [0.543, 0.425, 0.552]], [0.256, [0.543, 0.425, 0.552]], [0.258, [0.533, 0.427, 0.571]], [0.260, [0.533, 0.427, 0.571]], [0.262, [0.522, 0.428, 0.590]], [0.264, [0.522, 0.428, 0.590]], [0.266, [0.511, 0.430, 0.609]], [0.268, [0.511, 0.430, 0.609]], [0.270, [0.500, 0.432, 0.628]], [0.272, [0.500, 0.432, 0.628]], [0.274, [0.490, 0.434, 0.648]], [0.276, [0.490, 0.434, 0.648]], [0.278, [0.479, 0.436, 0.667]], [0.280, [0.479, 0.436, 0.667]], [0.282, [0.468, 0.438, 0.686]], [0.284, [0.468, 0.438, 0.686]], [0.286, [0.461, 0.438, 0.701]], [0.288, [0.461, 0.438, 0.701]], [0.290, [0.473, 0.430, 0.697]], [0.292, [0.473, 0.430, 0.697]], [0.294, [0.485, 0.423, 0.693]], [0.295, [0.485, 0.423, 0.693]], [0.297, [0.497, 0.415, 0.688]], [0.299, [0.497, 0.415, 0.688]], [0.301, [0.510, 0.408, 0.684]], [0.303, [0.510, 0.408, 0.684]], [0.305, [0.522, 0.400, 0.679]], [0.307, [0.522, 0.400, 0.679]], [0.309, [0.534, 0.392, 0.675]], [0.311, [0.534, 0.392, 0.675]], [0.313, [0.546, 0.385, 0.670]], [0.315, [0.546, 0.385, 0.670]], [0.317, [0.559, 0.377, 0.666]], [0.319, [0.559, 0.377, 0.666]], [0.321, [0.571, 0.369, 0.662]], [0.323, [0.571, 0.369, 0.662]], [0.325, [0.583, 0.362, 0.657]], [0.327, [0.583, 0.362, 0.657]], [0.329, [0.596, 0.354, 0.653]], [0.331, [0.596, 0.354, 0.653]], [0.333, [0.608, 0.346, 0.648]], [0.335, [0.608, 0.346, 0.648]], [0.337, [0.620, 0.339, 0.644]], [0.339, [0.620, 0.339, 0.644]], [0.341, [0.632, 0.331, 0.640]], [0.342, [0.632, 0.331, 0.640]], [0.344, [0.645, 0.323, 0.635]], [0.346, [0.645, 0.323, 0.635]], [0.348, [0.657, 0.316, 0.631]], [0.350, [0.657, 0.316, 0.631]], [0.352, [0.669, 0.308, 0.626]], [0.354, [0.669, 0.308, 0.626]], [0.356, [0.681, 0.301, 0.622]], [0.358, [0.681, 0.301, 0.622]], [0.360, [0.694, 0.293, 0.617]], [0.362, [0.694, 0.293, 0.617]], [0.364, [0.706, 0.285, 0.613]], [0.366, [0.706, 0.285, 0.613]], [0.368, [0.718, 0.278, 0.609]], [0.370, [0.718, 0.278, 0.609]], [0.372, [0.731, 0.270, 0.604]], [0.374, [0.731, 0.270, 0.604]], [0.376, [0.743, 0.262, 0.600]], [0.378, [0.743, 0.262, 0.600]], [0.380, [0.755, 0.255, 0.595]], [0.382, [0.755, 0.255, 0.595]], [0.384, [0.767, 0.247, 0.591]], [0.386, [0.767, 0.247, 0.591]], [0.387, [0.780, 0.239, 0.587]], [0.389, [0.780, 0.239, 0.587]], [0.391, [0.792, 0.232, 0.582]], [0.393, [0.792, 0.232, 0.582]], [0.395, [0.804, 0.224, 0.578]], [0.397, [0.804, 0.224, 0.578]], [0.399, [0.816, 0.216, 0.573]], [0.401, [0.816, 0.216, 0.573]], [0.403, [0.829, 0.209, 0.569]], [0.405, [0.829, 0.209, 0.569]], [0.407, [0.841, 0.201, 0.565]], [0.409, [0.841, 0.201, 0.565]], [0.411, [0.853, 0.194, 0.560]], [0.413, [0.853, 0.194, 0.560]], [0.415, [0.866, 0.186, 0.556]], [0.417, [0.866, 0.186, 0.556]], [0.419, [0.878, 0.178, 0.551]], [0.421, [0.878, 0.178, 0.551]], [0.423, [0.890, 0.171, 0.547]], [0.425, [0.890, 0.171, 0.547]], [0.427, [0.902, 0.163, 0.542]], [0.429, [0.902, 0.163, 0.542]], [0.431, [0.896, 0.170, 0.533]], [0.432, [0.896, 0.170, 0.533]], [0.434, [0.882, 0.184, 0.521]], [0.436, [0.882, 0.184, 0.521]], [0.438, [0.868, 0.197, 0.510]], [0.440, [0.868, 0.197, 0.510]], [0.442, [0.854, 0.211, 0.498]], [0.444, [0.854, 0.211, 0.498]], [0.446, [0.840, 0.224, 0.486]], [0.448, [0.840, 0.224, 0.486]], [0.450, [0.827, 0.238, 0.475]], [0.452, [0.827, 0.238, 0.475]], [0.454, [0.813, 0.251, 0.463]], [0.456, [0.813, 0.251, 0.463]], [0.458, [0.799, 0.265, 0.451]], [0.460, [0.799, 0.265, 0.451]], [0.462, [0.785, 0.278, 0.440]], [0.464, [0.785, 0.278, 0.440]], [0.466, [0.771, 0.292, 0.428]], [0.468, [0.771, 0.292, 0.428]], [0.470, [0.757, 0.305, 0.417]], [0.472, [0.757, 0.305, 0.417]], [0.474, [0.743, 0.318, 0.405]], [0.476, [0.743, 0.318, 0.405]], [0.477, [0.729, 0.332, 0.393]], [0.479, [0.729, 0.332, 0.393]], [0.481, [0.715, 0.345, 0.382]], [0.483, [0.715, 0.345, 0.382]], [0.485, [0.702, 0.359, 0.370]], [0.487, [0.702, 0.359, 0.370]], [0.489, [0.688, 0.372, 0.358]], [0.491, [0.688, 0.372, 0.358]], [0.493, [0.674, 0.386, 0.347]], [0.495, [0.674, 0.386, 0.347]], [0.497, [0.660, 0.399, 0.335]], [0.499, [0.660, 0.399, 0.335]], [0.501, [0.646, 0.413, 0.324]], [0.503, [0.646, 0.413, 0.324]], [0.505, [0.632, 0.426, 0.312]], [0.507, [0.632, 0.426, 0.312]], [0.509, [0.618, 0.440, 0.300]], [0.511, [0.618, 0.440, 0.300]], [0.513, [0.604, 0.453, 0.289]], [0.515, [0.604, 0.453, 0.289]], [0.517, [0.590, 0.466, 0.277]], [0.519, [0.590, 0.466, 0.277]], [0.521, [0.577, 0.480, 0.265]], [0.523, [0.577, 0.480, 0.265]], [0.524, [0.563, 0.493, 0.254]], [0.526, [0.563, 0.493, 0.254]], [0.528, [0.549, 0.507, 0.242]], [0.530, [0.549, 0.507, 0.242]], [0.532, [0.535, 0.520, 0.231]], [0.534, [0.535, 0.520, 0.231]], [0.536, [0.521, 0.534, 0.219]], [0.538, [0.521, 0.534, 0.219]], [0.540, [0.507, 0.547, 0.207]], [0.542, [0.507, 0.547, 0.207]], [0.544, [0.493, 0.561, 0.196]], [0.546, [0.493, 0.561, 0.196]], [0.548, [0.479, 0.574, 0.184]], [0.550, [0.479, 0.574, 0.184]], [0.552, [0.465, 0.588, 0.172]], [0.554, [0.465, 0.588, 0.172]], [0.556, [0.452, 0.601, 0.161]], [0.558, [0.452, 0.601, 0.161]], [0.560, [0.438, 0.614, 0.149]], [0.562, [0.438, 0.614, 0.149]], [0.564, [0.424, 0.628, 0.138]], [0.566, [0.424, 0.628, 0.138]], [0.568, [0.410, 0.641, 0.126]], [0.569, [0.410, 0.641, 0.126]], [0.571, [0.404, 0.651, 0.117]], [0.573, [0.404, 0.651, 0.117]], [0.575, [0.418, 0.652, 0.114]], [0.577, [0.418, 0.652, 0.114]], [0.579, [0.431, 0.652, 0.111]], [0.581, [0.431, 0.652, 0.111]], [0.583, [0.445, 0.653, 0.108]], [0.585, [0.445, 0.653, 0.108]], [0.587, [0.459, 0.653, 0.105]], [0.589, [0.459, 0.653, 0.105]], [0.591, [0.473, 0.654, 0.102]], [0.593, [0.473, 0.654, 0.102]], [0.595, [0.487, 0.654, 0.099]], [0.597, [0.487, 0.654, 0.099]], [0.599, [0.500, 0.655, 0.096]], [0.601, [0.500, 0.655, 0.096]], [0.603, [0.514, 0.655, 0.093]], [0.605, [0.514, 0.655, 0.093]], [0.607, [0.528, 0.656, 0.090]], [0.609, [0.528, 0.656, 0.090]], [0.611, [0.542, 0.657, 0.087]], [0.613, [0.542, 0.657, 0.087]], [0.614, [0.556, 0.657, 0.084]], [0.616, [0.556, 0.657, 0.084]], [0.618, [0.569, 0.658, 0.081]], [0.620, [0.569, 0.658, 0.081]], [0.622, [0.583, 0.658, 0.078]], [0.624, [0.583, 0.658, 0.078]], [0.626, [0.597, 0.659, 0.075]], [0.628, [0.597, 0.659, 0.075]], [0.630, [0.611, 0.659, 0.072]], [0.632, [0.611, 0.659, 0.072]], [0.634, [0.624, 0.660, 0.069]], [0.636, [0.624, 0.660, 0.069]], [0.638, [0.638, 0.660, 0.066]], [0.640, [0.638, 0.660, 0.066]], [0.642, [0.652, 0.661, 0.063]], [0.644, [0.652, 0.661, 0.063]], [0.646, [0.666, 0.661, 0.060]], [0.648, [0.666, 0.661, 0.060]], [0.650, [0.680, 0.662, 0.057]], [0.652, [0.680, 0.662, 0.057]], [0.654, [0.693, 0.662, 0.053]], [0.656, [0.693, 0.662, 0.053]], [0.658, [0.707, 0.663, 0.050]], [0.659, [0.707, 0.663, 0.050]], [0.661, [0.721, 0.664, 0.047]], [0.663, [0.721, 0.664, 0.047]], [0.665, [0.735, 0.664, 0.044]], [0.667, [0.735, 0.664, 0.044]], [0.669, [0.748, 0.665, 0.041]], [0.671, [0.748, 0.665, 0.041]], [0.673, [0.762, 0.665, 0.038]], [0.675, [0.762, 0.665, 0.038]], [0.677, [0.776, 0.666, 0.035]], [0.679, [0.776, 0.666, 0.035]], [0.681, [0.790, 0.666, 0.032]], [0.683, [0.790, 0.666, 0.032]], [0.685, [0.804, 0.667, 0.029]], [0.687, [0.804, 0.667, 0.029]], [0.689, [0.817, 0.667, 0.026]], [0.691, [0.817, 0.667, 0.026]], [0.693, [0.831, 0.668, 0.023]], [0.695, [0.831, 0.668, 0.023]], [0.697, [0.845, 0.668, 0.020]], [0.699, [0.845, 0.668, 0.020]], [0.701, [0.859, 0.669, 0.017]], [0.703, [0.859, 0.669, 0.017]], [0.705, [0.872, 0.669, 0.014]], [0.706, [0.872, 0.669, 0.014]], [0.708, [0.886, 0.670, 0.011]], [0.710, [0.886, 0.670, 0.011]], [0.712, [0.900, 0.671, 0.008]], [0.714, [0.900, 0.671, 0.008]], [0.716, [0.896, 0.666, 0.010]], [0.718, [0.896, 0.666, 0.010]], [0.720, [0.889, 0.660, 0.013]], [0.722, [0.889, 0.660, 0.013]], [0.724, [0.882, 0.654, 0.016]], [0.726, [0.882, 0.654, 0.016]], [0.728, [0.875, 0.649, 0.019]], [0.730, [0.875, 0.649, 0.019]], [0.732, [0.868, 0.643, 0.022]], [0.734, [0.868, 0.643, 0.022]], [0.736, [0.862, 0.637, 0.025]], [0.738, [0.862, 0.637, 0.025]], [0.740, [0.855, 0.631, 0.028]], [0.742, [0.855, 0.631, 0.028]], [0.744, [0.848, 0.626, 0.031]], [0.746, [0.848, 0.626, 0.031]], [0.748, [0.841, 0.620, 0.034]], [0.750, [0.841, 0.620, 0.034]], [0.751, [0.834, 0.614, 0.036]], [0.753, [0.834, 0.614, 0.036]], [0.755, [0.827, 0.609, 0.039]], [0.757, [0.827, 0.609, 0.039]], [0.759, [0.820, 0.603, 0.042]], [0.761, [0.820, 0.603, 0.042]], [0.763, [0.813, 0.597, 0.045]], [0.765, [0.813, 0.597, 0.045]], [0.767, [0.806, 0.592, 0.048]], [0.769, [0.806, 0.592, 0.048]], [0.771, [0.800, 0.586, 0.051]], [0.773, [0.800, 0.586, 0.051]], [0.775, [0.793, 0.580, 0.054]], [0.777, [0.793, 0.580, 0.054]], [0.779, [0.786, 0.574, 0.057]], [0.781, [0.786, 0.574, 0.057]], [0.783, [0.779, 0.569, 0.060]], [0.785, [0.779, 0.569, 0.060]], [0.787, [0.772, 0.563, 0.063]], [0.789, [0.772, 0.563, 0.063]], [0.791, [0.765, 0.557, 0.066]], [0.793, [0.765, 0.557, 0.066]], [0.795, [0.758, 0.552, 0.068]], [0.796, [0.758, 0.552, 0.068]], [0.798, [0.751, 0.546, 0.071]], [0.800, [0.751, 0.546, 0.071]], [0.802, [0.744, 0.540, 0.074]], [0.804, [0.744, 0.540, 0.074]], [0.806, [0.738, 0.534, 0.077]], [0.808, [0.738, 0.534, 0.077]], [0.810, [0.731, 0.529, 0.080]], [0.812, [0.731, 0.529, 0.080]], [0.814, [0.724, 0.523, 0.083]], [0.816, [0.724, 0.523, 0.083]], [0.818, [0.717, 0.517, 0.086]], [0.820, [0.717, 0.517, 0.086]], [0.822, [0.710, 0.512, 0.089]], [0.824, [0.710, 0.512, 0.089]], [0.826, [0.703, 0.506, 0.092]], [0.828, [0.703, 0.506, 0.092]], [0.830, [0.696, 0.500, 0.095]], [0.832, [0.696, 0.500, 0.095]], [0.834, [0.689, 0.495, 0.098]], [0.836, [0.689, 0.495, 0.098]], [0.838, [0.682, 0.489, 0.100]], [0.840, [0.682, 0.489, 0.100]], [0.841, [0.676, 0.483, 0.103]], [0.843, [0.676, 0.483, 0.103]], [0.845, [0.669, 0.477, 0.106]], [0.847, [0.669, 0.477, 0.106]], [0.849, [0.662, 0.472, 0.109]], [0.851, [0.662, 0.472, 0.109]], [0.853, [0.655, 0.466, 0.112]], [0.855, [0.655, 0.466, 0.112]], [0.857, [0.648, 0.462, 0.117]], [0.859, [0.648, 0.462, 0.117]], [0.861, [0.641, 0.460, 0.125]], [0.863, [0.641, 0.460, 0.125]], [0.865, [0.634, 0.459, 0.133]], [0.867, [0.634, 0.459, 0.133]], [0.869, [0.627, 0.457, 0.141]], [0.871, [0.627, 0.457, 0.141]], [0.873, [0.620, 0.455, 0.149]], [0.875, [0.620, 0.455, 0.149]], [0.877, [0.614, 0.453, 0.156]], [0.879, [0.614, 0.453, 0.156]], [0.881, [0.607, 0.452, 0.164]], [0.883, [0.607, 0.452, 0.164]], [0.885, [0.600, 0.450, 0.172]], [0.886, [0.600, 0.450, 0.172]], [0.888, [0.593, 0.448, 0.180]], [0.890, [0.593, 0.448, 0.180]], [0.892, [0.586, 0.447, 0.188]], [0.894, [0.586, 0.447, 0.188]], [0.896, [0.579, 0.445, 0.196]], [0.898, [0.579, 0.445, 0.196]], [0.900, [0.572, 0.443, 0.204]], [0.902, [0.572, 0.443, 0.204]], [0.904, [0.565, 0.441, 0.211]], [0.906, [0.565, 0.441, 0.211]], [0.908, [0.558, 0.440, 0.219]], [0.910, [0.558, 0.440, 0.219]], [0.912, [0.552, 0.438, 0.227]], [0.914, [0.552, 0.438, 0.227]], [0.916, [0.545, 0.436, 0.235]], [0.918, [0.545, 0.436, 0.235]], [0.920, [0.538, 0.434, 0.243]], [0.922, [0.538, 0.434, 0.243]], [0.924, [0.531, 0.433, 0.251]], [0.926, [0.531, 0.433, 0.251]], [0.928, [0.524, 0.431, 0.259]], [0.930, [0.524, 0.431, 0.259]], [0.932, [0.517, 0.429, 0.266]], [0.933, [0.517, 0.429, 0.266]], [0.935, [0.510, 0.428, 0.274]], [0.937, [0.510, 0.428, 0.274]], [0.939, [0.503, 0.426, 0.282]], [0.941, [0.503, 0.426, 0.282]], [0.943, [0.496, 0.424, 0.290]], [0.945, [0.496, 0.424, 0.290]], [0.947, [0.490, 0.422, 0.298]], [0.949, [0.490, 0.422, 0.298]], [0.951, [0.483, 0.421, 0.306]], [0.953, [0.483, 0.421, 0.306]], [0.955, [0.476, 0.419, 0.314]], [0.957, [0.476, 0.419, 0.314]], [0.959, [0.469, 0.417, 0.321]], [0.961, [0.469, 0.417, 0.321]], [0.963, [0.462, 0.416, 0.329]], [0.965, [0.462, 0.416, 0.329]], [0.967, [0.455, 0.414, 0.337]], [0.969, [0.455, 0.414, 0.337]], [0.971, [0.448, 0.412, 0.345]], [0.973, [0.448, 0.412, 0.345]], [0.975, [0.441, 0.410, 0.353]], [0.977, [0.441, 0.410, 0.353]], [0.978, [0.434, 0.409, 0.361]], [0.980, [0.434, 0.409, 0.361]], [0.982, [0.428, 0.407, 0.369]], [0.984, [0.428, 0.407, 0.369]], [0.986, [0.421, 0.405, 0.376]], [0.988, [0.421, 0.405, 0.376]], [0.990, [0.414, 0.403, 0.384]], [0.992, [0.414, 0.403, 0.384]], [0.994, [0.407, 0.402, 0.392]], [0.996, [0.407, 0.402, 0.392]], [0.998, [0.400, 0.400, 0.400]], [1.000, [0.400, 0.400, 0.400]]];
+var Paired = [[0.000, [0.651, 0.808, 0.890]], [0.002, [0.651, 0.808, 0.890]], [0.004, [0.628, 0.793, 0.882]], [0.006, [0.628, 0.793, 0.882]], [0.008, [0.605, 0.779, 0.874]], [0.010, [0.605, 0.779, 0.874]], [0.012, [0.582, 0.764, 0.866]], [0.014, [0.582, 0.764, 0.866]], [0.016, [0.560, 0.750, 0.858]], [0.018, [0.560, 0.750, 0.858]], [0.020, [0.537, 0.735, 0.850]], [0.022, [0.537, 0.735, 0.850]], [0.023, [0.514, 0.721, 0.842]], [0.025, [0.514, 0.721, 0.842]], [0.027, [0.491, 0.706, 0.835]], [0.029, [0.491, 0.706, 0.835]], [0.031, [0.468, 0.691, 0.827]], [0.033, [0.468, 0.691, 0.827]], [0.035, [0.445, 0.677, 0.819]], [0.037, [0.445, 0.677, 0.819]], [0.039, [0.423, 0.662, 0.811]], [0.041, [0.423, 0.662, 0.811]], [0.043, [0.400, 0.648, 0.803]], [0.045, [0.400, 0.648, 0.803]], [0.047, [0.377, 0.633, 0.795]], [0.049, [0.377, 0.633, 0.795]], [0.051, [0.354, 0.619, 0.787]], [0.053, [0.354, 0.619, 0.787]], [0.055, [0.331, 0.604, 0.779]], [0.057, [0.331, 0.604, 0.779]], [0.059, [0.308, 0.590, 0.771]], [0.061, [0.308, 0.590, 0.771]], [0.063, [0.286, 0.575, 0.763]], [0.065, [0.286, 0.575, 0.763]], [0.067, [0.263, 0.561, 0.755]], [0.068, [0.263, 0.561, 0.755]], [0.070, [0.240, 0.546, 0.747]], [0.072, [0.240, 0.546, 0.747]], [0.074, [0.217, 0.531, 0.739]], [0.076, [0.217, 0.531, 0.739]], [0.078, [0.194, 0.517, 0.731]], [0.080, [0.194, 0.517, 0.731]], [0.082, [0.171, 0.502, 0.723]], [0.084, [0.171, 0.502, 0.723]], [0.086, [0.149, 0.488, 0.715]], [0.088, [0.149, 0.488, 0.715]], [0.090, [0.126, 0.473, 0.707]], [0.092, [0.126, 0.473, 0.707]], [0.094, [0.142, 0.485, 0.700]], [0.096, [0.142, 0.485, 0.700]], [0.098, [0.167, 0.502, 0.693]], [0.100, [0.167, 0.502, 0.693]], [0.102, [0.192, 0.520, 0.686]], [0.104, [0.192, 0.520, 0.686]], [0.106, [0.217, 0.537, 0.679]], [0.108, [0.217, 0.537, 0.679]], [0.110, [0.241, 0.555, 0.672]], [0.112, [0.241, 0.555, 0.672]], [0.114, [0.266, 0.572, 0.665]], [0.115, [0.266, 0.572, 0.665]], [0.117, [0.291, 0.589, 0.657]], [0.119, [0.291, 0.589, 0.657]], [0.121, [0.316, 0.607, 0.650]], [0.123, [0.316, 0.607, 0.650]], [0.125, [0.341, 0.624, 0.643]], [0.127, [0.341, 0.624, 0.643]], [0.129, [0.366, 0.642, 0.636]], [0.131, [0.366, 0.642, 0.636]], [0.133, [0.391, 0.659, 0.629]], [0.135, [0.391, 0.659, 0.629]], [0.137, [0.415, 0.677, 0.622]], [0.139, [0.415, 0.677, 0.622]], [0.141, [0.440, 0.694, 0.615]], [0.143, [0.440, 0.694, 0.615]], [0.145, [0.465, 0.711, 0.608]], [0.147, [0.465, 0.711, 0.608]], [0.149, [0.490, 0.729, 0.601]], [0.151, [0.490, 0.729, 0.601]], [0.153, [0.515, 0.746, 0.593]], [0.155, [0.515, 0.746, 0.593]], [0.157, [0.540, 0.764, 0.586]], [0.159, [0.540, 0.764, 0.586]], [0.160, [0.565, 0.781, 0.579]], [0.162, [0.565, 0.781, 0.579]], [0.164, [0.590, 0.798, 0.572]], [0.166, [0.590, 0.798, 0.572]], [0.168, [0.614, 0.816, 0.565]], [0.170, [0.614, 0.816, 0.565]], [0.172, [0.639, 0.833, 0.558]], [0.174, [0.639, 0.833, 0.558]], [0.176, [0.664, 0.851, 0.551]], [0.178, [0.664, 0.851, 0.551]], [0.180, [0.689, 0.868, 0.544]], [0.182, [0.689, 0.868, 0.544]], [0.184, [0.684, 0.868, 0.531]], [0.186, [0.684, 0.868, 0.531]], [0.188, [0.663, 0.857, 0.515]], [0.190, [0.663, 0.857, 0.515]], [0.192, [0.641, 0.846, 0.499]], [0.194, [0.641, 0.846, 0.499]], [0.196, [0.620, 0.836, 0.483]], [0.198, [0.620, 0.836, 0.483]], [0.200, [0.598, 0.825, 0.467]], [0.202, [0.598, 0.825, 0.467]], [0.204, [0.577, 0.814, 0.452]], [0.205, [0.577, 0.814, 0.452]], [0.207, [0.555, 0.804, 0.436]], [0.209, [0.555, 0.804, 0.436]], [0.211, [0.534, 0.793, 0.420]], [0.213, [0.534, 0.793, 0.420]], [0.215, [0.512, 0.782, 0.404]], [0.217, [0.512, 0.782, 0.404]], [0.219, [0.491, 0.772, 0.388]], [0.221, [0.491, 0.772, 0.388]], [0.223, [0.470, 0.761, 0.372]], [0.225, [0.470, 0.761, 0.372]], [0.227, [0.448, 0.750, 0.356]], [0.229, [0.448, 0.750, 0.356]], [0.231, [0.427, 0.740, 0.340]], [0.233, [0.427, 0.740, 0.340]], [0.235, [0.405, 0.729, 0.324]], [0.237, [0.405, 0.729, 0.324]], [0.239, [0.384, 0.719, 0.308]], [0.241, [0.384, 0.719, 0.308]], [0.243, [0.362, 0.708, 0.293]], [0.245, [0.362, 0.708, 0.293]], [0.247, [0.341, 0.697, 0.277]], [0.249, [0.341, 0.697, 0.277]], [0.250, [0.319, 0.687, 0.261]], [0.252, [0.319, 0.687, 0.261]], [0.254, [0.298, 0.676, 0.245]], [0.256, [0.298, 0.676, 0.245]], [0.258, [0.276, 0.665, 0.229]], [0.260, [0.276, 0.665, 0.229]], [0.262, [0.255, 0.655, 0.213]], [0.264, [0.255, 0.655, 0.213]], [0.266, [0.233, 0.644, 0.197]], [0.268, [0.233, 0.644, 0.197]], [0.270, [0.212, 0.633, 0.181]], [0.272, [0.212, 0.633, 0.181]], [0.274, [0.215, 0.627, 0.181]], [0.276, [0.215, 0.627, 0.181]], [0.278, [0.249, 0.626, 0.199]], [0.280, [0.249, 0.626, 0.199]], [0.282, [0.283, 0.625, 0.218]], [0.284, [0.283, 0.625, 0.218]], [0.286, [0.317, 0.624, 0.236]], [0.288, [0.317, 0.624, 0.236]], [0.290, [0.351, 0.623, 0.255]], [0.292, [0.351, 0.623, 0.255]], [0.294, [0.385, 0.622, 0.273]], [0.295, [0.385, 0.622, 0.273]], [0.297, [0.418, 0.621, 0.292]], [0.299, [0.418, 0.621, 0.292]], [0.301, [0.452, 0.620, 0.310]], [0.303, [0.452, 0.620, 0.310]], [0.305, [0.486, 0.619, 0.328]], [0.307, [0.486, 0.619, 0.328]], [0.309, [0.520, 0.618, 0.347]], [0.311, [0.520, 0.618, 0.347]], [0.313, [0.554, 0.617, 0.365]], [0.315, [0.554, 0.617, 0.365]], [0.317, [0.588, 0.616, 0.384]], [0.319, [0.588, 0.616, 0.384]], [0.321, [0.621, 0.615, 0.402]], [0.323, [0.621, 0.615, 0.402]], [0.325, [0.655, 0.614, 0.421]], [0.327, [0.655, 0.614, 0.421]], [0.329, [0.689, 0.613, 0.439]], [0.331, [0.689, 0.613, 0.439]], [0.333, [0.723, 0.612, 0.458]], [0.335, [0.723, 0.612, 0.458]], [0.337, [0.757, 0.611, 0.476]], [0.339, [0.757, 0.611, 0.476]], [0.341, [0.791, 0.610, 0.494]], [0.342, [0.791, 0.610, 0.494]], [0.344, [0.824, 0.609, 0.513]], [0.346, [0.824, 0.609, 0.513]], [0.348, [0.858, 0.608, 0.531]], [0.350, [0.858, 0.608, 0.531]], [0.352, [0.892, 0.607, 0.550]], [0.354, [0.892, 0.607, 0.550]], [0.356, [0.926, 0.606, 0.568]], [0.358, [0.926, 0.606, 0.568]], [0.360, [0.960, 0.605, 0.587]], [0.362, [0.960, 0.605, 0.587]], [0.364, [0.983, 0.598, 0.594]], [0.366, [0.983, 0.598, 0.594]], [0.368, [0.979, 0.576, 0.573]], [0.370, [0.979, 0.576, 0.573]], [0.372, [0.975, 0.555, 0.552]], [0.374, [0.975, 0.555, 0.552]], [0.376, [0.971, 0.533, 0.531]], [0.378, [0.971, 0.533, 0.531]], [0.380, [0.967, 0.511, 0.510]], [0.382, [0.967, 0.511, 0.510]], [0.384, [0.963, 0.490, 0.489]], [0.386, [0.963, 0.490, 0.489]], [0.387, [0.959, 0.468, 0.467]], [0.389, [0.959, 0.468, 0.467]], [0.391, [0.955, 0.446, 0.446]], [0.393, [0.955, 0.446, 0.446]], [0.395, [0.951, 0.425, 0.425]], [0.397, [0.951, 0.425, 0.425]], [0.399, [0.947, 0.403, 0.404]], [0.401, [0.947, 0.403, 0.404]], [0.403, [0.943, 0.381, 0.383]], [0.405, [0.943, 0.381, 0.383]], [0.407, [0.939, 0.360, 0.362]], [0.409, [0.939, 0.360, 0.362]], [0.411, [0.934, 0.338, 0.340]], [0.413, [0.934, 0.338, 0.340]], [0.415, [0.930, 0.317, 0.319]], [0.417, [0.930, 0.317, 0.319]], [0.419, [0.926, 0.295, 0.298]], [0.421, [0.926, 0.295, 0.298]], [0.423, [0.922, 0.273, 0.277]], [0.425, [0.922, 0.273, 0.277]], [0.427, [0.918, 0.252, 0.256]], [0.429, [0.918, 0.252, 0.256]], [0.431, [0.914, 0.230, 0.235]], [0.432, [0.914, 0.230, 0.235]], [0.434, [0.910, 0.208, 0.214]], [0.436, [0.910, 0.208, 0.214]], [0.438, [0.906, 0.187, 0.192]], [0.440, [0.906, 0.187, 0.192]], [0.442, [0.902, 0.165, 0.171]], [0.444, [0.902, 0.165, 0.171]], [0.446, [0.898, 0.143, 0.150]], [0.448, [0.898, 0.143, 0.150]], [0.450, [0.894, 0.122, 0.129]], [0.452, [0.894, 0.122, 0.129]], [0.454, [0.891, 0.104, 0.111]], [0.456, [0.891, 0.104, 0.111]], [0.458, [0.895, 0.132, 0.125]], [0.460, [0.895, 0.132, 0.125]], [0.462, [0.899, 0.160, 0.139]], [0.464, [0.899, 0.160, 0.139]], [0.466, [0.904, 0.188, 0.153]], [0.468, [0.904, 0.188, 0.153]], [0.470, [0.908, 0.216, 0.167]], [0.472, [0.908, 0.216, 0.167]], [0.474, [0.913, 0.244, 0.181]], [0.476, [0.913, 0.244, 0.181]], [0.477, [0.917, 0.272, 0.195]], [0.479, [0.917, 0.272, 0.195]], [0.481, [0.921, 0.300, 0.209]], [0.483, [0.921, 0.300, 0.209]], [0.485, [0.926, 0.328, 0.223]], [0.487, [0.926, 0.328, 0.223]], [0.489, [0.930, 0.356, 0.237]], [0.491, [0.930, 0.356, 0.237]], [0.493, [0.935, 0.384, 0.251]], [0.495, [0.935, 0.384, 0.251]], [0.497, [0.939, 0.412, 0.266]], [0.499, [0.939, 0.412, 0.266]], [0.501, [0.943, 0.439, 0.280]], [0.503, [0.943, 0.439, 0.280]], [0.505, [0.948, 0.467, 0.294]], [0.507, [0.948, 0.467, 0.294]], [0.509, [0.952, 0.495, 0.308]], [0.511, [0.952, 0.495, 0.308]], [0.513, [0.957, 0.523, 0.322]], [0.515, [0.957, 0.523, 0.322]], [0.517, [0.961, 0.551, 0.336]], [0.519, [0.961, 0.551, 0.336]], [0.521, [0.965, 0.579, 0.350]], [0.523, [0.965, 0.579, 0.350]], [0.524, [0.970, 0.607, 0.364]], [0.526, [0.970, 0.607, 0.364]], [0.528, [0.974, 0.635, 0.378]], [0.530, [0.974, 0.635, 0.378]], [0.532, [0.979, 0.663, 0.392]], [0.534, [0.979, 0.663, 0.392]], [0.536, [0.983, 0.691, 0.406]], [0.538, [0.983, 0.691, 0.406]], [0.540, [0.987, 0.719, 0.420]], [0.542, [0.987, 0.719, 0.420]], [0.544, [0.992, 0.746, 0.434]], [0.546, [0.992, 0.746, 0.434]], [0.548, [0.992, 0.739, 0.418]], [0.550, [0.992, 0.739, 0.418]], [0.552, [0.993, 0.728, 0.399]], [0.554, [0.993, 0.728, 0.399]], [0.556, [0.993, 0.718, 0.381]], [0.558, [0.993, 0.718, 0.381]], [0.560, [0.993, 0.707, 0.362]], [0.562, [0.993, 0.707, 0.362]], [0.564, [0.994, 0.696, 0.343]], [0.566, [0.994, 0.696, 0.343]], [0.568, [0.994, 0.685, 0.324]], [0.569, [0.994, 0.685, 0.324]], [0.571, [0.994, 0.674, 0.306]], [0.573, [0.994, 0.674, 0.306]], [0.575, [0.995, 0.663, 0.287]], [0.577, [0.995, 0.663, 0.287]], [0.579, [0.995, 0.653, 0.268]], [0.581, [0.995, 0.653, 0.268]], [0.583, [0.996, 0.642, 0.249]], [0.585, [0.996, 0.642, 0.249]], [0.587, [0.996, 0.631, 0.230]], [0.589, [0.996, 0.631, 0.230]], [0.591, [0.996, 0.620, 0.212]], [0.593, [0.996, 0.620, 0.212]], [0.595, [0.997, 0.609, 0.193]], [0.597, [0.997, 0.609, 0.193]], [0.599, [0.997, 0.598, 0.174]], [0.601, [0.997, 0.598, 0.174]], [0.603, [0.997, 0.588, 0.155]], [0.605, [0.997, 0.588, 0.155]], [0.607, [0.998, 0.577, 0.137]], [0.609, [0.998, 0.577, 0.137]], [0.611, [0.998, 0.566, 0.118]], [0.613, [0.998, 0.566, 0.118]], [0.614, [0.998, 0.555, 0.099]], [0.616, [0.998, 0.555, 0.099]], [0.618, [0.999, 0.544, 0.080]], [0.620, [0.999, 0.544, 0.080]], [0.622, [0.999, 0.533, 0.061]], [0.624, [0.999, 0.533, 0.061]], [0.626, [0.999, 0.523, 0.043]], [0.628, [0.999, 0.523, 0.043]], [0.630, [1.000, 0.512, 0.024]], [0.632, [1.000, 0.512, 0.024]], [0.634, [1.000, 0.501, 0.005]], [0.636, [1.000, 0.501, 0.005]], [0.638, [0.993, 0.504, 0.026]], [0.640, [0.993, 0.504, 0.026]], [0.642, [0.985, 0.513, 0.063]], [0.644, [0.985, 0.513, 0.063]], [0.646, [0.976, 0.522, 0.099]], [0.648, [0.976, 0.522, 0.099]], [0.650, [0.967, 0.530, 0.135]], [0.652, [0.967, 0.530, 0.135]], [0.654, [0.958, 0.539, 0.171]], [0.656, [0.958, 0.539, 0.171]], [0.658, [0.949, 0.547, 0.207]], [0.659, [0.949, 0.547, 0.207]], [0.661, [0.940, 0.556, 0.244]], [0.663, [0.940, 0.556, 0.244]], [0.665, [0.931, 0.565, 0.280]], [0.667, [0.931, 0.565, 0.280]], [0.669, [0.922, 0.573, 0.316]], [0.671, [0.922, 0.573, 0.316]], [0.673, [0.913, 0.582, 0.352]], [0.675, [0.913, 0.582, 0.352]], [0.677, [0.904, 0.591, 0.388]], [0.679, [0.904, 0.591, 0.388]], [0.681, [0.895, 0.599, 0.425]], [0.683, [0.895, 0.599, 0.425]], [0.685, [0.886, 0.608, 0.461]], [0.687, [0.886, 0.608, 0.461]], [0.689, [0.877, 0.616, 0.497]], [0.691, [0.877, 0.616, 0.497]], [0.693, [0.868, 0.625, 0.533]], [0.695, [0.868, 0.625, 0.533]], [0.697, [0.859, 0.634, 0.569]], [0.699, [0.859, 0.634, 0.569]], [0.701, [0.850, 0.642, 0.606]], [0.703, [0.850, 0.642, 0.606]], [0.705, [0.841, 0.651, 0.642]], [0.706, [0.841, 0.651, 0.642]], [0.708, [0.832, 0.660, 0.678]], [0.710, [0.832, 0.660, 0.678]], [0.712, [0.823, 0.668, 0.714]], [0.714, [0.823, 0.668, 0.714]], [0.716, [0.814, 0.677, 0.750]], [0.718, [0.814, 0.677, 0.750]], [0.720, [0.805, 0.685, 0.787]], [0.722, [0.805, 0.685, 0.787]], [0.724, [0.796, 0.694, 0.823]], [0.726, [0.796, 0.694, 0.823]], [0.728, [0.783, 0.687, 0.834]], [0.730, [0.783, 0.687, 0.834]], [0.732, [0.767, 0.667, 0.824]], [0.734, [0.767, 0.667, 0.824]], [0.736, [0.751, 0.648, 0.813]], [0.738, [0.751, 0.648, 0.813]], [0.740, [0.735, 0.628, 0.803]], [0.742, [0.735, 0.628, 0.803]], [0.744, [0.718, 0.608, 0.793]], [0.746, [0.718, 0.608, 0.793]], [0.748, [0.702, 0.588, 0.783]], [0.750, [0.702, 0.588, 0.783]], [0.751, [0.686, 0.568, 0.773]], [0.753, [0.686, 0.568, 0.773]], [0.755, [0.670, 0.549, 0.763]], [0.757, [0.670, 0.549, 0.763]], [0.759, [0.653, 0.529, 0.752]], [0.761, [0.653, 0.529, 0.752]], [0.763, [0.637, 0.509, 0.742]], [0.765, [0.637, 0.509, 0.742]], [0.767, [0.621, 0.489, 0.732]], [0.769, [0.621, 0.489, 0.732]], [0.771, [0.605, 0.470, 0.722]], [0.773, [0.605, 0.470, 0.722]], [0.775, [0.588, 0.450, 0.712]], [0.777, [0.588, 0.450, 0.712]], [0.779, [0.572, 0.430, 0.702]], [0.781, [0.572, 0.430, 0.702]], [0.783, [0.556, 0.410, 0.692]], [0.785, [0.556, 0.410, 0.692]], [0.787, [0.540, 0.390, 0.681]], [0.789, [0.540, 0.390, 0.681]], [0.791, [0.523, 0.371, 0.671]], [0.793, [0.523, 0.371, 0.671]], [0.795, [0.507, 0.351, 0.661]], [0.796, [0.507, 0.351, 0.661]], [0.798, [0.491, 0.331, 0.651]], [0.800, [0.491, 0.331, 0.651]], [0.802, [0.475, 0.311, 0.641]], [0.804, [0.475, 0.311, 0.641]], [0.806, [0.459, 0.291, 0.631]], [0.808, [0.459, 0.291, 0.631]], [0.810, [0.442, 0.272, 0.621]], [0.812, [0.442, 0.272, 0.621]], [0.814, [0.426, 0.252, 0.610]], [0.816, [0.426, 0.252, 0.610]], [0.818, [0.425, 0.251, 0.604]], [0.820, [0.425, 0.251, 0.604]], [0.822, [0.450, 0.284, 0.604]], [0.824, [0.450, 0.284, 0.604]], [0.826, [0.475, 0.317, 0.604]], [0.828, [0.475, 0.317, 0.604]], [0.830, [0.500, 0.350, 0.603]], [0.832, [0.500, 0.350, 0.603]], [0.834, [0.526, 0.382, 0.603]], [0.836, [0.526, 0.382, 0.603]], [0.838, [0.551, 0.415, 0.603]], [0.840, [0.551, 0.415, 0.603]], [0.841, [0.576, 0.448, 0.603]], [0.843, [0.576, 0.448, 0.603]], [0.845, [0.601, 0.481, 0.603]], [0.847, [0.601, 0.481, 0.603]], [0.849, [0.626, 0.514, 0.603]], [0.851, [0.626, 0.514, 0.603]], [0.853, [0.652, 0.547, 0.602]], [0.855, [0.652, 0.547, 0.602]], [0.857, [0.677, 0.579, 0.602]], [0.859, [0.677, 0.579, 0.602]], [0.861, [0.702, 0.612, 0.602]], [0.863, [0.702, 0.612, 0.602]], [0.865, [0.727, 0.645, 0.602]], [0.867, [0.727, 0.645, 0.602]], [0.869, [0.753, 0.678, 0.602]], [0.871, [0.753, 0.678, 0.602]], [0.873, [0.778, 0.711, 0.601]], [0.875, [0.778, 0.711, 0.601]], [0.877, [0.803, 0.743, 0.601]], [0.879, [0.803, 0.743, 0.601]], [0.881, [0.828, 0.776, 0.601]], [0.883, [0.828, 0.776, 0.601]], [0.885, [0.853, 0.809, 0.601]], [0.886, [0.853, 0.809, 0.601]], [0.888, [0.879, 0.842, 0.601]], [0.890, [0.879, 0.842, 0.601]], [0.892, [0.904, 0.875, 0.601]], [0.894, [0.904, 0.875, 0.601]], [0.896, [0.929, 0.908, 0.600]], [0.898, [0.929, 0.908, 0.600]], [0.900, [0.954, 0.940, 0.600]], [0.902, [0.954, 0.940, 0.600]], [0.904, [0.979, 0.973, 0.600]], [0.906, [0.979, 0.973, 0.600]], [0.908, [0.998, 0.995, 0.597]], [0.910, [0.998, 0.995, 0.597]], [0.912, [0.984, 0.967, 0.577]], [0.914, [0.984, 0.967, 0.577]], [0.916, [0.971, 0.939, 0.558]], [0.918, [0.971, 0.939, 0.558]], [0.920, [0.958, 0.911, 0.539]], [0.922, [0.958, 0.911, 0.539]], [0.924, [0.945, 0.883, 0.520]], [0.926, [0.945, 0.883, 0.520]], [0.928, [0.932, 0.854, 0.501]], [0.930, [0.932, 0.854, 0.501]], [0.932, [0.918, 0.826, 0.482]], [0.933, [0.918, 0.826, 0.482]], [0.935, [0.905, 0.798, 0.463]], [0.937, [0.905, 0.798, 0.463]], [0.939, [0.892, 0.770, 0.444]], [0.941, [0.892, 0.770, 0.444]], [0.943, [0.879, 0.742, 0.424]], [0.945, [0.879, 0.742, 0.424]], [0.947, [0.866, 0.714, 0.405]], [0.949, [0.866, 0.714, 0.405]], [0.951, [0.852, 0.686, 0.386]], [0.953, [0.852, 0.686, 0.386]], [0.955, [0.839, 0.658, 0.367]], [0.957, [0.839, 0.658, 0.367]], [0.959, [0.826, 0.630, 0.348]], [0.961, [0.826, 0.630, 0.348]], [0.963, [0.813, 0.602, 0.329]], [0.965, [0.813, 0.602, 0.329]], [0.967, [0.800, 0.574, 0.310]], [0.969, [0.800, 0.574, 0.310]], [0.971, [0.786, 0.546, 0.291]], [0.973, [0.786, 0.546, 0.291]], [0.975, [0.773, 0.518, 0.272]], [0.977, [0.773, 0.518, 0.272]], [0.978, [0.760, 0.489, 0.252]], [0.980, [0.760, 0.489, 0.252]], [0.982, [0.747, 0.461, 0.233]], [0.984, [0.747, 0.461, 0.233]], [0.986, [0.734, 0.433, 0.214]], [0.988, [0.734, 0.433, 0.214]], [0.990, [0.721, 0.405, 0.195]], [0.992, [0.721, 0.405, 0.195]], [0.994, [0.707, 0.377, 0.176]], [0.996, [0.707, 0.377, 0.176]], [0.998, [0.694, 0.349, 0.157]], [1.000, [0.694, 0.349, 0.157]]];
+var Pastel1 = [[0.000, [0.984, 0.706, 0.682]], [0.002, [0.984, 0.706, 0.682]], [0.004, [0.975, 0.709, 0.689]], [0.006, [0.975, 0.709, 0.689]], [0.008, [0.967, 0.712, 0.695]], [0.010, [0.967, 0.712, 0.695]], [0.012, [0.958, 0.715, 0.702]], [0.014, [0.958, 0.715, 0.702]], [0.016, [0.949, 0.718, 0.708]], [0.018, [0.949, 0.718, 0.708]], [0.020, [0.940, 0.721, 0.715]], [0.022, [0.940, 0.721, 0.715]], [0.023, [0.931, 0.724, 0.721]], [0.025, [0.931, 0.724, 0.721]], [0.027, [0.922, 0.727, 0.728]], [0.029, [0.922, 0.727, 0.728]], [0.031, [0.913, 0.730, 0.735]], [0.033, [0.913, 0.730, 0.735]], [0.035, [0.905, 0.734, 0.741]], [0.037, [0.905, 0.734, 0.741]], [0.039, [0.896, 0.737, 0.748]], [0.041, [0.896, 0.737, 0.748]], [0.043, [0.887, 0.740, 0.754]], [0.045, [0.887, 0.740, 0.754]], [0.047, [0.878, 0.743, 0.761]], [0.049, [0.878, 0.743, 0.761]], [0.051, [0.869, 0.746, 0.767]], [0.053, [0.869, 0.746, 0.767]], [0.055, [0.860, 0.749, 0.774]], [0.057, [0.860, 0.749, 0.774]], [0.059, [0.851, 0.752, 0.780]], [0.061, [0.851, 0.752, 0.780]], [0.063, [0.843, 0.755, 0.787]], [0.065, [0.843, 0.755, 0.787]], [0.067, [0.834, 0.758, 0.793]], [0.068, [0.834, 0.758, 0.793]], [0.070, [0.825, 0.761, 0.800]], [0.072, [0.825, 0.761, 0.800]], [0.074, [0.816, 0.764, 0.806]], [0.076, [0.816, 0.764, 0.806]], [0.078, [0.807, 0.767, 0.813]], [0.080, [0.807, 0.767, 0.813]], [0.082, [0.798, 0.770, 0.819]], [0.084, [0.798, 0.770, 0.819]], [0.086, [0.789, 0.774, 0.826]], [0.088, [0.789, 0.774, 0.826]], [0.090, [0.781, 0.777, 0.832]], [0.092, [0.781, 0.777, 0.832]], [0.094, [0.772, 0.780, 0.839]], [0.096, [0.772, 0.780, 0.839]], [0.098, [0.763, 0.783, 0.845]], [0.100, [0.763, 0.783, 0.845]], [0.102, [0.754, 0.786, 0.852]], [0.104, [0.754, 0.786, 0.852]], [0.106, [0.745, 0.789, 0.858]], [0.108, [0.745, 0.789, 0.858]], [0.110, [0.736, 0.792, 0.865]], [0.112, [0.736, 0.792, 0.865]], [0.114, [0.727, 0.795, 0.871]], [0.115, [0.727, 0.795, 0.871]], [0.117, [0.719, 0.798, 0.878]], [0.119, [0.719, 0.798, 0.878]], [0.121, [0.710, 0.801, 0.884]], [0.123, [0.710, 0.801, 0.884]], [0.125, [0.702, 0.804, 0.890]], [0.127, [0.702, 0.804, 0.890]], [0.129, [0.705, 0.808, 0.886]], [0.131, [0.705, 0.808, 0.886]], [0.133, [0.708, 0.812, 0.882]], [0.135, [0.708, 0.812, 0.882]], [0.137, [0.712, 0.815, 0.879]], [0.139, [0.712, 0.815, 0.879]], [0.141, [0.715, 0.819, 0.875]], [0.143, [0.715, 0.819, 0.875]], [0.145, [0.718, 0.823, 0.871]], [0.147, [0.718, 0.823, 0.871]], [0.149, [0.721, 0.827, 0.868]], [0.151, [0.721, 0.827, 0.868]], [0.153, [0.724, 0.830, 0.864]], [0.155, [0.724, 0.830, 0.864]], [0.157, [0.727, 0.834, 0.860]], [0.159, [0.727, 0.834, 0.860]], [0.160, [0.730, 0.838, 0.857]], [0.162, [0.730, 0.838, 0.857]], [0.164, [0.733, 0.841, 0.853]], [0.166, [0.733, 0.841, 0.853]], [0.168, [0.736, 0.845, 0.849]], [0.170, [0.736, 0.845, 0.849]], [0.172, [0.739, 0.849, 0.845]], [0.174, [0.739, 0.849, 0.845]], [0.176, [0.742, 0.852, 0.842]], [0.178, [0.742, 0.852, 0.842]], [0.180, [0.745, 0.856, 0.838]], [0.182, [0.745, 0.856, 0.838]], [0.184, [0.748, 0.860, 0.834]], [0.186, [0.748, 0.860, 0.834]], [0.188, [0.752, 0.863, 0.831]], [0.190, [0.752, 0.863, 0.831]], [0.192, [0.755, 0.867, 0.827]], [0.194, [0.755, 0.867, 0.827]], [0.196, [0.758, 0.871, 0.823]], [0.198, [0.758, 0.871, 0.823]], [0.200, [0.761, 0.875, 0.820]], [0.202, [0.761, 0.875, 0.820]], [0.204, [0.764, 0.878, 0.816]], [0.205, [0.764, 0.878, 0.816]], [0.207, [0.767, 0.882, 0.812]], [0.209, [0.767, 0.882, 0.812]], [0.211, [0.770, 0.886, 0.809]], [0.213, [0.770, 0.886, 0.809]], [0.215, [0.773, 0.889, 0.805]], [0.217, [0.773, 0.889, 0.805]], [0.219, [0.776, 0.893, 0.801]], [0.221, [0.776, 0.893, 0.801]], [0.223, [0.779, 0.897, 0.797]], [0.225, [0.779, 0.897, 0.797]], [0.227, [0.782, 0.900, 0.794]], [0.229, [0.782, 0.900, 0.794]], [0.231, [0.785, 0.904, 0.790]], [0.233, [0.785, 0.904, 0.790]], [0.235, [0.788, 0.908, 0.786]], [0.237, [0.788, 0.908, 0.786]], [0.239, [0.792, 0.911, 0.783]], [0.241, [0.792, 0.911, 0.783]], [0.243, [0.795, 0.915, 0.779]], [0.245, [0.795, 0.915, 0.779]], [0.247, [0.798, 0.919, 0.775]], [0.249, [0.798, 0.919, 0.775]], [0.250, [0.801, 0.921, 0.774]], [0.252, [0.801, 0.921, 0.774]], [0.254, [0.803, 0.917, 0.777]], [0.256, [0.803, 0.917, 0.777]], [0.258, [0.805, 0.913, 0.781]], [0.260, [0.805, 0.913, 0.781]], [0.262, [0.807, 0.909, 0.785]], [0.264, [0.807, 0.909, 0.785]], [0.266, [0.809, 0.905, 0.789]], [0.268, [0.809, 0.905, 0.789]], [0.270, [0.812, 0.901, 0.793]], [0.272, [0.812, 0.901, 0.793]], [0.274, [0.814, 0.897, 0.796]], [0.276, [0.814, 0.897, 0.796]], [0.278, [0.816, 0.893, 0.800]], [0.280, [0.816, 0.893, 0.800]], [0.282, [0.818, 0.889, 0.804]], [0.284, [0.818, 0.889, 0.804]], [0.286, [0.820, 0.885, 0.808]], [0.288, [0.820, 0.885, 0.808]], [0.290, [0.823, 0.881, 0.812]], [0.292, [0.823, 0.881, 0.812]], [0.294, [0.825, 0.877, 0.815]], [0.295, [0.825, 0.877, 0.815]], [0.297, [0.827, 0.873, 0.819]], [0.299, [0.827, 0.873, 0.819]], [0.301, [0.829, 0.869, 0.823]], [0.303, [0.829, 0.869, 0.823]], [0.305, [0.832, 0.865, 0.827]], [0.307, [0.832, 0.865, 0.827]], [0.309, [0.834, 0.862, 0.831]], [0.311, [0.834, 0.862, 0.831]], [0.313, [0.836, 0.858, 0.835]], [0.315, [0.836, 0.858, 0.835]], [0.317, [0.838, 0.854, 0.838]], [0.319, [0.838, 0.854, 0.838]], [0.321, [0.840, 0.850, 0.842]], [0.323, [0.840, 0.850, 0.842]], [0.325, [0.843, 0.846, 0.846]], [0.327, [0.843, 0.846, 0.846]], [0.329, [0.845, 0.842, 0.850]], [0.331, [0.845, 0.842, 0.850]], [0.333, [0.847, 0.838, 0.854]], [0.335, [0.847, 0.838, 0.854]], [0.337, [0.849, 0.834, 0.857]], [0.339, [0.849, 0.834, 0.857]], [0.341, [0.851, 0.830, 0.861]], [0.342, [0.851, 0.830, 0.861]], [0.344, [0.854, 0.826, 0.865]], [0.346, [0.854, 0.826, 0.865]], [0.348, [0.856, 0.822, 0.869]], [0.350, [0.856, 0.822, 0.869]], [0.352, [0.858, 0.818, 0.873]], [0.354, [0.858, 0.818, 0.873]], [0.356, [0.860, 0.814, 0.876]], [0.358, [0.860, 0.814, 0.876]], [0.360, [0.863, 0.810, 0.880]], [0.362, [0.863, 0.810, 0.880]], [0.364, [0.865, 0.806, 0.884]], [0.366, [0.865, 0.806, 0.884]], [0.368, [0.867, 0.802, 0.888]], [0.370, [0.867, 0.802, 0.888]], [0.372, [0.869, 0.799, 0.892]], [0.374, [0.869, 0.799, 0.892]], [0.376, [0.872, 0.797, 0.891]], [0.378, [0.872, 0.797, 0.891]], [0.380, [0.876, 0.798, 0.884]], [0.382, [0.876, 0.798, 0.884]], [0.384, [0.880, 0.800, 0.876]], [0.386, [0.880, 0.800, 0.876]], [0.387, [0.884, 0.802, 0.868]], [0.389, [0.884, 0.802, 0.868]], [0.391, [0.888, 0.804, 0.861]], [0.393, [0.888, 0.804, 0.861]], [0.395, [0.892, 0.805, 0.853]], [0.397, [0.892, 0.805, 0.853]], [0.399, [0.896, 0.807, 0.845]], [0.401, [0.896, 0.807, 0.845]], [0.403, [0.900, 0.809, 0.838]], [0.405, [0.900, 0.809, 0.838]], [0.407, [0.904, 0.811, 0.830]], [0.409, [0.904, 0.811, 0.830]], [0.411, [0.907, 0.812, 0.823]], [0.413, [0.907, 0.812, 0.823]], [0.415, [0.911, 0.814, 0.815]], [0.417, [0.911, 0.814, 0.815]], [0.419, [0.915, 0.816, 0.807]], [0.421, [0.915, 0.816, 0.807]], [0.423, [0.919, 0.817, 0.800]], [0.425, [0.919, 0.817, 0.800]], [0.427, [0.923, 0.819, 0.792]], [0.429, [0.923, 0.819, 0.792]], [0.431, [0.927, 0.821, 0.784]], [0.432, [0.927, 0.821, 0.784]], [0.434, [0.931, 0.823, 0.777]], [0.436, [0.931, 0.823, 0.777]], [0.438, [0.935, 0.824, 0.769]], [0.440, [0.935, 0.824, 0.769]], [0.442, [0.939, 0.826, 0.762]], [0.444, [0.939, 0.826, 0.762]], [0.446, [0.943, 0.828, 0.754]], [0.448, [0.943, 0.828, 0.754]], [0.450, [0.947, 0.829, 0.746]], [0.452, [0.947, 0.829, 0.746]], [0.454, [0.951, 0.831, 0.739]], [0.456, [0.951, 0.831, 0.739]], [0.458, [0.955, 0.833, 0.731]], [0.460, [0.955, 0.833, 0.731]], [0.462, [0.959, 0.835, 0.723]], [0.464, [0.959, 0.835, 0.723]], [0.466, [0.963, 0.836, 0.716]], [0.468, [0.963, 0.836, 0.716]], [0.470, [0.967, 0.838, 0.708]], [0.472, [0.967, 0.838, 0.708]], [0.474, [0.970, 0.840, 0.701]], [0.476, [0.970, 0.840, 0.701]], [0.477, [0.974, 0.842, 0.693]], [0.479, [0.974, 0.842, 0.693]], [0.481, [0.978, 0.843, 0.685]], [0.483, [0.978, 0.843, 0.685]], [0.485, [0.982, 0.845, 0.678]], [0.487, [0.982, 0.845, 0.678]], [0.489, [0.986, 0.847, 0.670]], [0.491, [0.986, 0.847, 0.670]], [0.493, [0.990, 0.848, 0.662]], [0.495, [0.990, 0.848, 0.662]], [0.497, [0.994, 0.850, 0.655]], [0.499, [0.994, 0.850, 0.655]], [0.501, [0.996, 0.853, 0.653]], [0.503, [0.996, 0.853, 0.653]], [0.505, [0.996, 0.858, 0.658]], [0.507, [0.996, 0.858, 0.658]], [0.509, [0.996, 0.863, 0.663]], [0.511, [0.996, 0.863, 0.663]], [0.513, [0.997, 0.867, 0.667]], [0.515, [0.997, 0.867, 0.667]], [0.517, [0.997, 0.872, 0.672]], [0.519, [0.997, 0.872, 0.672]], [0.521, [0.997, 0.877, 0.677]], [0.523, [0.997, 0.877, 0.677]], [0.524, [0.997, 0.881, 0.681]], [0.526, [0.997, 0.881, 0.681]], [0.528, [0.997, 0.886, 0.686]], [0.530, [0.997, 0.886, 0.686]], [0.532, [0.997, 0.891, 0.691]], [0.534, [0.997, 0.891, 0.691]], [0.536, [0.997, 0.895, 0.695]], [0.538, [0.997, 0.895, 0.695]], [0.540, [0.997, 0.900, 0.700]], [0.542, [0.997, 0.900, 0.700]], [0.544, [0.997, 0.905, 0.705]], [0.546, [0.997, 0.905, 0.705]], [0.548, [0.998, 0.909, 0.709]], [0.550, [0.998, 0.909, 0.709]], [0.552, [0.998, 0.914, 0.714]], [0.554, [0.998, 0.914, 0.714]], [0.556, [0.998, 0.919, 0.719]], [0.558, [0.998, 0.919, 0.719]], [0.560, [0.998, 0.923, 0.723]], [0.562, [0.998, 0.923, 0.723]], [0.564, [0.998, 0.928, 0.728]], [0.566, [0.998, 0.928, 0.728]], [0.568, [0.998, 0.933, 0.733]], [0.569, [0.998, 0.933, 0.733]], [0.571, [0.998, 0.937, 0.737]], [0.573, [0.998, 0.937, 0.737]], [0.575, [0.998, 0.942, 0.742]], [0.577, [0.998, 0.942, 0.742]], [0.579, [0.999, 0.947, 0.747]], [0.581, [0.999, 0.947, 0.747]], [0.583, [0.999, 0.951, 0.751]], [0.585, [0.999, 0.951, 0.751]], [0.587, [0.999, 0.956, 0.756]], [0.589, [0.999, 0.956, 0.756]], [0.591, [0.999, 0.961, 0.761]], [0.593, [0.999, 0.961, 0.761]], [0.595, [0.999, 0.966, 0.766]], [0.597, [0.999, 0.966, 0.766]], [0.599, [0.999, 0.970, 0.770]], [0.601, [0.999, 0.970, 0.770]], [0.603, [0.999, 0.975, 0.775]], [0.605, [0.999, 0.975, 0.775]], [0.607, [0.999, 0.980, 0.780]], [0.609, [0.999, 0.980, 0.780]], [0.611, [1.000, 0.984, 0.784]], [0.613, [1.000, 0.984, 0.784]], [0.614, [1.000, 0.989, 0.789]], [0.616, [1.000, 0.989, 0.789]], [0.618, [1.000, 0.994, 0.794]], [0.620, [1.000, 0.994, 0.794]], [0.622, [1.000, 0.998, 0.798]], [0.624, [1.000, 0.998, 0.798]], [0.626, [0.998, 0.997, 0.799]], [0.628, [0.998, 0.997, 0.799]], [0.630, [0.995, 0.992, 0.797]], [0.632, [0.995, 0.992, 0.797]], [0.634, [0.992, 0.987, 0.795]], [0.636, [0.992, 0.987, 0.795]], [0.638, [0.988, 0.983, 0.793]], [0.640, [0.988, 0.983, 0.793]], [0.642, [0.985, 0.978, 0.791]], [0.644, [0.985, 0.978, 0.791]], [0.646, [0.982, 0.973, 0.790]], [0.648, [0.982, 0.973, 0.790]], [0.650, [0.979, 0.968, 0.788]], [0.652, [0.979, 0.968, 0.788]], [0.654, [0.976, 0.963, 0.786]], [0.656, [0.976, 0.963, 0.786]], [0.658, [0.972, 0.959, 0.784]], [0.659, [0.972, 0.959, 0.784]], [0.661, [0.969, 0.954, 0.782]], [0.663, [0.969, 0.954, 0.782]], [0.665, [0.966, 0.949, 0.780]], [0.667, [0.966, 0.949, 0.780]], [0.669, [0.963, 0.944, 0.779]], [0.671, [0.963, 0.944, 0.779]], [0.673, [0.960, 0.939, 0.777]], [0.675, [0.960, 0.939, 0.777]], [0.677, [0.956, 0.935, 0.775]], [0.679, [0.956, 0.935, 0.775]], [0.681, [0.953, 0.930, 0.773]], [0.683, [0.953, 0.930, 0.773]], [0.685, [0.950, 0.925, 0.771]], [0.687, [0.950, 0.925, 0.771]], [0.689, [0.947, 0.920, 0.769]], [0.691, [0.947, 0.920, 0.769]], [0.693, [0.944, 0.915, 0.767]], [0.695, [0.944, 0.915, 0.767]], [0.697, [0.940, 0.911, 0.766]], [0.699, [0.940, 0.911, 0.766]], [0.701, [0.937, 0.906, 0.764]], [0.703, [0.937, 0.906, 0.764]], [0.705, [0.934, 0.901, 0.762]], [0.706, [0.934, 0.901, 0.762]], [0.708, [0.931, 0.896, 0.760]], [0.710, [0.931, 0.896, 0.760]], [0.712, [0.928, 0.891, 0.758]], [0.714, [0.928, 0.891, 0.758]], [0.716, [0.924, 0.887, 0.756]], [0.718, [0.924, 0.887, 0.756]], [0.720, [0.921, 0.882, 0.755]], [0.722, [0.921, 0.882, 0.755]], [0.724, [0.918, 0.877, 0.753]], [0.726, [0.918, 0.877, 0.753]], [0.728, [0.915, 0.872, 0.751]], [0.730, [0.915, 0.872, 0.751]], [0.732, [0.912, 0.867, 0.749]], [0.734, [0.912, 0.867, 0.749]], [0.736, [0.908, 0.863, 0.747]], [0.738, [0.908, 0.863, 0.747]], [0.740, [0.905, 0.858, 0.745]], [0.742, [0.905, 0.858, 0.745]], [0.744, [0.902, 0.853, 0.743]], [0.746, [0.902, 0.853, 0.743]], [0.748, [0.899, 0.848, 0.742]], [0.750, [0.899, 0.848, 0.742]], [0.751, [0.900, 0.847, 0.746]], [0.753, [0.900, 0.847, 0.746]], [0.755, [0.903, 0.847, 0.751]], [0.757, [0.903, 0.847, 0.751]], [0.759, [0.906, 0.848, 0.757]], [0.761, [0.906, 0.848, 0.757]], [0.763, [0.909, 0.848, 0.763]], [0.765, [0.909, 0.848, 0.763]], [0.767, [0.912, 0.848, 0.769]], [0.769, [0.912, 0.848, 0.769]], [0.771, [0.915, 0.848, 0.774]], [0.773, [0.915, 0.848, 0.774]], [0.775, [0.918, 0.849, 0.780]], [0.777, [0.918, 0.849, 0.780]], [0.779, [0.921, 0.849, 0.786]], [0.781, [0.921, 0.849, 0.786]], [0.783, [0.924, 0.849, 0.792]], [0.785, [0.924, 0.849, 0.792]], [0.787, [0.927, 0.849, 0.798]], [0.789, [0.927, 0.849, 0.798]], [0.791, [0.930, 0.850, 0.803]], [0.793, [0.930, 0.850, 0.803]], [0.795, [0.933, 0.850, 0.809]], [0.796, [0.933, 0.850, 0.809]], [0.798, [0.936, 0.850, 0.815]], [0.800, [0.936, 0.850, 0.815]], [0.802, [0.939, 0.850, 0.821]], [0.804, [0.939, 0.850, 0.821]], [0.806, [0.942, 0.851, 0.826]], [0.808, [0.942, 0.851, 0.826]], [0.810, [0.945, 0.851, 0.832]], [0.812, [0.945, 0.851, 0.832]], [0.814, [0.947, 0.851, 0.838]], [0.816, [0.947, 0.851, 0.838]], [0.818, [0.950, 0.851, 0.844]], [0.820, [0.950, 0.851, 0.844]], [0.822, [0.953, 0.852, 0.850]], [0.824, [0.953, 0.852, 0.850]], [0.826, [0.956, 0.852, 0.855]], [0.828, [0.956, 0.852, 0.855]], [0.830, [0.959, 0.852, 0.861]], [0.832, [0.959, 0.852, 0.861]], [0.834, [0.962, 0.852, 0.867]], [0.836, [0.962, 0.852, 0.867]], [0.838, [0.965, 0.853, 0.873]], [0.840, [0.965, 0.853, 0.873]], [0.841, [0.968, 0.853, 0.879]], [0.843, [0.968, 0.853, 0.879]], [0.845, [0.971, 0.853, 0.884]], [0.847, [0.971, 0.853, 0.884]], [0.849, [0.974, 0.853, 0.890]], [0.851, [0.974, 0.853, 0.890]], [0.853, [0.977, 0.854, 0.896]], [0.855, [0.977, 0.854, 0.896]], [0.857, [0.980, 0.854, 0.902]], [0.859, [0.980, 0.854, 0.902]], [0.861, [0.983, 0.854, 0.907]], [0.863, [0.983, 0.854, 0.907]], [0.865, [0.986, 0.854, 0.913]], [0.867, [0.986, 0.854, 0.913]], [0.869, [0.989, 0.855, 0.919]], [0.871, [0.989, 0.855, 0.919]], [0.873, [0.992, 0.855, 0.925]], [0.875, [0.992, 0.855, 0.925]], [0.877, [0.991, 0.857, 0.926]], [0.879, [0.991, 0.857, 0.926]], [0.881, [0.990, 0.860, 0.927]], [0.883, [0.990, 0.860, 0.927]], [0.885, [0.988, 0.863, 0.928]], [0.886, [0.988, 0.863, 0.928]], [0.888, [0.987, 0.866, 0.928]], [0.890, [0.987, 0.866, 0.928]], [0.892, [0.986, 0.869, 0.929]], [0.894, [0.986, 0.869, 0.929]], [0.896, [0.984, 0.872, 0.930]], [0.898, [0.984, 0.872, 0.930]], [0.900, [0.983, 0.875, 0.931]], [0.902, [0.983, 0.875, 0.931]], [0.904, [0.981, 0.878, 0.931]], [0.906, [0.981, 0.878, 0.931]], [0.908, [0.980, 0.881, 0.932]], [0.910, [0.980, 0.881, 0.932]], [0.912, [0.979, 0.884, 0.933]], [0.914, [0.979, 0.884, 0.933]], [0.916, [0.977, 0.887, 0.934]], [0.918, [0.977, 0.887, 0.934]], [0.920, [0.976, 0.890, 0.934]], [0.922, [0.976, 0.890, 0.934]], [0.924, [0.975, 0.893, 0.935]], [0.926, [0.975, 0.893, 0.935]], [0.928, [0.973, 0.896, 0.936]], [0.930, [0.973, 0.896, 0.936]], [0.932, [0.972, 0.899, 0.936]], [0.933, [0.972, 0.899, 0.936]], [0.935, [0.971, 0.902, 0.937]], [0.937, [0.971, 0.902, 0.937]], [0.939, [0.969, 0.905, 0.938]], [0.941, [0.969, 0.905, 0.938]], [0.943, [0.968, 0.908, 0.939]], [0.945, [0.968, 0.908, 0.939]], [0.947, [0.967, 0.911, 0.939]], [0.949, [0.967, 0.911, 0.939]], [0.951, [0.965, 0.914, 0.940]], [0.953, [0.965, 0.914, 0.940]], [0.955, [0.964, 0.917, 0.941]], [0.957, [0.964, 0.917, 0.941]], [0.959, [0.963, 0.919, 0.942]], [0.961, [0.963, 0.919, 0.942]], [0.963, [0.961, 0.922, 0.942]], [0.965, [0.961, 0.922, 0.942]], [0.967, [0.960, 0.925, 0.943]], [0.969, [0.960, 0.925, 0.943]], [0.971, [0.958, 0.928, 0.944]], [0.973, [0.958, 0.928, 0.944]], [0.975, [0.957, 0.931, 0.945]], [0.977, [0.957, 0.931, 0.945]], [0.978, [0.956, 0.934, 0.945]], [0.980, [0.956, 0.934, 0.945]], [0.982, [0.954, 0.937, 0.946]], [0.984, [0.954, 0.937, 0.946]], [0.986, [0.953, 0.940, 0.947]], [0.988, [0.953, 0.940, 0.947]], [0.990, [0.952, 0.943, 0.948]], [0.992, [0.952, 0.943, 0.948]], [0.994, [0.950, 0.946, 0.948]], [0.996, [0.950, 0.946, 0.948]], [0.998, [0.949, 0.949, 0.949]], [1.000, [0.949, 0.949, 0.949]]];
+var Pastel2 = [[0.000, [0.702, 0.886, 0.804]], [0.002, [0.702, 0.886, 0.804]], [0.004, [0.710, 0.884, 0.800]], [0.006, [0.710, 0.884, 0.800]], [0.008, [0.718, 0.882, 0.797]], [0.010, [0.718, 0.882, 0.797]], [0.012, [0.726, 0.879, 0.793]], [0.014, [0.726, 0.879, 0.793]], [0.016, [0.734, 0.877, 0.790]], [0.018, [0.734, 0.877, 0.790]], [0.020, [0.742, 0.875, 0.786]], [0.022, [0.742, 0.875, 0.786]], [0.023, [0.750, 0.873, 0.783]], [0.025, [0.750, 0.873, 0.783]], [0.027, [0.758, 0.870, 0.779]], [0.029, [0.758, 0.870, 0.779]], [0.031, [0.766, 0.868, 0.776]], [0.033, [0.766, 0.868, 0.776]], [0.035, [0.774, 0.866, 0.772]], [0.037, [0.774, 0.866, 0.772]], [0.039, [0.782, 0.864, 0.768]], [0.041, [0.782, 0.864, 0.768]], [0.043, [0.790, 0.861, 0.765]], [0.045, [0.790, 0.861, 0.765]], [0.047, [0.798, 0.859, 0.761]], [0.049, [0.798, 0.859, 0.761]], [0.051, [0.806, 0.857, 0.758]], [0.053, [0.806, 0.857, 0.758]], [0.055, [0.813, 0.855, 0.754]], [0.057, [0.813, 0.855, 0.754]], [0.059, [0.821, 0.852, 0.751]], [0.061, [0.821, 0.852, 0.751]], [0.063, [0.829, 0.850, 0.747]], [0.065, [0.829, 0.850, 0.747]], [0.067, [0.837, 0.848, 0.744]], [0.068, [0.837, 0.848, 0.744]], [0.070, [0.845, 0.846, 0.740]], [0.072, [0.845, 0.846, 0.740]], [0.074, [0.853, 0.843, 0.736]], [0.076, [0.853, 0.843, 0.736]], [0.078, [0.861, 0.841, 0.733]], [0.080, [0.861, 0.841, 0.733]], [0.082, [0.869, 0.839, 0.729]], [0.084, [0.869, 0.839, 0.729]], [0.086, [0.877, 0.837, 0.726]], [0.088, [0.877, 0.837, 0.726]], [0.090, [0.885, 0.834, 0.722]], [0.092, [0.885, 0.834, 0.722]], [0.094, [0.893, 0.832, 0.719]], [0.096, [0.893, 0.832, 0.719]], [0.098, [0.901, 0.830, 0.715]], [0.100, [0.901, 0.830, 0.715]], [0.102, [0.909, 0.827, 0.712]], [0.104, [0.909, 0.827, 0.712]], [0.106, [0.917, 0.825, 0.708]], [0.108, [0.917, 0.825, 0.708]], [0.110, [0.925, 0.823, 0.704]], [0.112, [0.925, 0.823, 0.704]], [0.114, [0.933, 0.821, 0.701]], [0.115, [0.933, 0.821, 0.701]], [0.117, [0.941, 0.818, 0.697]], [0.119, [0.941, 0.818, 0.697]], [0.121, [0.949, 0.816, 0.694]], [0.123, [0.949, 0.816, 0.694]], [0.125, [0.957, 0.814, 0.690]], [0.127, [0.957, 0.814, 0.690]], [0.129, [0.965, 0.812, 0.687]], [0.131, [0.965, 0.812, 0.687]], [0.133, [0.973, 0.809, 0.683]], [0.135, [0.973, 0.809, 0.683]], [0.137, [0.981, 0.807, 0.680]], [0.139, [0.981, 0.807, 0.680]], [0.141, [0.989, 0.805, 0.676]], [0.143, [0.989, 0.805, 0.676]], [0.145, [0.989, 0.804, 0.678]], [0.147, [0.989, 0.804, 0.678]], [0.149, [0.984, 0.805, 0.685]], [0.151, [0.984, 0.805, 0.685]], [0.153, [0.978, 0.806, 0.691]], [0.155, [0.978, 0.806, 0.691]], [0.157, [0.973, 0.807, 0.698]], [0.159, [0.973, 0.807, 0.698]], [0.160, [0.968, 0.808, 0.704]], [0.162, [0.968, 0.808, 0.704]], [0.164, [0.962, 0.809, 0.710]], [0.166, [0.962, 0.809, 0.710]], [0.168, [0.957, 0.810, 0.717]], [0.170, [0.957, 0.810, 0.717]], [0.172, [0.951, 0.810, 0.723]], [0.174, [0.951, 0.810, 0.723]], [0.176, [0.946, 0.811, 0.730]], [0.178, [0.946, 0.811, 0.730]], [0.180, [0.941, 0.812, 0.736]], [0.182, [0.941, 0.812, 0.736]], [0.184, [0.935, 0.813, 0.743]], [0.186, [0.935, 0.813, 0.743]], [0.188, [0.930, 0.814, 0.749]], [0.190, [0.930, 0.814, 0.749]], [0.192, [0.924, 0.815, 0.756]], [0.194, [0.924, 0.815, 0.756]], [0.196, [0.919, 0.816, 0.762]], [0.198, [0.919, 0.816, 0.762]], [0.200, [0.914, 0.816, 0.769]], [0.202, [0.914, 0.816, 0.769]], [0.204, [0.908, 0.817, 0.775]], [0.205, [0.908, 0.817, 0.775]], [0.207, [0.903, 0.818, 0.782]], [0.209, [0.903, 0.818, 0.782]], [0.211, [0.898, 0.819, 0.788]], [0.213, [0.898, 0.819, 0.788]], [0.215, [0.892, 0.820, 0.794]], [0.217, [0.892, 0.820, 0.794]], [0.219, [0.887, 0.821, 0.801]], [0.221, [0.887, 0.821, 0.801]], [0.223, [0.881, 0.822, 0.807]], [0.225, [0.881, 0.822, 0.807]], [0.227, [0.876, 0.822, 0.814]], [0.229, [0.876, 0.822, 0.814]], [0.231, [0.871, 0.823, 0.820]], [0.233, [0.871, 0.823, 0.820]], [0.235, [0.865, 0.824, 0.827]], [0.237, [0.865, 0.824, 0.827]], [0.239, [0.860, 0.825, 0.833]], [0.241, [0.860, 0.825, 0.833]], [0.243, [0.855, 0.826, 0.840]], [0.245, [0.855, 0.826, 0.840]], [0.247, [0.849, 0.827, 0.846]], [0.249, [0.849, 0.827, 0.846]], [0.250, [0.844, 0.828, 0.853]], [0.252, [0.844, 0.828, 0.853]], [0.254, [0.838, 0.829, 0.859]], [0.256, [0.838, 0.829, 0.859]], [0.258, [0.833, 0.829, 0.866]], [0.260, [0.833, 0.829, 0.866]], [0.262, [0.828, 0.830, 0.872]], [0.264, [0.828, 0.830, 0.872]], [0.266, [0.822, 0.831, 0.878]], [0.268, [0.822, 0.831, 0.878]], [0.270, [0.817, 0.832, 0.885]], [0.272, [0.817, 0.832, 0.885]], [0.274, [0.811, 0.833, 0.891]], [0.276, [0.811, 0.833, 0.891]], [0.278, [0.806, 0.834, 0.898]], [0.280, [0.806, 0.834, 0.898]], [0.282, [0.801, 0.835, 0.904]], [0.284, [0.801, 0.835, 0.904]], [0.286, [0.797, 0.835, 0.910]], [0.288, [0.797, 0.835, 0.910]], [0.290, [0.801, 0.834, 0.909]], [0.292, [0.801, 0.834, 0.909]], [0.294, [0.806, 0.833, 0.909]], [0.295, [0.806, 0.833, 0.909]], [0.297, [0.810, 0.832, 0.908]], [0.299, [0.810, 0.832, 0.908]], [0.301, [0.814, 0.830, 0.908]], [0.303, [0.814, 0.830, 0.908]], [0.305, [0.819, 0.829, 0.908]], [0.307, [0.819, 0.829, 0.908]], [0.309, [0.823, 0.828, 0.907]], [0.311, [0.823, 0.828, 0.907]], [0.313, [0.828, 0.827, 0.907]], [0.315, [0.828, 0.827, 0.907]], [0.317, [0.832, 0.826, 0.906]], [0.319, [0.832, 0.826, 0.906]], [0.321, [0.836, 0.824, 0.906]], [0.323, [0.836, 0.824, 0.906]], [0.325, [0.841, 0.823, 0.905]], [0.327, [0.841, 0.823, 0.905]], [0.329, [0.845, 0.822, 0.905]], [0.331, [0.845, 0.822, 0.905]], [0.333, [0.850, 0.821, 0.905]], [0.335, [0.850, 0.821, 0.905]], [0.337, [0.854, 0.820, 0.904]], [0.339, [0.854, 0.820, 0.904]], [0.341, [0.859, 0.819, 0.904]], [0.342, [0.859, 0.819, 0.904]], [0.344, [0.863, 0.817, 0.903]], [0.346, [0.863, 0.817, 0.903]], [0.348, [0.867, 0.816, 0.903]], [0.350, [0.867, 0.816, 0.903]], [0.352, [0.872, 0.815, 0.902]], [0.354, [0.872, 0.815, 0.902]], [0.356, [0.876, 0.814, 0.902]], [0.358, [0.876, 0.814, 0.902]], [0.360, [0.881, 0.813, 0.902]], [0.362, [0.881, 0.813, 0.902]], [0.364, [0.885, 0.811, 0.901]], [0.366, [0.885, 0.811, 0.901]], [0.368, [0.889, 0.810, 0.901]], [0.370, [0.889, 0.810, 0.901]], [0.372, [0.894, 0.809, 0.900]], [0.374, [0.894, 0.809, 0.900]], [0.376, [0.898, 0.808, 0.900]], [0.378, [0.898, 0.808, 0.900]], [0.380, [0.903, 0.807, 0.899]], [0.382, [0.903, 0.807, 0.899]], [0.384, [0.907, 0.806, 0.899]], [0.386, [0.907, 0.806, 0.899]], [0.387, [0.911, 0.804, 0.899]], [0.389, [0.911, 0.804, 0.899]], [0.391, [0.916, 0.803, 0.898]], [0.393, [0.916, 0.803, 0.898]], [0.395, [0.920, 0.802, 0.898]], [0.397, [0.920, 0.802, 0.898]], [0.399, [0.925, 0.801, 0.897]], [0.401, [0.925, 0.801, 0.897]], [0.403, [0.929, 0.800, 0.897]], [0.405, [0.929, 0.800, 0.897]], [0.407, [0.934, 0.798, 0.896]], [0.409, [0.934, 0.798, 0.896]], [0.411, [0.938, 0.797, 0.896]], [0.413, [0.938, 0.797, 0.896]], [0.415, [0.942, 0.796, 0.896]], [0.417, [0.942, 0.796, 0.896]], [0.419, [0.947, 0.795, 0.895]], [0.421, [0.947, 0.795, 0.895]], [0.423, [0.951, 0.794, 0.895]], [0.425, [0.951, 0.794, 0.895]], [0.427, [0.956, 0.792, 0.894]], [0.429, [0.956, 0.792, 0.894]], [0.431, [0.956, 0.795, 0.892]], [0.432, [0.956, 0.795, 0.892]], [0.434, [0.954, 0.800, 0.889]], [0.436, [0.954, 0.800, 0.889]], [0.438, [0.953, 0.805, 0.886]], [0.440, [0.953, 0.805, 0.886]], [0.442, [0.951, 0.809, 0.883]], [0.444, [0.951, 0.809, 0.883]], [0.446, [0.950, 0.814, 0.880]], [0.448, [0.950, 0.814, 0.880]], [0.450, [0.948, 0.819, 0.878]], [0.452, [0.948, 0.819, 0.878]], [0.454, [0.947, 0.823, 0.875]], [0.456, [0.947, 0.823, 0.875]], [0.458, [0.945, 0.828, 0.872]], [0.460, [0.945, 0.828, 0.872]], [0.462, [0.944, 0.832, 0.869]], [0.464, [0.944, 0.832, 0.869]], [0.466, [0.942, 0.837, 0.866]], [0.468, [0.942, 0.837, 0.866]], [0.470, [0.941, 0.842, 0.863]], [0.472, [0.941, 0.842, 0.863]], [0.474, [0.939, 0.846, 0.860]], [0.476, [0.939, 0.846, 0.860]], [0.477, [0.938, 0.851, 0.857]], [0.479, [0.938, 0.851, 0.857]], [0.481, [0.936, 0.856, 0.854]], [0.483, [0.936, 0.856, 0.854]], [0.485, [0.935, 0.860, 0.851]], [0.487, [0.935, 0.860, 0.851]], [0.489, [0.933, 0.865, 0.848]], [0.491, [0.933, 0.865, 0.848]], [0.493, [0.932, 0.870, 0.846]], [0.495, [0.932, 0.870, 0.846]], [0.497, [0.930, 0.874, 0.843]], [0.499, [0.930, 0.874, 0.843]], [0.501, [0.929, 0.879, 0.840]], [0.503, [0.929, 0.879, 0.840]], [0.505, [0.927, 0.883, 0.837]], [0.507, [0.927, 0.883, 0.837]], [0.509, [0.926, 0.888, 0.834]], [0.511, [0.926, 0.888, 0.834]], [0.513, [0.924, 0.893, 0.831]], [0.515, [0.924, 0.893, 0.831]], [0.517, [0.923, 0.897, 0.828]], [0.519, [0.923, 0.897, 0.828]], [0.521, [0.921, 0.902, 0.825]], [0.523, [0.921, 0.902, 0.825]], [0.524, [0.920, 0.907, 0.822]], [0.526, [0.920, 0.907, 0.822]], [0.528, [0.918, 0.911, 0.819]], [0.530, [0.918, 0.911, 0.819]], [0.532, [0.917, 0.916, 0.816]], [0.534, [0.917, 0.916, 0.816]], [0.536, [0.915, 0.920, 0.814]], [0.538, [0.915, 0.920, 0.814]], [0.540, [0.914, 0.925, 0.811]], [0.542, [0.914, 0.925, 0.811]], [0.544, [0.912, 0.930, 0.808]], [0.546, [0.912, 0.930, 0.808]], [0.548, [0.911, 0.934, 0.805]], [0.550, [0.911, 0.934, 0.805]], [0.552, [0.909, 0.939, 0.802]], [0.554, [0.909, 0.939, 0.802]], [0.556, [0.908, 0.944, 0.799]], [0.558, [0.908, 0.944, 0.799]], [0.560, [0.906, 0.948, 0.796]], [0.562, [0.906, 0.948, 0.796]], [0.564, [0.905, 0.953, 0.793]], [0.566, [0.905, 0.953, 0.793]], [0.568, [0.903, 0.957, 0.790]], [0.569, [0.903, 0.957, 0.790]], [0.571, [0.903, 0.961, 0.787]], [0.573, [0.903, 0.961, 0.787]], [0.575, [0.905, 0.960, 0.784]], [0.577, [0.905, 0.960, 0.784]], [0.579, [0.908, 0.960, 0.782]], [0.581, [0.908, 0.960, 0.782]], [0.583, [0.911, 0.960, 0.779]], [0.585, [0.911, 0.960, 0.779]], [0.587, [0.913, 0.959, 0.776]], [0.589, [0.913, 0.959, 0.776]], [0.591, [0.916, 0.959, 0.773]], [0.593, [0.916, 0.959, 0.773]], [0.595, [0.919, 0.959, 0.770]], [0.597, [0.919, 0.959, 0.770]], [0.599, [0.922, 0.958, 0.767]], [0.601, [0.922, 0.958, 0.767]], [0.603, [0.924, 0.958, 0.764]], [0.605, [0.924, 0.958, 0.764]], [0.607, [0.927, 0.958, 0.761]], [0.609, [0.927, 0.958, 0.761]], [0.611, [0.930, 0.957, 0.758]], [0.613, [0.930, 0.957, 0.758]], [0.614, [0.932, 0.957, 0.755]], [0.616, [0.932, 0.957, 0.755]], [0.618, [0.935, 0.957, 0.753]], [0.620, [0.935, 0.957, 0.753]], [0.622, [0.938, 0.956, 0.750]], [0.624, [0.938, 0.956, 0.750]], [0.626, [0.940, 0.956, 0.747]], [0.628, [0.940, 0.956, 0.747]], [0.630, [0.943, 0.956, 0.744]], [0.632, [0.943, 0.956, 0.744]], [0.634, [0.946, 0.956, 0.741]], [0.636, [0.946, 0.956, 0.741]], [0.638, [0.948, 0.955, 0.738]], [0.640, [0.948, 0.955, 0.738]], [0.642, [0.951, 0.955, 0.735]], [0.644, [0.951, 0.955, 0.735]], [0.646, [0.954, 0.955, 0.732]], [0.648, [0.954, 0.955, 0.732]], [0.650, [0.957, 0.954, 0.729]], [0.652, [0.957, 0.954, 0.729]], [0.654, [0.959, 0.954, 0.726]], [0.656, [0.959, 0.954, 0.726]], [0.658, [0.962, 0.954, 0.723]], [0.659, [0.962, 0.954, 0.723]], [0.661, [0.965, 0.953, 0.721]], [0.663, [0.965, 0.953, 0.721]], [0.665, [0.967, 0.953, 0.718]], [0.667, [0.967, 0.953, 0.718]], [0.669, [0.970, 0.953, 0.715]], [0.671, [0.970, 0.953, 0.715]], [0.673, [0.973, 0.952, 0.712]], [0.675, [0.973, 0.952, 0.712]], [0.677, [0.975, 0.952, 0.709]], [0.679, [0.975, 0.952, 0.709]], [0.681, [0.978, 0.952, 0.706]], [0.683, [0.978, 0.952, 0.706]], [0.685, [0.981, 0.951, 0.703]], [0.687, [0.981, 0.951, 0.703]], [0.689, [0.983, 0.951, 0.700]], [0.691, [0.983, 0.951, 0.700]], [0.693, [0.986, 0.951, 0.697]], [0.695, [0.986, 0.951, 0.697]], [0.697, [0.989, 0.950, 0.694]], [0.699, [0.989, 0.950, 0.694]], [0.701, [0.992, 0.950, 0.691]], [0.703, [0.992, 0.950, 0.691]], [0.705, [0.994, 0.950, 0.689]], [0.706, [0.994, 0.950, 0.689]], [0.708, [0.997, 0.949, 0.686]], [0.710, [0.997, 0.949, 0.686]], [0.712, [1.000, 0.949, 0.683]], [0.714, [1.000, 0.949, 0.683]], [0.716, [0.999, 0.948, 0.685]], [0.718, [0.999, 0.948, 0.685]], [0.720, [0.997, 0.946, 0.688]], [0.722, [0.997, 0.946, 0.688]], [0.724, [0.996, 0.944, 0.692]], [0.726, [0.996, 0.944, 0.692]], [0.728, [0.994, 0.942, 0.695]], [0.730, [0.994, 0.942, 0.695]], [0.732, [0.993, 0.941, 0.698]], [0.734, [0.993, 0.941, 0.698]], [0.736, [0.991, 0.939, 0.701]], [0.738, [0.991, 0.939, 0.701]], [0.740, [0.990, 0.937, 0.704]], [0.742, [0.990, 0.937, 0.704]], [0.744, [0.988, 0.935, 0.708]], [0.746, [0.988, 0.935, 0.708]], [0.748, [0.987, 0.934, 0.711]], [0.750, [0.987, 0.934, 0.711]], [0.751, [0.985, 0.932, 0.714]], [0.753, [0.985, 0.932, 0.714]], [0.755, [0.984, 0.930, 0.717]], [0.757, [0.984, 0.930, 0.717]], [0.759, [0.982, 0.929, 0.721]], [0.761, [0.982, 0.929, 0.721]], [0.763, [0.981, 0.927, 0.724]], [0.765, [0.981, 0.927, 0.724]], [0.767, [0.979, 0.925, 0.727]], [0.769, [0.979, 0.925, 0.727]], [0.771, [0.978, 0.923, 0.730]], [0.773, [0.978, 0.923, 0.730]], [0.775, [0.976, 0.922, 0.734]], [0.777, [0.976, 0.922, 0.734]], [0.779, [0.975, 0.920, 0.737]], [0.781, [0.975, 0.920, 0.737]], [0.783, [0.973, 0.918, 0.740]], [0.785, [0.973, 0.918, 0.740]], [0.787, [0.972, 0.917, 0.743]], [0.789, [0.972, 0.917, 0.743]], [0.791, [0.970, 0.915, 0.746]], [0.793, [0.970, 0.915, 0.746]], [0.795, [0.969, 0.913, 0.750]], [0.796, [0.969, 0.913, 0.750]], [0.798, [0.967, 0.911, 0.753]], [0.800, [0.967, 0.911, 0.753]], [0.802, [0.966, 0.910, 0.756]], [0.804, [0.966, 0.910, 0.756]], [0.806, [0.964, 0.908, 0.759]], [0.808, [0.964, 0.908, 0.759]], [0.810, [0.963, 0.906, 0.763]], [0.812, [0.963, 0.906, 0.763]], [0.814, [0.961, 0.904, 0.766]], [0.816, [0.961, 0.904, 0.766]], [0.818, [0.960, 0.903, 0.769]], [0.820, [0.960, 0.903, 0.769]], [0.822, [0.958, 0.901, 0.772]], [0.824, [0.958, 0.901, 0.772]], [0.826, [0.957, 0.899, 0.776]], [0.828, [0.957, 0.899, 0.776]], [0.830, [0.955, 0.898, 0.779]], [0.832, [0.955, 0.898, 0.779]], [0.834, [0.953, 0.896, 0.782]], [0.836, [0.953, 0.896, 0.782]], [0.838, [0.952, 0.894, 0.785]], [0.840, [0.952, 0.894, 0.785]], [0.841, [0.950, 0.892, 0.788]], [0.843, [0.950, 0.892, 0.788]], [0.845, [0.949, 0.891, 0.792]], [0.847, [0.949, 0.891, 0.792]], [0.849, [0.947, 0.889, 0.795]], [0.851, [0.947, 0.889, 0.795]], [0.853, [0.946, 0.887, 0.798]], [0.855, [0.946, 0.887, 0.798]], [0.857, [0.943, 0.885, 0.800]], [0.859, [0.943, 0.885, 0.800]], [0.861, [0.939, 0.883, 0.800]], [0.863, [0.939, 0.883, 0.800]], [0.865, [0.935, 0.881, 0.800]], [0.867, [0.935, 0.881, 0.800]], [0.869, [0.931, 0.878, 0.800]], [0.871, [0.931, 0.878, 0.800]], [0.873, [0.927, 0.876, 0.800]], [0.875, [0.927, 0.876, 0.800]], [0.877, [0.923, 0.873, 0.800]], [0.879, [0.923, 0.873, 0.800]], [0.881, [0.919, 0.871, 0.800]], [0.883, [0.919, 0.871, 0.800]], [0.885, [0.916, 0.869, 0.800]], [0.886, [0.916, 0.869, 0.800]], [0.888, [0.912, 0.866, 0.800]], [0.890, [0.912, 0.866, 0.800]], [0.892, [0.908, 0.864, 0.800]], [0.894, [0.908, 0.864, 0.800]], [0.896, [0.904, 0.862, 0.800]], [0.898, [0.904, 0.862, 0.800]], [0.900, [0.900, 0.859, 0.800]], [0.902, [0.900, 0.859, 0.800]], [0.904, [0.896, 0.857, 0.800]], [0.906, [0.896, 0.857, 0.800]], [0.908, [0.892, 0.854, 0.800]], [0.910, [0.892, 0.854, 0.800]], [0.912, [0.888, 0.852, 0.800]], [0.914, [0.888, 0.852, 0.800]], [0.916, [0.884, 0.850, 0.800]], [0.918, [0.884, 0.850, 0.800]], [0.920, [0.880, 0.847, 0.800]], [0.922, [0.880, 0.847, 0.800]], [0.924, [0.876, 0.845, 0.800]], [0.926, [0.876, 0.845, 0.800]], [0.928, [0.872, 0.843, 0.800]], [0.930, [0.872, 0.843, 0.800]], [0.932, [0.868, 0.840, 0.800]], [0.933, [0.868, 0.840, 0.800]], [0.935, [0.864, 0.838, 0.800]], [0.937, [0.864, 0.838, 0.800]], [0.939, [0.860, 0.836, 0.800]], [0.941, [0.860, 0.836, 0.800]], [0.943, [0.856, 0.833, 0.800]], [0.945, [0.856, 0.833, 0.800]], [0.947, [0.852, 0.831, 0.800]], [0.949, [0.852, 0.831, 0.800]], [0.951, [0.848, 0.828, 0.800]], [0.953, [0.848, 0.828, 0.800]], [0.955, [0.844, 0.826, 0.800]], [0.957, [0.844, 0.826, 0.800]], [0.959, [0.840, 0.824, 0.800]], [0.961, [0.840, 0.824, 0.800]], [0.963, [0.836, 0.821, 0.800]], [0.965, [0.836, 0.821, 0.800]], [0.967, [0.832, 0.819, 0.800]], [0.969, [0.832, 0.819, 0.800]], [0.971, [0.828, 0.817, 0.800]], [0.973, [0.828, 0.817, 0.800]], [0.975, [0.824, 0.814, 0.800]], [0.977, [0.824, 0.814, 0.800]], [0.978, [0.820, 0.812, 0.800]], [0.980, [0.820, 0.812, 0.800]], [0.982, [0.816, 0.809, 0.800]], [0.984, [0.816, 0.809, 0.800]], [0.986, [0.812, 0.807, 0.800]], [0.988, [0.812, 0.807, 0.800]], [0.990, [0.808, 0.805, 0.800]], [0.992, [0.808, 0.805, 0.800]], [0.994, [0.804, 0.802, 0.800]], [0.996, [0.804, 0.802, 0.800]], [0.998, [0.800, 0.800, 0.800]], [1.000, [0.800, 0.800, 0.800]]];
+var Set1 = [[0.000, [0.894, 0.102, 0.110]], [0.002, [0.894, 0.102, 0.110]], [0.004, [0.873, 0.114, 0.129]], [0.006, [0.873, 0.114, 0.129]], [0.008, [0.852, 0.127, 0.148]], [0.010, [0.852, 0.127, 0.148]], [0.012, [0.830, 0.139, 0.167]], [0.014, [0.830, 0.139, 0.167]], [0.016, [0.809, 0.151, 0.187]], [0.018, [0.809, 0.151, 0.187]], [0.020, [0.788, 0.163, 0.206]], [0.022, [0.788, 0.163, 0.206]], [0.023, [0.766, 0.176, 0.225]], [0.025, [0.766, 0.176, 0.225]], [0.027, [0.745, 0.188, 0.244]], [0.029, [0.745, 0.188, 0.244]], [0.031, [0.724, 0.200, 0.263]], [0.033, [0.724, 0.200, 0.263]], [0.035, [0.703, 0.213, 0.283]], [0.037, [0.703, 0.213, 0.283]], [0.039, [0.681, 0.225, 0.302]], [0.041, [0.681, 0.225, 0.302]], [0.043, [0.660, 0.237, 0.321]], [0.045, [0.660, 0.237, 0.321]], [0.047, [0.639, 0.250, 0.340]], [0.049, [0.639, 0.250, 0.340]], [0.051, [0.617, 0.262, 0.359]], [0.053, [0.617, 0.262, 0.359]], [0.055, [0.596, 0.274, 0.379]], [0.057, [0.596, 0.274, 0.379]], [0.059, [0.575, 0.287, 0.398]], [0.061, [0.575, 0.287, 0.398]], [0.063, [0.554, 0.299, 0.417]], [0.065, [0.554, 0.299, 0.417]], [0.067, [0.532, 0.311, 0.436]], [0.068, [0.532, 0.311, 0.436]], [0.070, [0.511, 0.323, 0.455]], [0.072, [0.511, 0.323, 0.455]], [0.074, [0.490, 0.336, 0.474]], [0.076, [0.490, 0.336, 0.474]], [0.078, [0.468, 0.348, 0.494]], [0.080, [0.468, 0.348, 0.494]], [0.082, [0.447, 0.360, 0.513]], [0.084, [0.447, 0.360, 0.513]], [0.086, [0.426, 0.373, 0.532]], [0.088, [0.426, 0.373, 0.532]], [0.090, [0.405, 0.385, 0.551]], [0.092, [0.405, 0.385, 0.551]], [0.094, [0.383, 0.397, 0.570]], [0.096, [0.383, 0.397, 0.570]], [0.098, [0.362, 0.410, 0.590]], [0.100, [0.362, 0.410, 0.590]], [0.102, [0.341, 0.422, 0.609]], [0.104, [0.341, 0.422, 0.609]], [0.106, [0.319, 0.434, 0.628]], [0.108, [0.319, 0.434, 0.628]], [0.110, [0.298, 0.446, 0.647]], [0.112, [0.298, 0.446, 0.647]], [0.114, [0.277, 0.459, 0.666]], [0.115, [0.277, 0.459, 0.666]], [0.117, [0.256, 0.471, 0.686]], [0.119, [0.256, 0.471, 0.686]], [0.121, [0.234, 0.483, 0.705]], [0.123, [0.234, 0.483, 0.705]], [0.125, [0.216, 0.495, 0.720]], [0.127, [0.216, 0.495, 0.720]], [0.129, [0.219, 0.501, 0.706]], [0.131, [0.219, 0.501, 0.706]], [0.133, [0.221, 0.507, 0.693]], [0.135, [0.221, 0.507, 0.693]], [0.137, [0.224, 0.513, 0.679]], [0.139, [0.224, 0.513, 0.679]], [0.141, [0.227, 0.519, 0.666]], [0.143, [0.227, 0.519, 0.666]], [0.145, [0.230, 0.525, 0.652]], [0.147, [0.230, 0.525, 0.652]], [0.149, [0.232, 0.531, 0.639]], [0.151, [0.232, 0.531, 0.639]], [0.153, [0.235, 0.537, 0.625]], [0.155, [0.235, 0.537, 0.625]], [0.157, [0.238, 0.543, 0.612]], [0.159, [0.238, 0.543, 0.612]], [0.160, [0.240, 0.549, 0.598]], [0.162, [0.240, 0.549, 0.598]], [0.164, [0.243, 0.555, 0.585]], [0.166, [0.243, 0.555, 0.585]], [0.168, [0.246, 0.561, 0.571]], [0.170, [0.246, 0.561, 0.571]], [0.172, [0.249, 0.567, 0.557]], [0.174, [0.249, 0.567, 0.557]], [0.176, [0.251, 0.573, 0.544]], [0.178, [0.251, 0.573, 0.544]], [0.180, [0.254, 0.579, 0.530]], [0.182, [0.254, 0.579, 0.530]], [0.184, [0.257, 0.585, 0.517]], [0.186, [0.257, 0.585, 0.517]], [0.188, [0.259, 0.591, 0.503]], [0.190, [0.259, 0.591, 0.503]], [0.192, [0.262, 0.597, 0.490]], [0.194, [0.262, 0.597, 0.490]], [0.196, [0.265, 0.603, 0.476]], [0.198, [0.265, 0.603, 0.476]], [0.200, [0.267, 0.609, 0.463]], [0.202, [0.267, 0.609, 0.463]], [0.204, [0.270, 0.615, 0.449]], [0.205, [0.270, 0.615, 0.449]], [0.207, [0.273, 0.621, 0.436]], [0.209, [0.273, 0.621, 0.436]], [0.211, [0.276, 0.627, 0.422]], [0.213, [0.276, 0.627, 0.422]], [0.215, [0.278, 0.634, 0.409]], [0.217, [0.278, 0.634, 0.409]], [0.219, [0.281, 0.640, 0.395]], [0.221, [0.281, 0.640, 0.395]], [0.223, [0.284, 0.646, 0.382]], [0.225, [0.284, 0.646, 0.382]], [0.227, [0.286, 0.652, 0.368]], [0.229, [0.286, 0.652, 0.368]], [0.231, [0.289, 0.658, 0.354]], [0.233, [0.289, 0.658, 0.354]], [0.235, [0.292, 0.664, 0.341]], [0.237, [0.292, 0.664, 0.341]], [0.239, [0.295, 0.670, 0.327]], [0.241, [0.295, 0.670, 0.327]], [0.243, [0.297, 0.676, 0.314]], [0.245, [0.297, 0.676, 0.314]], [0.247, [0.300, 0.682, 0.300]], [0.249, [0.300, 0.682, 0.300]], [0.250, [0.304, 0.683, 0.293]], [0.252, [0.304, 0.683, 0.293]], [0.254, [0.313, 0.671, 0.304]], [0.256, [0.313, 0.671, 0.304]], [0.258, [0.323, 0.659, 0.315]], [0.260, [0.323, 0.659, 0.315]], [0.262, [0.332, 0.647, 0.326]], [0.264, [0.332, 0.647, 0.326]], [0.266, [0.341, 0.636, 0.337]], [0.268, [0.341, 0.636, 0.337]], [0.270, [0.350, 0.624, 0.348]], [0.272, [0.350, 0.624, 0.348]], [0.274, [0.360, 0.612, 0.359]], [0.276, [0.360, 0.612, 0.359]], [0.278, [0.369, 0.600, 0.370]], [0.280, [0.369, 0.600, 0.370]], [0.282, [0.378, 0.588, 0.381]], [0.284, [0.378, 0.588, 0.381]], [0.286, [0.387, 0.576, 0.391]], [0.288, [0.387, 0.576, 0.391]], [0.290, [0.397, 0.564, 0.402]], [0.292, [0.397, 0.564, 0.402]], [0.294, [0.406, 0.552, 0.413]], [0.295, [0.406, 0.552, 0.413]], [0.297, [0.415, 0.540, 0.424]], [0.299, [0.415, 0.540, 0.424]], [0.301, [0.424, 0.528, 0.435]], [0.303, [0.424, 0.528, 0.435]], [0.305, [0.433, 0.516, 0.446]], [0.307, [0.433, 0.516, 0.446]], [0.309, [0.443, 0.504, 0.457]], [0.311, [0.443, 0.504, 0.457]], [0.313, [0.452, 0.492, 0.468]], [0.315, [0.452, 0.492, 0.468]], [0.317, [0.461, 0.480, 0.479]], [0.319, [0.461, 0.480, 0.479]], [0.321, [0.470, 0.468, 0.490]], [0.323, [0.470, 0.468, 0.490]], [0.325, [0.480, 0.457, 0.501]], [0.327, [0.480, 0.457, 0.501]], [0.329, [0.489, 0.445, 0.512]], [0.331, [0.489, 0.445, 0.512]], [0.333, [0.498, 0.433, 0.523]], [0.335, [0.498, 0.433, 0.523]], [0.337, [0.507, 0.421, 0.534]], [0.339, [0.507, 0.421, 0.534]], [0.341, [0.516, 0.409, 0.545]], [0.342, [0.516, 0.409, 0.545]], [0.344, [0.526, 0.397, 0.556]], [0.346, [0.526, 0.397, 0.556]], [0.348, [0.535, 0.385, 0.567]], [0.350, [0.535, 0.385, 0.567]], [0.352, [0.544, 0.373, 0.578]], [0.354, [0.544, 0.373, 0.578]], [0.356, [0.553, 0.361, 0.589]], [0.358, [0.553, 0.361, 0.589]], [0.360, [0.563, 0.349, 0.600]], [0.362, [0.563, 0.349, 0.600]], [0.364, [0.572, 0.337, 0.610]], [0.366, [0.572, 0.337, 0.610]], [0.368, [0.581, 0.325, 0.621]], [0.370, [0.581, 0.325, 0.621]], [0.372, [0.590, 0.313, 0.632]], [0.374, [0.590, 0.313, 0.632]], [0.376, [0.601, 0.308, 0.632]], [0.378, [0.601, 0.308, 0.632]], [0.380, [0.614, 0.314, 0.612]], [0.382, [0.614, 0.314, 0.612]], [0.384, [0.626, 0.320, 0.592]], [0.386, [0.626, 0.320, 0.592]], [0.387, [0.639, 0.326, 0.572]], [0.389, [0.639, 0.326, 0.572]], [0.391, [0.652, 0.332, 0.551]], [0.393, [0.652, 0.332, 0.551]], [0.395, [0.664, 0.338, 0.531]], [0.397, [0.664, 0.338, 0.531]], [0.399, [0.677, 0.344, 0.511]], [0.401, [0.677, 0.344, 0.511]], [0.403, [0.690, 0.350, 0.491]], [0.405, [0.690, 0.350, 0.491]], [0.407, [0.702, 0.356, 0.471]], [0.409, [0.702, 0.356, 0.471]], [0.411, [0.715, 0.362, 0.451]], [0.413, [0.715, 0.362, 0.451]], [0.415, [0.728, 0.368, 0.431]], [0.417, [0.728, 0.368, 0.431]], [0.419, [0.740, 0.374, 0.411]], [0.421, [0.740, 0.374, 0.411]], [0.423, [0.753, 0.380, 0.391]], [0.425, [0.753, 0.380, 0.391]], [0.427, [0.766, 0.387, 0.371]], [0.429, [0.766, 0.387, 0.371]], [0.431, [0.778, 0.393, 0.351]], [0.432, [0.778, 0.393, 0.351]], [0.434, [0.791, 0.399, 0.331]], [0.436, [0.791, 0.399, 0.331]], [0.438, [0.804, 0.405, 0.311]], [0.440, [0.804, 0.405, 0.311]], [0.442, [0.816, 0.411, 0.291]], [0.444, [0.816, 0.411, 0.291]], [0.446, [0.829, 0.417, 0.271]], [0.448, [0.829, 0.417, 0.271]], [0.450, [0.842, 0.423, 0.251]], [0.452, [0.842, 0.423, 0.251]], [0.454, [0.854, 0.429, 0.231]], [0.456, [0.854, 0.429, 0.231]], [0.458, [0.867, 0.435, 0.211]], [0.460, [0.867, 0.435, 0.211]], [0.462, [0.880, 0.441, 0.191]], [0.464, [0.880, 0.441, 0.191]], [0.466, [0.892, 0.447, 0.170]], [0.468, [0.892, 0.447, 0.170]], [0.470, [0.905, 0.453, 0.150]], [0.472, [0.905, 0.453, 0.150]], [0.474, [0.918, 0.459, 0.130]], [0.476, [0.918, 0.459, 0.130]], [0.477, [0.930, 0.465, 0.110]], [0.479, [0.930, 0.465, 0.110]], [0.481, [0.943, 0.471, 0.090]], [0.483, [0.943, 0.471, 0.090]], [0.485, [0.956, 0.477, 0.070]], [0.487, [0.956, 0.477, 0.070]], [0.489, [0.968, 0.483, 0.050]], [0.491, [0.968, 0.483, 0.050]], [0.493, [0.981, 0.489, 0.030]], [0.495, [0.981, 0.489, 0.030]], [0.497, [0.994, 0.495, 0.010]], [0.499, [0.994, 0.495, 0.010]], [0.501, [1.000, 0.506, 0.003]], [0.503, [1.000, 0.506, 0.003]], [0.505, [1.000, 0.522, 0.009]], [0.507, [1.000, 0.522, 0.009]], [0.509, [1.000, 0.537, 0.016]], [0.511, [1.000, 0.537, 0.016]], [0.513, [1.000, 0.553, 0.022]], [0.515, [1.000, 0.553, 0.022]], [0.517, [1.000, 0.569, 0.028]], [0.519, [1.000, 0.569, 0.028]], [0.521, [1.000, 0.585, 0.035]], [0.523, [1.000, 0.585, 0.035]], [0.524, [1.000, 0.600, 0.041]], [0.526, [1.000, 0.600, 0.041]], [0.528, [1.000, 0.616, 0.047]], [0.530, [1.000, 0.616, 0.047]], [0.532, [1.000, 0.632, 0.053]], [0.534, [1.000, 0.632, 0.053]], [0.536, [1.000, 0.648, 0.060]], [0.538, [1.000, 0.648, 0.060]], [0.540, [1.000, 0.663, 0.066]], [0.542, [1.000, 0.663, 0.066]], [0.544, [1.000, 0.679, 0.072]], [0.546, [1.000, 0.679, 0.072]], [0.548, [1.000, 0.695, 0.078]], [0.550, [1.000, 0.695, 0.078]], [0.552, [1.000, 0.711, 0.085]], [0.554, [1.000, 0.711, 0.085]], [0.556, [1.000, 0.726, 0.091]], [0.558, [1.000, 0.726, 0.091]], [0.560, [1.000, 0.742, 0.097]], [0.562, [1.000, 0.742, 0.097]], [0.564, [1.000, 0.758, 0.104]], [0.566, [1.000, 0.758, 0.104]], [0.568, [1.000, 0.774, 0.110]], [0.569, [1.000, 0.774, 0.110]], [0.571, [1.000, 0.789, 0.116]], [0.573, [1.000, 0.789, 0.116]], [0.575, [1.000, 0.805, 0.122]], [0.577, [1.000, 0.805, 0.122]], [0.579, [1.000, 0.821, 0.129]], [0.581, [1.000, 0.821, 0.129]], [0.583, [1.000, 0.837, 0.135]], [0.585, [1.000, 0.837, 0.135]], [0.587, [1.000, 0.852, 0.141]], [0.589, [1.000, 0.852, 0.141]], [0.591, [1.000, 0.868, 0.147]], [0.593, [1.000, 0.868, 0.147]], [0.595, [1.000, 0.884, 0.154]], [0.597, [1.000, 0.884, 0.154]], [0.599, [1.000, 0.900, 0.160]], [0.601, [1.000, 0.900, 0.160]], [0.603, [1.000, 0.915, 0.166]], [0.605, [1.000, 0.915, 0.166]], [0.607, [1.000, 0.931, 0.173]], [0.609, [1.000, 0.931, 0.173]], [0.611, [1.000, 0.947, 0.179]], [0.613, [1.000, 0.947, 0.179]], [0.614, [1.000, 0.963, 0.185]], [0.616, [1.000, 0.963, 0.185]], [0.618, [1.000, 0.978, 0.191]], [0.620, [1.000, 0.978, 0.191]], [0.622, [1.000, 0.994, 0.198]], [0.624, [1.000, 0.994, 0.198]], [0.626, [0.993, 0.987, 0.199]], [0.628, [0.993, 0.987, 0.199]], [0.630, [0.982, 0.966, 0.198]], [0.632, [0.982, 0.966, 0.198]], [0.634, [0.971, 0.945, 0.196]], [0.636, [0.971, 0.945, 0.196]], [0.638, [0.960, 0.925, 0.195]], [0.640, [0.960, 0.925, 0.195]], [0.642, [0.949, 0.904, 0.194]], [0.644, [0.949, 0.904, 0.194]], [0.646, [0.938, 0.883, 0.192]], [0.648, [0.938, 0.883, 0.192]], [0.650, [0.927, 0.862, 0.191]], [0.652, [0.927, 0.862, 0.191]], [0.654, [0.917, 0.841, 0.190]], [0.656, [0.917, 0.841, 0.190]], [0.658, [0.906, 0.821, 0.188]], [0.659, [0.906, 0.821, 0.188]], [0.661, [0.895, 0.800, 0.187]], [0.663, [0.895, 0.800, 0.187]], [0.665, [0.884, 0.779, 0.186]], [0.667, [0.884, 0.779, 0.186]], [0.669, [0.873, 0.758, 0.184]], [0.671, [0.873, 0.758, 0.184]], [0.673, [0.862, 0.738, 0.183]], [0.675, [0.862, 0.738, 0.183]], [0.677, [0.851, 0.717, 0.182]], [0.679, [0.851, 0.717, 0.182]], [0.681, [0.840, 0.696, 0.180]], [0.683, [0.840, 0.696, 0.180]], [0.685, [0.829, 0.675, 0.179]], [0.687, [0.829, 0.675, 0.179]], [0.689, [0.818, 0.654, 0.178]], [0.691, [0.818, 0.654, 0.178]], [0.693, [0.807, 0.634, 0.176]], [0.695, [0.807, 0.634, 0.176]], [0.697, [0.796, 0.613, 0.175]], [0.699, [0.796, 0.613, 0.175]], [0.701, [0.785, 0.592, 0.173]], [0.703, [0.785, 0.592, 0.173]], [0.705, [0.774, 0.571, 0.172]], [0.706, [0.774, 0.571, 0.172]], [0.708, [0.763, 0.550, 0.171]], [0.710, [0.763, 0.550, 0.171]], [0.712, [0.752, 0.530, 0.169]], [0.714, [0.752, 0.530, 0.169]], [0.716, [0.741, 0.509, 0.168]], [0.718, [0.741, 0.509, 0.168]], [0.720, [0.730, 0.488, 0.167]], [0.722, [0.730, 0.488, 0.167]], [0.724, [0.719, 0.467, 0.165]], [0.726, [0.719, 0.467, 0.165]], [0.728, [0.708, 0.446, 0.164]], [0.730, [0.708, 0.446, 0.164]], [0.732, [0.698, 0.426, 0.163]], [0.734, [0.698, 0.426, 0.163]], [0.736, [0.687, 0.405, 0.161]], [0.738, [0.687, 0.405, 0.161]], [0.740, [0.676, 0.384, 0.160]], [0.742, [0.676, 0.384, 0.160]], [0.744, [0.665, 0.363, 0.159]], [0.746, [0.665, 0.363, 0.159]], [0.748, [0.654, 0.342, 0.157]], [0.750, [0.654, 0.342, 0.157]], [0.751, [0.658, 0.341, 0.171]], [0.753, [0.658, 0.341, 0.171]], [0.755, [0.668, 0.347, 0.189]], [0.757, [0.668, 0.347, 0.189]], [0.759, [0.678, 0.352, 0.208]], [0.761, [0.678, 0.352, 0.208]], [0.763, [0.688, 0.357, 0.227]], [0.765, [0.688, 0.357, 0.227]], [0.767, [0.698, 0.362, 0.245]], [0.769, [0.698, 0.362, 0.245]], [0.771, [0.708, 0.368, 0.264]], [0.773, [0.708, 0.368, 0.264]], [0.775, [0.718, 0.373, 0.282]], [0.777, [0.718, 0.373, 0.282]], [0.779, [0.728, 0.378, 0.301]], [0.781, [0.728, 0.378, 0.301]], [0.783, [0.738, 0.384, 0.319]], [0.785, [0.738, 0.384, 0.319]], [0.787, [0.748, 0.389, 0.338]], [0.789, [0.748, 0.389, 0.338]], [0.791, [0.758, 0.394, 0.357]], [0.793, [0.758, 0.394, 0.357]], [0.795, [0.768, 0.399, 0.375]], [0.796, [0.768, 0.399, 0.375]], [0.798, [0.778, 0.405, 0.394]], [0.800, [0.778, 0.405, 0.394]], [0.802, [0.788, 0.410, 0.412]], [0.804, [0.788, 0.410, 0.412]], [0.806, [0.798, 0.415, 0.431]], [0.808, [0.798, 0.415, 0.431]], [0.810, [0.808, 0.421, 0.449]], [0.812, [0.808, 0.421, 0.449]], [0.814, [0.818, 0.426, 0.468]], [0.816, [0.818, 0.426, 0.468]], [0.818, [0.828, 0.431, 0.487]], [0.820, [0.828, 0.431, 0.487]], [0.822, [0.838, 0.436, 0.505]], [0.824, [0.838, 0.436, 0.505]], [0.826, [0.848, 0.442, 0.524]], [0.828, [0.848, 0.442, 0.524]], [0.830, [0.858, 0.447, 0.542]], [0.832, [0.858, 0.447, 0.542]], [0.834, [0.868, 0.452, 0.561]], [0.836, [0.868, 0.452, 0.561]], [0.838, [0.878, 0.458, 0.580]], [0.840, [0.878, 0.458, 0.580]], [0.841, [0.888, 0.463, 0.598]], [0.843, [0.888, 0.463, 0.598]], [0.845, [0.898, 0.468, 0.617]], [0.847, [0.898, 0.468, 0.617]], [0.849, [0.908, 0.473, 0.635]], [0.851, [0.908, 0.473, 0.635]], [0.853, [0.918, 0.479, 0.654]], [0.855, [0.918, 0.479, 0.654]], [0.857, [0.928, 0.484, 0.672]], [0.859, [0.928, 0.484, 0.672]], [0.861, [0.937, 0.489, 0.691]], [0.863, [0.937, 0.489, 0.691]], [0.865, [0.947, 0.495, 0.710]], [0.867, [0.947, 0.495, 0.710]], [0.869, [0.957, 0.500, 0.728]], [0.871, [0.957, 0.500, 0.728]], [0.873, [0.967, 0.505, 0.747]], [0.875, [0.967, 0.505, 0.747]], [0.877, [0.959, 0.508, 0.745]], [0.879, [0.959, 0.508, 0.745]], [0.881, [0.947, 0.511, 0.740]], [0.883, [0.947, 0.511, 0.740]], [0.885, [0.935, 0.514, 0.736]], [0.886, [0.935, 0.514, 0.736]], [0.888, [0.924, 0.517, 0.731]], [0.890, [0.924, 0.517, 0.731]], [0.892, [0.912, 0.520, 0.726]], [0.894, [0.912, 0.520, 0.726]], [0.896, [0.901, 0.523, 0.722]], [0.898, [0.901, 0.523, 0.722]], [0.900, [0.889, 0.526, 0.717]], [0.902, [0.889, 0.526, 0.717]], [0.904, [0.878, 0.529, 0.712]], [0.906, [0.878, 0.529, 0.712]], [0.908, [0.866, 0.532, 0.708]], [0.910, [0.866, 0.532, 0.708]], [0.912, [0.854, 0.535, 0.703]], [0.914, [0.854, 0.535, 0.703]], [0.916, [0.843, 0.538, 0.698]], [0.918, [0.843, 0.538, 0.698]], [0.920, [0.831, 0.541, 0.694]], [0.922, [0.831, 0.541, 0.694]], [0.924, [0.820, 0.544, 0.689]], [0.926, [0.820, 0.544, 0.689]], [0.928, [0.808, 0.547, 0.684]], [0.930, [0.808, 0.547, 0.684]], [0.932, [0.797, 0.550, 0.679]], [0.933, [0.797, 0.550, 0.679]], [0.935, [0.785, 0.553, 0.675]], [0.937, [0.785, 0.553, 0.675]], [0.939, [0.773, 0.556, 0.670]], [0.941, [0.773, 0.556, 0.670]], [0.943, [0.762, 0.559, 0.665]], [0.945, [0.762, 0.559, 0.665]], [0.947, [0.750, 0.562, 0.661]], [0.949, [0.750, 0.562, 0.661]], [0.951, [0.739, 0.565, 0.656]], [0.953, [0.739, 0.565, 0.656]], [0.955, [0.727, 0.568, 0.651]], [0.957, [0.727, 0.568, 0.651]], [0.959, [0.716, 0.570, 0.647]], [0.961, [0.716, 0.570, 0.647]], [0.963, [0.704, 0.573, 0.642]], [0.965, [0.704, 0.573, 0.642]], [0.967, [0.693, 0.576, 0.637]], [0.969, [0.693, 0.576, 0.637]], [0.971, [0.681, 0.579, 0.633]], [0.973, [0.681, 0.579, 0.633]], [0.975, [0.669, 0.582, 0.628]], [0.977, [0.669, 0.582, 0.628]], [0.978, [0.658, 0.585, 0.623]], [0.980, [0.658, 0.585, 0.623]], [0.982, [0.646, 0.588, 0.619]], [0.984, [0.646, 0.588, 0.619]], [0.986, [0.635, 0.591, 0.614]], [0.988, [0.635, 0.591, 0.614]], [0.990, [0.623, 0.594, 0.609]], [0.992, [0.623, 0.594, 0.609]], [0.994, [0.612, 0.597, 0.605]], [0.996, [0.612, 0.597, 0.605]], [0.998, [0.600, 0.600, 0.600]], [1.000, [0.600, 0.600, 0.600]]];
+var Set2 = [[0.000, [0.400, 0.761, 0.647]], [0.002, [0.400, 0.761, 0.647]], [0.004, [0.416, 0.755, 0.640]], [0.006, [0.416, 0.755, 0.640]], [0.008, [0.432, 0.749, 0.633]], [0.010, [0.432, 0.749, 0.633]], [0.012, [0.448, 0.744, 0.625]], [0.014, [0.448, 0.744, 0.625]], [0.016, [0.465, 0.738, 0.618]], [0.018, [0.465, 0.738, 0.618]], [0.020, [0.481, 0.732, 0.611]], [0.022, [0.481, 0.732, 0.611]], [0.023, [0.497, 0.727, 0.604]], [0.025, [0.497, 0.727, 0.604]], [0.027, [0.513, 0.721, 0.597]], [0.029, [0.513, 0.721, 0.597]], [0.031, [0.529, 0.715, 0.589]], [0.033, [0.529, 0.715, 0.589]], [0.035, [0.545, 0.709, 0.582]], [0.037, [0.545, 0.709, 0.582]], [0.039, [0.561, 0.704, 0.575]], [0.041, [0.561, 0.704, 0.575]], [0.043, [0.578, 0.698, 0.568]], [0.045, [0.578, 0.698, 0.568]], [0.047, [0.594, 0.692, 0.561]], [0.049, [0.594, 0.692, 0.561]], [0.051, [0.610, 0.687, 0.553]], [0.053, [0.610, 0.687, 0.553]], [0.055, [0.626, 0.681, 0.546]], [0.057, [0.626, 0.681, 0.546]], [0.059, [0.642, 0.675, 0.539]], [0.061, [0.642, 0.675, 0.539]], [0.063, [0.658, 0.669, 0.532]], [0.065, [0.658, 0.669, 0.532]], [0.067, [0.675, 0.664, 0.524]], [0.068, [0.675, 0.664, 0.524]], [0.070, [0.691, 0.658, 0.517]], [0.072, [0.691, 0.658, 0.517]], [0.074, [0.707, 0.652, 0.510]], [0.076, [0.707, 0.652, 0.510]], [0.078, [0.723, 0.647, 0.503]], [0.080, [0.723, 0.647, 0.503]], [0.082, [0.739, 0.641, 0.496]], [0.084, [0.739, 0.641, 0.496]], [0.086, [0.755, 0.635, 0.488]], [0.088, [0.755, 0.635, 0.488]], [0.090, [0.771, 0.630, 0.481]], [0.092, [0.771, 0.630, 0.481]], [0.094, [0.788, 0.624, 0.474]], [0.096, [0.788, 0.624, 0.474]], [0.098, [0.804, 0.618, 0.467]], [0.100, [0.804, 0.618, 0.467]], [0.102, [0.820, 0.612, 0.460]], [0.104, [0.820, 0.612, 0.460]], [0.106, [0.836, 0.607, 0.452]], [0.108, [0.836, 0.607, 0.452]], [0.110, [0.852, 0.601, 0.445]], [0.112, [0.852, 0.601, 0.445]], [0.114, [0.868, 0.595, 0.438]], [0.115, [0.868, 0.595, 0.438]], [0.117, [0.884, 0.590, 0.431]], [0.119, [0.884, 0.590, 0.431]], [0.121, [0.901, 0.584, 0.423]], [0.123, [0.901, 0.584, 0.423]], [0.125, [0.917, 0.578, 0.416]], [0.127, [0.917, 0.578, 0.416]], [0.129, [0.933, 0.573, 0.409]], [0.131, [0.933, 0.573, 0.409]], [0.133, [0.949, 0.567, 0.402]], [0.135, [0.949, 0.567, 0.402]], [0.137, [0.965, 0.561, 0.395]], [0.139, [0.965, 0.561, 0.395]], [0.141, [0.981, 0.555, 0.387]], [0.143, [0.981, 0.555, 0.387]], [0.145, [0.981, 0.554, 0.391]], [0.147, [0.981, 0.554, 0.391]], [0.149, [0.969, 0.556, 0.402]], [0.151, [0.969, 0.556, 0.402]], [0.153, [0.958, 0.558, 0.413]], [0.155, [0.958, 0.558, 0.413]], [0.157, [0.946, 0.560, 0.425]], [0.159, [0.946, 0.560, 0.425]], [0.160, [0.934, 0.562, 0.436]], [0.162, [0.934, 0.562, 0.436]], [0.164, [0.922, 0.564, 0.447]], [0.166, [0.922, 0.564, 0.447]], [0.168, [0.910, 0.566, 0.459]], [0.170, [0.910, 0.566, 0.459]], [0.172, [0.898, 0.568, 0.470]], [0.174, [0.898, 0.568, 0.470]], [0.176, [0.886, 0.570, 0.481]], [0.178, [0.886, 0.570, 0.481]], [0.180, [0.874, 0.573, 0.493]], [0.182, [0.874, 0.573, 0.493]], [0.184, [0.862, 0.575, 0.504]], [0.186, [0.862, 0.575, 0.504]], [0.188, [0.850, 0.577, 0.515]], [0.190, [0.850, 0.577, 0.515]], [0.192, [0.838, 0.579, 0.526]], [0.194, [0.838, 0.579, 0.526]], [0.196, [0.826, 0.581, 0.538]], [0.198, [0.826, 0.581, 0.538]], [0.200, [0.814, 0.583, 0.549]], [0.202, [0.814, 0.583, 0.549]], [0.204, [0.802, 0.585, 0.560]], [0.205, [0.802, 0.585, 0.560]], [0.207, [0.790, 0.587, 0.572]], [0.209, [0.790, 0.587, 0.572]], [0.211, [0.778, 0.589, 0.583]], [0.213, [0.778, 0.589, 0.583]], [0.215, [0.766, 0.591, 0.594]], [0.217, [0.766, 0.591, 0.594]], [0.219, [0.754, 0.593, 0.606]], [0.221, [0.754, 0.593, 0.606]], [0.223, [0.742, 0.595, 0.617]], [0.225, [0.742, 0.595, 0.617]], [0.227, [0.730, 0.597, 0.628]], [0.229, [0.730, 0.597, 0.628]], [0.231, [0.719, 0.599, 0.639]], [0.233, [0.719, 0.599, 0.639]], [0.235, [0.707, 0.601, 0.651]], [0.237, [0.707, 0.601, 0.651]], [0.239, [0.695, 0.603, 0.662]], [0.241, [0.695, 0.603, 0.662]], [0.243, [0.683, 0.605, 0.673]], [0.245, [0.683, 0.605, 0.673]], [0.247, [0.671, 0.607, 0.685]], [0.249, [0.671, 0.607, 0.685]], [0.250, [0.659, 0.609, 0.696]], [0.252, [0.659, 0.609, 0.696]], [0.254, [0.647, 0.611, 0.707]], [0.256, [0.647, 0.611, 0.707]], [0.258, [0.635, 0.613, 0.719]], [0.260, [0.635, 0.613, 0.719]], [0.262, [0.623, 0.615, 0.730]], [0.264, [0.623, 0.615, 0.730]], [0.266, [0.611, 0.618, 0.741]], [0.268, [0.611, 0.618, 0.741]], [0.270, [0.599, 0.620, 0.752]], [0.272, [0.599, 0.620, 0.752]], [0.274, [0.587, 0.622, 0.764]], [0.276, [0.587, 0.622, 0.764]], [0.278, [0.575, 0.624, 0.775]], [0.280, [0.575, 0.624, 0.775]], [0.282, [0.563, 0.626, 0.786]], [0.284, [0.563, 0.626, 0.786]], [0.286, [0.554, 0.627, 0.796]], [0.288, [0.554, 0.627, 0.796]], [0.290, [0.564, 0.625, 0.795]], [0.292, [0.564, 0.625, 0.795]], [0.294, [0.574, 0.622, 0.794]], [0.295, [0.574, 0.622, 0.794]], [0.297, [0.583, 0.620, 0.793]], [0.299, [0.583, 0.620, 0.793]], [0.301, [0.593, 0.618, 0.793]], [0.303, [0.593, 0.618, 0.793]], [0.305, [0.603, 0.615, 0.792]], [0.307, [0.603, 0.615, 0.792]], [0.309, [0.612, 0.613, 0.791]], [0.311, [0.612, 0.613, 0.791]], [0.313, [0.622, 0.611, 0.790]], [0.315, [0.622, 0.611, 0.790]], [0.317, [0.632, 0.608, 0.789]], [0.319, [0.632, 0.608, 0.789]], [0.321, [0.642, 0.606, 0.788]], [0.323, [0.642, 0.606, 0.788]], [0.325, [0.651, 0.603, 0.787]], [0.327, [0.651, 0.603, 0.787]], [0.329, [0.661, 0.601, 0.786]], [0.331, [0.661, 0.601, 0.786]], [0.333, [0.671, 0.599, 0.786]], [0.335, [0.671, 0.599, 0.786]], [0.337, [0.680, 0.596, 0.785]], [0.339, [0.680, 0.596, 0.785]], [0.341, [0.690, 0.594, 0.784]], [0.342, [0.690, 0.594, 0.784]], [0.344, [0.700, 0.592, 0.783]], [0.346, [0.700, 0.592, 0.783]], [0.348, [0.709, 0.589, 0.782]], [0.350, [0.709, 0.589, 0.782]], [0.352, [0.719, 0.587, 0.781]], [0.354, [0.719, 0.587, 0.781]], [0.356, [0.729, 0.584, 0.780]], [0.358, [0.729, 0.584, 0.780]], [0.360, [0.738, 0.582, 0.780]], [0.362, [0.738, 0.582, 0.780]], [0.364, [0.748, 0.580, 0.779]], [0.366, [0.748, 0.580, 0.779]], [0.368, [0.758, 0.577, 0.778]], [0.370, [0.758, 0.577, 0.778]], [0.372, [0.767, 0.575, 0.777]], [0.374, [0.767, 0.575, 0.777]], [0.376, [0.777, 0.573, 0.776]], [0.378, [0.777, 0.573, 0.776]], [0.380, [0.787, 0.570, 0.775]], [0.382, [0.787, 0.570, 0.775]], [0.384, [0.797, 0.568, 0.774]], [0.386, [0.797, 0.568, 0.774]], [0.387, [0.806, 0.566, 0.774]], [0.389, [0.806, 0.566, 0.774]], [0.391, [0.816, 0.563, 0.773]], [0.393, [0.816, 0.563, 0.773]], [0.395, [0.826, 0.561, 0.772]], [0.397, [0.826, 0.561, 0.772]], [0.399, [0.835, 0.558, 0.771]], [0.401, [0.835, 0.558, 0.771]], [0.403, [0.845, 0.556, 0.770]], [0.405, [0.845, 0.556, 0.770]], [0.407, [0.855, 0.554, 0.769]], [0.409, [0.855, 0.554, 0.769]], [0.411, [0.864, 0.551, 0.768]], [0.413, [0.864, 0.551, 0.768]], [0.415, [0.874, 0.549, 0.768]], [0.417, [0.874, 0.549, 0.768]], [0.419, [0.884, 0.547, 0.767]], [0.421, [0.884, 0.547, 0.767]], [0.423, [0.893, 0.544, 0.766]], [0.425, [0.893, 0.544, 0.766]], [0.427, [0.903, 0.542, 0.765]], [0.429, [0.903, 0.542, 0.765]], [0.431, [0.901, 0.547, 0.756]], [0.432, [0.901, 0.547, 0.756]], [0.434, [0.894, 0.556, 0.744]], [0.436, [0.894, 0.556, 0.744]], [0.438, [0.887, 0.564, 0.732]], [0.440, [0.887, 0.564, 0.732]], [0.442, [0.880, 0.572, 0.720]], [0.444, [0.880, 0.572, 0.720]], [0.446, [0.873, 0.581, 0.708]], [0.448, [0.873, 0.581, 0.708]], [0.450, [0.866, 0.589, 0.696]], [0.452, [0.866, 0.589, 0.696]], [0.454, [0.859, 0.598, 0.684]], [0.456, [0.859, 0.598, 0.684]], [0.458, [0.852, 0.606, 0.673]], [0.460, [0.852, 0.606, 0.673]], [0.462, [0.845, 0.614, 0.661]], [0.464, [0.845, 0.614, 0.661]], [0.466, [0.838, 0.623, 0.649]], [0.468, [0.838, 0.623, 0.649]], [0.470, [0.831, 0.631, 0.637]], [0.472, [0.831, 0.631, 0.637]], [0.474, [0.824, 0.640, 0.625]], [0.476, [0.824, 0.640, 0.625]], [0.477, [0.817, 0.648, 0.613]], [0.479, [0.817, 0.648, 0.613]], [0.481, [0.810, 0.656, 0.601]], [0.483, [0.810, 0.656, 0.601]], [0.485, [0.803, 0.665, 0.589]], [0.487, [0.803, 0.665, 0.589]], [0.489, [0.796, 0.673, 0.577]], [0.491, [0.796, 0.673, 0.577]], [0.493, [0.789, 0.682, 0.565]], [0.495, [0.789, 0.682, 0.565]], [0.497, [0.782, 0.690, 0.553]], [0.499, [0.782, 0.690, 0.553]], [0.501, [0.775, 0.698, 0.541]], [0.503, [0.775, 0.698, 0.541]], [0.505, [0.768, 0.707, 0.529]], [0.507, [0.768, 0.707, 0.529]], [0.509, [0.761, 0.715, 0.517]], [0.511, [0.761, 0.715, 0.517]], [0.513, [0.754, 0.724, 0.505]], [0.515, [0.754, 0.724, 0.505]], [0.517, [0.747, 0.732, 0.493]], [0.519, [0.747, 0.732, 0.493]], [0.521, [0.740, 0.740, 0.481]], [0.523, [0.740, 0.740, 0.481]], [0.524, [0.733, 0.749, 0.469]], [0.526, [0.733, 0.749, 0.469]], [0.528, [0.726, 0.757, 0.457]], [0.530, [0.726, 0.757, 0.457]], [0.532, [0.719, 0.765, 0.445]], [0.534, [0.719, 0.765, 0.445]], [0.536, [0.712, 0.774, 0.434]], [0.538, [0.712, 0.774, 0.434]], [0.540, [0.705, 0.782, 0.422]], [0.542, [0.705, 0.782, 0.422]], [0.544, [0.698, 0.791, 0.410]], [0.546, [0.698, 0.791, 0.410]], [0.548, [0.691, 0.799, 0.398]], [0.550, [0.691, 0.799, 0.398]], [0.552, [0.684, 0.807, 0.386]], [0.554, [0.684, 0.807, 0.386]], [0.556, [0.677, 0.816, 0.374]], [0.558, [0.677, 0.816, 0.374]], [0.560, [0.670, 0.824, 0.362]], [0.562, [0.670, 0.824, 0.362]], [0.564, [0.663, 0.833, 0.350]], [0.566, [0.663, 0.833, 0.350]], [0.568, [0.656, 0.841, 0.338]], [0.569, [0.656, 0.841, 0.338]], [0.571, [0.654, 0.847, 0.328]], [0.573, [0.654, 0.847, 0.328]], [0.575, [0.663, 0.847, 0.324]], [0.577, [0.663, 0.847, 0.324]], [0.579, [0.673, 0.847, 0.320]], [0.581, [0.673, 0.847, 0.320]], [0.583, [0.682, 0.847, 0.316]], [0.585, [0.682, 0.847, 0.316]], [0.587, [0.692, 0.848, 0.312]], [0.589, [0.692, 0.848, 0.312]], [0.591, [0.702, 0.848, 0.308]], [0.593, [0.702, 0.848, 0.308]], [0.595, [0.711, 0.848, 0.304]], [0.597, [0.711, 0.848, 0.304]], [0.599, [0.721, 0.848, 0.300]], [0.601, [0.721, 0.848, 0.300]], [0.603, [0.730, 0.848, 0.296]], [0.605, [0.730, 0.848, 0.296]], [0.607, [0.740, 0.848, 0.292]], [0.609, [0.740, 0.848, 0.292]], [0.611, [0.750, 0.848, 0.288]], [0.613, [0.750, 0.848, 0.288]], [0.614, [0.759, 0.848, 0.284]], [0.616, [0.759, 0.848, 0.284]], [0.618, [0.769, 0.848, 0.280]], [0.620, [0.769, 0.848, 0.280]], [0.622, [0.778, 0.848, 0.276]], [0.624, [0.778, 0.848, 0.276]], [0.626, [0.788, 0.849, 0.273]], [0.628, [0.788, 0.849, 0.273]], [0.630, [0.797, 0.849, 0.269]], [0.632, [0.797, 0.849, 0.269]], [0.634, [0.807, 0.849, 0.265]], [0.636, [0.807, 0.849, 0.265]], [0.638, [0.817, 0.849, 0.261]], [0.640, [0.817, 0.849, 0.261]], [0.642, [0.826, 0.849, 0.257]], [0.644, [0.826, 0.849, 0.257]], [0.646, [0.836, 0.849, 0.253]], [0.648, [0.836, 0.849, 0.253]], [0.650, [0.845, 0.849, 0.249]], [0.652, [0.845, 0.849, 0.249]], [0.654, [0.855, 0.849, 0.245]], [0.656, [0.855, 0.849, 0.245]], [0.658, [0.864, 0.849, 0.241]], [0.659, [0.864, 0.849, 0.241]], [0.661, [0.874, 0.850, 0.237]], [0.663, [0.874, 0.850, 0.237]], [0.665, [0.884, 0.850, 0.233]], [0.667, [0.884, 0.850, 0.233]], [0.669, [0.893, 0.850, 0.229]], [0.671, [0.893, 0.850, 0.229]], [0.673, [0.903, 0.850, 0.225]], [0.675, [0.903, 0.850, 0.225]], [0.677, [0.912, 0.850, 0.221]], [0.679, [0.912, 0.850, 0.221]], [0.681, [0.922, 0.850, 0.217]], [0.683, [0.922, 0.850, 0.217]], [0.685, [0.932, 0.850, 0.213]], [0.687, [0.932, 0.850, 0.213]], [0.689, [0.941, 0.850, 0.209]], [0.691, [0.941, 0.850, 0.209]], [0.693, [0.951, 0.850, 0.205]], [0.695, [0.951, 0.850, 0.205]], [0.697, [0.960, 0.851, 0.201]], [0.699, [0.960, 0.851, 0.201]], [0.701, [0.970, 0.851, 0.197]], [0.703, [0.970, 0.851, 0.197]], [0.705, [0.979, 0.851, 0.193]], [0.706, [0.979, 0.851, 0.193]], [0.708, [0.989, 0.851, 0.189]], [0.710, [0.989, 0.851, 0.189]], [0.712, [0.999, 0.851, 0.185]], [0.714, [0.999, 0.851, 0.185]], [0.716, [0.998, 0.849, 0.194]], [0.718, [0.998, 0.849, 0.194]], [0.720, [0.995, 0.847, 0.205]], [0.722, [0.995, 0.847, 0.205]], [0.724, [0.992, 0.845, 0.215]], [0.726, [0.992, 0.845, 0.215]], [0.728, [0.989, 0.842, 0.226]], [0.730, [0.989, 0.842, 0.226]], [0.732, [0.986, 0.840, 0.237]], [0.734, [0.986, 0.840, 0.237]], [0.736, [0.984, 0.838, 0.248]], [0.738, [0.984, 0.838, 0.248]], [0.740, [0.981, 0.835, 0.259]], [0.742, [0.981, 0.835, 0.259]], [0.744, [0.978, 0.833, 0.270]], [0.746, [0.978, 0.833, 0.270]], [0.748, [0.975, 0.831, 0.281]], [0.750, [0.975, 0.831, 0.281]], [0.751, [0.972, 0.829, 0.291]], [0.753, [0.972, 0.829, 0.291]], [0.755, [0.970, 0.826, 0.302]], [0.757, [0.970, 0.826, 0.302]], [0.759, [0.967, 0.824, 0.313]], [0.761, [0.967, 0.824, 0.313]], [0.763, [0.964, 0.822, 0.324]], [0.765, [0.964, 0.822, 0.324]], [0.767, [0.961, 0.820, 0.335]], [0.769, [0.961, 0.820, 0.335]], [0.771, [0.958, 0.817, 0.346]], [0.773, [0.958, 0.817, 0.346]], [0.775, [0.956, 0.815, 0.357]], [0.777, [0.956, 0.815, 0.357]], [0.779, [0.953, 0.813, 0.368]], [0.781, [0.953, 0.813, 0.368]], [0.783, [0.950, 0.811, 0.378]], [0.785, [0.950, 0.811, 0.378]], [0.787, [0.947, 0.808, 0.389]], [0.789, [0.947, 0.808, 0.389]], [0.791, [0.944, 0.806, 0.400]], [0.793, [0.944, 0.806, 0.400]], [0.795, [0.942, 0.804, 0.411]], [0.796, [0.942, 0.804, 0.411]], [0.798, [0.939, 0.802, 0.422]], [0.800, [0.939, 0.802, 0.422]], [0.802, [0.936, 0.799, 0.433]], [0.804, [0.936, 0.799, 0.433]], [0.806, [0.933, 0.797, 0.444]], [0.808, [0.933, 0.797, 0.444]], [0.810, [0.930, 0.795, 0.455]], [0.812, [0.930, 0.795, 0.455]], [0.814, [0.928, 0.793, 0.465]], [0.816, [0.928, 0.793, 0.465]], [0.818, [0.925, 0.790, 0.476]], [0.820, [0.925, 0.790, 0.476]], [0.822, [0.922, 0.788, 0.487]], [0.824, [0.922, 0.788, 0.487]], [0.826, [0.919, 0.786, 0.498]], [0.828, [0.919, 0.786, 0.498]], [0.830, [0.916, 0.783, 0.509]], [0.832, [0.916, 0.783, 0.509]], [0.834, [0.914, 0.781, 0.520]], [0.836, [0.914, 0.781, 0.520]], [0.838, [0.911, 0.779, 0.531]], [0.840, [0.911, 0.779, 0.531]], [0.841, [0.908, 0.777, 0.542]], [0.843, [0.908, 0.777, 0.542]], [0.845, [0.905, 0.774, 0.552]], [0.847, [0.905, 0.774, 0.552]], [0.849, [0.902, 0.772, 0.563]], [0.851, [0.902, 0.772, 0.563]], [0.853, [0.900, 0.770, 0.574]], [0.855, [0.900, 0.770, 0.574]], [0.857, [0.896, 0.768, 0.582]], [0.859, [0.896, 0.768, 0.582]], [0.861, [0.890, 0.766, 0.585]], [0.863, [0.890, 0.766, 0.585]], [0.865, [0.885, 0.764, 0.588]], [0.867, [0.885, 0.764, 0.588]], [0.869, [0.880, 0.762, 0.592]], [0.871, [0.880, 0.762, 0.592]], [0.873, [0.874, 0.761, 0.595]], [0.875, [0.874, 0.761, 0.595]], [0.877, [0.869, 0.759, 0.599]], [0.879, [0.869, 0.759, 0.599]], [0.881, [0.863, 0.757, 0.602]], [0.883, [0.863, 0.757, 0.602]], [0.885, [0.858, 0.755, 0.605]], [0.886, [0.858, 0.755, 0.605]], [0.888, [0.853, 0.753, 0.609]], [0.890, [0.853, 0.753, 0.609]], [0.892, [0.847, 0.751, 0.612]], [0.894, [0.847, 0.751, 0.612]], [0.896, [0.842, 0.750, 0.615]], [0.898, [0.842, 0.750, 0.615]], [0.900, [0.837, 0.748, 0.619]], [0.902, [0.837, 0.748, 0.619]], [0.904, [0.831, 0.746, 0.622]], [0.906, [0.831, 0.746, 0.622]], [0.908, [0.826, 0.744, 0.625]], [0.910, [0.826, 0.744, 0.625]], [0.912, [0.820, 0.742, 0.629]], [0.914, [0.820, 0.742, 0.629]], [0.916, [0.815, 0.740, 0.632]], [0.918, [0.815, 0.740, 0.632]], [0.920, [0.810, 0.739, 0.635]], [0.922, [0.810, 0.739, 0.635]], [0.924, [0.804, 0.737, 0.639]], [0.926, [0.804, 0.737, 0.639]], [0.928, [0.799, 0.735, 0.642]], [0.930, [0.799, 0.735, 0.642]], [0.932, [0.793, 0.733, 0.645]], [0.933, [0.793, 0.733, 0.645]], [0.935, [0.788, 0.731, 0.649]], [0.937, [0.788, 0.731, 0.649]], [0.939, [0.783, 0.729, 0.652]], [0.941, [0.783, 0.729, 0.652]], [0.943, [0.777, 0.728, 0.655]], [0.945, [0.777, 0.728, 0.655]], [0.947, [0.772, 0.726, 0.659]], [0.949, [0.772, 0.726, 0.659]], [0.951, [0.767, 0.724, 0.662]], [0.953, [0.767, 0.724, 0.662]], [0.955, [0.761, 0.722, 0.665]], [0.957, [0.761, 0.722, 0.665]], [0.959, [0.756, 0.720, 0.669]], [0.961, [0.756, 0.720, 0.669]], [0.963, [0.750, 0.718, 0.672]], [0.965, [0.750, 0.718, 0.672]], [0.967, [0.745, 0.717, 0.675]], [0.969, [0.745, 0.717, 0.675]], [0.971, [0.740, 0.715, 0.679]], [0.973, [0.740, 0.715, 0.679]], [0.975, [0.734, 0.713, 0.682]], [0.977, [0.734, 0.713, 0.682]], [0.978, [0.729, 0.711, 0.685]], [0.980, [0.729, 0.711, 0.685]], [0.982, [0.723, 0.709, 0.689]], [0.984, [0.723, 0.709, 0.689]], [0.986, [0.718, 0.707, 0.692]], [0.988, [0.718, 0.707, 0.692]], [0.990, [0.713, 0.706, 0.695]], [0.992, [0.713, 0.706, 0.695]], [0.994, [0.707, 0.704, 0.699]], [0.996, [0.707, 0.704, 0.699]], [0.998, [0.702, 0.702, 0.702]], [1.000, [0.702, 0.702, 0.702]]];
+var Set3 = [[0.000, [0.553, 0.827, 0.780]], [0.002, [0.553, 0.827, 0.780]], [0.004, [0.572, 0.835, 0.777]], [0.006, [0.572, 0.835, 0.777]], [0.008, [0.592, 0.842, 0.774]], [0.010, [0.592, 0.842, 0.774]], [0.012, [0.611, 0.850, 0.770]], [0.014, [0.611, 0.850, 0.770]], [0.016, [0.630, 0.857, 0.767]], [0.018, [0.630, 0.857, 0.767]], [0.020, [0.649, 0.865, 0.763]], [0.022, [0.649, 0.865, 0.763]], [0.023, [0.669, 0.872, 0.760]], [0.025, [0.669, 0.872, 0.760]], [0.027, [0.688, 0.880, 0.757]], [0.029, [0.688, 0.880, 0.757]], [0.031, [0.707, 0.887, 0.753]], [0.033, [0.707, 0.887, 0.753]], [0.035, [0.727, 0.894, 0.750]], [0.037, [0.727, 0.894, 0.750]], [0.039, [0.746, 0.902, 0.747]], [0.041, [0.746, 0.902, 0.747]], [0.043, [0.765, 0.909, 0.743]], [0.045, [0.765, 0.909, 0.743]], [0.047, [0.784, 0.917, 0.740]], [0.049, [0.784, 0.917, 0.740]], [0.051, [0.804, 0.924, 0.736]], [0.053, [0.804, 0.924, 0.736]], [0.055, [0.823, 0.932, 0.733]], [0.057, [0.823, 0.932, 0.733]], [0.059, [0.842, 0.939, 0.730]], [0.061, [0.842, 0.939, 0.730]], [0.063, [0.861, 0.947, 0.726]], [0.065, [0.861, 0.947, 0.726]], [0.067, [0.881, 0.954, 0.723]], [0.068, [0.881, 0.954, 0.723]], [0.070, [0.900, 0.961, 0.719]], [0.072, [0.900, 0.961, 0.719]], [0.074, [0.919, 0.969, 0.716]], [0.076, [0.919, 0.969, 0.716]], [0.078, [0.939, 0.976, 0.713]], [0.080, [0.939, 0.976, 0.713]], [0.082, [0.958, 0.984, 0.709]], [0.084, [0.958, 0.984, 0.709]], [0.086, [0.977, 0.991, 0.706]], [0.088, [0.977, 0.991, 0.706]], [0.090, [0.996, 0.999, 0.703]], [0.092, [0.996, 0.999, 0.703]], [0.094, [0.991, 0.990, 0.707]], [0.096, [0.991, 0.990, 0.707]], [0.098, [0.980, 0.979, 0.714]], [0.100, [0.980, 0.979, 0.714]], [0.102, [0.969, 0.967, 0.721]], [0.104, [0.969, 0.967, 0.721]], [0.106, [0.958, 0.955, 0.727]], [0.108, [0.958, 0.955, 0.727]], [0.110, [0.947, 0.944, 0.734]], [0.112, [0.947, 0.944, 0.734]], [0.114, [0.936, 0.932, 0.740]], [0.115, [0.936, 0.932, 0.740]], [0.117, [0.925, 0.920, 0.747]], [0.119, [0.925, 0.920, 0.747]], [0.121, [0.914, 0.909, 0.754]], [0.123, [0.914, 0.909, 0.754]], [0.125, [0.903, 0.897, 0.760]], [0.127, [0.903, 0.897, 0.760]], [0.129, [0.892, 0.885, 0.767]], [0.131, [0.892, 0.885, 0.767]], [0.133, [0.881, 0.874, 0.773]], [0.135, [0.881, 0.874, 0.773]], [0.137, [0.870, 0.862, 0.780]], [0.139, [0.870, 0.862, 0.780]], [0.141, [0.859, 0.850, 0.787]], [0.143, [0.859, 0.850, 0.787]], [0.145, [0.848, 0.839, 0.793]], [0.147, [0.848, 0.839, 0.793]], [0.149, [0.837, 0.827, 0.800]], [0.151, [0.837, 0.827, 0.800]], [0.153, [0.826, 0.815, 0.806]], [0.155, [0.826, 0.815, 0.806]], [0.157, [0.815, 0.804, 0.813]], [0.159, [0.815, 0.804, 0.813]], [0.160, [0.804, 0.792, 0.820]], [0.162, [0.804, 0.792, 0.820]], [0.164, [0.793, 0.780, 0.826]], [0.166, [0.793, 0.780, 0.826]], [0.168, [0.782, 0.769, 0.833]], [0.170, [0.782, 0.769, 0.833]], [0.172, [0.771, 0.757, 0.839]], [0.174, [0.771, 0.757, 0.839]], [0.176, [0.760, 0.745, 0.846]], [0.178, [0.760, 0.745, 0.846]], [0.180, [0.749, 0.734, 0.853]], [0.182, [0.749, 0.734, 0.853]], [0.184, [0.752, 0.723, 0.844]], [0.186, [0.752, 0.723, 0.844]], [0.188, [0.762, 0.713, 0.826]], [0.190, [0.762, 0.713, 0.826]], [0.192, [0.772, 0.704, 0.809]], [0.194, [0.772, 0.704, 0.809]], [0.196, [0.783, 0.694, 0.791]], [0.198, [0.783, 0.694, 0.791]], [0.200, [0.793, 0.684, 0.773]], [0.202, [0.793, 0.684, 0.773]], [0.204, [0.803, 0.674, 0.756]], [0.205, [0.803, 0.674, 0.756]], [0.207, [0.814, 0.664, 0.738]], [0.209, [0.814, 0.664, 0.738]], [0.211, [0.824, 0.654, 0.721]], [0.213, [0.824, 0.654, 0.721]], [0.215, [0.834, 0.645, 0.703]], [0.217, [0.834, 0.645, 0.703]], [0.219, [0.845, 0.635, 0.685]], [0.221, [0.845, 0.635, 0.685]], [0.223, [0.855, 0.625, 0.668]], [0.225, [0.855, 0.625, 0.668]], [0.227, [0.865, 0.615, 0.650]], [0.229, [0.865, 0.615, 0.650]], [0.231, [0.875, 0.605, 0.633]], [0.233, [0.875, 0.605, 0.633]], [0.235, [0.886, 0.596, 0.615]], [0.237, [0.886, 0.596, 0.615]], [0.239, [0.896, 0.586, 0.597]], [0.241, [0.896, 0.586, 0.597]], [0.243, [0.906, 0.576, 0.580]], [0.245, [0.906, 0.576, 0.580]], [0.247, [0.917, 0.566, 0.562]], [0.249, [0.917, 0.566, 0.562]], [0.250, [0.927, 0.556, 0.545]], [0.252, [0.927, 0.556, 0.545]], [0.254, [0.937, 0.547, 0.527]], [0.256, [0.937, 0.547, 0.527]], [0.258, [0.948, 0.537, 0.509]], [0.260, [0.948, 0.537, 0.509]], [0.262, [0.958, 0.527, 0.492]], [0.264, [0.958, 0.527, 0.492]], [0.266, [0.968, 0.517, 0.474]], [0.268, [0.968, 0.517, 0.474]], [0.270, [0.979, 0.507, 0.457]], [0.272, [0.979, 0.507, 0.457]], [0.274, [0.975, 0.506, 0.455]], [0.276, [0.975, 0.506, 0.455]], [0.278, [0.954, 0.514, 0.471]], [0.280, [0.954, 0.514, 0.471]], [0.282, [0.933, 0.522, 0.487]], [0.284, [0.933, 0.522, 0.487]], [0.286, [0.912, 0.531, 0.504]], [0.288, [0.912, 0.531, 0.504]], [0.290, [0.892, 0.539, 0.520]], [0.292, [0.892, 0.539, 0.520]], [0.294, [0.871, 0.547, 0.537]], [0.295, [0.871, 0.547, 0.537]], [0.297, [0.850, 0.555, 0.553]], [0.299, [0.850, 0.555, 0.553]], [0.301, [0.829, 0.564, 0.569]], [0.303, [0.829, 0.564, 0.569]], [0.305, [0.808, 0.572, 0.586]], [0.307, [0.808, 0.572, 0.586]], [0.309, [0.788, 0.580, 0.602]], [0.311, [0.788, 0.580, 0.602]], [0.313, [0.767, 0.589, 0.619]], [0.315, [0.767, 0.589, 0.619]], [0.317, [0.746, 0.597, 0.635]], [0.319, [0.746, 0.597, 0.635]], [0.321, [0.725, 0.605, 0.651]], [0.323, [0.725, 0.605, 0.651]], [0.325, [0.704, 0.613, 0.668]], [0.327, [0.704, 0.613, 0.668]], [0.329, [0.684, 0.622, 0.684]], [0.331, [0.684, 0.622, 0.684]], [0.333, [0.663, 0.630, 0.701]], [0.335, [0.663, 0.630, 0.701]], [0.337, [0.642, 0.638, 0.717]], [0.339, [0.642, 0.638, 0.717]], [0.341, [0.621, 0.647, 0.733]], [0.342, [0.621, 0.647, 0.733]], [0.344, [0.600, 0.655, 0.750]], [0.346, [0.600, 0.655, 0.750]], [0.348, [0.580, 0.663, 0.766]], [0.350, [0.580, 0.663, 0.766]], [0.352, [0.559, 0.672, 0.783]], [0.354, [0.559, 0.672, 0.783]], [0.356, [0.538, 0.680, 0.799]], [0.358, [0.538, 0.680, 0.799]], [0.360, [0.517, 0.688, 0.816]], [0.362, [0.517, 0.688, 0.816]], [0.364, [0.508, 0.694, 0.822]], [0.366, [0.508, 0.694, 0.822]], [0.368, [0.529, 0.695, 0.803]], [0.370, [0.529, 0.695, 0.803]], [0.372, [0.550, 0.695, 0.784]], [0.374, [0.550, 0.695, 0.784]], [0.376, [0.571, 0.696, 0.765]], [0.378, [0.571, 0.696, 0.765]], [0.380, [0.592, 0.696, 0.746]], [0.382, [0.592, 0.696, 0.746]], [0.384, [0.613, 0.697, 0.727]], [0.386, [0.613, 0.697, 0.727]], [0.387, [0.635, 0.697, 0.708]], [0.389, [0.635, 0.697, 0.708]], [0.391, [0.656, 0.698, 0.688]], [0.393, [0.656, 0.698, 0.688]], [0.395, [0.677, 0.698, 0.669]], [0.397, [0.677, 0.698, 0.669]], [0.399, [0.698, 0.699, 0.650]], [0.401, [0.698, 0.699, 0.650]], [0.403, [0.719, 0.699, 0.631]], [0.405, [0.719, 0.699, 0.631]], [0.407, [0.740, 0.700, 0.612]], [0.409, [0.740, 0.700, 0.612]], [0.411, [0.761, 0.700, 0.593]], [0.413, [0.761, 0.700, 0.593]], [0.415, [0.783, 0.701, 0.574]], [0.417, [0.783, 0.701, 0.574]], [0.419, [0.804, 0.701, 0.555]], [0.421, [0.804, 0.701, 0.555]], [0.423, [0.825, 0.702, 0.536]], [0.425, [0.825, 0.702, 0.536]], [0.427, [0.846, 0.702, 0.516]], [0.429, [0.846, 0.702, 0.516]], [0.431, [0.867, 0.703, 0.497]], [0.432, [0.867, 0.703, 0.497]], [0.434, [0.888, 0.703, 0.478]], [0.436, [0.888, 0.703, 0.478]], [0.438, [0.909, 0.704, 0.459]], [0.440, [0.909, 0.704, 0.459]], [0.442, [0.931, 0.704, 0.440]], [0.444, [0.931, 0.704, 0.440]], [0.446, [0.952, 0.705, 0.421]], [0.448, [0.952, 0.705, 0.421]], [0.450, [0.973, 0.705, 0.402]], [0.452, [0.973, 0.705, 0.402]], [0.454, [0.991, 0.707, 0.384]], [0.456, [0.991, 0.707, 0.384]], [0.458, [0.979, 0.714, 0.386]], [0.460, [0.979, 0.714, 0.386]], [0.462, [0.966, 0.721, 0.387]], [0.464, [0.966, 0.721, 0.387]], [0.466, [0.953, 0.728, 0.388]], [0.468, [0.953, 0.728, 0.388]], [0.470, [0.941, 0.735, 0.389]], [0.472, [0.941, 0.735, 0.389]], [0.474, [0.928, 0.742, 0.390]], [0.476, [0.928, 0.742, 0.390]], [0.477, [0.916, 0.749, 0.392]], [0.479, [0.916, 0.749, 0.392]], [0.481, [0.903, 0.756, 0.393]], [0.483, [0.903, 0.756, 0.393]], [0.485, [0.891, 0.763, 0.394]], [0.487, [0.891, 0.763, 0.394]], [0.489, [0.878, 0.770, 0.395]], [0.491, [0.878, 0.770, 0.395]], [0.493, [0.866, 0.778, 0.396]], [0.495, [0.866, 0.778, 0.396]], [0.497, [0.853, 0.785, 0.397]], [0.499, [0.853, 0.785, 0.397]], [0.501, [0.841, 0.792, 0.399]], [0.503, [0.841, 0.792, 0.399]], [0.505, [0.828, 0.799, 0.400]], [0.507, [0.828, 0.799, 0.400]], [0.509, [0.816, 0.806, 0.401]], [0.511, [0.816, 0.806, 0.401]], [0.513, [0.803, 0.813, 0.402]], [0.515, [0.803, 0.813, 0.402]], [0.517, [0.791, 0.820, 0.403]], [0.519, [0.791, 0.820, 0.403]], [0.521, [0.778, 0.827, 0.405]], [0.523, [0.778, 0.827, 0.405]], [0.524, [0.766, 0.834, 0.406]], [0.526, [0.766, 0.834, 0.406]], [0.528, [0.753, 0.842, 0.407]], [0.530, [0.753, 0.842, 0.407]], [0.532, [0.741, 0.849, 0.408]], [0.534, [0.741, 0.849, 0.408]], [0.536, [0.728, 0.856, 0.409]], [0.538, [0.728, 0.856, 0.409]], [0.540, [0.716, 0.863, 0.410]], [0.542, [0.716, 0.863, 0.410]], [0.544, [0.703, 0.870, 0.412]], [0.546, [0.703, 0.870, 0.412]], [0.548, [0.713, 0.868, 0.431]], [0.550, [0.713, 0.868, 0.431]], [0.552, [0.726, 0.865, 0.452]], [0.554, [0.726, 0.865, 0.452]], [0.556, [0.738, 0.862, 0.473]], [0.558, [0.738, 0.862, 0.473]], [0.560, [0.750, 0.859, 0.494]], [0.562, [0.750, 0.859, 0.494]], [0.564, [0.763, 0.856, 0.515]], [0.566, [0.763, 0.856, 0.515]], [0.568, [0.775, 0.854, 0.536]], [0.569, [0.775, 0.854, 0.536]], [0.571, [0.787, 0.851, 0.557]], [0.573, [0.787, 0.851, 0.557]], [0.575, [0.800, 0.848, 0.578]], [0.577, [0.800, 0.848, 0.578]], [0.579, [0.812, 0.845, 0.599]], [0.581, [0.812, 0.845, 0.599]], [0.583, [0.824, 0.842, 0.620]], [0.585, [0.824, 0.842, 0.620]], [0.587, [0.837, 0.839, 0.641]], [0.589, [0.837, 0.839, 0.641]], [0.591, [0.849, 0.836, 0.662]], [0.593, [0.849, 0.836, 0.662]], [0.595, [0.861, 0.833, 0.683]], [0.597, [0.861, 0.833, 0.683]], [0.599, [0.874, 0.831, 0.704]], [0.601, [0.874, 0.831, 0.704]], [0.603, [0.886, 0.828, 0.725]], [0.605, [0.886, 0.828, 0.725]], [0.607, [0.898, 0.825, 0.745]], [0.609, [0.898, 0.825, 0.745]], [0.611, [0.911, 0.822, 0.766]], [0.613, [0.911, 0.822, 0.766]], [0.614, [0.923, 0.819, 0.787]], [0.616, [0.923, 0.819, 0.787]], [0.618, [0.935, 0.816, 0.808]], [0.620, [0.935, 0.816, 0.808]], [0.622, [0.948, 0.813, 0.829]], [0.624, [0.948, 0.813, 0.829]], [0.626, [0.960, 0.810, 0.850]], [0.628, [0.960, 0.810, 0.850]], [0.630, [0.973, 0.808, 0.871]], [0.632, [0.973, 0.808, 0.871]], [0.634, [0.985, 0.805, 0.892]], [0.636, [0.985, 0.805, 0.892]], [0.638, [0.984, 0.805, 0.897]], [0.640, [0.984, 0.805, 0.897]], [0.642, [0.978, 0.807, 0.895]], [0.644, [0.978, 0.807, 0.895]], [0.646, [0.972, 0.809, 0.893]], [0.648, [0.972, 0.809, 0.893]], [0.650, [0.966, 0.811, 0.890]], [0.652, [0.966, 0.811, 0.890]], [0.654, [0.960, 0.814, 0.888]], [0.656, [0.960, 0.814, 0.888]], [0.658, [0.954, 0.816, 0.886]], [0.659, [0.954, 0.816, 0.886]], [0.661, [0.948, 0.818, 0.884]], [0.663, [0.948, 0.818, 0.884]], [0.665, [0.942, 0.820, 0.882]], [0.667, [0.942, 0.820, 0.882]], [0.669, [0.937, 0.822, 0.880]], [0.671, [0.937, 0.822, 0.880]], [0.673, [0.931, 0.824, 0.878]], [0.675, [0.931, 0.824, 0.878]], [0.677, [0.925, 0.826, 0.876]], [0.679, [0.925, 0.826, 0.876]], [0.681, [0.919, 0.828, 0.874]], [0.683, [0.919, 0.828, 0.874]], [0.685, [0.913, 0.830, 0.872]], [0.687, [0.913, 0.830, 0.872]], [0.689, [0.907, 0.832, 0.870]], [0.691, [0.907, 0.832, 0.870]], [0.693, [0.901, 0.834, 0.868]], [0.695, [0.901, 0.834, 0.868]], [0.697, [0.895, 0.836, 0.866]], [0.699, [0.895, 0.836, 0.866]], [0.701, [0.889, 0.838, 0.864]], [0.703, [0.889, 0.838, 0.864]], [0.705, [0.883, 0.840, 0.862]], [0.706, [0.883, 0.840, 0.862]], [0.708, [0.877, 0.842, 0.860]], [0.710, [0.877, 0.842, 0.860]], [0.712, [0.871, 0.844, 0.858]], [0.714, [0.871, 0.844, 0.858]], [0.716, [0.866, 0.846, 0.856]], [0.718, [0.866, 0.846, 0.856]], [0.720, [0.860, 0.848, 0.854]], [0.722, [0.860, 0.848, 0.854]], [0.724, [0.854, 0.850, 0.852]], [0.726, [0.854, 0.850, 0.852]], [0.728, [0.848, 0.843, 0.848]], [0.730, [0.848, 0.843, 0.848]], [0.732, [0.843, 0.828, 0.844]], [0.734, [0.843, 0.828, 0.844]], [0.736, [0.838, 0.813, 0.839]], [0.738, [0.838, 0.813, 0.839]], [0.740, [0.834, 0.798, 0.834]], [0.742, [0.834, 0.798, 0.834]], [0.744, [0.829, 0.783, 0.829]], [0.746, [0.829, 0.783, 0.829]], [0.748, [0.824, 0.767, 0.825]], [0.750, [0.824, 0.767, 0.825]], [0.751, [0.819, 0.752, 0.820]], [0.753, [0.819, 0.752, 0.820]], [0.755, [0.814, 0.737, 0.815]], [0.757, [0.814, 0.737, 0.815]], [0.759, [0.809, 0.722, 0.811]], [0.761, [0.809, 0.722, 0.811]], [0.763, [0.804, 0.707, 0.806]], [0.765, [0.804, 0.707, 0.806]], [0.767, [0.799, 0.692, 0.801]], [0.769, [0.799, 0.692, 0.801]], [0.771, [0.794, 0.677, 0.796]], [0.773, [0.794, 0.677, 0.796]], [0.775, [0.789, 0.662, 0.792]], [0.777, [0.789, 0.662, 0.792]], [0.779, [0.785, 0.647, 0.787]], [0.781, [0.785, 0.647, 0.787]], [0.783, [0.780, 0.632, 0.782]], [0.785, [0.780, 0.632, 0.782]], [0.787, [0.775, 0.617, 0.777]], [0.789, [0.775, 0.617, 0.777]], [0.791, [0.770, 0.602, 0.773]], [0.793, [0.770, 0.602, 0.773]], [0.795, [0.765, 0.587, 0.768]], [0.796, [0.765, 0.587, 0.768]], [0.798, [0.760, 0.572, 0.763]], [0.800, [0.760, 0.572, 0.763]], [0.802, [0.755, 0.557, 0.758]], [0.804, [0.755, 0.557, 0.758]], [0.806, [0.750, 0.542, 0.754]], [0.808, [0.750, 0.542, 0.754]], [0.810, [0.745, 0.527, 0.749]], [0.812, [0.745, 0.527, 0.749]], [0.814, [0.740, 0.512, 0.744]], [0.816, [0.740, 0.512, 0.744]], [0.818, [0.738, 0.509, 0.742]], [0.820, [0.738, 0.509, 0.742]], [0.822, [0.741, 0.527, 0.743]], [0.824, [0.741, 0.527, 0.743]], [0.826, [0.744, 0.545, 0.744]], [0.828, [0.744, 0.545, 0.744]], [0.830, [0.746, 0.563, 0.746]], [0.832, [0.746, 0.563, 0.746]], [0.834, [0.749, 0.581, 0.747]], [0.836, [0.749, 0.581, 0.747]], [0.838, [0.752, 0.599, 0.748]], [0.840, [0.752, 0.599, 0.748]], [0.841, [0.754, 0.617, 0.750]], [0.843, [0.754, 0.617, 0.750]], [0.845, [0.757, 0.635, 0.751]], [0.847, [0.757, 0.635, 0.751]], [0.849, [0.760, 0.653, 0.752]], [0.851, [0.760, 0.653, 0.752]], [0.853, [0.763, 0.671, 0.754]], [0.855, [0.763, 0.671, 0.754]], [0.857, [0.765, 0.690, 0.755]], [0.859, [0.765, 0.690, 0.755]], [0.861, [0.768, 0.708, 0.757]], [0.863, [0.768, 0.708, 0.757]], [0.865, [0.771, 0.726, 0.758]], [0.867, [0.771, 0.726, 0.758]], [0.869, [0.773, 0.744, 0.759]], [0.871, [0.773, 0.744, 0.759]], [0.873, [0.776, 0.762, 0.761]], [0.875, [0.776, 0.762, 0.761]], [0.877, [0.779, 0.780, 0.762]], [0.879, [0.779, 0.780, 0.762]], [0.881, [0.782, 0.798, 0.763]], [0.883, [0.782, 0.798, 0.763]], [0.885, [0.784, 0.816, 0.765]], [0.886, [0.784, 0.816, 0.765]], [0.888, [0.787, 0.834, 0.766]], [0.890, [0.787, 0.834, 0.766]], [0.892, [0.790, 0.852, 0.767]], [0.894, [0.790, 0.852, 0.767]], [0.896, [0.792, 0.871, 0.769]], [0.898, [0.792, 0.871, 0.769]], [0.900, [0.795, 0.889, 0.770]], [0.902, [0.795, 0.889, 0.770]], [0.904, [0.798, 0.907, 0.771]], [0.906, [0.798, 0.907, 0.771]], [0.908, [0.802, 0.922, 0.770]], [0.910, [0.802, 0.922, 0.770]], [0.912, [0.810, 0.922, 0.755]], [0.914, [0.810, 0.922, 0.755]], [0.916, [0.819, 0.922, 0.741]], [0.918, [0.819, 0.922, 0.741]], [0.920, [0.827, 0.923, 0.726]], [0.922, [0.827, 0.923, 0.726]], [0.924, [0.836, 0.923, 0.712]], [0.926, [0.836, 0.923, 0.712]], [0.928, [0.845, 0.923, 0.697]], [0.930, [0.845, 0.923, 0.697]], [0.932, [0.853, 0.924, 0.683]], [0.933, [0.853, 0.924, 0.683]], [0.935, [0.862, 0.924, 0.668]], [0.937, [0.862, 0.924, 0.668]], [0.939, [0.871, 0.924, 0.654]], [0.941, [0.871, 0.924, 0.654]], [0.943, [0.879, 0.925, 0.639]], [0.945, [0.879, 0.925, 0.639]], [0.947, [0.888, 0.925, 0.624]], [0.949, [0.888, 0.925, 0.624]], [0.951, [0.896, 0.925, 0.610]], [0.953, [0.896, 0.925, 0.610]], [0.955, [0.905, 0.926, 0.595]], [0.957, [0.905, 0.926, 0.595]], [0.959, [0.914, 0.926, 0.581]], [0.961, [0.914, 0.926, 0.581]], [0.963, [0.922, 0.926, 0.566]], [0.965, [0.922, 0.926, 0.566]], [0.967, [0.931, 0.927, 0.552]], [0.969, [0.931, 0.927, 0.552]], [0.971, [0.940, 0.927, 0.537]], [0.973, [0.940, 0.927, 0.537]], [0.975, [0.948, 0.927, 0.523]], [0.977, [0.948, 0.927, 0.523]], [0.978, [0.957, 0.928, 0.508]], [0.980, [0.957, 0.928, 0.508]], [0.982, [0.965, 0.928, 0.493]], [0.984, [0.965, 0.928, 0.493]], [0.986, [0.974, 0.928, 0.479]], [0.988, [0.974, 0.928, 0.479]], [0.990, [0.983, 0.929, 0.464]], [0.992, [0.983, 0.929, 0.464]], [0.994, [0.991, 0.929, 0.450]], [0.996, [0.991, 0.929, 0.450]], [0.998, [1.000, 0.929, 0.435]], [1.000, [1.000, 0.929, 0.435]]];
+
+// Sequential
+var Blues = [[0.000, [0.969, 0.984, 1.000]], [0.002, [0.969, 0.984, 1.000]], [0.004, [0.966, 0.982, 0.999]], [0.006, [0.966, 0.982, 0.999]], [0.008, [0.962, 0.980, 0.998]], [0.010, [0.962, 0.980, 0.998]], [0.012, [0.959, 0.978, 0.997]], [0.014, [0.959, 0.978, 0.997]], [0.016, [0.956, 0.976, 0.996]], [0.018, [0.956, 0.976, 0.996]], [0.020, [0.953, 0.974, 0.995]], [0.022, [0.953, 0.974, 0.995]], [0.023, [0.950, 0.973, 0.994]], [0.025, [0.950, 0.973, 0.994]], [0.027, [0.947, 0.971, 0.993]], [0.029, [0.947, 0.971, 0.993]], [0.031, [0.944, 0.969, 0.992]], [0.033, [0.944, 0.969, 0.992]], [0.035, [0.941, 0.967, 0.991]], [0.037, [0.941, 0.967, 0.991]], [0.039, [0.938, 0.965, 0.990]], [0.041, [0.938, 0.965, 0.990]], [0.043, [0.935, 0.963, 0.989]], [0.045, [0.935, 0.963, 0.989]], [0.047, [0.932, 0.961, 0.988]], [0.049, [0.932, 0.961, 0.988]], [0.051, [0.929, 0.959, 0.987]], [0.053, [0.929, 0.959, 0.987]], [0.055, [0.926, 0.957, 0.986]], [0.057, [0.926, 0.957, 0.986]], [0.059, [0.922, 0.955, 0.985]], [0.061, [0.922, 0.955, 0.985]], [0.063, [0.919, 0.953, 0.984]], [0.065, [0.919, 0.953, 0.984]], [0.067, [0.916, 0.951, 0.983]], [0.068, [0.916, 0.951, 0.983]], [0.070, [0.913, 0.949, 0.982]], [0.072, [0.913, 0.949, 0.982]], [0.074, [0.910, 0.947, 0.981]], [0.076, [0.910, 0.947, 0.981]], [0.078, [0.907, 0.945, 0.980]], [0.080, [0.907, 0.945, 0.980]], [0.082, [0.904, 0.943, 0.979]], [0.084, [0.904, 0.943, 0.979]], [0.086, [0.901, 0.941, 0.978]], [0.088, [0.901, 0.941, 0.978]], [0.090, [0.898, 0.939, 0.977]], [0.092, [0.898, 0.939, 0.977]], [0.094, [0.895, 0.937, 0.976]], [0.096, [0.895, 0.937, 0.976]], [0.098, [0.892, 0.935, 0.975]], [0.100, [0.892, 0.935, 0.975]], [0.102, [0.889, 0.933, 0.974]], [0.104, [0.889, 0.933, 0.974]], [0.106, [0.886, 0.931, 0.973]], [0.108, [0.886, 0.931, 0.973]], [0.110, [0.883, 0.929, 0.972]], [0.112, [0.883, 0.929, 0.972]], [0.114, [0.879, 0.927, 0.971]], [0.115, [0.879, 0.927, 0.971]], [0.117, [0.876, 0.925, 0.970]], [0.119, [0.876, 0.925, 0.970]], [0.121, [0.873, 0.923, 0.969]], [0.123, [0.873, 0.923, 0.969]], [0.125, [0.870, 0.921, 0.969]], [0.127, [0.870, 0.921, 0.969]], [0.129, [0.867, 0.919, 0.968]], [0.131, [0.867, 0.919, 0.968]], [0.133, [0.864, 0.917, 0.967]], [0.135, [0.864, 0.917, 0.967]], [0.137, [0.861, 0.915, 0.966]], [0.139, [0.861, 0.915, 0.966]], [0.141, [0.858, 0.913, 0.965]], [0.143, [0.858, 0.913, 0.965]], [0.145, [0.855, 0.911, 0.964]], [0.147, [0.855, 0.911, 0.964]], [0.149, [0.853, 0.910, 0.963]], [0.151, [0.853, 0.910, 0.963]], [0.153, [0.850, 0.908, 0.962]], [0.155, [0.850, 0.908, 0.962]], [0.157, [0.847, 0.906, 0.961]], [0.159, [0.847, 0.906, 0.961]], [0.160, [0.844, 0.904, 0.960]], [0.162, [0.844, 0.904, 0.960]], [0.164, [0.841, 0.902, 0.959]], [0.166, [0.841, 0.902, 0.959]], [0.168, [0.838, 0.900, 0.958]], [0.170, [0.838, 0.900, 0.958]], [0.172, [0.835, 0.898, 0.957]], [0.174, [0.835, 0.898, 0.957]], [0.176, [0.832, 0.896, 0.956]], [0.178, [0.832, 0.896, 0.956]], [0.180, [0.829, 0.894, 0.955]], [0.182, [0.829, 0.894, 0.955]], [0.184, [0.826, 0.892, 0.954]], [0.186, [0.826, 0.892, 0.954]], [0.188, [0.823, 0.890, 0.953]], [0.190, [0.823, 0.890, 0.953]], [0.192, [0.820, 0.888, 0.952]], [0.194, [0.820, 0.888, 0.952]], [0.196, [0.817, 0.886, 0.951]], [0.198, [0.817, 0.886, 0.951]], [0.200, [0.814, 0.884, 0.950]], [0.202, [0.814, 0.884, 0.950]], [0.204, [0.811, 0.882, 0.949]], [0.205, [0.811, 0.882, 0.949]], [0.207, [0.808, 0.880, 0.948]], [0.209, [0.808, 0.880, 0.948]], [0.211, [0.805, 0.878, 0.947]], [0.213, [0.805, 0.878, 0.947]], [0.215, [0.802, 0.876, 0.946]], [0.217, [0.802, 0.876, 0.946]], [0.219, [0.799, 0.874, 0.945]], [0.221, [0.799, 0.874, 0.945]], [0.223, [0.796, 0.872, 0.944]], [0.225, [0.796, 0.872, 0.944]], [0.227, [0.793, 0.870, 0.943]], [0.229, [0.793, 0.870, 0.943]], [0.231, [0.790, 0.868, 0.942]], [0.233, [0.790, 0.868, 0.942]], [0.235, [0.788, 0.866, 0.941]], [0.237, [0.788, 0.866, 0.941]], [0.239, [0.785, 0.864, 0.940]], [0.241, [0.785, 0.864, 0.940]], [0.243, [0.782, 0.862, 0.939]], [0.245, [0.782, 0.862, 0.939]], [0.247, [0.779, 0.860, 0.938]], [0.249, [0.779, 0.860, 0.938]], [0.250, [0.775, 0.858, 0.937]], [0.252, [0.775, 0.858, 0.937]], [0.254, [0.770, 0.856, 0.935]], [0.256, [0.770, 0.856, 0.935]], [0.258, [0.765, 0.854, 0.933]], [0.260, [0.765, 0.854, 0.933]], [0.262, [0.760, 0.852, 0.932]], [0.264, [0.760, 0.852, 0.932]], [0.266, [0.756, 0.850, 0.930]], [0.268, [0.756, 0.850, 0.930]], [0.270, [0.751, 0.848, 0.928]], [0.272, [0.751, 0.848, 0.928]], [0.274, [0.746, 0.846, 0.926]], [0.276, [0.746, 0.846, 0.926]], [0.278, [0.741, 0.844, 0.925]], [0.280, [0.741, 0.844, 0.925]], [0.282, [0.736, 0.842, 0.923]], [0.284, [0.736, 0.842, 0.923]], [0.286, [0.731, 0.839, 0.921]], [0.288, [0.731, 0.839, 0.921]], [0.290, [0.726, 0.837, 0.920]], [0.292, [0.726, 0.837, 0.920]], [0.294, [0.721, 0.835, 0.918]], [0.295, [0.721, 0.835, 0.918]], [0.297, [0.716, 0.833, 0.916]], [0.299, [0.716, 0.833, 0.916]], [0.301, [0.711, 0.831, 0.914]], [0.303, [0.711, 0.831, 0.914]], [0.305, [0.706, 0.829, 0.913]], [0.307, [0.706, 0.829, 0.913]], [0.309, [0.701, 0.827, 0.911]], [0.311, [0.701, 0.827, 0.911]], [0.313, [0.697, 0.825, 0.909]], [0.315, [0.697, 0.825, 0.909]], [0.317, [0.692, 0.823, 0.908]], [0.319, [0.692, 0.823, 0.908]], [0.321, [0.687, 0.821, 0.906]], [0.323, [0.687, 0.821, 0.906]], [0.325, [0.682, 0.819, 0.904]], [0.327, [0.682, 0.819, 0.904]], [0.329, [0.677, 0.816, 0.902]], [0.331, [0.677, 0.816, 0.902]], [0.333, [0.672, 0.814, 0.901]], [0.335, [0.672, 0.814, 0.901]], [0.337, [0.667, 0.812, 0.899]], [0.339, [0.667, 0.812, 0.899]], [0.341, [0.662, 0.810, 0.897]], [0.342, [0.662, 0.810, 0.897]], [0.344, [0.657, 0.808, 0.895]], [0.346, [0.657, 0.808, 0.895]], [0.348, [0.652, 0.806, 0.894]], [0.350, [0.652, 0.806, 0.894]], [0.352, [0.647, 0.804, 0.892]], [0.354, [0.647, 0.804, 0.892]], [0.356, [0.642, 0.802, 0.890]], [0.358, [0.642, 0.802, 0.890]], [0.360, [0.637, 0.800, 0.889]], [0.362, [0.637, 0.800, 0.889]], [0.364, [0.633, 0.798, 0.887]], [0.366, [0.633, 0.798, 0.887]], [0.368, [0.628, 0.796, 0.885]], [0.370, [0.628, 0.796, 0.885]], [0.372, [0.623, 0.793, 0.883]], [0.374, [0.623, 0.793, 0.883]], [0.376, [0.617, 0.791, 0.882]], [0.378, [0.617, 0.791, 0.882]], [0.380, [0.611, 0.787, 0.880]], [0.382, [0.611, 0.787, 0.880]], [0.384, [0.605, 0.784, 0.879]], [0.386, [0.605, 0.784, 0.879]], [0.387, [0.598, 0.781, 0.878]], [0.389, [0.598, 0.781, 0.878]], [0.391, [0.592, 0.777, 0.876]], [0.393, [0.592, 0.777, 0.876]], [0.395, [0.586, 0.774, 0.875]], [0.397, [0.586, 0.774, 0.875]], [0.399, [0.580, 0.770, 0.874]], [0.401, [0.580, 0.770, 0.874]], [0.403, [0.573, 0.767, 0.872]], [0.405, [0.573, 0.767, 0.872]], [0.407, [0.567, 0.763, 0.871]], [0.409, [0.567, 0.763, 0.871]], [0.411, [0.561, 0.760, 0.870]], [0.413, [0.561, 0.760, 0.870]], [0.415, [0.555, 0.756, 0.868]], [0.417, [0.555, 0.756, 0.868]], [0.419, [0.548, 0.753, 0.867]], [0.421, [0.548, 0.753, 0.867]], [0.423, [0.542, 0.750, 0.866]], [0.425, [0.542, 0.750, 0.866]], [0.427, [0.536, 0.746, 0.864]], [0.429, [0.536, 0.746, 0.864]], [0.431, [0.529, 0.743, 0.863]], [0.432, [0.529, 0.743, 0.863]], [0.434, [0.523, 0.739, 0.862]], [0.436, [0.523, 0.739, 0.862]], [0.438, [0.517, 0.736, 0.860]], [0.440, [0.517, 0.736, 0.860]], [0.442, [0.511, 0.732, 0.859]], [0.444, [0.511, 0.732, 0.859]], [0.446, [0.504, 0.729, 0.857]], [0.448, [0.504, 0.729, 0.857]], [0.450, [0.498, 0.725, 0.856]], [0.452, [0.498, 0.725, 0.856]], [0.454, [0.492, 0.722, 0.855]], [0.456, [0.492, 0.722, 0.855]], [0.458, [0.485, 0.719, 0.853]], [0.460, [0.485, 0.719, 0.853]], [0.462, [0.479, 0.715, 0.852]], [0.464, [0.479, 0.715, 0.852]], [0.466, [0.473, 0.712, 0.851]], [0.468, [0.473, 0.712, 0.851]], [0.470, [0.467, 0.708, 0.849]], [0.472, [0.467, 0.708, 0.849]], [0.474, [0.460, 0.705, 0.848]], [0.476, [0.460, 0.705, 0.848]], [0.477, [0.454, 0.701, 0.847]], [0.479, [0.454, 0.701, 0.847]], [0.481, [0.448, 0.698, 0.845]], [0.483, [0.448, 0.698, 0.845]], [0.485, [0.442, 0.694, 0.844]], [0.487, [0.442, 0.694, 0.844]], [0.489, [0.435, 0.691, 0.843]], [0.491, [0.435, 0.691, 0.843]], [0.493, [0.429, 0.688, 0.841]], [0.495, [0.429, 0.688, 0.841]], [0.497, [0.423, 0.684, 0.840]], [0.499, [0.423, 0.684, 0.840]], [0.501, [0.417, 0.681, 0.838]], [0.503, [0.417, 0.681, 0.838]], [0.505, [0.412, 0.677, 0.836]], [0.507, [0.412, 0.677, 0.836]], [0.509, [0.407, 0.674, 0.834]], [0.511, [0.407, 0.674, 0.834]], [0.513, [0.402, 0.670, 0.832]], [0.515, [0.402, 0.670, 0.832]], [0.517, [0.397, 0.667, 0.830]], [0.519, [0.397, 0.667, 0.830]], [0.521, [0.392, 0.663, 0.828]], [0.523, [0.392, 0.663, 0.828]], [0.524, [0.387, 0.660, 0.826]], [0.526, [0.387, 0.660, 0.826]], [0.528, [0.382, 0.657, 0.824]], [0.530, [0.382, 0.657, 0.824]], [0.532, [0.377, 0.653, 0.822]], [0.534, [0.377, 0.653, 0.822]], [0.536, [0.372, 0.650, 0.821]], [0.538, [0.372, 0.650, 0.821]], [0.540, [0.367, 0.646, 0.819]], [0.542, [0.367, 0.646, 0.819]], [0.544, [0.362, 0.643, 0.817]], [0.546, [0.362, 0.643, 0.817]], [0.548, [0.357, 0.639, 0.815]], [0.550, [0.357, 0.639, 0.815]], [0.552, [0.352, 0.636, 0.813]], [0.554, [0.352, 0.636, 0.813]], [0.556, [0.346, 0.632, 0.811]], [0.558, [0.346, 0.632, 0.811]], [0.560, [0.341, 0.629, 0.809]], [0.562, [0.341, 0.629, 0.809]], [0.564, [0.336, 0.626, 0.807]], [0.566, [0.336, 0.626, 0.807]], [0.568, [0.331, 0.622, 0.805]], [0.569, [0.331, 0.622, 0.805]], [0.571, [0.326, 0.619, 0.803]], [0.573, [0.326, 0.619, 0.803]], [0.575, [0.321, 0.615, 0.801]], [0.577, [0.321, 0.615, 0.801]], [0.579, [0.316, 0.612, 0.799]], [0.581, [0.316, 0.612, 0.799]], [0.583, [0.311, 0.608, 0.797]], [0.585, [0.311, 0.608, 0.797]], [0.587, [0.306, 0.605, 0.795]], [0.589, [0.306, 0.605, 0.795]], [0.591, [0.301, 0.601, 0.793]], [0.593, [0.301, 0.601, 0.793]], [0.595, [0.296, 0.598, 0.791]], [0.597, [0.296, 0.598, 0.791]], [0.599, [0.291, 0.595, 0.789]], [0.601, [0.291, 0.595, 0.789]], [0.603, [0.286, 0.591, 0.787]], [0.605, [0.286, 0.591, 0.787]], [0.607, [0.281, 0.588, 0.785]], [0.609, [0.281, 0.588, 0.785]], [0.611, [0.276, 0.584, 0.783]], [0.613, [0.276, 0.584, 0.783]], [0.614, [0.271, 0.581, 0.781]], [0.616, [0.271, 0.581, 0.781]], [0.618, [0.266, 0.577, 0.779]], [0.620, [0.266, 0.577, 0.779]], [0.622, [0.261, 0.574, 0.777]], [0.624, [0.261, 0.574, 0.777]], [0.626, [0.256, 0.570, 0.775]], [0.628, [0.256, 0.570, 0.775]], [0.630, [0.252, 0.566, 0.773]], [0.632, [0.252, 0.566, 0.773]], [0.634, [0.248, 0.562, 0.771]], [0.636, [0.248, 0.562, 0.771]], [0.638, [0.244, 0.558, 0.769]], [0.640, [0.244, 0.558, 0.769]], [0.642, [0.240, 0.554, 0.767]], [0.644, [0.240, 0.554, 0.767]], [0.646, [0.236, 0.550, 0.765]], [0.648, [0.236, 0.550, 0.765]], [0.650, [0.232, 0.546, 0.763]], [0.652, [0.232, 0.546, 0.763]], [0.654, [0.228, 0.542, 0.761]], [0.656, [0.228, 0.542, 0.761]], [0.658, [0.224, 0.538, 0.758]], [0.659, [0.224, 0.538, 0.758]], [0.661, [0.220, 0.533, 0.756]], [0.663, [0.220, 0.533, 0.756]], [0.665, [0.216, 0.529, 0.754]], [0.667, [0.216, 0.529, 0.754]], [0.669, [0.212, 0.525, 0.752]], [0.671, [0.212, 0.525, 0.752]], [0.673, [0.208, 0.521, 0.750]], [0.675, [0.208, 0.521, 0.750]], [0.677, [0.204, 0.517, 0.748]], [0.679, [0.204, 0.517, 0.748]], [0.681, [0.199, 0.513, 0.746]], [0.683, [0.199, 0.513, 0.746]], [0.685, [0.195, 0.509, 0.744]], [0.687, [0.195, 0.509, 0.744]], [0.689, [0.191, 0.505, 0.742]], [0.691, [0.191, 0.505, 0.742]], [0.693, [0.187, 0.501, 0.740]], [0.695, [0.187, 0.501, 0.740]], [0.697, [0.183, 0.497, 0.738]], [0.699, [0.183, 0.497, 0.738]], [0.701, [0.179, 0.493, 0.735]], [0.703, [0.179, 0.493, 0.735]], [0.705, [0.175, 0.489, 0.733]], [0.706, [0.175, 0.489, 0.733]], [0.708, [0.171, 0.485, 0.731]], [0.710, [0.171, 0.485, 0.731]], [0.712, [0.167, 0.481, 0.729]], [0.714, [0.167, 0.481, 0.729]], [0.716, [0.163, 0.477, 0.727]], [0.718, [0.163, 0.477, 0.727]], [0.720, [0.159, 0.473, 0.725]], [0.722, [0.159, 0.473, 0.725]], [0.724, [0.155, 0.469, 0.723]], [0.726, [0.155, 0.469, 0.723]], [0.728, [0.151, 0.464, 0.721]], [0.730, [0.151, 0.464, 0.721]], [0.732, [0.147, 0.460, 0.719]], [0.734, [0.147, 0.460, 0.719]], [0.736, [0.143, 0.456, 0.717]], [0.738, [0.143, 0.456, 0.717]], [0.740, [0.139, 0.452, 0.715]], [0.742, [0.139, 0.452, 0.715]], [0.744, [0.134, 0.448, 0.712]], [0.746, [0.134, 0.448, 0.712]], [0.748, [0.130, 0.444, 0.710]], [0.750, [0.130, 0.444, 0.710]], [0.751, [0.127, 0.440, 0.707]], [0.753, [0.127, 0.440, 0.707]], [0.755, [0.124, 0.436, 0.704]], [0.757, [0.124, 0.436, 0.704]], [0.759, [0.121, 0.432, 0.701]], [0.761, [0.121, 0.432, 0.701]], [0.763, [0.118, 0.428, 0.698]], [0.765, [0.118, 0.428, 0.698]], [0.767, [0.115, 0.424, 0.695]], [0.769, [0.115, 0.424, 0.695]], [0.771, [0.112, 0.420, 0.692]], [0.773, [0.112, 0.420, 0.692]], [0.775, [0.109, 0.417, 0.689]], [0.777, [0.109, 0.417, 0.689]], [0.779, [0.106, 0.413, 0.686]], [0.781, [0.106, 0.413, 0.686]], [0.783, [0.102, 0.409, 0.683]], [0.785, [0.102, 0.409, 0.683]], [0.787, [0.099, 0.405, 0.680]], [0.789, [0.099, 0.405, 0.680]], [0.791, [0.096, 0.401, 0.677]], [0.793, [0.096, 0.401, 0.677]], [0.795, [0.093, 0.397, 0.674]], [0.796, [0.093, 0.397, 0.674]], [0.798, [0.090, 0.393, 0.671]], [0.800, [0.090, 0.393, 0.671]], [0.802, [0.087, 0.389, 0.668]], [0.804, [0.087, 0.389, 0.668]], [0.806, [0.084, 0.385, 0.664]], [0.808, [0.084, 0.385, 0.664]], [0.810, [0.081, 0.381, 0.661]], [0.812, [0.081, 0.381, 0.661]], [0.814, [0.078, 0.377, 0.658]], [0.816, [0.078, 0.377, 0.658]], [0.818, [0.075, 0.373, 0.655]], [0.820, [0.075, 0.373, 0.655]], [0.822, [0.072, 0.369, 0.652]], [0.824, [0.072, 0.369, 0.652]], [0.826, [0.069, 0.365, 0.649]], [0.828, [0.069, 0.365, 0.649]], [0.830, [0.066, 0.361, 0.646]], [0.832, [0.066, 0.361, 0.646]], [0.834, [0.063, 0.358, 0.643]], [0.836, [0.063, 0.358, 0.643]], [0.838, [0.059, 0.354, 0.640]], [0.840, [0.059, 0.354, 0.640]], [0.841, [0.056, 0.350, 0.637]], [0.843, [0.056, 0.350, 0.637]], [0.845, [0.053, 0.346, 0.634]], [0.847, [0.053, 0.346, 0.634]], [0.849, [0.050, 0.342, 0.631]], [0.851, [0.050, 0.342, 0.631]], [0.853, [0.047, 0.338, 0.628]], [0.855, [0.047, 0.338, 0.628]], [0.857, [0.044, 0.334, 0.624]], [0.859, [0.044, 0.334, 0.624]], [0.861, [0.041, 0.330, 0.621]], [0.863, [0.041, 0.330, 0.621]], [0.865, [0.038, 0.326, 0.618]], [0.867, [0.038, 0.326, 0.618]], [0.869, [0.035, 0.322, 0.615]], [0.871, [0.035, 0.322, 0.615]], [0.873, [0.032, 0.318, 0.612]], [0.875, [0.032, 0.318, 0.612]], [0.877, [0.031, 0.314, 0.606]], [0.879, [0.031, 0.314, 0.606]], [0.881, [0.031, 0.310, 0.600]], [0.883, [0.031, 0.310, 0.600]], [0.885, [0.031, 0.306, 0.594]], [0.886, [0.031, 0.306, 0.594]], [0.888, [0.031, 0.302, 0.588]], [0.890, [0.031, 0.302, 0.588]], [0.892, [0.031, 0.298, 0.582]], [0.894, [0.031, 0.298, 0.582]], [0.896, [0.031, 0.294, 0.576]], [0.898, [0.031, 0.294, 0.576]], [0.900, [0.031, 0.290, 0.570]], [0.902, [0.031, 0.290, 0.570]], [0.904, [0.031, 0.286, 0.564]], [0.906, [0.031, 0.286, 0.564]], [0.908, [0.031, 0.282, 0.558]], [0.910, [0.031, 0.282, 0.558]], [0.912, [0.031, 0.278, 0.552]], [0.914, [0.031, 0.278, 0.552]], [0.916, [0.031, 0.273, 0.546]], [0.918, [0.031, 0.273, 0.546]], [0.920, [0.031, 0.269, 0.540]], [0.922, [0.031, 0.269, 0.540]], [0.924, [0.031, 0.265, 0.534]], [0.926, [0.031, 0.265, 0.534]], [0.928, [0.031, 0.261, 0.528]], [0.930, [0.031, 0.261, 0.528]], [0.932, [0.031, 0.257, 0.522]], [0.933, [0.031, 0.257, 0.522]], [0.935, [0.031, 0.253, 0.516]], [0.937, [0.031, 0.253, 0.516]], [0.939, [0.031, 0.249, 0.510]], [0.941, [0.031, 0.249, 0.510]], [0.943, [0.031, 0.245, 0.504]], [0.945, [0.031, 0.245, 0.504]], [0.947, [0.031, 0.241, 0.498]], [0.949, [0.031, 0.241, 0.498]], [0.951, [0.031, 0.237, 0.492]], [0.953, [0.031, 0.237, 0.492]], [0.955, [0.031, 0.233, 0.486]], [0.957, [0.031, 0.233, 0.486]], [0.959, [0.031, 0.229, 0.480]], [0.961, [0.031, 0.229, 0.480]], [0.963, [0.031, 0.225, 0.474]], [0.965, [0.031, 0.225, 0.474]], [0.967, [0.031, 0.221, 0.468]], [0.969, [0.031, 0.221, 0.468]], [0.971, [0.031, 0.217, 0.462]], [0.973, [0.031, 0.217, 0.462]], [0.975, [0.031, 0.213, 0.456]], [0.977, [0.031, 0.213, 0.456]], [0.978, [0.031, 0.209, 0.450]], [0.980, [0.031, 0.209, 0.450]], [0.982, [0.031, 0.204, 0.444]], [0.984, [0.031, 0.204, 0.444]], [0.986, [0.031, 0.200, 0.438]], [0.988, [0.031, 0.200, 0.438]], [0.990, [0.031, 0.196, 0.432]], [0.992, [0.031, 0.196, 0.432]], [0.994, [0.031, 0.192, 0.426]], [0.996, [0.031, 0.192, 0.426]], [0.998, [0.031, 0.188, 0.420]], [1.000, [0.031, 0.188, 0.420]]];
+var BuGn = [[0.000, [0.969, 0.988, 0.992]], [0.002, [0.969, 0.988, 0.992]], [0.004, [0.966, 0.987, 0.992]], [0.006, [0.966, 0.987, 0.992]], [0.008, [0.964, 0.987, 0.991]], [0.010, [0.964, 0.987, 0.991]], [0.012, [0.962, 0.986, 0.991]], [0.014, [0.962, 0.986, 0.991]], [0.016, [0.960, 0.985, 0.990]], [0.018, [0.960, 0.985, 0.990]], [0.020, [0.958, 0.984, 0.990]], [0.022, [0.958, 0.984, 0.990]], [0.023, [0.955, 0.983, 0.989]], [0.025, [0.955, 0.983, 0.989]], [0.027, [0.953, 0.982, 0.989]], [0.029, [0.953, 0.982, 0.989]], [0.031, [0.951, 0.981, 0.988]], [0.033, [0.951, 0.981, 0.988]], [0.035, [0.949, 0.980, 0.988]], [0.037, [0.949, 0.980, 0.988]], [0.039, [0.946, 0.980, 0.987]], [0.041, [0.946, 0.980, 0.987]], [0.043, [0.944, 0.979, 0.987]], [0.045, [0.944, 0.979, 0.987]], [0.047, [0.942, 0.978, 0.986]], [0.049, [0.942, 0.978, 0.986]], [0.051, [0.940, 0.977, 0.986]], [0.053, [0.940, 0.977, 0.986]], [0.055, [0.938, 0.976, 0.985]], [0.057, [0.938, 0.976, 0.985]], [0.059, [0.935, 0.975, 0.985]], [0.061, [0.935, 0.975, 0.985]], [0.063, [0.933, 0.974, 0.984]], [0.065, [0.933, 0.974, 0.984]], [0.067, [0.931, 0.974, 0.984]], [0.068, [0.931, 0.974, 0.984]], [0.070, [0.929, 0.973, 0.983]], [0.072, [0.929, 0.973, 0.983]], [0.074, [0.927, 0.972, 0.983]], [0.076, [0.927, 0.972, 0.983]], [0.078, [0.924, 0.971, 0.982]], [0.080, [0.924, 0.971, 0.982]], [0.082, [0.922, 0.970, 0.982]], [0.084, [0.922, 0.970, 0.982]], [0.086, [0.920, 0.969, 0.981]], [0.088, [0.920, 0.969, 0.981]], [0.090, [0.918, 0.968, 0.981]], [0.092, [0.918, 0.968, 0.981]], [0.094, [0.915, 0.968, 0.980]], [0.096, [0.915, 0.968, 0.980]], [0.098, [0.913, 0.967, 0.980]], [0.100, [0.913, 0.967, 0.980]], [0.102, [0.911, 0.966, 0.979]], [0.104, [0.911, 0.966, 0.979]], [0.106, [0.909, 0.965, 0.979]], [0.108, [0.909, 0.965, 0.979]], [0.110, [0.907, 0.964, 0.978]], [0.112, [0.907, 0.964, 0.978]], [0.114, [0.904, 0.963, 0.978]], [0.115, [0.904, 0.963, 0.978]], [0.117, [0.902, 0.962, 0.977]], [0.119, [0.902, 0.962, 0.977]], [0.121, [0.900, 0.962, 0.977]], [0.123, [0.900, 0.962, 0.977]], [0.125, [0.898, 0.961, 0.976]], [0.127, [0.898, 0.961, 0.976]], [0.129, [0.895, 0.960, 0.974]], [0.131, [0.895, 0.960, 0.974]], [0.133, [0.892, 0.958, 0.972]], [0.135, [0.892, 0.958, 0.972]], [0.137, [0.888, 0.957, 0.969]], [0.139, [0.888, 0.957, 0.969]], [0.141, [0.885, 0.956, 0.967]], [0.143, [0.885, 0.956, 0.967]], [0.145, [0.882, 0.955, 0.964]], [0.147, [0.882, 0.955, 0.964]], [0.149, [0.879, 0.954, 0.962]], [0.151, [0.879, 0.954, 0.962]], [0.153, [0.876, 0.953, 0.960]], [0.155, [0.876, 0.953, 0.960]], [0.157, [0.873, 0.952, 0.957]], [0.159, [0.873, 0.952, 0.957]], [0.160, [0.870, 0.951, 0.955]], [0.162, [0.870, 0.951, 0.955]], [0.164, [0.867, 0.950, 0.953]], [0.166, [0.867, 0.950, 0.953]], [0.168, [0.864, 0.948, 0.950]], [0.170, [0.864, 0.948, 0.950]], [0.172, [0.861, 0.947, 0.948]], [0.174, [0.861, 0.947, 0.948]], [0.176, [0.858, 0.946, 0.946]], [0.178, [0.858, 0.946, 0.946]], [0.180, [0.855, 0.945, 0.943]], [0.182, [0.855, 0.945, 0.943]], [0.184, [0.852, 0.944, 0.941]], [0.186, [0.852, 0.944, 0.941]], [0.188, [0.848, 0.943, 0.939]], [0.190, [0.848, 0.943, 0.939]], [0.192, [0.845, 0.942, 0.936]], [0.194, [0.845, 0.942, 0.936]], [0.196, [0.842, 0.941, 0.934]], [0.198, [0.842, 0.941, 0.934]], [0.200, [0.839, 0.940, 0.932]], [0.202, [0.839, 0.940, 0.932]], [0.204, [0.836, 0.939, 0.929]], [0.205, [0.836, 0.939, 0.929]], [0.207, [0.833, 0.937, 0.927]], [0.209, [0.833, 0.937, 0.927]], [0.211, [0.830, 0.936, 0.925]], [0.213, [0.830, 0.936, 0.925]], [0.215, [0.827, 0.935, 0.922]], [0.217, [0.827, 0.935, 0.922]], [0.219, [0.824, 0.934, 0.920]], [0.221, [0.824, 0.934, 0.920]], [0.223, [0.821, 0.933, 0.918]], [0.225, [0.821, 0.933, 0.918]], [0.227, [0.818, 0.932, 0.915]], [0.229, [0.818, 0.932, 0.915]], [0.231, [0.815, 0.931, 0.913]], [0.233, [0.815, 0.931, 0.913]], [0.235, [0.812, 0.930, 0.911]], [0.237, [0.812, 0.930, 0.911]], [0.239, [0.808, 0.929, 0.908]], [0.241, [0.808, 0.929, 0.908]], [0.243, [0.805, 0.927, 0.906]], [0.245, [0.805, 0.927, 0.906]], [0.247, [0.802, 0.926, 0.904]], [0.249, [0.802, 0.926, 0.904]], [0.250, [0.798, 0.925, 0.901]], [0.252, [0.798, 0.925, 0.901]], [0.254, [0.792, 0.922, 0.898]], [0.256, [0.792, 0.922, 0.898]], [0.258, [0.786, 0.920, 0.894]], [0.260, [0.786, 0.920, 0.894]], [0.262, [0.780, 0.917, 0.890]], [0.264, [0.780, 0.917, 0.890]], [0.266, [0.773, 0.915, 0.887]], [0.268, [0.773, 0.915, 0.887]], [0.270, [0.767, 0.913, 0.883]], [0.272, [0.767, 0.913, 0.883]], [0.274, [0.761, 0.910, 0.880]], [0.276, [0.761, 0.910, 0.880]], [0.278, [0.755, 0.908, 0.876]], [0.280, [0.755, 0.908, 0.876]], [0.282, [0.748, 0.905, 0.873]], [0.284, [0.748, 0.905, 0.873]], [0.286, [0.742, 0.903, 0.869]], [0.288, [0.742, 0.903, 0.869]], [0.290, [0.736, 0.900, 0.865]], [0.292, [0.736, 0.900, 0.865]], [0.294, [0.729, 0.898, 0.862]], [0.295, [0.729, 0.898, 0.862]], [0.297, [0.723, 0.895, 0.858]], [0.299, [0.723, 0.895, 0.858]], [0.301, [0.717, 0.893, 0.855]], [0.303, [0.717, 0.893, 0.855]], [0.305, [0.711, 0.890, 0.851]], [0.307, [0.711, 0.890, 0.851]], [0.309, [0.704, 0.888, 0.848]], [0.311, [0.704, 0.888, 0.848]], [0.313, [0.698, 0.886, 0.844]], [0.315, [0.698, 0.886, 0.844]], [0.317, [0.692, 0.883, 0.840]], [0.319, [0.692, 0.883, 0.840]], [0.321, [0.685, 0.881, 0.837]], [0.323, [0.685, 0.881, 0.837]], [0.325, [0.679, 0.878, 0.833]], [0.327, [0.679, 0.878, 0.833]], [0.329, [0.673, 0.876, 0.830]], [0.331, [0.673, 0.876, 0.830]], [0.333, [0.667, 0.873, 0.826]], [0.335, [0.667, 0.873, 0.826]], [0.337, [0.660, 0.871, 0.823]], [0.339, [0.660, 0.871, 0.823]], [0.341, [0.654, 0.868, 0.819]], [0.342, [0.654, 0.868, 0.819]], [0.344, [0.648, 0.866, 0.815]], [0.346, [0.648, 0.866, 0.815]], [0.348, [0.642, 0.863, 0.812]], [0.350, [0.642, 0.863, 0.812]], [0.352, [0.635, 0.861, 0.808]], [0.354, [0.635, 0.861, 0.808]], [0.356, [0.629, 0.858, 0.805]], [0.358, [0.629, 0.858, 0.805]], [0.360, [0.623, 0.856, 0.801]], [0.362, [0.623, 0.856, 0.801]], [0.364, [0.616, 0.854, 0.798]], [0.366, [0.616, 0.854, 0.798]], [0.368, [0.610, 0.851, 0.794]], [0.370, [0.610, 0.851, 0.794]], [0.372, [0.604, 0.849, 0.790]], [0.374, [0.604, 0.849, 0.790]], [0.376, [0.598, 0.846, 0.787]], [0.378, [0.598, 0.846, 0.787]], [0.380, [0.591, 0.843, 0.782]], [0.382, [0.591, 0.843, 0.782]], [0.384, [0.585, 0.841, 0.777]], [0.386, [0.585, 0.841, 0.777]], [0.387, [0.579, 0.838, 0.773]], [0.389, [0.579, 0.838, 0.773]], [0.391, [0.573, 0.835, 0.768]], [0.393, [0.573, 0.835, 0.768]], [0.395, [0.566, 0.833, 0.764]], [0.397, [0.566, 0.833, 0.764]], [0.399, [0.560, 0.830, 0.759]], [0.401, [0.560, 0.830, 0.759]], [0.403, [0.554, 0.827, 0.755]], [0.405, [0.554, 0.827, 0.755]], [0.407, [0.547, 0.824, 0.750]], [0.409, [0.547, 0.824, 0.750]], [0.411, [0.541, 0.822, 0.746]], [0.413, [0.541, 0.822, 0.746]], [0.415, [0.535, 0.819, 0.741]], [0.417, [0.535, 0.819, 0.741]], [0.419, [0.529, 0.816, 0.736]], [0.421, [0.529, 0.816, 0.736]], [0.423, [0.522, 0.814, 0.732]], [0.425, [0.522, 0.814, 0.732]], [0.427, [0.516, 0.811, 0.727]], [0.429, [0.516, 0.811, 0.727]], [0.431, [0.510, 0.808, 0.723]], [0.432, [0.510, 0.808, 0.723]], [0.434, [0.504, 0.805, 0.718]], [0.436, [0.504, 0.805, 0.718]], [0.438, [0.497, 0.803, 0.714]], [0.440, [0.497, 0.803, 0.714]], [0.442, [0.491, 0.800, 0.709]], [0.444, [0.491, 0.800, 0.709]], [0.446, [0.485, 0.797, 0.705]], [0.448, [0.485, 0.797, 0.705]], [0.450, [0.478, 0.795, 0.700]], [0.452, [0.478, 0.795, 0.700]], [0.454, [0.472, 0.792, 0.695]], [0.456, [0.472, 0.792, 0.695]], [0.458, [0.466, 0.789, 0.691]], [0.460, [0.466, 0.789, 0.691]], [0.462, [0.460, 0.786, 0.686]], [0.464, [0.460, 0.786, 0.686]], [0.466, [0.453, 0.784, 0.682]], [0.468, [0.453, 0.784, 0.682]], [0.470, [0.447, 0.781, 0.677]], [0.472, [0.447, 0.781, 0.677]], [0.474, [0.441, 0.778, 0.673]], [0.476, [0.441, 0.778, 0.673]], [0.477, [0.435, 0.776, 0.668]], [0.479, [0.435, 0.776, 0.668]], [0.481, [0.428, 0.773, 0.664]], [0.483, [0.428, 0.773, 0.664]], [0.485, [0.422, 0.770, 0.659]], [0.487, [0.422, 0.770, 0.659]], [0.489, [0.416, 0.768, 0.655]], [0.491, [0.416, 0.768, 0.655]], [0.493, [0.409, 0.765, 0.650]], [0.495, [0.409, 0.765, 0.650]], [0.497, [0.403, 0.762, 0.645]], [0.499, [0.403, 0.762, 0.645]], [0.501, [0.398, 0.760, 0.640]], [0.503, [0.398, 0.760, 0.640]], [0.505, [0.393, 0.757, 0.635]], [0.507, [0.393, 0.757, 0.635]], [0.509, [0.389, 0.755, 0.629]], [0.511, [0.389, 0.755, 0.629]], [0.513, [0.384, 0.752, 0.623]], [0.515, [0.384, 0.752, 0.623]], [0.517, [0.380, 0.750, 0.618]], [0.519, [0.380, 0.750, 0.618]], [0.521, [0.375, 0.747, 0.612]], [0.523, [0.375, 0.747, 0.612]], [0.524, [0.370, 0.745, 0.606]], [0.526, [0.370, 0.745, 0.606]], [0.528, [0.366, 0.742, 0.601]], [0.530, [0.366, 0.742, 0.601]], [0.532, [0.361, 0.740, 0.595]], [0.534, [0.361, 0.740, 0.595]], [0.536, [0.357, 0.737, 0.589]], [0.538, [0.357, 0.737, 0.589]], [0.540, [0.352, 0.735, 0.584]], [0.542, [0.352, 0.735, 0.584]], [0.544, [0.348, 0.732, 0.578]], [0.546, [0.348, 0.732, 0.578]], [0.548, [0.343, 0.730, 0.572]], [0.550, [0.343, 0.730, 0.572]], [0.552, [0.339, 0.728, 0.567]], [0.554, [0.339, 0.728, 0.567]], [0.556, [0.334, 0.725, 0.561]], [0.558, [0.334, 0.725, 0.561]], [0.560, [0.329, 0.723, 0.555]], [0.562, [0.329, 0.723, 0.555]], [0.564, [0.325, 0.720, 0.550]], [0.566, [0.325, 0.720, 0.550]], [0.568, [0.320, 0.718, 0.544]], [0.569, [0.320, 0.718, 0.544]], [0.571, [0.316, 0.715, 0.538]], [0.573, [0.316, 0.715, 0.538]], [0.575, [0.311, 0.713, 0.533]], [0.577, [0.311, 0.713, 0.533]], [0.579, [0.307, 0.710, 0.527]], [0.581, [0.307, 0.710, 0.527]], [0.583, [0.302, 0.708, 0.521]], [0.585, [0.302, 0.708, 0.521]], [0.587, [0.298, 0.705, 0.516]], [0.589, [0.298, 0.705, 0.516]], [0.591, [0.293, 0.703, 0.510]], [0.593, [0.293, 0.703, 0.510]], [0.595, [0.288, 0.700, 0.504]], [0.597, [0.288, 0.700, 0.504]], [0.599, [0.284, 0.698, 0.499]], [0.601, [0.284, 0.698, 0.499]], [0.603, [0.279, 0.696, 0.493]], [0.605, [0.279, 0.696, 0.493]], [0.607, [0.275, 0.693, 0.488]], [0.609, [0.275, 0.693, 0.488]], [0.611, [0.270, 0.691, 0.482]], [0.613, [0.270, 0.691, 0.482]], [0.614, [0.266, 0.688, 0.476]], [0.616, [0.266, 0.688, 0.476]], [0.618, [0.261, 0.686, 0.471]], [0.620, [0.261, 0.686, 0.471]], [0.622, [0.257, 0.683, 0.465]], [0.624, [0.257, 0.683, 0.465]], [0.626, [0.253, 0.680, 0.459]], [0.628, [0.253, 0.680, 0.459]], [0.630, [0.249, 0.675, 0.453]], [0.632, [0.249, 0.675, 0.453]], [0.634, [0.245, 0.671, 0.447]], [0.636, [0.245, 0.671, 0.447]], [0.638, [0.242, 0.667, 0.441]], [0.640, [0.242, 0.667, 0.441]], [0.642, [0.238, 0.662, 0.435]], [0.644, [0.238, 0.662, 0.435]], [0.646, [0.234, 0.658, 0.429]], [0.648, [0.234, 0.658, 0.429]], [0.650, [0.230, 0.654, 0.423]], [0.652, [0.230, 0.654, 0.423]], [0.654, [0.227, 0.650, 0.417]], [0.656, [0.227, 0.650, 0.417]], [0.658, [0.223, 0.645, 0.411]], [0.659, [0.223, 0.645, 0.411]], [0.661, [0.219, 0.641, 0.405]], [0.663, [0.219, 0.641, 0.405]], [0.665, [0.216, 0.637, 0.399]], [0.667, [0.216, 0.637, 0.399]], [0.669, [0.212, 0.632, 0.393]], [0.671, [0.212, 0.632, 0.393]], [0.673, [0.208, 0.628, 0.387]], [0.675, [0.208, 0.628, 0.387]], [0.677, [0.205, 0.624, 0.381]], [0.679, [0.205, 0.624, 0.381]], [0.681, [0.201, 0.619, 0.375]], [0.683, [0.201, 0.619, 0.375]], [0.685, [0.197, 0.615, 0.369]], [0.687, [0.197, 0.615, 0.369]], [0.689, [0.194, 0.611, 0.363]], [0.691, [0.194, 0.611, 0.363]], [0.693, [0.190, 0.606, 0.356]], [0.695, [0.190, 0.606, 0.356]], [0.697, [0.186, 0.602, 0.350]], [0.699, [0.186, 0.602, 0.350]], [0.701, [0.182, 0.598, 0.344]], [0.703, [0.182, 0.598, 0.344]], [0.705, [0.179, 0.594, 0.338]], [0.706, [0.179, 0.594, 0.338]], [0.708, [0.175, 0.589, 0.332]], [0.710, [0.175, 0.589, 0.332]], [0.712, [0.171, 0.585, 0.326]], [0.714, [0.171, 0.585, 0.326]], [0.716, [0.168, 0.581, 0.320]], [0.718, [0.168, 0.581, 0.320]], [0.720, [0.164, 0.576, 0.314]], [0.722, [0.164, 0.576, 0.314]], [0.724, [0.160, 0.572, 0.308]], [0.726, [0.160, 0.572, 0.308]], [0.728, [0.157, 0.568, 0.302]], [0.730, [0.157, 0.568, 0.302]], [0.732, [0.153, 0.563, 0.296]], [0.734, [0.153, 0.563, 0.296]], [0.736, [0.149, 0.559, 0.290]], [0.738, [0.149, 0.559, 0.290]], [0.740, [0.146, 0.555, 0.284]], [0.742, [0.146, 0.555, 0.284]], [0.744, [0.142, 0.550, 0.278]], [0.746, [0.142, 0.550, 0.278]], [0.748, [0.138, 0.546, 0.272]], [0.750, [0.138, 0.546, 0.272]], [0.751, [0.134, 0.542, 0.268]], [0.753, [0.134, 0.542, 0.268]], [0.755, [0.130, 0.539, 0.265]], [0.757, [0.130, 0.539, 0.265]], [0.759, [0.125, 0.535, 0.262]], [0.761, [0.125, 0.535, 0.262]], [0.763, [0.121, 0.531, 0.259]], [0.765, [0.121, 0.531, 0.259]], [0.767, [0.117, 0.528, 0.256]], [0.769, [0.117, 0.528, 0.256]], [0.771, [0.112, 0.524, 0.253]], [0.773, [0.112, 0.524, 0.253]], [0.775, [0.108, 0.520, 0.250]], [0.777, [0.108, 0.520, 0.250]], [0.779, [0.104, 0.516, 0.247]], [0.781, [0.104, 0.516, 0.247]], [0.783, [0.100, 0.513, 0.244]], [0.785, [0.100, 0.513, 0.244]], [0.787, [0.095, 0.509, 0.241]], [0.789, [0.095, 0.509, 0.241]], [0.791, [0.091, 0.505, 0.238]], [0.793, [0.091, 0.505, 0.238]], [0.795, [0.087, 0.502, 0.234]], [0.796, [0.087, 0.502, 0.234]], [0.798, [0.082, 0.498, 0.231]], [0.800, [0.082, 0.498, 0.231]], [0.802, [0.078, 0.494, 0.228]], [0.804, [0.078, 0.494, 0.228]], [0.806, [0.074, 0.491, 0.225]], [0.808, [0.074, 0.491, 0.225]], [0.810, [0.069, 0.487, 0.222]], [0.812, [0.069, 0.487, 0.222]], [0.814, [0.065, 0.483, 0.219]], [0.816, [0.065, 0.483, 0.219]], [0.818, [0.061, 0.480, 0.216]], [0.820, [0.061, 0.480, 0.216]], [0.822, [0.057, 0.476, 0.213]], [0.824, [0.057, 0.476, 0.213]], [0.826, [0.052, 0.472, 0.210]], [0.828, [0.052, 0.472, 0.210]], [0.830, [0.048, 0.469, 0.207]], [0.832, [0.048, 0.469, 0.207]], [0.834, [0.044, 0.465, 0.204]], [0.836, [0.044, 0.465, 0.204]], [0.838, [0.039, 0.461, 0.201]], [0.840, [0.039, 0.461, 0.201]], [0.841, [0.035, 0.457, 0.198]], [0.843, [0.035, 0.457, 0.198]], [0.845, [0.031, 0.454, 0.194]], [0.847, [0.031, 0.454, 0.194]], [0.849, [0.026, 0.450, 0.191]], [0.851, [0.026, 0.450, 0.191]], [0.853, [0.022, 0.446, 0.188]], [0.855, [0.022, 0.446, 0.188]], [0.857, [0.018, 0.443, 0.185]], [0.859, [0.018, 0.443, 0.185]], [0.861, [0.013, 0.439, 0.182]], [0.863, [0.013, 0.439, 0.182]], [0.865, [0.009, 0.435, 0.179]], [0.867, [0.009, 0.435, 0.179]], [0.869, [0.005, 0.432, 0.176]], [0.871, [0.005, 0.432, 0.176]], [0.873, [0.001, 0.428, 0.173]], [0.875, [0.001, 0.428, 0.173]], [0.877, [0.000, 0.423, 0.171]], [0.879, [0.000, 0.423, 0.171]], [0.881, [0.000, 0.418, 0.169]], [0.883, [0.000, 0.418, 0.169]], [0.885, [0.000, 0.413, 0.167]], [0.886, [0.000, 0.413, 0.167]], [0.888, [0.000, 0.408, 0.164]], [0.890, [0.000, 0.408, 0.164]], [0.892, [0.000, 0.403, 0.162]], [0.894, [0.000, 0.403, 0.162]], [0.896, [0.000, 0.398, 0.160]], [0.898, [0.000, 0.398, 0.160]], [0.900, [0.000, 0.393, 0.158]], [0.902, [0.000, 0.393, 0.158]], [0.904, [0.000, 0.388, 0.156]], [0.906, [0.000, 0.388, 0.156]], [0.908, [0.000, 0.383, 0.154]], [0.910, [0.000, 0.383, 0.154]], [0.912, [0.000, 0.378, 0.152]], [0.914, [0.000, 0.378, 0.152]], [0.916, [0.000, 0.373, 0.150]], [0.918, [0.000, 0.373, 0.150]], [0.920, [0.000, 0.368, 0.148]], [0.922, [0.000, 0.368, 0.148]], [0.924, [0.000, 0.363, 0.146]], [0.926, [0.000, 0.363, 0.146]], [0.928, [0.000, 0.357, 0.144]], [0.930, [0.000, 0.357, 0.144]], [0.932, [0.000, 0.352, 0.141]], [0.933, [0.000, 0.352, 0.141]], [0.935, [0.000, 0.347, 0.139]], [0.937, [0.000, 0.347, 0.139]], [0.939, [0.000, 0.342, 0.137]], [0.941, [0.000, 0.342, 0.137]], [0.943, [0.000, 0.337, 0.135]], [0.945, [0.000, 0.337, 0.135]], [0.947, [0.000, 0.332, 0.133]], [0.949, [0.000, 0.332, 0.133]], [0.951, [0.000, 0.327, 0.131]], [0.953, [0.000, 0.327, 0.131]], [0.955, [0.000, 0.322, 0.129]], [0.957, [0.000, 0.322, 0.129]], [0.959, [0.000, 0.317, 0.127]], [0.961, [0.000, 0.317, 0.127]], [0.963, [0.000, 0.312, 0.125]], [0.965, [0.000, 0.312, 0.125]], [0.967, [0.000, 0.307, 0.123]], [0.969, [0.000, 0.307, 0.123]], [0.971, [0.000, 0.302, 0.121]], [0.973, [0.000, 0.302, 0.121]], [0.975, [0.000, 0.297, 0.118]], [0.977, [0.000, 0.297, 0.118]], [0.978, [0.000, 0.292, 0.116]], [0.980, [0.000, 0.292, 0.116]], [0.982, [0.000, 0.287, 0.114]], [0.984, [0.000, 0.287, 0.114]], [0.986, [0.000, 0.282, 0.112]], [0.988, [0.000, 0.282, 0.112]], [0.990, [0.000, 0.277, 0.110]], [0.992, [0.000, 0.277, 0.110]], [0.994, [0.000, 0.272, 0.108]], [0.996, [0.000, 0.272, 0.108]], [0.998, [0.000, 0.267, 0.106]], [1.000, [0.000, 0.267, 0.106]]];
+var BuPu = [[0.000, [0.969, 0.988, 0.992]], [0.002, [0.969, 0.988, 0.992]], [0.004, [0.966, 0.986, 0.991]], [0.006, [0.966, 0.986, 0.991]], [0.008, [0.963, 0.984, 0.990]], [0.010, [0.963, 0.984, 0.990]], [0.012, [0.960, 0.982, 0.989]], [0.014, [0.960, 0.982, 0.989]], [0.016, [0.957, 0.980, 0.988]], [0.018, [0.957, 0.980, 0.988]], [0.020, [0.954, 0.978, 0.987]], [0.022, [0.954, 0.978, 0.987]], [0.023, [0.952, 0.976, 0.986]], [0.025, [0.952, 0.976, 0.986]], [0.027, [0.949, 0.974, 0.984]], [0.029, [0.949, 0.974, 0.984]], [0.031, [0.946, 0.972, 0.983]], [0.033, [0.946, 0.972, 0.983]], [0.035, [0.943, 0.971, 0.982]], [0.037, [0.943, 0.971, 0.982]], [0.039, [0.940, 0.969, 0.981]], [0.041, [0.940, 0.969, 0.981]], [0.043, [0.938, 0.967, 0.980]], [0.045, [0.938, 0.967, 0.980]], [0.047, [0.935, 0.965, 0.979]], [0.049, [0.935, 0.965, 0.979]], [0.051, [0.932, 0.963, 0.978]], [0.053, [0.932, 0.963, 0.978]], [0.055, [0.929, 0.961, 0.977]], [0.057, [0.929, 0.961, 0.977]], [0.059, [0.926, 0.959, 0.976]], [0.061, [0.926, 0.959, 0.976]], [0.063, [0.923, 0.957, 0.974]], [0.065, [0.923, 0.957, 0.974]], [0.067, [0.921, 0.955, 0.973]], [0.068, [0.921, 0.955, 0.973]], [0.070, [0.918, 0.953, 0.972]], [0.072, [0.918, 0.953, 0.972]], [0.074, [0.915, 0.951, 0.971]], [0.076, [0.915, 0.951, 0.971]], [0.078, [0.912, 0.949, 0.970]], [0.080, [0.912, 0.949, 0.970]], [0.082, [0.909, 0.947, 0.969]], [0.084, [0.909, 0.947, 0.969]], [0.086, [0.906, 0.945, 0.968]], [0.088, [0.906, 0.945, 0.968]], [0.090, [0.904, 0.943, 0.967]], [0.092, [0.904, 0.943, 0.967]], [0.094, [0.901, 0.941, 0.966]], [0.096, [0.901, 0.941, 0.966]], [0.098, [0.898, 0.939, 0.964]], [0.100, [0.898, 0.939, 0.964]], [0.102, [0.895, 0.937, 0.963]], [0.104, [0.895, 0.937, 0.963]], [0.106, [0.892, 0.935, 0.962]], [0.108, [0.892, 0.935, 0.962]], [0.110, [0.889, 0.933, 0.961]], [0.112, [0.889, 0.933, 0.961]], [0.114, [0.887, 0.931, 0.960]], [0.115, [0.887, 0.931, 0.960]], [0.117, [0.884, 0.929, 0.959]], [0.119, [0.884, 0.929, 0.959]], [0.121, [0.881, 0.927, 0.958]], [0.123, [0.881, 0.927, 0.958]], [0.125, [0.878, 0.925, 0.957]], [0.127, [0.878, 0.925, 0.957]], [0.129, [0.874, 0.922, 0.955]], [0.131, [0.874, 0.922, 0.955]], [0.133, [0.870, 0.919, 0.953]], [0.135, [0.870, 0.919, 0.953]], [0.137, [0.866, 0.916, 0.951]], [0.139, [0.866, 0.916, 0.951]], [0.141, [0.862, 0.913, 0.950]], [0.143, [0.862, 0.913, 0.950]], [0.145, [0.858, 0.910, 0.948]], [0.147, [0.858, 0.910, 0.948]], [0.149, [0.854, 0.907, 0.946]], [0.151, [0.854, 0.907, 0.946]], [0.153, [0.850, 0.904, 0.945]], [0.155, [0.850, 0.904, 0.945]], [0.157, [0.845, 0.900, 0.943]], [0.159, [0.845, 0.900, 0.943]], [0.160, [0.841, 0.897, 0.941]], [0.162, [0.841, 0.897, 0.941]], [0.164, [0.837, 0.894, 0.939]], [0.166, [0.837, 0.894, 0.939]], [0.168, [0.833, 0.891, 0.938]], [0.170, [0.833, 0.891, 0.938]], [0.172, [0.829, 0.888, 0.936]], [0.174, [0.829, 0.888, 0.936]], [0.176, [0.825, 0.885, 0.934]], [0.178, [0.825, 0.885, 0.934]], [0.180, [0.821, 0.882, 0.933]], [0.182, [0.821, 0.882, 0.933]], [0.184, [0.817, 0.879, 0.931]], [0.186, [0.817, 0.879, 0.931]], [0.188, [0.813, 0.876, 0.929]], [0.190, [0.813, 0.876, 0.929]], [0.192, [0.809, 0.873, 0.927]], [0.194, [0.809, 0.873, 0.927]], [0.196, [0.805, 0.870, 0.926]], [0.198, [0.805, 0.870, 0.926]], [0.200, [0.801, 0.867, 0.924]], [0.202, [0.801, 0.867, 0.924]], [0.204, [0.797, 0.864, 0.922]], [0.205, [0.797, 0.864, 0.922]], [0.207, [0.793, 0.861, 0.920]], [0.209, [0.793, 0.861, 0.920]], [0.211, [0.789, 0.857, 0.919]], [0.213, [0.789, 0.857, 0.919]], [0.215, [0.785, 0.854, 0.917]], [0.217, [0.785, 0.854, 0.917]], [0.219, [0.780, 0.851, 0.915]], [0.221, [0.780, 0.851, 0.915]], [0.223, [0.776, 0.848, 0.914]], [0.225, [0.776, 0.848, 0.914]], [0.227, [0.772, 0.845, 0.912]], [0.229, [0.772, 0.845, 0.912]], [0.231, [0.768, 0.842, 0.910]], [0.233, [0.768, 0.842, 0.910]], [0.235, [0.764, 0.839, 0.908]], [0.237, [0.764, 0.839, 0.908]], [0.239, [0.760, 0.836, 0.907]], [0.241, [0.760, 0.836, 0.907]], [0.243, [0.756, 0.833, 0.905]], [0.245, [0.756, 0.833, 0.905]], [0.247, [0.752, 0.830, 0.903]], [0.249, [0.752, 0.830, 0.903]], [0.250, [0.748, 0.827, 0.902]], [0.252, [0.748, 0.827, 0.902]], [0.254, [0.744, 0.824, 0.900]], [0.256, [0.744, 0.824, 0.900]], [0.258, [0.740, 0.821, 0.899]], [0.260, [0.740, 0.821, 0.899]], [0.262, [0.736, 0.818, 0.897]], [0.264, [0.736, 0.818, 0.897]], [0.266, [0.732, 0.815, 0.896]], [0.268, [0.732, 0.815, 0.896]], [0.270, [0.728, 0.813, 0.894]], [0.272, [0.728, 0.813, 0.894]], [0.274, [0.724, 0.810, 0.893]], [0.276, [0.724, 0.810, 0.893]], [0.278, [0.720, 0.807, 0.891]], [0.280, [0.720, 0.807, 0.891]], [0.282, [0.716, 0.804, 0.890]], [0.284, [0.716, 0.804, 0.890]], [0.286, [0.711, 0.801, 0.888]], [0.288, [0.711, 0.801, 0.888]], [0.290, [0.707, 0.798, 0.887]], [0.292, [0.707, 0.798, 0.887]], [0.294, [0.703, 0.796, 0.885]], [0.295, [0.703, 0.796, 0.885]], [0.297, [0.699, 0.793, 0.884]], [0.299, [0.699, 0.793, 0.884]], [0.301, [0.695, 0.790, 0.882]], [0.303, [0.695, 0.790, 0.882]], [0.305, [0.691, 0.787, 0.881]], [0.307, [0.691, 0.787, 0.881]], [0.309, [0.687, 0.784, 0.879]], [0.311, [0.687, 0.784, 0.879]], [0.313, [0.683, 0.781, 0.878]], [0.315, [0.683, 0.781, 0.878]], [0.317, [0.679, 0.779, 0.876]], [0.319, [0.679, 0.779, 0.876]], [0.321, [0.675, 0.776, 0.875]], [0.323, [0.675, 0.776, 0.875]], [0.325, [0.671, 0.773, 0.874]], [0.327, [0.671, 0.773, 0.874]], [0.329, [0.667, 0.770, 0.872]], [0.331, [0.667, 0.770, 0.872]], [0.333, [0.663, 0.767, 0.871]], [0.335, [0.663, 0.767, 0.871]], [0.337, [0.659, 0.764, 0.869]], [0.339, [0.659, 0.764, 0.869]], [0.341, [0.655, 0.762, 0.868]], [0.342, [0.655, 0.762, 0.868]], [0.344, [0.651, 0.759, 0.866]], [0.346, [0.651, 0.759, 0.866]], [0.348, [0.647, 0.756, 0.865]], [0.350, [0.647, 0.756, 0.865]], [0.352, [0.642, 0.753, 0.863]], [0.354, [0.642, 0.753, 0.863]], [0.356, [0.638, 0.750, 0.862]], [0.358, [0.638, 0.750, 0.862]], [0.360, [0.634, 0.748, 0.860]], [0.362, [0.634, 0.748, 0.860]], [0.364, [0.630, 0.745, 0.859]], [0.366, [0.630, 0.745, 0.859]], [0.368, [0.626, 0.742, 0.857]], [0.370, [0.626, 0.742, 0.857]], [0.372, [0.622, 0.739, 0.856]], [0.374, [0.622, 0.739, 0.856]], [0.376, [0.619, 0.736, 0.854]], [0.378, [0.619, 0.736, 0.854]], [0.380, [0.617, 0.731, 0.852]], [0.382, [0.617, 0.731, 0.852]], [0.384, [0.614, 0.726, 0.849]], [0.386, [0.614, 0.726, 0.849]], [0.387, [0.612, 0.721, 0.847]], [0.389, [0.612, 0.721, 0.847]], [0.391, [0.610, 0.717, 0.844]], [0.393, [0.610, 0.717, 0.844]], [0.395, [0.608, 0.712, 0.842]], [0.397, [0.608, 0.712, 0.842]], [0.399, [0.605, 0.707, 0.839]], [0.401, [0.605, 0.707, 0.839]], [0.403, [0.603, 0.703, 0.837]], [0.405, [0.603, 0.703, 0.837]], [0.407, [0.601, 0.698, 0.834]], [0.409, [0.601, 0.698, 0.834]], [0.411, [0.599, 0.693, 0.832]], [0.413, [0.599, 0.693, 0.832]], [0.415, [0.597, 0.689, 0.829]], [0.417, [0.597, 0.689, 0.829]], [0.419, [0.594, 0.684, 0.827]], [0.421, [0.594, 0.684, 0.827]], [0.423, [0.592, 0.679, 0.824]], [0.425, [0.592, 0.679, 0.824]], [0.427, [0.590, 0.675, 0.822]], [0.429, [0.590, 0.675, 0.822]], [0.431, [0.588, 0.670, 0.820]], [0.432, [0.588, 0.670, 0.820]], [0.434, [0.586, 0.665, 0.817]], [0.436, [0.586, 0.665, 0.817]], [0.438, [0.583, 0.661, 0.815]], [0.440, [0.583, 0.661, 0.815]], [0.442, [0.581, 0.656, 0.812]], [0.444, [0.581, 0.656, 0.812]], [0.446, [0.579, 0.651, 0.810]], [0.448, [0.579, 0.651, 0.810]], [0.450, [0.577, 0.647, 0.807]], [0.452, [0.577, 0.647, 0.807]], [0.454, [0.574, 0.642, 0.805]], [0.456, [0.574, 0.642, 0.805]], [0.458, [0.572, 0.637, 0.802]], [0.460, [0.572, 0.637, 0.802]], [0.462, [0.570, 0.633, 0.800]], [0.464, [0.570, 0.633, 0.800]], [0.466, [0.568, 0.628, 0.797]], [0.468, [0.568, 0.628, 0.797]], [0.470, [0.566, 0.623, 0.795]], [0.472, [0.566, 0.623, 0.795]], [0.474, [0.563, 0.619, 0.792]], [0.476, [0.563, 0.619, 0.792]], [0.477, [0.561, 0.614, 0.790]], [0.479, [0.561, 0.614, 0.790]], [0.481, [0.559, 0.609, 0.788]], [0.483, [0.559, 0.609, 0.788]], [0.485, [0.557, 0.605, 0.785]], [0.487, [0.557, 0.605, 0.785]], [0.489, [0.555, 0.600, 0.783]], [0.491, [0.555, 0.600, 0.783]], [0.493, [0.552, 0.595, 0.780]], [0.495, [0.552, 0.595, 0.780]], [0.497, [0.550, 0.591, 0.778]], [0.499, [0.550, 0.591, 0.778]], [0.501, [0.549, 0.586, 0.775]], [0.503, [0.549, 0.586, 0.775]], [0.505, [0.549, 0.580, 0.773]], [0.507, [0.549, 0.580, 0.773]], [0.509, [0.549, 0.575, 0.770]], [0.511, [0.549, 0.575, 0.770]], [0.513, [0.549, 0.570, 0.767]], [0.515, [0.549, 0.570, 0.767]], [0.517, [0.549, 0.564, 0.765]], [0.519, [0.549, 0.564, 0.765]], [0.521, [0.549, 0.559, 0.762]], [0.523, [0.549, 0.559, 0.762]], [0.524, [0.549, 0.554, 0.760]], [0.526, [0.549, 0.554, 0.760]], [0.528, [0.549, 0.549, 0.757]], [0.530, [0.549, 0.549, 0.757]], [0.532, [0.549, 0.543, 0.755]], [0.534, [0.549, 0.543, 0.755]], [0.536, [0.549, 0.538, 0.752]], [0.538, [0.549, 0.538, 0.752]], [0.540, [0.549, 0.533, 0.749]], [0.542, [0.549, 0.533, 0.749]], [0.544, [0.549, 0.527, 0.747]], [0.546, [0.549, 0.527, 0.747]], [0.548, [0.549, 0.522, 0.744]], [0.550, [0.549, 0.522, 0.744]], [0.552, [0.549, 0.517, 0.742]], [0.554, [0.549, 0.517, 0.742]], [0.556, [0.549, 0.512, 0.739]], [0.558, [0.549, 0.512, 0.739]], [0.560, [0.549, 0.506, 0.736]], [0.562, [0.549, 0.506, 0.736]], [0.564, [0.549, 0.501, 0.734]], [0.566, [0.549, 0.501, 0.734]], [0.568, [0.549, 0.496, 0.731]], [0.569, [0.549, 0.496, 0.731]], [0.571, [0.549, 0.490, 0.729]], [0.573, [0.549, 0.490, 0.729]], [0.575, [0.549, 0.485, 0.726]], [0.577, [0.549, 0.485, 0.726]], [0.579, [0.549, 0.480, 0.724]], [0.581, [0.549, 0.480, 0.724]], [0.583, [0.549, 0.474, 0.721]], [0.585, [0.549, 0.474, 0.721]], [0.587, [0.549, 0.469, 0.718]], [0.589, [0.549, 0.469, 0.718]], [0.591, [0.549, 0.464, 0.716]], [0.593, [0.549, 0.464, 0.716]], [0.595, [0.549, 0.459, 0.713]], [0.597, [0.549, 0.459, 0.713]], [0.599, [0.549, 0.453, 0.711]], [0.601, [0.549, 0.453, 0.711]], [0.603, [0.549, 0.448, 0.708]], [0.605, [0.549, 0.448, 0.708]], [0.607, [0.549, 0.443, 0.705]], [0.609, [0.549, 0.443, 0.705]], [0.611, [0.549, 0.437, 0.703]], [0.613, [0.549, 0.437, 0.703]], [0.614, [0.549, 0.432, 0.700]], [0.616, [0.549, 0.432, 0.700]], [0.618, [0.549, 0.427, 0.698]], [0.620, [0.549, 0.427, 0.698]], [0.622, [0.549, 0.422, 0.695]], [0.624, [0.549, 0.422, 0.695]], [0.626, [0.549, 0.416, 0.693]], [0.628, [0.549, 0.416, 0.693]], [0.630, [0.548, 0.411, 0.690]], [0.632, [0.548, 0.411, 0.690]], [0.634, [0.548, 0.406, 0.688]], [0.636, [0.548, 0.406, 0.688]], [0.638, [0.547, 0.401, 0.685]], [0.640, [0.547, 0.401, 0.685]], [0.642, [0.547, 0.396, 0.683]], [0.644, [0.547, 0.396, 0.683]], [0.646, [0.546, 0.391, 0.680]], [0.648, [0.546, 0.391, 0.680]], [0.650, [0.546, 0.385, 0.678]], [0.652, [0.546, 0.385, 0.678]], [0.654, [0.545, 0.380, 0.675]], [0.656, [0.545, 0.380, 0.675]], [0.658, [0.545, 0.375, 0.673]], [0.659, [0.545, 0.375, 0.673]], [0.661, [0.544, 0.370, 0.670]], [0.663, [0.544, 0.370, 0.670]], [0.665, [0.544, 0.365, 0.668]], [0.667, [0.544, 0.365, 0.668]], [0.669, [0.543, 0.360, 0.666]], [0.671, [0.543, 0.360, 0.666]], [0.673, [0.543, 0.354, 0.663]], [0.675, [0.543, 0.354, 0.663]], [0.677, [0.542, 0.349, 0.661]], [0.679, [0.542, 0.349, 0.661]], [0.681, [0.542, 0.344, 0.658]], [0.683, [0.542, 0.344, 0.658]], [0.685, [0.541, 0.339, 0.656]], [0.687, [0.541, 0.339, 0.656]], [0.689, [0.541, 0.334, 0.653]], [0.691, [0.541, 0.334, 0.653]], [0.693, [0.540, 0.329, 0.651]], [0.695, [0.540, 0.329, 0.651]], [0.697, [0.540, 0.323, 0.648]], [0.699, [0.540, 0.323, 0.648]], [0.701, [0.539, 0.318, 0.646]], [0.703, [0.539, 0.318, 0.646]], [0.705, [0.539, 0.313, 0.643]], [0.706, [0.539, 0.313, 0.643]], [0.708, [0.538, 0.308, 0.641]], [0.710, [0.538, 0.308, 0.641]], [0.712, [0.538, 0.303, 0.638]], [0.714, [0.538, 0.303, 0.638]], [0.716, [0.537, 0.298, 0.636]], [0.718, [0.537, 0.298, 0.636]], [0.720, [0.537, 0.292, 0.634]], [0.722, [0.537, 0.292, 0.634]], [0.724, [0.536, 0.287, 0.631]], [0.726, [0.536, 0.287, 0.631]], [0.728, [0.536, 0.282, 0.629]], [0.730, [0.536, 0.282, 0.629]], [0.732, [0.535, 0.277, 0.626]], [0.734, [0.535, 0.277, 0.626]], [0.736, [0.535, 0.272, 0.624]], [0.738, [0.535, 0.272, 0.624]], [0.740, [0.534, 0.267, 0.621]], [0.742, [0.534, 0.267, 0.621]], [0.744, [0.534, 0.261, 0.619]], [0.746, [0.534, 0.261, 0.619]], [0.748, [0.533, 0.256, 0.616]], [0.750, [0.533, 0.256, 0.616]], [0.751, [0.533, 0.250, 0.613]], [0.753, [0.533, 0.250, 0.613]], [0.755, [0.532, 0.244, 0.609]], [0.757, [0.532, 0.244, 0.609]], [0.759, [0.531, 0.238, 0.605]], [0.761, [0.531, 0.238, 0.605]], [0.763, [0.530, 0.232, 0.600]], [0.765, [0.530, 0.232, 0.600]], [0.767, [0.529, 0.226, 0.596]], [0.769, [0.529, 0.226, 0.596]], [0.771, [0.528, 0.220, 0.592]], [0.773, [0.528, 0.220, 0.592]], [0.775, [0.528, 0.213, 0.588]], [0.777, [0.528, 0.213, 0.588]], [0.779, [0.527, 0.207, 0.584]], [0.781, [0.527, 0.207, 0.584]], [0.783, [0.526, 0.201, 0.580]], [0.785, [0.526, 0.201, 0.580]], [0.787, [0.525, 0.195, 0.576]], [0.789, [0.525, 0.195, 0.576]], [0.791, [0.524, 0.189, 0.572]], [0.793, [0.524, 0.189, 0.572]], [0.795, [0.523, 0.183, 0.568]], [0.796, [0.523, 0.183, 0.568]], [0.798, [0.522, 0.176, 0.564]], [0.800, [0.522, 0.176, 0.564]], [0.802, [0.521, 0.170, 0.560]], [0.804, [0.521, 0.170, 0.560]], [0.806, [0.521, 0.164, 0.556]], [0.808, [0.521, 0.164, 0.556]], [0.810, [0.520, 0.158, 0.552]], [0.812, [0.520, 0.158, 0.552]], [0.814, [0.519, 0.152, 0.548]], [0.816, [0.519, 0.152, 0.548]], [0.818, [0.518, 0.146, 0.544]], [0.820, [0.518, 0.146, 0.544]], [0.822, [0.517, 0.140, 0.540]], [0.824, [0.517, 0.140, 0.540]], [0.826, [0.516, 0.133, 0.536]], [0.828, [0.516, 0.133, 0.536]], [0.830, [0.515, 0.127, 0.531]], [0.832, [0.515, 0.127, 0.531]], [0.834, [0.515, 0.121, 0.527]], [0.836, [0.515, 0.121, 0.527]], [0.838, [0.514, 0.115, 0.523]], [0.840, [0.514, 0.115, 0.523]], [0.841, [0.513, 0.109, 0.519]], [0.843, [0.513, 0.109, 0.519]], [0.845, [0.512, 0.103, 0.515]], [0.847, [0.512, 0.103, 0.515]], [0.849, [0.511, 0.097, 0.511]], [0.851, [0.511, 0.097, 0.511]], [0.853, [0.510, 0.090, 0.507]], [0.855, [0.510, 0.090, 0.507]], [0.857, [0.509, 0.084, 0.503]], [0.859, [0.509, 0.084, 0.503]], [0.861, [0.509, 0.078, 0.499]], [0.863, [0.509, 0.078, 0.499]], [0.865, [0.508, 0.072, 0.495]], [0.867, [0.508, 0.072, 0.495]], [0.869, [0.507, 0.066, 0.491]], [0.871, [0.507, 0.066, 0.491]], [0.873, [0.506, 0.060, 0.487]], [0.875, [0.506, 0.060, 0.487]], [0.877, [0.500, 0.057, 0.481]], [0.879, [0.500, 0.057, 0.481]], [0.881, [0.494, 0.055, 0.475]], [0.883, [0.494, 0.055, 0.475]], [0.885, [0.487, 0.054, 0.469]], [0.886, [0.487, 0.054, 0.469]], [0.888, [0.481, 0.052, 0.463]], [0.890, [0.481, 0.052, 0.463]], [0.892, [0.475, 0.050, 0.457]], [0.894, [0.475, 0.050, 0.457]], [0.896, [0.468, 0.048, 0.451]], [0.898, [0.468, 0.048, 0.451]], [0.900, [0.462, 0.046, 0.445]], [0.902, [0.462, 0.046, 0.445]], [0.904, [0.456, 0.044, 0.439]], [0.906, [0.456, 0.044, 0.439]], [0.908, [0.449, 0.042, 0.433]], [0.910, [0.449, 0.042, 0.433]], [0.912, [0.443, 0.041, 0.427]], [0.914, [0.443, 0.041, 0.427]], [0.916, [0.436, 0.039, 0.421]], [0.918, [0.436, 0.039, 0.421]], [0.920, [0.430, 0.037, 0.415]], [0.922, [0.430, 0.037, 0.415]], [0.924, [0.424, 0.035, 0.409]], [0.926, [0.424, 0.035, 0.409]], [0.928, [0.417, 0.033, 0.403]], [0.930, [0.417, 0.033, 0.403]], [0.932, [0.411, 0.031, 0.397]], [0.933, [0.411, 0.031, 0.397]], [0.935, [0.404, 0.030, 0.391]], [0.937, [0.404, 0.030, 0.391]], [0.939, [0.398, 0.028, 0.385]], [0.941, [0.398, 0.028, 0.385]], [0.943, [0.392, 0.026, 0.379]], [0.945, [0.392, 0.026, 0.379]], [0.947, [0.385, 0.024, 0.372]], [0.949, [0.385, 0.024, 0.372]], [0.951, [0.379, 0.022, 0.366]], [0.953, [0.379, 0.022, 0.366]], [0.955, [0.372, 0.020, 0.360]], [0.957, [0.372, 0.020, 0.360]], [0.959, [0.366, 0.018, 0.354]], [0.961, [0.366, 0.018, 0.354]], [0.963, [0.360, 0.017, 0.348]], [0.965, [0.360, 0.017, 0.348]], [0.967, [0.353, 0.015, 0.342]], [0.969, [0.353, 0.015, 0.342]], [0.971, [0.347, 0.013, 0.336]], [0.973, [0.347, 0.013, 0.336]], [0.975, [0.340, 0.011, 0.330]], [0.977, [0.340, 0.011, 0.330]], [0.978, [0.334, 0.009, 0.324]], [0.980, [0.334, 0.009, 0.324]], [0.982, [0.328, 0.007, 0.318]], [0.984, [0.328, 0.007, 0.318]], [0.986, [0.321, 0.006, 0.312]], [0.988, [0.321, 0.006, 0.312]], [0.990, [0.315, 0.004, 0.306]], [0.992, [0.315, 0.004, 0.306]], [0.994, [0.308, 0.002, 0.300]], [0.996, [0.308, 0.002, 0.300]], [0.998, [0.302, 0.000, 0.294]], [1.000, [0.302, 0.000, 0.294]]];
+var GnBu = [[0.000, [0.969, 0.988, 0.941]], [0.002, [0.969, 0.988, 0.941]], [0.004, [0.966, 0.987, 0.939]], [0.006, [0.966, 0.987, 0.939]], [0.008, [0.963, 0.986, 0.936]], [0.010, [0.963, 0.986, 0.936]], [0.012, [0.960, 0.985, 0.933]], [0.014, [0.960, 0.985, 0.933]], [0.016, [0.957, 0.984, 0.931]], [0.018, [0.957, 0.984, 0.931]], [0.020, [0.954, 0.983, 0.928]], [0.022, [0.954, 0.983, 0.928]], [0.023, [0.952, 0.982, 0.926]], [0.025, [0.952, 0.982, 0.926]], [0.027, [0.949, 0.980, 0.923]], [0.029, [0.949, 0.980, 0.923]], [0.031, [0.946, 0.979, 0.921]], [0.033, [0.946, 0.979, 0.921]], [0.035, [0.943, 0.978, 0.918]], [0.037, [0.943, 0.978, 0.918]], [0.039, [0.940, 0.977, 0.915]], [0.041, [0.940, 0.977, 0.915]], [0.043, [0.938, 0.976, 0.913]], [0.045, [0.938, 0.976, 0.913]], [0.047, [0.935, 0.975, 0.910]], [0.049, [0.935, 0.975, 0.910]], [0.051, [0.932, 0.974, 0.908]], [0.053, [0.932, 0.974, 0.908]], [0.055, [0.929, 0.973, 0.905]], [0.057, [0.929, 0.973, 0.905]], [0.059, [0.926, 0.972, 0.902]], [0.061, [0.926, 0.972, 0.902]], [0.063, [0.923, 0.971, 0.900]], [0.065, [0.923, 0.971, 0.900]], [0.067, [0.921, 0.969, 0.897]], [0.068, [0.921, 0.969, 0.897]], [0.070, [0.918, 0.968, 0.895]], [0.072, [0.918, 0.968, 0.895]], [0.074, [0.915, 0.967, 0.892]], [0.076, [0.915, 0.967, 0.892]], [0.078, [0.912, 0.966, 0.890]], [0.080, [0.912, 0.966, 0.890]], [0.082, [0.909, 0.965, 0.887]], [0.084, [0.909, 0.965, 0.887]], [0.086, [0.906, 0.964, 0.884]], [0.088, [0.906, 0.964, 0.884]], [0.090, [0.904, 0.963, 0.882]], [0.092, [0.904, 0.963, 0.882]], [0.094, [0.901, 0.962, 0.879]], [0.096, [0.901, 0.962, 0.879]], [0.098, [0.898, 0.961, 0.877]], [0.100, [0.898, 0.961, 0.877]], [0.102, [0.895, 0.959, 0.874]], [0.104, [0.895, 0.959, 0.874]], [0.106, [0.892, 0.958, 0.871]], [0.108, [0.892, 0.958, 0.871]], [0.110, [0.889, 0.957, 0.869]], [0.112, [0.889, 0.957, 0.869]], [0.114, [0.887, 0.956, 0.866]], [0.115, [0.887, 0.956, 0.866]], [0.117, [0.884, 0.955, 0.864]], [0.119, [0.884, 0.955, 0.864]], [0.121, [0.881, 0.954, 0.861]], [0.123, [0.881, 0.954, 0.861]], [0.125, [0.878, 0.953, 0.858]], [0.127, [0.878, 0.953, 0.858]], [0.129, [0.876, 0.952, 0.856]], [0.131, [0.876, 0.952, 0.856]], [0.133, [0.873, 0.951, 0.853]], [0.135, [0.873, 0.951, 0.853]], [0.137, [0.871, 0.950, 0.850]], [0.139, [0.871, 0.950, 0.850]], [0.141, [0.868, 0.949, 0.848]], [0.143, [0.868, 0.949, 0.848]], [0.145, [0.866, 0.948, 0.845]], [0.147, [0.866, 0.948, 0.845]], [0.149, [0.863, 0.947, 0.842]], [0.151, [0.863, 0.947, 0.842]], [0.153, [0.861, 0.946, 0.840]], [0.155, [0.861, 0.946, 0.840]], [0.157, [0.858, 0.945, 0.837]], [0.159, [0.858, 0.945, 0.837]], [0.160, [0.856, 0.944, 0.834]], [0.162, [0.856, 0.944, 0.834]], [0.164, [0.854, 0.943, 0.831]], [0.166, [0.854, 0.943, 0.831]], [0.168, [0.851, 0.942, 0.829]], [0.170, [0.851, 0.942, 0.829]], [0.172, [0.849, 0.941, 0.826]], [0.174, [0.849, 0.941, 0.826]], [0.176, [0.846, 0.940, 0.823]], [0.178, [0.846, 0.940, 0.823]], [0.180, [0.844, 0.939, 0.821]], [0.182, [0.844, 0.939, 0.821]], [0.184, [0.841, 0.938, 0.818]], [0.186, [0.841, 0.938, 0.818]], [0.188, [0.839, 0.937, 0.815]], [0.190, [0.839, 0.937, 0.815]], [0.192, [0.836, 0.936, 0.812]], [0.194, [0.836, 0.936, 0.812]], [0.196, [0.834, 0.935, 0.810]], [0.198, [0.834, 0.935, 0.810]], [0.200, [0.831, 0.934, 0.807]], [0.202, [0.831, 0.934, 0.807]], [0.204, [0.829, 0.933, 0.804]], [0.205, [0.829, 0.933, 0.804]], [0.207, [0.826, 0.932, 0.802]], [0.209, [0.826, 0.932, 0.802]], [0.211, [0.824, 0.931, 0.799]], [0.213, [0.824, 0.931, 0.799]], [0.215, [0.822, 0.930, 0.796]], [0.217, [0.822, 0.930, 0.796]], [0.219, [0.819, 0.929, 0.794]], [0.221, [0.819, 0.929, 0.794]], [0.223, [0.817, 0.928, 0.791]], [0.225, [0.817, 0.928, 0.791]], [0.227, [0.814, 0.927, 0.788]], [0.229, [0.814, 0.927, 0.788]], [0.231, [0.812, 0.926, 0.785]], [0.233, [0.812, 0.926, 0.785]], [0.235, [0.809, 0.925, 0.783]], [0.237, [0.809, 0.925, 0.783]], [0.239, [0.807, 0.924, 0.780]], [0.241, [0.807, 0.924, 0.780]], [0.243, [0.804, 0.923, 0.777]], [0.245, [0.804, 0.923, 0.777]], [0.247, [0.802, 0.922, 0.775]], [0.249, [0.802, 0.922, 0.775]], [0.250, [0.799, 0.921, 0.772]], [0.252, [0.799, 0.921, 0.772]], [0.254, [0.794, 0.919, 0.770]], [0.256, [0.794, 0.919, 0.770]], [0.258, [0.790, 0.918, 0.768]], [0.260, [0.790, 0.918, 0.768]], [0.262, [0.786, 0.916, 0.766]], [0.264, [0.786, 0.916, 0.766]], [0.266, [0.781, 0.914, 0.764]], [0.268, [0.781, 0.914, 0.764]], [0.270, [0.777, 0.913, 0.762]], [0.272, [0.777, 0.913, 0.762]], [0.274, [0.772, 0.911, 0.760]], [0.276, [0.772, 0.911, 0.760]], [0.278, [0.768, 0.909, 0.758]], [0.280, [0.768, 0.909, 0.758]], [0.282, [0.763, 0.907, 0.756]], [0.284, [0.763, 0.907, 0.756]], [0.286, [0.759, 0.906, 0.754]], [0.288, [0.759, 0.906, 0.754]], [0.290, [0.755, 0.904, 0.752]], [0.292, [0.755, 0.904, 0.752]], [0.294, [0.750, 0.902, 0.750]], [0.295, [0.750, 0.902, 0.750]], [0.297, [0.746, 0.900, 0.748]], [0.299, [0.746, 0.900, 0.748]], [0.301, [0.741, 0.899, 0.746]], [0.303, [0.741, 0.899, 0.746]], [0.305, [0.737, 0.897, 0.744]], [0.307, [0.737, 0.897, 0.744]], [0.309, [0.732, 0.895, 0.743]], [0.311, [0.732, 0.895, 0.743]], [0.313, [0.728, 0.894, 0.741]], [0.315, [0.728, 0.894, 0.741]], [0.317, [0.724, 0.892, 0.739]], [0.319, [0.724, 0.892, 0.739]], [0.321, [0.719, 0.890, 0.737]], [0.323, [0.719, 0.890, 0.737]], [0.325, [0.715, 0.888, 0.735]], [0.327, [0.715, 0.888, 0.735]], [0.329, [0.710, 0.887, 0.733]], [0.331, [0.710, 0.887, 0.733]], [0.333, [0.706, 0.885, 0.731]], [0.335, [0.706, 0.885, 0.731]], [0.337, [0.701, 0.883, 0.729]], [0.339, [0.701, 0.883, 0.729]], [0.341, [0.697, 0.882, 0.727]], [0.342, [0.697, 0.882, 0.727]], [0.344, [0.693, 0.880, 0.725]], [0.346, [0.693, 0.880, 0.725]], [0.348, [0.688, 0.878, 0.723]], [0.350, [0.688, 0.878, 0.723]], [0.352, [0.684, 0.876, 0.721]], [0.354, [0.684, 0.876, 0.721]], [0.356, [0.679, 0.875, 0.719]], [0.358, [0.679, 0.875, 0.719]], [0.360, [0.675, 0.873, 0.717]], [0.362, [0.675, 0.873, 0.717]], [0.364, [0.670, 0.871, 0.715]], [0.366, [0.670, 0.871, 0.715]], [0.368, [0.666, 0.869, 0.713]], [0.370, [0.666, 0.869, 0.713]], [0.372, [0.662, 0.868, 0.711]], [0.374, [0.662, 0.868, 0.711]], [0.376, [0.657, 0.866, 0.710]], [0.378, [0.657, 0.866, 0.710]], [0.380, [0.651, 0.864, 0.712]], [0.382, [0.651, 0.864, 0.712]], [0.384, [0.646, 0.862, 0.714]], [0.386, [0.646, 0.862, 0.714]], [0.387, [0.640, 0.860, 0.716]], [0.389, [0.640, 0.860, 0.716]], [0.391, [0.635, 0.858, 0.718]], [0.393, [0.635, 0.858, 0.718]], [0.395, [0.629, 0.855, 0.720]], [0.397, [0.629, 0.855, 0.720]], [0.399, [0.624, 0.853, 0.722]], [0.401, [0.624, 0.853, 0.722]], [0.403, [0.618, 0.851, 0.723]], [0.405, [0.618, 0.851, 0.723]], [0.407, [0.612, 0.849, 0.725]], [0.409, [0.612, 0.849, 0.725]], [0.411, [0.607, 0.847, 0.727]], [0.413, [0.607, 0.847, 0.727]], [0.415, [0.601, 0.845, 0.729]], [0.417, [0.601, 0.845, 0.729]], [0.419, [0.596, 0.843, 0.731]], [0.421, [0.596, 0.843, 0.731]], [0.423, [0.590, 0.841, 0.733]], [0.425, [0.590, 0.841, 0.733]], [0.427, [0.585, 0.839, 0.734]], [0.429, [0.585, 0.839, 0.734]], [0.431, [0.579, 0.837, 0.736]], [0.432, [0.579, 0.837, 0.736]], [0.434, [0.574, 0.835, 0.738]], [0.436, [0.574, 0.835, 0.738]], [0.438, [0.568, 0.832, 0.740]], [0.440, [0.568, 0.832, 0.740]], [0.442, [0.563, 0.830, 0.742]], [0.444, [0.563, 0.830, 0.742]], [0.446, [0.557, 0.828, 0.744]], [0.448, [0.557, 0.828, 0.744]], [0.450, [0.552, 0.826, 0.746]], [0.452, [0.552, 0.826, 0.746]], [0.454, [0.546, 0.824, 0.747]], [0.456, [0.546, 0.824, 0.747]], [0.458, [0.540, 0.822, 0.749]], [0.460, [0.540, 0.822, 0.749]], [0.462, [0.535, 0.820, 0.751]], [0.464, [0.535, 0.820, 0.751]], [0.466, [0.529, 0.818, 0.753]], [0.468, [0.529, 0.818, 0.753]], [0.470, [0.524, 0.816, 0.755]], [0.472, [0.524, 0.816, 0.755]], [0.474, [0.518, 0.814, 0.757]], [0.476, [0.518, 0.814, 0.757]], [0.477, [0.513, 0.812, 0.758]], [0.479, [0.513, 0.812, 0.758]], [0.481, [0.507, 0.809, 0.760]], [0.483, [0.507, 0.809, 0.760]], [0.485, [0.502, 0.807, 0.762]], [0.487, [0.502, 0.807, 0.762]], [0.489, [0.496, 0.805, 0.764]], [0.491, [0.496, 0.805, 0.764]], [0.493, [0.491, 0.803, 0.766]], [0.495, [0.491, 0.803, 0.766]], [0.497, [0.485, 0.801, 0.768]], [0.499, [0.485, 0.801, 0.768]], [0.501, [0.480, 0.798, 0.770]], [0.503, [0.480, 0.798, 0.770]], [0.505, [0.474, 0.795, 0.771]], [0.507, [0.474, 0.795, 0.771]], [0.509, [0.469, 0.792, 0.773]], [0.511, [0.469, 0.792, 0.773]], [0.513, [0.463, 0.789, 0.775]], [0.515, [0.463, 0.789, 0.775]], [0.517, [0.457, 0.786, 0.777]], [0.519, [0.457, 0.786, 0.777]], [0.521, [0.452, 0.783, 0.779]], [0.523, [0.452, 0.783, 0.779]], [0.524, [0.446, 0.780, 0.781]], [0.526, [0.446, 0.780, 0.781]], [0.528, [0.441, 0.777, 0.782]], [0.530, [0.441, 0.777, 0.782]], [0.532, [0.435, 0.774, 0.784]], [0.534, [0.435, 0.774, 0.784]], [0.536, [0.430, 0.771, 0.786]], [0.538, [0.430, 0.771, 0.786]], [0.540, [0.424, 0.768, 0.788]], [0.542, [0.424, 0.768, 0.788]], [0.544, [0.419, 0.765, 0.790]], [0.546, [0.419, 0.765, 0.790]], [0.548, [0.413, 0.762, 0.792]], [0.550, [0.413, 0.762, 0.792]], [0.552, [0.408, 0.758, 0.794]], [0.554, [0.408, 0.758, 0.794]], [0.556, [0.402, 0.755, 0.795]], [0.558, [0.402, 0.755, 0.795]], [0.560, [0.397, 0.752, 0.797]], [0.562, [0.397, 0.752, 0.797]], [0.564, [0.391, 0.749, 0.799]], [0.566, [0.391, 0.749, 0.799]], [0.568, [0.385, 0.746, 0.801]], [0.569, [0.385, 0.746, 0.801]], [0.571, [0.380, 0.743, 0.803]], [0.573, [0.380, 0.743, 0.803]], [0.575, [0.374, 0.740, 0.805]], [0.577, [0.374, 0.740, 0.805]], [0.579, [0.369, 0.737, 0.806]], [0.581, [0.369, 0.737, 0.806]], [0.583, [0.363, 0.734, 0.808]], [0.585, [0.363, 0.734, 0.808]], [0.587, [0.358, 0.731, 0.810]], [0.589, [0.358, 0.731, 0.810]], [0.591, [0.352, 0.728, 0.812]], [0.593, [0.352, 0.728, 0.812]], [0.595, [0.347, 0.725, 0.814]], [0.597, [0.347, 0.725, 0.814]], [0.599, [0.341, 0.722, 0.816]], [0.601, [0.341, 0.722, 0.816]], [0.603, [0.336, 0.718, 0.818]], [0.605, [0.336, 0.718, 0.818]], [0.607, [0.330, 0.715, 0.819]], [0.609, [0.330, 0.715, 0.819]], [0.611, [0.325, 0.712, 0.821]], [0.613, [0.325, 0.712, 0.821]], [0.614, [0.319, 0.709, 0.823]], [0.616, [0.319, 0.709, 0.823]], [0.618, [0.313, 0.706, 0.825]], [0.620, [0.313, 0.706, 0.825]], [0.622, [0.308, 0.703, 0.827]], [0.624, [0.308, 0.703, 0.827]], [0.626, [0.303, 0.699, 0.826]], [0.628, [0.303, 0.699, 0.826]], [0.630, [0.299, 0.694, 0.823]], [0.632, [0.299, 0.694, 0.823]], [0.634, [0.295, 0.689, 0.821]], [0.636, [0.295, 0.689, 0.821]], [0.638, [0.290, 0.685, 0.818]], [0.640, [0.290, 0.685, 0.818]], [0.642, [0.286, 0.680, 0.816]], [0.644, [0.286, 0.680, 0.816]], [0.646, [0.282, 0.675, 0.813]], [0.648, [0.282, 0.675, 0.813]], [0.650, [0.277, 0.670, 0.810]], [0.652, [0.277, 0.670, 0.810]], [0.654, [0.273, 0.665, 0.808]], [0.656, [0.273, 0.665, 0.808]], [0.658, [0.269, 0.661, 0.805]], [0.659, [0.269, 0.661, 0.805]], [0.661, [0.264, 0.656, 0.803]], [0.663, [0.264, 0.656, 0.803]], [0.665, [0.260, 0.651, 0.800]], [0.667, [0.260, 0.651, 0.800]], [0.669, [0.256, 0.646, 0.797]], [0.671, [0.256, 0.646, 0.797]], [0.673, [0.252, 0.641, 0.795]], [0.675, [0.252, 0.641, 0.795]], [0.677, [0.247, 0.637, 0.792]], [0.679, [0.247, 0.637, 0.792]], [0.681, [0.243, 0.632, 0.790]], [0.683, [0.243, 0.632, 0.790]], [0.685, [0.239, 0.627, 0.787]], [0.687, [0.239, 0.627, 0.787]], [0.689, [0.234, 0.622, 0.784]], [0.691, [0.234, 0.622, 0.784]], [0.693, [0.230, 0.617, 0.782]], [0.695, [0.230, 0.617, 0.782]], [0.697, [0.226, 0.613, 0.779]], [0.699, [0.226, 0.613, 0.779]], [0.701, [0.221, 0.608, 0.777]], [0.703, [0.221, 0.608, 0.777]], [0.705, [0.217, 0.603, 0.774]], [0.706, [0.217, 0.603, 0.774]], [0.708, [0.213, 0.598, 0.772]], [0.710, [0.213, 0.598, 0.772]], [0.712, [0.208, 0.593, 0.769]], [0.714, [0.208, 0.593, 0.769]], [0.716, [0.204, 0.589, 0.766]], [0.718, [0.204, 0.589, 0.766]], [0.720, [0.200, 0.584, 0.764]], [0.722, [0.200, 0.584, 0.764]], [0.724, [0.196, 0.579, 0.761]], [0.726, [0.196, 0.579, 0.761]], [0.728, [0.191, 0.574, 0.759]], [0.730, [0.191, 0.574, 0.759]], [0.732, [0.187, 0.569, 0.756]], [0.734, [0.187, 0.569, 0.756]], [0.736, [0.183, 0.565, 0.753]], [0.738, [0.183, 0.565, 0.753]], [0.740, [0.178, 0.560, 0.751]], [0.742, [0.178, 0.560, 0.751]], [0.744, [0.174, 0.555, 0.748]], [0.746, [0.174, 0.555, 0.748]], [0.748, [0.170, 0.550, 0.746]], [0.750, [0.170, 0.550, 0.746]], [0.751, [0.165, 0.546, 0.743]], [0.753, [0.165, 0.546, 0.743]], [0.755, [0.161, 0.541, 0.741]], [0.757, [0.161, 0.541, 0.741]], [0.759, [0.157, 0.537, 0.739]], [0.761, [0.157, 0.537, 0.739]], [0.763, [0.152, 0.532, 0.737]], [0.765, [0.152, 0.532, 0.737]], [0.767, [0.148, 0.528, 0.735]], [0.769, [0.148, 0.528, 0.735]], [0.771, [0.144, 0.524, 0.732]], [0.773, [0.144, 0.524, 0.732]], [0.775, [0.140, 0.519, 0.730]], [0.777, [0.140, 0.519, 0.730]], [0.779, [0.135, 0.515, 0.728]], [0.781, [0.135, 0.515, 0.728]], [0.783, [0.131, 0.510, 0.726]], [0.785, [0.131, 0.510, 0.726]], [0.787, [0.127, 0.506, 0.724]], [0.789, [0.127, 0.506, 0.724]], [0.791, [0.122, 0.501, 0.721]], [0.793, [0.122, 0.501, 0.721]], [0.795, [0.118, 0.497, 0.719]], [0.796, [0.118, 0.497, 0.719]], [0.798, [0.114, 0.493, 0.717]], [0.800, [0.114, 0.493, 0.717]], [0.802, [0.109, 0.488, 0.715]], [0.804, [0.109, 0.488, 0.715]], [0.806, [0.105, 0.484, 0.712]], [0.808, [0.105, 0.484, 0.712]], [0.810, [0.101, 0.479, 0.710]], [0.812, [0.101, 0.479, 0.710]], [0.814, [0.097, 0.475, 0.708]], [0.816, [0.097, 0.475, 0.708]], [0.818, [0.092, 0.470, 0.706]], [0.820, [0.092, 0.470, 0.706]], [0.822, [0.088, 0.466, 0.704]], [0.824, [0.088, 0.466, 0.704]], [0.826, [0.084, 0.462, 0.701]], [0.828, [0.084, 0.462, 0.701]], [0.830, [0.079, 0.457, 0.699]], [0.832, [0.079, 0.457, 0.699]], [0.834, [0.075, 0.453, 0.697]], [0.836, [0.075, 0.453, 0.697]], [0.838, [0.071, 0.448, 0.695]], [0.840, [0.071, 0.448, 0.695]], [0.841, [0.066, 0.444, 0.693]], [0.843, [0.066, 0.444, 0.693]], [0.845, [0.062, 0.439, 0.690]], [0.847, [0.062, 0.439, 0.690]], [0.849, [0.058, 0.435, 0.688]], [0.851, [0.058, 0.435, 0.688]], [0.853, [0.053, 0.431, 0.686]], [0.855, [0.053, 0.431, 0.686]], [0.857, [0.049, 0.426, 0.684]], [0.859, [0.049, 0.426, 0.684]], [0.861, [0.045, 0.422, 0.681]], [0.863, [0.045, 0.422, 0.681]], [0.865, [0.041, 0.417, 0.679]], [0.867, [0.041, 0.417, 0.679]], [0.869, [0.036, 0.413, 0.677]], [0.871, [0.036, 0.413, 0.677]], [0.873, [0.032, 0.408, 0.675]], [0.875, [0.032, 0.408, 0.675]], [0.877, [0.031, 0.404, 0.670]], [0.879, [0.031, 0.404, 0.670]], [0.881, [0.031, 0.399, 0.665]], [0.883, [0.031, 0.399, 0.665]], [0.885, [0.031, 0.394, 0.659]], [0.886, [0.031, 0.394, 0.659]], [0.888, [0.031, 0.389, 0.654]], [0.890, [0.031, 0.389, 0.654]], [0.892, [0.031, 0.384, 0.649]], [0.894, [0.031, 0.384, 0.649]], [0.896, [0.031, 0.379, 0.643]], [0.898, [0.031, 0.379, 0.643]], [0.900, [0.031, 0.374, 0.638]], [0.902, [0.031, 0.374, 0.638]], [0.904, [0.031, 0.369, 0.633]], [0.906, [0.031, 0.369, 0.633]], [0.908, [0.031, 0.364, 0.628]], [0.910, [0.031, 0.364, 0.628]], [0.912, [0.031, 0.359, 0.622]], [0.914, [0.031, 0.359, 0.622]], [0.916, [0.031, 0.354, 0.617]], [0.918, [0.031, 0.354, 0.617]], [0.920, [0.031, 0.349, 0.612]], [0.922, [0.031, 0.349, 0.612]], [0.924, [0.031, 0.344, 0.606]], [0.926, [0.031, 0.344, 0.606]], [0.928, [0.031, 0.340, 0.601]], [0.930, [0.031, 0.340, 0.601]], [0.932, [0.031, 0.335, 0.596]], [0.933, [0.031, 0.335, 0.596]], [0.935, [0.031, 0.330, 0.591]], [0.937, [0.031, 0.330, 0.591]], [0.939, [0.031, 0.325, 0.585]], [0.941, [0.031, 0.325, 0.585]], [0.943, [0.031, 0.320, 0.580]], [0.945, [0.031, 0.320, 0.580]], [0.947, [0.031, 0.315, 0.575]], [0.949, [0.031, 0.315, 0.575]], [0.951, [0.031, 0.310, 0.569]], [0.953, [0.031, 0.310, 0.569]], [0.955, [0.031, 0.305, 0.564]], [0.957, [0.031, 0.305, 0.564]], [0.959, [0.031, 0.300, 0.559]], [0.961, [0.031, 0.300, 0.559]], [0.963, [0.031, 0.295, 0.553]], [0.965, [0.031, 0.295, 0.553]], [0.967, [0.031, 0.290, 0.548]], [0.969, [0.031, 0.290, 0.548]], [0.971, [0.031, 0.285, 0.543]], [0.973, [0.031, 0.285, 0.543]], [0.975, [0.031, 0.281, 0.538]], [0.977, [0.031, 0.281, 0.538]], [0.978, [0.031, 0.276, 0.532]], [0.980, [0.031, 0.276, 0.532]], [0.982, [0.031, 0.271, 0.527]], [0.984, [0.031, 0.271, 0.527]], [0.986, [0.031, 0.266, 0.522]], [0.988, [0.031, 0.266, 0.522]], [0.990, [0.031, 0.261, 0.516]], [0.992, [0.031, 0.261, 0.516]], [0.994, [0.031, 0.256, 0.511]], [0.996, [0.031, 0.256, 0.511]], [0.998, [0.031, 0.251, 0.506]], [1.000, [0.031, 0.251, 0.506]]];
+var Greens = [[0.000, [0.969, 0.988, 0.961]], [0.002, [0.969, 0.988, 0.961]], [0.004, [0.966, 0.987, 0.958]], [0.006, [0.966, 0.987, 0.958]], [0.008, [0.964, 0.987, 0.956]], [0.010, [0.964, 0.987, 0.956]], [0.012, [0.962, 0.986, 0.953]], [0.014, [0.962, 0.986, 0.953]], [0.016, [0.960, 0.985, 0.950]], [0.018, [0.960, 0.985, 0.950]], [0.020, [0.958, 0.984, 0.948]], [0.022, [0.958, 0.984, 0.948]], [0.023, [0.955, 0.983, 0.945]], [0.025, [0.955, 0.983, 0.945]], [0.027, [0.953, 0.982, 0.943]], [0.029, [0.953, 0.982, 0.943]], [0.031, [0.951, 0.981, 0.940]], [0.033, [0.951, 0.981, 0.940]], [0.035, [0.949, 0.980, 0.938]], [0.037, [0.949, 0.980, 0.938]], [0.039, [0.946, 0.980, 0.935]], [0.041, [0.946, 0.980, 0.935]], [0.043, [0.944, 0.979, 0.932]], [0.045, [0.944, 0.979, 0.932]], [0.047, [0.942, 0.978, 0.930]], [0.049, [0.942, 0.978, 0.930]], [0.051, [0.940, 0.977, 0.927]], [0.053, [0.940, 0.977, 0.927]], [0.055, [0.938, 0.976, 0.925]], [0.057, [0.938, 0.976, 0.925]], [0.059, [0.935, 0.975, 0.922]], [0.061, [0.935, 0.975, 0.922]], [0.063, [0.933, 0.974, 0.919]], [0.065, [0.933, 0.974, 0.919]], [0.067, [0.931, 0.974, 0.917]], [0.068, [0.931, 0.974, 0.917]], [0.070, [0.929, 0.973, 0.914]], [0.072, [0.929, 0.973, 0.914]], [0.074, [0.927, 0.972, 0.912]], [0.076, [0.927, 0.972, 0.912]], [0.078, [0.924, 0.971, 0.909]], [0.080, [0.924, 0.971, 0.909]], [0.082, [0.922, 0.970, 0.907]], [0.084, [0.922, 0.970, 0.907]], [0.086, [0.920, 0.969, 0.904]], [0.088, [0.920, 0.969, 0.904]], [0.090, [0.918, 0.968, 0.901]], [0.092, [0.918, 0.968, 0.901]], [0.094, [0.915, 0.968, 0.899]], [0.096, [0.915, 0.968, 0.899]], [0.098, [0.913, 0.967, 0.896]], [0.100, [0.913, 0.967, 0.896]], [0.102, [0.911, 0.966, 0.894]], [0.104, [0.911, 0.966, 0.894]], [0.106, [0.909, 0.965, 0.891]], [0.108, [0.909, 0.965, 0.891]], [0.110, [0.907, 0.964, 0.888]], [0.112, [0.907, 0.964, 0.888]], [0.114, [0.904, 0.963, 0.886]], [0.115, [0.904, 0.963, 0.886]], [0.117, [0.902, 0.962, 0.883]], [0.119, [0.902, 0.962, 0.883]], [0.121, [0.900, 0.962, 0.881]], [0.123, [0.900, 0.962, 0.881]], [0.125, [0.898, 0.961, 0.878]], [0.127, [0.898, 0.961, 0.878]], [0.129, [0.894, 0.959, 0.874]], [0.131, [0.894, 0.959, 0.874]], [0.133, [0.890, 0.958, 0.870]], [0.135, [0.890, 0.958, 0.870]], [0.137, [0.887, 0.956, 0.866]], [0.139, [0.887, 0.956, 0.866]], [0.141, [0.883, 0.955, 0.862]], [0.143, [0.883, 0.955, 0.862]], [0.145, [0.879, 0.953, 0.858]], [0.147, [0.879, 0.953, 0.858]], [0.149, [0.875, 0.952, 0.854]], [0.151, [0.875, 0.952, 0.854]], [0.153, [0.872, 0.950, 0.850]], [0.155, [0.872, 0.950, 0.850]], [0.157, [0.868, 0.949, 0.846]], [0.159, [0.868, 0.949, 0.846]], [0.160, [0.864, 0.947, 0.843]], [0.162, [0.864, 0.947, 0.843]], [0.164, [0.861, 0.946, 0.839]], [0.166, [0.861, 0.946, 0.839]], [0.168, [0.857, 0.944, 0.835]], [0.170, [0.857, 0.944, 0.835]], [0.172, [0.853, 0.943, 0.831]], [0.174, [0.853, 0.943, 0.831]], [0.176, [0.850, 0.941, 0.827]], [0.178, [0.850, 0.941, 0.827]], [0.180, [0.846, 0.940, 0.823]], [0.182, [0.846, 0.940, 0.823]], [0.184, [0.842, 0.938, 0.819]], [0.186, [0.842, 0.938, 0.819]], [0.188, [0.839, 0.937, 0.815]], [0.190, [0.839, 0.937, 0.815]], [0.192, [0.835, 0.936, 0.811]], [0.194, [0.835, 0.936, 0.811]], [0.196, [0.831, 0.934, 0.807]], [0.198, [0.831, 0.934, 0.807]], [0.200, [0.827, 0.933, 0.803]], [0.202, [0.827, 0.933, 0.803]], [0.204, [0.824, 0.931, 0.799]], [0.205, [0.824, 0.931, 0.799]], [0.207, [0.820, 0.930, 0.795]], [0.209, [0.820, 0.930, 0.795]], [0.211, [0.816, 0.928, 0.791]], [0.213, [0.816, 0.928, 0.791]], [0.215, [0.813, 0.927, 0.787]], [0.217, [0.813, 0.927, 0.787]], [0.219, [0.809, 0.925, 0.783]], [0.221, [0.809, 0.925, 0.783]], [0.223, [0.805, 0.924, 0.780]], [0.225, [0.805, 0.924, 0.780]], [0.227, [0.802, 0.922, 0.776]], [0.229, [0.802, 0.922, 0.776]], [0.231, [0.798, 0.921, 0.772]], [0.233, [0.798, 0.921, 0.772]], [0.235, [0.794, 0.919, 0.768]], [0.237, [0.794, 0.919, 0.768]], [0.239, [0.791, 0.918, 0.764]], [0.241, [0.791, 0.918, 0.764]], [0.243, [0.787, 0.916, 0.760]], [0.245, [0.787, 0.916, 0.760]], [0.247, [0.783, 0.915, 0.756]], [0.249, [0.783, 0.915, 0.756]], [0.250, [0.779, 0.913, 0.752]], [0.252, [0.779, 0.913, 0.752]], [0.254, [0.775, 0.911, 0.747]], [0.256, [0.775, 0.911, 0.747]], [0.258, [0.770, 0.909, 0.743]], [0.260, [0.770, 0.909, 0.743]], [0.262, [0.765, 0.907, 0.738]], [0.264, [0.765, 0.907, 0.738]], [0.266, [0.761, 0.905, 0.734]], [0.268, [0.761, 0.905, 0.734]], [0.270, [0.756, 0.903, 0.729]], [0.272, [0.756, 0.903, 0.729]], [0.274, [0.751, 0.901, 0.724]], [0.276, [0.751, 0.901, 0.724]], [0.278, [0.746, 0.899, 0.720]], [0.280, [0.746, 0.899, 0.720]], [0.282, [0.742, 0.897, 0.715]], [0.284, [0.742, 0.897, 0.715]], [0.286, [0.737, 0.896, 0.711]], [0.288, [0.737, 0.896, 0.711]], [0.290, [0.732, 0.894, 0.706]], [0.292, [0.732, 0.894, 0.706]], [0.294, [0.728, 0.892, 0.702]], [0.295, [0.728, 0.892, 0.702]], [0.297, [0.723, 0.890, 0.697]], [0.299, [0.723, 0.890, 0.697]], [0.301, [0.718, 0.888, 0.693]], [0.303, [0.718, 0.888, 0.693]], [0.305, [0.714, 0.886, 0.688]], [0.307, [0.714, 0.886, 0.688]], [0.309, [0.709, 0.884, 0.684]], [0.311, [0.709, 0.884, 0.684]], [0.313, [0.704, 0.882, 0.679]], [0.315, [0.704, 0.882, 0.679]], [0.317, [0.700, 0.880, 0.674]], [0.319, [0.700, 0.880, 0.674]], [0.321, [0.695, 0.878, 0.670]], [0.323, [0.695, 0.878, 0.670]], [0.325, [0.690, 0.876, 0.665]], [0.327, [0.690, 0.876, 0.665]], [0.329, [0.686, 0.874, 0.661]], [0.331, [0.686, 0.874, 0.661]], [0.333, [0.681, 0.872, 0.656]], [0.335, [0.681, 0.872, 0.656]], [0.337, [0.676, 0.870, 0.652]], [0.339, [0.676, 0.870, 0.652]], [0.341, [0.672, 0.868, 0.647]], [0.342, [0.672, 0.868, 0.647]], [0.344, [0.667, 0.866, 0.643]], [0.346, [0.667, 0.866, 0.643]], [0.348, [0.662, 0.864, 0.638]], [0.350, [0.662, 0.864, 0.638]], [0.352, [0.658, 0.862, 0.633]], [0.354, [0.658, 0.862, 0.633]], [0.356, [0.653, 0.860, 0.629]], [0.358, [0.653, 0.860, 0.629]], [0.360, [0.648, 0.858, 0.624]], [0.362, [0.648, 0.858, 0.624]], [0.364, [0.644, 0.856, 0.620]], [0.366, [0.644, 0.856, 0.620]], [0.368, [0.639, 0.854, 0.615]], [0.370, [0.639, 0.854, 0.615]], [0.372, [0.634, 0.852, 0.611]], [0.374, [0.634, 0.852, 0.611]], [0.376, [0.629, 0.850, 0.606]], [0.378, [0.629, 0.850, 0.606]], [0.380, [0.624, 0.847, 0.602]], [0.382, [0.624, 0.847, 0.602]], [0.384, [0.618, 0.845, 0.597]], [0.386, [0.618, 0.845, 0.597]], [0.387, [0.613, 0.842, 0.592]], [0.389, [0.613, 0.842, 0.592]], [0.391, [0.607, 0.840, 0.588]], [0.393, [0.607, 0.840, 0.588]], [0.395, [0.602, 0.837, 0.583]], [0.397, [0.602, 0.837, 0.583]], [0.399, [0.596, 0.835, 0.579]], [0.401, [0.596, 0.835, 0.579]], [0.403, [0.591, 0.832, 0.574]], [0.405, [0.591, 0.832, 0.574]], [0.407, [0.585, 0.829, 0.570]], [0.409, [0.585, 0.829, 0.570]], [0.411, [0.579, 0.827, 0.565]], [0.413, [0.579, 0.827, 0.565]], [0.415, [0.574, 0.824, 0.561]], [0.417, [0.574, 0.824, 0.561]], [0.419, [0.568, 0.822, 0.556]], [0.421, [0.568, 0.822, 0.556]], [0.423, [0.563, 0.819, 0.552]], [0.425, [0.563, 0.819, 0.552]], [0.427, [0.557, 0.816, 0.547]], [0.429, [0.557, 0.816, 0.547]], [0.431, [0.552, 0.814, 0.542]], [0.432, [0.552, 0.814, 0.542]], [0.434, [0.546, 0.811, 0.538]], [0.436, [0.546, 0.811, 0.538]], [0.438, [0.541, 0.809, 0.533]], [0.440, [0.541, 0.809, 0.533]], [0.442, [0.535, 0.806, 0.529]], [0.444, [0.535, 0.806, 0.529]], [0.446, [0.530, 0.804, 0.524]], [0.448, [0.530, 0.804, 0.524]], [0.450, [0.524, 0.801, 0.520]], [0.452, [0.524, 0.801, 0.520]], [0.454, [0.519, 0.798, 0.515]], [0.456, [0.519, 0.798, 0.515]], [0.458, [0.513, 0.796, 0.511]], [0.460, [0.513, 0.796, 0.511]], [0.462, [0.507, 0.793, 0.506]], [0.464, [0.507, 0.793, 0.506]], [0.466, [0.502, 0.791, 0.501]], [0.468, [0.502, 0.791, 0.501]], [0.470, [0.496, 0.788, 0.497]], [0.472, [0.496, 0.788, 0.497]], [0.474, [0.491, 0.785, 0.492]], [0.476, [0.491, 0.785, 0.492]], [0.477, [0.485, 0.783, 0.488]], [0.479, [0.485, 0.783, 0.488]], [0.481, [0.480, 0.780, 0.483]], [0.483, [0.480, 0.780, 0.483]], [0.485, [0.474, 0.778, 0.479]], [0.487, [0.474, 0.778, 0.479]], [0.489, [0.469, 0.775, 0.474]], [0.491, [0.469, 0.775, 0.474]], [0.493, [0.463, 0.773, 0.470]], [0.495, [0.463, 0.773, 0.470]], [0.497, [0.458, 0.770, 0.465]], [0.499, [0.458, 0.770, 0.465]], [0.501, [0.452, 0.767, 0.461]], [0.503, [0.452, 0.767, 0.461]], [0.505, [0.445, 0.764, 0.458]], [0.507, [0.445, 0.764, 0.458]], [0.509, [0.439, 0.761, 0.455]], [0.511, [0.439, 0.761, 0.455]], [0.513, [0.433, 0.758, 0.452]], [0.515, [0.433, 0.758, 0.452]], [0.517, [0.427, 0.755, 0.449]], [0.519, [0.427, 0.755, 0.449]], [0.521, [0.420, 0.752, 0.446]], [0.523, [0.420, 0.752, 0.446]], [0.524, [0.414, 0.749, 0.443]], [0.526, [0.414, 0.749, 0.443]], [0.528, [0.408, 0.746, 0.440]], [0.530, [0.408, 0.746, 0.440]], [0.532, [0.402, 0.742, 0.437]], [0.534, [0.402, 0.742, 0.437]], [0.536, [0.395, 0.739, 0.434]], [0.538, [0.395, 0.739, 0.434]], [0.540, [0.389, 0.736, 0.430]], [0.542, [0.389, 0.736, 0.430]], [0.544, [0.383, 0.733, 0.427]], [0.546, [0.383, 0.733, 0.427]], [0.548, [0.376, 0.730, 0.424]], [0.550, [0.376, 0.730, 0.424]], [0.552, [0.370, 0.727, 0.421]], [0.554, [0.370, 0.727, 0.421]], [0.556, [0.364, 0.724, 0.418]], [0.558, [0.364, 0.724, 0.418]], [0.560, [0.358, 0.721, 0.415]], [0.562, [0.358, 0.721, 0.415]], [0.564, [0.351, 0.718, 0.412]], [0.566, [0.351, 0.718, 0.412]], [0.568, [0.345, 0.715, 0.409]], [0.569, [0.345, 0.715, 0.409]], [0.571, [0.339, 0.712, 0.406]], [0.573, [0.339, 0.712, 0.406]], [0.575, [0.333, 0.709, 0.403]], [0.577, [0.333, 0.709, 0.403]], [0.579, [0.326, 0.706, 0.400]], [0.581, [0.326, 0.706, 0.400]], [0.583, [0.320, 0.702, 0.397]], [0.585, [0.320, 0.702, 0.397]], [0.587, [0.314, 0.699, 0.394]], [0.589, [0.314, 0.699, 0.394]], [0.591, [0.307, 0.696, 0.390]], [0.593, [0.307, 0.696, 0.390]], [0.595, [0.301, 0.693, 0.387]], [0.597, [0.301, 0.693, 0.387]], [0.599, [0.295, 0.690, 0.384]], [0.601, [0.295, 0.690, 0.384]], [0.603, [0.289, 0.687, 0.381]], [0.605, [0.289, 0.687, 0.381]], [0.607, [0.282, 0.684, 0.378]], [0.609, [0.282, 0.684, 0.378]], [0.611, [0.276, 0.681, 0.375]], [0.613, [0.276, 0.681, 0.375]], [0.614, [0.270, 0.678, 0.372]], [0.616, [0.270, 0.678, 0.372]], [0.618, [0.264, 0.675, 0.369]], [0.620, [0.264, 0.675, 0.369]], [0.622, [0.257, 0.672, 0.366]], [0.624, [0.257, 0.672, 0.366]], [0.626, [0.253, 0.668, 0.363]], [0.628, [0.253, 0.668, 0.363]], [0.630, [0.249, 0.664, 0.360]], [0.632, [0.249, 0.664, 0.360]], [0.634, [0.245, 0.660, 0.357]], [0.636, [0.245, 0.660, 0.357]], [0.638, [0.242, 0.656, 0.354]], [0.640, [0.242, 0.656, 0.354]], [0.642, [0.238, 0.652, 0.351]], [0.644, [0.238, 0.652, 0.351]], [0.646, [0.234, 0.648, 0.348]], [0.648, [0.234, 0.648, 0.348]], [0.650, [0.230, 0.645, 0.345]], [0.652, [0.230, 0.645, 0.345]], [0.654, [0.227, 0.641, 0.342]], [0.656, [0.227, 0.641, 0.342]], [0.658, [0.223, 0.637, 0.339]], [0.659, [0.223, 0.637, 0.339]], [0.661, [0.219, 0.633, 0.336]], [0.663, [0.219, 0.633, 0.336]], [0.665, [0.216, 0.629, 0.333]], [0.667, [0.216, 0.629, 0.333]], [0.669, [0.212, 0.625, 0.330]], [0.671, [0.212, 0.625, 0.330]], [0.673, [0.208, 0.621, 0.327]], [0.675, [0.208, 0.621, 0.327]], [0.677, [0.205, 0.617, 0.324]], [0.679, [0.205, 0.617, 0.324]], [0.681, [0.201, 0.613, 0.322]], [0.683, [0.201, 0.613, 0.322]], [0.685, [0.197, 0.609, 0.319]], [0.687, [0.197, 0.609, 0.319]], [0.689, [0.194, 0.605, 0.316]], [0.691, [0.194, 0.605, 0.316]], [0.693, [0.190, 0.601, 0.313]], [0.695, [0.190, 0.601, 0.313]], [0.697, [0.186, 0.597, 0.310]], [0.699, [0.186, 0.597, 0.310]], [0.701, [0.182, 0.593, 0.307]], [0.703, [0.182, 0.593, 0.307]], [0.705, [0.179, 0.589, 0.304]], [0.706, [0.179, 0.589, 0.304]], [0.708, [0.175, 0.585, 0.301]], [0.710, [0.175, 0.585, 0.301]], [0.712, [0.171, 0.582, 0.298]], [0.714, [0.171, 0.582, 0.298]], [0.716, [0.168, 0.578, 0.295]], [0.718, [0.168, 0.578, 0.295]], [0.720, [0.164, 0.574, 0.292]], [0.722, [0.164, 0.574, 0.292]], [0.724, [0.160, 0.570, 0.289]], [0.726, [0.160, 0.570, 0.289]], [0.728, [0.157, 0.566, 0.286]], [0.730, [0.157, 0.566, 0.286]], [0.732, [0.153, 0.562, 0.283]], [0.734, [0.153, 0.562, 0.283]], [0.736, [0.149, 0.558, 0.280]], [0.738, [0.149, 0.558, 0.280]], [0.740, [0.146, 0.554, 0.277]], [0.742, [0.146, 0.554, 0.277]], [0.744, [0.142, 0.550, 0.274]], [0.746, [0.142, 0.550, 0.274]], [0.748, [0.138, 0.546, 0.271]], [0.750, [0.138, 0.546, 0.271]], [0.751, [0.134, 0.542, 0.268]], [0.753, [0.134, 0.542, 0.268]], [0.755, [0.130, 0.539, 0.265]], [0.757, [0.130, 0.539, 0.265]], [0.759, [0.125, 0.535, 0.262]], [0.761, [0.125, 0.535, 0.262]], [0.763, [0.121, 0.531, 0.259]], [0.765, [0.121, 0.531, 0.259]], [0.767, [0.117, 0.528, 0.256]], [0.769, [0.117, 0.528, 0.256]], [0.771, [0.112, 0.524, 0.253]], [0.773, [0.112, 0.524, 0.253]], [0.775, [0.108, 0.520, 0.250]], [0.777, [0.108, 0.520, 0.250]], [0.779, [0.104, 0.516, 0.247]], [0.781, [0.104, 0.516, 0.247]], [0.783, [0.100, 0.513, 0.244]], [0.785, [0.100, 0.513, 0.244]], [0.787, [0.095, 0.509, 0.241]], [0.789, [0.095, 0.509, 0.241]], [0.791, [0.091, 0.505, 0.238]], [0.793, [0.091, 0.505, 0.238]], [0.795, [0.087, 0.502, 0.234]], [0.796, [0.087, 0.502, 0.234]], [0.798, [0.082, 0.498, 0.231]], [0.800, [0.082, 0.498, 0.231]], [0.802, [0.078, 0.494, 0.228]], [0.804, [0.078, 0.494, 0.228]], [0.806, [0.074, 0.491, 0.225]], [0.808, [0.074, 0.491, 0.225]], [0.810, [0.069, 0.487, 0.222]], [0.812, [0.069, 0.487, 0.222]], [0.814, [0.065, 0.483, 0.219]], [0.816, [0.065, 0.483, 0.219]], [0.818, [0.061, 0.480, 0.216]], [0.820, [0.061, 0.480, 0.216]], [0.822, [0.057, 0.476, 0.213]], [0.824, [0.057, 0.476, 0.213]], [0.826, [0.052, 0.472, 0.210]], [0.828, [0.052, 0.472, 0.210]], [0.830, [0.048, 0.469, 0.207]], [0.832, [0.048, 0.469, 0.207]], [0.834, [0.044, 0.465, 0.204]], [0.836, [0.044, 0.465, 0.204]], [0.838, [0.039, 0.461, 0.201]], [0.840, [0.039, 0.461, 0.201]], [0.841, [0.035, 0.457, 0.198]], [0.843, [0.035, 0.457, 0.198]], [0.845, [0.031, 0.454, 0.194]], [0.847, [0.031, 0.454, 0.194]], [0.849, [0.026, 0.450, 0.191]], [0.851, [0.026, 0.450, 0.191]], [0.853, [0.022, 0.446, 0.188]], [0.855, [0.022, 0.446, 0.188]], [0.857, [0.018, 0.443, 0.185]], [0.859, [0.018, 0.443, 0.185]], [0.861, [0.013, 0.439, 0.182]], [0.863, [0.013, 0.439, 0.182]], [0.865, [0.009, 0.435, 0.179]], [0.867, [0.009, 0.435, 0.179]], [0.869, [0.005, 0.432, 0.176]], [0.871, [0.005, 0.432, 0.176]], [0.873, [0.001, 0.428, 0.173]], [0.875, [0.001, 0.428, 0.173]], [0.877, [0.000, 0.423, 0.171]], [0.879, [0.000, 0.423, 0.171]], [0.881, [0.000, 0.418, 0.169]], [0.883, [0.000, 0.418, 0.169]], [0.885, [0.000, 0.413, 0.167]], [0.886, [0.000, 0.413, 0.167]], [0.888, [0.000, 0.408, 0.164]], [0.890, [0.000, 0.408, 0.164]], [0.892, [0.000, 0.403, 0.162]], [0.894, [0.000, 0.403, 0.162]], [0.896, [0.000, 0.398, 0.160]], [0.898, [0.000, 0.398, 0.160]], [0.900, [0.000, 0.393, 0.158]], [0.902, [0.000, 0.393, 0.158]], [0.904, [0.000, 0.388, 0.156]], [0.906, [0.000, 0.388, 0.156]], [0.908, [0.000, 0.383, 0.154]], [0.910, [0.000, 0.383, 0.154]], [0.912, [0.000, 0.378, 0.152]], [0.914, [0.000, 0.378, 0.152]], [0.916, [0.000, 0.373, 0.150]], [0.918, [0.000, 0.373, 0.150]], [0.920, [0.000, 0.368, 0.148]], [0.922, [0.000, 0.368, 0.148]], [0.924, [0.000, 0.363, 0.146]], [0.926, [0.000, 0.363, 0.146]], [0.928, [0.000, 0.357, 0.144]], [0.930, [0.000, 0.357, 0.144]], [0.932, [0.000, 0.352, 0.141]], [0.933, [0.000, 0.352, 0.141]], [0.935, [0.000, 0.347, 0.139]], [0.937, [0.000, 0.347, 0.139]], [0.939, [0.000, 0.342, 0.137]], [0.941, [0.000, 0.342, 0.137]], [0.943, [0.000, 0.337, 0.135]], [0.945, [0.000, 0.337, 0.135]], [0.947, [0.000, 0.332, 0.133]], [0.949, [0.000, 0.332, 0.133]], [0.951, [0.000, 0.327, 0.131]], [0.953, [0.000, 0.327, 0.131]], [0.955, [0.000, 0.322, 0.129]], [0.957, [0.000, 0.322, 0.129]], [0.959, [0.000, 0.317, 0.127]], [0.961, [0.000, 0.317, 0.127]], [0.963, [0.000, 0.312, 0.125]], [0.965, [0.000, 0.312, 0.125]], [0.967, [0.000, 0.307, 0.123]], [0.969, [0.000, 0.307, 0.123]], [0.971, [0.000, 0.302, 0.121]], [0.973, [0.000, 0.302, 0.121]], [0.975, [0.000, 0.297, 0.118]], [0.977, [0.000, 0.297, 0.118]], [0.978, [0.000, 0.292, 0.116]], [0.980, [0.000, 0.292, 0.116]], [0.982, [0.000, 0.287, 0.114]], [0.984, [0.000, 0.287, 0.114]], [0.986, [0.000, 0.282, 0.112]], [0.988, [0.000, 0.282, 0.112]], [0.990, [0.000, 0.277, 0.110]], [0.992, [0.000, 0.277, 0.110]], [0.994, [0.000, 0.272, 0.108]], [0.996, [0.000, 0.272, 0.108]], [0.998, [0.000, 0.267, 0.106]], [1.000, [0.000, 0.267, 0.106]]];
+var Greys = [[0.000, [1.000, 1.000, 1.000]], [0.002, [1.000, 1.000, 1.000]], [0.004, [0.998, 0.998, 0.998]], [0.006, [0.998, 0.998, 0.998]], [0.008, [0.996, 0.996, 0.996]], [0.010, [0.996, 0.996, 0.996]], [0.012, [0.994, 0.994, 0.994]], [0.014, [0.994, 0.994, 0.994]], [0.016, [0.993, 0.993, 0.993]], [0.018, [0.993, 0.993, 0.993]], [0.020, [0.991, 0.991, 0.991]], [0.022, [0.991, 0.991, 0.991]], [0.023, [0.989, 0.989, 0.989]], [0.025, [0.989, 0.989, 0.989]], [0.027, [0.987, 0.987, 0.987]], [0.029, [0.987, 0.987, 0.987]], [0.031, [0.985, 0.985, 0.985]], [0.033, [0.985, 0.985, 0.985]], [0.035, [0.983, 0.983, 0.983]], [0.037, [0.983, 0.983, 0.983]], [0.039, [0.982, 0.982, 0.982]], [0.041, [0.982, 0.982, 0.982]], [0.043, [0.980, 0.980, 0.980]], [0.045, [0.980, 0.980, 0.980]], [0.047, [0.978, 0.978, 0.978]], [0.049, [0.978, 0.978, 0.978]], [0.051, [0.976, 0.976, 0.976]], [0.053, [0.976, 0.976, 0.976]], [0.055, [0.974, 0.974, 0.974]], [0.057, [0.974, 0.974, 0.974]], [0.059, [0.972, 0.972, 0.972]], [0.061, [0.972, 0.972, 0.972]], [0.063, [0.970, 0.970, 0.970]], [0.065, [0.970, 0.970, 0.970]], [0.067, [0.969, 0.969, 0.969]], [0.068, [0.969, 0.969, 0.969]], [0.070, [0.967, 0.967, 0.967]], [0.072, [0.967, 0.967, 0.967]], [0.074, [0.965, 0.965, 0.965]], [0.076, [0.965, 0.965, 0.965]], [0.078, [0.963, 0.963, 0.963]], [0.080, [0.963, 0.963, 0.963]], [0.082, [0.961, 0.961, 0.961]], [0.084, [0.961, 0.961, 0.961]], [0.086, [0.959, 0.959, 0.959]], [0.088, [0.959, 0.959, 0.959]], [0.090, [0.958, 0.958, 0.958]], [0.092, [0.958, 0.958, 0.958]], [0.094, [0.956, 0.956, 0.956]], [0.096, [0.956, 0.956, 0.956]], [0.098, [0.954, 0.954, 0.954]], [0.100, [0.954, 0.954, 0.954]], [0.102, [0.952, 0.952, 0.952]], [0.104, [0.952, 0.952, 0.952]], [0.106, [0.950, 0.950, 0.950]], [0.108, [0.950, 0.950, 0.950]], [0.110, [0.948, 0.948, 0.948]], [0.112, [0.948, 0.948, 0.948]], [0.114, [0.946, 0.946, 0.946]], [0.115, [0.946, 0.946, 0.946]], [0.117, [0.945, 0.945, 0.945]], [0.119, [0.945, 0.945, 0.945]], [0.121, [0.943, 0.943, 0.943]], [0.123, [0.943, 0.943, 0.943]], [0.125, [0.941, 0.941, 0.941]], [0.127, [0.941, 0.941, 0.941]], [0.129, [0.938, 0.938, 0.938]], [0.131, [0.938, 0.938, 0.938]], [0.133, [0.935, 0.935, 0.935]], [0.135, [0.935, 0.935, 0.935]], [0.137, [0.932, 0.932, 0.932]], [0.139, [0.932, 0.932, 0.932]], [0.141, [0.930, 0.930, 0.930]], [0.143, [0.930, 0.930, 0.930]], [0.145, [0.927, 0.927, 0.927]], [0.147, [0.927, 0.927, 0.927]], [0.149, [0.924, 0.924, 0.924]], [0.151, [0.924, 0.924, 0.924]], [0.153, [0.921, 0.921, 0.921]], [0.155, [0.921, 0.921, 0.921]], [0.157, [0.918, 0.918, 0.918]], [0.159, [0.918, 0.918, 0.918]], [0.160, [0.915, 0.915, 0.915]], [0.162, [0.915, 0.915, 0.915]], [0.164, [0.913, 0.913, 0.913]], [0.166, [0.913, 0.913, 0.913]], [0.168, [0.910, 0.910, 0.910]], [0.170, [0.910, 0.910, 0.910]], [0.172, [0.907, 0.907, 0.907]], [0.174, [0.907, 0.907, 0.907]], [0.176, [0.904, 0.904, 0.904]], [0.178, [0.904, 0.904, 0.904]], [0.180, [0.901, 0.901, 0.901]], [0.182, [0.901, 0.901, 0.901]], [0.184, [0.898, 0.898, 0.898]], [0.186, [0.898, 0.898, 0.898]], [0.188, [0.896, 0.896, 0.896]], [0.190, [0.896, 0.896, 0.896]], [0.192, [0.893, 0.893, 0.893]], [0.194, [0.893, 0.893, 0.893]], [0.196, [0.890, 0.890, 0.890]], [0.198, [0.890, 0.890, 0.890]], [0.200, [0.887, 0.887, 0.887]], [0.202, [0.887, 0.887, 0.887]], [0.204, [0.884, 0.884, 0.884]], [0.205, [0.884, 0.884, 0.884]], [0.207, [0.881, 0.881, 0.881]], [0.209, [0.881, 0.881, 0.881]], [0.211, [0.879, 0.879, 0.879]], [0.213, [0.879, 0.879, 0.879]], [0.215, [0.876, 0.876, 0.876]], [0.217, [0.876, 0.876, 0.876]], [0.219, [0.873, 0.873, 0.873]], [0.221, [0.873, 0.873, 0.873]], [0.223, [0.870, 0.870, 0.870]], [0.225, [0.870, 0.870, 0.870]], [0.227, [0.867, 0.867, 0.867]], [0.229, [0.867, 0.867, 0.867]], [0.231, [0.864, 0.864, 0.864]], [0.233, [0.864, 0.864, 0.864]], [0.235, [0.862, 0.862, 0.862]], [0.237, [0.862, 0.862, 0.862]], [0.239, [0.859, 0.859, 0.859]], [0.241, [0.859, 0.859, 0.859]], [0.243, [0.856, 0.856, 0.856]], [0.245, [0.856, 0.856, 0.856]], [0.247, [0.853, 0.853, 0.853]], [0.249, [0.853, 0.853, 0.853]], [0.250, [0.850, 0.850, 0.850]], [0.252, [0.850, 0.850, 0.850]], [0.254, [0.847, 0.847, 0.847]], [0.256, [0.847, 0.847, 0.847]], [0.258, [0.843, 0.843, 0.843]], [0.260, [0.843, 0.843, 0.843]], [0.262, [0.840, 0.840, 0.840]], [0.264, [0.840, 0.840, 0.840]], [0.266, [0.836, 0.836, 0.836]], [0.268, [0.836, 0.836, 0.836]], [0.270, [0.833, 0.833, 0.833]], [0.272, [0.833, 0.833, 0.833]], [0.274, [0.829, 0.829, 0.829]], [0.276, [0.829, 0.829, 0.829]], [0.278, [0.826, 0.826, 0.826]], [0.280, [0.826, 0.826, 0.826]], [0.282, [0.823, 0.823, 0.823]], [0.284, [0.823, 0.823, 0.823]], [0.286, [0.819, 0.819, 0.819]], [0.288, [0.819, 0.819, 0.819]], [0.290, [0.816, 0.816, 0.816]], [0.292, [0.816, 0.816, 0.816]], [0.294, [0.812, 0.812, 0.812]], [0.295, [0.812, 0.812, 0.812]], [0.297, [0.809, 0.809, 0.809]], [0.299, [0.809, 0.809, 0.809]], [0.301, [0.805, 0.805, 0.805]], [0.303, [0.805, 0.805, 0.805]], [0.305, [0.802, 0.802, 0.802]], [0.307, [0.802, 0.802, 0.802]], [0.309, [0.798, 0.798, 0.798]], [0.311, [0.798, 0.798, 0.798]], [0.313, [0.795, 0.795, 0.795]], [0.315, [0.795, 0.795, 0.795]], [0.317, [0.792, 0.792, 0.792]], [0.319, [0.792, 0.792, 0.792]], [0.321, [0.788, 0.788, 0.788]], [0.323, [0.788, 0.788, 0.788]], [0.325, [0.785, 0.785, 0.785]], [0.327, [0.785, 0.785, 0.785]], [0.329, [0.781, 0.781, 0.781]], [0.331, [0.781, 0.781, 0.781]], [0.333, [0.778, 0.778, 0.778]], [0.335, [0.778, 0.778, 0.778]], [0.337, [0.774, 0.774, 0.774]], [0.339, [0.774, 0.774, 0.774]], [0.341, [0.771, 0.771, 0.771]], [0.342, [0.771, 0.771, 0.771]], [0.344, [0.767, 0.767, 0.767]], [0.346, [0.767, 0.767, 0.767]], [0.348, [0.764, 0.764, 0.764]], [0.350, [0.764, 0.764, 0.764]], [0.352, [0.761, 0.761, 0.761]], [0.354, [0.761, 0.761, 0.761]], [0.356, [0.757, 0.757, 0.757]], [0.358, [0.757, 0.757, 0.757]], [0.360, [0.754, 0.754, 0.754]], [0.362, [0.754, 0.754, 0.754]], [0.364, [0.750, 0.750, 0.750]], [0.366, [0.750, 0.750, 0.750]], [0.368, [0.747, 0.747, 0.747]], [0.370, [0.747, 0.747, 0.747]], [0.372, [0.743, 0.743, 0.743]], [0.374, [0.743, 0.743, 0.743]], [0.376, [0.739, 0.739, 0.739]], [0.378, [0.739, 0.739, 0.739]], [0.380, [0.735, 0.735, 0.735]], [0.382, [0.735, 0.735, 0.735]], [0.384, [0.730, 0.730, 0.730]], [0.386, [0.730, 0.730, 0.730]], [0.387, [0.725, 0.725, 0.725]], [0.389, [0.725, 0.725, 0.725]], [0.391, [0.720, 0.720, 0.720]], [0.393, [0.720, 0.720, 0.720]], [0.395, [0.715, 0.715, 0.715]], [0.397, [0.715, 0.715, 0.715]], [0.399, [0.711, 0.711, 0.711]], [0.401, [0.711, 0.711, 0.711]], [0.403, [0.706, 0.706, 0.706]], [0.405, [0.706, 0.706, 0.706]], [0.407, [0.701, 0.701, 0.701]], [0.409, [0.701, 0.701, 0.701]], [0.411, [0.696, 0.696, 0.696]], [0.413, [0.696, 0.696, 0.696]], [0.415, [0.691, 0.691, 0.691]], [0.417, [0.691, 0.691, 0.691]], [0.419, [0.687, 0.687, 0.687]], [0.421, [0.687, 0.687, 0.687]], [0.423, [0.682, 0.682, 0.682]], [0.425, [0.682, 0.682, 0.682]], [0.427, [0.677, 0.677, 0.677]], [0.429, [0.677, 0.677, 0.677]], [0.431, [0.672, 0.672, 0.672]], [0.432, [0.672, 0.672, 0.672]], [0.434, [0.667, 0.667, 0.667]], [0.436, [0.667, 0.667, 0.667]], [0.438, [0.663, 0.663, 0.663]], [0.440, [0.663, 0.663, 0.663]], [0.442, [0.658, 0.658, 0.658]], [0.444, [0.658, 0.658, 0.658]], [0.446, [0.653, 0.653, 0.653]], [0.448, [0.653, 0.653, 0.653]], [0.450, [0.648, 0.648, 0.648]], [0.452, [0.648, 0.648, 0.648]], [0.454, [0.643, 0.643, 0.643]], [0.456, [0.643, 0.643, 0.643]], [0.458, [0.639, 0.639, 0.639]], [0.460, [0.639, 0.639, 0.639]], [0.462, [0.634, 0.634, 0.634]], [0.464, [0.634, 0.634, 0.634]], [0.466, [0.629, 0.629, 0.629]], [0.468, [0.629, 0.629, 0.629]], [0.470, [0.624, 0.624, 0.624]], [0.472, [0.624, 0.624, 0.624]], [0.474, [0.619, 0.619, 0.619]], [0.476, [0.619, 0.619, 0.619]], [0.477, [0.615, 0.615, 0.615]], [0.479, [0.615, 0.615, 0.615]], [0.481, [0.610, 0.610, 0.610]], [0.483, [0.610, 0.610, 0.610]], [0.485, [0.605, 0.605, 0.605]], [0.487, [0.605, 0.605, 0.605]], [0.489, [0.600, 0.600, 0.600]], [0.491, [0.600, 0.600, 0.600]], [0.493, [0.595, 0.595, 0.595]], [0.495, [0.595, 0.595, 0.595]], [0.497, [0.591, 0.591, 0.591]], [0.499, [0.591, 0.591, 0.591]], [0.501, [0.586, 0.586, 0.586]], [0.503, [0.586, 0.586, 0.586]], [0.505, [0.582, 0.582, 0.582]], [0.507, [0.582, 0.582, 0.582]], [0.509, [0.577, 0.577, 0.577]], [0.511, [0.577, 0.577, 0.577]], [0.513, [0.573, 0.573, 0.573]], [0.515, [0.573, 0.573, 0.573]], [0.517, [0.569, 0.569, 0.569]], [0.519, [0.569, 0.569, 0.569]], [0.521, [0.565, 0.565, 0.565]], [0.523, [0.565, 0.565, 0.565]], [0.524, [0.560, 0.560, 0.560]], [0.526, [0.560, 0.560, 0.560]], [0.528, [0.556, 0.556, 0.556]], [0.530, [0.556, 0.556, 0.556]], [0.532, [0.552, 0.552, 0.552]], [0.534, [0.552, 0.552, 0.552]], [0.536, [0.547, 0.547, 0.547]], [0.538, [0.547, 0.547, 0.547]], [0.540, [0.543, 0.543, 0.543]], [0.542, [0.543, 0.543, 0.543]], [0.544, [0.539, 0.539, 0.539]], [0.546, [0.539, 0.539, 0.539]], [0.548, [0.534, 0.534, 0.534]], [0.550, [0.534, 0.534, 0.534]], [0.552, [0.530, 0.530, 0.530]], [0.554, [0.530, 0.530, 0.530]], [0.556, [0.526, 0.526, 0.526]], [0.558, [0.526, 0.526, 0.526]], [0.560, [0.521, 0.521, 0.521]], [0.562, [0.521, 0.521, 0.521]], [0.564, [0.517, 0.517, 0.517]], [0.566, [0.517, 0.517, 0.517]], [0.568, [0.513, 0.513, 0.513]], [0.569, [0.513, 0.513, 0.513]], [0.571, [0.509, 0.509, 0.509]], [0.573, [0.509, 0.509, 0.509]], [0.575, [0.504, 0.504, 0.504]], [0.577, [0.504, 0.504, 0.504]], [0.579, [0.500, 0.500, 0.500]], [0.581, [0.500, 0.500, 0.500]], [0.583, [0.496, 0.496, 0.496]], [0.585, [0.496, 0.496, 0.496]], [0.587, [0.491, 0.491, 0.491]], [0.589, [0.491, 0.491, 0.491]], [0.591, [0.487, 0.487, 0.487]], [0.593, [0.487, 0.487, 0.487]], [0.595, [0.483, 0.483, 0.483]], [0.597, [0.483, 0.483, 0.483]], [0.599, [0.478, 0.478, 0.478]], [0.601, [0.478, 0.478, 0.478]], [0.603, [0.474, 0.474, 0.474]], [0.605, [0.474, 0.474, 0.474]], [0.607, [0.470, 0.470, 0.470]], [0.609, [0.470, 0.470, 0.470]], [0.611, [0.466, 0.466, 0.466]], [0.613, [0.466, 0.466, 0.466]], [0.614, [0.461, 0.461, 0.461]], [0.616, [0.461, 0.461, 0.461]], [0.618, [0.457, 0.457, 0.457]], [0.620, [0.457, 0.457, 0.457]], [0.622, [0.453, 0.453, 0.453]], [0.624, [0.453, 0.453, 0.453]], [0.626, [0.448, 0.448, 0.448]], [0.628, [0.448, 0.448, 0.448]], [0.630, [0.444, 0.444, 0.444]], [0.632, [0.444, 0.444, 0.444]], [0.634, [0.440, 0.440, 0.440]], [0.636, [0.440, 0.440, 0.440]], [0.638, [0.436, 0.436, 0.436]], [0.640, [0.436, 0.436, 0.436]], [0.642, [0.432, 0.432, 0.432]], [0.644, [0.432, 0.432, 0.432]], [0.646, [0.428, 0.428, 0.428]], [0.648, [0.428, 0.428, 0.428]], [0.650, [0.424, 0.424, 0.424]], [0.652, [0.424, 0.424, 0.424]], [0.654, [0.420, 0.420, 0.420]], [0.656, [0.420, 0.420, 0.420]], [0.658, [0.416, 0.416, 0.416]], [0.659, [0.416, 0.416, 0.416]], [0.661, [0.412, 0.412, 0.412]], [0.663, [0.412, 0.412, 0.412]], [0.665, [0.408, 0.408, 0.408]], [0.667, [0.408, 0.408, 0.408]], [0.669, [0.404, 0.404, 0.404]], [0.671, [0.404, 0.404, 0.404]], [0.673, [0.400, 0.400, 0.400]], [0.675, [0.400, 0.400, 0.400]], [0.677, [0.396, 0.396, 0.396]], [0.679, [0.396, 0.396, 0.396]], [0.681, [0.392, 0.392, 0.392]], [0.683, [0.392, 0.392, 0.392]], [0.685, [0.388, 0.388, 0.388]], [0.687, [0.388, 0.388, 0.388]], [0.689, [0.383, 0.383, 0.383]], [0.691, [0.383, 0.383, 0.383]], [0.693, [0.379, 0.379, 0.379]], [0.695, [0.379, 0.379, 0.379]], [0.697, [0.375, 0.375, 0.375]], [0.699, [0.375, 0.375, 0.375]], [0.701, [0.371, 0.371, 0.371]], [0.703, [0.371, 0.371, 0.371]], [0.705, [0.367, 0.367, 0.367]], [0.706, [0.367, 0.367, 0.367]], [0.708, [0.363, 0.363, 0.363]], [0.710, [0.363, 0.363, 0.363]], [0.712, [0.359, 0.359, 0.359]], [0.714, [0.359, 0.359, 0.359]], [0.716, [0.355, 0.355, 0.355]], [0.718, [0.355, 0.355, 0.355]], [0.720, [0.351, 0.351, 0.351]], [0.722, [0.351, 0.351, 0.351]], [0.724, [0.347, 0.347, 0.347]], [0.726, [0.347, 0.347, 0.347]], [0.728, [0.343, 0.343, 0.343]], [0.730, [0.343, 0.343, 0.343]], [0.732, [0.339, 0.339, 0.339]], [0.734, [0.339, 0.339, 0.339]], [0.736, [0.335, 0.335, 0.335]], [0.738, [0.335, 0.335, 0.335]], [0.740, [0.331, 0.331, 0.331]], [0.742, [0.331, 0.331, 0.331]], [0.744, [0.327, 0.327, 0.327]], [0.746, [0.327, 0.327, 0.327]], [0.748, [0.323, 0.323, 0.323]], [0.750, [0.323, 0.323, 0.323]], [0.751, [0.317, 0.317, 0.317]], [0.753, [0.317, 0.317, 0.317]], [0.755, [0.312, 0.312, 0.312]], [0.757, [0.312, 0.312, 0.312]], [0.759, [0.306, 0.306, 0.306]], [0.761, [0.306, 0.306, 0.306]], [0.763, [0.301, 0.301, 0.301]], [0.765, [0.301, 0.301, 0.301]], [0.767, [0.295, 0.295, 0.295]], [0.769, [0.295, 0.295, 0.295]], [0.771, [0.290, 0.290, 0.290]], [0.773, [0.290, 0.290, 0.290]], [0.775, [0.284, 0.284, 0.284]], [0.777, [0.284, 0.284, 0.284]], [0.779, [0.279, 0.279, 0.279]], [0.781, [0.279, 0.279, 0.279]], [0.783, [0.273, 0.273, 0.273]], [0.785, [0.273, 0.273, 0.273]], [0.787, [0.268, 0.268, 0.268]], [0.789, [0.268, 0.268, 0.268]], [0.791, [0.262, 0.262, 0.262]], [0.793, [0.262, 0.262, 0.262]], [0.795, [0.257, 0.257, 0.257]], [0.796, [0.257, 0.257, 0.257]], [0.798, [0.251, 0.251, 0.251]], [0.800, [0.251, 0.251, 0.251]], [0.802, [0.245, 0.245, 0.245]], [0.804, [0.245, 0.245, 0.245]], [0.806, [0.240, 0.240, 0.240]], [0.808, [0.240, 0.240, 0.240]], [0.810, [0.234, 0.234, 0.234]], [0.812, [0.234, 0.234, 0.234]], [0.814, [0.229, 0.229, 0.229]], [0.816, [0.229, 0.229, 0.229]], [0.818, [0.223, 0.223, 0.223]], [0.820, [0.223, 0.223, 0.223]], [0.822, [0.218, 0.218, 0.218]], [0.824, [0.218, 0.218, 0.218]], [0.826, [0.212, 0.212, 0.212]], [0.828, [0.212, 0.212, 0.212]], [0.830, [0.207, 0.207, 0.207]], [0.832, [0.207, 0.207, 0.207]], [0.834, [0.201, 0.201, 0.201]], [0.836, [0.201, 0.201, 0.201]], [0.838, [0.196, 0.196, 0.196]], [0.840, [0.196, 0.196, 0.196]], [0.841, [0.190, 0.190, 0.190]], [0.843, [0.190, 0.190, 0.190]], [0.845, [0.185, 0.185, 0.185]], [0.847, [0.185, 0.185, 0.185]], [0.849, [0.179, 0.179, 0.179]], [0.851, [0.179, 0.179, 0.179]], [0.853, [0.173, 0.173, 0.173]], [0.855, [0.173, 0.173, 0.173]], [0.857, [0.168, 0.168, 0.168]], [0.859, [0.168, 0.168, 0.168]], [0.861, [0.162, 0.162, 0.162]], [0.863, [0.162, 0.162, 0.162]], [0.865, [0.157, 0.157, 0.157]], [0.867, [0.157, 0.157, 0.157]], [0.869, [0.151, 0.151, 0.151]], [0.871, [0.151, 0.151, 0.151]], [0.873, [0.146, 0.146, 0.146]], [0.875, [0.146, 0.146, 0.146]], [0.877, [0.141, 0.141, 0.141]], [0.879, [0.141, 0.141, 0.141]], [0.881, [0.137, 0.137, 0.137]], [0.883, [0.137, 0.137, 0.137]], [0.885, [0.132, 0.132, 0.132]], [0.886, [0.132, 0.132, 0.132]], [0.888, [0.127, 0.127, 0.127]], [0.890, [0.127, 0.127, 0.127]], [0.892, [0.123, 0.123, 0.123]], [0.894, [0.123, 0.123, 0.123]], [0.896, [0.118, 0.118, 0.118]], [0.898, [0.118, 0.118, 0.118]], [0.900, [0.114, 0.114, 0.114]], [0.902, [0.114, 0.114, 0.114]], [0.904, [0.109, 0.109, 0.109]], [0.906, [0.109, 0.109, 0.109]], [0.908, [0.105, 0.105, 0.105]], [0.910, [0.105, 0.105, 0.105]], [0.912, [0.100, 0.100, 0.100]], [0.914, [0.100, 0.100, 0.100]], [0.916, [0.096, 0.096, 0.096]], [0.918, [0.096, 0.096, 0.096]], [0.920, [0.091, 0.091, 0.091]], [0.922, [0.091, 0.091, 0.091]], [0.924, [0.086, 0.086, 0.086]], [0.926, [0.086, 0.086, 0.086]], [0.928, [0.082, 0.082, 0.082]], [0.930, [0.082, 0.082, 0.082]], [0.932, [0.077, 0.077, 0.077]], [0.933, [0.077, 0.077, 0.077]], [0.935, [0.073, 0.073, 0.073]], [0.937, [0.073, 0.073, 0.073]], [0.939, [0.068, 0.068, 0.068]], [0.941, [0.068, 0.068, 0.068]], [0.943, [0.064, 0.064, 0.064]], [0.945, [0.064, 0.064, 0.064]], [0.947, [0.059, 0.059, 0.059]], [0.949, [0.059, 0.059, 0.059]], [0.951, [0.055, 0.055, 0.055]], [0.953, [0.055, 0.055, 0.055]], [0.955, [0.050, 0.050, 0.050]], [0.957, [0.050, 0.050, 0.050]], [0.959, [0.046, 0.046, 0.046]], [0.961, [0.046, 0.046, 0.046]], [0.963, [0.041, 0.041, 0.041]], [0.965, [0.041, 0.041, 0.041]], [0.967, [0.036, 0.036, 0.036]], [0.969, [0.036, 0.036, 0.036]], [0.971, [0.032, 0.032, 0.032]], [0.973, [0.032, 0.032, 0.032]], [0.975, [0.027, 0.027, 0.027]], [0.977, [0.027, 0.027, 0.027]], [0.978, [0.023, 0.023, 0.023]], [0.980, [0.023, 0.023, 0.023]], [0.982, [0.018, 0.018, 0.018]], [0.984, [0.018, 0.018, 0.018]], [0.986, [0.014, 0.014, 0.014]], [0.988, [0.014, 0.014, 0.014]], [0.990, [0.009, 0.009, 0.009]], [0.992, [0.009, 0.009, 0.009]], [0.994, [0.005, 0.005, 0.005]], [0.996, [0.005, 0.005, 0.005]], [0.998, [0.000, 0.000, 0.000]], [1.000, [0.000, 0.000, 0.000]]];
+var OrRd = [[0.000, [1.000, 0.969, 0.925]], [0.002, [1.000, 0.969, 0.925]], [0.004, [1.000, 0.967, 0.921]], [0.006, [1.000, 0.967, 0.921]], [0.008, [1.000, 0.965, 0.917]], [0.010, [1.000, 0.965, 0.917]], [0.012, [1.000, 0.963, 0.912]], [0.014, [1.000, 0.963, 0.912]], [0.016, [1.000, 0.961, 0.908]], [0.018, [1.000, 0.961, 0.908]], [0.020, [0.999, 0.959, 0.903]], [0.022, [0.999, 0.959, 0.903]], [0.023, [0.999, 0.958, 0.899]], [0.025, [0.999, 0.958, 0.899]], [0.027, [0.999, 0.956, 0.894]], [0.029, [0.999, 0.956, 0.894]], [0.031, [0.999, 0.954, 0.890]], [0.033, [0.999, 0.954, 0.890]], [0.035, [0.999, 0.952, 0.886]], [0.037, [0.999, 0.952, 0.886]], [0.039, [0.999, 0.950, 0.881]], [0.041, [0.999, 0.950, 0.881]], [0.043, [0.999, 0.948, 0.877]], [0.045, [0.999, 0.948, 0.877]], [0.047, [0.999, 0.946, 0.872]], [0.049, [0.999, 0.946, 0.872]], [0.051, [0.998, 0.945, 0.868]], [0.053, [0.998, 0.945, 0.868]], [0.055, [0.998, 0.943, 0.863]], [0.057, [0.998, 0.943, 0.863]], [0.059, [0.998, 0.941, 0.859]], [0.061, [0.998, 0.941, 0.859]], [0.063, [0.998, 0.939, 0.855]], [0.065, [0.998, 0.939, 0.855]], [0.067, [0.998, 0.937, 0.850]], [0.068, [0.998, 0.937, 0.850]], [0.070, [0.998, 0.935, 0.846]], [0.072, [0.998, 0.935, 0.846]], [0.074, [0.998, 0.934, 0.841]], [0.076, [0.998, 0.934, 0.841]], [0.078, [0.998, 0.932, 0.837]], [0.080, [0.998, 0.932, 0.837]], [0.082, [0.997, 0.930, 0.832]], [0.084, [0.997, 0.930, 0.832]], [0.086, [0.997, 0.928, 0.828]], [0.088, [0.997, 0.928, 0.828]], [0.090, [0.997, 0.926, 0.824]], [0.092, [0.997, 0.926, 0.824]], [0.094, [0.997, 0.924, 0.819]], [0.096, [0.997, 0.924, 0.819]], [0.098, [0.997, 0.922, 0.815]], [0.100, [0.997, 0.922, 0.815]], [0.102, [0.997, 0.921, 0.810]], [0.104, [0.997, 0.921, 0.810]], [0.106, [0.997, 0.919, 0.806]], [0.108, [0.997, 0.919, 0.806]], [0.110, [0.997, 0.917, 0.801]], [0.112, [0.997, 0.917, 0.801]], [0.114, [0.996, 0.915, 0.797]], [0.115, [0.996, 0.915, 0.797]], [0.117, [0.996, 0.913, 0.793]], [0.119, [0.996, 0.913, 0.793]], [0.121, [0.996, 0.911, 0.788]], [0.123, [0.996, 0.911, 0.788]], [0.125, [0.996, 0.909, 0.784]], [0.127, [0.996, 0.909, 0.784]], [0.129, [0.996, 0.907, 0.779]], [0.131, [0.996, 0.907, 0.779]], [0.133, [0.996, 0.905, 0.773]], [0.135, [0.996, 0.905, 0.773]], [0.137, [0.996, 0.902, 0.768]], [0.139, [0.996, 0.902, 0.768]], [0.141, [0.996, 0.900, 0.763]], [0.143, [0.996, 0.900, 0.763]], [0.145, [0.995, 0.897, 0.758]], [0.147, [0.995, 0.897, 0.758]], [0.149, [0.995, 0.895, 0.753]], [0.151, [0.995, 0.895, 0.753]], [0.153, [0.995, 0.892, 0.747]], [0.155, [0.995, 0.892, 0.747]], [0.157, [0.995, 0.890, 0.742]], [0.159, [0.995, 0.890, 0.742]], [0.160, [0.995, 0.887, 0.737]], [0.162, [0.995, 0.887, 0.737]], [0.164, [0.995, 0.885, 0.732]], [0.166, [0.995, 0.885, 0.732]], [0.168, [0.995, 0.882, 0.727]], [0.170, [0.995, 0.882, 0.727]], [0.172, [0.995, 0.880, 0.722]], [0.174, [0.995, 0.880, 0.722]], [0.176, [0.994, 0.878, 0.716]], [0.178, [0.994, 0.878, 0.716]], [0.180, [0.994, 0.875, 0.711]], [0.182, [0.994, 0.875, 0.711]], [0.184, [0.994, 0.873, 0.706]], [0.186, [0.994, 0.873, 0.706]], [0.188, [0.994, 0.870, 0.701]], [0.190, [0.994, 0.870, 0.701]], [0.192, [0.994, 0.868, 0.696]], [0.194, [0.994, 0.868, 0.696]], [0.196, [0.994, 0.865, 0.691]], [0.198, [0.994, 0.865, 0.691]], [0.200, [0.994, 0.863, 0.685]], [0.202, [0.994, 0.863, 0.685]], [0.204, [0.994, 0.860, 0.680]], [0.205, [0.994, 0.860, 0.680]], [0.207, [0.993, 0.858, 0.675]], [0.209, [0.993, 0.858, 0.675]], [0.211, [0.993, 0.855, 0.670]], [0.213, [0.993, 0.855, 0.670]], [0.215, [0.993, 0.853, 0.665]], [0.217, [0.993, 0.853, 0.665]], [0.219, [0.993, 0.850, 0.660]], [0.221, [0.993, 0.850, 0.660]], [0.223, [0.993, 0.848, 0.654]], [0.225, [0.993, 0.848, 0.654]], [0.227, [0.993, 0.846, 0.649]], [0.229, [0.993, 0.846, 0.649]], [0.231, [0.993, 0.843, 0.644]], [0.233, [0.993, 0.843, 0.644]], [0.235, [0.993, 0.841, 0.639]], [0.237, [0.993, 0.841, 0.639]], [0.239, [0.992, 0.838, 0.634]], [0.241, [0.992, 0.838, 0.634]], [0.243, [0.992, 0.836, 0.629]], [0.245, [0.992, 0.836, 0.629]], [0.247, [0.992, 0.833, 0.623]], [0.249, [0.992, 0.833, 0.623]], [0.250, [0.992, 0.831, 0.619]], [0.252, [0.992, 0.831, 0.619]], [0.254, [0.992, 0.828, 0.616]], [0.256, [0.992, 0.828, 0.616]], [0.258, [0.992, 0.824, 0.612]], [0.260, [0.992, 0.824, 0.612]], [0.262, [0.992, 0.821, 0.609]], [0.264, [0.992, 0.821, 0.609]], [0.266, [0.992, 0.818, 0.606]], [0.268, [0.992, 0.818, 0.606]], [0.270, [0.992, 0.815, 0.603]], [0.272, [0.992, 0.815, 0.603]], [0.274, [0.992, 0.812, 0.600]], [0.276, [0.992, 0.812, 0.600]], [0.278, [0.992, 0.809, 0.596]], [0.280, [0.992, 0.809, 0.596]], [0.282, [0.992, 0.806, 0.593]], [0.284, [0.992, 0.806, 0.593]], [0.286, [0.992, 0.803, 0.590]], [0.288, [0.992, 0.803, 0.590]], [0.290, [0.992, 0.800, 0.587]], [0.292, [0.992, 0.800, 0.587]], [0.294, [0.992, 0.797, 0.584]], [0.295, [0.992, 0.797, 0.584]], [0.297, [0.992, 0.794, 0.580]], [0.299, [0.992, 0.794, 0.580]], [0.301, [0.992, 0.791, 0.577]], [0.303, [0.992, 0.791, 0.577]], [0.305, [0.992, 0.788, 0.574]], [0.307, [0.992, 0.788, 0.574]], [0.309, [0.992, 0.784, 0.571]], [0.311, [0.992, 0.784, 0.571]], [0.313, [0.992, 0.781, 0.568]], [0.315, [0.992, 0.781, 0.568]], [0.317, [0.992, 0.778, 0.564]], [0.319, [0.992, 0.778, 0.564]], [0.321, [0.992, 0.775, 0.561]], [0.323, [0.992, 0.775, 0.561]], [0.325, [0.992, 0.772, 0.558]], [0.327, [0.992, 0.772, 0.558]], [0.329, [0.992, 0.769, 0.555]], [0.331, [0.992, 0.769, 0.555]], [0.333, [0.992, 0.766, 0.552]], [0.335, [0.992, 0.766, 0.552]], [0.337, [0.992, 0.763, 0.548]], [0.339, [0.992, 0.763, 0.548]], [0.341, [0.992, 0.760, 0.545]], [0.342, [0.992, 0.760, 0.545]], [0.344, [0.992, 0.757, 0.542]], [0.346, [0.992, 0.757, 0.542]], [0.348, [0.992, 0.754, 0.539]], [0.350, [0.992, 0.754, 0.539]], [0.352, [0.992, 0.751, 0.536]], [0.354, [0.992, 0.751, 0.536]], [0.356, [0.992, 0.748, 0.532]], [0.358, [0.992, 0.748, 0.532]], [0.360, [0.992, 0.744, 0.529]], [0.362, [0.992, 0.744, 0.529]], [0.364, [0.992, 0.741, 0.526]], [0.366, [0.992, 0.741, 0.526]], [0.368, [0.992, 0.738, 0.523]], [0.370, [0.992, 0.738, 0.523]], [0.372, [0.992, 0.735, 0.520]], [0.374, [0.992, 0.735, 0.520]], [0.376, [0.992, 0.731, 0.516]], [0.378, [0.992, 0.731, 0.516]], [0.380, [0.992, 0.726, 0.510]], [0.382, [0.992, 0.726, 0.510]], [0.384, [0.992, 0.720, 0.505]], [0.386, [0.992, 0.720, 0.505]], [0.387, [0.992, 0.714, 0.500]], [0.389, [0.992, 0.714, 0.500]], [0.391, [0.992, 0.709, 0.495]], [0.393, [0.992, 0.709, 0.495]], [0.395, [0.991, 0.703, 0.489]], [0.397, [0.991, 0.703, 0.489]], [0.399, [0.991, 0.697, 0.484]], [0.401, [0.991, 0.697, 0.484]], [0.403, [0.991, 0.692, 0.479]], [0.405, [0.991, 0.692, 0.479]], [0.407, [0.991, 0.686, 0.473]], [0.409, [0.991, 0.686, 0.473]], [0.411, [0.991, 0.680, 0.468]], [0.413, [0.991, 0.680, 0.468]], [0.415, [0.991, 0.675, 0.463]], [0.417, [0.991, 0.675, 0.463]], [0.419, [0.991, 0.669, 0.457]], [0.421, [0.991, 0.669, 0.457]], [0.423, [0.991, 0.663, 0.452]], [0.425, [0.991, 0.663, 0.452]], [0.427, [0.991, 0.658, 0.447]], [0.429, [0.991, 0.658, 0.447]], [0.431, [0.990, 0.652, 0.442]], [0.432, [0.990, 0.652, 0.442]], [0.434, [0.990, 0.646, 0.436]], [0.436, [0.990, 0.646, 0.436]], [0.438, [0.990, 0.641, 0.431]], [0.440, [0.990, 0.641, 0.431]], [0.442, [0.990, 0.635, 0.426]], [0.444, [0.990, 0.635, 0.426]], [0.446, [0.990, 0.629, 0.420]], [0.448, [0.990, 0.629, 0.420]], [0.450, [0.990, 0.624, 0.415]], [0.452, [0.990, 0.624, 0.415]], [0.454, [0.990, 0.618, 0.410]], [0.456, [0.990, 0.618, 0.410]], [0.458, [0.990, 0.612, 0.405]], [0.460, [0.990, 0.612, 0.405]], [0.462, [0.989, 0.607, 0.399]], [0.464, [0.989, 0.607, 0.399]], [0.466, [0.989, 0.601, 0.394]], [0.468, [0.989, 0.601, 0.394]], [0.470, [0.989, 0.595, 0.389]], [0.472, [0.989, 0.595, 0.389]], [0.474, [0.989, 0.590, 0.383]], [0.476, [0.989, 0.590, 0.383]], [0.477, [0.989, 0.584, 0.378]], [0.479, [0.989, 0.584, 0.378]], [0.481, [0.989, 0.578, 0.373]], [0.483, [0.989, 0.578, 0.373]], [0.485, [0.989, 0.573, 0.368]], [0.487, [0.989, 0.573, 0.368]], [0.489, [0.989, 0.567, 0.362]], [0.491, [0.989, 0.567, 0.362]], [0.493, [0.988, 0.561, 0.357]], [0.495, [0.988, 0.561, 0.357]], [0.497, [0.988, 0.556, 0.352]], [0.499, [0.988, 0.556, 0.352]], [0.501, [0.987, 0.550, 0.348]], [0.503, [0.987, 0.550, 0.348]], [0.505, [0.986, 0.546, 0.346]], [0.507, [0.986, 0.546, 0.346]], [0.509, [0.984, 0.541, 0.344]], [0.511, [0.984, 0.541, 0.344]], [0.513, [0.983, 0.536, 0.342]], [0.515, [0.983, 0.536, 0.342]], [0.517, [0.981, 0.531, 0.340]], [0.519, [0.981, 0.531, 0.340]], [0.521, [0.979, 0.526, 0.338]], [0.523, [0.979, 0.526, 0.338]], [0.524, [0.978, 0.521, 0.335]], [0.526, [0.978, 0.521, 0.335]], [0.528, [0.976, 0.516, 0.333]], [0.530, [0.976, 0.516, 0.333]], [0.532, [0.975, 0.511, 0.331]], [0.534, [0.975, 0.511, 0.331]], [0.536, [0.973, 0.506, 0.329]], [0.538, [0.973, 0.506, 0.329]], [0.540, [0.971, 0.501, 0.327]], [0.542, [0.971, 0.501, 0.327]], [0.544, [0.970, 0.496, 0.325]], [0.546, [0.970, 0.496, 0.325]], [0.548, [0.968, 0.491, 0.323]], [0.550, [0.968, 0.491, 0.323]], [0.552, [0.967, 0.487, 0.321]], [0.554, [0.967, 0.487, 0.321]], [0.556, [0.965, 0.482, 0.319]], [0.558, [0.965, 0.482, 0.319]], [0.560, [0.963, 0.477, 0.317]], [0.562, [0.963, 0.477, 0.317]], [0.564, [0.962, 0.472, 0.315]], [0.566, [0.962, 0.472, 0.315]], [0.568, [0.960, 0.467, 0.312]], [0.569, [0.960, 0.467, 0.312]], [0.571, [0.959, 0.462, 0.310]], [0.573, [0.959, 0.462, 0.310]], [0.575, [0.957, 0.457, 0.308]], [0.577, [0.957, 0.457, 0.308]], [0.579, [0.955, 0.452, 0.306]], [0.581, [0.955, 0.452, 0.306]], [0.583, [0.954, 0.447, 0.304]], [0.585, [0.954, 0.447, 0.304]], [0.587, [0.952, 0.442, 0.302]], [0.589, [0.952, 0.442, 0.302]], [0.591, [0.951, 0.437, 0.300]], [0.593, [0.951, 0.437, 0.300]], [0.595, [0.949, 0.432, 0.298]], [0.597, [0.949, 0.432, 0.298]], [0.599, [0.947, 0.427, 0.296]], [0.601, [0.947, 0.427, 0.296]], [0.603, [0.946, 0.423, 0.294]], [0.605, [0.946, 0.423, 0.294]], [0.607, [0.944, 0.418, 0.292]], [0.609, [0.944, 0.418, 0.292]], [0.611, [0.943, 0.413, 0.289]], [0.613, [0.943, 0.413, 0.289]], [0.614, [0.941, 0.408, 0.287]], [0.616, [0.941, 0.408, 0.287]], [0.618, [0.939, 0.403, 0.285]], [0.620, [0.939, 0.403, 0.285]], [0.622, [0.938, 0.398, 0.283]], [0.624, [0.938, 0.398, 0.283]], [0.626, [0.935, 0.392, 0.279]], [0.628, [0.935, 0.392, 0.279]], [0.630, [0.932, 0.385, 0.274]], [0.632, [0.932, 0.385, 0.274]], [0.634, [0.930, 0.379, 0.269]], [0.636, [0.930, 0.379, 0.269]], [0.638, [0.927, 0.372, 0.264]], [0.640, [0.927, 0.372, 0.264]], [0.642, [0.924, 0.366, 0.259]], [0.644, [0.924, 0.366, 0.259]], [0.646, [0.921, 0.359, 0.254]], [0.648, [0.921, 0.359, 0.254]], [0.650, [0.918, 0.353, 0.249]], [0.652, [0.918, 0.353, 0.249]], [0.654, [0.915, 0.346, 0.244]], [0.656, [0.915, 0.346, 0.244]], [0.658, [0.912, 0.340, 0.239]], [0.659, [0.912, 0.340, 0.239]], [0.661, [0.909, 0.333, 0.234]], [0.663, [0.909, 0.333, 0.234]], [0.665, [0.906, 0.327, 0.229]], [0.667, [0.906, 0.327, 0.229]], [0.669, [0.903, 0.320, 0.224]], [0.671, [0.903, 0.320, 0.224]], [0.673, [0.900, 0.314, 0.219]], [0.675, [0.900, 0.314, 0.219]], [0.677, [0.897, 0.307, 0.214]], [0.679, [0.897, 0.307, 0.214]], [0.681, [0.894, 0.301, 0.209]], [0.683, [0.894, 0.301, 0.209]], [0.685, [0.891, 0.294, 0.204]], [0.687, [0.891, 0.294, 0.204]], [0.689, [0.888, 0.288, 0.198]], [0.691, [0.888, 0.288, 0.198]], [0.693, [0.885, 0.281, 0.193]], [0.695, [0.885, 0.281, 0.193]], [0.697, [0.882, 0.275, 0.188]], [0.699, [0.882, 0.275, 0.188]], [0.701, [0.879, 0.268, 0.183]], [0.703, [0.879, 0.268, 0.183]], [0.705, [0.876, 0.262, 0.178]], [0.706, [0.876, 0.262, 0.178]], [0.708, [0.873, 0.255, 0.173]], [0.710, [0.873, 0.255, 0.173]], [0.712, [0.870, 0.249, 0.168]], [0.714, [0.870, 0.249, 0.168]], [0.716, [0.867, 0.242, 0.163]], [0.718, [0.867, 0.242, 0.163]], [0.720, [0.865, 0.236, 0.158]], [0.722, [0.865, 0.236, 0.158]], [0.724, [0.862, 0.229, 0.153]], [0.726, [0.862, 0.229, 0.153]], [0.728, [0.859, 0.222, 0.148]], [0.730, [0.859, 0.222, 0.148]], [0.732, [0.856, 0.216, 0.143]], [0.734, [0.856, 0.216, 0.143]], [0.736, [0.853, 0.209, 0.138]], [0.738, [0.853, 0.209, 0.138]], [0.740, [0.850, 0.203, 0.133]], [0.742, [0.850, 0.203, 0.133]], [0.744, [0.847, 0.196, 0.128]], [0.746, [0.847, 0.196, 0.128]], [0.748, [0.844, 0.190, 0.123]], [0.750, [0.844, 0.190, 0.123]], [0.751, [0.840, 0.184, 0.119]], [0.753, [0.840, 0.184, 0.119]], [0.755, [0.835, 0.178, 0.115]], [0.757, [0.835, 0.178, 0.115]], [0.759, [0.831, 0.172, 0.111]], [0.761, [0.831, 0.172, 0.111]], [0.763, [0.827, 0.166, 0.107]], [0.765, [0.827, 0.166, 0.107]], [0.767, [0.822, 0.160, 0.103]], [0.769, [0.822, 0.160, 0.103]], [0.771, [0.818, 0.154, 0.100]], [0.773, [0.818, 0.154, 0.100]], [0.775, [0.813, 0.148, 0.096]], [0.777, [0.813, 0.148, 0.096]], [0.779, [0.809, 0.142, 0.092]], [0.781, [0.809, 0.142, 0.092]], [0.783, [0.804, 0.137, 0.088]], [0.785, [0.804, 0.137, 0.088]], [0.787, [0.800, 0.131, 0.084]], [0.789, [0.800, 0.131, 0.084]], [0.791, [0.796, 0.125, 0.081]], [0.793, [0.796, 0.125, 0.081]], [0.795, [0.791, 0.119, 0.077]], [0.796, [0.791, 0.119, 0.077]], [0.798, [0.787, 0.113, 0.073]], [0.800, [0.787, 0.113, 0.073]], [0.802, [0.782, 0.107, 0.069]], [0.804, [0.782, 0.107, 0.069]], [0.806, [0.778, 0.101, 0.065]], [0.808, [0.778, 0.101, 0.065]], [0.810, [0.773, 0.095, 0.061]], [0.812, [0.773, 0.095, 0.061]], [0.814, [0.769, 0.089, 0.058]], [0.816, [0.769, 0.089, 0.058]], [0.818, [0.765, 0.083, 0.054]], [0.820, [0.765, 0.083, 0.054]], [0.822, [0.760, 0.078, 0.050]], [0.824, [0.760, 0.078, 0.050]], [0.826, [0.756, 0.072, 0.046]], [0.828, [0.756, 0.072, 0.046]], [0.830, [0.751, 0.066, 0.042]], [0.832, [0.751, 0.066, 0.042]], [0.834, [0.747, 0.060, 0.039]], [0.836, [0.747, 0.060, 0.039]], [0.838, [0.742, 0.054, 0.035]], [0.840, [0.742, 0.054, 0.035]], [0.841, [0.738, 0.048, 0.031]], [0.843, [0.738, 0.048, 0.031]], [0.845, [0.734, 0.042, 0.027]], [0.847, [0.734, 0.042, 0.027]], [0.849, [0.729, 0.036, 0.023]], [0.851, [0.729, 0.036, 0.023]], [0.853, [0.725, 0.030, 0.020]], [0.855, [0.725, 0.030, 0.020]], [0.857, [0.720, 0.024, 0.016]], [0.859, [0.720, 0.024, 0.016]], [0.861, [0.716, 0.018, 0.012]], [0.863, [0.716, 0.018, 0.012]], [0.865, [0.711, 0.013, 0.008]], [0.867, [0.711, 0.013, 0.008]], [0.869, [0.707, 0.007, 0.004]], [0.871, [0.707, 0.007, 0.004]], [0.873, [0.703, 0.001, 0.000]], [0.875, [0.703, 0.001, 0.000]], [0.877, [0.696, 0.000, 0.000]], [0.879, [0.696, 0.000, 0.000]], [0.881, [0.690, 0.000, 0.000]], [0.883, [0.690, 0.000, 0.000]], [0.885, [0.684, 0.000, 0.000]], [0.886, [0.684, 0.000, 0.000]], [0.888, [0.677, 0.000, 0.000]], [0.890, [0.677, 0.000, 0.000]], [0.892, [0.671, 0.000, 0.000]], [0.894, [0.671, 0.000, 0.000]], [0.896, [0.664, 0.000, 0.000]], [0.898, [0.664, 0.000, 0.000]], [0.900, [0.658, 0.000, 0.000]], [0.902, [0.658, 0.000, 0.000]], [0.904, [0.652, 0.000, 0.000]], [0.906, [0.652, 0.000, 0.000]], [0.908, [0.645, 0.000, 0.000]], [0.910, [0.645, 0.000, 0.000]], [0.912, [0.639, 0.000, 0.000]], [0.914, [0.639, 0.000, 0.000]], [0.916, [0.632, 0.000, 0.000]], [0.918, [0.632, 0.000, 0.000]], [0.920, [0.626, 0.000, 0.000]], [0.922, [0.626, 0.000, 0.000]], [0.924, [0.620, 0.000, 0.000]], [0.926, [0.620, 0.000, 0.000]], [0.928, [0.613, 0.000, 0.000]], [0.930, [0.613, 0.000, 0.000]], [0.932, [0.607, 0.000, 0.000]], [0.933, [0.607, 0.000, 0.000]], [0.935, [0.600, 0.000, 0.000]], [0.937, [0.600, 0.000, 0.000]], [0.939, [0.594, 0.000, 0.000]], [0.941, [0.594, 0.000, 0.000]], [0.943, [0.588, 0.000, 0.000]], [0.945, [0.588, 0.000, 0.000]], [0.947, [0.581, 0.000, 0.000]], [0.949, [0.581, 0.000, 0.000]], [0.951, [0.575, 0.000, 0.000]], [0.953, [0.575, 0.000, 0.000]], [0.955, [0.568, 0.000, 0.000]], [0.957, [0.568, 0.000, 0.000]], [0.959, [0.562, 0.000, 0.000]], [0.961, [0.562, 0.000, 0.000]], [0.963, [0.556, 0.000, 0.000]], [0.965, [0.556, 0.000, 0.000]], [0.967, [0.549, 0.000, 0.000]], [0.969, [0.549, 0.000, 0.000]], [0.971, [0.543, 0.000, 0.000]], [0.973, [0.543, 0.000, 0.000]], [0.975, [0.536, 0.000, 0.000]], [0.977, [0.536, 0.000, 0.000]], [0.978, [0.530, 0.000, 0.000]], [0.980, [0.530, 0.000, 0.000]], [0.982, [0.524, 0.000, 0.000]], [0.984, [0.524, 0.000, 0.000]], [0.986, [0.517, 0.000, 0.000]], [0.988, [0.517, 0.000, 0.000]], [0.990, [0.511, 0.000, 0.000]], [0.992, [0.511, 0.000, 0.000]], [0.994, [0.504, 0.000, 0.000]], [0.996, [0.504, 0.000, 0.000]], [0.998, [0.498, 0.000, 0.000]], [1.000, [0.498, 0.000, 0.000]]];
+var Oranges = [[0.000, [1.000, 0.961, 0.922]], [0.002, [1.000, 0.961, 0.922]], [0.004, [1.000, 0.959, 0.918]], [0.006, [1.000, 0.959, 0.918]], [0.008, [1.000, 0.957, 0.914]], [0.010, [1.000, 0.957, 0.914]], [0.012, [1.000, 0.955, 0.911]], [0.014, [1.000, 0.955, 0.911]], [0.016, [1.000, 0.953, 0.907]], [0.018, [1.000, 0.953, 0.907]], [0.020, [0.999, 0.952, 0.904]], [0.022, [0.999, 0.952, 0.904]], [0.023, [0.999, 0.950, 0.900]], [0.025, [0.999, 0.950, 0.900]], [0.027, [0.999, 0.948, 0.897]], [0.029, [0.999, 0.948, 0.897]], [0.031, [0.999, 0.946, 0.893]], [0.033, [0.999, 0.946, 0.893]], [0.035, [0.999, 0.944, 0.889]], [0.037, [0.999, 0.944, 0.889]], [0.039, [0.999, 0.942, 0.886]], [0.041, [0.999, 0.942, 0.886]], [0.043, [0.999, 0.940, 0.882]], [0.045, [0.999, 0.940, 0.882]], [0.047, [0.999, 0.939, 0.879]], [0.049, [0.999, 0.939, 0.879]], [0.051, [0.998, 0.937, 0.875]], [0.053, [0.998, 0.937, 0.875]], [0.055, [0.998, 0.935, 0.872]], [0.057, [0.998, 0.935, 0.872]], [0.059, [0.998, 0.933, 0.868]], [0.061, [0.998, 0.933, 0.868]], [0.063, [0.998, 0.931, 0.864]], [0.065, [0.998, 0.931, 0.864]], [0.067, [0.998, 0.929, 0.861]], [0.068, [0.998, 0.929, 0.861]], [0.070, [0.998, 0.928, 0.857]], [0.072, [0.998, 0.928, 0.857]], [0.074, [0.998, 0.926, 0.854]], [0.076, [0.998, 0.926, 0.854]], [0.078, [0.998, 0.924, 0.850]], [0.080, [0.998, 0.924, 0.850]], [0.082, [0.997, 0.922, 0.847]], [0.084, [0.997, 0.922, 0.847]], [0.086, [0.997, 0.920, 0.843]], [0.088, [0.997, 0.920, 0.843]], [0.090, [0.997, 0.918, 0.840]], [0.092, [0.997, 0.918, 0.840]], [0.094, [0.997, 0.916, 0.836]], [0.096, [0.997, 0.916, 0.836]], [0.098, [0.997, 0.915, 0.832]], [0.100, [0.997, 0.915, 0.832]], [0.102, [0.997, 0.913, 0.829]], [0.104, [0.997, 0.913, 0.829]], [0.106, [0.997, 0.911, 0.825]], [0.108, [0.997, 0.911, 0.825]], [0.110, [0.997, 0.909, 0.822]], [0.112, [0.997, 0.909, 0.822]], [0.114, [0.996, 0.907, 0.818]], [0.115, [0.996, 0.907, 0.818]], [0.117, [0.996, 0.905, 0.815]], [0.119, [0.996, 0.905, 0.815]], [0.121, [0.996, 0.904, 0.811]], [0.123, [0.996, 0.904, 0.811]], [0.125, [0.996, 0.902, 0.807]], [0.127, [0.996, 0.902, 0.807]], [0.129, [0.996, 0.899, 0.802]], [0.131, [0.996, 0.899, 0.802]], [0.133, [0.996, 0.896, 0.796]], [0.135, [0.996, 0.896, 0.796]], [0.137, [0.996, 0.894, 0.791]], [0.139, [0.996, 0.894, 0.791]], [0.141, [0.996, 0.891, 0.786]], [0.143, [0.996, 0.891, 0.786]], [0.145, [0.995, 0.888, 0.780]], [0.147, [0.995, 0.888, 0.780]], [0.149, [0.995, 0.885, 0.775]], [0.151, [0.995, 0.885, 0.775]], [0.153, [0.995, 0.883, 0.769]], [0.155, [0.995, 0.883, 0.769]], [0.157, [0.995, 0.880, 0.764]], [0.159, [0.995, 0.880, 0.764]], [0.160, [0.995, 0.877, 0.758]], [0.162, [0.995, 0.877, 0.758]], [0.164, [0.995, 0.875, 0.753]], [0.166, [0.995, 0.875, 0.753]], [0.168, [0.995, 0.872, 0.748]], [0.170, [0.995, 0.872, 0.748]], [0.172, [0.995, 0.869, 0.742]], [0.174, [0.995, 0.869, 0.742]], [0.176, [0.994, 0.866, 0.737]], [0.178, [0.994, 0.866, 0.737]], [0.180, [0.994, 0.864, 0.731]], [0.182, [0.994, 0.864, 0.731]], [0.184, [0.994, 0.861, 0.726]], [0.186, [0.994, 0.861, 0.726]], [0.188, [0.994, 0.858, 0.721]], [0.190, [0.994, 0.858, 0.721]], [0.192, [0.994, 0.856, 0.715]], [0.194, [0.994, 0.856, 0.715]], [0.196, [0.994, 0.853, 0.710]], [0.198, [0.994, 0.853, 0.710]], [0.200, [0.994, 0.850, 0.704]], [0.202, [0.994, 0.850, 0.704]], [0.204, [0.994, 0.847, 0.699]], [0.205, [0.994, 0.847, 0.699]], [0.207, [0.993, 0.845, 0.693]], [0.209, [0.993, 0.845, 0.693]], [0.211, [0.993, 0.842, 0.688]], [0.213, [0.993, 0.842, 0.688]], [0.215, [0.993, 0.839, 0.683]], [0.217, [0.993, 0.839, 0.683]], [0.219, [0.993, 0.837, 0.677]], [0.221, [0.993, 0.837, 0.677]], [0.223, [0.993, 0.834, 0.672]], [0.225, [0.993, 0.834, 0.672]], [0.227, [0.993, 0.831, 0.666]], [0.229, [0.993, 0.831, 0.666]], [0.231, [0.993, 0.829, 0.661]], [0.233, [0.993, 0.829, 0.661]], [0.235, [0.993, 0.826, 0.656]], [0.237, [0.993, 0.826, 0.656]], [0.239, [0.992, 0.823, 0.650]], [0.241, [0.992, 0.823, 0.650]], [0.243, [0.992, 0.820, 0.645]], [0.245, [0.992, 0.820, 0.645]], [0.247, [0.992, 0.818, 0.639]], [0.249, [0.992, 0.818, 0.639]], [0.250, [0.992, 0.815, 0.634]], [0.252, [0.992, 0.815, 0.634]], [0.254, [0.992, 0.810, 0.627]], [0.256, [0.992, 0.810, 0.627]], [0.258, [0.992, 0.806, 0.620]], [0.260, [0.992, 0.806, 0.620]], [0.262, [0.992, 0.802, 0.613]], [0.264, [0.992, 0.802, 0.613]], [0.266, [0.992, 0.798, 0.607]], [0.268, [0.992, 0.798, 0.607]], [0.270, [0.992, 0.794, 0.600]], [0.272, [0.992, 0.794, 0.600]], [0.274, [0.992, 0.790, 0.593]], [0.276, [0.992, 0.790, 0.593]], [0.278, [0.992, 0.785, 0.586]], [0.280, [0.992, 0.785, 0.586]], [0.282, [0.992, 0.781, 0.579]], [0.284, [0.992, 0.781, 0.579]], [0.286, [0.992, 0.777, 0.573]], [0.288, [0.992, 0.777, 0.573]], [0.290, [0.992, 0.773, 0.566]], [0.292, [0.992, 0.773, 0.566]], [0.294, [0.992, 0.769, 0.559]], [0.295, [0.992, 0.769, 0.559]], [0.297, [0.992, 0.764, 0.552]], [0.299, [0.992, 0.764, 0.552]], [0.301, [0.992, 0.760, 0.546]], [0.303, [0.992, 0.760, 0.546]], [0.305, [0.992, 0.756, 0.539]], [0.307, [0.992, 0.756, 0.539]], [0.309, [0.992, 0.752, 0.532]], [0.311, [0.992, 0.752, 0.532]], [0.313, [0.992, 0.748, 0.525]], [0.315, [0.992, 0.748, 0.525]], [0.317, [0.992, 0.744, 0.519]], [0.319, [0.992, 0.744, 0.519]], [0.321, [0.992, 0.739, 0.512]], [0.323, [0.992, 0.739, 0.512]], [0.325, [0.992, 0.735, 0.505]], [0.327, [0.992, 0.735, 0.505]], [0.329, [0.992, 0.731, 0.498]], [0.331, [0.992, 0.731, 0.498]], [0.333, [0.992, 0.727, 0.492]], [0.335, [0.992, 0.727, 0.492]], [0.337, [0.992, 0.723, 0.485]], [0.339, [0.992, 0.723, 0.485]], [0.341, [0.992, 0.718, 0.478]], [0.342, [0.992, 0.718, 0.478]], [0.344, [0.992, 0.714, 0.471]], [0.346, [0.992, 0.714, 0.471]], [0.348, [0.992, 0.710, 0.464]], [0.350, [0.992, 0.710, 0.464]], [0.352, [0.992, 0.706, 0.458]], [0.354, [0.992, 0.706, 0.458]], [0.356, [0.992, 0.702, 0.451]], [0.358, [0.992, 0.702, 0.451]], [0.360, [0.992, 0.698, 0.444]], [0.362, [0.992, 0.698, 0.444]], [0.364, [0.992, 0.693, 0.437]], [0.366, [0.992, 0.693, 0.437]], [0.368, [0.992, 0.689, 0.431]], [0.370, [0.992, 0.689, 0.431]], [0.372, [0.992, 0.685, 0.424]], [0.374, [0.992, 0.685, 0.424]], [0.376, [0.992, 0.681, 0.417]], [0.378, [0.992, 0.681, 0.417]], [0.380, [0.992, 0.677, 0.412]], [0.382, [0.992, 0.677, 0.412]], [0.384, [0.992, 0.673, 0.406]], [0.386, [0.992, 0.673, 0.406]], [0.387, [0.992, 0.669, 0.400]], [0.389, [0.992, 0.669, 0.400]], [0.391, [0.992, 0.665, 0.394]], [0.393, [0.992, 0.665, 0.394]], [0.395, [0.992, 0.661, 0.389]], [0.397, [0.992, 0.661, 0.389]], [0.399, [0.992, 0.656, 0.383]], [0.401, [0.992, 0.656, 0.383]], [0.403, [0.992, 0.652, 0.377]], [0.405, [0.992, 0.652, 0.377]], [0.407, [0.992, 0.648, 0.371]], [0.409, [0.992, 0.648, 0.371]], [0.411, [0.992, 0.644, 0.365]], [0.413, [0.992, 0.644, 0.365]], [0.415, [0.992, 0.640, 0.360]], [0.417, [0.992, 0.640, 0.360]], [0.419, [0.992, 0.636, 0.354]], [0.421, [0.992, 0.636, 0.354]], [0.423, [0.992, 0.632, 0.348]], [0.425, [0.992, 0.632, 0.348]], [0.427, [0.992, 0.628, 0.342]], [0.429, [0.992, 0.628, 0.342]], [0.431, [0.992, 0.624, 0.336]], [0.432, [0.992, 0.624, 0.336]], [0.434, [0.992, 0.620, 0.331]], [0.436, [0.992, 0.620, 0.331]], [0.438, [0.992, 0.616, 0.325]], [0.440, [0.992, 0.616, 0.325]], [0.442, [0.992, 0.612, 0.319]], [0.444, [0.992, 0.612, 0.319]], [0.446, [0.992, 0.608, 0.313]], [0.448, [0.992, 0.608, 0.313]], [0.450, [0.992, 0.604, 0.308]], [0.452, [0.992, 0.604, 0.308]], [0.454, [0.992, 0.600, 0.302]], [0.456, [0.992, 0.600, 0.302]], [0.458, [0.992, 0.596, 0.296]], [0.460, [0.992, 0.596, 0.296]], [0.462, [0.992, 0.592, 0.290]], [0.464, [0.992, 0.592, 0.290]], [0.466, [0.992, 0.587, 0.284]], [0.468, [0.992, 0.587, 0.284]], [0.470, [0.992, 0.583, 0.279]], [0.472, [0.992, 0.583, 0.279]], [0.474, [0.992, 0.579, 0.273]], [0.476, [0.992, 0.579, 0.273]], [0.477, [0.992, 0.575, 0.267]], [0.479, [0.992, 0.575, 0.267]], [0.481, [0.992, 0.571, 0.261]], [0.483, [0.992, 0.571, 0.261]], [0.485, [0.992, 0.567, 0.256]], [0.487, [0.992, 0.567, 0.256]], [0.489, [0.992, 0.563, 0.250]], [0.491, [0.992, 0.563, 0.250]], [0.493, [0.992, 0.559, 0.244]], [0.495, [0.992, 0.559, 0.244]], [0.497, [0.992, 0.555, 0.238]], [0.499, [0.992, 0.555, 0.238]], [0.501, [0.991, 0.551, 0.233]], [0.503, [0.991, 0.551, 0.233]], [0.505, [0.990, 0.546, 0.228]], [0.507, [0.990, 0.546, 0.228]], [0.509, [0.988, 0.542, 0.223]], [0.511, [0.988, 0.542, 0.223]], [0.513, [0.987, 0.537, 0.218]], [0.515, [0.987, 0.537, 0.218]], [0.517, [0.986, 0.533, 0.213]], [0.519, [0.986, 0.533, 0.213]], [0.521, [0.984, 0.529, 0.208]], [0.523, [0.984, 0.529, 0.208]], [0.524, [0.983, 0.524, 0.203]], [0.526, [0.983, 0.524, 0.203]], [0.528, [0.981, 0.520, 0.197]], [0.530, [0.981, 0.520, 0.197]], [0.532, [0.980, 0.515, 0.192]], [0.534, [0.980, 0.515, 0.192]], [0.536, [0.978, 0.511, 0.187]], [0.538, [0.978, 0.511, 0.187]], [0.540, [0.977, 0.506, 0.182]], [0.542, [0.977, 0.506, 0.182]], [0.544, [0.975, 0.502, 0.177]], [0.546, [0.975, 0.502, 0.177]], [0.548, [0.974, 0.498, 0.172]], [0.550, [0.974, 0.498, 0.172]], [0.552, [0.972, 0.493, 0.167]], [0.554, [0.972, 0.493, 0.167]], [0.556, [0.971, 0.489, 0.162]], [0.558, [0.971, 0.489, 0.162]], [0.560, [0.969, 0.484, 0.157]], [0.562, [0.969, 0.484, 0.157]], [0.564, [0.968, 0.480, 0.152]], [0.566, [0.968, 0.480, 0.152]], [0.568, [0.966, 0.475, 0.147]], [0.569, [0.966, 0.475, 0.147]], [0.571, [0.965, 0.471, 0.142]], [0.573, [0.965, 0.471, 0.142]], [0.575, [0.963, 0.467, 0.137]], [0.577, [0.963, 0.467, 0.137]], [0.579, [0.962, 0.462, 0.132]], [0.581, [0.962, 0.462, 0.132]], [0.583, [0.960, 0.458, 0.127]], [0.585, [0.960, 0.458, 0.127]], [0.587, [0.959, 0.453, 0.122]], [0.589, [0.959, 0.453, 0.122]], [0.591, [0.957, 0.449, 0.117]], [0.593, [0.957, 0.449, 0.117]], [0.595, [0.956, 0.444, 0.112]], [0.597, [0.956, 0.444, 0.112]], [0.599, [0.955, 0.440, 0.107]], [0.601, [0.955, 0.440, 0.107]], [0.603, [0.953, 0.436, 0.102]], [0.605, [0.953, 0.436, 0.102]], [0.607, [0.952, 0.431, 0.097]], [0.609, [0.952, 0.431, 0.097]], [0.611, [0.950, 0.427, 0.092]], [0.613, [0.950, 0.427, 0.092]], [0.614, [0.949, 0.422, 0.086]], [0.616, [0.949, 0.422, 0.086]], [0.618, [0.947, 0.418, 0.081]], [0.620, [0.947, 0.418, 0.081]], [0.622, [0.946, 0.413, 0.076]], [0.624, [0.946, 0.413, 0.076]], [0.626, [0.943, 0.409, 0.073]], [0.628, [0.943, 0.409, 0.073]], [0.630, [0.940, 0.405, 0.071]], [0.632, [0.940, 0.405, 0.071]], [0.634, [0.937, 0.401, 0.069]], [0.636, [0.937, 0.401, 0.069]], [0.638, [0.934, 0.397, 0.066]], [0.640, [0.934, 0.397, 0.066]], [0.642, [0.931, 0.393, 0.064]], [0.644, [0.931, 0.393, 0.064]], [0.646, [0.928, 0.389, 0.062]], [0.648, [0.928, 0.389, 0.062]], [0.650, [0.926, 0.385, 0.060]], [0.652, [0.926, 0.385, 0.060]], [0.654, [0.923, 0.381, 0.058]], [0.656, [0.923, 0.381, 0.058]], [0.658, [0.920, 0.377, 0.055]], [0.659, [0.920, 0.377, 0.055]], [0.661, [0.917, 0.373, 0.053]], [0.663, [0.917, 0.373, 0.053]], [0.665, [0.914, 0.369, 0.051]], [0.667, [0.914, 0.369, 0.051]], [0.669, [0.911, 0.365, 0.049]], [0.671, [0.911, 0.365, 0.049]], [0.673, [0.908, 0.361, 0.047]], [0.675, [0.908, 0.361, 0.047]], [0.677, [0.905, 0.356, 0.044]], [0.679, [0.905, 0.356, 0.044]], [0.681, [0.902, 0.352, 0.042]], [0.683, [0.902, 0.352, 0.042]], [0.685, [0.899, 0.348, 0.040]], [0.687, [0.899, 0.348, 0.040]], [0.689, [0.896, 0.344, 0.038]], [0.691, [0.896, 0.344, 0.038]], [0.693, [0.893, 0.340, 0.035]], [0.695, [0.893, 0.340, 0.035]], [0.697, [0.890, 0.336, 0.033]], [0.699, [0.890, 0.336, 0.033]], [0.701, [0.887, 0.332, 0.031]], [0.703, [0.887, 0.332, 0.031]], [0.705, [0.884, 0.328, 0.029]], [0.706, [0.884, 0.328, 0.029]], [0.708, [0.881, 0.324, 0.027]], [0.710, [0.881, 0.324, 0.027]], [0.712, [0.878, 0.320, 0.024]], [0.714, [0.878, 0.320, 0.024]], [0.716, [0.875, 0.316, 0.022]], [0.718, [0.875, 0.316, 0.022]], [0.720, [0.872, 0.312, 0.020]], [0.722, [0.872, 0.312, 0.020]], [0.724, [0.869, 0.308, 0.018]], [0.726, [0.869, 0.308, 0.018]], [0.728, [0.866, 0.304, 0.016]], [0.730, [0.866, 0.304, 0.016]], [0.732, [0.864, 0.300, 0.013]], [0.734, [0.864, 0.300, 0.013]], [0.736, [0.861, 0.296, 0.011]], [0.738, [0.861, 0.296, 0.011]], [0.740, [0.858, 0.291, 0.009]], [0.742, [0.858, 0.291, 0.009]], [0.744, [0.855, 0.287, 0.007]], [0.746, [0.855, 0.287, 0.007]], [0.748, [0.852, 0.283, 0.004]], [0.750, [0.852, 0.283, 0.004]], [0.751, [0.846, 0.281, 0.004]], [0.753, [0.846, 0.281, 0.004]], [0.755, [0.840, 0.278, 0.004]], [0.757, [0.840, 0.278, 0.004]], [0.759, [0.834, 0.276, 0.005]], [0.761, [0.834, 0.276, 0.005]], [0.763, [0.827, 0.274, 0.005]], [0.765, [0.827, 0.274, 0.005]], [0.767, [0.821, 0.272, 0.005]], [0.769, [0.821, 0.272, 0.005]], [0.771, [0.815, 0.270, 0.005]], [0.773, [0.815, 0.270, 0.005]], [0.775, [0.809, 0.267, 0.006]], [0.777, [0.809, 0.267, 0.006]], [0.779, [0.802, 0.265, 0.006]], [0.781, [0.802, 0.265, 0.006]], [0.783, [0.796, 0.263, 0.006]], [0.785, [0.796, 0.263, 0.006]], [0.787, [0.790, 0.261, 0.006]], [0.789, [0.790, 0.261, 0.006]], [0.791, [0.784, 0.259, 0.007]], [0.793, [0.784, 0.259, 0.007]], [0.795, [0.777, 0.256, 0.007]], [0.796, [0.777, 0.256, 0.007]], [0.798, [0.771, 0.254, 0.007]], [0.800, [0.771, 0.254, 0.007]], [0.802, [0.765, 0.252, 0.007]], [0.804, [0.765, 0.252, 0.007]], [0.806, [0.758, 0.250, 0.008]], [0.808, [0.758, 0.250, 0.008]], [0.810, [0.752, 0.247, 0.008]], [0.812, [0.752, 0.247, 0.008]], [0.814, [0.746, 0.245, 0.008]], [0.816, [0.746, 0.245, 0.008]], [0.818, [0.740, 0.243, 0.008]], [0.820, [0.740, 0.243, 0.008]], [0.822, [0.733, 0.241, 0.009]], [0.824, [0.733, 0.241, 0.009]], [0.826, [0.727, 0.239, 0.009]], [0.828, [0.727, 0.239, 0.009]], [0.830, [0.721, 0.236, 0.009]], [0.832, [0.721, 0.236, 0.009]], [0.834, [0.715, 0.234, 0.009]], [0.836, [0.715, 0.234, 0.009]], [0.838, [0.708, 0.232, 0.010]], [0.840, [0.708, 0.232, 0.010]], [0.841, [0.702, 0.230, 0.010]], [0.843, [0.702, 0.230, 0.010]], [0.845, [0.696, 0.228, 0.010]], [0.847, [0.696, 0.228, 0.010]], [0.849, [0.689, 0.225, 0.010]], [0.851, [0.689, 0.225, 0.010]], [0.853, [0.683, 0.223, 0.011]], [0.855, [0.683, 0.223, 0.011]], [0.857, [0.677, 0.221, 0.011]], [0.859, [0.677, 0.221, 0.011]], [0.861, [0.671, 0.219, 0.011]], [0.863, [0.671, 0.219, 0.011]], [0.865, [0.664, 0.216, 0.011]], [0.867, [0.664, 0.216, 0.011]], [0.869, [0.658, 0.214, 0.011]], [0.871, [0.658, 0.214, 0.011]], [0.873, [0.652, 0.212, 0.012]], [0.875, [0.652, 0.212, 0.012]], [0.877, [0.647, 0.210, 0.012]], [0.879, [0.647, 0.210, 0.012]], [0.881, [0.642, 0.208, 0.012]], [0.883, [0.642, 0.208, 0.012]], [0.885, [0.637, 0.206, 0.012]], [0.886, [0.637, 0.206, 0.012]], [0.888, [0.632, 0.205, 0.012]], [0.890, [0.632, 0.205, 0.012]], [0.892, [0.628, 0.203, 0.012]], [0.894, [0.628, 0.203, 0.012]], [0.896, [0.623, 0.201, 0.012]], [0.898, [0.623, 0.201, 0.012]], [0.900, [0.618, 0.199, 0.013]], [0.902, [0.618, 0.199, 0.013]], [0.904, [0.613, 0.197, 0.013]], [0.906, [0.613, 0.197, 0.013]], [0.908, [0.608, 0.195, 0.013]], [0.910, [0.608, 0.195, 0.013]], [0.912, [0.604, 0.194, 0.013]], [0.914, [0.604, 0.194, 0.013]], [0.916, [0.599, 0.192, 0.013]], [0.918, [0.599, 0.192, 0.013]], [0.920, [0.594, 0.190, 0.013]], [0.922, [0.594, 0.190, 0.013]], [0.924, [0.589, 0.188, 0.013]], [0.926, [0.589, 0.188, 0.013]], [0.928, [0.584, 0.186, 0.013]], [0.930, [0.584, 0.186, 0.013]], [0.932, [0.580, 0.184, 0.014]], [0.933, [0.580, 0.184, 0.014]], [0.935, [0.575, 0.182, 0.014]], [0.937, [0.575, 0.182, 0.014]], [0.939, [0.570, 0.181, 0.014]], [0.941, [0.570, 0.181, 0.014]], [0.943, [0.565, 0.179, 0.014]], [0.945, [0.565, 0.179, 0.014]], [0.947, [0.560, 0.177, 0.014]], [0.949, [0.560, 0.177, 0.014]], [0.951, [0.556, 0.175, 0.014]], [0.953, [0.556, 0.175, 0.014]], [0.955, [0.551, 0.173, 0.014]], [0.957, [0.551, 0.173, 0.014]], [0.959, [0.546, 0.171, 0.014]], [0.961, [0.546, 0.171, 0.014]], [0.963, [0.541, 0.170, 0.015]], [0.965, [0.541, 0.170, 0.015]], [0.967, [0.536, 0.168, 0.015]], [0.969, [0.536, 0.168, 0.015]], [0.971, [0.532, 0.166, 0.015]], [0.973, [0.532, 0.166, 0.015]], [0.975, [0.527, 0.164, 0.015]], [0.977, [0.527, 0.164, 0.015]], [0.978, [0.522, 0.162, 0.015]], [0.980, [0.522, 0.162, 0.015]], [0.982, [0.517, 0.160, 0.015]], [0.984, [0.517, 0.160, 0.015]], [0.986, [0.512, 0.158, 0.015]], [0.988, [0.512, 0.158, 0.015]], [0.990, [0.508, 0.157, 0.015]], [0.992, [0.508, 0.157, 0.015]], [0.994, [0.503, 0.155, 0.016]], [0.996, [0.503, 0.155, 0.016]], [0.998, [0.498, 0.153, 0.016]], [1.000, [0.498, 0.153, 0.016]]];
+var PuBu = [[0.000, [1.000, 0.969, 0.984]], [0.002, [1.000, 0.969, 0.984]], [0.004, [0.998, 0.967, 0.983]], [0.006, [0.998, 0.967, 0.983]], [0.008, [0.995, 0.965, 0.982]], [0.010, [0.995, 0.965, 0.982]], [0.012, [0.993, 0.963, 0.981]], [0.014, [0.993, 0.963, 0.981]], [0.016, [0.991, 0.961, 0.980]], [0.018, [0.991, 0.961, 0.980]], [0.020, [0.988, 0.959, 0.979]], [0.022, [0.988, 0.959, 0.979]], [0.023, [0.986, 0.957, 0.978]], [0.025, [0.986, 0.957, 0.978]], [0.027, [0.984, 0.955, 0.977]], [0.029, [0.984, 0.955, 0.977]], [0.031, [0.981, 0.953, 0.975]], [0.033, [0.981, 0.953, 0.975]], [0.035, [0.979, 0.951, 0.974]], [0.037, [0.979, 0.951, 0.974]], [0.039, [0.977, 0.949, 0.973]], [0.041, [0.977, 0.949, 0.973]], [0.043, [0.974, 0.947, 0.972]], [0.045, [0.974, 0.947, 0.972]], [0.047, [0.972, 0.945, 0.971]], [0.049, [0.972, 0.945, 0.971]], [0.051, [0.970, 0.943, 0.970]], [0.053, [0.970, 0.943, 0.970]], [0.055, [0.967, 0.941, 0.969]], [0.057, [0.967, 0.941, 0.969]], [0.059, [0.965, 0.939, 0.968]], [0.061, [0.965, 0.939, 0.968]], [0.063, [0.963, 0.937, 0.967]], [0.065, [0.963, 0.937, 0.967]], [0.067, [0.960, 0.935, 0.965]], [0.068, [0.960, 0.935, 0.965]], [0.070, [0.958, 0.933, 0.964]], [0.072, [0.958, 0.933, 0.964]], [0.074, [0.956, 0.931, 0.963]], [0.076, [0.956, 0.931, 0.963]], [0.078, [0.953, 0.929, 0.962]], [0.080, [0.953, 0.929, 0.962]], [0.082, [0.951, 0.927, 0.961]], [0.084, [0.951, 0.927, 0.961]], [0.086, [0.949, 0.925, 0.960]], [0.088, [0.949, 0.925, 0.960]], [0.090, [0.946, 0.923, 0.959]], [0.092, [0.946, 0.923, 0.959]], [0.094, [0.944, 0.921, 0.958]], [0.096, [0.944, 0.921, 0.958]], [0.098, [0.942, 0.919, 0.957]], [0.100, [0.942, 0.919, 0.957]], [0.102, [0.939, 0.917, 0.956]], [0.104, [0.939, 0.917, 0.956]], [0.106, [0.937, 0.915, 0.954]], [0.108, [0.937, 0.915, 0.954]], [0.110, [0.935, 0.914, 0.953]], [0.112, [0.935, 0.914, 0.953]], [0.114, [0.932, 0.912, 0.952]], [0.115, [0.932, 0.912, 0.952]], [0.117, [0.930, 0.910, 0.951]], [0.119, [0.930, 0.910, 0.951]], [0.121, [0.928, 0.908, 0.950]], [0.123, [0.928, 0.908, 0.950]], [0.125, [0.925, 0.906, 0.949]], [0.127, [0.925, 0.906, 0.949]], [0.129, [0.922, 0.903, 0.947]], [0.131, [0.922, 0.903, 0.947]], [0.133, [0.918, 0.900, 0.946]], [0.135, [0.918, 0.900, 0.946]], [0.137, [0.915, 0.897, 0.944]], [0.139, [0.915, 0.897, 0.944]], [0.141, [0.911, 0.895, 0.943]], [0.143, [0.911, 0.895, 0.943]], [0.145, [0.908, 0.892, 0.941]], [0.147, [0.908, 0.892, 0.941]], [0.149, [0.904, 0.889, 0.940]], [0.151, [0.904, 0.889, 0.940]], [0.153, [0.901, 0.887, 0.939]], [0.155, [0.901, 0.887, 0.939]], [0.157, [0.898, 0.884, 0.937]], [0.159, [0.898, 0.884, 0.937]], [0.160, [0.894, 0.881, 0.936]], [0.162, [0.894, 0.881, 0.936]], [0.164, [0.891, 0.878, 0.934]], [0.166, [0.891, 0.878, 0.934]], [0.168, [0.887, 0.876, 0.933]], [0.170, [0.887, 0.876, 0.933]], [0.172, [0.884, 0.873, 0.931]], [0.174, [0.884, 0.873, 0.931]], [0.176, [0.880, 0.870, 0.930]], [0.178, [0.880, 0.870, 0.930]], [0.180, [0.877, 0.868, 0.928]], [0.182, [0.877, 0.868, 0.928]], [0.184, [0.873, 0.865, 0.927]], [0.186, [0.873, 0.865, 0.927]], [0.188, [0.870, 0.862, 0.925]], [0.190, [0.870, 0.862, 0.925]], [0.192, [0.866, 0.860, 0.924]], [0.194, [0.866, 0.860, 0.924]], [0.196, [0.863, 0.857, 0.922]], [0.198, [0.863, 0.857, 0.922]], [0.200, [0.860, 0.854, 0.921]], [0.202, [0.860, 0.854, 0.921]], [0.204, [0.856, 0.851, 0.919]], [0.205, [0.856, 0.851, 0.919]], [0.207, [0.853, 0.849, 0.918]], [0.209, [0.853, 0.849, 0.918]], [0.211, [0.849, 0.846, 0.916]], [0.213, [0.849, 0.846, 0.916]], [0.215, [0.846, 0.843, 0.915]], [0.217, [0.846, 0.843, 0.915]], [0.219, [0.842, 0.841, 0.913]], [0.221, [0.842, 0.841, 0.913]], [0.223, [0.839, 0.838, 0.912]], [0.225, [0.839, 0.838, 0.912]], [0.227, [0.835, 0.835, 0.910]], [0.229, [0.835, 0.835, 0.910]], [0.231, [0.832, 0.832, 0.909]], [0.233, [0.832, 0.832, 0.909]], [0.235, [0.829, 0.830, 0.907]], [0.237, [0.829, 0.830, 0.907]], [0.239, [0.825, 0.827, 0.906]], [0.241, [0.825, 0.827, 0.906]], [0.243, [0.822, 0.824, 0.905]], [0.245, [0.822, 0.824, 0.905]], [0.247, [0.818, 0.822, 0.903]], [0.249, [0.818, 0.822, 0.903]], [0.250, [0.814, 0.819, 0.902]], [0.252, [0.814, 0.819, 0.902]], [0.254, [0.809, 0.817, 0.900]], [0.256, [0.809, 0.817, 0.900]], [0.258, [0.804, 0.814, 0.899]], [0.260, [0.804, 0.814, 0.899]], [0.262, [0.799, 0.812, 0.898]], [0.264, [0.799, 0.812, 0.898]], [0.266, [0.794, 0.809, 0.896]], [0.268, [0.794, 0.809, 0.896]], [0.270, [0.789, 0.807, 0.895]], [0.272, [0.789, 0.807, 0.895]], [0.274, [0.783, 0.804, 0.894]], [0.276, [0.783, 0.804, 0.894]], [0.278, [0.778, 0.802, 0.892]], [0.280, [0.778, 0.802, 0.892]], [0.282, [0.773, 0.799, 0.891]], [0.284, [0.773, 0.799, 0.891]], [0.286, [0.768, 0.797, 0.889]], [0.288, [0.768, 0.797, 0.889]], [0.290, [0.763, 0.794, 0.888]], [0.292, [0.763, 0.794, 0.888]], [0.294, [0.758, 0.792, 0.887]], [0.295, [0.758, 0.792, 0.887]], [0.297, [0.752, 0.789, 0.885]], [0.299, [0.752, 0.789, 0.885]], [0.301, [0.747, 0.787, 0.884]], [0.303, [0.747, 0.787, 0.884]], [0.305, [0.742, 0.785, 0.883]], [0.307, [0.742, 0.785, 0.883]], [0.309, [0.737, 0.782, 0.881]], [0.311, [0.737, 0.782, 0.881]], [0.313, [0.732, 0.780, 0.880]], [0.315, [0.732, 0.780, 0.880]], [0.317, [0.727, 0.777, 0.879]], [0.319, [0.727, 0.777, 0.879]], [0.321, [0.721, 0.775, 0.877]], [0.323, [0.721, 0.775, 0.877]], [0.325, [0.716, 0.772, 0.876]], [0.327, [0.716, 0.772, 0.876]], [0.329, [0.711, 0.770, 0.875]], [0.331, [0.711, 0.770, 0.875]], [0.333, [0.706, 0.767, 0.873]], [0.335, [0.706, 0.767, 0.873]], [0.337, [0.701, 0.765, 0.872]], [0.339, [0.701, 0.765, 0.872]], [0.341, [0.696, 0.762, 0.870]], [0.342, [0.696, 0.762, 0.870]], [0.344, [0.690, 0.760, 0.869]], [0.346, [0.690, 0.760, 0.869]], [0.348, [0.685, 0.757, 0.868]], [0.350, [0.685, 0.757, 0.868]], [0.352, [0.680, 0.755, 0.866]], [0.354, [0.680, 0.755, 0.866]], [0.356, [0.675, 0.753, 0.865]], [0.358, [0.675, 0.753, 0.865]], [0.360, [0.670, 0.750, 0.864]], [0.362, [0.670, 0.750, 0.864]], [0.364, [0.665, 0.748, 0.862]], [0.366, [0.665, 0.748, 0.862]], [0.368, [0.659, 0.745, 0.861]], [0.370, [0.659, 0.745, 0.861]], [0.372, [0.654, 0.743, 0.860]], [0.374, [0.654, 0.743, 0.860]], [0.376, [0.649, 0.740, 0.858]], [0.378, [0.649, 0.740, 0.858]], [0.380, [0.643, 0.738, 0.857]], [0.382, [0.643, 0.738, 0.857]], [0.384, [0.636, 0.735, 0.855]], [0.386, [0.636, 0.735, 0.855]], [0.387, [0.630, 0.733, 0.854]], [0.389, [0.630, 0.733, 0.854]], [0.391, [0.624, 0.730, 0.852]], [0.393, [0.624, 0.730, 0.852]], [0.395, [0.618, 0.728, 0.851]], [0.397, [0.618, 0.728, 0.851]], [0.399, [0.612, 0.725, 0.849]], [0.401, [0.612, 0.725, 0.849]], [0.403, [0.606, 0.723, 0.848]], [0.405, [0.606, 0.723, 0.848]], [0.407, [0.599, 0.721, 0.846]], [0.409, [0.599, 0.721, 0.846]], [0.411, [0.593, 0.718, 0.845]], [0.413, [0.593, 0.718, 0.845]], [0.415, [0.587, 0.716, 0.844]], [0.417, [0.587, 0.716, 0.844]], [0.419, [0.581, 0.713, 0.842]], [0.421, [0.581, 0.713, 0.842]], [0.423, [0.575, 0.711, 0.841]], [0.425, [0.575, 0.711, 0.841]], [0.427, [0.569, 0.708, 0.839]], [0.429, [0.569, 0.708, 0.839]], [0.431, [0.563, 0.706, 0.838]], [0.432, [0.563, 0.706, 0.838]], [0.434, [0.556, 0.703, 0.836]], [0.436, [0.556, 0.703, 0.836]], [0.438, [0.550, 0.701, 0.835]], [0.440, [0.550, 0.701, 0.835]], [0.442, [0.544, 0.698, 0.833]], [0.444, [0.544, 0.698, 0.833]], [0.446, [0.538, 0.696, 0.832]], [0.448, [0.538, 0.696, 0.832]], [0.450, [0.532, 0.694, 0.830]], [0.452, [0.532, 0.694, 0.830]], [0.454, [0.526, 0.691, 0.829]], [0.456, [0.526, 0.691, 0.829]], [0.458, [0.519, 0.689, 0.827]], [0.460, [0.519, 0.689, 0.827]], [0.462, [0.513, 0.686, 0.826]], [0.464, [0.513, 0.686, 0.826]], [0.466, [0.507, 0.684, 0.824]], [0.468, [0.507, 0.684, 0.824]], [0.470, [0.501, 0.681, 0.823]], [0.472, [0.501, 0.681, 0.823]], [0.474, [0.495, 0.679, 0.821]], [0.476, [0.495, 0.679, 0.821]], [0.477, [0.489, 0.676, 0.820]], [0.479, [0.489, 0.676, 0.820]], [0.481, [0.483, 0.674, 0.818]], [0.483, [0.483, 0.674, 0.818]], [0.485, [0.476, 0.671, 0.817]], [0.487, [0.476, 0.671, 0.817]], [0.489, [0.470, 0.669, 0.815]], [0.491, [0.470, 0.669, 0.815]], [0.493, [0.464, 0.666, 0.814]], [0.495, [0.464, 0.666, 0.814]], [0.497, [0.458, 0.664, 0.813]], [0.499, [0.458, 0.664, 0.813]], [0.501, [0.451, 0.661, 0.811]], [0.503, [0.451, 0.661, 0.811]], [0.505, [0.443, 0.658, 0.809]], [0.507, [0.443, 0.658, 0.809]], [0.509, [0.436, 0.655, 0.807]], [0.511, [0.436, 0.655, 0.807]], [0.513, [0.428, 0.652, 0.805]], [0.515, [0.428, 0.652, 0.805]], [0.517, [0.421, 0.649, 0.803]], [0.519, [0.421, 0.649, 0.803]], [0.521, [0.413, 0.646, 0.802]], [0.523, [0.413, 0.646, 0.802]], [0.524, [0.405, 0.643, 0.800]], [0.526, [0.405, 0.643, 0.800]], [0.528, [0.398, 0.640, 0.798]], [0.530, [0.398, 0.640, 0.798]], [0.532, [0.390, 0.637, 0.796]], [0.534, [0.390, 0.637, 0.796]], [0.536, [0.382, 0.634, 0.794]], [0.538, [0.382, 0.634, 0.794]], [0.540, [0.375, 0.630, 0.792]], [0.542, [0.375, 0.630, 0.792]], [0.544, [0.367, 0.627, 0.791]], [0.546, [0.367, 0.627, 0.791]], [0.548, [0.360, 0.624, 0.789]], [0.550, [0.360, 0.624, 0.789]], [0.552, [0.352, 0.621, 0.787]], [0.554, [0.352, 0.621, 0.787]], [0.556, [0.344, 0.618, 0.785]], [0.558, [0.344, 0.618, 0.785]], [0.560, [0.337, 0.615, 0.783]], [0.562, [0.337, 0.615, 0.783]], [0.564, [0.329, 0.612, 0.781]], [0.566, [0.329, 0.612, 0.781]], [0.568, [0.321, 0.609, 0.779]], [0.569, [0.321, 0.609, 0.779]], [0.571, [0.314, 0.606, 0.778]], [0.573, [0.314, 0.606, 0.778]], [0.575, [0.306, 0.603, 0.776]], [0.577, [0.306, 0.603, 0.776]], [0.579, [0.299, 0.600, 0.774]], [0.581, [0.299, 0.600, 0.774]], [0.583, [0.291, 0.597, 0.772]], [0.585, [0.291, 0.597, 0.772]], [0.587, [0.283, 0.594, 0.770]], [0.589, [0.283, 0.594, 0.770]], [0.591, [0.276, 0.590, 0.768]], [0.593, [0.276, 0.590, 0.768]], [0.595, [0.268, 0.587, 0.767]], [0.597, [0.268, 0.587, 0.767]], [0.599, [0.260, 0.584, 0.765]], [0.601, [0.260, 0.584, 0.765]], [0.603, [0.253, 0.581, 0.763]], [0.605, [0.253, 0.581, 0.763]], [0.607, [0.245, 0.578, 0.761]], [0.609, [0.245, 0.578, 0.761]], [0.611, [0.238, 0.575, 0.759]], [0.613, [0.238, 0.575, 0.759]], [0.614, [0.230, 0.572, 0.757]], [0.616, [0.230, 0.572, 0.757]], [0.618, [0.222, 0.569, 0.755]], [0.620, [0.222, 0.569, 0.755]], [0.622, [0.215, 0.566, 0.754]], [0.624, [0.215, 0.566, 0.754]], [0.626, [0.208, 0.562, 0.752]], [0.628, [0.208, 0.562, 0.752]], [0.630, [0.202, 0.558, 0.750]], [0.632, [0.202, 0.558, 0.750]], [0.634, [0.196, 0.554, 0.748]], [0.636, [0.196, 0.554, 0.748]], [0.638, [0.190, 0.550, 0.746]], [0.640, [0.190, 0.550, 0.746]], [0.642, [0.184, 0.546, 0.744]], [0.644, [0.184, 0.546, 0.744]], [0.646, [0.178, 0.543, 0.742]], [0.648, [0.178, 0.543, 0.742]], [0.650, [0.172, 0.539, 0.740]], [0.652, [0.172, 0.539, 0.740]], [0.654, [0.166, 0.535, 0.738]], [0.656, [0.166, 0.535, 0.738]], [0.658, [0.160, 0.531, 0.736]], [0.659, [0.160, 0.531, 0.736]], [0.661, [0.154, 0.527, 0.734]], [0.663, [0.154, 0.527, 0.734]], [0.665, [0.148, 0.523, 0.732]], [0.667, [0.148, 0.523, 0.732]], [0.669, [0.142, 0.519, 0.730]], [0.671, [0.142, 0.519, 0.730]], [0.673, [0.136, 0.515, 0.728]], [0.675, [0.136, 0.515, 0.728]], [0.677, [0.130, 0.511, 0.726]], [0.679, [0.130, 0.511, 0.726]], [0.681, [0.124, 0.507, 0.724]], [0.683, [0.124, 0.507, 0.724]], [0.685, [0.118, 0.503, 0.722]], [0.687, [0.118, 0.503, 0.722]], [0.689, [0.112, 0.499, 0.720]], [0.691, [0.112, 0.499, 0.720]], [0.693, [0.106, 0.495, 0.718]], [0.695, [0.106, 0.495, 0.718]], [0.697, [0.099, 0.491, 0.716]], [0.699, [0.099, 0.491, 0.716]], [0.701, [0.093, 0.487, 0.714]], [0.703, [0.093, 0.487, 0.714]], [0.705, [0.087, 0.484, 0.712]], [0.706, [0.087, 0.484, 0.712]], [0.708, [0.081, 0.480, 0.710]], [0.710, [0.081, 0.480, 0.710]], [0.712, [0.075, 0.476, 0.708]], [0.714, [0.075, 0.476, 0.708]], [0.716, [0.069, 0.472, 0.706]], [0.718, [0.069, 0.472, 0.706]], [0.720, [0.063, 0.468, 0.704]], [0.722, [0.063, 0.468, 0.704]], [0.724, [0.057, 0.464, 0.702]], [0.726, [0.057, 0.464, 0.702]], [0.728, [0.051, 0.460, 0.701]], [0.730, [0.051, 0.460, 0.701]], [0.732, [0.045, 0.456, 0.699]], [0.734, [0.045, 0.456, 0.699]], [0.736, [0.039, 0.452, 0.697]], [0.738, [0.039, 0.452, 0.697]], [0.740, [0.033, 0.448, 0.695]], [0.742, [0.033, 0.448, 0.695]], [0.744, [0.027, 0.444, 0.693]], [0.746, [0.027, 0.444, 0.693]], [0.748, [0.021, 0.440, 0.691]], [0.750, [0.021, 0.440, 0.691]], [0.751, [0.020, 0.437, 0.687]], [0.753, [0.020, 0.437, 0.687]], [0.755, [0.019, 0.434, 0.683]], [0.757, [0.019, 0.434, 0.683]], [0.759, [0.019, 0.432, 0.678]], [0.761, [0.019, 0.432, 0.678]], [0.763, [0.019, 0.429, 0.674]], [0.765, [0.019, 0.429, 0.674]], [0.767, [0.019, 0.426, 0.670]], [0.769, [0.019, 0.426, 0.670]], [0.771, [0.019, 0.424, 0.665]], [0.773, [0.019, 0.424, 0.665]], [0.775, [0.019, 0.421, 0.661]], [0.777, [0.019, 0.421, 0.661]], [0.779, [0.019, 0.418, 0.657]], [0.781, [0.019, 0.418, 0.657]], [0.783, [0.019, 0.416, 0.653]], [0.785, [0.019, 0.416, 0.653]], [0.787, [0.018, 0.413, 0.648]], [0.789, [0.018, 0.413, 0.648]], [0.791, [0.018, 0.410, 0.644]], [0.793, [0.018, 0.410, 0.644]], [0.795, [0.018, 0.407, 0.640]], [0.796, [0.018, 0.407, 0.640]], [0.798, [0.018, 0.405, 0.635]], [0.800, [0.018, 0.405, 0.635]], [0.802, [0.018, 0.402, 0.631]], [0.804, [0.018, 0.402, 0.631]], [0.806, [0.018, 0.399, 0.627]], [0.808, [0.018, 0.399, 0.627]], [0.810, [0.018, 0.397, 0.622]], [0.812, [0.018, 0.397, 0.622]], [0.814, [0.018, 0.394, 0.618]], [0.816, [0.018, 0.394, 0.618]], [0.818, [0.017, 0.391, 0.614]], [0.820, [0.017, 0.391, 0.614]], [0.822, [0.017, 0.388, 0.609]], [0.824, [0.017, 0.388, 0.609]], [0.826, [0.017, 0.386, 0.605]], [0.828, [0.017, 0.386, 0.605]], [0.830, [0.017, 0.383, 0.601]], [0.832, [0.017, 0.383, 0.601]], [0.834, [0.017, 0.380, 0.597]], [0.836, [0.017, 0.380, 0.597]], [0.838, [0.017, 0.378, 0.592]], [0.840, [0.017, 0.378, 0.592]], [0.841, [0.017, 0.375, 0.588]], [0.843, [0.017, 0.375, 0.588]], [0.845, [0.017, 0.372, 0.584]], [0.847, [0.017, 0.372, 0.584]], [0.849, [0.016, 0.370, 0.579]], [0.851, [0.016, 0.370, 0.579]], [0.853, [0.016, 0.367, 0.575]], [0.855, [0.016, 0.367, 0.575]], [0.857, [0.016, 0.364, 0.571]], [0.859, [0.016, 0.364, 0.571]], [0.861, [0.016, 0.361, 0.566]], [0.863, [0.016, 0.361, 0.566]], [0.865, [0.016, 0.359, 0.562]], [0.867, [0.016, 0.359, 0.562]], [0.869, [0.016, 0.356, 0.558]], [0.871, [0.016, 0.356, 0.558]], [0.873, [0.016, 0.353, 0.553]], [0.875, [0.016, 0.353, 0.553]], [0.877, [0.015, 0.349, 0.547]], [0.879, [0.015, 0.349, 0.547]], [0.881, [0.015, 0.345, 0.541]], [0.883, [0.015, 0.345, 0.541]], [0.885, [0.015, 0.341, 0.534]], [0.886, [0.015, 0.341, 0.534]], [0.888, [0.015, 0.337, 0.528]], [0.890, [0.015, 0.337, 0.528]], [0.892, [0.014, 0.333, 0.521]], [0.894, [0.014, 0.333, 0.521]], [0.896, [0.014, 0.328, 0.515]], [0.898, [0.014, 0.328, 0.515]], [0.900, [0.014, 0.324, 0.508]], [0.902, [0.014, 0.324, 0.508]], [0.904, [0.014, 0.320, 0.502]], [0.906, [0.014, 0.320, 0.502]], [0.908, [0.014, 0.316, 0.495]], [0.910, [0.014, 0.316, 0.495]], [0.912, [0.013, 0.312, 0.489]], [0.914, [0.013, 0.312, 0.489]], [0.916, [0.013, 0.307, 0.482]], [0.918, [0.013, 0.307, 0.482]], [0.920, [0.013, 0.303, 0.476]], [0.922, [0.013, 0.303, 0.476]], [0.924, [0.013, 0.299, 0.469]], [0.926, [0.013, 0.299, 0.469]], [0.928, [0.012, 0.295, 0.462]], [0.930, [0.012, 0.295, 0.462]], [0.932, [0.012, 0.291, 0.456]], [0.933, [0.012, 0.291, 0.456]], [0.935, [0.012, 0.287, 0.449]], [0.937, [0.012, 0.287, 0.449]], [0.939, [0.012, 0.282, 0.443]], [0.941, [0.012, 0.282, 0.443]], [0.943, [0.011, 0.278, 0.436]], [0.945, [0.011, 0.278, 0.436]], [0.947, [0.011, 0.274, 0.430]], [0.949, [0.011, 0.274, 0.430]], [0.951, [0.011, 0.270, 0.423]], [0.953, [0.011, 0.270, 0.423]], [0.955, [0.011, 0.266, 0.417]], [0.957, [0.011, 0.266, 0.417]], [0.959, [0.010, 0.261, 0.410]], [0.961, [0.010, 0.261, 0.410]], [0.963, [0.010, 0.257, 0.404]], [0.965, [0.010, 0.257, 0.404]], [0.967, [0.010, 0.253, 0.397]], [0.969, [0.010, 0.253, 0.397]], [0.971, [0.010, 0.249, 0.391]], [0.973, [0.010, 0.249, 0.391]], [0.975, [0.009, 0.245, 0.384]], [0.977, [0.009, 0.245, 0.384]], [0.978, [0.009, 0.241, 0.378]], [0.980, [0.009, 0.241, 0.378]], [0.982, [0.009, 0.236, 0.371]], [0.984, [0.009, 0.236, 0.371]], [0.986, [0.009, 0.232, 0.365]], [0.988, [0.009, 0.232, 0.365]], [0.990, [0.008, 0.228, 0.358]], [0.992, [0.008, 0.228, 0.358]], [0.994, [0.008, 0.224, 0.352]], [0.996, [0.008, 0.224, 0.352]], [0.998, [0.008, 0.220, 0.345]], [1.000, [0.008, 0.220, 0.345]]];
+var PuBuGn = [[0.000, [1.000, 0.969, 0.984]], [0.002, [1.000, 0.969, 0.984]], [0.004, [0.998, 0.966, 0.983]], [0.006, [0.998, 0.966, 0.983]], [0.008, [0.995, 0.963, 0.982]], [0.010, [0.995, 0.963, 0.982]], [0.012, [0.993, 0.961, 0.980]], [0.014, [0.993, 0.961, 0.980]], [0.016, [0.991, 0.958, 0.979]], [0.018, [0.991, 0.958, 0.979]], [0.020, [0.988, 0.956, 0.978]], [0.022, [0.988, 0.956, 0.978]], [0.023, [0.986, 0.953, 0.976]], [0.025, [0.986, 0.953, 0.976]], [0.027, [0.984, 0.951, 0.975]], [0.029, [0.984, 0.951, 0.975]], [0.031, [0.981, 0.948, 0.973]], [0.033, [0.981, 0.948, 0.973]], [0.035, [0.979, 0.945, 0.972]], [0.037, [0.979, 0.945, 0.972]], [0.039, [0.977, 0.943, 0.971]], [0.041, [0.977, 0.943, 0.971]], [0.043, [0.974, 0.940, 0.969]], [0.045, [0.974, 0.940, 0.969]], [0.047, [0.972, 0.938, 0.968]], [0.049, [0.972, 0.938, 0.968]], [0.051, [0.970, 0.935, 0.967]], [0.053, [0.970, 0.935, 0.967]], [0.055, [0.967, 0.932, 0.965]], [0.057, [0.967, 0.932, 0.965]], [0.059, [0.965, 0.930, 0.964]], [0.061, [0.965, 0.930, 0.964]], [0.063, [0.963, 0.927, 0.963]], [0.065, [0.963, 0.927, 0.963]], [0.067, [0.960, 0.925, 0.961]], [0.068, [0.960, 0.925, 0.961]], [0.070, [0.958, 0.922, 0.960]], [0.072, [0.958, 0.922, 0.960]], [0.074, [0.956, 0.920, 0.959]], [0.076, [0.956, 0.920, 0.959]], [0.078, [0.953, 0.917, 0.957]], [0.080, [0.953, 0.917, 0.957]], [0.082, [0.951, 0.914, 0.956]], [0.084, [0.951, 0.914, 0.956]], [0.086, [0.949, 0.912, 0.955]], [0.088, [0.949, 0.912, 0.955]], [0.090, [0.946, 0.909, 0.953]], [0.092, [0.946, 0.909, 0.953]], [0.094, [0.944, 0.907, 0.952]], [0.096, [0.944, 0.907, 0.952]], [0.098, [0.942, 0.904, 0.950]], [0.100, [0.942, 0.904, 0.950]], [0.102, [0.939, 0.901, 0.949]], [0.104, [0.939, 0.901, 0.949]], [0.106, [0.937, 0.899, 0.948]], [0.108, [0.937, 0.899, 0.948]], [0.110, [0.935, 0.896, 0.946]], [0.112, [0.935, 0.896, 0.946]], [0.114, [0.932, 0.894, 0.945]], [0.115, [0.932, 0.894, 0.945]], [0.117, [0.930, 0.891, 0.944]], [0.119, [0.930, 0.891, 0.944]], [0.121, [0.928, 0.889, 0.942]], [0.123, [0.928, 0.889, 0.942]], [0.125, [0.925, 0.886, 0.941]], [0.127, [0.925, 0.886, 0.941]], [0.129, [0.922, 0.884, 0.940]], [0.131, [0.922, 0.884, 0.940]], [0.133, [0.918, 0.882, 0.939]], [0.135, [0.918, 0.882, 0.939]], [0.137, [0.915, 0.880, 0.937]], [0.139, [0.915, 0.880, 0.937]], [0.141, [0.911, 0.878, 0.936]], [0.143, [0.911, 0.878, 0.936]], [0.145, [0.908, 0.876, 0.935]], [0.147, [0.908, 0.876, 0.935]], [0.149, [0.904, 0.873, 0.934]], [0.151, [0.904, 0.873, 0.934]], [0.153, [0.901, 0.871, 0.932]], [0.155, [0.901, 0.871, 0.932]], [0.157, [0.898, 0.869, 0.931]], [0.159, [0.898, 0.869, 0.931]], [0.160, [0.894, 0.867, 0.930]], [0.162, [0.894, 0.867, 0.930]], [0.164, [0.891, 0.865, 0.929]], [0.166, [0.891, 0.865, 0.929]], [0.168, [0.887, 0.863, 0.927]], [0.170, [0.887, 0.863, 0.927]], [0.172, [0.884, 0.861, 0.926]], [0.174, [0.884, 0.861, 0.926]], [0.176, [0.880, 0.859, 0.925]], [0.178, [0.880, 0.859, 0.925]], [0.180, [0.877, 0.857, 0.924]], [0.182, [0.877, 0.857, 0.924]], [0.184, [0.873, 0.855, 0.923]], [0.186, [0.873, 0.855, 0.923]], [0.188, [0.870, 0.853, 0.921]], [0.190, [0.870, 0.853, 0.921]], [0.192, [0.866, 0.850, 0.920]], [0.194, [0.866, 0.850, 0.920]], [0.196, [0.863, 0.848, 0.919]], [0.198, [0.863, 0.848, 0.919]], [0.200, [0.860, 0.846, 0.918]], [0.202, [0.860, 0.846, 0.918]], [0.204, [0.856, 0.844, 0.916]], [0.205, [0.856, 0.844, 0.916]], [0.207, [0.853, 0.842, 0.915]], [0.209, [0.853, 0.842, 0.915]], [0.211, [0.849, 0.840, 0.914]], [0.213, [0.849, 0.840, 0.914]], [0.215, [0.846, 0.838, 0.913]], [0.217, [0.846, 0.838, 0.913]], [0.219, [0.842, 0.836, 0.911]], [0.221, [0.842, 0.836, 0.911]], [0.223, [0.839, 0.834, 0.910]], [0.225, [0.839, 0.834, 0.910]], [0.227, [0.835, 0.832, 0.909]], [0.229, [0.835, 0.832, 0.909]], [0.231, [0.832, 0.830, 0.908]], [0.233, [0.832, 0.830, 0.908]], [0.235, [0.829, 0.827, 0.907]], [0.237, [0.829, 0.827, 0.907]], [0.239, [0.825, 0.825, 0.905]], [0.241, [0.825, 0.825, 0.905]], [0.243, [0.822, 0.823, 0.904]], [0.245, [0.822, 0.823, 0.904]], [0.247, [0.818, 0.821, 0.903]], [0.249, [0.818, 0.821, 0.903]], [0.250, [0.814, 0.819, 0.902]], [0.252, [0.814, 0.819, 0.902]], [0.254, [0.809, 0.817, 0.900]], [0.256, [0.809, 0.817, 0.900]], [0.258, [0.804, 0.814, 0.899]], [0.260, [0.804, 0.814, 0.899]], [0.262, [0.799, 0.812, 0.898]], [0.264, [0.799, 0.812, 0.898]], [0.266, [0.794, 0.809, 0.896]], [0.268, [0.794, 0.809, 0.896]], [0.270, [0.789, 0.807, 0.895]], [0.272, [0.789, 0.807, 0.895]], [0.274, [0.783, 0.804, 0.894]], [0.276, [0.783, 0.804, 0.894]], [0.278, [0.778, 0.802, 0.892]], [0.280, [0.778, 0.802, 0.892]], [0.282, [0.773, 0.799, 0.891]], [0.284, [0.773, 0.799, 0.891]], [0.286, [0.768, 0.797, 0.889]], [0.288, [0.768, 0.797, 0.889]], [0.290, [0.763, 0.794, 0.888]], [0.292, [0.763, 0.794, 0.888]], [0.294, [0.758, 0.792, 0.887]], [0.295, [0.758, 0.792, 0.887]], [0.297, [0.752, 0.789, 0.885]], [0.299, [0.752, 0.789, 0.885]], [0.301, [0.747, 0.787, 0.884]], [0.303, [0.747, 0.787, 0.884]], [0.305, [0.742, 0.785, 0.883]], [0.307, [0.742, 0.785, 0.883]], [0.309, [0.737, 0.782, 0.881]], [0.311, [0.737, 0.782, 0.881]], [0.313, [0.732, 0.780, 0.880]], [0.315, [0.732, 0.780, 0.880]], [0.317, [0.727, 0.777, 0.879]], [0.319, [0.727, 0.777, 0.879]], [0.321, [0.721, 0.775, 0.877]], [0.323, [0.721, 0.775, 0.877]], [0.325, [0.716, 0.772, 0.876]], [0.327, [0.716, 0.772, 0.876]], [0.329, [0.711, 0.770, 0.875]], [0.331, [0.711, 0.770, 0.875]], [0.333, [0.706, 0.767, 0.873]], [0.335, [0.706, 0.767, 0.873]], [0.337, [0.701, 0.765, 0.872]], [0.339, [0.701, 0.765, 0.872]], [0.341, [0.696, 0.762, 0.870]], [0.342, [0.696, 0.762, 0.870]], [0.344, [0.690, 0.760, 0.869]], [0.346, [0.690, 0.760, 0.869]], [0.348, [0.685, 0.757, 0.868]], [0.350, [0.685, 0.757, 0.868]], [0.352, [0.680, 0.755, 0.866]], [0.354, [0.680, 0.755, 0.866]], [0.356, [0.675, 0.753, 0.865]], [0.358, [0.675, 0.753, 0.865]], [0.360, [0.670, 0.750, 0.864]], [0.362, [0.670, 0.750, 0.864]], [0.364, [0.665, 0.748, 0.862]], [0.366, [0.665, 0.748, 0.862]], [0.368, [0.659, 0.745, 0.861]], [0.370, [0.659, 0.745, 0.861]], [0.372, [0.654, 0.743, 0.860]], [0.374, [0.654, 0.743, 0.860]], [0.376, [0.648, 0.740, 0.858]], [0.378, [0.648, 0.740, 0.858]], [0.380, [0.640, 0.738, 0.857]], [0.382, [0.640, 0.738, 0.857]], [0.384, [0.633, 0.735, 0.855]], [0.386, [0.633, 0.735, 0.855]], [0.387, [0.625, 0.733, 0.854]], [0.389, [0.625, 0.733, 0.854]], [0.391, [0.617, 0.730, 0.852]], [0.393, [0.617, 0.730, 0.852]], [0.395, [0.609, 0.728, 0.851]], [0.397, [0.609, 0.728, 0.851]], [0.399, [0.602, 0.725, 0.849]], [0.401, [0.602, 0.725, 0.849]], [0.403, [0.594, 0.723, 0.848]], [0.405, [0.594, 0.723, 0.848]], [0.407, [0.586, 0.721, 0.846]], [0.409, [0.586, 0.721, 0.846]], [0.411, [0.578, 0.718, 0.845]], [0.413, [0.578, 0.718, 0.845]], [0.415, [0.571, 0.716, 0.844]], [0.417, [0.571, 0.716, 0.844]], [0.419, [0.563, 0.713, 0.842]], [0.421, [0.563, 0.713, 0.842]], [0.423, [0.555, 0.711, 0.841]], [0.425, [0.555, 0.711, 0.841]], [0.427, [0.547, 0.708, 0.839]], [0.429, [0.547, 0.708, 0.839]], [0.431, [0.540, 0.706, 0.838]], [0.432, [0.540, 0.706, 0.838]], [0.434, [0.532, 0.703, 0.836]], [0.436, [0.532, 0.703, 0.836]], [0.438, [0.524, 0.701, 0.835]], [0.440, [0.524, 0.701, 0.835]], [0.442, [0.516, 0.698, 0.833]], [0.444, [0.516, 0.698, 0.833]], [0.446, [0.509, 0.696, 0.832]], [0.448, [0.509, 0.696, 0.832]], [0.450, [0.501, 0.694, 0.830]], [0.452, [0.501, 0.694, 0.830]], [0.454, [0.493, 0.691, 0.829]], [0.456, [0.493, 0.691, 0.829]], [0.458, [0.485, 0.689, 0.827]], [0.460, [0.485, 0.689, 0.827]], [0.462, [0.478, 0.686, 0.826]], [0.464, [0.478, 0.686, 0.826]], [0.466, [0.470, 0.684, 0.824]], [0.468, [0.470, 0.684, 0.824]], [0.470, [0.462, 0.681, 0.823]], [0.472, [0.462, 0.681, 0.823]], [0.474, [0.454, 0.679, 0.821]], [0.476, [0.454, 0.679, 0.821]], [0.477, [0.447, 0.676, 0.820]], [0.479, [0.447, 0.676, 0.820]], [0.481, [0.439, 0.674, 0.818]], [0.483, [0.439, 0.674, 0.818]], [0.485, [0.431, 0.671, 0.817]], [0.487, [0.431, 0.671, 0.817]], [0.489, [0.423, 0.669, 0.815]], [0.491, [0.423, 0.669, 0.815]], [0.493, [0.416, 0.666, 0.814]], [0.495, [0.416, 0.666, 0.814]], [0.497, [0.408, 0.664, 0.813]], [0.499, [0.408, 0.664, 0.813]], [0.501, [0.401, 0.661, 0.811]], [0.503, [0.401, 0.661, 0.811]], [0.505, [0.395, 0.658, 0.809]], [0.507, [0.395, 0.658, 0.809]], [0.509, [0.389, 0.655, 0.807]], [0.511, [0.389, 0.655, 0.807]], [0.513, [0.383, 0.652, 0.805]], [0.515, [0.383, 0.652, 0.805]], [0.517, [0.377, 0.649, 0.803]], [0.519, [0.377, 0.649, 0.803]], [0.521, [0.371, 0.646, 0.802]], [0.523, [0.371, 0.646, 0.802]], [0.524, [0.365, 0.643, 0.800]], [0.526, [0.365, 0.643, 0.800]], [0.528, [0.359, 0.640, 0.798]], [0.530, [0.359, 0.640, 0.798]], [0.532, [0.353, 0.637, 0.796]], [0.534, [0.353, 0.637, 0.796]], [0.536, [0.347, 0.634, 0.794]], [0.538, [0.347, 0.634, 0.794]], [0.540, [0.341, 0.630, 0.792]], [0.542, [0.341, 0.630, 0.792]], [0.544, [0.335, 0.627, 0.791]], [0.546, [0.335, 0.627, 0.791]], [0.548, [0.329, 0.624, 0.789]], [0.550, [0.329, 0.624, 0.789]], [0.552, [0.323, 0.621, 0.787]], [0.554, [0.323, 0.621, 0.787]], [0.556, [0.317, 0.618, 0.785]], [0.558, [0.317, 0.618, 0.785]], [0.560, [0.310, 0.615, 0.783]], [0.562, [0.310, 0.615, 0.783]], [0.564, [0.304, 0.612, 0.781]], [0.566, [0.304, 0.612, 0.781]], [0.568, [0.298, 0.609, 0.779]], [0.569, [0.298, 0.609, 0.779]], [0.571, [0.292, 0.606, 0.778]], [0.573, [0.292, 0.606, 0.778]], [0.575, [0.286, 0.603, 0.776]], [0.577, [0.286, 0.603, 0.776]], [0.579, [0.280, 0.600, 0.774]], [0.581, [0.280, 0.600, 0.774]], [0.583, [0.274, 0.597, 0.772]], [0.585, [0.274, 0.597, 0.772]], [0.587, [0.268, 0.594, 0.770]], [0.589, [0.268, 0.594, 0.770]], [0.591, [0.262, 0.590, 0.768]], [0.593, [0.262, 0.590, 0.768]], [0.595, [0.256, 0.587, 0.767]], [0.597, [0.256, 0.587, 0.767]], [0.599, [0.250, 0.584, 0.765]], [0.601, [0.250, 0.584, 0.765]], [0.603, [0.244, 0.581, 0.763]], [0.605, [0.244, 0.581, 0.763]], [0.607, [0.238, 0.578, 0.761]], [0.609, [0.238, 0.578, 0.761]], [0.611, [0.232, 0.575, 0.759]], [0.613, [0.232, 0.575, 0.759]], [0.614, [0.226, 0.572, 0.757]], [0.616, [0.226, 0.572, 0.757]], [0.618, [0.220, 0.569, 0.755]], [0.620, [0.220, 0.569, 0.755]], [0.622, [0.214, 0.566, 0.754]], [0.624, [0.214, 0.566, 0.754]], [0.626, [0.208, 0.564, 0.749]], [0.628, [0.208, 0.564, 0.749]], [0.630, [0.201, 0.562, 0.742]], [0.632, [0.201, 0.562, 0.742]], [0.634, [0.195, 0.560, 0.736]], [0.636, [0.195, 0.560, 0.736]], [0.638, [0.189, 0.558, 0.729]], [0.640, [0.189, 0.558, 0.729]], [0.642, [0.182, 0.556, 0.722]], [0.644, [0.182, 0.556, 0.722]], [0.646, [0.176, 0.554, 0.716]], [0.648, [0.176, 0.554, 0.716]], [0.650, [0.169, 0.552, 0.709]], [0.652, [0.169, 0.552, 0.709]], [0.654, [0.163, 0.551, 0.702]], [0.656, [0.163, 0.551, 0.702]], [0.658, [0.157, 0.549, 0.696]], [0.659, [0.157, 0.549, 0.696]], [0.661, [0.150, 0.547, 0.689]], [0.663, [0.150, 0.547, 0.689]], [0.665, [0.144, 0.545, 0.682]], [0.667, [0.144, 0.545, 0.682]], [0.669, [0.137, 0.543, 0.676]], [0.671, [0.137, 0.543, 0.676]], [0.673, [0.131, 0.541, 0.669]], [0.675, [0.131, 0.541, 0.669]], [0.677, [0.125, 0.540, 0.662]], [0.679, [0.125, 0.540, 0.662]], [0.681, [0.118, 0.538, 0.656]], [0.683, [0.118, 0.538, 0.656]], [0.685, [0.112, 0.536, 0.649]], [0.687, [0.112, 0.536, 0.649]], [0.689, [0.105, 0.534, 0.642]], [0.691, [0.105, 0.534, 0.642]], [0.693, [0.099, 0.532, 0.636]], [0.695, [0.099, 0.532, 0.636]], [0.697, [0.093, 0.530, 0.629]], [0.699, [0.093, 0.530, 0.629]], [0.701, [0.086, 0.528, 0.623]], [0.703, [0.086, 0.528, 0.623]], [0.705, [0.080, 0.527, 0.616]], [0.706, [0.080, 0.527, 0.616]], [0.708, [0.073, 0.525, 0.609]], [0.710, [0.073, 0.525, 0.609]], [0.712, [0.067, 0.523, 0.603]], [0.714, [0.067, 0.523, 0.603]], [0.716, [0.061, 0.521, 0.596]], [0.718, [0.061, 0.521, 0.596]], [0.720, [0.054, 0.519, 0.589]], [0.722, [0.054, 0.519, 0.589]], [0.724, [0.048, 0.517, 0.583]], [0.726, [0.048, 0.517, 0.583]], [0.728, [0.041, 0.516, 0.576]], [0.730, [0.041, 0.516, 0.576]], [0.732, [0.035, 0.514, 0.569]], [0.734, [0.035, 0.514, 0.569]], [0.736, [0.029, 0.512, 0.563]], [0.738, [0.029, 0.512, 0.563]], [0.740, [0.022, 0.510, 0.556]], [0.742, [0.022, 0.510, 0.556]], [0.744, [0.016, 0.508, 0.549]], [0.746, [0.016, 0.508, 0.549]], [0.748, [0.009, 0.506, 0.543]], [0.750, [0.009, 0.506, 0.543]], [0.751, [0.008, 0.504, 0.537]], [0.753, [0.008, 0.504, 0.537]], [0.755, [0.008, 0.501, 0.531]], [0.757, [0.008, 0.501, 0.531]], [0.759, [0.008, 0.499, 0.525]], [0.761, [0.008, 0.499, 0.525]], [0.763, [0.007, 0.496, 0.519]], [0.765, [0.007, 0.496, 0.519]], [0.767, [0.007, 0.494, 0.513]], [0.769, [0.007, 0.494, 0.513]], [0.771, [0.007, 0.491, 0.507]], [0.773, [0.007, 0.491, 0.507]], [0.775, [0.007, 0.488, 0.500]], [0.777, [0.007, 0.488, 0.500]], [0.779, [0.007, 0.486, 0.494]], [0.781, [0.007, 0.486, 0.494]], [0.783, [0.007, 0.483, 0.488]], [0.785, [0.007, 0.483, 0.488]], [0.787, [0.007, 0.481, 0.482]], [0.789, [0.007, 0.481, 0.482]], [0.791, [0.007, 0.478, 0.476]], [0.793, [0.007, 0.478, 0.476]], [0.795, [0.006, 0.476, 0.470]], [0.796, [0.006, 0.476, 0.470]], [0.798, [0.006, 0.473, 0.464]], [0.800, [0.006, 0.473, 0.464]], [0.802, [0.006, 0.470, 0.458]], [0.804, [0.006, 0.470, 0.458]], [0.806, [0.006, 0.468, 0.452]], [0.808, [0.006, 0.468, 0.452]], [0.810, [0.006, 0.465, 0.446]], [0.812, [0.006, 0.465, 0.446]], [0.814, [0.006, 0.463, 0.440]], [0.816, [0.006, 0.463, 0.440]], [0.818, [0.006, 0.460, 0.434]], [0.820, [0.006, 0.460, 0.434]], [0.822, [0.006, 0.457, 0.428]], [0.824, [0.006, 0.457, 0.428]], [0.826, [0.005, 0.455, 0.422]], [0.828, [0.005, 0.455, 0.422]], [0.830, [0.005, 0.452, 0.416]], [0.832, [0.005, 0.452, 0.416]], [0.834, [0.005, 0.450, 0.410]], [0.836, [0.005, 0.450, 0.410]], [0.838, [0.005, 0.447, 0.404]], [0.840, [0.005, 0.447, 0.404]], [0.841, [0.005, 0.445, 0.398]], [0.843, [0.005, 0.445, 0.398]], [0.845, [0.005, 0.442, 0.392]], [0.847, [0.005, 0.442, 0.392]], [0.849, [0.005, 0.439, 0.386]], [0.851, [0.005, 0.439, 0.386]], [0.853, [0.005, 0.437, 0.380]], [0.855, [0.005, 0.437, 0.380]], [0.857, [0.004, 0.434, 0.374]], [0.859, [0.004, 0.434, 0.374]], [0.861, [0.004, 0.432, 0.368]], [0.863, [0.004, 0.432, 0.368]], [0.865, [0.004, 0.429, 0.362]], [0.867, [0.004, 0.429, 0.362]], [0.869, [0.004, 0.426, 0.356]], [0.871, [0.004, 0.426, 0.356]], [0.873, [0.004, 0.424, 0.350]], [0.875, [0.004, 0.424, 0.350]], [0.877, [0.004, 0.419, 0.345]], [0.879, [0.004, 0.419, 0.345]], [0.881, [0.004, 0.415, 0.341]], [0.883, [0.004, 0.415, 0.341]], [0.885, [0.004, 0.410, 0.337]], [0.886, [0.004, 0.410, 0.337]], [0.888, [0.004, 0.405, 0.332]], [0.890, [0.004, 0.405, 0.332]], [0.892, [0.004, 0.401, 0.328]], [0.894, [0.004, 0.401, 0.328]], [0.896, [0.004, 0.396, 0.324]], [0.898, [0.004, 0.396, 0.324]], [0.900, [0.004, 0.391, 0.319]], [0.902, [0.004, 0.391, 0.319]], [0.904, [0.004, 0.387, 0.315]], [0.906, [0.004, 0.387, 0.315]], [0.908, [0.004, 0.382, 0.311]], [0.910, [0.004, 0.382, 0.311]], [0.912, [0.004, 0.377, 0.306]], [0.914, [0.004, 0.377, 0.306]], [0.916, [0.004, 0.373, 0.302]], [0.918, [0.004, 0.373, 0.302]], [0.920, [0.004, 0.368, 0.298]], [0.922, [0.004, 0.368, 0.298]], [0.924, [0.004, 0.363, 0.294]], [0.926, [0.004, 0.363, 0.294]], [0.928, [0.004, 0.359, 0.289]], [0.930, [0.004, 0.359, 0.289]], [0.932, [0.004, 0.354, 0.285]], [0.933, [0.004, 0.354, 0.285]], [0.935, [0.004, 0.349, 0.281]], [0.937, [0.004, 0.349, 0.281]], [0.939, [0.004, 0.345, 0.276]], [0.941, [0.004, 0.345, 0.276]], [0.943, [0.004, 0.340, 0.272]], [0.945, [0.004, 0.340, 0.272]], [0.947, [0.004, 0.335, 0.268]], [0.949, [0.004, 0.335, 0.268]], [0.951, [0.004, 0.331, 0.263]], [0.953, [0.004, 0.331, 0.263]], [0.955, [0.004, 0.326, 0.259]], [0.957, [0.004, 0.326, 0.259]], [0.959, [0.004, 0.321, 0.255]], [0.961, [0.004, 0.321, 0.255]], [0.963, [0.004, 0.317, 0.251]], [0.965, [0.004, 0.317, 0.251]], [0.967, [0.004, 0.312, 0.246]], [0.969, [0.004, 0.312, 0.246]], [0.971, [0.004, 0.307, 0.242]], [0.973, [0.004, 0.307, 0.242]], [0.975, [0.004, 0.303, 0.238]], [0.977, [0.004, 0.303, 0.238]], [0.978, [0.004, 0.298, 0.233]], [0.980, [0.004, 0.298, 0.233]], [0.982, [0.004, 0.293, 0.229]], [0.984, [0.004, 0.293, 0.229]], [0.986, [0.004, 0.289, 0.225]], [0.988, [0.004, 0.289, 0.225]], [0.990, [0.004, 0.284, 0.220]], [0.992, [0.004, 0.284, 0.220]], [0.994, [0.004, 0.279, 0.216]], [0.996, [0.004, 0.279, 0.216]], [0.998, [0.004, 0.275, 0.212]], [1.000, [0.004, 0.275, 0.212]]];
+var PuRd = [[0.000, [0.969, 0.957, 0.976]], [0.002, [0.969, 0.957, 0.976]], [0.004, [0.967, 0.955, 0.975]], [0.006, [0.967, 0.955, 0.975]], [0.008, [0.965, 0.952, 0.974]], [0.010, [0.965, 0.952, 0.974]], [0.012, [0.963, 0.950, 0.973]], [0.014, [0.963, 0.950, 0.973]], [0.016, [0.961, 0.948, 0.972]], [0.018, [0.961, 0.948, 0.972]], [0.020, [0.959, 0.945, 0.970]], [0.022, [0.959, 0.945, 0.970]], [0.023, [0.957, 0.943, 0.969]], [0.025, [0.957, 0.943, 0.969]], [0.027, [0.955, 0.940, 0.968]], [0.029, [0.955, 0.940, 0.968]], [0.031, [0.953, 0.938, 0.967]], [0.033, [0.953, 0.938, 0.967]], [0.035, [0.951, 0.936, 0.965]], [0.037, [0.951, 0.936, 0.965]], [0.039, [0.949, 0.933, 0.964]], [0.041, [0.949, 0.933, 0.964]], [0.043, [0.947, 0.931, 0.963]], [0.045, [0.947, 0.931, 0.963]], [0.047, [0.945, 0.929, 0.962]], [0.049, [0.945, 0.929, 0.962]], [0.051, [0.943, 0.926, 0.960]], [0.053, [0.943, 0.926, 0.960]], [0.055, [0.941, 0.924, 0.959]], [0.057, [0.941, 0.924, 0.959]], [0.059, [0.939, 0.922, 0.958]], [0.061, [0.939, 0.922, 0.958]], [0.063, [0.937, 0.919, 0.957]], [0.065, [0.937, 0.919, 0.957]], [0.067, [0.935, 0.917, 0.956]], [0.068, [0.935, 0.917, 0.956]], [0.070, [0.933, 0.915, 0.954]], [0.072, [0.933, 0.915, 0.954]], [0.074, [0.931, 0.912, 0.953]], [0.076, [0.931, 0.912, 0.953]], [0.078, [0.929, 0.910, 0.952]], [0.080, [0.929, 0.910, 0.952]], [0.082, [0.927, 0.908, 0.951]], [0.084, [0.927, 0.908, 0.951]], [0.086, [0.925, 0.905, 0.949]], [0.088, [0.925, 0.905, 0.949]], [0.090, [0.923, 0.903, 0.948]], [0.092, [0.923, 0.903, 0.948]], [0.094, [0.921, 0.901, 0.947]], [0.096, [0.921, 0.901, 0.947]], [0.098, [0.919, 0.898, 0.946]], [0.100, [0.919, 0.898, 0.946]], [0.102, [0.917, 0.896, 0.944]], [0.104, [0.917, 0.896, 0.944]], [0.106, [0.915, 0.894, 0.943]], [0.108, [0.915, 0.894, 0.943]], [0.110, [0.914, 0.891, 0.942]], [0.112, [0.914, 0.891, 0.942]], [0.114, [0.912, 0.889, 0.941]], [0.115, [0.912, 0.889, 0.941]], [0.117, [0.910, 0.887, 0.940]], [0.119, [0.910, 0.887, 0.940]], [0.121, [0.908, 0.884, 0.938]], [0.123, [0.908, 0.884, 0.938]], [0.125, [0.906, 0.882, 0.937]], [0.127, [0.906, 0.882, 0.937]], [0.129, [0.903, 0.877, 0.934]], [0.131, [0.903, 0.877, 0.934]], [0.133, [0.901, 0.872, 0.932]], [0.135, [0.901, 0.872, 0.932]], [0.137, [0.899, 0.867, 0.929]], [0.139, [0.899, 0.867, 0.929]], [0.141, [0.896, 0.862, 0.927]], [0.143, [0.896, 0.862, 0.927]], [0.145, [0.894, 0.857, 0.924]], [0.147, [0.894, 0.857, 0.924]], [0.149, [0.892, 0.852, 0.921]], [0.151, [0.892, 0.852, 0.921]], [0.153, [0.889, 0.847, 0.919]], [0.155, [0.889, 0.847, 0.919]], [0.157, [0.887, 0.842, 0.916]], [0.159, [0.887, 0.842, 0.916]], [0.160, [0.885, 0.837, 0.914]], [0.162, [0.885, 0.837, 0.914]], [0.164, [0.882, 0.833, 0.911]], [0.166, [0.882, 0.833, 0.911]], [0.168, [0.880, 0.828, 0.909]], [0.170, [0.880, 0.828, 0.909]], [0.172, [0.878, 0.823, 0.906]], [0.174, [0.878, 0.823, 0.906]], [0.176, [0.875, 0.818, 0.903]], [0.178, [0.875, 0.818, 0.903]], [0.180, [0.873, 0.813, 0.901]], [0.182, [0.873, 0.813, 0.901]], [0.184, [0.871, 0.808, 0.898]], [0.186, [0.871, 0.808, 0.898]], [0.188, [0.868, 0.803, 0.896]], [0.190, [0.868, 0.803, 0.896]], [0.192, [0.866, 0.798, 0.893]], [0.194, [0.866, 0.798, 0.893]], [0.196, [0.864, 0.793, 0.890]], [0.198, [0.864, 0.793, 0.890]], [0.200, [0.861, 0.788, 0.888]], [0.202, [0.861, 0.788, 0.888]], [0.204, [0.859, 0.783, 0.885]], [0.205, [0.859, 0.783, 0.885]], [0.207, [0.857, 0.778, 0.883]], [0.209, [0.857, 0.778, 0.883]], [0.211, [0.854, 0.773, 0.880]], [0.213, [0.854, 0.773, 0.880]], [0.215, [0.852, 0.769, 0.878]], [0.217, [0.852, 0.769, 0.878]], [0.219, [0.849, 0.764, 0.875]], [0.221, [0.849, 0.764, 0.875]], [0.223, [0.847, 0.759, 0.872]], [0.225, [0.847, 0.759, 0.872]], [0.227, [0.845, 0.754, 0.870]], [0.229, [0.845, 0.754, 0.870]], [0.231, [0.842, 0.749, 0.867]], [0.233, [0.842, 0.749, 0.867]], [0.235, [0.840, 0.744, 0.865]], [0.237, [0.840, 0.744, 0.865]], [0.239, [0.838, 0.739, 0.862]], [0.241, [0.838, 0.739, 0.862]], [0.243, [0.835, 0.734, 0.859]], [0.245, [0.835, 0.734, 0.859]], [0.247, [0.833, 0.729, 0.857]], [0.249, [0.833, 0.729, 0.857]], [0.250, [0.831, 0.724, 0.854]], [0.252, [0.831, 0.724, 0.854]], [0.254, [0.830, 0.720, 0.852]], [0.256, [0.830, 0.720, 0.852]], [0.258, [0.828, 0.715, 0.850]], [0.260, [0.828, 0.715, 0.850]], [0.262, [0.827, 0.711, 0.847]], [0.264, [0.827, 0.711, 0.847]], [0.266, [0.826, 0.706, 0.845]], [0.268, [0.826, 0.706, 0.845]], [0.270, [0.824, 0.702, 0.843]], [0.272, [0.824, 0.702, 0.843]], [0.274, [0.823, 0.697, 0.840]], [0.276, [0.823, 0.697, 0.840]], [0.278, [0.822, 0.692, 0.838]], [0.280, [0.822, 0.692, 0.838]], [0.282, [0.820, 0.688, 0.836]], [0.284, [0.820, 0.688, 0.836]], [0.286, [0.819, 0.683, 0.833]], [0.288, [0.819, 0.683, 0.833]], [0.290, [0.818, 0.679, 0.831]], [0.292, [0.818, 0.679, 0.831]], [0.294, [0.816, 0.674, 0.829]], [0.295, [0.816, 0.674, 0.829]], [0.297, [0.815, 0.670, 0.826]], [0.299, [0.815, 0.670, 0.826]], [0.301, [0.813, 0.665, 0.824]], [0.303, [0.813, 0.665, 0.824]], [0.305, [0.812, 0.661, 0.822]], [0.307, [0.812, 0.661, 0.822]], [0.309, [0.811, 0.656, 0.819]], [0.311, [0.811, 0.656, 0.819]], [0.313, [0.809, 0.652, 0.817]], [0.315, [0.809, 0.652, 0.817]], [0.317, [0.808, 0.647, 0.815]], [0.319, [0.808, 0.647, 0.815]], [0.321, [0.807, 0.642, 0.812]], [0.323, [0.807, 0.642, 0.812]], [0.325, [0.805, 0.638, 0.810]], [0.327, [0.805, 0.638, 0.810]], [0.329, [0.804, 0.633, 0.808]], [0.331, [0.804, 0.633, 0.808]], [0.333, [0.803, 0.629, 0.805]], [0.335, [0.803, 0.629, 0.805]], [0.337, [0.801, 0.624, 0.803]], [0.339, [0.801, 0.624, 0.803]], [0.341, [0.800, 0.620, 0.801]], [0.342, [0.800, 0.620, 0.801]], [0.344, [0.799, 0.615, 0.798]], [0.346, [0.799, 0.615, 0.798]], [0.348, [0.797, 0.611, 0.796]], [0.350, [0.797, 0.611, 0.796]], [0.352, [0.796, 0.606, 0.794]], [0.354, [0.796, 0.606, 0.794]], [0.356, [0.794, 0.601, 0.791]], [0.358, [0.794, 0.601, 0.791]], [0.360, [0.793, 0.597, 0.789]], [0.362, [0.793, 0.597, 0.789]], [0.364, [0.792, 0.592, 0.787]], [0.366, [0.792, 0.592, 0.787]], [0.368, [0.790, 0.588, 0.784]], [0.370, [0.790, 0.588, 0.784]], [0.372, [0.789, 0.583, 0.782]], [0.374, [0.789, 0.583, 0.782]], [0.376, [0.789, 0.578, 0.779]], [0.378, [0.789, 0.578, 0.779]], [0.380, [0.792, 0.572, 0.777]], [0.382, [0.792, 0.572, 0.777]], [0.384, [0.795, 0.567, 0.774]], [0.386, [0.795, 0.567, 0.774]], [0.387, [0.797, 0.561, 0.771]], [0.389, [0.797, 0.561, 0.771]], [0.391, [0.800, 0.555, 0.768]], [0.393, [0.800, 0.555, 0.768]], [0.395, [0.803, 0.549, 0.765]], [0.397, [0.803, 0.549, 0.765]], [0.399, [0.805, 0.544, 0.762]], [0.401, [0.805, 0.544, 0.762]], [0.403, [0.808, 0.538, 0.760]], [0.405, [0.808, 0.538, 0.760]], [0.407, [0.811, 0.532, 0.757]], [0.409, [0.811, 0.532, 0.757]], [0.411, [0.814, 0.526, 0.754]], [0.413, [0.814, 0.526, 0.754]], [0.415, [0.816, 0.520, 0.751]], [0.417, [0.816, 0.520, 0.751]], [0.419, [0.819, 0.515, 0.748]], [0.421, [0.819, 0.515, 0.748]], [0.423, [0.822, 0.509, 0.745]], [0.425, [0.822, 0.509, 0.745]], [0.427, [0.824, 0.503, 0.743]], [0.429, [0.824, 0.503, 0.743]], [0.431, [0.827, 0.497, 0.740]], [0.432, [0.827, 0.497, 0.740]], [0.434, [0.830, 0.491, 0.737]], [0.436, [0.830, 0.491, 0.737]], [0.438, [0.833, 0.486, 0.734]], [0.440, [0.833, 0.486, 0.734]], [0.442, [0.835, 0.480, 0.731]], [0.444, [0.835, 0.480, 0.731]], [0.446, [0.838, 0.474, 0.728]], [0.448, [0.838, 0.474, 0.728]], [0.450, [0.841, 0.468, 0.726]], [0.452, [0.841, 0.468, 0.726]], [0.454, [0.843, 0.463, 0.723]], [0.456, [0.843, 0.463, 0.723]], [0.458, [0.846, 0.457, 0.720]], [0.460, [0.846, 0.457, 0.720]], [0.462, [0.849, 0.451, 0.717]], [0.464, [0.849, 0.451, 0.717]], [0.466, [0.852, 0.445, 0.714]], [0.468, [0.852, 0.445, 0.714]], [0.470, [0.854, 0.439, 0.711]], [0.472, [0.854, 0.439, 0.711]], [0.474, [0.857, 0.434, 0.709]], [0.476, [0.857, 0.434, 0.709]], [0.477, [0.860, 0.428, 0.706]], [0.479, [0.860, 0.428, 0.706]], [0.481, [0.862, 0.422, 0.703]], [0.483, [0.862, 0.422, 0.703]], [0.485, [0.865, 0.416, 0.700]], [0.487, [0.865, 0.416, 0.700]], [0.489, [0.868, 0.411, 0.697]], [0.491, [0.868, 0.411, 0.697]], [0.493, [0.870, 0.405, 0.694]], [0.495, [0.870, 0.405, 0.694]], [0.497, [0.873, 0.399, 0.692]], [0.499, [0.873, 0.399, 0.692]], [0.501, [0.875, 0.392, 0.688]], [0.503, [0.875, 0.392, 0.688]], [0.505, [0.876, 0.385, 0.683]], [0.507, [0.876, 0.385, 0.683]], [0.509, [0.877, 0.378, 0.679]], [0.511, [0.877, 0.378, 0.679]], [0.513, [0.878, 0.370, 0.674]], [0.515, [0.878, 0.370, 0.674]], [0.517, [0.879, 0.363, 0.669]], [0.519, [0.879, 0.363, 0.669]], [0.521, [0.880, 0.355, 0.664]], [0.523, [0.880, 0.355, 0.664]], [0.524, [0.881, 0.348, 0.660]], [0.526, [0.881, 0.348, 0.660]], [0.528, [0.882, 0.341, 0.655]], [0.530, [0.882, 0.341, 0.655]], [0.532, [0.883, 0.333, 0.650]], [0.534, [0.883, 0.333, 0.650]], [0.536, [0.884, 0.326, 0.646]], [0.538, [0.884, 0.326, 0.646]], [0.540, [0.885, 0.319, 0.641]], [0.542, [0.885, 0.319, 0.641]], [0.544, [0.886, 0.311, 0.636]], [0.546, [0.886, 0.311, 0.636]], [0.548, [0.887, 0.304, 0.632]], [0.550, [0.887, 0.304, 0.632]], [0.552, [0.888, 0.296, 0.627]], [0.554, [0.888, 0.296, 0.627]], [0.556, [0.889, 0.289, 0.622]], [0.558, [0.889, 0.289, 0.622]], [0.560, [0.890, 0.282, 0.618]], [0.562, [0.890, 0.282, 0.618]], [0.564, [0.891, 0.274, 0.613]], [0.566, [0.891, 0.274, 0.613]], [0.568, [0.892, 0.267, 0.608]], [0.569, [0.892, 0.267, 0.608]], [0.571, [0.893, 0.260, 0.604]], [0.573, [0.893, 0.260, 0.604]], [0.575, [0.894, 0.252, 0.599]], [0.577, [0.894, 0.252, 0.599]], [0.579, [0.895, 0.245, 0.594]], [0.581, [0.895, 0.245, 0.594]], [0.583, [0.896, 0.237, 0.590]], [0.585, [0.896, 0.237, 0.590]], [0.587, [0.897, 0.230, 0.585]], [0.589, [0.897, 0.230, 0.585]], [0.591, [0.898, 0.223, 0.580]], [0.593, [0.898, 0.223, 0.580]], [0.595, [0.899, 0.215, 0.576]], [0.597, [0.899, 0.215, 0.576]], [0.599, [0.900, 0.208, 0.571]], [0.601, [0.900, 0.208, 0.571]], [0.603, [0.901, 0.200, 0.566]], [0.605, [0.901, 0.200, 0.566]], [0.607, [0.902, 0.193, 0.562]], [0.609, [0.902, 0.193, 0.562]], [0.611, [0.903, 0.186, 0.557]], [0.613, [0.903, 0.186, 0.557]], [0.614, [0.904, 0.178, 0.552]], [0.616, [0.904, 0.178, 0.552]], [0.618, [0.905, 0.171, 0.548]], [0.620, [0.905, 0.171, 0.548]], [0.622, [0.906, 0.164, 0.543]], [0.624, [0.906, 0.164, 0.543]], [0.626, [0.904, 0.159, 0.537]], [0.628, [0.904, 0.159, 0.537]], [0.630, [0.901, 0.156, 0.531]], [0.632, [0.901, 0.156, 0.531]], [0.634, [0.898, 0.153, 0.524]], [0.636, [0.898, 0.153, 0.524]], [0.638, [0.895, 0.151, 0.518]], [0.640, [0.895, 0.151, 0.518]], [0.642, [0.892, 0.148, 0.512]], [0.644, [0.892, 0.148, 0.512]], [0.646, [0.889, 0.145, 0.505]], [0.648, [0.889, 0.145, 0.505]], [0.650, [0.886, 0.142, 0.499]], [0.652, [0.886, 0.142, 0.499]], [0.654, [0.882, 0.139, 0.492]], [0.656, [0.882, 0.139, 0.492]], [0.658, [0.879, 0.136, 0.486]], [0.659, [0.879, 0.136, 0.486]], [0.661, [0.876, 0.134, 0.480]], [0.663, [0.876, 0.134, 0.480]], [0.665, [0.873, 0.131, 0.473]], [0.667, [0.873, 0.131, 0.473]], [0.669, [0.870, 0.128, 0.467]], [0.671, [0.870, 0.128, 0.467]], [0.673, [0.867, 0.125, 0.460]], [0.675, [0.867, 0.125, 0.460]], [0.677, [0.864, 0.122, 0.454]], [0.679, [0.864, 0.122, 0.454]], [0.681, [0.861, 0.119, 0.448]], [0.683, [0.861, 0.119, 0.448]], [0.685, [0.858, 0.117, 0.441]], [0.687, [0.858, 0.117, 0.441]], [0.689, [0.855, 0.114, 0.435]], [0.691, [0.855, 0.114, 0.435]], [0.693, [0.852, 0.111, 0.428]], [0.695, [0.852, 0.111, 0.428]], [0.697, [0.849, 0.108, 0.422]], [0.699, [0.849, 0.108, 0.422]], [0.701, [0.846, 0.105, 0.416]], [0.703, [0.846, 0.105, 0.416]], [0.705, [0.842, 0.102, 0.409]], [0.706, [0.842, 0.102, 0.409]], [0.708, [0.839, 0.100, 0.403]], [0.710, [0.839, 0.100, 0.403]], [0.712, [0.836, 0.097, 0.396]], [0.714, [0.836, 0.097, 0.396]], [0.716, [0.833, 0.094, 0.390]], [0.718, [0.833, 0.094, 0.390]], [0.720, [0.830, 0.091, 0.384]], [0.722, [0.830, 0.091, 0.384]], [0.724, [0.827, 0.088, 0.377]], [0.726, [0.827, 0.088, 0.377]], [0.728, [0.824, 0.085, 0.371]], [0.730, [0.824, 0.085, 0.371]], [0.732, [0.821, 0.083, 0.364]], [0.734, [0.821, 0.083, 0.364]], [0.736, [0.818, 0.080, 0.358]], [0.738, [0.818, 0.080, 0.358]], [0.740, [0.815, 0.077, 0.352]], [0.742, [0.815, 0.077, 0.352]], [0.744, [0.812, 0.074, 0.345]], [0.746, [0.812, 0.074, 0.345]], [0.748, [0.809, 0.071, 0.339]], [0.750, [0.809, 0.071, 0.339]], [0.751, [0.803, 0.069, 0.336]], [0.753, [0.803, 0.069, 0.336]], [0.755, [0.796, 0.067, 0.333]], [0.757, [0.796, 0.067, 0.333]], [0.759, [0.790, 0.064, 0.331]], [0.761, [0.790, 0.064, 0.331]], [0.763, [0.783, 0.062, 0.328]], [0.765, [0.783, 0.062, 0.328]], [0.767, [0.776, 0.060, 0.326]], [0.769, [0.776, 0.060, 0.326]], [0.771, [0.770, 0.058, 0.324]], [0.773, [0.770, 0.058, 0.324]], [0.775, [0.763, 0.056, 0.321]], [0.777, [0.763, 0.056, 0.321]], [0.779, [0.756, 0.053, 0.319]], [0.781, [0.756, 0.053, 0.319]], [0.783, [0.750, 0.051, 0.317]], [0.785, [0.750, 0.051, 0.317]], [0.787, [0.743, 0.049, 0.314]], [0.789, [0.743, 0.049, 0.314]], [0.791, [0.736, 0.047, 0.312]], [0.793, [0.736, 0.047, 0.312]], [0.795, [0.730, 0.045, 0.310]], [0.796, [0.730, 0.045, 0.310]], [0.798, [0.723, 0.042, 0.307]], [0.800, [0.723, 0.042, 0.307]], [0.802, [0.716, 0.040, 0.305]], [0.804, [0.716, 0.040, 0.305]], [0.806, [0.710, 0.038, 0.303]], [0.808, [0.710, 0.038, 0.303]], [0.810, [0.703, 0.036, 0.300]], [0.812, [0.703, 0.036, 0.300]], [0.814, [0.697, 0.033, 0.298]], [0.816, [0.697, 0.033, 0.298]], [0.818, [0.690, 0.031, 0.296]], [0.820, [0.690, 0.031, 0.296]], [0.822, [0.683, 0.029, 0.293]], [0.824, [0.683, 0.029, 0.293]], [0.826, [0.677, 0.027, 0.291]], [0.828, [0.677, 0.027, 0.291]], [0.830, [0.670, 0.025, 0.289]], [0.832, [0.670, 0.025, 0.289]], [0.834, [0.663, 0.022, 0.286]], [0.836, [0.663, 0.022, 0.286]], [0.838, [0.657, 0.020, 0.284]], [0.840, [0.657, 0.020, 0.284]], [0.841, [0.650, 0.018, 0.282]], [0.843, [0.650, 0.018, 0.282]], [0.845, [0.643, 0.016, 0.279]], [0.847, [0.643, 0.016, 0.279]], [0.849, [0.637, 0.014, 0.277]], [0.851, [0.637, 0.014, 0.277]], [0.853, [0.630, 0.011, 0.275]], [0.855, [0.630, 0.011, 0.275]], [0.857, [0.623, 0.009, 0.272]], [0.859, [0.623, 0.009, 0.272]], [0.861, [0.617, 0.007, 0.270]], [0.863, [0.617, 0.007, 0.270]], [0.865, [0.610, 0.005, 0.268]], [0.867, [0.610, 0.005, 0.268]], [0.869, [0.604, 0.002, 0.265]], [0.871, [0.604, 0.002, 0.265]], [0.873, [0.597, 0.000, 0.263]], [0.875, [0.597, 0.000, 0.263]], [0.877, [0.591, 0.000, 0.259]], [0.879, [0.591, 0.000, 0.259]], [0.881, [0.585, 0.000, 0.254]], [0.883, [0.585, 0.000, 0.254]], [0.885, [0.579, 0.000, 0.250]], [0.886, [0.579, 0.000, 0.250]], [0.888, [0.573, 0.000, 0.246]], [0.890, [0.573, 0.000, 0.246]], [0.892, [0.567, 0.000, 0.241]], [0.894, [0.567, 0.000, 0.241]], [0.896, [0.561, 0.000, 0.237]], [0.898, [0.561, 0.000, 0.237]], [0.900, [0.555, 0.000, 0.232]], [0.902, [0.555, 0.000, 0.232]], [0.904, [0.549, 0.000, 0.228]], [0.906, [0.549, 0.000, 0.228]], [0.908, [0.543, 0.000, 0.223]], [0.910, [0.543, 0.000, 0.223]], [0.912, [0.537, 0.000, 0.219]], [0.914, [0.537, 0.000, 0.219]], [0.916, [0.531, 0.000, 0.215]], [0.918, [0.531, 0.000, 0.215]], [0.920, [0.524, 0.000, 0.210]], [0.922, [0.524, 0.000, 0.210]], [0.924, [0.518, 0.000, 0.206]], [0.926, [0.518, 0.000, 0.206]], [0.928, [0.512, 0.000, 0.201]], [0.930, [0.512, 0.000, 0.201]], [0.932, [0.506, 0.000, 0.197]], [0.933, [0.506, 0.000, 0.197]], [0.935, [0.500, 0.000, 0.192]], [0.937, [0.500, 0.000, 0.192]], [0.939, [0.494, 0.000, 0.188]], [0.941, [0.494, 0.000, 0.188]], [0.943, [0.488, 0.000, 0.184]], [0.945, [0.488, 0.000, 0.184]], [0.947, [0.482, 0.000, 0.179]], [0.949, [0.482, 0.000, 0.179]], [0.951, [0.476, 0.000, 0.175]], [0.953, [0.476, 0.000, 0.175]], [0.955, [0.470, 0.000, 0.170]], [0.957, [0.470, 0.000, 0.170]], [0.959, [0.464, 0.000, 0.166]], [0.961, [0.464, 0.000, 0.166]], [0.963, [0.458, 0.000, 0.161]], [0.965, [0.458, 0.000, 0.161]], [0.967, [0.452, 0.000, 0.157]], [0.969, [0.452, 0.000, 0.157]], [0.971, [0.446, 0.000, 0.153]], [0.973, [0.446, 0.000, 0.153]], [0.975, [0.440, 0.000, 0.148]], [0.977, [0.440, 0.000, 0.148]], [0.978, [0.434, 0.000, 0.144]], [0.980, [0.434, 0.000, 0.144]], [0.982, [0.428, 0.000, 0.139]], [0.984, [0.428, 0.000, 0.139]], [0.986, [0.422, 0.000, 0.135]], [0.988, [0.422, 0.000, 0.135]], [0.990, [0.416, 0.000, 0.130]], [0.992, [0.416, 0.000, 0.130]], [0.994, [0.410, 0.000, 0.126]], [0.996, [0.410, 0.000, 0.126]], [0.998, [0.404, 0.000, 0.122]], [1.000, [0.404, 0.000, 0.122]]];
+var Purples = [[0.000, [0.988, 0.984, 0.992]], [0.002, [0.988, 0.984, 0.992]], [0.004, [0.987, 0.983, 0.991]], [0.006, [0.987, 0.983, 0.991]], [0.008, [0.985, 0.981, 0.990]], [0.010, [0.985, 0.981, 0.990]], [0.012, [0.983, 0.979, 0.989]], [0.014, [0.983, 0.979, 0.989]], [0.016, [0.982, 0.977, 0.988]], [0.018, [0.982, 0.977, 0.988]], [0.020, [0.980, 0.976, 0.987]], [0.022, [0.980, 0.976, 0.987]], [0.023, [0.979, 0.974, 0.986]], [0.025, [0.979, 0.974, 0.986]], [0.027, [0.977, 0.972, 0.985]], [0.029, [0.977, 0.972, 0.985]], [0.031, [0.975, 0.971, 0.984]], [0.033, [0.975, 0.971, 0.984]], [0.035, [0.974, 0.969, 0.983]], [0.037, [0.974, 0.969, 0.983]], [0.039, [0.972, 0.967, 0.982]], [0.041, [0.972, 0.967, 0.982]], [0.043, [0.971, 0.965, 0.981]], [0.045, [0.971, 0.965, 0.981]], [0.047, [0.969, 0.964, 0.980]], [0.049, [0.969, 0.964, 0.980]], [0.051, [0.967, 0.962, 0.979]], [0.053, [0.967, 0.962, 0.979]], [0.055, [0.966, 0.960, 0.978]], [0.057, [0.966, 0.960, 0.978]], [0.059, [0.964, 0.958, 0.977]], [0.061, [0.964, 0.958, 0.977]], [0.063, [0.963, 0.957, 0.976]], [0.065, [0.963, 0.957, 0.976]], [0.067, [0.961, 0.955, 0.975]], [0.068, [0.961, 0.955, 0.975]], [0.070, [0.959, 0.953, 0.974]], [0.072, [0.959, 0.953, 0.974]], [0.074, [0.958, 0.952, 0.973]], [0.076, [0.958, 0.952, 0.973]], [0.078, [0.956, 0.950, 0.972]], [0.080, [0.956, 0.950, 0.972]], [0.082, [0.955, 0.948, 0.971]], [0.084, [0.955, 0.948, 0.971]], [0.086, [0.953, 0.946, 0.971]], [0.088, [0.953, 0.946, 0.971]], [0.090, [0.951, 0.945, 0.970]], [0.092, [0.951, 0.945, 0.970]], [0.094, [0.950, 0.943, 0.969]], [0.096, [0.950, 0.943, 0.969]], [0.098, [0.948, 0.941, 0.968]], [0.100, [0.948, 0.941, 0.968]], [0.102, [0.947, 0.940, 0.967]], [0.104, [0.947, 0.940, 0.967]], [0.106, [0.945, 0.938, 0.966]], [0.108, [0.945, 0.938, 0.966]], [0.110, [0.943, 0.936, 0.965]], [0.112, [0.943, 0.936, 0.965]], [0.114, [0.942, 0.934, 0.964]], [0.115, [0.942, 0.934, 0.964]], [0.117, [0.940, 0.933, 0.963]], [0.119, [0.940, 0.933, 0.963]], [0.121, [0.939, 0.931, 0.962]], [0.123, [0.939, 0.931, 0.962]], [0.125, [0.937, 0.929, 0.961]], [0.127, [0.937, 0.929, 0.961]], [0.129, [0.934, 0.927, 0.959]], [0.131, [0.934, 0.927, 0.959]], [0.133, [0.932, 0.924, 0.958]], [0.135, [0.932, 0.924, 0.958]], [0.137, [0.929, 0.922, 0.957]], [0.139, [0.929, 0.922, 0.957]], [0.141, [0.927, 0.920, 0.956]], [0.143, [0.927, 0.920, 0.956]], [0.145, [0.924, 0.917, 0.954]], [0.147, [0.924, 0.917, 0.954]], [0.149, [0.921, 0.915, 0.953]], [0.151, [0.921, 0.915, 0.953]], [0.153, [0.919, 0.913, 0.952]], [0.155, [0.919, 0.913, 0.952]], [0.157, [0.916, 0.910, 0.951]], [0.159, [0.916, 0.910, 0.951]], [0.160, [0.914, 0.908, 0.950]], [0.162, [0.914, 0.908, 0.950]], [0.164, [0.911, 0.906, 0.948]], [0.166, [0.911, 0.906, 0.948]], [0.168, [0.909, 0.903, 0.947]], [0.170, [0.909, 0.903, 0.947]], [0.172, [0.906, 0.901, 0.946]], [0.174, [0.906, 0.901, 0.946]], [0.176, [0.903, 0.899, 0.945]], [0.178, [0.903, 0.899, 0.945]], [0.180, [0.901, 0.896, 0.943]], [0.182, [0.901, 0.896, 0.943]], [0.184, [0.898, 0.894, 0.942]], [0.186, [0.898, 0.894, 0.942]], [0.188, [0.896, 0.892, 0.941]], [0.190, [0.896, 0.892, 0.941]], [0.192, [0.893, 0.889, 0.940]], [0.194, [0.893, 0.889, 0.940]], [0.196, [0.890, 0.887, 0.938]], [0.198, [0.890, 0.887, 0.938]], [0.200, [0.888, 0.885, 0.937]], [0.202, [0.888, 0.885, 0.937]], [0.204, [0.885, 0.882, 0.936]], [0.205, [0.885, 0.882, 0.936]], [0.207, [0.883, 0.880, 0.935]], [0.209, [0.883, 0.880, 0.935]], [0.211, [0.880, 0.878, 0.934]], [0.213, [0.880, 0.878, 0.934]], [0.215, [0.878, 0.875, 0.932]], [0.217, [0.878, 0.875, 0.932]], [0.219, [0.875, 0.873, 0.931]], [0.221, [0.875, 0.873, 0.931]], [0.223, [0.872, 0.871, 0.930]], [0.225, [0.872, 0.871, 0.930]], [0.227, [0.870, 0.868, 0.929]], [0.229, [0.870, 0.868, 0.929]], [0.231, [0.867, 0.866, 0.927]], [0.233, [0.867, 0.866, 0.927]], [0.235, [0.865, 0.864, 0.926]], [0.237, [0.865, 0.864, 0.926]], [0.239, [0.862, 0.861, 0.925]], [0.241, [0.862, 0.861, 0.925]], [0.243, [0.859, 0.859, 0.924]], [0.245, [0.859, 0.859, 0.924]], [0.247, [0.857, 0.857, 0.922]], [0.249, [0.857, 0.857, 0.922]], [0.250, [0.854, 0.854, 0.921]], [0.252, [0.854, 0.854, 0.921]], [0.254, [0.850, 0.850, 0.919]], [0.256, [0.850, 0.850, 0.919]], [0.258, [0.847, 0.847, 0.917]], [0.260, [0.847, 0.847, 0.917]], [0.262, [0.843, 0.843, 0.916]], [0.264, [0.843, 0.843, 0.916]], [0.266, [0.839, 0.840, 0.914]], [0.268, [0.839, 0.840, 0.914]], [0.270, [0.836, 0.836, 0.912]], [0.272, [0.836, 0.836, 0.912]], [0.274, [0.832, 0.833, 0.910]], [0.276, [0.832, 0.833, 0.910]], [0.278, [0.828, 0.829, 0.908]], [0.280, [0.828, 0.829, 0.908]], [0.282, [0.824, 0.825, 0.906]], [0.284, [0.824, 0.825, 0.906]], [0.286, [0.821, 0.822, 0.904]], [0.288, [0.821, 0.822, 0.904]], [0.290, [0.817, 0.818, 0.903]], [0.292, [0.817, 0.818, 0.903]], [0.294, [0.813, 0.815, 0.901]], [0.295, [0.813, 0.815, 0.901]], [0.297, [0.810, 0.811, 0.899]], [0.299, [0.810, 0.811, 0.899]], [0.301, [0.806, 0.808, 0.897]], [0.303, [0.806, 0.808, 0.897]], [0.305, [0.802, 0.804, 0.895]], [0.307, [0.802, 0.804, 0.895]], [0.309, [0.799, 0.800, 0.893]], [0.311, [0.799, 0.800, 0.893]], [0.313, [0.795, 0.797, 0.892]], [0.315, [0.795, 0.797, 0.892]], [0.317, [0.791, 0.793, 0.890]], [0.319, [0.791, 0.793, 0.890]], [0.321, [0.788, 0.790, 0.888]], [0.323, [0.788, 0.790, 0.888]], [0.325, [0.784, 0.786, 0.886]], [0.327, [0.784, 0.786, 0.886]], [0.329, [0.780, 0.783, 0.884]], [0.331, [0.780, 0.783, 0.884]], [0.333, [0.776, 0.779, 0.882]], [0.335, [0.776, 0.779, 0.882]], [0.337, [0.773, 0.776, 0.881]], [0.339, [0.773, 0.776, 0.881]], [0.341, [0.769, 0.772, 0.879]], [0.342, [0.769, 0.772, 0.879]], [0.344, [0.765, 0.768, 0.877]], [0.346, [0.765, 0.768, 0.877]], [0.348, [0.762, 0.765, 0.875]], [0.350, [0.762, 0.765, 0.875]], [0.352, [0.758, 0.761, 0.873]], [0.354, [0.758, 0.761, 0.873]], [0.356, [0.754, 0.758, 0.871]], [0.358, [0.754, 0.758, 0.871]], [0.360, [0.751, 0.754, 0.869]], [0.362, [0.751, 0.754, 0.869]], [0.364, [0.747, 0.751, 0.868]], [0.366, [0.747, 0.751, 0.868]], [0.368, [0.743, 0.747, 0.866]], [0.370, [0.743, 0.747, 0.866]], [0.372, [0.740, 0.743, 0.864]], [0.374, [0.740, 0.743, 0.864]], [0.376, [0.736, 0.740, 0.862]], [0.378, [0.736, 0.740, 0.862]], [0.380, [0.732, 0.735, 0.859]], [0.382, [0.732, 0.735, 0.859]], [0.384, [0.728, 0.731, 0.857]], [0.386, [0.728, 0.731, 0.857]], [0.387, [0.725, 0.727, 0.854]], [0.389, [0.725, 0.727, 0.854]], [0.391, [0.721, 0.722, 0.852]], [0.393, [0.721, 0.722, 0.852]], [0.395, [0.717, 0.718, 0.850]], [0.397, [0.717, 0.718, 0.850]], [0.399, [0.714, 0.714, 0.847]], [0.401, [0.714, 0.714, 0.847]], [0.403, [0.710, 0.709, 0.845]], [0.405, [0.710, 0.709, 0.845]], [0.407, [0.706, 0.705, 0.842]], [0.409, [0.706, 0.705, 0.842]], [0.411, [0.703, 0.701, 0.840]], [0.413, [0.703, 0.701, 0.840]], [0.415, [0.699, 0.697, 0.837]], [0.417, [0.699, 0.697, 0.837]], [0.419, [0.695, 0.692, 0.835]], [0.421, [0.695, 0.692, 0.835]], [0.423, [0.692, 0.688, 0.832]], [0.425, [0.692, 0.688, 0.832]], [0.427, [0.688, 0.684, 0.830]], [0.429, [0.688, 0.684, 0.830]], [0.431, [0.684, 0.679, 0.827]], [0.432, [0.684, 0.679, 0.827]], [0.434, [0.681, 0.675, 0.825]], [0.436, [0.681, 0.675, 0.825]], [0.438, [0.677, 0.671, 0.822]], [0.440, [0.677, 0.671, 0.822]], [0.442, [0.673, 0.666, 0.820]], [0.444, [0.673, 0.666, 0.820]], [0.446, [0.669, 0.662, 0.818]], [0.448, [0.669, 0.662, 0.818]], [0.450, [0.666, 0.658, 0.815]], [0.452, [0.666, 0.658, 0.815]], [0.454, [0.662, 0.653, 0.813]], [0.456, [0.662, 0.653, 0.813]], [0.458, [0.658, 0.649, 0.810]], [0.460, [0.658, 0.649, 0.810]], [0.462, [0.655, 0.645, 0.808]], [0.464, [0.655, 0.645, 0.808]], [0.466, [0.651, 0.641, 0.805]], [0.468, [0.651, 0.641, 0.805]], [0.470, [0.647, 0.636, 0.803]], [0.472, [0.647, 0.636, 0.803]], [0.474, [0.644, 0.632, 0.800]], [0.476, [0.644, 0.632, 0.800]], [0.477, [0.640, 0.628, 0.798]], [0.479, [0.640, 0.628, 0.798]], [0.481, [0.636, 0.623, 0.795]], [0.483, [0.636, 0.623, 0.795]], [0.485, [0.633, 0.619, 0.793]], [0.487, [0.633, 0.619, 0.793]], [0.489, [0.629, 0.615, 0.790]], [0.491, [0.629, 0.615, 0.790]], [0.493, [0.625, 0.610, 0.788]], [0.495, [0.625, 0.610, 0.788]], [0.497, [0.621, 0.606, 0.786]], [0.499, [0.621, 0.606, 0.786]], [0.501, [0.618, 0.602, 0.783]], [0.503, [0.618, 0.602, 0.783]], [0.505, [0.614, 0.599, 0.782]], [0.507, [0.614, 0.599, 0.782]], [0.509, [0.610, 0.595, 0.780]], [0.511, [0.610, 0.595, 0.780]], [0.513, [0.607, 0.591, 0.778]], [0.515, [0.607, 0.591, 0.778]], [0.517, [0.603, 0.588, 0.777]], [0.519, [0.603, 0.588, 0.777]], [0.521, [0.599, 0.584, 0.775]], [0.523, [0.599, 0.584, 0.775]], [0.524, [0.596, 0.581, 0.773]], [0.526, [0.596, 0.581, 0.773]], [0.528, [0.592, 0.577, 0.771]], [0.530, [0.592, 0.577, 0.771]], [0.532, [0.588, 0.574, 0.770]], [0.534, [0.588, 0.574, 0.770]], [0.536, [0.585, 0.570, 0.768]], [0.538, [0.585, 0.570, 0.768]], [0.540, [0.581, 0.566, 0.766]], [0.542, [0.581, 0.566, 0.766]], [0.544, [0.577, 0.563, 0.765]], [0.546, [0.577, 0.563, 0.765]], [0.548, [0.573, 0.559, 0.763]], [0.550, [0.573, 0.559, 0.763]], [0.552, [0.570, 0.556, 0.761]], [0.554, [0.570, 0.556, 0.761]], [0.556, [0.566, 0.552, 0.759]], [0.558, [0.566, 0.552, 0.759]], [0.560, [0.562, 0.549, 0.758]], [0.562, [0.562, 0.549, 0.758]], [0.564, [0.559, 0.545, 0.756]], [0.566, [0.559, 0.545, 0.756]], [0.568, [0.555, 0.541, 0.754]], [0.569, [0.555, 0.541, 0.754]], [0.571, [0.551, 0.538, 0.752]], [0.573, [0.551, 0.538, 0.752]], [0.575, [0.548, 0.534, 0.751]], [0.577, [0.548, 0.534, 0.751]], [0.579, [0.544, 0.531, 0.749]], [0.581, [0.544, 0.531, 0.749]], [0.583, [0.540, 0.527, 0.747]], [0.585, [0.540, 0.527, 0.747]], [0.587, [0.537, 0.524, 0.746]], [0.589, [0.537, 0.524, 0.746]], [0.591, [0.533, 0.520, 0.744]], [0.593, [0.533, 0.520, 0.744]], [0.595, [0.529, 0.517, 0.742]], [0.597, [0.529, 0.517, 0.742]], [0.599, [0.525, 0.513, 0.740]], [0.601, [0.525, 0.513, 0.740]], [0.603, [0.522, 0.509, 0.739]], [0.605, [0.522, 0.509, 0.739]], [0.607, [0.518, 0.506, 0.737]], [0.609, [0.518, 0.506, 0.737]], [0.611, [0.514, 0.502, 0.735]], [0.613, [0.514, 0.502, 0.735]], [0.614, [0.511, 0.499, 0.734]], [0.616, [0.511, 0.499, 0.734]], [0.618, [0.507, 0.495, 0.732]], [0.620, [0.507, 0.495, 0.732]], [0.622, [0.503, 0.492, 0.730]], [0.624, [0.503, 0.492, 0.730]], [0.626, [0.500, 0.487, 0.728]], [0.628, [0.500, 0.487, 0.728]], [0.630, [0.498, 0.481, 0.725]], [0.632, [0.498, 0.481, 0.725]], [0.634, [0.495, 0.476, 0.722]], [0.636, [0.495, 0.476, 0.722]], [0.638, [0.492, 0.471, 0.719]], [0.640, [0.492, 0.471, 0.719]], [0.642, [0.489, 0.465, 0.716]], [0.644, [0.489, 0.465, 0.716]], [0.646, [0.487, 0.460, 0.713]], [0.648, [0.487, 0.460, 0.713]], [0.650, [0.484, 0.454, 0.711]], [0.652, [0.484, 0.454, 0.711]], [0.654, [0.481, 0.449, 0.708]], [0.656, [0.481, 0.449, 0.708]], [0.658, [0.479, 0.444, 0.705]], [0.659, [0.479, 0.444, 0.705]], [0.661, [0.476, 0.438, 0.702]], [0.663, [0.476, 0.438, 0.702]], [0.665, [0.473, 0.433, 0.699]], [0.667, [0.473, 0.433, 0.699]], [0.669, [0.470, 0.427, 0.697]], [0.671, [0.470, 0.427, 0.697]], [0.673, [0.468, 0.422, 0.694]], [0.675, [0.468, 0.422, 0.694]], [0.677, [0.465, 0.416, 0.691]], [0.679, [0.465, 0.416, 0.691]], [0.681, [0.462, 0.411, 0.688]], [0.683, [0.462, 0.411, 0.688]], [0.685, [0.460, 0.406, 0.685]], [0.687, [0.460, 0.406, 0.685]], [0.689, [0.457, 0.400, 0.682]], [0.691, [0.457, 0.400, 0.682]], [0.693, [0.454, 0.395, 0.680]], [0.695, [0.454, 0.395, 0.680]], [0.697, [0.452, 0.389, 0.677]], [0.699, [0.452, 0.389, 0.677]], [0.701, [0.449, 0.384, 0.674]], [0.703, [0.449, 0.384, 0.674]], [0.705, [0.446, 0.379, 0.671]], [0.706, [0.446, 0.379, 0.671]], [0.708, [0.443, 0.373, 0.668]], [0.710, [0.443, 0.373, 0.668]], [0.712, [0.441, 0.368, 0.665]], [0.714, [0.441, 0.368, 0.665]], [0.716, [0.438, 0.362, 0.663]], [0.718, [0.438, 0.362, 0.663]], [0.720, [0.435, 0.357, 0.660]], [0.722, [0.435, 0.357, 0.660]], [0.724, [0.433, 0.351, 0.657]], [0.726, [0.433, 0.351, 0.657]], [0.728, [0.430, 0.346, 0.654]], [0.730, [0.430, 0.346, 0.654]], [0.732, [0.427, 0.341, 0.651]], [0.734, [0.427, 0.341, 0.651]], [0.736, [0.424, 0.335, 0.648]], [0.738, [0.424, 0.335, 0.648]], [0.740, [0.422, 0.330, 0.646]], [0.742, [0.422, 0.330, 0.646]], [0.744, [0.419, 0.324, 0.643]], [0.746, [0.419, 0.324, 0.643]], [0.748, [0.416, 0.319, 0.640]], [0.750, [0.416, 0.319, 0.640]], [0.751, [0.414, 0.314, 0.637]], [0.753, [0.414, 0.314, 0.637]], [0.755, [0.411, 0.309, 0.635]], [0.757, [0.411, 0.309, 0.635]], [0.759, [0.408, 0.303, 0.632]], [0.761, [0.408, 0.303, 0.632]], [0.763, [0.406, 0.298, 0.630]], [0.765, [0.406, 0.298, 0.630]], [0.767, [0.403, 0.293, 0.628]], [0.769, [0.403, 0.293, 0.628]], [0.771, [0.400, 0.288, 0.625]], [0.773, [0.400, 0.288, 0.625]], [0.775, [0.397, 0.283, 0.623]], [0.777, [0.397, 0.283, 0.623]], [0.779, [0.395, 0.278, 0.620]], [0.781, [0.395, 0.278, 0.620]], [0.783, [0.392, 0.272, 0.618]], [0.785, [0.392, 0.272, 0.618]], [0.787, [0.389, 0.267, 0.615]], [0.789, [0.389, 0.267, 0.615]], [0.791, [0.387, 0.262, 0.613]], [0.793, [0.387, 0.262, 0.613]], [0.795, [0.384, 0.257, 0.610]], [0.796, [0.384, 0.257, 0.610]], [0.798, [0.381, 0.252, 0.608]], [0.800, [0.381, 0.252, 0.608]], [0.802, [0.378, 0.247, 0.605]], [0.804, [0.378, 0.247, 0.605]], [0.806, [0.376, 0.241, 0.603]], [0.808, [0.376, 0.241, 0.603]], [0.810, [0.373, 0.236, 0.600]], [0.812, [0.373, 0.236, 0.600]], [0.814, [0.370, 0.231, 0.598]], [0.816, [0.370, 0.231, 0.598]], [0.818, [0.368, 0.226, 0.596]], [0.820, [0.368, 0.226, 0.596]], [0.822, [0.365, 0.221, 0.593]], [0.824, [0.365, 0.221, 0.593]], [0.826, [0.362, 0.216, 0.591]], [0.828, [0.362, 0.216, 0.591]], [0.830, [0.360, 0.210, 0.588]], [0.832, [0.360, 0.210, 0.588]], [0.834, [0.357, 0.205, 0.586]], [0.836, [0.357, 0.205, 0.586]], [0.838, [0.354, 0.200, 0.583]], [0.840, [0.354, 0.200, 0.583]], [0.841, [0.351, 0.195, 0.581]], [0.843, [0.351, 0.195, 0.581]], [0.845, [0.349, 0.190, 0.578]], [0.847, [0.349, 0.190, 0.578]], [0.849, [0.346, 0.185, 0.576]], [0.851, [0.346, 0.185, 0.576]], [0.853, [0.343, 0.179, 0.573]], [0.855, [0.343, 0.179, 0.573]], [0.857, [0.341, 0.174, 0.571]], [0.859, [0.341, 0.174, 0.571]], [0.861, [0.338, 0.169, 0.568]], [0.863, [0.338, 0.169, 0.568]], [0.865, [0.335, 0.164, 0.566]], [0.867, [0.335, 0.164, 0.566]], [0.869, [0.332, 0.159, 0.564]], [0.871, [0.332, 0.159, 0.564]], [0.873, [0.330, 0.154, 0.561]], [0.875, [0.330, 0.154, 0.561]], [0.877, [0.327, 0.149, 0.559]], [0.879, [0.327, 0.149, 0.559]], [0.881, [0.325, 0.144, 0.557]], [0.883, [0.325, 0.144, 0.557]], [0.885, [0.322, 0.139, 0.554]], [0.886, [0.322, 0.139, 0.554]], [0.888, [0.319, 0.134, 0.552]], [0.890, [0.319, 0.134, 0.552]], [0.892, [0.317, 0.130, 0.550]], [0.894, [0.317, 0.130, 0.550]], [0.896, [0.314, 0.125, 0.548]], [0.898, [0.314, 0.125, 0.548]], [0.900, [0.312, 0.120, 0.546]], [0.902, [0.312, 0.120, 0.546]], [0.904, [0.309, 0.115, 0.543]], [0.906, [0.309, 0.115, 0.543]], [0.908, [0.306, 0.110, 0.541]], [0.910, [0.306, 0.110, 0.541]], [0.912, [0.304, 0.106, 0.539]], [0.914, [0.304, 0.106, 0.539]], [0.916, [0.301, 0.101, 0.537]], [0.918, [0.301, 0.101, 0.537]], [0.920, [0.299, 0.096, 0.534]], [0.922, [0.299, 0.096, 0.534]], [0.924, [0.296, 0.091, 0.532]], [0.926, [0.296, 0.091, 0.532]], [0.928, [0.294, 0.086, 0.530]], [0.930, [0.294, 0.086, 0.530]], [0.932, [0.291, 0.082, 0.528]], [0.933, [0.291, 0.082, 0.528]], [0.935, [0.288, 0.077, 0.526]], [0.937, [0.288, 0.077, 0.526]], [0.939, [0.286, 0.072, 0.523]], [0.941, [0.286, 0.072, 0.523]], [0.943, [0.283, 0.067, 0.521]], [0.945, [0.283, 0.067, 0.521]], [0.947, [0.281, 0.062, 0.519]], [0.949, [0.281, 0.062, 0.519]], [0.951, [0.278, 0.058, 0.517]], [0.953, [0.278, 0.058, 0.517]], [0.955, [0.275, 0.053, 0.515]], [0.957, [0.275, 0.053, 0.515]], [0.959, [0.273, 0.048, 0.512]], [0.961, [0.273, 0.048, 0.512]], [0.963, [0.270, 0.043, 0.510]], [0.965, [0.270, 0.043, 0.510]], [0.967, [0.268, 0.038, 0.508]], [0.969, [0.268, 0.038, 0.508]], [0.971, [0.265, 0.034, 0.506]], [0.973, [0.265, 0.034, 0.506]], [0.975, [0.263, 0.029, 0.503]], [0.977, [0.263, 0.029, 0.503]], [0.978, [0.260, 0.024, 0.501]], [0.980, [0.260, 0.024, 0.501]], [0.982, [0.257, 0.019, 0.499]], [0.984, [0.257, 0.019, 0.499]], [0.986, [0.255, 0.014, 0.497]], [0.988, [0.255, 0.014, 0.497]], [0.990, [0.252, 0.010, 0.495]], [0.992, [0.252, 0.010, 0.495]], [0.994, [0.250, 0.005, 0.492]], [0.996, [0.250, 0.005, 0.492]], [0.998, [0.247, 0.000, 0.490]], [1.000, [0.247, 0.000, 0.490]]];
+var RdPu = [[0.000, [1.000, 0.969, 0.953]], [0.002, [1.000, 0.969, 0.953]], [0.004, [1.000, 0.966, 0.950]], [0.006, [1.000, 0.966, 0.950]], [0.008, [1.000, 0.963, 0.948]], [0.010, [1.000, 0.963, 0.948]], [0.012, [0.999, 0.960, 0.945]], [0.014, [0.999, 0.960, 0.945]], [0.016, [0.999, 0.957, 0.942]], [0.018, [0.999, 0.957, 0.942]], [0.020, [0.999, 0.954, 0.939]], [0.022, [0.999, 0.954, 0.939]], [0.023, [0.999, 0.952, 0.937]], [0.025, [0.999, 0.952, 0.937]], [0.027, [0.998, 0.949, 0.934]], [0.029, [0.998, 0.949, 0.934]], [0.031, [0.998, 0.946, 0.931]], [0.033, [0.998, 0.946, 0.931]], [0.035, [0.998, 0.943, 0.929]], [0.037, [0.998, 0.943, 0.929]], [0.039, [0.998, 0.940, 0.926]], [0.041, [0.998, 0.940, 0.926]], [0.043, [0.997, 0.938, 0.923]], [0.045, [0.997, 0.938, 0.923]], [0.047, [0.997, 0.935, 0.920]], [0.049, [0.997, 0.935, 0.920]], [0.051, [0.997, 0.932, 0.918]], [0.053, [0.997, 0.932, 0.918]], [0.055, [0.997, 0.929, 0.915]], [0.057, [0.997, 0.929, 0.915]], [0.059, [0.996, 0.926, 0.912]], [0.061, [0.996, 0.926, 0.912]], [0.063, [0.996, 0.923, 0.910]], [0.065, [0.996, 0.923, 0.910]], [0.067, [0.996, 0.921, 0.907]], [0.068, [0.996, 0.921, 0.907]], [0.070, [0.996, 0.918, 0.904]], [0.072, [0.996, 0.918, 0.904]], [0.074, [0.995, 0.915, 0.902]], [0.076, [0.995, 0.915, 0.902]], [0.078, [0.995, 0.912, 0.899]], [0.080, [0.995, 0.912, 0.899]], [0.082, [0.995, 0.909, 0.896]], [0.084, [0.995, 0.909, 0.896]], [0.086, [0.995, 0.906, 0.893]], [0.088, [0.995, 0.906, 0.893]], [0.090, [0.994, 0.904, 0.891]], [0.092, [0.994, 0.904, 0.891]], [0.094, [0.994, 0.901, 0.888]], [0.096, [0.994, 0.901, 0.888]], [0.098, [0.994, 0.898, 0.885]], [0.100, [0.994, 0.898, 0.885]], [0.102, [0.994, 0.895, 0.883]], [0.104, [0.994, 0.895, 0.883]], [0.106, [0.993, 0.892, 0.880]], [0.108, [0.993, 0.892, 0.880]], [0.110, [0.993, 0.889, 0.877]], [0.112, [0.993, 0.889, 0.877]], [0.114, [0.993, 0.887, 0.874]], [0.115, [0.993, 0.887, 0.874]], [0.117, [0.993, 0.884, 0.872]], [0.119, [0.993, 0.884, 0.872]], [0.121, [0.992, 0.881, 0.869]], [0.123, [0.992, 0.881, 0.869]], [0.125, [0.992, 0.878, 0.866]], [0.127, [0.992, 0.878, 0.866]], [0.129, [0.992, 0.875, 0.863]], [0.131, [0.992, 0.875, 0.863]], [0.133, [0.992, 0.871, 0.859]], [0.135, [0.992, 0.871, 0.859]], [0.137, [0.992, 0.868, 0.856]], [0.139, [0.992, 0.868, 0.856]], [0.141, [0.992, 0.865, 0.852]], [0.143, [0.992, 0.865, 0.852]], [0.145, [0.992, 0.861, 0.848]], [0.147, [0.992, 0.861, 0.848]], [0.149, [0.991, 0.858, 0.845]], [0.151, [0.991, 0.858, 0.845]], [0.153, [0.991, 0.855, 0.841]], [0.155, [0.991, 0.855, 0.841]], [0.157, [0.991, 0.851, 0.838]], [0.159, [0.991, 0.851, 0.838]], [0.160, [0.991, 0.848, 0.834]], [0.162, [0.991, 0.848, 0.834]], [0.164, [0.991, 0.845, 0.831]], [0.166, [0.991, 0.845, 0.831]], [0.168, [0.991, 0.841, 0.827]], [0.170, [0.991, 0.841, 0.827]], [0.172, [0.991, 0.838, 0.823]], [0.174, [0.991, 0.838, 0.823]], [0.176, [0.991, 0.835, 0.820]], [0.178, [0.991, 0.835, 0.820]], [0.180, [0.990, 0.832, 0.816]], [0.182, [0.990, 0.832, 0.816]], [0.184, [0.990, 0.828, 0.813]], [0.186, [0.990, 0.828, 0.813]], [0.188, [0.990, 0.825, 0.809]], [0.190, [0.990, 0.825, 0.809]], [0.192, [0.990, 0.822, 0.806]], [0.194, [0.990, 0.822, 0.806]], [0.196, [0.990, 0.818, 0.802]], [0.198, [0.990, 0.818, 0.802]], [0.200, [0.990, 0.815, 0.798]], [0.202, [0.990, 0.815, 0.798]], [0.204, [0.990, 0.812, 0.795]], [0.205, [0.990, 0.812, 0.795]], [0.207, [0.990, 0.808, 0.791]], [0.209, [0.990, 0.808, 0.791]], [0.211, [0.989, 0.805, 0.788]], [0.213, [0.989, 0.805, 0.788]], [0.215, [0.989, 0.802, 0.784]], [0.217, [0.989, 0.802, 0.784]], [0.219, [0.989, 0.798, 0.781]], [0.221, [0.989, 0.798, 0.781]], [0.223, [0.989, 0.795, 0.777]], [0.225, [0.989, 0.795, 0.777]], [0.227, [0.989, 0.792, 0.773]], [0.229, [0.989, 0.792, 0.773]], [0.231, [0.989, 0.788, 0.770]], [0.233, [0.989, 0.788, 0.770]], [0.235, [0.989, 0.785, 0.766]], [0.237, [0.989, 0.785, 0.766]], [0.239, [0.989, 0.782, 0.763]], [0.241, [0.989, 0.782, 0.763]], [0.243, [0.988, 0.778, 0.759]], [0.245, [0.988, 0.778, 0.759]], [0.247, [0.988, 0.775, 0.756]], [0.249, [0.988, 0.775, 0.756]], [0.250, [0.988, 0.771, 0.753]], [0.252, [0.988, 0.771, 0.753]], [0.254, [0.988, 0.767, 0.751]], [0.256, [0.988, 0.767, 0.751]], [0.258, [0.988, 0.762, 0.750]], [0.260, [0.988, 0.762, 0.750]], [0.262, [0.987, 0.757, 0.749]], [0.264, [0.987, 0.757, 0.749]], [0.266, [0.987, 0.753, 0.747]], [0.268, [0.987, 0.753, 0.747]], [0.270, [0.987, 0.748, 0.746]], [0.272, [0.987, 0.748, 0.746]], [0.274, [0.987, 0.743, 0.744]], [0.276, [0.987, 0.743, 0.744]], [0.278, [0.986, 0.739, 0.743]], [0.280, [0.986, 0.739, 0.743]], [0.282, [0.986, 0.734, 0.742]], [0.284, [0.986, 0.734, 0.742]], [0.286, [0.986, 0.729, 0.740]], [0.288, [0.986, 0.729, 0.740]], [0.290, [0.986, 0.725, 0.739]], [0.292, [0.986, 0.725, 0.739]], [0.294, [0.985, 0.720, 0.738]], [0.295, [0.985, 0.720, 0.738]], [0.297, [0.985, 0.715, 0.736]], [0.299, [0.985, 0.715, 0.736]], [0.301, [0.985, 0.711, 0.735]], [0.303, [0.985, 0.711, 0.735]], [0.305, [0.985, 0.706, 0.734]], [0.307, [0.985, 0.706, 0.734]], [0.309, [0.984, 0.701, 0.732]], [0.311, [0.984, 0.701, 0.732]], [0.313, [0.984, 0.697, 0.731]], [0.315, [0.984, 0.697, 0.731]], [0.317, [0.984, 0.692, 0.730]], [0.319, [0.984, 0.692, 0.730]], [0.321, [0.984, 0.687, 0.728]], [0.323, [0.984, 0.687, 0.728]], [0.325, [0.983, 0.683, 0.727]], [0.327, [0.983, 0.683, 0.727]], [0.329, [0.983, 0.678, 0.726]], [0.331, [0.983, 0.678, 0.726]], [0.333, [0.983, 0.673, 0.724]], [0.335, [0.983, 0.673, 0.724]], [0.337, [0.983, 0.669, 0.723]], [0.339, [0.983, 0.669, 0.723]], [0.341, [0.983, 0.664, 0.721]], [0.342, [0.983, 0.664, 0.721]], [0.344, [0.982, 0.659, 0.720]], [0.346, [0.982, 0.659, 0.720]], [0.348, [0.982, 0.655, 0.719]], [0.350, [0.982, 0.655, 0.719]], [0.352, [0.982, 0.650, 0.717]], [0.354, [0.982, 0.650, 0.717]], [0.356, [0.982, 0.645, 0.716]], [0.358, [0.982, 0.645, 0.716]], [0.360, [0.981, 0.640, 0.715]], [0.362, [0.981, 0.640, 0.715]], [0.364, [0.981, 0.636, 0.713]], [0.366, [0.981, 0.636, 0.713]], [0.368, [0.981, 0.631, 0.712]], [0.370, [0.981, 0.631, 0.712]], [0.372, [0.981, 0.626, 0.711]], [0.374, [0.981, 0.626, 0.711]], [0.376, [0.980, 0.621, 0.709]], [0.378, [0.980, 0.621, 0.709]], [0.380, [0.980, 0.614, 0.706]], [0.382, [0.980, 0.614, 0.706]], [0.384, [0.980, 0.607, 0.704]], [0.386, [0.980, 0.607, 0.704]], [0.387, [0.979, 0.601, 0.701]], [0.389, [0.979, 0.601, 0.701]], [0.391, [0.979, 0.594, 0.699]], [0.393, [0.979, 0.594, 0.699]], [0.395, [0.978, 0.587, 0.697]], [0.397, [0.978, 0.587, 0.697]], [0.399, [0.978, 0.580, 0.694]], [0.401, [0.978, 0.580, 0.694]], [0.403, [0.978, 0.574, 0.692]], [0.405, [0.978, 0.574, 0.692]], [0.407, [0.977, 0.567, 0.689]], [0.409, [0.977, 0.567, 0.689]], [0.411, [0.977, 0.560, 0.687]], [0.413, [0.977, 0.560, 0.687]], [0.415, [0.977, 0.553, 0.684]], [0.417, [0.977, 0.553, 0.684]], [0.419, [0.976, 0.547, 0.682]], [0.421, [0.976, 0.547, 0.682]], [0.423, [0.976, 0.540, 0.679]], [0.425, [0.976, 0.540, 0.679]], [0.427, [0.975, 0.533, 0.677]], [0.429, [0.975, 0.533, 0.677]], [0.431, [0.975, 0.526, 0.674]], [0.432, [0.975, 0.526, 0.674]], [0.434, [0.975, 0.519, 0.672]], [0.436, [0.975, 0.519, 0.672]], [0.438, [0.974, 0.513, 0.670]], [0.440, [0.974, 0.513, 0.670]], [0.442, [0.974, 0.506, 0.667]], [0.444, [0.974, 0.506, 0.667]], [0.446, [0.974, 0.499, 0.665]], [0.448, [0.974, 0.499, 0.665]], [0.450, [0.973, 0.492, 0.662]], [0.452, [0.973, 0.492, 0.662]], [0.454, [0.973, 0.486, 0.660]], [0.456, [0.973, 0.486, 0.660]], [0.458, [0.973, 0.479, 0.657]], [0.460, [0.973, 0.479, 0.657]], [0.462, [0.972, 0.472, 0.655]], [0.464, [0.972, 0.472, 0.655]], [0.466, [0.972, 0.465, 0.652]], [0.468, [0.972, 0.465, 0.652]], [0.470, [0.971, 0.459, 0.650]], [0.472, [0.971, 0.459, 0.650]], [0.474, [0.971, 0.452, 0.647]], [0.476, [0.971, 0.452, 0.647]], [0.477, [0.971, 0.445, 0.645]], [0.479, [0.971, 0.445, 0.645]], [0.481, [0.970, 0.438, 0.642]], [0.483, [0.970, 0.438, 0.642]], [0.485, [0.970, 0.432, 0.640]], [0.487, [0.970, 0.432, 0.640]], [0.489, [0.970, 0.425, 0.638]], [0.491, [0.970, 0.425, 0.638]], [0.493, [0.969, 0.418, 0.635]], [0.495, [0.969, 0.418, 0.635]], [0.497, [0.969, 0.411, 0.633]], [0.499, [0.969, 0.411, 0.633]], [0.501, [0.967, 0.405, 0.631]], [0.503, [0.967, 0.405, 0.631]], [0.505, [0.964, 0.398, 0.630]], [0.507, [0.964, 0.398, 0.630]], [0.509, [0.961, 0.392, 0.628]], [0.511, [0.961, 0.392, 0.628]], [0.513, [0.957, 0.385, 0.627]], [0.515, [0.957, 0.385, 0.627]], [0.517, [0.954, 0.379, 0.626]], [0.519, [0.954, 0.379, 0.626]], [0.521, [0.951, 0.373, 0.625]], [0.523, [0.951, 0.373, 0.625]], [0.524, [0.948, 0.366, 0.623]], [0.526, [0.948, 0.366, 0.623]], [0.528, [0.945, 0.360, 0.622]], [0.530, [0.945, 0.360, 0.622]], [0.532, [0.941, 0.353, 0.621]], [0.534, [0.941, 0.353, 0.621]], [0.536, [0.938, 0.347, 0.620]], [0.538, [0.938, 0.347, 0.620]], [0.540, [0.935, 0.341, 0.618]], [0.542, [0.935, 0.341, 0.618]], [0.544, [0.932, 0.334, 0.617]], [0.546, [0.932, 0.334, 0.617]], [0.548, [0.929, 0.328, 0.616]], [0.550, [0.929, 0.328, 0.616]], [0.552, [0.925, 0.321, 0.615]], [0.554, [0.925, 0.321, 0.615]], [0.556, [0.922, 0.315, 0.614]], [0.558, [0.922, 0.315, 0.614]], [0.560, [0.919, 0.309, 0.612]], [0.562, [0.919, 0.309, 0.612]], [0.564, [0.916, 0.302, 0.611]], [0.566, [0.916, 0.302, 0.611]], [0.568, [0.913, 0.296, 0.610]], [0.569, [0.913, 0.296, 0.610]], [0.571, [0.909, 0.289, 0.609]], [0.573, [0.909, 0.289, 0.609]], [0.575, [0.906, 0.283, 0.607]], [0.577, [0.906, 0.283, 0.607]], [0.579, [0.903, 0.277, 0.606]], [0.581, [0.903, 0.277, 0.606]], [0.583, [0.900, 0.270, 0.605]], [0.585, [0.900, 0.270, 0.605]], [0.587, [0.897, 0.264, 0.604]], [0.589, [0.897, 0.264, 0.604]], [0.591, [0.893, 0.258, 0.602]], [0.593, [0.893, 0.258, 0.602]], [0.595, [0.890, 0.251, 0.601]], [0.597, [0.890, 0.251, 0.601]], [0.599, [0.887, 0.245, 0.600]], [0.601, [0.887, 0.245, 0.600]], [0.603, [0.884, 0.238, 0.599]], [0.605, [0.884, 0.238, 0.599]], [0.607, [0.881, 0.232, 0.598]], [0.609, [0.881, 0.232, 0.598]], [0.611, [0.877, 0.226, 0.596]], [0.613, [0.877, 0.226, 0.596]], [0.614, [0.874, 0.219, 0.595]], [0.616, [0.874, 0.219, 0.595]], [0.618, [0.871, 0.213, 0.594]], [0.620, [0.871, 0.213, 0.594]], [0.622, [0.868, 0.206, 0.593]], [0.624, [0.868, 0.206, 0.593]], [0.626, [0.863, 0.200, 0.590]], [0.628, [0.863, 0.200, 0.590]], [0.630, [0.857, 0.194, 0.587]], [0.632, [0.857, 0.194, 0.587]], [0.634, [0.851, 0.187, 0.584]], [0.636, [0.851, 0.187, 0.584]], [0.638, [0.846, 0.181, 0.581]], [0.640, [0.846, 0.181, 0.581]], [0.642, [0.840, 0.175, 0.578]], [0.644, [0.840, 0.175, 0.578]], [0.646, [0.834, 0.169, 0.575]], [0.648, [0.834, 0.169, 0.575]], [0.650, [0.828, 0.162, 0.572]], [0.652, [0.828, 0.162, 0.572]], [0.654, [0.823, 0.156, 0.569]], [0.656, [0.823, 0.156, 0.569]], [0.658, [0.817, 0.150, 0.566]], [0.659, [0.817, 0.150, 0.566]], [0.661, [0.811, 0.144, 0.563]], [0.663, [0.811, 0.144, 0.563]], [0.665, [0.805, 0.137, 0.559]], [0.667, [0.805, 0.137, 0.559]], [0.669, [0.799, 0.131, 0.556]], [0.671, [0.799, 0.131, 0.556]], [0.673, [0.794, 0.125, 0.553]], [0.675, [0.794, 0.125, 0.553]], [0.677, [0.788, 0.118, 0.550]], [0.679, [0.788, 0.118, 0.550]], [0.681, [0.782, 0.112, 0.547]], [0.683, [0.782, 0.112, 0.547]], [0.685, [0.776, 0.106, 0.544]], [0.687, [0.776, 0.106, 0.544]], [0.689, [0.771, 0.100, 0.541]], [0.691, [0.771, 0.100, 0.541]], [0.693, [0.765, 0.093, 0.538]], [0.695, [0.765, 0.093, 0.538]], [0.697, [0.759, 0.087, 0.535]], [0.699, [0.759, 0.087, 0.535]], [0.701, [0.753, 0.081, 0.532]], [0.703, [0.753, 0.081, 0.532]], [0.705, [0.747, 0.075, 0.529]], [0.706, [0.747, 0.075, 0.529]], [0.708, [0.742, 0.068, 0.526]], [0.710, [0.742, 0.068, 0.526]], [0.712, [0.736, 0.062, 0.523]], [0.714, [0.736, 0.062, 0.523]], [0.716, [0.730, 0.056, 0.519]], [0.718, [0.730, 0.056, 0.519]], [0.720, [0.724, 0.049, 0.516]], [0.722, [0.724, 0.049, 0.516]], [0.724, [0.718, 0.043, 0.513]], [0.726, [0.718, 0.043, 0.513]], [0.728, [0.713, 0.037, 0.510]], [0.730, [0.713, 0.037, 0.510]], [0.732, [0.707, 0.031, 0.507]], [0.734, [0.707, 0.031, 0.507]], [0.736, [0.701, 0.024, 0.504]], [0.738, [0.701, 0.024, 0.504]], [0.740, [0.695, 0.018, 0.501]], [0.742, [0.695, 0.018, 0.501]], [0.744, [0.690, 0.012, 0.498]], [0.746, [0.690, 0.012, 0.498]], [0.748, [0.684, 0.005, 0.495]], [0.750, [0.684, 0.005, 0.495]], [0.751, [0.678, 0.004, 0.493]], [0.753, [0.678, 0.004, 0.493]], [0.755, [0.671, 0.004, 0.493]], [0.757, [0.671, 0.004, 0.493]], [0.759, [0.665, 0.004, 0.492]], [0.761, [0.665, 0.004, 0.492]], [0.763, [0.658, 0.004, 0.491]], [0.765, [0.658, 0.004, 0.491]], [0.767, [0.652, 0.004, 0.490]], [0.769, [0.652, 0.004, 0.490]], [0.771, [0.646, 0.004, 0.489]], [0.773, [0.646, 0.004, 0.489]], [0.775, [0.639, 0.004, 0.488]], [0.777, [0.639, 0.004, 0.488]], [0.779, [0.633, 0.004, 0.487]], [0.781, [0.633, 0.004, 0.487]], [0.783, [0.626, 0.004, 0.487]], [0.785, [0.626, 0.004, 0.487]], [0.787, [0.620, 0.004, 0.486]], [0.789, [0.620, 0.004, 0.486]], [0.791, [0.614, 0.004, 0.485]], [0.793, [0.614, 0.004, 0.485]], [0.795, [0.607, 0.004, 0.484]], [0.796, [0.607, 0.004, 0.484]], [0.798, [0.601, 0.004, 0.483]], [0.800, [0.601, 0.004, 0.483]], [0.802, [0.594, 0.004, 0.482]], [0.804, [0.594, 0.004, 0.482]], [0.806, [0.588, 0.004, 0.481]], [0.808, [0.588, 0.004, 0.481]], [0.810, [0.582, 0.004, 0.481]], [0.812, [0.582, 0.004, 0.481]], [0.814, [0.575, 0.004, 0.480]], [0.816, [0.575, 0.004, 0.480]], [0.818, [0.569, 0.004, 0.479]], [0.820, [0.569, 0.004, 0.479]], [0.822, [0.562, 0.004, 0.478]], [0.824, [0.562, 0.004, 0.478]], [0.826, [0.556, 0.004, 0.477]], [0.828, [0.556, 0.004, 0.477]], [0.830, [0.550, 0.004, 0.476]], [0.832, [0.550, 0.004, 0.476]], [0.834, [0.543, 0.004, 0.475]], [0.836, [0.543, 0.004, 0.475]], [0.838, [0.537, 0.004, 0.475]], [0.840, [0.537, 0.004, 0.475]], [0.841, [0.530, 0.004, 0.474]], [0.843, [0.530, 0.004, 0.474]], [0.845, [0.524, 0.004, 0.473]], [0.847, [0.524, 0.004, 0.473]], [0.849, [0.518, 0.004, 0.472]], [0.851, [0.518, 0.004, 0.472]], [0.853, [0.511, 0.004, 0.471]], [0.855, [0.511, 0.004, 0.471]], [0.857, [0.505, 0.004, 0.470]], [0.859, [0.505, 0.004, 0.470]], [0.861, [0.498, 0.004, 0.469]], [0.863, [0.498, 0.004, 0.469]], [0.865, [0.492, 0.004, 0.468]], [0.867, [0.492, 0.004, 0.468]], [0.869, [0.486, 0.004, 0.468]], [0.871, [0.486, 0.004, 0.468]], [0.873, [0.479, 0.004, 0.467]], [0.875, [0.479, 0.004, 0.467]], [0.877, [0.473, 0.004, 0.465]], [0.879, [0.473, 0.004, 0.465]], [0.881, [0.467, 0.004, 0.464]], [0.883, [0.467, 0.004, 0.464]], [0.885, [0.461, 0.004, 0.462]], [0.886, [0.461, 0.004, 0.462]], [0.888, [0.455, 0.003, 0.460]], [0.890, [0.455, 0.003, 0.460]], [0.892, [0.449, 0.003, 0.459]], [0.894, [0.449, 0.003, 0.459]], [0.896, [0.443, 0.003, 0.457]], [0.898, [0.443, 0.003, 0.457]], [0.900, [0.437, 0.003, 0.456]], [0.902, [0.437, 0.003, 0.456]], [0.904, [0.431, 0.003, 0.454]], [0.906, [0.431, 0.003, 0.454]], [0.908, [0.425, 0.003, 0.452]], [0.910, [0.425, 0.003, 0.452]], [0.912, [0.419, 0.003, 0.451]], [0.914, [0.419, 0.003, 0.451]], [0.916, [0.413, 0.003, 0.449]], [0.918, [0.413, 0.003, 0.449]], [0.920, [0.407, 0.002, 0.448]], [0.922, [0.407, 0.002, 0.448]], [0.924, [0.401, 0.002, 0.446]], [0.926, [0.401, 0.002, 0.446]], [0.928, [0.395, 0.002, 0.444]], [0.930, [0.395, 0.002, 0.444]], [0.932, [0.389, 0.002, 0.443]], [0.933, [0.389, 0.002, 0.443]], [0.935, [0.383, 0.002, 0.441]], [0.937, [0.383, 0.002, 0.441]], [0.939, [0.377, 0.002, 0.440]], [0.941, [0.377, 0.002, 0.440]], [0.943, [0.371, 0.002, 0.438]], [0.945, [0.371, 0.002, 0.438]], [0.947, [0.365, 0.002, 0.436]], [0.949, [0.365, 0.002, 0.436]], [0.951, [0.359, 0.001, 0.435]], [0.953, [0.359, 0.001, 0.435]], [0.955, [0.353, 0.001, 0.433]], [0.957, [0.353, 0.001, 0.433]], [0.959, [0.347, 0.001, 0.432]], [0.961, [0.347, 0.001, 0.432]], [0.963, [0.341, 0.001, 0.430]], [0.965, [0.341, 0.001, 0.430]], [0.967, [0.335, 0.001, 0.428]], [0.969, [0.335, 0.001, 0.428]], [0.971, [0.328, 0.001, 0.427]], [0.973, [0.328, 0.001, 0.427]], [0.975, [0.322, 0.001, 0.425]], [0.977, [0.322, 0.001, 0.425]], [0.978, [0.316, 0.001, 0.424]], [0.980, [0.316, 0.001, 0.424]], [0.982, [0.310, 0.000, 0.422]], [0.984, [0.310, 0.000, 0.422]], [0.986, [0.304, 0.000, 0.420]], [0.988, [0.304, 0.000, 0.420]], [0.990, [0.298, 0.000, 0.419]], [0.992, [0.298, 0.000, 0.419]], [0.994, [0.292, 0.000, 0.417]], [0.996, [0.292, 0.000, 0.417]], [0.998, [0.286, 0.000, 0.416]], [1.000, [0.286, 0.000, 0.416]]];
+var Reds = [[0.000, [1.000, 0.961, 0.941]], [0.002, [1.000, 0.961, 0.941]], [0.004, [1.000, 0.958, 0.937]], [0.006, [1.000, 0.958, 0.937]], [0.008, [1.000, 0.956, 0.934]], [0.010, [1.000, 0.956, 0.934]], [0.012, [1.000, 0.953, 0.930]], [0.014, [1.000, 0.953, 0.930]], [0.016, [1.000, 0.950, 0.926]], [0.018, [1.000, 0.950, 0.926]], [0.020, [0.999, 0.948, 0.923]], [0.022, [0.999, 0.948, 0.923]], [0.023, [0.999, 0.945, 0.919]], [0.025, [0.999, 0.945, 0.919]], [0.027, [0.999, 0.943, 0.915]], [0.029, [0.999, 0.943, 0.915]], [0.031, [0.999, 0.940, 0.912]], [0.033, [0.999, 0.940, 0.912]], [0.035, [0.999, 0.938, 0.908]], [0.037, [0.999, 0.938, 0.908]], [0.039, [0.999, 0.935, 0.904]], [0.041, [0.999, 0.935, 0.904]], [0.043, [0.999, 0.932, 0.901]], [0.045, [0.999, 0.932, 0.901]], [0.047, [0.999, 0.930, 0.897]], [0.049, [0.999, 0.930, 0.897]], [0.051, [0.998, 0.927, 0.893]], [0.053, [0.998, 0.927, 0.893]], [0.055, [0.998, 0.925, 0.890]], [0.057, [0.998, 0.925, 0.890]], [0.059, [0.998, 0.922, 0.886]], [0.061, [0.998, 0.922, 0.886]], [0.063, [0.998, 0.919, 0.882]], [0.065, [0.998, 0.919, 0.882]], [0.067, [0.998, 0.917, 0.878]], [0.068, [0.998, 0.917, 0.878]], [0.070, [0.998, 0.914, 0.875]], [0.072, [0.998, 0.914, 0.875]], [0.074, [0.998, 0.912, 0.871]], [0.076, [0.998, 0.912, 0.871]], [0.078, [0.998, 0.909, 0.867]], [0.080, [0.998, 0.909, 0.867]], [0.082, [0.997, 0.907, 0.864]], [0.084, [0.997, 0.907, 0.864]], [0.086, [0.997, 0.904, 0.860]], [0.088, [0.997, 0.904, 0.860]], [0.090, [0.997, 0.901, 0.856]], [0.092, [0.997, 0.901, 0.856]], [0.094, [0.997, 0.899, 0.853]], [0.096, [0.997, 0.899, 0.853]], [0.098, [0.997, 0.896, 0.849]], [0.100, [0.997, 0.896, 0.849]], [0.102, [0.997, 0.894, 0.845]], [0.104, [0.997, 0.894, 0.845]], [0.106, [0.997, 0.891, 0.842]], [0.108, [0.997, 0.891, 0.842]], [0.110, [0.997, 0.888, 0.838]], [0.112, [0.997, 0.888, 0.838]], [0.114, [0.996, 0.886, 0.834]], [0.115, [0.996, 0.886, 0.834]], [0.117, [0.996, 0.883, 0.830]], [0.119, [0.996, 0.883, 0.830]], [0.121, [0.996, 0.881, 0.827]], [0.123, [0.996, 0.881, 0.827]], [0.125, [0.996, 0.878, 0.823]], [0.127, [0.996, 0.878, 0.823]], [0.129, [0.996, 0.873, 0.817]], [0.131, [0.996, 0.873, 0.817]], [0.133, [0.996, 0.869, 0.811]], [0.135, [0.996, 0.869, 0.811]], [0.137, [0.995, 0.864, 0.805]], [0.139, [0.995, 0.864, 0.805]], [0.141, [0.995, 0.860, 0.799]], [0.143, [0.995, 0.860, 0.799]], [0.145, [0.995, 0.855, 0.793]], [0.147, [0.995, 0.855, 0.793]], [0.149, [0.995, 0.851, 0.787]], [0.151, [0.995, 0.851, 0.787]], [0.153, [0.994, 0.846, 0.781]], [0.155, [0.994, 0.846, 0.781]], [0.157, [0.994, 0.841, 0.775]], [0.159, [0.994, 0.841, 0.775]], [0.160, [0.994, 0.837, 0.769]], [0.162, [0.994, 0.837, 0.769]], [0.164, [0.994, 0.832, 0.762]], [0.166, [0.994, 0.832, 0.762]], [0.168, [0.993, 0.828, 0.756]], [0.170, [0.993, 0.828, 0.756]], [0.172, [0.993, 0.823, 0.750]], [0.174, [0.993, 0.823, 0.750]], [0.176, [0.993, 0.819, 0.744]], [0.178, [0.993, 0.819, 0.744]], [0.180, [0.993, 0.814, 0.738]], [0.182, [0.993, 0.814, 0.738]], [0.184, [0.992, 0.810, 0.732]], [0.186, [0.992, 0.810, 0.732]], [0.188, [0.992, 0.805, 0.726]], [0.190, [0.992, 0.805, 0.726]], [0.192, [0.992, 0.800, 0.720]], [0.194, [0.992, 0.800, 0.720]], [0.196, [0.992, 0.796, 0.714]], [0.198, [0.992, 0.796, 0.714]], [0.200, [0.991, 0.791, 0.708]], [0.202, [0.991, 0.791, 0.708]], [0.204, [0.991, 0.787, 0.702]], [0.205, [0.991, 0.787, 0.702]], [0.207, [0.991, 0.782, 0.696]], [0.209, [0.991, 0.782, 0.696]], [0.211, [0.991, 0.778, 0.690]], [0.213, [0.991, 0.778, 0.690]], [0.215, [0.990, 0.773, 0.684]], [0.217, [0.990, 0.773, 0.684]], [0.219, [0.990, 0.769, 0.678]], [0.221, [0.990, 0.769, 0.678]], [0.223, [0.990, 0.764, 0.672]], [0.225, [0.990, 0.764, 0.672]], [0.227, [0.990, 0.760, 0.666]], [0.229, [0.990, 0.760, 0.666]], [0.231, [0.989, 0.755, 0.660]], [0.233, [0.989, 0.755, 0.660]], [0.235, [0.989, 0.750, 0.654]], [0.237, [0.989, 0.750, 0.654]], [0.239, [0.989, 0.746, 0.648]], [0.241, [0.989, 0.746, 0.648]], [0.243, [0.989, 0.741, 0.642]], [0.245, [0.989, 0.741, 0.642]], [0.247, [0.988, 0.737, 0.636]], [0.249, [0.988, 0.737, 0.636]], [0.250, [0.988, 0.732, 0.630]], [0.252, [0.988, 0.732, 0.630]], [0.254, [0.988, 0.727, 0.624]], [0.256, [0.988, 0.727, 0.624]], [0.258, [0.988, 0.722, 0.618]], [0.260, [0.988, 0.722, 0.618]], [0.262, [0.988, 0.717, 0.613]], [0.264, [0.988, 0.717, 0.613]], [0.266, [0.988, 0.712, 0.607]], [0.268, [0.988, 0.712, 0.607]], [0.270, [0.988, 0.707, 0.601]], [0.272, [0.988, 0.707, 0.601]], [0.274, [0.988, 0.702, 0.595]], [0.276, [0.988, 0.702, 0.595]], [0.278, [0.988, 0.697, 0.589]], [0.280, [0.988, 0.697, 0.589]], [0.282, [0.988, 0.692, 0.584]], [0.284, [0.988, 0.692, 0.584]], [0.286, [0.988, 0.687, 0.578]], [0.288, [0.988, 0.687, 0.578]], [0.290, [0.988, 0.682, 0.572]], [0.292, [0.988, 0.682, 0.572]], [0.294, [0.988, 0.677, 0.566]], [0.295, [0.988, 0.677, 0.566]], [0.297, [0.988, 0.672, 0.561]], [0.299, [0.988, 0.672, 0.561]], [0.301, [0.988, 0.666, 0.555]], [0.303, [0.988, 0.666, 0.555]], [0.305, [0.988, 0.661, 0.549]], [0.307, [0.988, 0.661, 0.549]], [0.309, [0.988, 0.656, 0.543]], [0.311, [0.988, 0.656, 0.543]], [0.313, [0.988, 0.651, 0.537]], [0.315, [0.988, 0.651, 0.537]], [0.317, [0.988, 0.646, 0.532]], [0.319, [0.988, 0.646, 0.532]], [0.321, [0.988, 0.641, 0.526]], [0.323, [0.988, 0.641, 0.526]], [0.325, [0.988, 0.636, 0.520]], [0.327, [0.988, 0.636, 0.520]], [0.329, [0.988, 0.631, 0.514]], [0.331, [0.988, 0.631, 0.514]], [0.333, [0.988, 0.626, 0.508]], [0.335, [0.988, 0.626, 0.508]], [0.337, [0.988, 0.621, 0.503]], [0.339, [0.988, 0.621, 0.503]], [0.341, [0.988, 0.616, 0.497]], [0.342, [0.988, 0.616, 0.497]], [0.344, [0.988, 0.611, 0.491]], [0.346, [0.988, 0.611, 0.491]], [0.348, [0.988, 0.606, 0.485]], [0.350, [0.988, 0.606, 0.485]], [0.352, [0.988, 0.601, 0.480]], [0.354, [0.988, 0.601, 0.480]], [0.356, [0.988, 0.596, 0.474]], [0.358, [0.988, 0.596, 0.474]], [0.360, [0.988, 0.591, 0.468]], [0.362, [0.988, 0.591, 0.468]], [0.364, [0.988, 0.586, 0.462]], [0.366, [0.988, 0.586, 0.462]], [0.368, [0.988, 0.581, 0.456]], [0.370, [0.988, 0.581, 0.456]], [0.372, [0.988, 0.576, 0.451]], [0.374, [0.988, 0.576, 0.451]], [0.376, [0.988, 0.571, 0.445]], [0.378, [0.988, 0.571, 0.445]], [0.380, [0.988, 0.566, 0.440]], [0.382, [0.988, 0.566, 0.440]], [0.384, [0.988, 0.561, 0.435]], [0.386, [0.988, 0.561, 0.435]], [0.387, [0.988, 0.556, 0.430]], [0.389, [0.988, 0.556, 0.430]], [0.391, [0.988, 0.551, 0.426]], [0.393, [0.988, 0.551, 0.426]], [0.395, [0.988, 0.546, 0.421]], [0.397, [0.988, 0.546, 0.421]], [0.399, [0.987, 0.541, 0.416]], [0.401, [0.987, 0.541, 0.416]], [0.403, [0.987, 0.536, 0.411]], [0.405, [0.987, 0.536, 0.411]], [0.407, [0.987, 0.531, 0.406]], [0.409, [0.987, 0.531, 0.406]], [0.411, [0.987, 0.526, 0.401]], [0.413, [0.987, 0.526, 0.401]], [0.415, [0.987, 0.521, 0.396]], [0.417, [0.987, 0.521, 0.396]], [0.419, [0.987, 0.517, 0.391]], [0.421, [0.987, 0.517, 0.391]], [0.423, [0.987, 0.512, 0.386]], [0.425, [0.987, 0.512, 0.386]], [0.427, [0.987, 0.507, 0.381]], [0.429, [0.987, 0.507, 0.381]], [0.431, [0.986, 0.502, 0.376]], [0.432, [0.986, 0.502, 0.376]], [0.434, [0.986, 0.497, 0.371]], [0.436, [0.986, 0.497, 0.371]], [0.438, [0.986, 0.492, 0.366]], [0.440, [0.986, 0.492, 0.366]], [0.442, [0.986, 0.487, 0.362]], [0.444, [0.986, 0.487, 0.362]], [0.446, [0.986, 0.482, 0.357]], [0.448, [0.986, 0.482, 0.357]], [0.450, [0.986, 0.477, 0.352]], [0.452, [0.986, 0.477, 0.352]], [0.454, [0.986, 0.472, 0.347]], [0.456, [0.986, 0.472, 0.347]], [0.458, [0.986, 0.467, 0.342]], [0.460, [0.986, 0.467, 0.342]], [0.462, [0.985, 0.462, 0.337]], [0.464, [0.985, 0.462, 0.337]], [0.466, [0.985, 0.458, 0.332]], [0.468, [0.985, 0.458, 0.332]], [0.470, [0.985, 0.453, 0.327]], [0.472, [0.985, 0.453, 0.327]], [0.474, [0.985, 0.448, 0.322]], [0.476, [0.985, 0.448, 0.322]], [0.477, [0.985, 0.443, 0.317]], [0.479, [0.985, 0.443, 0.317]], [0.481, [0.985, 0.438, 0.312]], [0.483, [0.985, 0.438, 0.312]], [0.485, [0.985, 0.433, 0.307]], [0.487, [0.985, 0.433, 0.307]], [0.489, [0.985, 0.428, 0.302]], [0.491, [0.985, 0.428, 0.302]], [0.493, [0.984, 0.423, 0.298]], [0.495, [0.984, 0.423, 0.298]], [0.497, [0.984, 0.418, 0.293]], [0.499, [0.984, 0.418, 0.293]], [0.501, [0.984, 0.413, 0.288]], [0.503, [0.984, 0.413, 0.288]], [0.505, [0.982, 0.407, 0.285]], [0.507, [0.982, 0.407, 0.285]], [0.509, [0.981, 0.401, 0.281]], [0.511, [0.981, 0.401, 0.281]], [0.513, [0.979, 0.395, 0.277]], [0.515, [0.979, 0.395, 0.277]], [0.517, [0.978, 0.390, 0.274]], [0.519, [0.978, 0.390, 0.274]], [0.521, [0.976, 0.384, 0.270]], [0.523, [0.976, 0.384, 0.270]], [0.524, [0.975, 0.378, 0.266]], [0.526, [0.975, 0.378, 0.266]], [0.528, [0.973, 0.372, 0.263]], [0.530, [0.973, 0.372, 0.263]], [0.532, [0.972, 0.367, 0.259]], [0.534, [0.972, 0.367, 0.259]], [0.536, [0.970, 0.361, 0.255]], [0.538, [0.970, 0.361, 0.255]], [0.540, [0.969, 0.355, 0.251]], [0.542, [0.969, 0.355, 0.251]], [0.544, [0.967, 0.349, 0.248]], [0.546, [0.967, 0.349, 0.248]], [0.548, [0.966, 0.343, 0.244]], [0.550, [0.966, 0.343, 0.244]], [0.552, [0.964, 0.338, 0.240]], [0.554, [0.964, 0.338, 0.240]], [0.556, [0.963, 0.332, 0.237]], [0.558, [0.963, 0.332, 0.237]], [0.560, [0.961, 0.326, 0.233]], [0.562, [0.961, 0.326, 0.233]], [0.564, [0.960, 0.320, 0.229]], [0.566, [0.960, 0.320, 0.229]], [0.568, [0.958, 0.314, 0.226]], [0.569, [0.958, 0.314, 0.226]], [0.571, [0.957, 0.309, 0.222]], [0.573, [0.957, 0.309, 0.222]], [0.575, [0.956, 0.303, 0.218]], [0.577, [0.956, 0.303, 0.218]], [0.579, [0.954, 0.297, 0.215]], [0.581, [0.954, 0.297, 0.215]], [0.583, [0.953, 0.291, 0.211]], [0.585, [0.953, 0.291, 0.211]], [0.587, [0.951, 0.286, 0.207]], [0.589, [0.951, 0.286, 0.207]], [0.591, [0.950, 0.280, 0.203]], [0.593, [0.950, 0.280, 0.203]], [0.595, [0.948, 0.274, 0.200]], [0.597, [0.948, 0.274, 0.200]], [0.599, [0.947, 0.268, 0.196]], [0.601, [0.947, 0.268, 0.196]], [0.603, [0.945, 0.262, 0.192]], [0.605, [0.945, 0.262, 0.192]], [0.607, [0.944, 0.257, 0.189]], [0.609, [0.944, 0.257, 0.189]], [0.611, [0.942, 0.251, 0.185]], [0.613, [0.942, 0.251, 0.185]], [0.614, [0.941, 0.245, 0.181]], [0.616, [0.941, 0.245, 0.181]], [0.618, [0.939, 0.239, 0.178]], [0.620, [0.939, 0.239, 0.178]], [0.622, [0.938, 0.234, 0.174]], [0.624, [0.938, 0.234, 0.174]], [0.626, [0.934, 0.229, 0.171]], [0.628, [0.934, 0.229, 0.171]], [0.630, [0.930, 0.224, 0.170]], [0.632, [0.930, 0.224, 0.170]], [0.634, [0.926, 0.220, 0.168]], [0.636, [0.926, 0.220, 0.168]], [0.638, [0.921, 0.216, 0.166]], [0.640, [0.921, 0.216, 0.166]], [0.642, [0.917, 0.211, 0.164]], [0.644, [0.917, 0.211, 0.164]], [0.646, [0.912, 0.207, 0.162]], [0.648, [0.912, 0.207, 0.162]], [0.650, [0.908, 0.203, 0.160]], [0.652, [0.908, 0.203, 0.160]], [0.654, [0.903, 0.199, 0.158]], [0.656, [0.903, 0.199, 0.158]], [0.658, [0.899, 0.194, 0.157]], [0.659, [0.899, 0.194, 0.157]], [0.661, [0.895, 0.190, 0.155]], [0.663, [0.895, 0.190, 0.155]], [0.665, [0.890, 0.186, 0.153]], [0.667, [0.890, 0.186, 0.153]], [0.669, [0.886, 0.181, 0.151]], [0.671, [0.886, 0.181, 0.151]], [0.673, [0.881, 0.177, 0.149]], [0.675, [0.881, 0.177, 0.149]], [0.677, [0.877, 0.173, 0.147]], [0.679, [0.877, 0.173, 0.147]], [0.681, [0.872, 0.168, 0.146]], [0.683, [0.872, 0.168, 0.146]], [0.685, [0.868, 0.164, 0.144]], [0.687, [0.868, 0.164, 0.144]], [0.689, [0.864, 0.160, 0.142]], [0.691, [0.864, 0.160, 0.142]], [0.693, [0.859, 0.155, 0.140]], [0.695, [0.859, 0.155, 0.140]], [0.697, [0.855, 0.151, 0.138]], [0.699, [0.855, 0.151, 0.138]], [0.701, [0.850, 0.147, 0.136]], [0.703, [0.850, 0.147, 0.136]], [0.705, [0.846, 0.143, 0.134]], [0.706, [0.846, 0.143, 0.134]], [0.708, [0.841, 0.138, 0.133]], [0.710, [0.841, 0.138, 0.133]], [0.712, [0.837, 0.134, 0.131]], [0.714, [0.837, 0.134, 0.131]], [0.716, [0.833, 0.130, 0.129]], [0.718, [0.833, 0.130, 0.129]], [0.720, [0.828, 0.125, 0.127]], [0.722, [0.828, 0.125, 0.127]], [0.724, [0.824, 0.121, 0.125]], [0.726, [0.824, 0.121, 0.125]], [0.728, [0.819, 0.117, 0.123]], [0.730, [0.819, 0.117, 0.123]], [0.732, [0.815, 0.112, 0.122]], [0.734, [0.815, 0.112, 0.122]], [0.736, [0.810, 0.108, 0.120]], [0.738, [0.810, 0.108, 0.120]], [0.740, [0.806, 0.104, 0.118]], [0.742, [0.806, 0.104, 0.118]], [0.744, [0.802, 0.100, 0.116]], [0.746, [0.802, 0.100, 0.116]], [0.748, [0.797, 0.095, 0.114]], [0.750, [0.797, 0.095, 0.114]], [0.751, [0.793, 0.093, 0.113]], [0.753, [0.793, 0.093, 0.113]], [0.755, [0.788, 0.092, 0.112]], [0.757, [0.788, 0.092, 0.112]], [0.759, [0.783, 0.091, 0.111]], [0.761, [0.783, 0.091, 0.111]], [0.763, [0.779, 0.090, 0.110]], [0.765, [0.779, 0.090, 0.110]], [0.767, [0.774, 0.089, 0.109]], [0.769, [0.774, 0.089, 0.109]], [0.771, [0.769, 0.088, 0.108]], [0.773, [0.769, 0.088, 0.108]], [0.775, [0.765, 0.087, 0.107]], [0.777, [0.765, 0.087, 0.107]], [0.779, [0.760, 0.086, 0.106]], [0.781, [0.760, 0.086, 0.106]], [0.783, [0.755, 0.084, 0.105]], [0.785, [0.755, 0.084, 0.105]], [0.787, [0.750, 0.083, 0.104]], [0.789, [0.750, 0.083, 0.104]], [0.791, [0.746, 0.082, 0.103]], [0.793, [0.746, 0.082, 0.103]], [0.795, [0.741, 0.081, 0.102]], [0.796, [0.741, 0.081, 0.102]], [0.798, [0.736, 0.080, 0.101]], [0.800, [0.736, 0.080, 0.101]], [0.802, [0.732, 0.079, 0.100]], [0.804, [0.732, 0.079, 0.100]], [0.806, [0.727, 0.078, 0.099]], [0.808, [0.727, 0.078, 0.099]], [0.810, [0.722, 0.077, 0.098]], [0.812, [0.722, 0.077, 0.098]], [0.814, [0.718, 0.076, 0.097]], [0.816, [0.718, 0.076, 0.097]], [0.818, [0.713, 0.074, 0.096]], [0.820, [0.713, 0.074, 0.096]], [0.822, [0.708, 0.073, 0.095]], [0.824, [0.708, 0.073, 0.095]], [0.826, [0.704, 0.072, 0.094]], [0.828, [0.704, 0.072, 0.094]], [0.830, [0.699, 0.071, 0.093]], [0.832, [0.699, 0.071, 0.093]], [0.834, [0.694, 0.070, 0.092]], [0.836, [0.694, 0.070, 0.092]], [0.838, [0.690, 0.069, 0.091]], [0.840, [0.690, 0.069, 0.091]], [0.841, [0.685, 0.068, 0.090]], [0.843, [0.685, 0.068, 0.090]], [0.845, [0.680, 0.067, 0.089]], [0.847, [0.680, 0.067, 0.089]], [0.849, [0.676, 0.066, 0.088]], [0.851, [0.676, 0.066, 0.088]], [0.853, [0.671, 0.064, 0.087]], [0.855, [0.671, 0.064, 0.087]], [0.857, [0.666, 0.063, 0.086]], [0.859, [0.666, 0.063, 0.086]], [0.861, [0.662, 0.062, 0.085]], [0.863, [0.662, 0.062, 0.085]], [0.865, [0.657, 0.061, 0.084]], [0.867, [0.657, 0.061, 0.084]], [0.869, [0.652, 0.060, 0.083]], [0.871, [0.652, 0.060, 0.083]], [0.873, [0.648, 0.059, 0.082]], [0.875, [0.648, 0.059, 0.082]], [0.877, [0.640, 0.057, 0.081]], [0.879, [0.640, 0.057, 0.081]], [0.881, [0.633, 0.055, 0.081]], [0.883, [0.633, 0.055, 0.081]], [0.885, [0.625, 0.054, 0.080]], [0.886, [0.625, 0.054, 0.080]], [0.888, [0.618, 0.052, 0.079]], [0.890, [0.618, 0.052, 0.079]], [0.892, [0.610, 0.050, 0.078]], [0.894, [0.610, 0.050, 0.078]], [0.896, [0.602, 0.048, 0.077]], [0.898, [0.602, 0.048, 0.077]], [0.900, [0.595, 0.046, 0.076]], [0.902, [0.595, 0.046, 0.076]], [0.904, [0.587, 0.044, 0.075]], [0.906, [0.587, 0.044, 0.075]], [0.908, [0.579, 0.042, 0.074]], [0.910, [0.579, 0.042, 0.074]], [0.912, [0.572, 0.041, 0.073]], [0.914, [0.572, 0.041, 0.073]], [0.916, [0.564, 0.039, 0.072]], [0.918, [0.564, 0.039, 0.072]], [0.920, [0.556, 0.037, 0.071]], [0.922, [0.556, 0.037, 0.071]], [0.924, [0.549, 0.035, 0.070]], [0.926, [0.549, 0.035, 0.070]], [0.928, [0.541, 0.033, 0.069]], [0.930, [0.541, 0.033, 0.069]], [0.932, [0.534, 0.031, 0.068]], [0.933, [0.534, 0.031, 0.068]], [0.935, [0.526, 0.030, 0.067]], [0.937, [0.526, 0.030, 0.067]], [0.939, [0.518, 0.028, 0.066]], [0.941, [0.518, 0.028, 0.066]], [0.943, [0.511, 0.026, 0.065]], [0.945, [0.511, 0.026, 0.065]], [0.947, [0.503, 0.024, 0.064]], [0.949, [0.503, 0.024, 0.064]], [0.951, [0.495, 0.022, 0.063]], [0.953, [0.495, 0.022, 0.063]], [0.955, [0.488, 0.020, 0.062]], [0.957, [0.488, 0.020, 0.062]], [0.959, [0.480, 0.018, 0.061]], [0.961, [0.480, 0.018, 0.061]], [0.963, [0.473, 0.017, 0.060]], [0.965, [0.473, 0.017, 0.060]], [0.967, [0.465, 0.015, 0.059]], [0.969, [0.465, 0.015, 0.059]], [0.971, [0.457, 0.013, 0.058]], [0.973, [0.457, 0.013, 0.058]], [0.975, [0.450, 0.011, 0.057]], [0.977, [0.450, 0.011, 0.057]], [0.978, [0.442, 0.009, 0.056]], [0.980, [0.442, 0.009, 0.056]], [0.982, [0.434, 0.007, 0.055]], [0.984, [0.434, 0.007, 0.055]], [0.986, [0.427, 0.006, 0.054]], [0.988, [0.427, 0.006, 0.054]], [0.990, [0.419, 0.004, 0.053]], [0.992, [0.419, 0.004, 0.053]], [0.994, [0.412, 0.002, 0.052]], [0.996, [0.412, 0.002, 0.052]], [0.998, [0.404, 0.000, 0.051]], [1.000, [0.404, 0.000, 0.051]]];
+var YlGn = [[0.000, [1.000, 1.000, 0.898]], [0.002, [1.000, 1.000, 0.898]], [0.004, [0.999, 1.000, 0.893]], [0.006, [0.999, 1.000, 0.893]], [0.008, [0.998, 0.999, 0.887]], [0.010, [0.998, 0.999, 0.887]], [0.012, [0.997, 0.999, 0.882]], [0.014, [0.997, 0.999, 0.882]], [0.016, [0.996, 0.999, 0.876]], [0.018, [0.996, 0.999, 0.876]], [0.020, [0.995, 0.998, 0.871]], [0.022, [0.995, 0.998, 0.871]], [0.023, [0.994, 0.998, 0.866]], [0.025, [0.994, 0.998, 0.866]], [0.027, [0.993, 0.997, 0.860]], [0.029, [0.993, 0.997, 0.860]], [0.031, [0.992, 0.997, 0.855]], [0.033, [0.992, 0.997, 0.855]], [0.035, [0.991, 0.997, 0.849]], [0.037, [0.991, 0.997, 0.849]], [0.039, [0.990, 0.996, 0.844]], [0.041, [0.990, 0.996, 0.844]], [0.043, [0.989, 0.996, 0.838]], [0.045, [0.989, 0.996, 0.838]], [0.047, [0.988, 0.996, 0.833]], [0.049, [0.988, 0.996, 0.833]], [0.051, [0.987, 0.995, 0.828]], [0.053, [0.987, 0.995, 0.828]], [0.055, [0.986, 0.995, 0.822]], [0.057, [0.986, 0.995, 0.822]], [0.059, [0.985, 0.994, 0.817]], [0.061, [0.985, 0.994, 0.817]], [0.063, [0.984, 0.994, 0.811]], [0.065, [0.984, 0.994, 0.811]], [0.067, [0.983, 0.994, 0.806]], [0.068, [0.983, 0.994, 0.806]], [0.070, [0.982, 0.993, 0.801]], [0.072, [0.982, 0.993, 0.801]], [0.074, [0.981, 0.993, 0.795]], [0.076, [0.981, 0.993, 0.795]], [0.078, [0.980, 0.993, 0.790]], [0.080, [0.980, 0.993, 0.790]], [0.082, [0.979, 0.992, 0.784]], [0.084, [0.979, 0.992, 0.784]], [0.086, [0.978, 0.992, 0.779]], [0.088, [0.978, 0.992, 0.779]], [0.090, [0.977, 0.992, 0.774]], [0.092, [0.977, 0.992, 0.774]], [0.094, [0.976, 0.991, 0.768]], [0.096, [0.976, 0.991, 0.768]], [0.098, [0.975, 0.991, 0.763]], [0.100, [0.975, 0.991, 0.763]], [0.102, [0.974, 0.990, 0.757]], [0.104, [0.974, 0.990, 0.757]], [0.106, [0.973, 0.990, 0.752]], [0.108, [0.973, 0.990, 0.752]], [0.110, [0.972, 0.990, 0.746]], [0.112, [0.972, 0.990, 0.746]], [0.114, [0.971, 0.989, 0.741]], [0.115, [0.971, 0.989, 0.741]], [0.117, [0.970, 0.989, 0.736]], [0.119, [0.970, 0.989, 0.736]], [0.121, [0.969, 0.989, 0.730]], [0.123, [0.969, 0.989, 0.730]], [0.125, [0.968, 0.988, 0.725]], [0.127, [0.968, 0.988, 0.725]], [0.129, [0.964, 0.987, 0.722]], [0.131, [0.964, 0.987, 0.722]], [0.133, [0.961, 0.985, 0.720]], [0.135, [0.961, 0.985, 0.720]], [0.137, [0.957, 0.984, 0.717]], [0.139, [0.957, 0.984, 0.717]], [0.141, [0.953, 0.982, 0.714]], [0.143, [0.953, 0.982, 0.714]], [0.145, [0.950, 0.981, 0.712]], [0.147, [0.950, 0.981, 0.712]], [0.149, [0.946, 0.979, 0.709]], [0.151, [0.946, 0.979, 0.709]], [0.153, [0.942, 0.978, 0.706]], [0.155, [0.942, 0.978, 0.706]], [0.157, [0.939, 0.976, 0.703]], [0.159, [0.939, 0.976, 0.703]], [0.160, [0.935, 0.975, 0.701]], [0.162, [0.935, 0.975, 0.701]], [0.164, [0.931, 0.973, 0.698]], [0.166, [0.931, 0.973, 0.698]], [0.168, [0.928, 0.972, 0.695]], [0.170, [0.928, 0.972, 0.695]], [0.172, [0.924, 0.970, 0.693]], [0.174, [0.924, 0.970, 0.693]], [0.176, [0.920, 0.969, 0.690]], [0.178, [0.920, 0.969, 0.690]], [0.180, [0.916, 0.967, 0.687]], [0.182, [0.916, 0.967, 0.687]], [0.184, [0.913, 0.966, 0.685]], [0.186, [0.913, 0.966, 0.685]], [0.188, [0.909, 0.964, 0.682]], [0.190, [0.909, 0.964, 0.682]], [0.192, [0.905, 0.963, 0.679]], [0.194, [0.905, 0.963, 0.679]], [0.196, [0.902, 0.961, 0.676]], [0.198, [0.902, 0.961, 0.676]], [0.200, [0.898, 0.960, 0.674]], [0.202, [0.898, 0.960, 0.674]], [0.204, [0.894, 0.959, 0.671]], [0.205, [0.894, 0.959, 0.671]], [0.207, [0.891, 0.957, 0.668]], [0.209, [0.891, 0.957, 0.668]], [0.211, [0.887, 0.956, 0.666]], [0.213, [0.887, 0.956, 0.666]], [0.215, [0.883, 0.954, 0.663]], [0.217, [0.883, 0.954, 0.663]], [0.219, [0.880, 0.953, 0.660]], [0.221, [0.880, 0.953, 0.660]], [0.223, [0.876, 0.951, 0.657]], [0.225, [0.876, 0.951, 0.657]], [0.227, [0.872, 0.950, 0.655]], [0.229, [0.872, 0.950, 0.655]], [0.231, [0.869, 0.948, 0.652]], [0.233, [0.869, 0.948, 0.652]], [0.235, [0.865, 0.947, 0.649]], [0.237, [0.865, 0.947, 0.649]], [0.239, [0.861, 0.945, 0.647]], [0.241, [0.861, 0.945, 0.647]], [0.243, [0.857, 0.944, 0.644]], [0.245, [0.857, 0.944, 0.644]], [0.247, [0.854, 0.942, 0.641]], [0.249, [0.854, 0.942, 0.641]], [0.250, [0.850, 0.941, 0.639]], [0.252, [0.850, 0.941, 0.639]], [0.254, [0.844, 0.938, 0.636]], [0.256, [0.844, 0.938, 0.636]], [0.258, [0.839, 0.936, 0.633]], [0.260, [0.839, 0.936, 0.633]], [0.262, [0.833, 0.934, 0.631]], [0.264, [0.833, 0.934, 0.631]], [0.266, [0.828, 0.931, 0.628]], [0.268, [0.828, 0.931, 0.628]], [0.270, [0.823, 0.929, 0.626]], [0.272, [0.823, 0.929, 0.626]], [0.274, [0.817, 0.927, 0.623]], [0.276, [0.817, 0.927, 0.623]], [0.278, [0.812, 0.924, 0.620]], [0.280, [0.812, 0.924, 0.620]], [0.282, [0.806, 0.922, 0.618]], [0.284, [0.806, 0.922, 0.618]], [0.286, [0.801, 0.920, 0.615]], [0.288, [0.801, 0.920, 0.615]], [0.290, [0.795, 0.917, 0.613]], [0.292, [0.795, 0.917, 0.613]], [0.294, [0.790, 0.915, 0.610]], [0.295, [0.790, 0.915, 0.610]], [0.297, [0.785, 0.913, 0.608]], [0.299, [0.785, 0.913, 0.608]], [0.301, [0.779, 0.910, 0.605]], [0.303, [0.779, 0.910, 0.605]], [0.305, [0.774, 0.908, 0.602]], [0.307, [0.774, 0.908, 0.602]], [0.309, [0.768, 0.906, 0.600]], [0.311, [0.768, 0.906, 0.600]], [0.313, [0.763, 0.903, 0.597]], [0.315, [0.763, 0.903, 0.597]], [0.317, [0.758, 0.901, 0.595]], [0.319, [0.758, 0.901, 0.595]], [0.321, [0.752, 0.899, 0.592]], [0.323, [0.752, 0.899, 0.592]], [0.325, [0.747, 0.896, 0.589]], [0.327, [0.747, 0.896, 0.589]], [0.329, [0.741, 0.894, 0.587]], [0.331, [0.741, 0.894, 0.587]], [0.333, [0.736, 0.892, 0.584]], [0.335, [0.736, 0.892, 0.584]], [0.337, [0.731, 0.889, 0.582]], [0.339, [0.731, 0.889, 0.582]], [0.341, [0.725, 0.887, 0.579]], [0.342, [0.725, 0.887, 0.579]], [0.344, [0.720, 0.884, 0.577]], [0.346, [0.720, 0.884, 0.577]], [0.348, [0.714, 0.882, 0.574]], [0.350, [0.714, 0.882, 0.574]], [0.352, [0.709, 0.880, 0.571]], [0.354, [0.709, 0.880, 0.571]], [0.356, [0.703, 0.877, 0.569]], [0.358, [0.703, 0.877, 0.569]], [0.360, [0.698, 0.875, 0.566]], [0.362, [0.698, 0.875, 0.566]], [0.364, [0.693, 0.873, 0.564]], [0.366, [0.693, 0.873, 0.564]], [0.368, [0.687, 0.870, 0.561]], [0.370, [0.687, 0.870, 0.561]], [0.372, [0.682, 0.868, 0.558]], [0.374, [0.682, 0.868, 0.558]], [0.376, [0.676, 0.866, 0.556]], [0.378, [0.676, 0.866, 0.556]], [0.380, [0.669, 0.863, 0.553]], [0.382, [0.669, 0.863, 0.553]], [0.384, [0.663, 0.860, 0.551]], [0.386, [0.663, 0.860, 0.551]], [0.387, [0.656, 0.857, 0.548]], [0.389, [0.656, 0.857, 0.548]], [0.391, [0.650, 0.854, 0.546]], [0.393, [0.650, 0.854, 0.546]], [0.395, [0.643, 0.851, 0.543]], [0.397, [0.643, 0.851, 0.543]], [0.399, [0.637, 0.849, 0.540]], [0.401, [0.637, 0.849, 0.540]], [0.403, [0.630, 0.846, 0.538]], [0.405, [0.630, 0.846, 0.538]], [0.407, [0.624, 0.843, 0.535]], [0.409, [0.624, 0.843, 0.535]], [0.411, [0.617, 0.840, 0.533]], [0.413, [0.617, 0.840, 0.533]], [0.415, [0.611, 0.837, 0.530]], [0.417, [0.611, 0.837, 0.530]], [0.419, [0.604, 0.834, 0.527]], [0.421, [0.604, 0.834, 0.527]], [0.423, [0.598, 0.832, 0.525]], [0.425, [0.598, 0.832, 0.525]], [0.427, [0.591, 0.829, 0.522]], [0.429, [0.591, 0.829, 0.522]], [0.431, [0.585, 0.826, 0.520]], [0.432, [0.585, 0.826, 0.520]], [0.434, [0.578, 0.823, 0.517]], [0.436, [0.578, 0.823, 0.517]], [0.438, [0.572, 0.820, 0.515]], [0.440, [0.572, 0.820, 0.515]], [0.442, [0.565, 0.818, 0.512]], [0.444, [0.565, 0.818, 0.512]], [0.446, [0.559, 0.815, 0.509]], [0.448, [0.559, 0.815, 0.509]], [0.450, [0.552, 0.812, 0.507]], [0.452, [0.552, 0.812, 0.507]], [0.454, [0.546, 0.809, 0.504]], [0.456, [0.546, 0.809, 0.504]], [0.458, [0.539, 0.806, 0.502]], [0.460, [0.539, 0.806, 0.502]], [0.462, [0.533, 0.803, 0.499]], [0.464, [0.533, 0.803, 0.499]], [0.466, [0.526, 0.801, 0.496]], [0.468, [0.526, 0.801, 0.496]], [0.470, [0.519, 0.798, 0.494]], [0.472, [0.519, 0.798, 0.494]], [0.474, [0.513, 0.795, 0.491]], [0.476, [0.513, 0.795, 0.491]], [0.477, [0.506, 0.792, 0.489]], [0.479, [0.506, 0.792, 0.489]], [0.481, [0.500, 0.789, 0.486]], [0.483, [0.500, 0.789, 0.486]], [0.485, [0.493, 0.786, 0.484]], [0.487, [0.493, 0.786, 0.484]], [0.489, [0.487, 0.784, 0.481]], [0.491, [0.487, 0.784, 0.481]], [0.493, [0.480, 0.781, 0.478]], [0.495, [0.480, 0.781, 0.478]], [0.497, [0.474, 0.778, 0.476]], [0.499, [0.474, 0.778, 0.476]], [0.501, [0.467, 0.775, 0.473]], [0.503, [0.467, 0.775, 0.473]], [0.505, [0.460, 0.771, 0.469]], [0.507, [0.460, 0.771, 0.469]], [0.509, [0.454, 0.768, 0.466]], [0.511, [0.454, 0.768, 0.466]], [0.513, [0.447, 0.765, 0.462]], [0.515, [0.447, 0.765, 0.462]], [0.517, [0.440, 0.762, 0.459]], [0.519, [0.440, 0.762, 0.459]], [0.521, [0.433, 0.758, 0.456]], [0.523, [0.433, 0.758, 0.456]], [0.524, [0.427, 0.755, 0.452]], [0.526, [0.427, 0.755, 0.452]], [0.528, [0.420, 0.752, 0.449]], [0.530, [0.420, 0.752, 0.449]], [0.532, [0.413, 0.748, 0.445]], [0.534, [0.413, 0.748, 0.445]], [0.536, [0.406, 0.745, 0.442]], [0.538, [0.406, 0.745, 0.442]], [0.540, [0.400, 0.742, 0.438]], [0.542, [0.400, 0.742, 0.438]], [0.544, [0.393, 0.738, 0.435]], [0.546, [0.393, 0.738, 0.435]], [0.548, [0.386, 0.735, 0.431]], [0.550, [0.386, 0.735, 0.431]], [0.552, [0.379, 0.732, 0.428]], [0.554, [0.379, 0.732, 0.428]], [0.556, [0.372, 0.728, 0.425]], [0.558, [0.372, 0.728, 0.425]], [0.560, [0.366, 0.725, 0.421]], [0.562, [0.366, 0.725, 0.421]], [0.564, [0.359, 0.722, 0.418]], [0.566, [0.359, 0.722, 0.418]], [0.568, [0.352, 0.718, 0.414]], [0.569, [0.352, 0.718, 0.414]], [0.571, [0.345, 0.715, 0.411]], [0.573, [0.345, 0.715, 0.411]], [0.575, [0.339, 0.712, 0.407]], [0.577, [0.339, 0.712, 0.407]], [0.579, [0.332, 0.708, 0.404]], [0.581, [0.332, 0.708, 0.404]], [0.583, [0.325, 0.705, 0.400]], [0.585, [0.325, 0.705, 0.400]], [0.587, [0.318, 0.702, 0.397]], [0.589, [0.318, 0.702, 0.397]], [0.591, [0.312, 0.698, 0.394]], [0.593, [0.312, 0.698, 0.394]], [0.595, [0.305, 0.695, 0.390]], [0.597, [0.305, 0.695, 0.390]], [0.599, [0.298, 0.692, 0.387]], [0.601, [0.298, 0.692, 0.387]], [0.603, [0.291, 0.688, 0.383]], [0.605, [0.291, 0.688, 0.383]], [0.607, [0.285, 0.685, 0.380]], [0.609, [0.285, 0.685, 0.380]], [0.611, [0.278, 0.682, 0.376]], [0.613, [0.278, 0.682, 0.376]], [0.614, [0.271, 0.678, 0.373]], [0.616, [0.271, 0.678, 0.373]], [0.618, [0.264, 0.675, 0.369]], [0.620, [0.264, 0.675, 0.369]], [0.622, [0.257, 0.672, 0.366]], [0.624, [0.257, 0.672, 0.366]], [0.626, [0.253, 0.668, 0.363]], [0.628, [0.253, 0.668, 0.363]], [0.630, [0.249, 0.663, 0.360]], [0.632, [0.249, 0.663, 0.360]], [0.634, [0.245, 0.658, 0.356]], [0.636, [0.245, 0.658, 0.356]], [0.638, [0.242, 0.653, 0.353]], [0.640, [0.242, 0.653, 0.353]], [0.642, [0.238, 0.648, 0.350]], [0.644, [0.238, 0.648, 0.350]], [0.646, [0.234, 0.644, 0.347]], [0.648, [0.234, 0.644, 0.347]], [0.650, [0.230, 0.639, 0.344]], [0.652, [0.230, 0.639, 0.344]], [0.654, [0.227, 0.634, 0.340]], [0.656, [0.227, 0.634, 0.340]], [0.658, [0.223, 0.629, 0.337]], [0.659, [0.223, 0.629, 0.337]], [0.661, [0.219, 0.624, 0.334]], [0.663, [0.219, 0.624, 0.334]], [0.665, [0.216, 0.620, 0.331]], [0.667, [0.216, 0.620, 0.331]], [0.669, [0.212, 0.615, 0.328]], [0.671, [0.212, 0.615, 0.328]], [0.673, [0.208, 0.610, 0.324]], [0.675, [0.208, 0.610, 0.324]], [0.677, [0.205, 0.605, 0.321]], [0.679, [0.205, 0.605, 0.321]], [0.681, [0.201, 0.600, 0.318]], [0.683, [0.201, 0.600, 0.318]], [0.685, [0.197, 0.596, 0.315]], [0.687, [0.197, 0.596, 0.315]], [0.689, [0.194, 0.591, 0.312]], [0.691, [0.194, 0.591, 0.312]], [0.693, [0.190, 0.586, 0.308]], [0.695, [0.190, 0.586, 0.308]], [0.697, [0.186, 0.581, 0.305]], [0.699, [0.186, 0.581, 0.305]], [0.701, [0.182, 0.576, 0.302]], [0.703, [0.182, 0.576, 0.302]], [0.705, [0.179, 0.572, 0.299]], [0.706, [0.179, 0.572, 0.299]], [0.708, [0.175, 0.567, 0.296]], [0.710, [0.175, 0.567, 0.296]], [0.712, [0.171, 0.562, 0.292]], [0.714, [0.171, 0.562, 0.292]], [0.716, [0.168, 0.557, 0.289]], [0.718, [0.168, 0.557, 0.289]], [0.720, [0.164, 0.552, 0.286]], [0.722, [0.164, 0.552, 0.286]], [0.724, [0.160, 0.548, 0.283]], [0.726, [0.160, 0.548, 0.283]], [0.728, [0.157, 0.543, 0.280]], [0.730, [0.157, 0.543, 0.280]], [0.732, [0.153, 0.538, 0.276]], [0.734, [0.153, 0.538, 0.276]], [0.736, [0.149, 0.533, 0.273]], [0.738, [0.149, 0.533, 0.273]], [0.740, [0.146, 0.528, 0.270]], [0.742, [0.146, 0.528, 0.270]], [0.744, [0.142, 0.524, 0.267]], [0.746, [0.142, 0.524, 0.267]], [0.748, [0.138, 0.519, 0.264]], [0.750, [0.138, 0.519, 0.264]], [0.751, [0.134, 0.515, 0.262]], [0.753, [0.134, 0.515, 0.262]], [0.755, [0.130, 0.512, 0.260]], [0.757, [0.130, 0.512, 0.260]], [0.759, [0.125, 0.508, 0.259]], [0.761, [0.125, 0.508, 0.259]], [0.763, [0.121, 0.505, 0.257]], [0.765, [0.121, 0.505, 0.257]], [0.767, [0.117, 0.501, 0.256]], [0.769, [0.117, 0.501, 0.256]], [0.771, [0.112, 0.498, 0.254]], [0.773, [0.112, 0.498, 0.254]], [0.775, [0.108, 0.494, 0.253]], [0.777, [0.108, 0.494, 0.253]], [0.779, [0.104, 0.491, 0.251]], [0.781, [0.104, 0.491, 0.251]], [0.783, [0.100, 0.488, 0.250]], [0.785, [0.100, 0.488, 0.250]], [0.787, [0.095, 0.484, 0.248]], [0.789, [0.095, 0.484, 0.248]], [0.791, [0.091, 0.481, 0.247]], [0.793, [0.091, 0.481, 0.247]], [0.795, [0.087, 0.477, 0.245]], [0.796, [0.087, 0.477, 0.245]], [0.798, [0.082, 0.474, 0.244]], [0.800, [0.082, 0.474, 0.244]], [0.802, [0.078, 0.470, 0.242]], [0.804, [0.078, 0.470, 0.242]], [0.806, [0.074, 0.467, 0.241]], [0.808, [0.074, 0.467, 0.241]], [0.810, [0.069, 0.463, 0.239]], [0.812, [0.069, 0.463, 0.239]], [0.814, [0.065, 0.460, 0.238]], [0.816, [0.065, 0.460, 0.238]], [0.818, [0.061, 0.457, 0.237]], [0.820, [0.061, 0.457, 0.237]], [0.822, [0.057, 0.453, 0.235]], [0.824, [0.057, 0.453, 0.235]], [0.826, [0.052, 0.450, 0.234]], [0.828, [0.052, 0.450, 0.234]], [0.830, [0.048, 0.446, 0.232]], [0.832, [0.048, 0.446, 0.232]], [0.834, [0.044, 0.443, 0.231]], [0.836, [0.044, 0.443, 0.231]], [0.838, [0.039, 0.439, 0.229]], [0.840, [0.039, 0.439, 0.229]], [0.841, [0.035, 0.436, 0.228]], [0.843, [0.035, 0.436, 0.228]], [0.845, [0.031, 0.432, 0.226]], [0.847, [0.031, 0.432, 0.226]], [0.849, [0.026, 0.429, 0.225]], [0.851, [0.026, 0.429, 0.225]], [0.853, [0.022, 0.425, 0.223]], [0.855, [0.022, 0.425, 0.223]], [0.857, [0.018, 0.422, 0.222]], [0.859, [0.018, 0.422, 0.222]], [0.861, [0.013, 0.419, 0.220]], [0.863, [0.013, 0.419, 0.220]], [0.865, [0.009, 0.415, 0.219]], [0.867, [0.009, 0.415, 0.219]], [0.869, [0.005, 0.412, 0.217]], [0.871, [0.005, 0.412, 0.217]], [0.873, [0.001, 0.408, 0.216]], [0.875, [0.001, 0.408, 0.216]], [0.877, [0.000, 0.404, 0.214]], [0.879, [0.000, 0.404, 0.214]], [0.881, [0.000, 0.400, 0.212]], [0.883, [0.000, 0.400, 0.212]], [0.885, [0.000, 0.395, 0.211]], [0.886, [0.000, 0.395, 0.211]], [0.888, [0.000, 0.391, 0.209]], [0.890, [0.000, 0.391, 0.209]], [0.892, [0.000, 0.387, 0.207]], [0.894, [0.000, 0.387, 0.207]], [0.896, [0.000, 0.383, 0.206]], [0.898, [0.000, 0.383, 0.206]], [0.900, [0.000, 0.378, 0.204]], [0.902, [0.000, 0.378, 0.204]], [0.904, [0.000, 0.374, 0.202]], [0.906, [0.000, 0.374, 0.202]], [0.908, [0.000, 0.370, 0.200]], [0.910, [0.000, 0.370, 0.200]], [0.912, [0.000, 0.365, 0.199]], [0.914, [0.000, 0.365, 0.199]], [0.916, [0.000, 0.361, 0.197]], [0.918, [0.000, 0.361, 0.197]], [0.920, [0.000, 0.357, 0.195]], [0.922, [0.000, 0.357, 0.195]], [0.924, [0.000, 0.352, 0.194]], [0.926, [0.000, 0.352, 0.194]], [0.928, [0.000, 0.348, 0.192]], [0.930, [0.000, 0.348, 0.192]], [0.932, [0.000, 0.344, 0.190]], [0.933, [0.000, 0.344, 0.190]], [0.935, [0.000, 0.339, 0.188]], [0.937, [0.000, 0.339, 0.188]], [0.939, [0.000, 0.335, 0.187]], [0.941, [0.000, 0.335, 0.187]], [0.943, [0.000, 0.331, 0.185]], [0.945, [0.000, 0.331, 0.185]], [0.947, [0.000, 0.327, 0.183]], [0.949, [0.000, 0.327, 0.183]], [0.951, [0.000, 0.322, 0.181]], [0.953, [0.000, 0.322, 0.181]], [0.955, [0.000, 0.318, 0.180]], [0.957, [0.000, 0.318, 0.180]], [0.959, [0.000, 0.314, 0.178]], [0.961, [0.000, 0.314, 0.178]], [0.963, [0.000, 0.309, 0.176]], [0.965, [0.000, 0.309, 0.176]], [0.967, [0.000, 0.305, 0.175]], [0.969, [0.000, 0.305, 0.175]], [0.971, [0.000, 0.301, 0.173]], [0.973, [0.000, 0.301, 0.173]], [0.975, [0.000, 0.296, 0.171]], [0.977, [0.000, 0.296, 0.171]], [0.978, [0.000, 0.292, 0.169]], [0.980, [0.000, 0.292, 0.169]], [0.982, [0.000, 0.288, 0.168]], [0.984, [0.000, 0.288, 0.168]], [0.986, [0.000, 0.284, 0.166]], [0.988, [0.000, 0.284, 0.166]], [0.990, [0.000, 0.279, 0.164]], [0.992, [0.000, 0.279, 0.164]], [0.994, [0.000, 0.275, 0.163]], [0.996, [0.000, 0.275, 0.163]], [0.998, [0.000, 0.271, 0.161]], [1.000, [0.000, 0.271, 0.161]]];
+var YlGnBu = [[0.000, [1.000, 1.000, 0.851]], [0.002, [1.000, 1.000, 0.851]], [0.004, [0.998, 0.999, 0.846]], [0.006, [0.998, 0.999, 0.846]], [0.008, [0.996, 0.998, 0.841]], [0.010, [0.996, 0.998, 0.841]], [0.012, [0.993, 0.997, 0.836]], [0.014, [0.993, 0.997, 0.836]], [0.016, [0.991, 0.997, 0.831]], [0.018, [0.991, 0.997, 0.831]], [0.020, [0.989, 0.996, 0.826]], [0.022, [0.989, 0.996, 0.826]], [0.023, [0.987, 0.995, 0.821]], [0.025, [0.987, 0.995, 0.821]], [0.027, [0.984, 0.994, 0.817]], [0.029, [0.984, 0.994, 0.817]], [0.031, [0.982, 0.993, 0.812]], [0.033, [0.982, 0.993, 0.812]], [0.035, [0.980, 0.992, 0.807]], [0.037, [0.980, 0.992, 0.807]], [0.039, [0.978, 0.991, 0.802]], [0.041, [0.978, 0.991, 0.802]], [0.043, [0.976, 0.991, 0.797]], [0.045, [0.976, 0.991, 0.797]], [0.047, [0.973, 0.990, 0.792]], [0.049, [0.973, 0.990, 0.792]], [0.051, [0.971, 0.989, 0.787]], [0.053, [0.971, 0.989, 0.787]], [0.055, [0.969, 0.988, 0.782]], [0.057, [0.969, 0.988, 0.782]], [0.059, [0.967, 0.987, 0.777]], [0.061, [0.967, 0.987, 0.777]], [0.063, [0.965, 0.986, 0.772]], [0.065, [0.965, 0.986, 0.772]], [0.067, [0.962, 0.985, 0.767]], [0.068, [0.962, 0.985, 0.767]], [0.070, [0.960, 0.984, 0.762]], [0.072, [0.960, 0.984, 0.762]], [0.074, [0.958, 0.984, 0.757]], [0.076, [0.958, 0.984, 0.757]], [0.078, [0.956, 0.983, 0.753]], [0.080, [0.956, 0.983, 0.753]], [0.082, [0.953, 0.982, 0.748]], [0.084, [0.953, 0.982, 0.748]], [0.086, [0.951, 0.981, 0.743]], [0.088, [0.951, 0.981, 0.743]], [0.090, [0.949, 0.980, 0.738]], [0.092, [0.949, 0.980, 0.738]], [0.094, [0.947, 0.979, 0.733]], [0.096, [0.947, 0.979, 0.733]], [0.098, [0.945, 0.978, 0.728]], [0.100, [0.945, 0.978, 0.728]], [0.102, [0.942, 0.978, 0.723]], [0.104, [0.942, 0.978, 0.723]], [0.106, [0.940, 0.977, 0.718]], [0.108, [0.940, 0.977, 0.718]], [0.110, [0.938, 0.976, 0.713]], [0.112, [0.938, 0.976, 0.713]], [0.114, [0.936, 0.975, 0.708]], [0.115, [0.936, 0.975, 0.708]], [0.117, [0.934, 0.974, 0.703]], [0.119, [0.934, 0.974, 0.703]], [0.121, [0.931, 0.973, 0.698]], [0.123, [0.931, 0.973, 0.698]], [0.125, [0.929, 0.972, 0.694]], [0.127, [0.929, 0.972, 0.694]], [0.129, [0.924, 0.970, 0.695]], [0.131, [0.924, 0.970, 0.695]], [0.133, [0.919, 0.969, 0.695]], [0.135, [0.919, 0.969, 0.695]], [0.137, [0.915, 0.967, 0.695]], [0.139, [0.915, 0.967, 0.695]], [0.141, [0.910, 0.965, 0.696]], [0.143, [0.910, 0.965, 0.696]], [0.145, [0.905, 0.963, 0.696]], [0.147, [0.905, 0.963, 0.696]], [0.149, [0.901, 0.961, 0.696]], [0.151, [0.901, 0.961, 0.696]], [0.153, [0.896, 0.959, 0.697]], [0.155, [0.896, 0.959, 0.697]], [0.157, [0.891, 0.958, 0.697]], [0.159, [0.891, 0.958, 0.697]], [0.160, [0.887, 0.956, 0.697]], [0.162, [0.887, 0.956, 0.697]], [0.164, [0.882, 0.954, 0.698]], [0.166, [0.882, 0.954, 0.698]], [0.168, [0.877, 0.952, 0.698]], [0.170, [0.877, 0.952, 0.698]], [0.172, [0.873, 0.950, 0.699]], [0.174, [0.873, 0.950, 0.699]], [0.176, [0.868, 0.948, 0.699]], [0.178, [0.868, 0.948, 0.699]], [0.180, [0.863, 0.946, 0.699]], [0.182, [0.863, 0.946, 0.699]], [0.184, [0.859, 0.945, 0.700]], [0.186, [0.859, 0.945, 0.700]], [0.188, [0.854, 0.943, 0.700]], [0.190, [0.854, 0.943, 0.700]], [0.192, [0.849, 0.941, 0.700]], [0.194, [0.849, 0.941, 0.700]], [0.196, [0.845, 0.939, 0.701]], [0.198, [0.845, 0.939, 0.701]], [0.200, [0.840, 0.937, 0.701]], [0.202, [0.840, 0.937, 0.701]], [0.204, [0.835, 0.935, 0.702]], [0.205, [0.835, 0.935, 0.702]], [0.207, [0.831, 0.934, 0.702]], [0.209, [0.831, 0.934, 0.702]], [0.211, [0.826, 0.932, 0.702]], [0.213, [0.826, 0.932, 0.702]], [0.215, [0.821, 0.930, 0.703]], [0.217, [0.821, 0.930, 0.703]], [0.219, [0.817, 0.928, 0.703]], [0.221, [0.817, 0.928, 0.703]], [0.223, [0.812, 0.926, 0.703]], [0.225, [0.812, 0.926, 0.703]], [0.227, [0.807, 0.924, 0.704]], [0.229, [0.807, 0.924, 0.704]], [0.231, [0.803, 0.922, 0.704]], [0.233, [0.803, 0.922, 0.704]], [0.235, [0.798, 0.921, 0.704]], [0.237, [0.798, 0.921, 0.704]], [0.239, [0.793, 0.919, 0.705]], [0.241, [0.793, 0.919, 0.705]], [0.243, [0.789, 0.917, 0.705]], [0.245, [0.789, 0.917, 0.705]], [0.247, [0.784, 0.915, 0.706]], [0.249, [0.784, 0.915, 0.706]], [0.250, [0.778, 0.913, 0.706]], [0.252, [0.778, 0.913, 0.706]], [0.254, [0.769, 0.909, 0.707]], [0.256, [0.769, 0.909, 0.707]], [0.258, [0.760, 0.906, 0.708]], [0.260, [0.760, 0.906, 0.708]], [0.262, [0.752, 0.903, 0.709]], [0.264, [0.752, 0.903, 0.709]], [0.266, [0.743, 0.899, 0.710]], [0.268, [0.743, 0.899, 0.710]], [0.270, [0.734, 0.896, 0.710]], [0.272, [0.734, 0.896, 0.710]], [0.274, [0.725, 0.892, 0.711]], [0.276, [0.725, 0.892, 0.711]], [0.278, [0.716, 0.889, 0.712]], [0.280, [0.716, 0.889, 0.712]], [0.282, [0.707, 0.885, 0.713]], [0.284, [0.707, 0.885, 0.713]], [0.286, [0.698, 0.882, 0.714]], [0.288, [0.698, 0.882, 0.714]], [0.290, [0.690, 0.878, 0.715]], [0.292, [0.690, 0.878, 0.715]], [0.294, [0.681, 0.875, 0.716]], [0.295, [0.681, 0.875, 0.716]], [0.297, [0.672, 0.872, 0.716]], [0.299, [0.672, 0.872, 0.716]], [0.301, [0.663, 0.868, 0.717]], [0.303, [0.663, 0.868, 0.717]], [0.305, [0.654, 0.865, 0.718]], [0.307, [0.654, 0.865, 0.718]], [0.309, [0.645, 0.861, 0.719]], [0.311, [0.645, 0.861, 0.719]], [0.313, [0.636, 0.858, 0.720]], [0.315, [0.636, 0.858, 0.720]], [0.317, [0.628, 0.854, 0.721]], [0.319, [0.628, 0.854, 0.721]], [0.321, [0.619, 0.851, 0.722]], [0.323, [0.619, 0.851, 0.722]], [0.325, [0.610, 0.847, 0.722]], [0.327, [0.610, 0.847, 0.722]], [0.329, [0.601, 0.844, 0.723]], [0.331, [0.601, 0.844, 0.723]], [0.333, [0.592, 0.841, 0.724]], [0.335, [0.592, 0.841, 0.724]], [0.337, [0.583, 0.837, 0.725]], [0.339, [0.583, 0.837, 0.725]], [0.341, [0.574, 0.834, 0.726]], [0.342, [0.574, 0.834, 0.726]], [0.344, [0.566, 0.830, 0.727]], [0.346, [0.566, 0.830, 0.727]], [0.348, [0.557, 0.827, 0.728]], [0.350, [0.557, 0.827, 0.728]], [0.352, [0.548, 0.823, 0.728]], [0.354, [0.548, 0.823, 0.728]], [0.356, [0.539, 0.820, 0.729]], [0.358, [0.539, 0.820, 0.729]], [0.360, [0.530, 0.816, 0.730]], [0.362, [0.530, 0.816, 0.730]], [0.364, [0.521, 0.813, 0.731]], [0.366, [0.521, 0.813, 0.731]], [0.368, [0.512, 0.810, 0.732]], [0.370, [0.512, 0.810, 0.732]], [0.372, [0.504, 0.806, 0.733]], [0.374, [0.504, 0.806, 0.733]], [0.376, [0.495, 0.803, 0.734]], [0.378, [0.495, 0.803, 0.734]], [0.380, [0.488, 0.800, 0.735]], [0.382, [0.488, 0.800, 0.735]], [0.384, [0.480, 0.797, 0.736]], [0.386, [0.480, 0.797, 0.736]], [0.387, [0.472, 0.794, 0.737]], [0.389, [0.472, 0.794, 0.737]], [0.391, [0.465, 0.792, 0.738]], [0.393, [0.465, 0.792, 0.738]], [0.395, [0.457, 0.789, 0.739]], [0.397, [0.457, 0.789, 0.739]], [0.399, [0.449, 0.786, 0.740]], [0.401, [0.449, 0.786, 0.740]], [0.403, [0.442, 0.783, 0.741]], [0.405, [0.442, 0.783, 0.741]], [0.407, [0.434, 0.780, 0.743]], [0.409, [0.434, 0.780, 0.743]], [0.411, [0.427, 0.777, 0.744]], [0.413, [0.427, 0.777, 0.744]], [0.415, [0.419, 0.775, 0.745]], [0.417, [0.419, 0.775, 0.745]], [0.419, [0.411, 0.772, 0.746]], [0.421, [0.411, 0.772, 0.746]], [0.423, [0.404, 0.769, 0.747]], [0.425, [0.404, 0.769, 0.747]], [0.427, [0.396, 0.766, 0.748]], [0.429, [0.396, 0.766, 0.748]], [0.431, [0.388, 0.763, 0.749]], [0.432, [0.388, 0.763, 0.749]], [0.434, [0.381, 0.760, 0.750]], [0.436, [0.381, 0.760, 0.750]], [0.438, [0.373, 0.758, 0.751]], [0.440, [0.373, 0.758, 0.751]], [0.442, [0.366, 0.755, 0.753]], [0.444, [0.366, 0.755, 0.753]], [0.446, [0.358, 0.752, 0.754]], [0.448, [0.358, 0.752, 0.754]], [0.450, [0.350, 0.749, 0.755]], [0.452, [0.350, 0.749, 0.755]], [0.454, [0.343, 0.746, 0.756]], [0.456, [0.343, 0.746, 0.756]], [0.458, [0.335, 0.743, 0.757]], [0.460, [0.335, 0.743, 0.757]], [0.462, [0.327, 0.741, 0.758]], [0.464, [0.327, 0.741, 0.758]], [0.466, [0.320, 0.738, 0.759]], [0.468, [0.320, 0.738, 0.759]], [0.470, [0.312, 0.735, 0.760]], [0.472, [0.312, 0.735, 0.760]], [0.474, [0.304, 0.732, 0.761]], [0.476, [0.304, 0.732, 0.761]], [0.477, [0.297, 0.729, 0.763]], [0.479, [0.297, 0.729, 0.763]], [0.481, [0.289, 0.726, 0.764]], [0.483, [0.289, 0.726, 0.764]], [0.485, [0.282, 0.724, 0.765]], [0.487, [0.282, 0.724, 0.765]], [0.489, [0.274, 0.721, 0.766]], [0.491, [0.274, 0.721, 0.766]], [0.493, [0.266, 0.718, 0.767]], [0.495, [0.266, 0.718, 0.767]], [0.497, [0.259, 0.715, 0.768]], [0.499, [0.259, 0.715, 0.768]], [0.501, [0.253, 0.711, 0.768]], [0.503, [0.253, 0.711, 0.768]], [0.505, [0.248, 0.707, 0.768]], [0.507, [0.248, 0.707, 0.768]], [0.509, [0.244, 0.702, 0.767]], [0.511, [0.244, 0.702, 0.767]], [0.513, [0.239, 0.698, 0.767]], [0.515, [0.239, 0.698, 0.767]], [0.517, [0.235, 0.693, 0.766]], [0.519, [0.235, 0.693, 0.766]], [0.521, [0.231, 0.689, 0.766]], [0.523, [0.231, 0.689, 0.766]], [0.524, [0.226, 0.684, 0.765]], [0.526, [0.226, 0.684, 0.765]], [0.528, [0.222, 0.680, 0.765]], [0.530, [0.222, 0.680, 0.765]], [0.532, [0.217, 0.675, 0.764]], [0.534, [0.217, 0.675, 0.764]], [0.536, [0.213, 0.670, 0.764]], [0.538, [0.213, 0.670, 0.764]], [0.540, [0.208, 0.666, 0.763]], [0.542, [0.208, 0.666, 0.763]], [0.544, [0.204, 0.661, 0.763]], [0.546, [0.204, 0.661, 0.763]], [0.548, [0.200, 0.657, 0.762]], [0.550, [0.200, 0.657, 0.762]], [0.552, [0.195, 0.652, 0.762]], [0.554, [0.195, 0.652, 0.762]], [0.556, [0.191, 0.648, 0.761]], [0.558, [0.191, 0.648, 0.761]], [0.560, [0.186, 0.643, 0.761]], [0.562, [0.186, 0.643, 0.761]], [0.564, [0.182, 0.639, 0.761]], [0.566, [0.182, 0.639, 0.761]], [0.568, [0.177, 0.634, 0.760]], [0.569, [0.177, 0.634, 0.760]], [0.571, [0.173, 0.630, 0.760]], [0.573, [0.173, 0.630, 0.760]], [0.575, [0.169, 0.625, 0.759]], [0.577, [0.169, 0.625, 0.759]], [0.579, [0.164, 0.620, 0.759]], [0.581, [0.164, 0.620, 0.759]], [0.583, [0.160, 0.616, 0.758]], [0.585, [0.160, 0.616, 0.758]], [0.587, [0.155, 0.611, 0.758]], [0.589, [0.155, 0.611, 0.758]], [0.591, [0.151, 0.607, 0.757]], [0.593, [0.151, 0.607, 0.757]], [0.595, [0.146, 0.602, 0.757]], [0.597, [0.146, 0.602, 0.757]], [0.599, [0.142, 0.598, 0.756]], [0.601, [0.142, 0.598, 0.756]], [0.603, [0.138, 0.593, 0.756]], [0.605, [0.138, 0.593, 0.756]], [0.607, [0.133, 0.589, 0.755]], [0.609, [0.133, 0.589, 0.755]], [0.611, [0.129, 0.584, 0.755]], [0.613, [0.129, 0.584, 0.755]], [0.614, [0.124, 0.579, 0.754]], [0.616, [0.124, 0.579, 0.754]], [0.618, [0.120, 0.575, 0.754]], [0.620, [0.120, 0.575, 0.754]], [0.622, [0.115, 0.570, 0.753]], [0.624, [0.115, 0.570, 0.753]], [0.626, [0.114, 0.565, 0.751]], [0.628, [0.114, 0.565, 0.751]], [0.630, [0.115, 0.558, 0.748]], [0.632, [0.115, 0.558, 0.748]], [0.634, [0.115, 0.552, 0.745]], [0.636, [0.115, 0.552, 0.745]], [0.638, [0.116, 0.546, 0.742]], [0.640, [0.116, 0.546, 0.742]], [0.642, [0.117, 0.540, 0.739]], [0.644, [0.117, 0.540, 0.739]], [0.646, [0.117, 0.533, 0.736]], [0.648, [0.117, 0.533, 0.736]], [0.650, [0.118, 0.527, 0.733]], [0.652, [0.118, 0.527, 0.733]], [0.654, [0.118, 0.521, 0.730]], [0.656, [0.118, 0.521, 0.730]], [0.658, [0.119, 0.515, 0.727]], [0.659, [0.119, 0.515, 0.727]], [0.661, [0.120, 0.508, 0.725]], [0.663, [0.120, 0.508, 0.725]], [0.665, [0.120, 0.502, 0.722]], [0.667, [0.120, 0.502, 0.722]], [0.669, [0.121, 0.496, 0.719]], [0.671, [0.121, 0.496, 0.719]], [0.673, [0.121, 0.489, 0.716]], [0.675, [0.121, 0.489, 0.716]], [0.677, [0.122, 0.483, 0.713]], [0.679, [0.122, 0.483, 0.713]], [0.681, [0.123, 0.477, 0.710]], [0.683, [0.123, 0.477, 0.710]], [0.685, [0.123, 0.471, 0.707]], [0.687, [0.123, 0.471, 0.707]], [0.689, [0.124, 0.464, 0.704]], [0.691, [0.124, 0.464, 0.704]], [0.693, [0.125, 0.458, 0.701]], [0.695, [0.125, 0.458, 0.701]], [0.697, [0.125, 0.452, 0.698]], [0.699, [0.125, 0.452, 0.698]], [0.701, [0.126, 0.445, 0.695]], [0.703, [0.126, 0.445, 0.695]], [0.705, [0.126, 0.439, 0.692]], [0.706, [0.126, 0.439, 0.692]], [0.708, [0.127, 0.433, 0.689]], [0.710, [0.127, 0.433, 0.689]], [0.712, [0.128, 0.427, 0.686]], [0.714, [0.128, 0.427, 0.686]], [0.716, [0.128, 0.420, 0.683]], [0.718, [0.128, 0.420, 0.683]], [0.720, [0.129, 0.414, 0.680]], [0.722, [0.129, 0.414, 0.680]], [0.724, [0.129, 0.408, 0.677]], [0.726, [0.129, 0.408, 0.677]], [0.728, [0.130, 0.402, 0.674]], [0.730, [0.130, 0.402, 0.674]], [0.732, [0.131, 0.395, 0.671]], [0.734, [0.131, 0.395, 0.671]], [0.736, [0.131, 0.389, 0.668]], [0.738, [0.131, 0.389, 0.668]], [0.740, [0.132, 0.383, 0.665]], [0.742, [0.132, 0.383, 0.665]], [0.744, [0.133, 0.376, 0.663]], [0.746, [0.133, 0.376, 0.663]], [0.748, [0.133, 0.370, 0.660]], [0.750, [0.133, 0.370, 0.660]], [0.751, [0.134, 0.365, 0.657]], [0.753, [0.134, 0.365, 0.657]], [0.755, [0.134, 0.360, 0.655]], [0.757, [0.134, 0.360, 0.655]], [0.759, [0.134, 0.354, 0.652]], [0.761, [0.134, 0.354, 0.652]], [0.763, [0.135, 0.349, 0.650]], [0.765, [0.135, 0.349, 0.650]], [0.767, [0.135, 0.344, 0.647]], [0.769, [0.135, 0.344, 0.647]], [0.771, [0.135, 0.339, 0.645]], [0.773, [0.135, 0.339, 0.645]], [0.775, [0.136, 0.334, 0.642]], [0.777, [0.136, 0.334, 0.642]], [0.779, [0.136, 0.329, 0.640]], [0.781, [0.136, 0.329, 0.640]], [0.783, [0.137, 0.323, 0.637]], [0.785, [0.137, 0.323, 0.637]], [0.787, [0.137, 0.318, 0.635]], [0.789, [0.137, 0.318, 0.635]], [0.791, [0.137, 0.313, 0.632]], [0.793, [0.137, 0.313, 0.632]], [0.795, [0.138, 0.308, 0.630]], [0.796, [0.138, 0.308, 0.630]], [0.798, [0.138, 0.303, 0.627]], [0.800, [0.138, 0.303, 0.627]], [0.802, [0.138, 0.298, 0.625]], [0.804, [0.138, 0.298, 0.625]], [0.806, [0.139, 0.292, 0.623]], [0.808, [0.139, 0.292, 0.623]], [0.810, [0.139, 0.287, 0.620]], [0.812, [0.139, 0.287, 0.620]], [0.814, [0.140, 0.282, 0.618]], [0.816, [0.140, 0.282, 0.618]], [0.818, [0.140, 0.277, 0.615]], [0.820, [0.140, 0.277, 0.615]], [0.822, [0.140, 0.272, 0.613]], [0.824, [0.140, 0.272, 0.613]], [0.826, [0.141, 0.267, 0.610]], [0.828, [0.141, 0.267, 0.610]], [0.830, [0.141, 0.261, 0.608]], [0.832, [0.141, 0.261, 0.608]], [0.834, [0.141, 0.256, 0.605]], [0.836, [0.141, 0.256, 0.605]], [0.838, [0.142, 0.251, 0.603]], [0.840, [0.142, 0.251, 0.603]], [0.841, [0.142, 0.246, 0.600]], [0.843, [0.142, 0.246, 0.600]], [0.845, [0.142, 0.241, 0.598]], [0.847, [0.142, 0.241, 0.598]], [0.849, [0.143, 0.236, 0.595]], [0.851, [0.143, 0.236, 0.595]], [0.853, [0.143, 0.230, 0.593]], [0.855, [0.143, 0.230, 0.593]], [0.857, [0.144, 0.225, 0.591]], [0.859, [0.144, 0.225, 0.591]], [0.861, [0.144, 0.220, 0.588]], [0.863, [0.144, 0.220, 0.588]], [0.865, [0.144, 0.215, 0.586]], [0.867, [0.144, 0.215, 0.586]], [0.869, [0.145, 0.210, 0.583]], [0.871, [0.145, 0.210, 0.583]], [0.873, [0.145, 0.205, 0.581]], [0.875, [0.145, 0.205, 0.581]], [0.877, [0.142, 0.201, 0.574]], [0.879, [0.142, 0.201, 0.574]], [0.881, [0.138, 0.199, 0.567]], [0.883, [0.138, 0.199, 0.567]], [0.885, [0.135, 0.196, 0.559]], [0.886, [0.135, 0.196, 0.559]], [0.888, [0.131, 0.193, 0.552]], [0.890, [0.131, 0.193, 0.552]], [0.892, [0.128, 0.190, 0.544]], [0.894, [0.128, 0.190, 0.544]], [0.896, [0.124, 0.187, 0.537]], [0.898, [0.124, 0.187, 0.537]], [0.900, [0.121, 0.184, 0.530]], [0.902, [0.121, 0.184, 0.530]], [0.904, [0.117, 0.182, 0.522]], [0.906, [0.117, 0.182, 0.522]], [0.908, [0.113, 0.179, 0.515]], [0.910, [0.113, 0.179, 0.515]], [0.912, [0.110, 0.176, 0.507]], [0.914, [0.110, 0.176, 0.507]], [0.916, [0.106, 0.173, 0.500]], [0.918, [0.106, 0.173, 0.500]], [0.920, [0.103, 0.170, 0.493]], [0.922, [0.103, 0.170, 0.493]], [0.924, [0.099, 0.167, 0.485]], [0.926, [0.099, 0.167, 0.485]], [0.928, [0.096, 0.165, 0.478]], [0.930, [0.096, 0.165, 0.478]], [0.932, [0.092, 0.162, 0.471]], [0.933, [0.092, 0.162, 0.471]], [0.935, [0.088, 0.159, 0.463]], [0.937, [0.088, 0.159, 0.463]], [0.939, [0.085, 0.156, 0.456]], [0.941, [0.085, 0.156, 0.456]], [0.943, [0.081, 0.153, 0.448]], [0.945, [0.081, 0.153, 0.448]], [0.947, [0.078, 0.151, 0.441]], [0.949, [0.078, 0.151, 0.441]], [0.951, [0.074, 0.148, 0.434]], [0.953, [0.074, 0.148, 0.434]], [0.955, [0.071, 0.145, 0.426]], [0.957, [0.071, 0.145, 0.426]], [0.959, [0.067, 0.142, 0.419]], [0.961, [0.067, 0.142, 0.419]], [0.963, [0.063, 0.139, 0.412]], [0.965, [0.063, 0.139, 0.412]], [0.967, [0.060, 0.136, 0.404]], [0.969, [0.060, 0.136, 0.404]], [0.971, [0.056, 0.134, 0.397]], [0.973, [0.056, 0.134, 0.397]], [0.975, [0.053, 0.131, 0.389]], [0.977, [0.053, 0.131, 0.389]], [0.978, [0.049, 0.128, 0.382]], [0.980, [0.049, 0.128, 0.382]], [0.982, [0.046, 0.125, 0.375]], [0.984, [0.046, 0.125, 0.375]], [0.986, [0.042, 0.122, 0.367]], [0.988, [0.042, 0.122, 0.367]], [0.990, [0.039, 0.119, 0.360]], [0.992, [0.039, 0.119, 0.360]], [0.994, [0.035, 0.117, 0.352]], [0.996, [0.035, 0.117, 0.352]], [0.998, [0.031, 0.114, 0.345]], [1.000, [0.031, 0.114, 0.345]]];
+var YlOrBr = [[0.000, [1.000, 1.000, 0.898]], [0.002, [1.000, 1.000, 0.898]], [0.004, [1.000, 0.999, 0.893]], [0.006, [1.000, 0.999, 0.893]], [0.008, [1.000, 0.998, 0.888]], [0.010, [1.000, 0.998, 0.888]], [0.012, [1.000, 0.997, 0.883]], [0.014, [1.000, 0.997, 0.883]], [0.016, [1.000, 0.996, 0.878]], [0.018, [1.000, 0.996, 0.878]], [0.020, [1.000, 0.995, 0.873]], [0.022, [1.000, 0.995, 0.873]], [0.023, [1.000, 0.994, 0.868]], [0.025, [1.000, 0.994, 0.868]], [0.027, [1.000, 0.993, 0.863]], [0.029, [1.000, 0.993, 0.863]], [0.031, [1.000, 0.992, 0.858]], [0.033, [1.000, 0.992, 0.858]], [0.035, [1.000, 0.991, 0.853]], [0.037, [1.000, 0.991, 0.853]], [0.039, [1.000, 0.990, 0.848]], [0.041, [1.000, 0.990, 0.848]], [0.043, [1.000, 0.989, 0.843]], [0.045, [1.000, 0.989, 0.843]], [0.047, [1.000, 0.988, 0.838]], [0.049, [1.000, 0.988, 0.838]], [0.051, [1.000, 0.987, 0.832]], [0.053, [1.000, 0.987, 0.832]], [0.055, [1.000, 0.986, 0.827]], [0.057, [1.000, 0.986, 0.827]], [0.059, [1.000, 0.985, 0.822]], [0.061, [1.000, 0.985, 0.822]], [0.063, [1.000, 0.984, 0.817]], [0.065, [1.000, 0.984, 0.817]], [0.067, [1.000, 0.983, 0.812]], [0.068, [1.000, 0.983, 0.812]], [0.070, [1.000, 0.982, 0.807]], [0.072, [1.000, 0.982, 0.807]], [0.074, [1.000, 0.981, 0.802]], [0.076, [1.000, 0.981, 0.802]], [0.078, [1.000, 0.980, 0.797]], [0.080, [1.000, 0.980, 0.797]], [0.082, [1.000, 0.979, 0.792]], [0.084, [1.000, 0.979, 0.792]], [0.086, [1.000, 0.978, 0.787]], [0.088, [1.000, 0.978, 0.787]], [0.090, [1.000, 0.977, 0.782]], [0.092, [1.000, 0.977, 0.782]], [0.094, [1.000, 0.976, 0.777]], [0.096, [1.000, 0.976, 0.777]], [0.098, [1.000, 0.975, 0.772]], [0.100, [1.000, 0.975, 0.772]], [0.102, [1.000, 0.974, 0.767]], [0.104, [1.000, 0.974, 0.767]], [0.106, [1.000, 0.973, 0.762]], [0.108, [1.000, 0.973, 0.762]], [0.110, [1.000, 0.972, 0.757]], [0.112, [1.000, 0.972, 0.757]], [0.114, [1.000, 0.971, 0.752]], [0.115, [1.000, 0.971, 0.752]], [0.117, [1.000, 0.970, 0.747]], [0.119, [1.000, 0.970, 0.747]], [0.121, [1.000, 0.969, 0.742]], [0.123, [1.000, 0.969, 0.742]], [0.125, [1.000, 0.968, 0.737]], [0.127, [1.000, 0.968, 0.737]], [0.129, [1.000, 0.966, 0.731]], [0.131, [1.000, 0.966, 0.731]], [0.133, [1.000, 0.963, 0.726]], [0.135, [1.000, 0.963, 0.726]], [0.137, [1.000, 0.961, 0.721]], [0.139, [1.000, 0.961, 0.721]], [0.141, [0.999, 0.958, 0.715]], [0.143, [0.999, 0.958, 0.715]], [0.145, [0.999, 0.956, 0.710]], [0.147, [0.999, 0.956, 0.710]], [0.149, [0.999, 0.954, 0.705]], [0.151, [0.999, 0.954, 0.705]], [0.153, [0.999, 0.951, 0.700]], [0.155, [0.999, 0.951, 0.700]], [0.157, [0.999, 0.949, 0.694]], [0.159, [0.999, 0.949, 0.694]], [0.160, [0.999, 0.946, 0.689]], [0.162, [0.999, 0.946, 0.689]], [0.164, [0.999, 0.944, 0.684]], [0.166, [0.999, 0.944, 0.684]], [0.168, [0.999, 0.941, 0.678]], [0.170, [0.999, 0.941, 0.678]], [0.172, [0.999, 0.939, 0.673]], [0.174, [0.999, 0.939, 0.673]], [0.176, [0.998, 0.936, 0.668]], [0.178, [0.998, 0.936, 0.668]], [0.180, [0.998, 0.934, 0.663]], [0.182, [0.998, 0.934, 0.663]], [0.184, [0.998, 0.931, 0.657]], [0.186, [0.998, 0.931, 0.657]], [0.188, [0.998, 0.929, 0.652]], [0.190, [0.998, 0.929, 0.652]], [0.192, [0.998, 0.926, 0.647]], [0.194, [0.998, 0.926, 0.647]], [0.196, [0.998, 0.924, 0.641]], [0.198, [0.998, 0.924, 0.641]], [0.200, [0.998, 0.922, 0.636]], [0.202, [0.998, 0.922, 0.636]], [0.204, [0.998, 0.919, 0.631]], [0.205, [0.998, 0.919, 0.631]], [0.207, [0.997, 0.917, 0.625]], [0.209, [0.997, 0.917, 0.625]], [0.211, [0.997, 0.914, 0.620]], [0.213, [0.997, 0.914, 0.620]], [0.215, [0.997, 0.912, 0.615]], [0.217, [0.997, 0.912, 0.615]], [0.219, [0.997, 0.909, 0.610]], [0.221, [0.997, 0.909, 0.610]], [0.223, [0.997, 0.907, 0.604]], [0.225, [0.997, 0.907, 0.604]], [0.227, [0.997, 0.904, 0.599]], [0.229, [0.997, 0.904, 0.599]], [0.231, [0.997, 0.902, 0.594]], [0.233, [0.997, 0.902, 0.594]], [0.235, [0.997, 0.899, 0.588]], [0.237, [0.997, 0.899, 0.588]], [0.239, [0.996, 0.897, 0.583]], [0.241, [0.996, 0.897, 0.583]], [0.243, [0.996, 0.895, 0.578]], [0.245, [0.996, 0.895, 0.578]], [0.247, [0.996, 0.892, 0.573]], [0.249, [0.996, 0.892, 0.573]], [0.250, [0.996, 0.889, 0.567]], [0.252, [0.996, 0.889, 0.567]], [0.254, [0.996, 0.885, 0.558]], [0.256, [0.996, 0.885, 0.558]], [0.258, [0.996, 0.882, 0.550]], [0.260, [0.996, 0.882, 0.550]], [0.262, [0.996, 0.878, 0.542]], [0.264, [0.996, 0.878, 0.542]], [0.266, [0.996, 0.874, 0.534]], [0.268, [0.996, 0.874, 0.534]], [0.270, [0.996, 0.870, 0.526]], [0.272, [0.996, 0.870, 0.526]], [0.274, [0.996, 0.866, 0.518]], [0.276, [0.996, 0.866, 0.518]], [0.278, [0.996, 0.863, 0.510]], [0.280, [0.996, 0.863, 0.510]], [0.282, [0.996, 0.859, 0.502]], [0.284, [0.996, 0.859, 0.502]], [0.286, [0.996, 0.855, 0.494]], [0.288, [0.996, 0.855, 0.494]], [0.290, [0.996, 0.851, 0.485]], [0.292, [0.996, 0.851, 0.485]], [0.294, [0.996, 0.847, 0.477]], [0.295, [0.996, 0.847, 0.477]], [0.297, [0.996, 0.843, 0.469]], [0.299, [0.996, 0.843, 0.469]], [0.301, [0.996, 0.840, 0.461]], [0.303, [0.996, 0.840, 0.461]], [0.305, [0.996, 0.836, 0.453]], [0.307, [0.996, 0.836, 0.453]], [0.309, [0.996, 0.832, 0.445]], [0.311, [0.996, 0.832, 0.445]], [0.313, [0.996, 0.828, 0.437]], [0.315, [0.996, 0.828, 0.437]], [0.317, [0.996, 0.824, 0.429]], [0.319, [0.996, 0.824, 0.429]], [0.321, [0.996, 0.821, 0.420]], [0.323, [0.996, 0.821, 0.420]], [0.325, [0.996, 0.817, 0.412]], [0.327, [0.996, 0.817, 0.412]], [0.329, [0.996, 0.813, 0.404]], [0.331, [0.996, 0.813, 0.404]], [0.333, [0.996, 0.809, 0.396]], [0.335, [0.996, 0.809, 0.396]], [0.337, [0.996, 0.805, 0.388]], [0.339, [0.996, 0.805, 0.388]], [0.341, [0.996, 0.802, 0.380]], [0.342, [0.996, 0.802, 0.380]], [0.344, [0.996, 0.798, 0.372]], [0.346, [0.996, 0.798, 0.372]], [0.348, [0.996, 0.794, 0.364]], [0.350, [0.996, 0.794, 0.364]], [0.352, [0.996, 0.790, 0.355]], [0.354, [0.996, 0.790, 0.355]], [0.356, [0.996, 0.786, 0.347]], [0.358, [0.996, 0.786, 0.347]], [0.360, [0.996, 0.782, 0.339]], [0.362, [0.996, 0.782, 0.339]], [0.364, [0.996, 0.779, 0.331]], [0.366, [0.996, 0.779, 0.331]], [0.368, [0.996, 0.775, 0.323]], [0.370, [0.996, 0.775, 0.323]], [0.372, [0.996, 0.771, 0.315]], [0.374, [0.996, 0.771, 0.315]], [0.376, [0.996, 0.767, 0.308]], [0.378, [0.996, 0.767, 0.308]], [0.380, [0.996, 0.761, 0.303]], [0.382, [0.996, 0.761, 0.303]], [0.384, [0.996, 0.756, 0.299]], [0.386, [0.996, 0.756, 0.299]], [0.387, [0.996, 0.751, 0.294]], [0.389, [0.996, 0.751, 0.294]], [0.391, [0.996, 0.745, 0.289]], [0.393, [0.996, 0.745, 0.289]], [0.395, [0.996, 0.740, 0.285]], [0.397, [0.996, 0.740, 0.285]], [0.399, [0.996, 0.735, 0.280]], [0.401, [0.996, 0.735, 0.280]], [0.403, [0.996, 0.730, 0.275]], [0.405, [0.996, 0.730, 0.275]], [0.407, [0.996, 0.724, 0.271]], [0.409, [0.996, 0.724, 0.271]], [0.411, [0.996, 0.719, 0.266]], [0.413, [0.996, 0.719, 0.266]], [0.415, [0.996, 0.714, 0.261]], [0.417, [0.996, 0.714, 0.261]], [0.419, [0.996, 0.708, 0.257]], [0.421, [0.996, 0.708, 0.257]], [0.423, [0.996, 0.703, 0.252]], [0.425, [0.996, 0.703, 0.252]], [0.427, [0.996, 0.698, 0.247]], [0.429, [0.996, 0.698, 0.247]], [0.431, [0.996, 0.693, 0.243]], [0.432, [0.996, 0.693, 0.243]], [0.434, [0.996, 0.687, 0.238]], [0.436, [0.996, 0.687, 0.238]], [0.438, [0.996, 0.682, 0.233]], [0.440, [0.996, 0.682, 0.233]], [0.442, [0.996, 0.677, 0.229]], [0.444, [0.996, 0.677, 0.229]], [0.446, [0.996, 0.671, 0.224]], [0.448, [0.996, 0.671, 0.224]], [0.450, [0.996, 0.666, 0.219]], [0.452, [0.996, 0.666, 0.219]], [0.454, [0.996, 0.661, 0.215]], [0.456, [0.996, 0.661, 0.215]], [0.458, [0.996, 0.656, 0.210]], [0.460, [0.996, 0.656, 0.210]], [0.462, [0.996, 0.650, 0.205]], [0.464, [0.996, 0.650, 0.205]], [0.466, [0.996, 0.645, 0.201]], [0.468, [0.996, 0.645, 0.201]], [0.470, [0.996, 0.640, 0.196]], [0.472, [0.996, 0.640, 0.196]], [0.474, [0.996, 0.634, 0.191]], [0.476, [0.996, 0.634, 0.191]], [0.477, [0.996, 0.629, 0.186]], [0.479, [0.996, 0.629, 0.186]], [0.481, [0.996, 0.624, 0.182]], [0.483, [0.996, 0.624, 0.182]], [0.485, [0.996, 0.619, 0.177]], [0.487, [0.996, 0.619, 0.177]], [0.489, [0.996, 0.613, 0.172]], [0.491, [0.996, 0.613, 0.172]], [0.493, [0.996, 0.608, 0.168]], [0.495, [0.996, 0.608, 0.168]], [0.497, [0.996, 0.603, 0.163]], [0.499, [0.996, 0.603, 0.163]], [0.501, [0.995, 0.597, 0.159]], [0.503, [0.995, 0.597, 0.159]], [0.505, [0.993, 0.592, 0.157]], [0.507, [0.993, 0.592, 0.157]], [0.509, [0.991, 0.587, 0.154]], [0.511, [0.991, 0.587, 0.154]], [0.513, [0.988, 0.582, 0.152]], [0.515, [0.988, 0.582, 0.152]], [0.517, [0.986, 0.577, 0.149]], [0.519, [0.986, 0.577, 0.149]], [0.521, [0.984, 0.572, 0.147]], [0.523, [0.984, 0.572, 0.147]], [0.524, [0.982, 0.567, 0.144]], [0.526, [0.982, 0.567, 0.144]], [0.528, [0.979, 0.562, 0.141]], [0.530, [0.979, 0.562, 0.141]], [0.532, [0.977, 0.557, 0.139]], [0.534, [0.977, 0.557, 0.139]], [0.536, [0.975, 0.552, 0.136]], [0.538, [0.975, 0.552, 0.136]], [0.540, [0.973, 0.547, 0.134]], [0.542, [0.973, 0.547, 0.134]], [0.544, [0.971, 0.542, 0.131]], [0.546, [0.971, 0.542, 0.131]], [0.548, [0.968, 0.537, 0.128]], [0.550, [0.968, 0.537, 0.128]], [0.552, [0.966, 0.532, 0.126]], [0.554, [0.966, 0.532, 0.126]], [0.556, [0.964, 0.527, 0.123]], [0.558, [0.964, 0.527, 0.123]], [0.560, [0.962, 0.522, 0.121]], [0.562, [0.962, 0.522, 0.121]], [0.564, [0.960, 0.517, 0.118]], [0.566, [0.960, 0.517, 0.118]], [0.568, [0.957, 0.512, 0.116]], [0.569, [0.957, 0.512, 0.116]], [0.571, [0.955, 0.507, 0.113]], [0.573, [0.955, 0.507, 0.113]], [0.575, [0.953, 0.502, 0.110]], [0.577, [0.953, 0.502, 0.110]], [0.579, [0.951, 0.497, 0.108]], [0.581, [0.951, 0.497, 0.108]], [0.583, [0.948, 0.492, 0.105]], [0.585, [0.948, 0.492, 0.105]], [0.587, [0.946, 0.487, 0.103]], [0.589, [0.946, 0.487, 0.103]], [0.591, [0.944, 0.481, 0.100]], [0.593, [0.944, 0.481, 0.100]], [0.595, [0.942, 0.476, 0.097]], [0.597, [0.942, 0.476, 0.097]], [0.599, [0.940, 0.471, 0.095]], [0.601, [0.940, 0.471, 0.095]], [0.603, [0.937, 0.466, 0.092]], [0.605, [0.937, 0.466, 0.092]], [0.607, [0.935, 0.461, 0.090]], [0.609, [0.935, 0.461, 0.090]], [0.611, [0.933, 0.456, 0.087]], [0.613, [0.933, 0.456, 0.087]], [0.614, [0.931, 0.451, 0.085]], [0.616, [0.931, 0.451, 0.085]], [0.618, [0.929, 0.446, 0.082]], [0.620, [0.929, 0.446, 0.082]], [0.622, [0.926, 0.441, 0.079]], [0.624, [0.926, 0.441, 0.079]], [0.626, [0.923, 0.436, 0.077]], [0.628, [0.923, 0.436, 0.077]], [0.630, [0.919, 0.432, 0.075]], [0.632, [0.919, 0.432, 0.075]], [0.634, [0.915, 0.428, 0.073]], [0.636, [0.915, 0.428, 0.073]], [0.638, [0.911, 0.423, 0.070]], [0.640, [0.911, 0.423, 0.070]], [0.642, [0.907, 0.419, 0.068]], [0.644, [0.907, 0.419, 0.068]], [0.646, [0.903, 0.414, 0.066]], [0.648, [0.903, 0.414, 0.066]], [0.650, [0.899, 0.410, 0.064]], [0.652, [0.899, 0.410, 0.064]], [0.654, [0.895, 0.405, 0.062]], [0.656, [0.895, 0.405, 0.062]], [0.658, [0.892, 0.401, 0.059]], [0.659, [0.892, 0.401, 0.059]], [0.661, [0.888, 0.397, 0.057]], [0.663, [0.888, 0.397, 0.057]], [0.665, [0.884, 0.392, 0.055]], [0.667, [0.884, 0.392, 0.055]], [0.669, [0.880, 0.388, 0.053]], [0.671, [0.880, 0.388, 0.053]], [0.673, [0.876, 0.383, 0.050]], [0.675, [0.876, 0.383, 0.050]], [0.677, [0.872, 0.379, 0.048]], [0.679, [0.872, 0.379, 0.048]], [0.681, [0.868, 0.374, 0.046]], [0.683, [0.868, 0.374, 0.046]], [0.685, [0.864, 0.370, 0.044]], [0.687, [0.864, 0.370, 0.044]], [0.689, [0.860, 0.366, 0.042]], [0.691, [0.860, 0.366, 0.042]], [0.693, [0.856, 0.361, 0.039]], [0.695, [0.856, 0.361, 0.039]], [0.697, [0.852, 0.357, 0.037]], [0.699, [0.852, 0.357, 0.037]], [0.701, [0.848, 0.352, 0.035]], [0.703, [0.848, 0.352, 0.035]], [0.705, [0.844, 0.348, 0.033]], [0.706, [0.844, 0.348, 0.033]], [0.708, [0.840, 0.343, 0.031]], [0.710, [0.840, 0.343, 0.031]], [0.712, [0.836, 0.339, 0.028]], [0.714, [0.836, 0.339, 0.028]], [0.716, [0.832, 0.335, 0.026]], [0.718, [0.832, 0.335, 0.026]], [0.720, [0.829, 0.330, 0.024]], [0.722, [0.829, 0.330, 0.024]], [0.724, [0.825, 0.326, 0.022]], [0.726, [0.825, 0.326, 0.022]], [0.728, [0.821, 0.321, 0.019]], [0.730, [0.821, 0.321, 0.019]], [0.732, [0.817, 0.317, 0.017]], [0.734, [0.817, 0.317, 0.017]], [0.736, [0.813, 0.312, 0.015]], [0.738, [0.813, 0.312, 0.015]], [0.740, [0.809, 0.308, 0.013]], [0.742, [0.809, 0.308, 0.013]], [0.744, [0.805, 0.304, 0.011]], [0.746, [0.805, 0.304, 0.011]], [0.748, [0.801, 0.299, 0.008]], [0.750, [0.801, 0.299, 0.008]], [0.751, [0.795, 0.296, 0.008]], [0.753, [0.795, 0.296, 0.008]], [0.755, [0.789, 0.293, 0.008]], [0.757, [0.789, 0.293, 0.008]], [0.759, [0.783, 0.290, 0.009]], [0.761, [0.783, 0.290, 0.009]], [0.763, [0.776, 0.287, 0.009]], [0.765, [0.776, 0.287, 0.009]], [0.767, [0.770, 0.284, 0.009]], [0.769, [0.770, 0.284, 0.009]], [0.771, [0.764, 0.281, 0.009]], [0.773, [0.764, 0.281, 0.009]], [0.775, [0.758, 0.278, 0.010]], [0.777, [0.758, 0.278, 0.010]], [0.779, [0.751, 0.275, 0.010]], [0.781, [0.751, 0.275, 0.010]], [0.783, [0.745, 0.272, 0.010]], [0.785, [0.745, 0.272, 0.010]], [0.787, [0.739, 0.269, 0.010]], [0.789, [0.739, 0.269, 0.010]], [0.791, [0.733, 0.266, 0.010]], [0.793, [0.733, 0.266, 0.010]], [0.795, [0.726, 0.263, 0.011]], [0.796, [0.726, 0.263, 0.011]], [0.798, [0.720, 0.260, 0.011]], [0.800, [0.720, 0.260, 0.011]], [0.802, [0.714, 0.257, 0.011]], [0.804, [0.714, 0.257, 0.011]], [0.806, [0.707, 0.254, 0.011]], [0.808, [0.707, 0.254, 0.011]], [0.810, [0.701, 0.252, 0.012]], [0.812, [0.701, 0.252, 0.012]], [0.814, [0.695, 0.249, 0.012]], [0.816, [0.695, 0.249, 0.012]], [0.818, [0.689, 0.246, 0.012]], [0.820, [0.689, 0.246, 0.012]], [0.822, [0.682, 0.243, 0.012]], [0.824, [0.682, 0.243, 0.012]], [0.826, [0.676, 0.240, 0.013]], [0.828, [0.676, 0.240, 0.013]], [0.830, [0.670, 0.237, 0.013]], [0.832, [0.670, 0.237, 0.013]], [0.834, [0.664, 0.234, 0.013]], [0.836, [0.664, 0.234, 0.013]], [0.838, [0.657, 0.231, 0.013]], [0.840, [0.657, 0.231, 0.013]], [0.841, [0.651, 0.228, 0.014]], [0.843, [0.651, 0.228, 0.014]], [0.845, [0.645, 0.225, 0.014]], [0.847, [0.645, 0.225, 0.014]], [0.849, [0.638, 0.222, 0.014]], [0.851, [0.638, 0.222, 0.014]], [0.853, [0.632, 0.219, 0.014]], [0.855, [0.632, 0.219, 0.014]], [0.857, [0.626, 0.216, 0.015]], [0.859, [0.626, 0.216, 0.015]], [0.861, [0.620, 0.213, 0.015]], [0.863, [0.620, 0.213, 0.015]], [0.865, [0.613, 0.210, 0.015]], [0.867, [0.613, 0.210, 0.015]], [0.869, [0.607, 0.207, 0.015]], [0.871, [0.607, 0.207, 0.015]], [0.873, [0.601, 0.204, 0.016]], [0.875, [0.601, 0.204, 0.016]], [0.877, [0.595, 0.202, 0.016]], [0.879, [0.595, 0.202, 0.016]], [0.881, [0.588, 0.200, 0.016]], [0.883, [0.588, 0.200, 0.016]], [0.885, [0.582, 0.199, 0.016]], [0.886, [0.582, 0.199, 0.016]], [0.888, [0.576, 0.197, 0.017]], [0.890, [0.576, 0.197, 0.017]], [0.892, [0.569, 0.195, 0.017]], [0.894, [0.569, 0.195, 0.017]], [0.896, [0.563, 0.193, 0.017]], [0.898, [0.563, 0.193, 0.017]], [0.900, [0.557, 0.191, 0.017]], [0.902, [0.557, 0.191, 0.017]], [0.904, [0.551, 0.189, 0.018]], [0.906, [0.551, 0.189, 0.018]], [0.908, [0.544, 0.188, 0.018]], [0.910, [0.544, 0.188, 0.018]], [0.912, [0.538, 0.186, 0.018]], [0.914, [0.538, 0.186, 0.018]], [0.916, [0.532, 0.184, 0.018]], [0.918, [0.532, 0.184, 0.018]], [0.920, [0.525, 0.182, 0.019]], [0.922, [0.525, 0.182, 0.019]], [0.924, [0.519, 0.180, 0.019]], [0.926, [0.519, 0.180, 0.019]], [0.928, [0.513, 0.178, 0.019]], [0.930, [0.513, 0.178, 0.019]], [0.932, [0.507, 0.176, 0.019]], [0.933, [0.507, 0.176, 0.019]], [0.935, [0.500, 0.175, 0.020]], [0.937, [0.500, 0.175, 0.020]], [0.939, [0.494, 0.173, 0.020]], [0.941, [0.494, 0.173, 0.020]], [0.943, [0.488, 0.171, 0.020]], [0.945, [0.488, 0.171, 0.020]], [0.947, [0.482, 0.169, 0.020]], [0.949, [0.482, 0.169, 0.020]], [0.951, [0.475, 0.167, 0.021]], [0.953, [0.475, 0.167, 0.021]], [0.955, [0.469, 0.165, 0.021]], [0.957, [0.469, 0.165, 0.021]], [0.959, [0.463, 0.164, 0.021]], [0.961, [0.463, 0.164, 0.021]], [0.963, [0.456, 0.162, 0.021]], [0.965, [0.456, 0.162, 0.021]], [0.967, [0.450, 0.160, 0.022]], [0.969, [0.450, 0.160, 0.022]], [0.971, [0.444, 0.158, 0.022]], [0.973, [0.444, 0.158, 0.022]], [0.975, [0.438, 0.156, 0.022]], [0.977, [0.438, 0.156, 0.022]], [0.978, [0.431, 0.154, 0.022]], [0.980, [0.431, 0.154, 0.022]], [0.982, [0.425, 0.152, 0.023]], [0.984, [0.425, 0.152, 0.023]], [0.986, [0.419, 0.151, 0.023]], [0.988, [0.419, 0.151, 0.023]], [0.990, [0.413, 0.149, 0.023]], [0.992, [0.413, 0.149, 0.023]], [0.994, [0.406, 0.147, 0.023]], [0.996, [0.406, 0.147, 0.023]], [0.998, [0.400, 0.145, 0.024]], [1.000, [0.400, 0.145, 0.024]]];
+var YlOrRd = [[0.000, [1.000, 1.000, 0.800]], [0.002, [1.000, 1.000, 0.800]], [0.004, [1.000, 0.998, 0.795]], [0.006, [1.000, 0.998, 0.795]], [0.008, [1.000, 0.996, 0.789]], [0.010, [1.000, 0.996, 0.789]], [0.012, [1.000, 0.993, 0.784]], [0.014, [1.000, 0.993, 0.784]], [0.016, [1.000, 0.991, 0.778]], [0.018, [1.000, 0.991, 0.778]], [0.020, [1.000, 0.989, 0.773]], [0.022, [1.000, 0.989, 0.773]], [0.023, [1.000, 0.987, 0.768]], [0.025, [1.000, 0.987, 0.768]], [0.027, [1.000, 0.984, 0.762]], [0.029, [1.000, 0.984, 0.762]], [0.031, [1.000, 0.982, 0.757]], [0.033, [1.000, 0.982, 0.757]], [0.035, [1.000, 0.980, 0.751]], [0.037, [1.000, 0.980, 0.751]], [0.039, [1.000, 0.978, 0.746]], [0.041, [1.000, 0.978, 0.746]], [0.043, [1.000, 0.976, 0.740]], [0.045, [1.000, 0.976, 0.740]], [0.047, [1.000, 0.973, 0.735]], [0.049, [1.000, 0.973, 0.735]], [0.051, [1.000, 0.971, 0.730]], [0.053, [1.000, 0.971, 0.730]], [0.055, [1.000, 0.969, 0.724]], [0.057, [1.000, 0.969, 0.724]], [0.059, [1.000, 0.967, 0.719]], [0.061, [1.000, 0.967, 0.719]], [0.063, [1.000, 0.965, 0.713]], [0.065, [1.000, 0.965, 0.713]], [0.067, [1.000, 0.962, 0.708]], [0.068, [1.000, 0.962, 0.708]], [0.070, [1.000, 0.960, 0.703]], [0.072, [1.000, 0.960, 0.703]], [0.074, [1.000, 0.958, 0.697]], [0.076, [1.000, 0.958, 0.697]], [0.078, [1.000, 0.956, 0.692]], [0.080, [1.000, 0.956, 0.692]], [0.082, [1.000, 0.953, 0.686]], [0.084, [1.000, 0.953, 0.686]], [0.086, [1.000, 0.951, 0.681]], [0.088, [1.000, 0.951, 0.681]], [0.090, [1.000, 0.949, 0.675]], [0.092, [1.000, 0.949, 0.675]], [0.094, [1.000, 0.947, 0.670]], [0.096, [1.000, 0.947, 0.670]], [0.098, [1.000, 0.945, 0.665]], [0.100, [1.000, 0.945, 0.665]], [0.102, [1.000, 0.942, 0.659]], [0.104, [1.000, 0.942, 0.659]], [0.106, [1.000, 0.940, 0.654]], [0.108, [1.000, 0.940, 0.654]], [0.110, [1.000, 0.938, 0.648]], [0.112, [1.000, 0.938, 0.648]], [0.114, [1.000, 0.936, 0.643]], [0.115, [1.000, 0.936, 0.643]], [0.117, [1.000, 0.934, 0.638]], [0.119, [1.000, 0.934, 0.638]], [0.121, [1.000, 0.931, 0.632]], [0.123, [1.000, 0.931, 0.632]], [0.125, [1.000, 0.929, 0.627]], [0.127, [1.000, 0.929, 0.627]], [0.129, [1.000, 0.927, 0.622]], [0.131, [1.000, 0.927, 0.622]], [0.133, [1.000, 0.924, 0.616]], [0.135, [1.000, 0.924, 0.616]], [0.137, [1.000, 0.922, 0.611]], [0.139, [1.000, 0.922, 0.611]], [0.141, [0.999, 0.919, 0.606]], [0.143, [0.999, 0.919, 0.606]], [0.145, [0.999, 0.917, 0.601]], [0.147, [0.999, 0.917, 0.601]], [0.149, [0.999, 0.914, 0.596]], [0.151, [0.999, 0.914, 0.596]], [0.153, [0.999, 0.912, 0.591]], [0.155, [0.999, 0.912, 0.591]], [0.157, [0.999, 0.909, 0.585]], [0.159, [0.999, 0.909, 0.585]], [0.160, [0.999, 0.907, 0.580]], [0.162, [0.999, 0.907, 0.580]], [0.164, [0.999, 0.904, 0.575]], [0.166, [0.999, 0.904, 0.575]], [0.168, [0.999, 0.902, 0.570]], [0.170, [0.999, 0.902, 0.570]], [0.172, [0.999, 0.900, 0.565]], [0.174, [0.999, 0.900, 0.565]], [0.176, [0.998, 0.897, 0.560]], [0.178, [0.998, 0.897, 0.560]], [0.180, [0.998, 0.895, 0.554]], [0.182, [0.998, 0.895, 0.554]], [0.184, [0.998, 0.892, 0.549]], [0.186, [0.998, 0.892, 0.549]], [0.188, [0.998, 0.890, 0.544]], [0.190, [0.998, 0.890, 0.544]], [0.192, [0.998, 0.887, 0.539]], [0.194, [0.998, 0.887, 0.539]], [0.196, [0.998, 0.885, 0.534]], [0.198, [0.998, 0.885, 0.534]], [0.200, [0.998, 0.882, 0.529]], [0.202, [0.998, 0.882, 0.529]], [0.204, [0.998, 0.880, 0.523]], [0.205, [0.998, 0.880, 0.523]], [0.207, [0.997, 0.877, 0.518]], [0.209, [0.997, 0.877, 0.518]], [0.211, [0.997, 0.875, 0.513]], [0.213, [0.997, 0.875, 0.513]], [0.215, [0.997, 0.873, 0.508]], [0.217, [0.997, 0.873, 0.508]], [0.219, [0.997, 0.870, 0.503]], [0.221, [0.997, 0.870, 0.503]], [0.223, [0.997, 0.868, 0.498]], [0.225, [0.997, 0.868, 0.498]], [0.227, [0.997, 0.865, 0.492]], [0.229, [0.997, 0.865, 0.492]], [0.231, [0.997, 0.863, 0.487]], [0.233, [0.997, 0.863, 0.487]], [0.235, [0.997, 0.860, 0.482]], [0.237, [0.997, 0.860, 0.482]], [0.239, [0.996, 0.858, 0.477]], [0.241, [0.996, 0.858, 0.477]], [0.243, [0.996, 0.855, 0.472]], [0.245, [0.996, 0.855, 0.472]], [0.247, [0.996, 0.853, 0.467]], [0.249, [0.996, 0.853, 0.467]], [0.250, [0.996, 0.850, 0.461]], [0.252, [0.996, 0.850, 0.461]], [0.254, [0.996, 0.845, 0.456]], [0.256, [0.996, 0.845, 0.456]], [0.258, [0.996, 0.840, 0.451]], [0.260, [0.996, 0.840, 0.451]], [0.262, [0.996, 0.835, 0.446]], [0.264, [0.996, 0.835, 0.446]], [0.266, [0.996, 0.831, 0.441]], [0.268, [0.996, 0.831, 0.441]], [0.270, [0.996, 0.826, 0.436]], [0.272, [0.996, 0.826, 0.436]], [0.274, [0.996, 0.821, 0.430]], [0.276, [0.996, 0.821, 0.430]], [0.278, [0.996, 0.816, 0.425]], [0.280, [0.996, 0.816, 0.425]], [0.282, [0.996, 0.811, 0.420]], [0.284, [0.996, 0.811, 0.420]], [0.286, [0.996, 0.807, 0.415]], [0.288, [0.996, 0.807, 0.415]], [0.290, [0.996, 0.802, 0.410]], [0.292, [0.996, 0.802, 0.410]], [0.294, [0.996, 0.797, 0.405]], [0.295, [0.996, 0.797, 0.405]], [0.297, [0.996, 0.792, 0.399]], [0.299, [0.996, 0.792, 0.399]], [0.301, [0.996, 0.787, 0.394]], [0.303, [0.996, 0.787, 0.394]], [0.305, [0.996, 0.783, 0.389]], [0.307, [0.996, 0.783, 0.389]], [0.309, [0.996, 0.778, 0.384]], [0.311, [0.996, 0.778, 0.384]], [0.313, [0.996, 0.773, 0.379]], [0.315, [0.996, 0.773, 0.379]], [0.317, [0.996, 0.768, 0.374]], [0.319, [0.996, 0.768, 0.374]], [0.321, [0.996, 0.763, 0.368]], [0.323, [0.996, 0.763, 0.368]], [0.325, [0.996, 0.759, 0.363]], [0.327, [0.996, 0.759, 0.363]], [0.329, [0.996, 0.754, 0.358]], [0.331, [0.996, 0.754, 0.358]], [0.333, [0.996, 0.749, 0.353]], [0.335, [0.996, 0.749, 0.353]], [0.337, [0.996, 0.744, 0.348]], [0.339, [0.996, 0.744, 0.348]], [0.341, [0.996, 0.739, 0.343]], [0.342, [0.996, 0.739, 0.343]], [0.344, [0.996, 0.735, 0.337]], [0.346, [0.996, 0.735, 0.337]], [0.348, [0.996, 0.730, 0.332]], [0.350, [0.996, 0.730, 0.332]], [0.352, [0.996, 0.725, 0.327]], [0.354, [0.996, 0.725, 0.327]], [0.356, [0.996, 0.720, 0.322]], [0.358, [0.996, 0.720, 0.322]], [0.360, [0.996, 0.715, 0.317]], [0.362, [0.996, 0.715, 0.317]], [0.364, [0.996, 0.711, 0.312]], [0.366, [0.996, 0.711, 0.312]], [0.368, [0.996, 0.706, 0.306]], [0.370, [0.996, 0.706, 0.306]], [0.372, [0.996, 0.701, 0.301]], [0.374, [0.996, 0.701, 0.301]], [0.376, [0.996, 0.696, 0.297]], [0.378, [0.996, 0.696, 0.297]], [0.380, [0.996, 0.692, 0.295]], [0.382, [0.996, 0.692, 0.295]], [0.384, [0.996, 0.687, 0.293]], [0.386, [0.996, 0.687, 0.293]], [0.387, [0.996, 0.683, 0.291]], [0.389, [0.996, 0.683, 0.291]], [0.391, [0.996, 0.678, 0.289]], [0.393, [0.996, 0.678, 0.289]], [0.395, [0.995, 0.674, 0.287]], [0.397, [0.995, 0.674, 0.287]], [0.399, [0.995, 0.669, 0.285]], [0.401, [0.995, 0.669, 0.285]], [0.403, [0.995, 0.664, 0.284]], [0.405, [0.995, 0.664, 0.284]], [0.407, [0.995, 0.660, 0.282]], [0.409, [0.995, 0.660, 0.282]], [0.411, [0.995, 0.655, 0.280]], [0.413, [0.995, 0.655, 0.280]], [0.415, [0.995, 0.651, 0.278]], [0.417, [0.995, 0.651, 0.278]], [0.419, [0.995, 0.646, 0.276]], [0.421, [0.995, 0.646, 0.276]], [0.423, [0.995, 0.642, 0.274]], [0.425, [0.995, 0.642, 0.274]], [0.427, [0.994, 0.637, 0.272]], [0.429, [0.994, 0.637, 0.272]], [0.431, [0.994, 0.633, 0.270]], [0.432, [0.994, 0.633, 0.270]], [0.434, [0.994, 0.628, 0.268]], [0.436, [0.994, 0.628, 0.268]], [0.438, [0.994, 0.623, 0.266]], [0.440, [0.994, 0.623, 0.266]], [0.442, [0.994, 0.619, 0.264]], [0.444, [0.994, 0.619, 0.264]], [0.446, [0.994, 0.614, 0.262]], [0.448, [0.994, 0.614, 0.262]], [0.450, [0.994, 0.610, 0.260]], [0.452, [0.994, 0.610, 0.260]], [0.454, [0.994, 0.605, 0.258]], [0.456, [0.994, 0.605, 0.258]], [0.458, [0.993, 0.601, 0.256]], [0.460, [0.993, 0.601, 0.256]], [0.462, [0.993, 0.596, 0.254]], [0.464, [0.993, 0.596, 0.254]], [0.466, [0.993, 0.592, 0.252]], [0.468, [0.993, 0.592, 0.252]], [0.470, [0.993, 0.587, 0.250]], [0.472, [0.993, 0.587, 0.250]], [0.474, [0.993, 0.583, 0.248]], [0.476, [0.993, 0.583, 0.248]], [0.477, [0.993, 0.578, 0.246]], [0.479, [0.993, 0.578, 0.246]], [0.481, [0.993, 0.573, 0.244]], [0.483, [0.993, 0.573, 0.244]], [0.485, [0.993, 0.569, 0.242]], [0.487, [0.993, 0.569, 0.242]], [0.489, [0.992, 0.564, 0.240]], [0.491, [0.992, 0.564, 0.240]], [0.493, [0.992, 0.560, 0.238]], [0.495, [0.992, 0.560, 0.238]], [0.497, [0.992, 0.555, 0.236]], [0.499, [0.992, 0.555, 0.236]], [0.501, [0.992, 0.549, 0.234]], [0.503, [0.992, 0.549, 0.234]], [0.505, [0.992, 0.541, 0.232]], [0.507, [0.992, 0.541, 0.232]], [0.509, [0.992, 0.534, 0.230]], [0.511, [0.992, 0.534, 0.230]], [0.513, [0.992, 0.526, 0.228]], [0.515, [0.992, 0.526, 0.228]], [0.517, [0.992, 0.518, 0.225]], [0.519, [0.992, 0.518, 0.225]], [0.521, [0.991, 0.510, 0.223]], [0.523, [0.991, 0.510, 0.223]], [0.524, [0.991, 0.503, 0.221]], [0.526, [0.991, 0.503, 0.221]], [0.528, [0.991, 0.495, 0.219]], [0.530, [0.991, 0.495, 0.219]], [0.532, [0.991, 0.487, 0.216]], [0.534, [0.991, 0.487, 0.216]], [0.536, [0.991, 0.479, 0.214]], [0.538, [0.991, 0.479, 0.214]], [0.540, [0.991, 0.472, 0.212]], [0.542, [0.991, 0.472, 0.212]], [0.544, [0.991, 0.464, 0.210]], [0.546, [0.991, 0.464, 0.210]], [0.548, [0.991, 0.456, 0.208]], [0.550, [0.991, 0.456, 0.208]], [0.552, [0.990, 0.448, 0.205]], [0.554, [0.990, 0.448, 0.205]], [0.556, [0.990, 0.441, 0.203]], [0.558, [0.990, 0.441, 0.203]], [0.560, [0.990, 0.433, 0.201]], [0.562, [0.990, 0.433, 0.201]], [0.564, [0.990, 0.425, 0.199]], [0.566, [0.990, 0.425, 0.199]], [0.568, [0.990, 0.417, 0.197]], [0.569, [0.990, 0.417, 0.197]], [0.571, [0.990, 0.410, 0.194]], [0.573, [0.990, 0.410, 0.194]], [0.575, [0.990, 0.402, 0.192]], [0.577, [0.990, 0.402, 0.192]], [0.579, [0.990, 0.394, 0.190]], [0.581, [0.990, 0.394, 0.190]], [0.583, [0.990, 0.386, 0.188]], [0.585, [0.990, 0.386, 0.188]], [0.587, [0.989, 0.379, 0.185]], [0.589, [0.989, 0.379, 0.185]], [0.591, [0.989, 0.371, 0.183]], [0.593, [0.989, 0.371, 0.183]], [0.595, [0.989, 0.363, 0.181]], [0.597, [0.989, 0.363, 0.181]], [0.599, [0.989, 0.355, 0.179]], [0.601, [0.989, 0.355, 0.179]], [0.603, [0.989, 0.348, 0.177]], [0.605, [0.989, 0.348, 0.177]], [0.607, [0.989, 0.340, 0.174]], [0.609, [0.989, 0.340, 0.174]], [0.611, [0.989, 0.332, 0.172]], [0.613, [0.989, 0.332, 0.172]], [0.614, [0.989, 0.324, 0.170]], [0.616, [0.989, 0.324, 0.170]], [0.618, [0.988, 0.317, 0.168]], [0.620, [0.988, 0.317, 0.168]], [0.622, [0.988, 0.309, 0.166]], [0.624, [0.988, 0.309, 0.166]], [0.626, [0.986, 0.302, 0.164]], [0.628, [0.986, 0.302, 0.164]], [0.630, [0.983, 0.295, 0.162]], [0.632, [0.983, 0.295, 0.162]], [0.634, [0.980, 0.289, 0.160]], [0.636, [0.980, 0.289, 0.160]], [0.638, [0.977, 0.283, 0.158]], [0.640, [0.977, 0.283, 0.158]], [0.642, [0.974, 0.276, 0.157]], [0.644, [0.974, 0.276, 0.157]], [0.646, [0.971, 0.270, 0.155]], [0.648, [0.971, 0.270, 0.155]], [0.650, [0.968, 0.263, 0.153]], [0.652, [0.968, 0.263, 0.153]], [0.654, [0.965, 0.257, 0.152]], [0.656, [0.965, 0.257, 0.152]], [0.658, [0.962, 0.251, 0.150]], [0.659, [0.962, 0.251, 0.150]], [0.661, [0.959, 0.244, 0.148]], [0.663, [0.959, 0.244, 0.148]], [0.665, [0.956, 0.238, 0.146]], [0.667, [0.956, 0.238, 0.146]], [0.669, [0.952, 0.232, 0.145]], [0.671, [0.952, 0.232, 0.145]], [0.673, [0.949, 0.225, 0.143]], [0.675, [0.949, 0.225, 0.143]], [0.677, [0.946, 0.219, 0.141]], [0.679, [0.946, 0.219, 0.141]], [0.681, [0.943, 0.212, 0.140]], [0.683, [0.943, 0.212, 0.140]], [0.685, [0.940, 0.206, 0.138]], [0.687, [0.940, 0.206, 0.138]], [0.689, [0.937, 0.200, 0.136]], [0.691, [0.937, 0.200, 0.136]], [0.693, [0.934, 0.193, 0.134]], [0.695, [0.934, 0.193, 0.134]], [0.697, [0.931, 0.187, 0.133]], [0.699, [0.931, 0.187, 0.133]], [0.701, [0.928, 0.180, 0.131]], [0.703, [0.928, 0.180, 0.131]], [0.705, [0.925, 0.174, 0.129]], [0.706, [0.925, 0.174, 0.129]], [0.708, [0.922, 0.168, 0.127]], [0.710, [0.922, 0.168, 0.127]], [0.712, [0.919, 0.161, 0.126]], [0.714, [0.919, 0.161, 0.126]], [0.716, [0.916, 0.155, 0.124]], [0.718, [0.916, 0.155, 0.124]], [0.720, [0.912, 0.148, 0.122]], [0.722, [0.912, 0.148, 0.122]], [0.724, [0.909, 0.142, 0.121]], [0.726, [0.909, 0.142, 0.121]], [0.728, [0.906, 0.136, 0.119]], [0.730, [0.906, 0.136, 0.119]], [0.732, [0.903, 0.129, 0.117]], [0.734, [0.903, 0.129, 0.117]], [0.736, [0.900, 0.123, 0.115]], [0.738, [0.900, 0.123, 0.115]], [0.740, [0.897, 0.116, 0.114]], [0.742, [0.897, 0.116, 0.114]], [0.744, [0.894, 0.110, 0.112]], [0.746, [0.894, 0.110, 0.112]], [0.748, [0.891, 0.104, 0.110]], [0.750, [0.891, 0.104, 0.110]], [0.751, [0.887, 0.100, 0.111]], [0.753, [0.887, 0.100, 0.111]], [0.755, [0.882, 0.096, 0.112]], [0.757, [0.882, 0.096, 0.112]], [0.759, [0.877, 0.093, 0.113]], [0.761, [0.877, 0.093, 0.113]], [0.763, [0.873, 0.090, 0.114]], [0.765, [0.873, 0.090, 0.114]], [0.767, [0.868, 0.087, 0.116]], [0.769, [0.868, 0.087, 0.116]], [0.771, [0.863, 0.084, 0.117]], [0.773, [0.863, 0.084, 0.117]], [0.775, [0.859, 0.080, 0.118]], [0.777, [0.859, 0.080, 0.118]], [0.779, [0.854, 0.077, 0.119]], [0.781, [0.854, 0.077, 0.119]], [0.783, [0.849, 0.074, 0.121]], [0.785, [0.849, 0.074, 0.121]], [0.787, [0.845, 0.071, 0.122]], [0.789, [0.845, 0.071, 0.122]], [0.791, [0.840, 0.068, 0.123]], [0.793, [0.840, 0.068, 0.123]], [0.795, [0.835, 0.064, 0.124]], [0.796, [0.835, 0.064, 0.124]], [0.798, [0.831, 0.061, 0.125]], [0.800, [0.831, 0.061, 0.125]], [0.802, [0.826, 0.058, 0.127]], [0.804, [0.826, 0.058, 0.127]], [0.806, [0.821, 0.055, 0.128]], [0.808, [0.821, 0.055, 0.128]], [0.810, [0.817, 0.052, 0.129]], [0.812, [0.817, 0.052, 0.129]], [0.814, [0.812, 0.048, 0.130]], [0.816, [0.812, 0.048, 0.130]], [0.818, [0.807, 0.045, 0.132]], [0.820, [0.807, 0.045, 0.132]], [0.822, [0.803, 0.042, 0.133]], [0.824, [0.803, 0.042, 0.133]], [0.826, [0.798, 0.039, 0.134]], [0.828, [0.798, 0.039, 0.134]], [0.830, [0.793, 0.036, 0.135]], [0.832, [0.793, 0.036, 0.135]], [0.834, [0.789, 0.032, 0.137]], [0.836, [0.789, 0.032, 0.137]], [0.838, [0.784, 0.029, 0.138]], [0.840, [0.784, 0.029, 0.138]], [0.841, [0.779, 0.026, 0.139]], [0.843, [0.779, 0.026, 0.139]], [0.845, [0.774, 0.023, 0.140]], [0.847, [0.774, 0.023, 0.140]], [0.849, [0.770, 0.020, 0.141]], [0.851, [0.770, 0.020, 0.141]], [0.853, [0.765, 0.016, 0.143]], [0.855, [0.765, 0.016, 0.143]], [0.857, [0.760, 0.013, 0.144]], [0.859, [0.760, 0.013, 0.144]], [0.861, [0.756, 0.010, 0.145]], [0.863, [0.756, 0.010, 0.145]], [0.865, [0.751, 0.007, 0.146]], [0.867, [0.751, 0.007, 0.146]], [0.869, [0.746, 0.004, 0.148]], [0.871, [0.746, 0.004, 0.148]], [0.873, [0.742, 0.000, 0.149]], [0.875, [0.742, 0.000, 0.149]], [0.877, [0.735, 0.000, 0.149]], [0.879, [0.735, 0.000, 0.149]], [0.881, [0.727, 0.000, 0.149]], [0.883, [0.727, 0.000, 0.149]], [0.885, [0.720, 0.000, 0.149]], [0.886, [0.720, 0.000, 0.149]], [0.888, [0.712, 0.000, 0.149]], [0.890, [0.712, 0.000, 0.149]], [0.892, [0.705, 0.000, 0.149]], [0.894, [0.705, 0.000, 0.149]], [0.896, [0.697, 0.000, 0.149]], [0.898, [0.697, 0.000, 0.149]], [0.900, [0.690, 0.000, 0.149]], [0.902, [0.690, 0.000, 0.149]], [0.904, [0.682, 0.000, 0.149]], [0.906, [0.682, 0.000, 0.149]], [0.908, [0.675, 0.000, 0.149]], [0.910, [0.675, 0.000, 0.149]], [0.912, [0.667, 0.000, 0.149]], [0.914, [0.667, 0.000, 0.149]], [0.916, [0.660, 0.000, 0.149]], [0.918, [0.660, 0.000, 0.149]], [0.920, [0.652, 0.000, 0.149]], [0.922, [0.652, 0.000, 0.149]], [0.924, [0.645, 0.000, 0.149]], [0.926, [0.645, 0.000, 0.149]], [0.928, [0.637, 0.000, 0.149]], [0.930, [0.637, 0.000, 0.149]], [0.932, [0.630, 0.000, 0.149]], [0.933, [0.630, 0.000, 0.149]], [0.935, [0.622, 0.000, 0.149]], [0.937, [0.622, 0.000, 0.149]], [0.939, [0.615, 0.000, 0.149]], [0.941, [0.615, 0.000, 0.149]], [0.943, [0.607, 0.000, 0.149]], [0.945, [0.607, 0.000, 0.149]], [0.947, [0.600, 0.000, 0.149]], [0.949, [0.600, 0.000, 0.149]], [0.951, [0.592, 0.000, 0.149]], [0.953, [0.592, 0.000, 0.149]], [0.955, [0.585, 0.000, 0.149]], [0.957, [0.585, 0.000, 0.149]], [0.959, [0.577, 0.000, 0.149]], [0.961, [0.577, 0.000, 0.149]], [0.963, [0.570, 0.000, 0.149]], [0.965, [0.570, 0.000, 0.149]], [0.967, [0.562, 0.000, 0.149]], [0.969, [0.562, 0.000, 0.149]], [0.971, [0.554, 0.000, 0.149]], [0.973, [0.554, 0.000, 0.149]], [0.975, [0.547, 0.000, 0.149]], [0.977, [0.547, 0.000, 0.149]], [0.978, [0.539, 0.000, 0.149]], [0.980, [0.539, 0.000, 0.149]], [0.982, [0.532, 0.000, 0.149]], [0.984, [0.532, 0.000, 0.149]], [0.986, [0.524, 0.000, 0.149]], [0.988, [0.524, 0.000, 0.149]], [0.990, [0.517, 0.000, 0.149]], [0.992, [0.517, 0.000, 0.149]], [0.994, [0.509, 0.000, 0.149]], [0.996, [0.509, 0.000, 0.149]], [0.998, [0.502, 0.000, 0.149]], [1.000, [0.502, 0.000, 0.149]]];
+
+// Sequential (2)
+var afmhot = [[0.000, [0.000, 0.000, 0.000]], [0.002, [0.000, 0.000, 0.000]], [0.004, [0.008, 0.000, 0.000]], [0.006, [0.008, 0.000, 0.000]], [0.008, [0.016, 0.000, 0.000]], [0.010, [0.016, 0.000, 0.000]], [0.012, [0.024, 0.000, 0.000]], [0.014, [0.024, 0.000, 0.000]], [0.016, [0.031, 0.000, 0.000]], [0.018, [0.031, 0.000, 0.000]], [0.020, [0.039, 0.000, 0.000]], [0.022, [0.039, 0.000, 0.000]], [0.023, [0.047, 0.000, 0.000]], [0.025, [0.047, 0.000, 0.000]], [0.027, [0.055, 0.000, 0.000]], [0.029, [0.055, 0.000, 0.000]], [0.031, [0.063, 0.000, 0.000]], [0.033, [0.063, 0.000, 0.000]], [0.035, [0.071, 0.000, 0.000]], [0.037, [0.071, 0.000, 0.000]], [0.039, [0.078, 0.000, 0.000]], [0.041, [0.078, 0.000, 0.000]], [0.043, [0.086, 0.000, 0.000]], [0.045, [0.086, 0.000, 0.000]], [0.047, [0.094, 0.000, 0.000]], [0.049, [0.094, 0.000, 0.000]], [0.051, [0.102, 0.000, 0.000]], [0.053, [0.102, 0.000, 0.000]], [0.055, [0.110, 0.000, 0.000]], [0.057, [0.110, 0.000, 0.000]], [0.059, [0.118, 0.000, 0.000]], [0.061, [0.118, 0.000, 0.000]], [0.063, [0.125, 0.000, 0.000]], [0.065, [0.125, 0.000, 0.000]], [0.067, [0.133, 0.000, 0.000]], [0.068, [0.133, 0.000, 0.000]], [0.070, [0.141, 0.000, 0.000]], [0.072, [0.141, 0.000, 0.000]], [0.074, [0.149, 0.000, 0.000]], [0.076, [0.149, 0.000, 0.000]], [0.078, [0.157, 0.000, 0.000]], [0.080, [0.157, 0.000, 0.000]], [0.082, [0.165, 0.000, 0.000]], [0.084, [0.165, 0.000, 0.000]], [0.086, [0.173, 0.000, 0.000]], [0.088, [0.173, 0.000, 0.000]], [0.090, [0.180, 0.000, 0.000]], [0.092, [0.180, 0.000, 0.000]], [0.094, [0.188, 0.000, 0.000]], [0.096, [0.188, 0.000, 0.000]], [0.098, [0.196, 0.000, 0.000]], [0.100, [0.196, 0.000, 0.000]], [0.102, [0.204, 0.000, 0.000]], [0.104, [0.204, 0.000, 0.000]], [0.106, [0.212, 0.000, 0.000]], [0.108, [0.212, 0.000, 0.000]], [0.110, [0.220, 0.000, 0.000]], [0.112, [0.220, 0.000, 0.000]], [0.114, [0.227, 0.000, 0.000]], [0.115, [0.227, 0.000, 0.000]], [0.117, [0.235, 0.000, 0.000]], [0.119, [0.235, 0.000, 0.000]], [0.121, [0.243, 0.000, 0.000]], [0.123, [0.243, 0.000, 0.000]], [0.125, [0.251, 0.000, 0.000]], [0.127, [0.251, 0.000, 0.000]], [0.129, [0.259, 0.000, 0.000]], [0.131, [0.259, 0.000, 0.000]], [0.133, [0.267, 0.000, 0.000]], [0.135, [0.267, 0.000, 0.000]], [0.137, [0.275, 0.000, 0.000]], [0.139, [0.275, 0.000, 0.000]], [0.141, [0.282, 0.000, 0.000]], [0.143, [0.282, 0.000, 0.000]], [0.145, [0.290, 0.000, 0.000]], [0.147, [0.290, 0.000, 0.000]], [0.149, [0.298, 0.000, 0.000]], [0.151, [0.298, 0.000, 0.000]], [0.153, [0.306, 0.000, 0.000]], [0.155, [0.306, 0.000, 0.000]], [0.157, [0.314, 0.000, 0.000]], [0.159, [0.314, 0.000, 0.000]], [0.160, [0.322, 0.000, 0.000]], [0.162, [0.322, 0.000, 0.000]], [0.164, [0.329, 0.000, 0.000]], [0.166, [0.329, 0.000, 0.000]], [0.168, [0.337, 0.000, 0.000]], [0.170, [0.337, 0.000, 0.000]], [0.172, [0.345, 0.000, 0.000]], [0.174, [0.345, 0.000, 0.000]], [0.176, [0.353, 0.000, 0.000]], [0.178, [0.353, 0.000, 0.000]], [0.180, [0.361, 0.000, 0.000]], [0.182, [0.361, 0.000, 0.000]], [0.184, [0.369, 0.000, 0.000]], [0.186, [0.369, 0.000, 0.000]], [0.188, [0.376, 0.000, 0.000]], [0.190, [0.376, 0.000, 0.000]], [0.192, [0.384, 0.000, 0.000]], [0.194, [0.384, 0.000, 0.000]], [0.196, [0.392, 0.000, 0.000]], [0.198, [0.392, 0.000, 0.000]], [0.200, [0.400, 0.000, 0.000]], [0.202, [0.400, 0.000, 0.000]], [0.204, [0.408, 0.000, 0.000]], [0.205, [0.408, 0.000, 0.000]], [0.207, [0.416, 0.000, 0.000]], [0.209, [0.416, 0.000, 0.000]], [0.211, [0.424, 0.000, 0.000]], [0.213, [0.424, 0.000, 0.000]], [0.215, [0.431, 0.000, 0.000]], [0.217, [0.431, 0.000, 0.000]], [0.219, [0.439, 0.000, 0.000]], [0.221, [0.439, 0.000, 0.000]], [0.223, [0.447, 0.000, 0.000]], [0.225, [0.447, 0.000, 0.000]], [0.227, [0.455, 0.000, 0.000]], [0.229, [0.455, 0.000, 0.000]], [0.231, [0.463, 0.000, 0.000]], [0.233, [0.463, 0.000, 0.000]], [0.235, [0.471, 0.000, 0.000]], [0.237, [0.471, 0.000, 0.000]], [0.239, [0.478, 0.000, 0.000]], [0.241, [0.478, 0.000, 0.000]], [0.243, [0.486, 0.000, 0.000]], [0.245, [0.486, 0.000, 0.000]], [0.247, [0.494, 0.000, 0.000]], [0.249, [0.494, 0.000, 0.000]], [0.250, [0.502, 0.002, 0.000]], [0.252, [0.502, 0.002, 0.000]], [0.254, [0.510, 0.010, 0.000]], [0.256, [0.510, 0.010, 0.000]], [0.258, [0.518, 0.018, 0.000]], [0.260, [0.518, 0.018, 0.000]], [0.262, [0.525, 0.025, 0.000]], [0.264, [0.525, 0.025, 0.000]], [0.266, [0.533, 0.033, 0.000]], [0.268, [0.533, 0.033, 0.000]], [0.270, [0.541, 0.041, 0.000]], [0.272, [0.541, 0.041, 0.000]], [0.274, [0.549, 0.049, 0.000]], [0.276, [0.549, 0.049, 0.000]], [0.278, [0.557, 0.057, 0.000]], [0.280, [0.557, 0.057, 0.000]], [0.282, [0.565, 0.065, 0.000]], [0.284, [0.565, 0.065, 0.000]], [0.286, [0.573, 0.073, 0.000]], [0.288, [0.573, 0.073, 0.000]], [0.290, [0.580, 0.080, 0.000]], [0.292, [0.580, 0.080, 0.000]], [0.294, [0.588, 0.088, 0.000]], [0.295, [0.588, 0.088, 0.000]], [0.297, [0.596, 0.096, 0.000]], [0.299, [0.596, 0.096, 0.000]], [0.301, [0.604, 0.104, 0.000]], [0.303, [0.604, 0.104, 0.000]], [0.305, [0.612, 0.112, 0.000]], [0.307, [0.612, 0.112, 0.000]], [0.309, [0.620, 0.120, 0.000]], [0.311, [0.620, 0.120, 0.000]], [0.313, [0.627, 0.127, 0.000]], [0.315, [0.627, 0.127, 0.000]], [0.317, [0.635, 0.135, 0.000]], [0.319, [0.635, 0.135, 0.000]], [0.321, [0.643, 0.143, 0.000]], [0.323, [0.643, 0.143, 0.000]], [0.325, [0.651, 0.151, 0.000]], [0.327, [0.651, 0.151, 0.000]], [0.329, [0.659, 0.159, 0.000]], [0.331, [0.659, 0.159, 0.000]], [0.333, [0.667, 0.167, 0.000]], [0.335, [0.667, 0.167, 0.000]], [0.337, [0.675, 0.175, 0.000]], [0.339, [0.675, 0.175, 0.000]], [0.341, [0.682, 0.182, 0.000]], [0.342, [0.682, 0.182, 0.000]], [0.344, [0.690, 0.190, 0.000]], [0.346, [0.690, 0.190, 0.000]], [0.348, [0.698, 0.198, 0.000]], [0.350, [0.698, 0.198, 0.000]], [0.352, [0.706, 0.206, 0.000]], [0.354, [0.706, 0.206, 0.000]], [0.356, [0.714, 0.214, 0.000]], [0.358, [0.714, 0.214, 0.000]], [0.360, [0.722, 0.222, 0.000]], [0.362, [0.722, 0.222, 0.000]], [0.364, [0.729, 0.229, 0.000]], [0.366, [0.729, 0.229, 0.000]], [0.368, [0.737, 0.237, 0.000]], [0.370, [0.737, 0.237, 0.000]], [0.372, [0.745, 0.245, 0.000]], [0.374, [0.745, 0.245, 0.000]], [0.376, [0.753, 0.253, 0.000]], [0.378, [0.753, 0.253, 0.000]], [0.380, [0.761, 0.261, 0.000]], [0.382, [0.761, 0.261, 0.000]], [0.384, [0.769, 0.269, 0.000]], [0.386, [0.769, 0.269, 0.000]], [0.387, [0.776, 0.276, 0.000]], [0.389, [0.776, 0.276, 0.000]], [0.391, [0.784, 0.284, 0.000]], [0.393, [0.784, 0.284, 0.000]], [0.395, [0.792, 0.292, 0.000]], [0.397, [0.792, 0.292, 0.000]], [0.399, [0.800, 0.300, 0.000]], [0.401, [0.800, 0.300, 0.000]], [0.403, [0.808, 0.308, 0.000]], [0.405, [0.808, 0.308, 0.000]], [0.407, [0.816, 0.316, 0.000]], [0.409, [0.816, 0.316, 0.000]], [0.411, [0.824, 0.324, 0.000]], [0.413, [0.824, 0.324, 0.000]], [0.415, [0.831, 0.331, 0.000]], [0.417, [0.831, 0.331, 0.000]], [0.419, [0.839, 0.339, 0.000]], [0.421, [0.839, 0.339, 0.000]], [0.423, [0.847, 0.347, 0.000]], [0.425, [0.847, 0.347, 0.000]], [0.427, [0.855, 0.355, 0.000]], [0.429, [0.855, 0.355, 0.000]], [0.431, [0.863, 0.363, 0.000]], [0.432, [0.863, 0.363, 0.000]], [0.434, [0.871, 0.371, 0.000]], [0.436, [0.871, 0.371, 0.000]], [0.438, [0.878, 0.378, 0.000]], [0.440, [0.878, 0.378, 0.000]], [0.442, [0.886, 0.386, 0.000]], [0.444, [0.886, 0.386, 0.000]], [0.446, [0.894, 0.394, 0.000]], [0.448, [0.894, 0.394, 0.000]], [0.450, [0.902, 0.402, 0.000]], [0.452, [0.902, 0.402, 0.000]], [0.454, [0.910, 0.410, 0.000]], [0.456, [0.910, 0.410, 0.000]], [0.458, [0.918, 0.418, 0.000]], [0.460, [0.918, 0.418, 0.000]], [0.462, [0.925, 0.425, 0.000]], [0.464, [0.925, 0.425, 0.000]], [0.466, [0.933, 0.433, 0.000]], [0.468, [0.933, 0.433, 0.000]], [0.470, [0.941, 0.441, 0.000]], [0.472, [0.941, 0.441, 0.000]], [0.474, [0.949, 0.449, 0.000]], [0.476, [0.949, 0.449, 0.000]], [0.477, [0.957, 0.457, 0.000]], [0.479, [0.957, 0.457, 0.000]], [0.481, [0.965, 0.465, 0.000]], [0.483, [0.965, 0.465, 0.000]], [0.485, [0.973, 0.473, 0.000]], [0.487, [0.973, 0.473, 0.000]], [0.489, [0.980, 0.480, 0.000]], [0.491, [0.980, 0.480, 0.000]], [0.493, [0.988, 0.488, 0.000]], [0.495, [0.988, 0.488, 0.000]], [0.497, [0.996, 0.496, 0.000]], [0.499, [0.996, 0.496, 0.000]], [0.501, [1.000, 0.504, 0.004]], [0.503, [1.000, 0.504, 0.004]], [0.505, [1.000, 0.512, 0.012]], [0.507, [1.000, 0.512, 0.012]], [0.509, [1.000, 0.520, 0.020]], [0.511, [1.000, 0.520, 0.020]], [0.513, [1.000, 0.527, 0.027]], [0.515, [1.000, 0.527, 0.027]], [0.517, [1.000, 0.535, 0.035]], [0.519, [1.000, 0.535, 0.035]], [0.521, [1.000, 0.543, 0.043]], [0.523, [1.000, 0.543, 0.043]], [0.524, [1.000, 0.551, 0.051]], [0.526, [1.000, 0.551, 0.051]], [0.528, [1.000, 0.559, 0.059]], [0.530, [1.000, 0.559, 0.059]], [0.532, [1.000, 0.567, 0.067]], [0.534, [1.000, 0.567, 0.067]], [0.536, [1.000, 0.575, 0.075]], [0.538, [1.000, 0.575, 0.075]], [0.540, [1.000, 0.582, 0.082]], [0.542, [1.000, 0.582, 0.082]], [0.544, [1.000, 0.590, 0.090]], [0.546, [1.000, 0.590, 0.090]], [0.548, [1.000, 0.598, 0.098]], [0.550, [1.000, 0.598, 0.098]], [0.552, [1.000, 0.606, 0.106]], [0.554, [1.000, 0.606, 0.106]], [0.556, [1.000, 0.614, 0.114]], [0.558, [1.000, 0.614, 0.114]], [0.560, [1.000, 0.622, 0.122]], [0.562, [1.000, 0.622, 0.122]], [0.564, [1.000, 0.629, 0.129]], [0.566, [1.000, 0.629, 0.129]], [0.568, [1.000, 0.637, 0.137]], [0.569, [1.000, 0.637, 0.137]], [0.571, [1.000, 0.645, 0.145]], [0.573, [1.000, 0.645, 0.145]], [0.575, [1.000, 0.653, 0.153]], [0.577, [1.000, 0.653, 0.153]], [0.579, [1.000, 0.661, 0.161]], [0.581, [1.000, 0.661, 0.161]], [0.583, [1.000, 0.669, 0.169]], [0.585, [1.000, 0.669, 0.169]], [0.587, [1.000, 0.676, 0.176]], [0.589, [1.000, 0.676, 0.176]], [0.591, [1.000, 0.684, 0.184]], [0.593, [1.000, 0.684, 0.184]], [0.595, [1.000, 0.692, 0.192]], [0.597, [1.000, 0.692, 0.192]], [0.599, [1.000, 0.700, 0.200]], [0.601, [1.000, 0.700, 0.200]], [0.603, [1.000, 0.708, 0.208]], [0.605, [1.000, 0.708, 0.208]], [0.607, [1.000, 0.716, 0.216]], [0.609, [1.000, 0.716, 0.216]], [0.611, [1.000, 0.724, 0.224]], [0.613, [1.000, 0.724, 0.224]], [0.614, [1.000, 0.731, 0.231]], [0.616, [1.000, 0.731, 0.231]], [0.618, [1.000, 0.739, 0.239]], [0.620, [1.000, 0.739, 0.239]], [0.622, [1.000, 0.747, 0.247]], [0.624, [1.000, 0.747, 0.247]], [0.626, [1.000, 0.755, 0.255]], [0.628, [1.000, 0.755, 0.255]], [0.630, [1.000, 0.763, 0.263]], [0.632, [1.000, 0.763, 0.263]], [0.634, [1.000, 0.771, 0.271]], [0.636, [1.000, 0.771, 0.271]], [0.638, [1.000, 0.778, 0.278]], [0.640, [1.000, 0.778, 0.278]], [0.642, [1.000, 0.786, 0.286]], [0.644, [1.000, 0.786, 0.286]], [0.646, [1.000, 0.794, 0.294]], [0.648, [1.000, 0.794, 0.294]], [0.650, [1.000, 0.802, 0.302]], [0.652, [1.000, 0.802, 0.302]], [0.654, [1.000, 0.810, 0.310]], [0.656, [1.000, 0.810, 0.310]], [0.658, [1.000, 0.818, 0.318]], [0.659, [1.000, 0.818, 0.318]], [0.661, [1.000, 0.825, 0.325]], [0.663, [1.000, 0.825, 0.325]], [0.665, [1.000, 0.833, 0.333]], [0.667, [1.000, 0.833, 0.333]], [0.669, [1.000, 0.841, 0.341]], [0.671, [1.000, 0.841, 0.341]], [0.673, [1.000, 0.849, 0.349]], [0.675, [1.000, 0.849, 0.349]], [0.677, [1.000, 0.857, 0.357]], [0.679, [1.000, 0.857, 0.357]], [0.681, [1.000, 0.865, 0.365]], [0.683, [1.000, 0.865, 0.365]], [0.685, [1.000, 0.873, 0.373]], [0.687, [1.000, 0.873, 0.373]], [0.689, [1.000, 0.880, 0.380]], [0.691, [1.000, 0.880, 0.380]], [0.693, [1.000, 0.888, 0.388]], [0.695, [1.000, 0.888, 0.388]], [0.697, [1.000, 0.896, 0.396]], [0.699, [1.000, 0.896, 0.396]], [0.701, [1.000, 0.904, 0.404]], [0.703, [1.000, 0.904, 0.404]], [0.705, [1.000, 0.912, 0.412]], [0.706, [1.000, 0.912, 0.412]], [0.708, [1.000, 0.920, 0.420]], [0.710, [1.000, 0.920, 0.420]], [0.712, [1.000, 0.927, 0.427]], [0.714, [1.000, 0.927, 0.427]], [0.716, [1.000, 0.935, 0.435]], [0.718, [1.000, 0.935, 0.435]], [0.720, [1.000, 0.943, 0.443]], [0.722, [1.000, 0.943, 0.443]], [0.724, [1.000, 0.951, 0.451]], [0.726, [1.000, 0.951, 0.451]], [0.728, [1.000, 0.959, 0.459]], [0.730, [1.000, 0.959, 0.459]], [0.732, [1.000, 0.967, 0.467]], [0.734, [1.000, 0.967, 0.467]], [0.736, [1.000, 0.975, 0.475]], [0.738, [1.000, 0.975, 0.475]], [0.740, [1.000, 0.982, 0.482]], [0.742, [1.000, 0.982, 0.482]], [0.744, [1.000, 0.990, 0.490]], [0.746, [1.000, 0.990, 0.490]], [0.748, [1.000, 0.998, 0.498]], [0.750, [1.000, 0.998, 0.498]], [0.751, [1.000, 1.000, 0.506]], [0.753, [1.000, 1.000, 0.506]], [0.755, [1.000, 1.000, 0.514]], [0.757, [1.000, 1.000, 0.514]], [0.759, [1.000, 1.000, 0.522]], [0.761, [1.000, 1.000, 0.522]], [0.763, [1.000, 1.000, 0.529]], [0.765, [1.000, 1.000, 0.529]], [0.767, [1.000, 1.000, 0.537]], [0.769, [1.000, 1.000, 0.537]], [0.771, [1.000, 1.000, 0.545]], [0.773, [1.000, 1.000, 0.545]], [0.775, [1.000, 1.000, 0.553]], [0.777, [1.000, 1.000, 0.553]], [0.779, [1.000, 1.000, 0.561]], [0.781, [1.000, 1.000, 0.561]], [0.783, [1.000, 1.000, 0.569]], [0.785, [1.000, 1.000, 0.569]], [0.787, [1.000, 1.000, 0.576]], [0.789, [1.000, 1.000, 0.576]], [0.791, [1.000, 1.000, 0.584]], [0.793, [1.000, 1.000, 0.584]], [0.795, [1.000, 1.000, 0.592]], [0.796, [1.000, 1.000, 0.592]], [0.798, [1.000, 1.000, 0.600]], [0.800, [1.000, 1.000, 0.600]], [0.802, [1.000, 1.000, 0.608]], [0.804, [1.000, 1.000, 0.608]], [0.806, [1.000, 1.000, 0.616]], [0.808, [1.000, 1.000, 0.616]], [0.810, [1.000, 1.000, 0.624]], [0.812, [1.000, 1.000, 0.624]], [0.814, [1.000, 1.000, 0.631]], [0.816, [1.000, 1.000, 0.631]], [0.818, [1.000, 1.000, 0.639]], [0.820, [1.000, 1.000, 0.639]], [0.822, [1.000, 1.000, 0.647]], [0.824, [1.000, 1.000, 0.647]], [0.826, [1.000, 1.000, 0.655]], [0.828, [1.000, 1.000, 0.655]], [0.830, [1.000, 1.000, 0.663]], [0.832, [1.000, 1.000, 0.663]], [0.834, [1.000, 1.000, 0.671]], [0.836, [1.000, 1.000, 0.671]], [0.838, [1.000, 1.000, 0.678]], [0.840, [1.000, 1.000, 0.678]], [0.841, [1.000, 1.000, 0.686]], [0.843, [1.000, 1.000, 0.686]], [0.845, [1.000, 1.000, 0.694]], [0.847, [1.000, 1.000, 0.694]], [0.849, [1.000, 1.000, 0.702]], [0.851, [1.000, 1.000, 0.702]], [0.853, [1.000, 1.000, 0.710]], [0.855, [1.000, 1.000, 0.710]], [0.857, [1.000, 1.000, 0.718]], [0.859, [1.000, 1.000, 0.718]], [0.861, [1.000, 1.000, 0.725]], [0.863, [1.000, 1.000, 0.725]], [0.865, [1.000, 1.000, 0.733]], [0.867, [1.000, 1.000, 0.733]], [0.869, [1.000, 1.000, 0.741]], [0.871, [1.000, 1.000, 0.741]], [0.873, [1.000, 1.000, 0.749]], [0.875, [1.000, 1.000, 0.749]], [0.877, [1.000, 1.000, 0.757]], [0.879, [1.000, 1.000, 0.757]], [0.881, [1.000, 1.000, 0.765]], [0.883, [1.000, 1.000, 0.765]], [0.885, [1.000, 1.000, 0.773]], [0.886, [1.000, 1.000, 0.773]], [0.888, [1.000, 1.000, 0.780]], [0.890, [1.000, 1.000, 0.780]], [0.892, [1.000, 1.000, 0.788]], [0.894, [1.000, 1.000, 0.788]], [0.896, [1.000, 1.000, 0.796]], [0.898, [1.000, 1.000, 0.796]], [0.900, [1.000, 1.000, 0.804]], [0.902, [1.000, 1.000, 0.804]], [0.904, [1.000, 1.000, 0.812]], [0.906, [1.000, 1.000, 0.812]], [0.908, [1.000, 1.000, 0.820]], [0.910, [1.000, 1.000, 0.820]], [0.912, [1.000, 1.000, 0.827]], [0.914, [1.000, 1.000, 0.827]], [0.916, [1.000, 1.000, 0.835]], [0.918, [1.000, 1.000, 0.835]], [0.920, [1.000, 1.000, 0.843]], [0.922, [1.000, 1.000, 0.843]], [0.924, [1.000, 1.000, 0.851]], [0.926, [1.000, 1.000, 0.851]], [0.928, [1.000, 1.000, 0.859]], [0.930, [1.000, 1.000, 0.859]], [0.932, [1.000, 1.000, 0.867]], [0.933, [1.000, 1.000, 0.867]], [0.935, [1.000, 1.000, 0.875]], [0.937, [1.000, 1.000, 0.875]], [0.939, [1.000, 1.000, 0.882]], [0.941, [1.000, 1.000, 0.882]], [0.943, [1.000, 1.000, 0.890]], [0.945, [1.000, 1.000, 0.890]], [0.947, [1.000, 1.000, 0.898]], [0.949, [1.000, 1.000, 0.898]], [0.951, [1.000, 1.000, 0.906]], [0.953, [1.000, 1.000, 0.906]], [0.955, [1.000, 1.000, 0.914]], [0.957, [1.000, 1.000, 0.914]], [0.959, [1.000, 1.000, 0.922]], [0.961, [1.000, 1.000, 0.922]], [0.963, [1.000, 1.000, 0.929]], [0.965, [1.000, 1.000, 0.929]], [0.967, [1.000, 1.000, 0.937]], [0.969, [1.000, 1.000, 0.937]], [0.971, [1.000, 1.000, 0.945]], [0.973, [1.000, 1.000, 0.945]], [0.975, [1.000, 1.000, 0.953]], [0.977, [1.000, 1.000, 0.953]], [0.978, [1.000, 1.000, 0.961]], [0.980, [1.000, 1.000, 0.961]], [0.982, [1.000, 1.000, 0.969]], [0.984, [1.000, 1.000, 0.969]], [0.986, [1.000, 1.000, 0.976]], [0.988, [1.000, 1.000, 0.976]], [0.990, [1.000, 1.000, 0.984]], [0.992, [1.000, 1.000, 0.984]], [0.994, [1.000, 1.000, 0.992]], [0.996, [1.000, 1.000, 0.992]], [0.998, [1.000, 1.000, 1.000]], [1.000, [1.000, 1.000, 1.000]]];
+var autumn = [[0.000, [1.000, 0.000, 0.000]], [0.002, [1.000, 0.000, 0.000]], [0.004, [1.000, 0.004, 0.000]], [0.006, [1.000, 0.004, 0.000]], [0.008, [1.000, 0.008, 0.000]], [0.010, [1.000, 0.008, 0.000]], [0.012, [1.000, 0.012, 0.000]], [0.014, [1.000, 0.012, 0.000]], [0.016, [1.000, 0.016, 0.000]], [0.018, [1.000, 0.016, 0.000]], [0.020, [1.000, 0.020, 0.000]], [0.022, [1.000, 0.020, 0.000]], [0.023, [1.000, 0.024, 0.000]], [0.025, [1.000, 0.024, 0.000]], [0.027, [1.000, 0.027, 0.000]], [0.029, [1.000, 0.027, 0.000]], [0.031, [1.000, 0.031, 0.000]], [0.033, [1.000, 0.031, 0.000]], [0.035, [1.000, 0.035, 0.000]], [0.037, [1.000, 0.035, 0.000]], [0.039, [1.000, 0.039, 0.000]], [0.041, [1.000, 0.039, 0.000]], [0.043, [1.000, 0.043, 0.000]], [0.045, [1.000, 0.043, 0.000]], [0.047, [1.000, 0.047, 0.000]], [0.049, [1.000, 0.047, 0.000]], [0.051, [1.000, 0.051, 0.000]], [0.053, [1.000, 0.051, 0.000]], [0.055, [1.000, 0.055, 0.000]], [0.057, [1.000, 0.055, 0.000]], [0.059, [1.000, 0.059, 0.000]], [0.061, [1.000, 0.059, 0.000]], [0.063, [1.000, 0.063, 0.000]], [0.065, [1.000, 0.063, 0.000]], [0.067, [1.000, 0.067, 0.000]], [0.068, [1.000, 0.067, 0.000]], [0.070, [1.000, 0.071, 0.000]], [0.072, [1.000, 0.071, 0.000]], [0.074, [1.000, 0.075, 0.000]], [0.076, [1.000, 0.075, 0.000]], [0.078, [1.000, 0.078, 0.000]], [0.080, [1.000, 0.078, 0.000]], [0.082, [1.000, 0.082, 0.000]], [0.084, [1.000, 0.082, 0.000]], [0.086, [1.000, 0.086, 0.000]], [0.088, [1.000, 0.086, 0.000]], [0.090, [1.000, 0.090, 0.000]], [0.092, [1.000, 0.090, 0.000]], [0.094, [1.000, 0.094, 0.000]], [0.096, [1.000, 0.094, 0.000]], [0.098, [1.000, 0.098, 0.000]], [0.100, [1.000, 0.098, 0.000]], [0.102, [1.000, 0.102, 0.000]], [0.104, [1.000, 0.102, 0.000]], [0.106, [1.000, 0.106, 0.000]], [0.108, [1.000, 0.106, 0.000]], [0.110, [1.000, 0.110, 0.000]], [0.112, [1.000, 0.110, 0.000]], [0.114, [1.000, 0.114, 0.000]], [0.115, [1.000, 0.114, 0.000]], [0.117, [1.000, 0.118, 0.000]], [0.119, [1.000, 0.118, 0.000]], [0.121, [1.000, 0.122, 0.000]], [0.123, [1.000, 0.122, 0.000]], [0.125, [1.000, 0.125, 0.000]], [0.127, [1.000, 0.125, 0.000]], [0.129, [1.000, 0.129, 0.000]], [0.131, [1.000, 0.129, 0.000]], [0.133, [1.000, 0.133, 0.000]], [0.135, [1.000, 0.133, 0.000]], [0.137, [1.000, 0.137, 0.000]], [0.139, [1.000, 0.137, 0.000]], [0.141, [1.000, 0.141, 0.000]], [0.143, [1.000, 0.141, 0.000]], [0.145, [1.000, 0.145, 0.000]], [0.147, [1.000, 0.145, 0.000]], [0.149, [1.000, 0.149, 0.000]], [0.151, [1.000, 0.149, 0.000]], [0.153, [1.000, 0.153, 0.000]], [0.155, [1.000, 0.153, 0.000]], [0.157, [1.000, 0.157, 0.000]], [0.159, [1.000, 0.157, 0.000]], [0.160, [1.000, 0.161, 0.000]], [0.162, [1.000, 0.161, 0.000]], [0.164, [1.000, 0.165, 0.000]], [0.166, [1.000, 0.165, 0.000]], [0.168, [1.000, 0.169, 0.000]], [0.170, [1.000, 0.169, 0.000]], [0.172, [1.000, 0.173, 0.000]], [0.174, [1.000, 0.173, 0.000]], [0.176, [1.000, 0.176, 0.000]], [0.178, [1.000, 0.176, 0.000]], [0.180, [1.000, 0.180, 0.000]], [0.182, [1.000, 0.180, 0.000]], [0.184, [1.000, 0.184, 0.000]], [0.186, [1.000, 0.184, 0.000]], [0.188, [1.000, 0.188, 0.000]], [0.190, [1.000, 0.188, 0.000]], [0.192, [1.000, 0.192, 0.000]], [0.194, [1.000, 0.192, 0.000]], [0.196, [1.000, 0.196, 0.000]], [0.198, [1.000, 0.196, 0.000]], [0.200, [1.000, 0.200, 0.000]], [0.202, [1.000, 0.200, 0.000]], [0.204, [1.000, 0.204, 0.000]], [0.205, [1.000, 0.204, 0.000]], [0.207, [1.000, 0.208, 0.000]], [0.209, [1.000, 0.208, 0.000]], [0.211, [1.000, 0.212, 0.000]], [0.213, [1.000, 0.212, 0.000]], [0.215, [1.000, 0.216, 0.000]], [0.217, [1.000, 0.216, 0.000]], [0.219, [1.000, 0.220, 0.000]], [0.221, [1.000, 0.220, 0.000]], [0.223, [1.000, 0.224, 0.000]], [0.225, [1.000, 0.224, 0.000]], [0.227, [1.000, 0.227, 0.000]], [0.229, [1.000, 0.227, 0.000]], [0.231, [1.000, 0.231, 0.000]], [0.233, [1.000, 0.231, 0.000]], [0.235, [1.000, 0.235, 0.000]], [0.237, [1.000, 0.235, 0.000]], [0.239, [1.000, 0.239, 0.000]], [0.241, [1.000, 0.239, 0.000]], [0.243, [1.000, 0.243, 0.000]], [0.245, [1.000, 0.243, 0.000]], [0.247, [1.000, 0.247, 0.000]], [0.249, [1.000, 0.247, 0.000]], [0.250, [1.000, 0.251, 0.000]], [0.252, [1.000, 0.251, 0.000]], [0.254, [1.000, 0.255, 0.000]], [0.256, [1.000, 0.255, 0.000]], [0.258, [1.000, 0.259, 0.000]], [0.260, [1.000, 0.259, 0.000]], [0.262, [1.000, 0.263, 0.000]], [0.264, [1.000, 0.263, 0.000]], [0.266, [1.000, 0.267, 0.000]], [0.268, [1.000, 0.267, 0.000]], [0.270, [1.000, 0.271, 0.000]], [0.272, [1.000, 0.271, 0.000]], [0.274, [1.000, 0.275, 0.000]], [0.276, [1.000, 0.275, 0.000]], [0.278, [1.000, 0.278, 0.000]], [0.280, [1.000, 0.278, 0.000]], [0.282, [1.000, 0.282, 0.000]], [0.284, [1.000, 0.282, 0.000]], [0.286, [1.000, 0.286, 0.000]], [0.288, [1.000, 0.286, 0.000]], [0.290, [1.000, 0.290, 0.000]], [0.292, [1.000, 0.290, 0.000]], [0.294, [1.000, 0.294, 0.000]], [0.295, [1.000, 0.294, 0.000]], [0.297, [1.000, 0.298, 0.000]], [0.299, [1.000, 0.298, 0.000]], [0.301, [1.000, 0.302, 0.000]], [0.303, [1.000, 0.302, 0.000]], [0.305, [1.000, 0.306, 0.000]], [0.307, [1.000, 0.306, 0.000]], [0.309, [1.000, 0.310, 0.000]], [0.311, [1.000, 0.310, 0.000]], [0.313, [1.000, 0.314, 0.000]], [0.315, [1.000, 0.314, 0.000]], [0.317, [1.000, 0.318, 0.000]], [0.319, [1.000, 0.318, 0.000]], [0.321, [1.000, 0.322, 0.000]], [0.323, [1.000, 0.322, 0.000]], [0.325, [1.000, 0.325, 0.000]], [0.327, [1.000, 0.325, 0.000]], [0.329, [1.000, 0.329, 0.000]], [0.331, [1.000, 0.329, 0.000]], [0.333, [1.000, 0.333, 0.000]], [0.335, [1.000, 0.333, 0.000]], [0.337, [1.000, 0.337, 0.000]], [0.339, [1.000, 0.337, 0.000]], [0.341, [1.000, 0.341, 0.000]], [0.342, [1.000, 0.341, 0.000]], [0.344, [1.000, 0.345, 0.000]], [0.346, [1.000, 0.345, 0.000]], [0.348, [1.000, 0.349, 0.000]], [0.350, [1.000, 0.349, 0.000]], [0.352, [1.000, 0.353, 0.000]], [0.354, [1.000, 0.353, 0.000]], [0.356, [1.000, 0.357, 0.000]], [0.358, [1.000, 0.357, 0.000]], [0.360, [1.000, 0.361, 0.000]], [0.362, [1.000, 0.361, 0.000]], [0.364, [1.000, 0.365, 0.000]], [0.366, [1.000, 0.365, 0.000]], [0.368, [1.000, 0.369, 0.000]], [0.370, [1.000, 0.369, 0.000]], [0.372, [1.000, 0.373, 0.000]], [0.374, [1.000, 0.373, 0.000]], [0.376, [1.000, 0.376, 0.000]], [0.378, [1.000, 0.376, 0.000]], [0.380, [1.000, 0.380, 0.000]], [0.382, [1.000, 0.380, 0.000]], [0.384, [1.000, 0.384, 0.000]], [0.386, [1.000, 0.384, 0.000]], [0.387, [1.000, 0.388, 0.000]], [0.389, [1.000, 0.388, 0.000]], [0.391, [1.000, 0.392, 0.000]], [0.393, [1.000, 0.392, 0.000]], [0.395, [1.000, 0.396, 0.000]], [0.397, [1.000, 0.396, 0.000]], [0.399, [1.000, 0.400, 0.000]], [0.401, [1.000, 0.400, 0.000]], [0.403, [1.000, 0.404, 0.000]], [0.405, [1.000, 0.404, 0.000]], [0.407, [1.000, 0.408, 0.000]], [0.409, [1.000, 0.408, 0.000]], [0.411, [1.000, 0.412, 0.000]], [0.413, [1.000, 0.412, 0.000]], [0.415, [1.000, 0.416, 0.000]], [0.417, [1.000, 0.416, 0.000]], [0.419, [1.000, 0.420, 0.000]], [0.421, [1.000, 0.420, 0.000]], [0.423, [1.000, 0.424, 0.000]], [0.425, [1.000, 0.424, 0.000]], [0.427, [1.000, 0.427, 0.000]], [0.429, [1.000, 0.427, 0.000]], [0.431, [1.000, 0.431, 0.000]], [0.432, [1.000, 0.431, 0.000]], [0.434, [1.000, 0.435, 0.000]], [0.436, [1.000, 0.435, 0.000]], [0.438, [1.000, 0.439, 0.000]], [0.440, [1.000, 0.439, 0.000]], [0.442, [1.000, 0.443, 0.000]], [0.444, [1.000, 0.443, 0.000]], [0.446, [1.000, 0.447, 0.000]], [0.448, [1.000, 0.447, 0.000]], [0.450, [1.000, 0.451, 0.000]], [0.452, [1.000, 0.451, 0.000]], [0.454, [1.000, 0.455, 0.000]], [0.456, [1.000, 0.455, 0.000]], [0.458, [1.000, 0.459, 0.000]], [0.460, [1.000, 0.459, 0.000]], [0.462, [1.000, 0.463, 0.000]], [0.464, [1.000, 0.463, 0.000]], [0.466, [1.000, 0.467, 0.000]], [0.468, [1.000, 0.467, 0.000]], [0.470, [1.000, 0.471, 0.000]], [0.472, [1.000, 0.471, 0.000]], [0.474, [1.000, 0.475, 0.000]], [0.476, [1.000, 0.475, 0.000]], [0.477, [1.000, 0.478, 0.000]], [0.479, [1.000, 0.478, 0.000]], [0.481, [1.000, 0.482, 0.000]], [0.483, [1.000, 0.482, 0.000]], [0.485, [1.000, 0.486, 0.000]], [0.487, [1.000, 0.486, 0.000]], [0.489, [1.000, 0.490, 0.000]], [0.491, [1.000, 0.490, 0.000]], [0.493, [1.000, 0.494, 0.000]], [0.495, [1.000, 0.494, 0.000]], [0.497, [1.000, 0.498, 0.000]], [0.499, [1.000, 0.498, 0.000]], [0.501, [1.000, 0.502, 0.000]], [0.503, [1.000, 0.502, 0.000]], [0.505, [1.000, 0.506, 0.000]], [0.507, [1.000, 0.506, 0.000]], [0.509, [1.000, 0.510, 0.000]], [0.511, [1.000, 0.510, 0.000]], [0.513, [1.000, 0.514, 0.000]], [0.515, [1.000, 0.514, 0.000]], [0.517, [1.000, 0.518, 0.000]], [0.519, [1.000, 0.518, 0.000]], [0.521, [1.000, 0.522, 0.000]], [0.523, [1.000, 0.522, 0.000]], [0.524, [1.000, 0.525, 0.000]], [0.526, [1.000, 0.525, 0.000]], [0.528, [1.000, 0.529, 0.000]], [0.530, [1.000, 0.529, 0.000]], [0.532, [1.000, 0.533, 0.000]], [0.534, [1.000, 0.533, 0.000]], [0.536, [1.000, 0.537, 0.000]], [0.538, [1.000, 0.537, 0.000]], [0.540, [1.000, 0.541, 0.000]], [0.542, [1.000, 0.541, 0.000]], [0.544, [1.000, 0.545, 0.000]], [0.546, [1.000, 0.545, 0.000]], [0.548, [1.000, 0.549, 0.000]], [0.550, [1.000, 0.549, 0.000]], [0.552, [1.000, 0.553, 0.000]], [0.554, [1.000, 0.553, 0.000]], [0.556, [1.000, 0.557, 0.000]], [0.558, [1.000, 0.557, 0.000]], [0.560, [1.000, 0.561, 0.000]], [0.562, [1.000, 0.561, 0.000]], [0.564, [1.000, 0.565, 0.000]], [0.566, [1.000, 0.565, 0.000]], [0.568, [1.000, 0.569, 0.000]], [0.569, [1.000, 0.569, 0.000]], [0.571, [1.000, 0.573, 0.000]], [0.573, [1.000, 0.573, 0.000]], [0.575, [1.000, 0.576, 0.000]], [0.577, [1.000, 0.576, 0.000]], [0.579, [1.000, 0.580, 0.000]], [0.581, [1.000, 0.580, 0.000]], [0.583, [1.000, 0.584, 0.000]], [0.585, [1.000, 0.584, 0.000]], [0.587, [1.000, 0.588, 0.000]], [0.589, [1.000, 0.588, 0.000]], [0.591, [1.000, 0.592, 0.000]], [0.593, [1.000, 0.592, 0.000]], [0.595, [1.000, 0.596, 0.000]], [0.597, [1.000, 0.596, 0.000]], [0.599, [1.000, 0.600, 0.000]], [0.601, [1.000, 0.600, 0.000]], [0.603, [1.000, 0.604, 0.000]], [0.605, [1.000, 0.604, 0.000]], [0.607, [1.000, 0.608, 0.000]], [0.609, [1.000, 0.608, 0.000]], [0.611, [1.000, 0.612, 0.000]], [0.613, [1.000, 0.612, 0.000]], [0.614, [1.000, 0.616, 0.000]], [0.616, [1.000, 0.616, 0.000]], [0.618, [1.000, 0.620, 0.000]], [0.620, [1.000, 0.620, 0.000]], [0.622, [1.000, 0.624, 0.000]], [0.624, [1.000, 0.624, 0.000]], [0.626, [1.000, 0.627, 0.000]], [0.628, [1.000, 0.627, 0.000]], [0.630, [1.000, 0.631, 0.000]], [0.632, [1.000, 0.631, 0.000]], [0.634, [1.000, 0.635, 0.000]], [0.636, [1.000, 0.635, 0.000]], [0.638, [1.000, 0.639, 0.000]], [0.640, [1.000, 0.639, 0.000]], [0.642, [1.000, 0.643, 0.000]], [0.644, [1.000, 0.643, 0.000]], [0.646, [1.000, 0.647, 0.000]], [0.648, [1.000, 0.647, 0.000]], [0.650, [1.000, 0.651, 0.000]], [0.652, [1.000, 0.651, 0.000]], [0.654, [1.000, 0.655, 0.000]], [0.656, [1.000, 0.655, 0.000]], [0.658, [1.000, 0.659, 0.000]], [0.659, [1.000, 0.659, 0.000]], [0.661, [1.000, 0.663, 0.000]], [0.663, [1.000, 0.663, 0.000]], [0.665, [1.000, 0.667, 0.000]], [0.667, [1.000, 0.667, 0.000]], [0.669, [1.000, 0.671, 0.000]], [0.671, [1.000, 0.671, 0.000]], [0.673, [1.000, 0.675, 0.000]], [0.675, [1.000, 0.675, 0.000]], [0.677, [1.000, 0.678, 0.000]], [0.679, [1.000, 0.678, 0.000]], [0.681, [1.000, 0.682, 0.000]], [0.683, [1.000, 0.682, 0.000]], [0.685, [1.000, 0.686, 0.000]], [0.687, [1.000, 0.686, 0.000]], [0.689, [1.000, 0.690, 0.000]], [0.691, [1.000, 0.690, 0.000]], [0.693, [1.000, 0.694, 0.000]], [0.695, [1.000, 0.694, 0.000]], [0.697, [1.000, 0.698, 0.000]], [0.699, [1.000, 0.698, 0.000]], [0.701, [1.000, 0.702, 0.000]], [0.703, [1.000, 0.702, 0.000]], [0.705, [1.000, 0.706, 0.000]], [0.706, [1.000, 0.706, 0.000]], [0.708, [1.000, 0.710, 0.000]], [0.710, [1.000, 0.710, 0.000]], [0.712, [1.000, 0.714, 0.000]], [0.714, [1.000, 0.714, 0.000]], [0.716, [1.000, 0.718, 0.000]], [0.718, [1.000, 0.718, 0.000]], [0.720, [1.000, 0.722, 0.000]], [0.722, [1.000, 0.722, 0.000]], [0.724, [1.000, 0.725, 0.000]], [0.726, [1.000, 0.725, 0.000]], [0.728, [1.000, 0.729, 0.000]], [0.730, [1.000, 0.729, 0.000]], [0.732, [1.000, 0.733, 0.000]], [0.734, [1.000, 0.733, 0.000]], [0.736, [1.000, 0.737, 0.000]], [0.738, [1.000, 0.737, 0.000]], [0.740, [1.000, 0.741, 0.000]], [0.742, [1.000, 0.741, 0.000]], [0.744, [1.000, 0.745, 0.000]], [0.746, [1.000, 0.745, 0.000]], [0.748, [1.000, 0.749, 0.000]], [0.750, [1.000, 0.749, 0.000]], [0.751, [1.000, 0.753, 0.000]], [0.753, [1.000, 0.753, 0.000]], [0.755, [1.000, 0.757, 0.000]], [0.757, [1.000, 0.757, 0.000]], [0.759, [1.000, 0.761, 0.000]], [0.761, [1.000, 0.761, 0.000]], [0.763, [1.000, 0.765, 0.000]], [0.765, [1.000, 0.765, 0.000]], [0.767, [1.000, 0.769, 0.000]], [0.769, [1.000, 0.769, 0.000]], [0.771, [1.000, 0.773, 0.000]], [0.773, [1.000, 0.773, 0.000]], [0.775, [1.000, 0.776, 0.000]], [0.777, [1.000, 0.776, 0.000]], [0.779, [1.000, 0.780, 0.000]], [0.781, [1.000, 0.780, 0.000]], [0.783, [1.000, 0.784, 0.000]], [0.785, [1.000, 0.784, 0.000]], [0.787, [1.000, 0.788, 0.000]], [0.789, [1.000, 0.788, 0.000]], [0.791, [1.000, 0.792, 0.000]], [0.793, [1.000, 0.792, 0.000]], [0.795, [1.000, 0.796, 0.000]], [0.796, [1.000, 0.796, 0.000]], [0.798, [1.000, 0.800, 0.000]], [0.800, [1.000, 0.800, 0.000]], [0.802, [1.000, 0.804, 0.000]], [0.804, [1.000, 0.804, 0.000]], [0.806, [1.000, 0.808, 0.000]], [0.808, [1.000, 0.808, 0.000]], [0.810, [1.000, 0.812, 0.000]], [0.812, [1.000, 0.812, 0.000]], [0.814, [1.000, 0.816, 0.000]], [0.816, [1.000, 0.816, 0.000]], [0.818, [1.000, 0.820, 0.000]], [0.820, [1.000, 0.820, 0.000]], [0.822, [1.000, 0.824, 0.000]], [0.824, [1.000, 0.824, 0.000]], [0.826, [1.000, 0.827, 0.000]], [0.828, [1.000, 0.827, 0.000]], [0.830, [1.000, 0.831, 0.000]], [0.832, [1.000, 0.831, 0.000]], [0.834, [1.000, 0.835, 0.000]], [0.836, [1.000, 0.835, 0.000]], [0.838, [1.000, 0.839, 0.000]], [0.840, [1.000, 0.839, 0.000]], [0.841, [1.000, 0.843, 0.000]], [0.843, [1.000, 0.843, 0.000]], [0.845, [1.000, 0.847, 0.000]], [0.847, [1.000, 0.847, 0.000]], [0.849, [1.000, 0.851, 0.000]], [0.851, [1.000, 0.851, 0.000]], [0.853, [1.000, 0.855, 0.000]], [0.855, [1.000, 0.855, 0.000]], [0.857, [1.000, 0.859, 0.000]], [0.859, [1.000, 0.859, 0.000]], [0.861, [1.000, 0.863, 0.000]], [0.863, [1.000, 0.863, 0.000]], [0.865, [1.000, 0.867, 0.000]], [0.867, [1.000, 0.867, 0.000]], [0.869, [1.000, 0.871, 0.000]], [0.871, [1.000, 0.871, 0.000]], [0.873, [1.000, 0.875, 0.000]], [0.875, [1.000, 0.875, 0.000]], [0.877, [1.000, 0.878, 0.000]], [0.879, [1.000, 0.878, 0.000]], [0.881, [1.000, 0.882, 0.000]], [0.883, [1.000, 0.882, 0.000]], [0.885, [1.000, 0.886, 0.000]], [0.886, [1.000, 0.886, 0.000]], [0.888, [1.000, 0.890, 0.000]], [0.890, [1.000, 0.890, 0.000]], [0.892, [1.000, 0.894, 0.000]], [0.894, [1.000, 0.894, 0.000]], [0.896, [1.000, 0.898, 0.000]], [0.898, [1.000, 0.898, 0.000]], [0.900, [1.000, 0.902, 0.000]], [0.902, [1.000, 0.902, 0.000]], [0.904, [1.000, 0.906, 0.000]], [0.906, [1.000, 0.906, 0.000]], [0.908, [1.000, 0.910, 0.000]], [0.910, [1.000, 0.910, 0.000]], [0.912, [1.000, 0.914, 0.000]], [0.914, [1.000, 0.914, 0.000]], [0.916, [1.000, 0.918, 0.000]], [0.918, [1.000, 0.918, 0.000]], [0.920, [1.000, 0.922, 0.000]], [0.922, [1.000, 0.922, 0.000]], [0.924, [1.000, 0.925, 0.000]], [0.926, [1.000, 0.925, 0.000]], [0.928, [1.000, 0.929, 0.000]], [0.930, [1.000, 0.929, 0.000]], [0.932, [1.000, 0.933, 0.000]], [0.933, [1.000, 0.933, 0.000]], [0.935, [1.000, 0.937, 0.000]], [0.937, [1.000, 0.937, 0.000]], [0.939, [1.000, 0.941, 0.000]], [0.941, [1.000, 0.941, 0.000]], [0.943, [1.000, 0.945, 0.000]], [0.945, [1.000, 0.945, 0.000]], [0.947, [1.000, 0.949, 0.000]], [0.949, [1.000, 0.949, 0.000]], [0.951, [1.000, 0.953, 0.000]], [0.953, [1.000, 0.953, 0.000]], [0.955, [1.000, 0.957, 0.000]], [0.957, [1.000, 0.957, 0.000]], [0.959, [1.000, 0.961, 0.000]], [0.961, [1.000, 0.961, 0.000]], [0.963, [1.000, 0.965, 0.000]], [0.965, [1.000, 0.965, 0.000]], [0.967, [1.000, 0.969, 0.000]], [0.969, [1.000, 0.969, 0.000]], [0.971, [1.000, 0.973, 0.000]], [0.973, [1.000, 0.973, 0.000]], [0.975, [1.000, 0.976, 0.000]], [0.977, [1.000, 0.976, 0.000]], [0.978, [1.000, 0.980, 0.000]], [0.980, [1.000, 0.980, 0.000]], [0.982, [1.000, 0.984, 0.000]], [0.984, [1.000, 0.984, 0.000]], [0.986, [1.000, 0.988, 0.000]], [0.988, [1.000, 0.988, 0.000]], [0.990, [1.000, 0.992, 0.000]], [0.992, [1.000, 0.992, 0.000]], [0.994, [1.000, 0.996, 0.000]], [0.996, [1.000, 0.996, 0.000]], [0.998, [1.000, 1.000, 0.000]], [1.000, [1.000, 1.000, 0.000]]];
+var bone = [[0.000, [0.000, 0.000, 0.000]], [0.002, [0.000, 0.000, 0.000]], [0.004, [0.003, 0.003, 0.005]], [0.006, [0.003, 0.003, 0.005]], [0.008, [0.007, 0.007, 0.010]], [0.010, [0.007, 0.007, 0.010]], [0.012, [0.010, 0.010, 0.014]], [0.014, [0.010, 0.010, 0.014]], [0.016, [0.014, 0.014, 0.019]], [0.018, [0.014, 0.014, 0.019]], [0.020, [0.017, 0.017, 0.024]], [0.022, [0.017, 0.017, 0.024]], [0.023, [0.021, 0.021, 0.029]], [0.025, [0.021, 0.021, 0.029]], [0.027, [0.024, 0.024, 0.033]], [0.029, [0.024, 0.024, 0.033]], [0.031, [0.027, 0.027, 0.038]], [0.033, [0.027, 0.027, 0.038]], [0.035, [0.031, 0.031, 0.043]], [0.037, [0.031, 0.031, 0.043]], [0.039, [0.034, 0.034, 0.048]], [0.041, [0.034, 0.034, 0.048]], [0.043, [0.038, 0.038, 0.053]], [0.045, [0.038, 0.038, 0.053]], [0.047, [0.041, 0.041, 0.057]], [0.049, [0.041, 0.041, 0.057]], [0.051, [0.045, 0.045, 0.062]], [0.053, [0.045, 0.045, 0.062]], [0.055, [0.048, 0.048, 0.067]], [0.057, [0.048, 0.048, 0.067]], [0.059, [0.051, 0.051, 0.072]], [0.061, [0.051, 0.051, 0.072]], [0.063, [0.055, 0.055, 0.076]], [0.065, [0.055, 0.055, 0.076]], [0.067, [0.058, 0.058, 0.081]], [0.068, [0.058, 0.058, 0.081]], [0.070, [0.062, 0.062, 0.086]], [0.072, [0.062, 0.062, 0.086]], [0.074, [0.065, 0.065, 0.091]], [0.076, [0.065, 0.065, 0.091]], [0.078, [0.069, 0.069, 0.095]], [0.080, [0.069, 0.069, 0.095]], [0.082, [0.072, 0.072, 0.100]], [0.084, [0.072, 0.072, 0.100]], [0.086, [0.075, 0.075, 0.105]], [0.088, [0.075, 0.075, 0.105]], [0.090, [0.079, 0.079, 0.110]], [0.092, [0.079, 0.079, 0.110]], [0.094, [0.082, 0.082, 0.115]], [0.096, [0.082, 0.082, 0.115]], [0.098, [0.086, 0.086, 0.119]], [0.100, [0.086, 0.086, 0.119]], [0.102, [0.089, 0.089, 0.124]], [0.104, [0.089, 0.089, 0.124]], [0.106, [0.093, 0.093, 0.129]], [0.108, [0.093, 0.093, 0.129]], [0.110, [0.096, 0.096, 0.134]], [0.112, [0.096, 0.096, 0.134]], [0.114, [0.100, 0.100, 0.138]], [0.115, [0.100, 0.100, 0.138]], [0.117, [0.103, 0.103, 0.143]], [0.119, [0.103, 0.103, 0.143]], [0.121, [0.106, 0.106, 0.148]], [0.123, [0.106, 0.106, 0.148]], [0.125, [0.110, 0.110, 0.153]], [0.127, [0.110, 0.110, 0.153]], [0.129, [0.113, 0.113, 0.158]], [0.131, [0.113, 0.113, 0.158]], [0.133, [0.117, 0.117, 0.162]], [0.135, [0.117, 0.117, 0.162]], [0.137, [0.120, 0.120, 0.167]], [0.139, [0.120, 0.120, 0.167]], [0.141, [0.124, 0.124, 0.172]], [0.143, [0.124, 0.124, 0.172]], [0.145, [0.127, 0.127, 0.177]], [0.147, [0.127, 0.127, 0.177]], [0.149, [0.130, 0.130, 0.181]], [0.151, [0.130, 0.130, 0.181]], [0.153, [0.134, 0.134, 0.186]], [0.155, [0.134, 0.134, 0.186]], [0.157, [0.137, 0.137, 0.191]], [0.159, [0.137, 0.137, 0.191]], [0.160, [0.141, 0.141, 0.196]], [0.162, [0.141, 0.141, 0.196]], [0.164, [0.144, 0.144, 0.201]], [0.166, [0.144, 0.144, 0.201]], [0.168, [0.148, 0.148, 0.205]], [0.170, [0.148, 0.148, 0.205]], [0.172, [0.151, 0.151, 0.210]], [0.174, [0.151, 0.151, 0.210]], [0.176, [0.154, 0.154, 0.215]], [0.178, [0.154, 0.154, 0.215]], [0.180, [0.158, 0.158, 0.220]], [0.182, [0.158, 0.158, 0.220]], [0.184, [0.161, 0.161, 0.224]], [0.186, [0.161, 0.161, 0.224]], [0.188, [0.165, 0.165, 0.229]], [0.190, [0.165, 0.165, 0.229]], [0.192, [0.168, 0.168, 0.234]], [0.194, [0.168, 0.168, 0.234]], [0.196, [0.172, 0.172, 0.239]], [0.198, [0.172, 0.172, 0.239]], [0.200, [0.175, 0.175, 0.243]], [0.202, [0.175, 0.175, 0.243]], [0.204, [0.178, 0.178, 0.248]], [0.205, [0.178, 0.178, 0.248]], [0.207, [0.182, 0.182, 0.253]], [0.209, [0.182, 0.182, 0.253]], [0.211, [0.185, 0.185, 0.258]], [0.213, [0.185, 0.185, 0.258]], [0.215, [0.189, 0.189, 0.263]], [0.217, [0.189, 0.189, 0.263]], [0.219, [0.192, 0.192, 0.267]], [0.221, [0.192, 0.192, 0.267]], [0.223, [0.196, 0.196, 0.272]], [0.225, [0.196, 0.196, 0.272]], [0.227, [0.199, 0.199, 0.277]], [0.229, [0.199, 0.199, 0.277]], [0.231, [0.202, 0.202, 0.282]], [0.233, [0.202, 0.202, 0.282]], [0.235, [0.206, 0.206, 0.286]], [0.237, [0.206, 0.206, 0.286]], [0.239, [0.209, 0.209, 0.291]], [0.241, [0.209, 0.209, 0.291]], [0.243, [0.213, 0.213, 0.296]], [0.245, [0.213, 0.213, 0.296]], [0.247, [0.216, 0.216, 0.301]], [0.249, [0.216, 0.216, 0.301]], [0.250, [0.220, 0.220, 0.306]], [0.252, [0.220, 0.220, 0.306]], [0.254, [0.223, 0.223, 0.310]], [0.256, [0.223, 0.223, 0.310]], [0.258, [0.226, 0.226, 0.315]], [0.260, [0.226, 0.226, 0.315]], [0.262, [0.230, 0.230, 0.320]], [0.264, [0.230, 0.230, 0.320]], [0.266, [0.233, 0.233, 0.325]], [0.268, [0.233, 0.233, 0.325]], [0.270, [0.237, 0.237, 0.329]], [0.272, [0.237, 0.237, 0.329]], [0.274, [0.240, 0.240, 0.334]], [0.276, [0.240, 0.240, 0.334]], [0.278, [0.244, 0.244, 0.339]], [0.280, [0.244, 0.244, 0.339]], [0.282, [0.247, 0.247, 0.344]], [0.284, [0.247, 0.247, 0.344]], [0.286, [0.250, 0.250, 0.349]], [0.288, [0.250, 0.250, 0.349]], [0.290, [0.254, 0.254, 0.353]], [0.292, [0.254, 0.254, 0.353]], [0.294, [0.257, 0.257, 0.358]], [0.295, [0.257, 0.257, 0.358]], [0.297, [0.261, 0.261, 0.363]], [0.299, [0.261, 0.261, 0.363]], [0.301, [0.264, 0.264, 0.368]], [0.303, [0.264, 0.264, 0.368]], [0.305, [0.268, 0.268, 0.372]], [0.307, [0.268, 0.268, 0.372]], [0.309, [0.271, 0.271, 0.377]], [0.311, [0.271, 0.271, 0.377]], [0.313, [0.275, 0.275, 0.382]], [0.315, [0.275, 0.275, 0.382]], [0.317, [0.278, 0.278, 0.387]], [0.319, [0.278, 0.278, 0.387]], [0.321, [0.281, 0.281, 0.391]], [0.323, [0.281, 0.281, 0.391]], [0.325, [0.285, 0.285, 0.396]], [0.327, [0.285, 0.285, 0.396]], [0.329, [0.288, 0.288, 0.401]], [0.331, [0.288, 0.288, 0.401]], [0.333, [0.292, 0.292, 0.406]], [0.335, [0.292, 0.292, 0.406]], [0.337, [0.295, 0.295, 0.411]], [0.339, [0.295, 0.295, 0.411]], [0.341, [0.299, 0.299, 0.415]], [0.342, [0.299, 0.299, 0.415]], [0.344, [0.302, 0.302, 0.420]], [0.346, [0.302, 0.302, 0.420]], [0.348, [0.305, 0.305, 0.425]], [0.350, [0.305, 0.305, 0.425]], [0.352, [0.309, 0.309, 0.430]], [0.354, [0.309, 0.309, 0.430]], [0.356, [0.312, 0.312, 0.434]], [0.358, [0.312, 0.312, 0.434]], [0.360, [0.316, 0.316, 0.439]], [0.362, [0.316, 0.316, 0.439]], [0.364, [0.319, 0.319, 0.444]], [0.366, [0.319, 0.319, 0.444]], [0.368, [0.323, 0.324, 0.448]], [0.370, [0.323, 0.324, 0.448]], [0.372, [0.326, 0.328, 0.451]], [0.374, [0.326, 0.328, 0.451]], [0.376, [0.329, 0.333, 0.454]], [0.378, [0.329, 0.333, 0.454]], [0.380, [0.333, 0.338, 0.458]], [0.382, [0.333, 0.338, 0.458]], [0.384, [0.336, 0.343, 0.461]], [0.386, [0.336, 0.343, 0.461]], [0.387, [0.340, 0.347, 0.465]], [0.389, [0.340, 0.347, 0.465]], [0.391, [0.343, 0.352, 0.468]], [0.393, [0.343, 0.352, 0.468]], [0.395, [0.347, 0.357, 0.472]], [0.397, [0.347, 0.357, 0.472]], [0.399, [0.350, 0.361, 0.475]], [0.401, [0.350, 0.361, 0.475]], [0.403, [0.353, 0.366, 0.478]], [0.405, [0.353, 0.366, 0.478]], [0.407, [0.357, 0.371, 0.482]], [0.409, [0.357, 0.371, 0.482]], [0.411, [0.360, 0.376, 0.485]], [0.413, [0.360, 0.376, 0.485]], [0.415, [0.364, 0.380, 0.489]], [0.417, [0.364, 0.380, 0.489]], [0.419, [0.367, 0.385, 0.492]], [0.421, [0.367, 0.385, 0.492]], [0.423, [0.371, 0.390, 0.496]], [0.425, [0.371, 0.390, 0.496]], [0.427, [0.374, 0.394, 0.499]], [0.429, [0.374, 0.394, 0.499]], [0.431, [0.377, 0.399, 0.502]], [0.432, [0.377, 0.399, 0.502]], [0.434, [0.381, 0.404, 0.506]], [0.436, [0.381, 0.404, 0.506]], [0.438, [0.384, 0.409, 0.509]], [0.440, [0.384, 0.409, 0.509]], [0.442, [0.388, 0.413, 0.513]], [0.444, [0.388, 0.413, 0.513]], [0.446, [0.391, 0.418, 0.516]], [0.448, [0.391, 0.418, 0.516]], [0.450, [0.395, 0.423, 0.520]], [0.452, [0.395, 0.423, 0.520]], [0.454, [0.398, 0.428, 0.523]], [0.456, [0.398, 0.428, 0.523]], [0.458, [0.401, 0.432, 0.526]], [0.460, [0.401, 0.432, 0.526]], [0.462, [0.405, 0.437, 0.530]], [0.464, [0.405, 0.437, 0.530]], [0.466, [0.408, 0.442, 0.533]], [0.468, [0.408, 0.442, 0.533]], [0.470, [0.412, 0.446, 0.537]], [0.472, [0.412, 0.446, 0.537]], [0.474, [0.415, 0.451, 0.540]], [0.476, [0.415, 0.451, 0.540]], [0.477, [0.419, 0.456, 0.544]], [0.479, [0.419, 0.456, 0.544]], [0.481, [0.422, 0.461, 0.547]], [0.483, [0.422, 0.461, 0.547]], [0.485, [0.425, 0.465, 0.550]], [0.487, [0.425, 0.465, 0.550]], [0.489, [0.429, 0.470, 0.554]], [0.491, [0.429, 0.470, 0.554]], [0.493, [0.432, 0.475, 0.557]], [0.495, [0.432, 0.475, 0.557]], [0.497, [0.436, 0.479, 0.561]], [0.499, [0.436, 0.479, 0.561]], [0.501, [0.439, 0.484, 0.564]], [0.503, [0.439, 0.484, 0.564]], [0.505, [0.443, 0.489, 0.568]], [0.507, [0.443, 0.489, 0.568]], [0.509, [0.446, 0.494, 0.571]], [0.511, [0.446, 0.494, 0.571]], [0.513, [0.450, 0.498, 0.575]], [0.515, [0.450, 0.498, 0.575]], [0.517, [0.453, 0.503, 0.578]], [0.519, [0.453, 0.503, 0.578]], [0.521, [0.456, 0.508, 0.581]], [0.523, [0.456, 0.508, 0.581]], [0.524, [0.460, 0.512, 0.585]], [0.526, [0.460, 0.512, 0.585]], [0.528, [0.463, 0.517, 0.588]], [0.530, [0.463, 0.517, 0.588]], [0.532, [0.467, 0.522, 0.592]], [0.534, [0.467, 0.522, 0.592]], [0.536, [0.470, 0.527, 0.595]], [0.538, [0.470, 0.527, 0.595]], [0.540, [0.474, 0.531, 0.599]], [0.542, [0.474, 0.531, 0.599]], [0.544, [0.477, 0.536, 0.602]], [0.546, [0.477, 0.536, 0.602]], [0.548, [0.480, 0.541, 0.605]], [0.550, [0.480, 0.541, 0.605]], [0.552, [0.484, 0.545, 0.609]], [0.554, [0.484, 0.545, 0.609]], [0.556, [0.487, 0.550, 0.612]], [0.558, [0.487, 0.550, 0.612]], [0.560, [0.491, 0.555, 0.616]], [0.562, [0.491, 0.555, 0.616]], [0.564, [0.494, 0.560, 0.619]], [0.566, [0.494, 0.560, 0.619]], [0.568, [0.498, 0.564, 0.623]], [0.569, [0.498, 0.564, 0.623]], [0.571, [0.501, 0.569, 0.626]], [0.573, [0.501, 0.569, 0.626]], [0.575, [0.504, 0.574, 0.629]], [0.577, [0.504, 0.574, 0.629]], [0.579, [0.508, 0.578, 0.633]], [0.581, [0.508, 0.578, 0.633]], [0.583, [0.511, 0.583, 0.636]], [0.585, [0.511, 0.583, 0.636]], [0.587, [0.515, 0.588, 0.640]], [0.589, [0.515, 0.588, 0.640]], [0.591, [0.518, 0.593, 0.643]], [0.593, [0.518, 0.593, 0.643]], [0.595, [0.522, 0.597, 0.647]], [0.597, [0.522, 0.597, 0.647]], [0.599, [0.525, 0.602, 0.650]], [0.601, [0.525, 0.602, 0.650]], [0.603, [0.528, 0.607, 0.653]], [0.605, [0.528, 0.607, 0.653]], [0.607, [0.532, 0.612, 0.657]], [0.609, [0.532, 0.612, 0.657]], [0.611, [0.535, 0.616, 0.660]], [0.613, [0.535, 0.616, 0.660]], [0.614, [0.539, 0.621, 0.664]], [0.616, [0.539, 0.621, 0.664]], [0.618, [0.542, 0.626, 0.667]], [0.620, [0.542, 0.626, 0.667]], [0.622, [0.546, 0.630, 0.671]], [0.624, [0.546, 0.630, 0.671]], [0.626, [0.549, 0.635, 0.674]], [0.628, [0.549, 0.635, 0.674]], [0.630, [0.552, 0.640, 0.677]], [0.632, [0.552, 0.640, 0.677]], [0.634, [0.556, 0.645, 0.681]], [0.636, [0.556, 0.645, 0.681]], [0.638, [0.559, 0.649, 0.684]], [0.640, [0.559, 0.649, 0.684]], [0.642, [0.563, 0.654, 0.688]], [0.644, [0.563, 0.654, 0.688]], [0.646, [0.566, 0.659, 0.691]], [0.648, [0.566, 0.659, 0.691]], [0.650, [0.570, 0.663, 0.695]], [0.652, [0.570, 0.663, 0.695]], [0.654, [0.573, 0.668, 0.698]], [0.656, [0.573, 0.668, 0.698]], [0.658, [0.576, 0.673, 0.701]], [0.659, [0.576, 0.673, 0.701]], [0.661, [0.580, 0.678, 0.705]], [0.663, [0.580, 0.678, 0.705]], [0.665, [0.583, 0.682, 0.708]], [0.667, [0.583, 0.682, 0.708]], [0.669, [0.587, 0.687, 0.712]], [0.671, [0.587, 0.687, 0.712]], [0.673, [0.590, 0.692, 0.715]], [0.675, [0.590, 0.692, 0.715]], [0.677, [0.594, 0.696, 0.719]], [0.679, [0.594, 0.696, 0.719]], [0.681, [0.597, 0.701, 0.722]], [0.683, [0.597, 0.701, 0.722]], [0.685, [0.600, 0.706, 0.725]], [0.687, [0.600, 0.706, 0.725]], [0.689, [0.604, 0.711, 0.729]], [0.691, [0.604, 0.711, 0.729]], [0.693, [0.607, 0.715, 0.732]], [0.695, [0.607, 0.715, 0.732]], [0.697, [0.611, 0.720, 0.736]], [0.699, [0.611, 0.720, 0.736]], [0.701, [0.614, 0.725, 0.739]], [0.703, [0.614, 0.725, 0.739]], [0.705, [0.618, 0.729, 0.743]], [0.706, [0.618, 0.729, 0.743]], [0.708, [0.621, 0.734, 0.746]], [0.710, [0.621, 0.734, 0.746]], [0.712, [0.625, 0.739, 0.750]], [0.714, [0.625, 0.739, 0.750]], [0.716, [0.628, 0.744, 0.753]], [0.718, [0.628, 0.744, 0.753]], [0.720, [0.631, 0.748, 0.756]], [0.722, [0.631, 0.748, 0.756]], [0.724, [0.635, 0.753, 0.760]], [0.726, [0.635, 0.753, 0.760]], [0.728, [0.638, 0.758, 0.763]], [0.730, [0.638, 0.758, 0.763]], [0.732, [0.642, 0.762, 0.767]], [0.734, [0.642, 0.762, 0.767]], [0.736, [0.645, 0.767, 0.770]], [0.738, [0.645, 0.767, 0.770]], [0.740, [0.649, 0.772, 0.774]], [0.742, [0.649, 0.772, 0.774]], [0.744, [0.652, 0.777, 0.777]], [0.746, [0.652, 0.777, 0.777]], [0.748, [0.657, 0.780, 0.780]], [0.750, [0.657, 0.780, 0.780]], [0.751, [0.662, 0.784, 0.784]], [0.753, [0.662, 0.784, 0.784]], [0.755, [0.668, 0.787, 0.787]], [0.757, [0.668, 0.787, 0.787]], [0.759, [0.673, 0.791, 0.791]], [0.761, [0.673, 0.791, 0.791]], [0.763, [0.678, 0.794, 0.794]], [0.765, [0.678, 0.794, 0.794]], [0.767, [0.684, 0.798, 0.798]], [0.769, [0.684, 0.798, 0.798]], [0.771, [0.689, 0.801, 0.801]], [0.773, [0.689, 0.801, 0.801]], [0.775, [0.694, 0.804, 0.804]], [0.777, [0.694, 0.804, 0.804]], [0.779, [0.700, 0.808, 0.808]], [0.781, [0.700, 0.808, 0.808]], [0.783, [0.705, 0.811, 0.811]], [0.785, [0.705, 0.811, 0.811]], [0.787, [0.710, 0.815, 0.815]], [0.789, [0.710, 0.815, 0.815]], [0.791, [0.716, 0.818, 0.818]], [0.793, [0.716, 0.818, 0.818]], [0.795, [0.721, 0.822, 0.822]], [0.796, [0.721, 0.822, 0.822]], [0.798, [0.727, 0.825, 0.825]], [0.800, [0.727, 0.825, 0.825]], [0.802, [0.732, 0.828, 0.828]], [0.804, [0.732, 0.828, 0.828]], [0.806, [0.737, 0.832, 0.832]], [0.808, [0.737, 0.832, 0.832]], [0.810, [0.743, 0.835, 0.835]], [0.812, [0.743, 0.835, 0.835]], [0.814, [0.748, 0.839, 0.839]], [0.816, [0.748, 0.839, 0.839]], [0.818, [0.753, 0.842, 0.842]], [0.820, [0.753, 0.842, 0.842]], [0.822, [0.759, 0.846, 0.846]], [0.824, [0.759, 0.846, 0.846]], [0.826, [0.764, 0.849, 0.849]], [0.828, [0.764, 0.849, 0.849]], [0.830, [0.769, 0.852, 0.852]], [0.832, [0.769, 0.852, 0.852]], [0.834, [0.775, 0.856, 0.856]], [0.836, [0.775, 0.856, 0.856]], [0.838, [0.780, 0.859, 0.859]], [0.840, [0.780, 0.859, 0.859]], [0.841, [0.786, 0.863, 0.863]], [0.843, [0.786, 0.863, 0.863]], [0.845, [0.791, 0.866, 0.866]], [0.847, [0.791, 0.866, 0.866]], [0.849, [0.796, 0.870, 0.870]], [0.851, [0.796, 0.870, 0.870]], [0.853, [0.802, 0.873, 0.873]], [0.855, [0.802, 0.873, 0.873]], [0.857, [0.807, 0.876, 0.876]], [0.859, [0.807, 0.876, 0.876]], [0.861, [0.812, 0.880, 0.880]], [0.863, [0.812, 0.880, 0.880]], [0.865, [0.818, 0.883, 0.883]], [0.867, [0.818, 0.883, 0.883]], [0.869, [0.823, 0.887, 0.887]], [0.871, [0.823, 0.887, 0.887]], [0.873, [0.828, 0.890, 0.890]], [0.875, [0.828, 0.890, 0.890]], [0.877, [0.834, 0.894, 0.894]], [0.879, [0.834, 0.894, 0.894]], [0.881, [0.839, 0.897, 0.897]], [0.883, [0.839, 0.897, 0.897]], [0.885, [0.845, 0.900, 0.900]], [0.886, [0.845, 0.900, 0.900]], [0.888, [0.850, 0.904, 0.904]], [0.890, [0.850, 0.904, 0.904]], [0.892, [0.855, 0.907, 0.907]], [0.894, [0.855, 0.907, 0.907]], [0.896, [0.861, 0.911, 0.911]], [0.898, [0.861, 0.911, 0.911]], [0.900, [0.866, 0.914, 0.914]], [0.902, [0.866, 0.914, 0.914]], [0.904, [0.871, 0.918, 0.918]], [0.906, [0.871, 0.918, 0.918]], [0.908, [0.877, 0.921, 0.921]], [0.910, [0.877, 0.921, 0.921]], [0.912, [0.882, 0.925, 0.925]], [0.914, [0.882, 0.925, 0.925]], [0.916, [0.887, 0.928, 0.928]], [0.918, [0.887, 0.928, 0.928]], [0.920, [0.893, 0.931, 0.931]], [0.922, [0.893, 0.931, 0.931]], [0.924, [0.898, 0.935, 0.935]], [0.926, [0.898, 0.935, 0.935]], [0.928, [0.903, 0.938, 0.938]], [0.930, [0.903, 0.938, 0.938]], [0.932, [0.909, 0.942, 0.942]], [0.933, [0.909, 0.942, 0.942]], [0.935, [0.914, 0.945, 0.945]], [0.937, [0.914, 0.945, 0.945]], [0.939, [0.920, 0.949, 0.949]], [0.941, [0.920, 0.949, 0.949]], [0.943, [0.925, 0.952, 0.952]], [0.945, [0.925, 0.952, 0.952]], [0.947, [0.930, 0.955, 0.955]], [0.949, [0.930, 0.955, 0.955]], [0.951, [0.936, 0.959, 0.959]], [0.953, [0.936, 0.959, 0.959]], [0.955, [0.941, 0.962, 0.962]], [0.957, [0.941, 0.962, 0.962]], [0.959, [0.946, 0.966, 0.966]], [0.961, [0.946, 0.966, 0.966]], [0.963, [0.952, 0.969, 0.969]], [0.965, [0.952, 0.969, 0.969]], [0.967, [0.957, 0.973, 0.973]], [0.969, [0.957, 0.973, 0.973]], [0.971, [0.962, 0.976, 0.976]], [0.973, [0.962, 0.976, 0.976]], [0.975, [0.968, 0.979, 0.979]], [0.977, [0.968, 0.979, 0.979]], [0.978, [0.973, 0.983, 0.983]], [0.980, [0.973, 0.983, 0.983]], [0.982, [0.979, 0.986, 0.986]], [0.984, [0.979, 0.986, 0.986]], [0.986, [0.984, 0.990, 0.990]], [0.988, [0.984, 0.990, 0.990]], [0.990, [0.989, 0.993, 0.993]], [0.992, [0.989, 0.993, 0.993]], [0.994, [0.995, 0.997, 0.997]], [0.996, [0.995, 0.997, 0.997]], [0.998, [1.000, 1.000, 1.000]], [1.000, [1.000, 1.000, 1.000]]];
+var cool = [[0.000, [0.000, 1.000, 1.000]], [0.002, [0.000, 1.000, 1.000]], [0.004, [0.004, 0.996, 1.000]], [0.006, [0.004, 0.996, 1.000]], [0.008, [0.008, 0.992, 1.000]], [0.010, [0.008, 0.992, 1.000]], [0.012, [0.012, 0.988, 1.000]], [0.014, [0.012, 0.988, 1.000]], [0.016, [0.016, 0.984, 1.000]], [0.018, [0.016, 0.984, 1.000]], [0.020, [0.020, 0.980, 1.000]], [0.022, [0.020, 0.980, 1.000]], [0.023, [0.024, 0.976, 1.000]], [0.025, [0.024, 0.976, 1.000]], [0.027, [0.027, 0.973, 1.000]], [0.029, [0.027, 0.973, 1.000]], [0.031, [0.031, 0.969, 1.000]], [0.033, [0.031, 0.969, 1.000]], [0.035, [0.035, 0.965, 1.000]], [0.037, [0.035, 0.965, 1.000]], [0.039, [0.039, 0.961, 1.000]], [0.041, [0.039, 0.961, 1.000]], [0.043, [0.043, 0.957, 1.000]], [0.045, [0.043, 0.957, 1.000]], [0.047, [0.047, 0.953, 1.000]], [0.049, [0.047, 0.953, 1.000]], [0.051, [0.051, 0.949, 1.000]], [0.053, [0.051, 0.949, 1.000]], [0.055, [0.055, 0.945, 1.000]], [0.057, [0.055, 0.945, 1.000]], [0.059, [0.059, 0.941, 1.000]], [0.061, [0.059, 0.941, 1.000]], [0.063, [0.063, 0.937, 1.000]], [0.065, [0.063, 0.937, 1.000]], [0.067, [0.067, 0.933, 1.000]], [0.068, [0.067, 0.933, 1.000]], [0.070, [0.071, 0.929, 1.000]], [0.072, [0.071, 0.929, 1.000]], [0.074, [0.075, 0.925, 1.000]], [0.076, [0.075, 0.925, 1.000]], [0.078, [0.078, 0.922, 1.000]], [0.080, [0.078, 0.922, 1.000]], [0.082, [0.082, 0.918, 1.000]], [0.084, [0.082, 0.918, 1.000]], [0.086, [0.086, 0.914, 1.000]], [0.088, [0.086, 0.914, 1.000]], [0.090, [0.090, 0.910, 1.000]], [0.092, [0.090, 0.910, 1.000]], [0.094, [0.094, 0.906, 1.000]], [0.096, [0.094, 0.906, 1.000]], [0.098, [0.098, 0.902, 1.000]], [0.100, [0.098, 0.902, 1.000]], [0.102, [0.102, 0.898, 1.000]], [0.104, [0.102, 0.898, 1.000]], [0.106, [0.106, 0.894, 1.000]], [0.108, [0.106, 0.894, 1.000]], [0.110, [0.110, 0.890, 1.000]], [0.112, [0.110, 0.890, 1.000]], [0.114, [0.114, 0.886, 1.000]], [0.115, [0.114, 0.886, 1.000]], [0.117, [0.118, 0.882, 1.000]], [0.119, [0.118, 0.882, 1.000]], [0.121, [0.122, 0.878, 1.000]], [0.123, [0.122, 0.878, 1.000]], [0.125, [0.125, 0.875, 1.000]], [0.127, [0.125, 0.875, 1.000]], [0.129, [0.129, 0.871, 1.000]], [0.131, [0.129, 0.871, 1.000]], [0.133, [0.133, 0.867, 1.000]], [0.135, [0.133, 0.867, 1.000]], [0.137, [0.137, 0.863, 1.000]], [0.139, [0.137, 0.863, 1.000]], [0.141, [0.141, 0.859, 1.000]], [0.143, [0.141, 0.859, 1.000]], [0.145, [0.145, 0.855, 1.000]], [0.147, [0.145, 0.855, 1.000]], [0.149, [0.149, 0.851, 1.000]], [0.151, [0.149, 0.851, 1.000]], [0.153, [0.153, 0.847, 1.000]], [0.155, [0.153, 0.847, 1.000]], [0.157, [0.157, 0.843, 1.000]], [0.159, [0.157, 0.843, 1.000]], [0.160, [0.161, 0.839, 1.000]], [0.162, [0.161, 0.839, 1.000]], [0.164, [0.165, 0.835, 1.000]], [0.166, [0.165, 0.835, 1.000]], [0.168, [0.169, 0.831, 1.000]], [0.170, [0.169, 0.831, 1.000]], [0.172, [0.173, 0.827, 1.000]], [0.174, [0.173, 0.827, 1.000]], [0.176, [0.176, 0.824, 1.000]], [0.178, [0.176, 0.824, 1.000]], [0.180, [0.180, 0.820, 1.000]], [0.182, [0.180, 0.820, 1.000]], [0.184, [0.184, 0.816, 1.000]], [0.186, [0.184, 0.816, 1.000]], [0.188, [0.188, 0.812, 1.000]], [0.190, [0.188, 0.812, 1.000]], [0.192, [0.192, 0.808, 1.000]], [0.194, [0.192, 0.808, 1.000]], [0.196, [0.196, 0.804, 1.000]], [0.198, [0.196, 0.804, 1.000]], [0.200, [0.200, 0.800, 1.000]], [0.202, [0.200, 0.800, 1.000]], [0.204, [0.204, 0.796, 1.000]], [0.205, [0.204, 0.796, 1.000]], [0.207, [0.208, 0.792, 1.000]], [0.209, [0.208, 0.792, 1.000]], [0.211, [0.212, 0.788, 1.000]], [0.213, [0.212, 0.788, 1.000]], [0.215, [0.216, 0.784, 1.000]], [0.217, [0.216, 0.784, 1.000]], [0.219, [0.220, 0.780, 1.000]], [0.221, [0.220, 0.780, 1.000]], [0.223, [0.224, 0.776, 1.000]], [0.225, [0.224, 0.776, 1.000]], [0.227, [0.227, 0.773, 1.000]], [0.229, [0.227, 0.773, 1.000]], [0.231, [0.231, 0.769, 1.000]], [0.233, [0.231, 0.769, 1.000]], [0.235, [0.235, 0.765, 1.000]], [0.237, [0.235, 0.765, 1.000]], [0.239, [0.239, 0.761, 1.000]], [0.241, [0.239, 0.761, 1.000]], [0.243, [0.243, 0.757, 1.000]], [0.245, [0.243, 0.757, 1.000]], [0.247, [0.247, 0.753, 1.000]], [0.249, [0.247, 0.753, 1.000]], [0.250, [0.251, 0.749, 1.000]], [0.252, [0.251, 0.749, 1.000]], [0.254, [0.255, 0.745, 1.000]], [0.256, [0.255, 0.745, 1.000]], [0.258, [0.259, 0.741, 1.000]], [0.260, [0.259, 0.741, 1.000]], [0.262, [0.263, 0.737, 1.000]], [0.264, [0.263, 0.737, 1.000]], [0.266, [0.267, 0.733, 1.000]], [0.268, [0.267, 0.733, 1.000]], [0.270, [0.271, 0.729, 1.000]], [0.272, [0.271, 0.729, 1.000]], [0.274, [0.275, 0.725, 1.000]], [0.276, [0.275, 0.725, 1.000]], [0.278, [0.278, 0.722, 1.000]], [0.280, [0.278, 0.722, 1.000]], [0.282, [0.282, 0.718, 1.000]], [0.284, [0.282, 0.718, 1.000]], [0.286, [0.286, 0.714, 1.000]], [0.288, [0.286, 0.714, 1.000]], [0.290, [0.290, 0.710, 1.000]], [0.292, [0.290, 0.710, 1.000]], [0.294, [0.294, 0.706, 1.000]], [0.295, [0.294, 0.706, 1.000]], [0.297, [0.298, 0.702, 1.000]], [0.299, [0.298, 0.702, 1.000]], [0.301, [0.302, 0.698, 1.000]], [0.303, [0.302, 0.698, 1.000]], [0.305, [0.306, 0.694, 1.000]], [0.307, [0.306, 0.694, 1.000]], [0.309, [0.310, 0.690, 1.000]], [0.311, [0.310, 0.690, 1.000]], [0.313, [0.314, 0.686, 1.000]], [0.315, [0.314, 0.686, 1.000]], [0.317, [0.318, 0.682, 1.000]], [0.319, [0.318, 0.682, 1.000]], [0.321, [0.322, 0.678, 1.000]], [0.323, [0.322, 0.678, 1.000]], [0.325, [0.325, 0.675, 1.000]], [0.327, [0.325, 0.675, 1.000]], [0.329, [0.329, 0.671, 1.000]], [0.331, [0.329, 0.671, 1.000]], [0.333, [0.333, 0.667, 1.000]], [0.335, [0.333, 0.667, 1.000]], [0.337, [0.337, 0.663, 1.000]], [0.339, [0.337, 0.663, 1.000]], [0.341, [0.341, 0.659, 1.000]], [0.342, [0.341, 0.659, 1.000]], [0.344, [0.345, 0.655, 1.000]], [0.346, [0.345, 0.655, 1.000]], [0.348, [0.349, 0.651, 1.000]], [0.350, [0.349, 0.651, 1.000]], [0.352, [0.353, 0.647, 1.000]], [0.354, [0.353, 0.647, 1.000]], [0.356, [0.357, 0.643, 1.000]], [0.358, [0.357, 0.643, 1.000]], [0.360, [0.361, 0.639, 1.000]], [0.362, [0.361, 0.639, 1.000]], [0.364, [0.365, 0.635, 1.000]], [0.366, [0.365, 0.635, 1.000]], [0.368, [0.369, 0.631, 1.000]], [0.370, [0.369, 0.631, 1.000]], [0.372, [0.373, 0.627, 1.000]], [0.374, [0.373, 0.627, 1.000]], [0.376, [0.376, 0.624, 1.000]], [0.378, [0.376, 0.624, 1.000]], [0.380, [0.380, 0.620, 1.000]], [0.382, [0.380, 0.620, 1.000]], [0.384, [0.384, 0.616, 1.000]], [0.386, [0.384, 0.616, 1.000]], [0.387, [0.388, 0.612, 1.000]], [0.389, [0.388, 0.612, 1.000]], [0.391, [0.392, 0.608, 1.000]], [0.393, [0.392, 0.608, 1.000]], [0.395, [0.396, 0.604, 1.000]], [0.397, [0.396, 0.604, 1.000]], [0.399, [0.400, 0.600, 1.000]], [0.401, [0.400, 0.600, 1.000]], [0.403, [0.404, 0.596, 1.000]], [0.405, [0.404, 0.596, 1.000]], [0.407, [0.408, 0.592, 1.000]], [0.409, [0.408, 0.592, 1.000]], [0.411, [0.412, 0.588, 1.000]], [0.413, [0.412, 0.588, 1.000]], [0.415, [0.416, 0.584, 1.000]], [0.417, [0.416, 0.584, 1.000]], [0.419, [0.420, 0.580, 1.000]], [0.421, [0.420, 0.580, 1.000]], [0.423, [0.424, 0.576, 1.000]], [0.425, [0.424, 0.576, 1.000]], [0.427, [0.427, 0.573, 1.000]], [0.429, [0.427, 0.573, 1.000]], [0.431, [0.431, 0.569, 1.000]], [0.432, [0.431, 0.569, 1.000]], [0.434, [0.435, 0.565, 1.000]], [0.436, [0.435, 0.565, 1.000]], [0.438, [0.439, 0.561, 1.000]], [0.440, [0.439, 0.561, 1.000]], [0.442, [0.443, 0.557, 1.000]], [0.444, [0.443, 0.557, 1.000]], [0.446, [0.447, 0.553, 1.000]], [0.448, [0.447, 0.553, 1.000]], [0.450, [0.451, 0.549, 1.000]], [0.452, [0.451, 0.549, 1.000]], [0.454, [0.455, 0.545, 1.000]], [0.456, [0.455, 0.545, 1.000]], [0.458, [0.459, 0.541, 1.000]], [0.460, [0.459, 0.541, 1.000]], [0.462, [0.463, 0.537, 1.000]], [0.464, [0.463, 0.537, 1.000]], [0.466, [0.467, 0.533, 1.000]], [0.468, [0.467, 0.533, 1.000]], [0.470, [0.471, 0.529, 1.000]], [0.472, [0.471, 0.529, 1.000]], [0.474, [0.475, 0.525, 1.000]], [0.476, [0.475, 0.525, 1.000]], [0.477, [0.478, 0.522, 1.000]], [0.479, [0.478, 0.522, 1.000]], [0.481, [0.482, 0.518, 1.000]], [0.483, [0.482, 0.518, 1.000]], [0.485, [0.486, 0.514, 1.000]], [0.487, [0.486, 0.514, 1.000]], [0.489, [0.490, 0.510, 1.000]], [0.491, [0.490, 0.510, 1.000]], [0.493, [0.494, 0.506, 1.000]], [0.495, [0.494, 0.506, 1.000]], [0.497, [0.498, 0.502, 1.000]], [0.499, [0.498, 0.502, 1.000]], [0.501, [0.502, 0.498, 1.000]], [0.503, [0.502, 0.498, 1.000]], [0.505, [0.506, 0.494, 1.000]], [0.507, [0.506, 0.494, 1.000]], [0.509, [0.510, 0.490, 1.000]], [0.511, [0.510, 0.490, 1.000]], [0.513, [0.514, 0.486, 1.000]], [0.515, [0.514, 0.486, 1.000]], [0.517, [0.518, 0.482, 1.000]], [0.519, [0.518, 0.482, 1.000]], [0.521, [0.522, 0.478, 1.000]], [0.523, [0.522, 0.478, 1.000]], [0.524, [0.525, 0.475, 1.000]], [0.526, [0.525, 0.475, 1.000]], [0.528, [0.529, 0.471, 1.000]], [0.530, [0.529, 0.471, 1.000]], [0.532, [0.533, 0.467, 1.000]], [0.534, [0.533, 0.467, 1.000]], [0.536, [0.537, 0.463, 1.000]], [0.538, [0.537, 0.463, 1.000]], [0.540, [0.541, 0.459, 1.000]], [0.542, [0.541, 0.459, 1.000]], [0.544, [0.545, 0.455, 1.000]], [0.546, [0.545, 0.455, 1.000]], [0.548, [0.549, 0.451, 1.000]], [0.550, [0.549, 0.451, 1.000]], [0.552, [0.553, 0.447, 1.000]], [0.554, [0.553, 0.447, 1.000]], [0.556, [0.557, 0.443, 1.000]], [0.558, [0.557, 0.443, 1.000]], [0.560, [0.561, 0.439, 1.000]], [0.562, [0.561, 0.439, 1.000]], [0.564, [0.565, 0.435, 1.000]], [0.566, [0.565, 0.435, 1.000]], [0.568, [0.569, 0.431, 1.000]], [0.569, [0.569, 0.431, 1.000]], [0.571, [0.573, 0.427, 1.000]], [0.573, [0.573, 0.427, 1.000]], [0.575, [0.576, 0.424, 1.000]], [0.577, [0.576, 0.424, 1.000]], [0.579, [0.580, 0.420, 1.000]], [0.581, [0.580, 0.420, 1.000]], [0.583, [0.584, 0.416, 1.000]], [0.585, [0.584, 0.416, 1.000]], [0.587, [0.588, 0.412, 1.000]], [0.589, [0.588, 0.412, 1.000]], [0.591, [0.592, 0.408, 1.000]], [0.593, [0.592, 0.408, 1.000]], [0.595, [0.596, 0.404, 1.000]], [0.597, [0.596, 0.404, 1.000]], [0.599, [0.600, 0.400, 1.000]], [0.601, [0.600, 0.400, 1.000]], [0.603, [0.604, 0.396, 1.000]], [0.605, [0.604, 0.396, 1.000]], [0.607, [0.608, 0.392, 1.000]], [0.609, [0.608, 0.392, 1.000]], [0.611, [0.612, 0.388, 1.000]], [0.613, [0.612, 0.388, 1.000]], [0.614, [0.616, 0.384, 1.000]], [0.616, [0.616, 0.384, 1.000]], [0.618, [0.620, 0.380, 1.000]], [0.620, [0.620, 0.380, 1.000]], [0.622, [0.624, 0.376, 1.000]], [0.624, [0.624, 0.376, 1.000]], [0.626, [0.627, 0.373, 1.000]], [0.628, [0.627, 0.373, 1.000]], [0.630, [0.631, 0.369, 1.000]], [0.632, [0.631, 0.369, 1.000]], [0.634, [0.635, 0.365, 1.000]], [0.636, [0.635, 0.365, 1.000]], [0.638, [0.639, 0.361, 1.000]], [0.640, [0.639, 0.361, 1.000]], [0.642, [0.643, 0.357, 1.000]], [0.644, [0.643, 0.357, 1.000]], [0.646, [0.647, 0.353, 1.000]], [0.648, [0.647, 0.353, 1.000]], [0.650, [0.651, 0.349, 1.000]], [0.652, [0.651, 0.349, 1.000]], [0.654, [0.655, 0.345, 1.000]], [0.656, [0.655, 0.345, 1.000]], [0.658, [0.659, 0.341, 1.000]], [0.659, [0.659, 0.341, 1.000]], [0.661, [0.663, 0.337, 1.000]], [0.663, [0.663, 0.337, 1.000]], [0.665, [0.667, 0.333, 1.000]], [0.667, [0.667, 0.333, 1.000]], [0.669, [0.671, 0.329, 1.000]], [0.671, [0.671, 0.329, 1.000]], [0.673, [0.675, 0.325, 1.000]], [0.675, [0.675, 0.325, 1.000]], [0.677, [0.678, 0.322, 1.000]], [0.679, [0.678, 0.322, 1.000]], [0.681, [0.682, 0.318, 1.000]], [0.683, [0.682, 0.318, 1.000]], [0.685, [0.686, 0.314, 1.000]], [0.687, [0.686, 0.314, 1.000]], [0.689, [0.690, 0.310, 1.000]], [0.691, [0.690, 0.310, 1.000]], [0.693, [0.694, 0.306, 1.000]], [0.695, [0.694, 0.306, 1.000]], [0.697, [0.698, 0.302, 1.000]], [0.699, [0.698, 0.302, 1.000]], [0.701, [0.702, 0.298, 1.000]], [0.703, [0.702, 0.298, 1.000]], [0.705, [0.706, 0.294, 1.000]], [0.706, [0.706, 0.294, 1.000]], [0.708, [0.710, 0.290, 1.000]], [0.710, [0.710, 0.290, 1.000]], [0.712, [0.714, 0.286, 1.000]], [0.714, [0.714, 0.286, 1.000]], [0.716, [0.718, 0.282, 1.000]], [0.718, [0.718, 0.282, 1.000]], [0.720, [0.722, 0.278, 1.000]], [0.722, [0.722, 0.278, 1.000]], [0.724, [0.725, 0.275, 1.000]], [0.726, [0.725, 0.275, 1.000]], [0.728, [0.729, 0.271, 1.000]], [0.730, [0.729, 0.271, 1.000]], [0.732, [0.733, 0.267, 1.000]], [0.734, [0.733, 0.267, 1.000]], [0.736, [0.737, 0.263, 1.000]], [0.738, [0.737, 0.263, 1.000]], [0.740, [0.741, 0.259, 1.000]], [0.742, [0.741, 0.259, 1.000]], [0.744, [0.745, 0.255, 1.000]], [0.746, [0.745, 0.255, 1.000]], [0.748, [0.749, 0.251, 1.000]], [0.750, [0.749, 0.251, 1.000]], [0.751, [0.753, 0.247, 1.000]], [0.753, [0.753, 0.247, 1.000]], [0.755, [0.757, 0.243, 1.000]], [0.757, [0.757, 0.243, 1.000]], [0.759, [0.761, 0.239, 1.000]], [0.761, [0.761, 0.239, 1.000]], [0.763, [0.765, 0.235, 1.000]], [0.765, [0.765, 0.235, 1.000]], [0.767, [0.769, 0.231, 1.000]], [0.769, [0.769, 0.231, 1.000]], [0.771, [0.773, 0.227, 1.000]], [0.773, [0.773, 0.227, 1.000]], [0.775, [0.776, 0.224, 1.000]], [0.777, [0.776, 0.224, 1.000]], [0.779, [0.780, 0.220, 1.000]], [0.781, [0.780, 0.220, 1.000]], [0.783, [0.784, 0.216, 1.000]], [0.785, [0.784, 0.216, 1.000]], [0.787, [0.788, 0.212, 1.000]], [0.789, [0.788, 0.212, 1.000]], [0.791, [0.792, 0.208, 1.000]], [0.793, [0.792, 0.208, 1.000]], [0.795, [0.796, 0.204, 1.000]], [0.796, [0.796, 0.204, 1.000]], [0.798, [0.800, 0.200, 1.000]], [0.800, [0.800, 0.200, 1.000]], [0.802, [0.804, 0.196, 1.000]], [0.804, [0.804, 0.196, 1.000]], [0.806, [0.808, 0.192, 1.000]], [0.808, [0.808, 0.192, 1.000]], [0.810, [0.812, 0.188, 1.000]], [0.812, [0.812, 0.188, 1.000]], [0.814, [0.816, 0.184, 1.000]], [0.816, [0.816, 0.184, 1.000]], [0.818, [0.820, 0.180, 1.000]], [0.820, [0.820, 0.180, 1.000]], [0.822, [0.824, 0.176, 1.000]], [0.824, [0.824, 0.176, 1.000]], [0.826, [0.827, 0.173, 1.000]], [0.828, [0.827, 0.173, 1.000]], [0.830, [0.831, 0.169, 1.000]], [0.832, [0.831, 0.169, 1.000]], [0.834, [0.835, 0.165, 1.000]], [0.836, [0.835, 0.165, 1.000]], [0.838, [0.839, 0.161, 1.000]], [0.840, [0.839, 0.161, 1.000]], [0.841, [0.843, 0.157, 1.000]], [0.843, [0.843, 0.157, 1.000]], [0.845, [0.847, 0.153, 1.000]], [0.847, [0.847, 0.153, 1.000]], [0.849, [0.851, 0.149, 1.000]], [0.851, [0.851, 0.149, 1.000]], [0.853, [0.855, 0.145, 1.000]], [0.855, [0.855, 0.145, 1.000]], [0.857, [0.859, 0.141, 1.000]], [0.859, [0.859, 0.141, 1.000]], [0.861, [0.863, 0.137, 1.000]], [0.863, [0.863, 0.137, 1.000]], [0.865, [0.867, 0.133, 1.000]], [0.867, [0.867, 0.133, 1.000]], [0.869, [0.871, 0.129, 1.000]], [0.871, [0.871, 0.129, 1.000]], [0.873, [0.875, 0.125, 1.000]], [0.875, [0.875, 0.125, 1.000]], [0.877, [0.878, 0.122, 1.000]], [0.879, [0.878, 0.122, 1.000]], [0.881, [0.882, 0.118, 1.000]], [0.883, [0.882, 0.118, 1.000]], [0.885, [0.886, 0.114, 1.000]], [0.886, [0.886, 0.114, 1.000]], [0.888, [0.890, 0.110, 1.000]], [0.890, [0.890, 0.110, 1.000]], [0.892, [0.894, 0.106, 1.000]], [0.894, [0.894, 0.106, 1.000]], [0.896, [0.898, 0.102, 1.000]], [0.898, [0.898, 0.102, 1.000]], [0.900, [0.902, 0.098, 1.000]], [0.902, [0.902, 0.098, 1.000]], [0.904, [0.906, 0.094, 1.000]], [0.906, [0.906, 0.094, 1.000]], [0.908, [0.910, 0.090, 1.000]], [0.910, [0.910, 0.090, 1.000]], [0.912, [0.914, 0.086, 1.000]], [0.914, [0.914, 0.086, 1.000]], [0.916, [0.918, 0.082, 1.000]], [0.918, [0.918, 0.082, 1.000]], [0.920, [0.922, 0.078, 1.000]], [0.922, [0.922, 0.078, 1.000]], [0.924, [0.925, 0.075, 1.000]], [0.926, [0.925, 0.075, 1.000]], [0.928, [0.929, 0.071, 1.000]], [0.930, [0.929, 0.071, 1.000]], [0.932, [0.933, 0.067, 1.000]], [0.933, [0.933, 0.067, 1.000]], [0.935, [0.937, 0.063, 1.000]], [0.937, [0.937, 0.063, 1.000]], [0.939, [0.941, 0.059, 1.000]], [0.941, [0.941, 0.059, 1.000]], [0.943, [0.945, 0.055, 1.000]], [0.945, [0.945, 0.055, 1.000]], [0.947, [0.949, 0.051, 1.000]], [0.949, [0.949, 0.051, 1.000]], [0.951, [0.953, 0.047, 1.000]], [0.953, [0.953, 0.047, 1.000]], [0.955, [0.957, 0.043, 1.000]], [0.957, [0.957, 0.043, 1.000]], [0.959, [0.961, 0.039, 1.000]], [0.961, [0.961, 0.039, 1.000]], [0.963, [0.965, 0.035, 1.000]], [0.965, [0.965, 0.035, 1.000]], [0.967, [0.969, 0.031, 1.000]], [0.969, [0.969, 0.031, 1.000]], [0.971, [0.973, 0.027, 1.000]], [0.973, [0.973, 0.027, 1.000]], [0.975, [0.976, 0.024, 1.000]], [0.977, [0.976, 0.024, 1.000]], [0.978, [0.980, 0.020, 1.000]], [0.980, [0.980, 0.020, 1.000]], [0.982, [0.984, 0.016, 1.000]], [0.984, [0.984, 0.016, 1.000]], [0.986, [0.988, 0.012, 1.000]], [0.988, [0.988, 0.012, 1.000]], [0.990, [0.992, 0.008, 1.000]], [0.992, [0.992, 0.008, 1.000]], [0.994, [0.996, 0.004, 1.000]], [0.996, [0.996, 0.004, 1.000]], [0.998, [1.000, 0.000, 1.000]], [1.000, [1.000, 0.000, 1.000]]];
+var copper = [[0.000, [0.000, 0.000, 0.000]], [0.002, [0.000, 0.000, 0.000]], [0.004, [0.005, 0.003, 0.002]], [0.006, [0.005, 0.003, 0.002]], [0.008, [0.010, 0.006, 0.004]], [0.010, [0.010, 0.006, 0.004]], [0.012, [0.015, 0.009, 0.006]], [0.014, [0.015, 0.009, 0.006]], [0.016, [0.019, 0.012, 0.008]], [0.018, [0.019, 0.012, 0.008]], [0.020, [0.024, 0.015, 0.010]], [0.022, [0.024, 0.015, 0.010]], [0.023, [0.029, 0.018, 0.012]], [0.025, [0.029, 0.018, 0.012]], [0.027, [0.034, 0.021, 0.014]], [0.029, [0.034, 0.021, 0.014]], [0.031, [0.039, 0.025, 0.016]], [0.033, [0.039, 0.025, 0.016]], [0.035, [0.044, 0.028, 0.018]], [0.037, [0.044, 0.028, 0.018]], [0.039, [0.048, 0.031, 0.020]], [0.041, [0.048, 0.031, 0.020]], [0.043, [0.053, 0.034, 0.021]], [0.045, [0.053, 0.034, 0.021]], [0.047, [0.058, 0.037, 0.023]], [0.049, [0.058, 0.037, 0.023]], [0.051, [0.063, 0.040, 0.025]], [0.053, [0.063, 0.040, 0.025]], [0.055, [0.068, 0.043, 0.027]], [0.057, [0.068, 0.043, 0.027]], [0.059, [0.073, 0.046, 0.029]], [0.061, [0.073, 0.046, 0.029]], [0.063, [0.078, 0.049, 0.031]], [0.065, [0.078, 0.049, 0.031]], [0.067, [0.082, 0.052, 0.033]], [0.068, [0.082, 0.052, 0.033]], [0.070, [0.087, 0.055, 0.035]], [0.072, [0.087, 0.055, 0.035]], [0.074, [0.092, 0.058, 0.037]], [0.076, [0.092, 0.058, 0.037]], [0.078, [0.097, 0.061, 0.039]], [0.080, [0.097, 0.061, 0.039]], [0.082, [0.102, 0.064, 0.041]], [0.084, [0.102, 0.064, 0.041]], [0.086, [0.107, 0.067, 0.043]], [0.088, [0.107, 0.067, 0.043]], [0.090, [0.111, 0.070, 0.045]], [0.092, [0.111, 0.070, 0.045]], [0.094, [0.116, 0.074, 0.047]], [0.096, [0.116, 0.074, 0.047]], [0.098, [0.121, 0.077, 0.049]], [0.100, [0.121, 0.077, 0.049]], [0.102, [0.126, 0.080, 0.051]], [0.104, [0.126, 0.080, 0.051]], [0.106, [0.131, 0.083, 0.053]], [0.108, [0.131, 0.083, 0.053]], [0.110, [0.136, 0.086, 0.055]], [0.112, [0.136, 0.086, 0.055]], [0.114, [0.140, 0.089, 0.057]], [0.115, [0.140, 0.089, 0.057]], [0.117, [0.145, 0.092, 0.059]], [0.119, [0.145, 0.092, 0.059]], [0.121, [0.150, 0.095, 0.060]], [0.123, [0.150, 0.095, 0.060]], [0.125, [0.155, 0.098, 0.062]], [0.127, [0.155, 0.098, 0.062]], [0.129, [0.160, 0.101, 0.064]], [0.131, [0.160, 0.101, 0.064]], [0.133, [0.165, 0.104, 0.066]], [0.135, [0.165, 0.104, 0.066]], [0.137, [0.170, 0.107, 0.068]], [0.139, [0.170, 0.107, 0.068]], [0.141, [0.174, 0.110, 0.070]], [0.143, [0.174, 0.110, 0.070]], [0.145, [0.179, 0.113, 0.072]], [0.147, [0.179, 0.113, 0.072]], [0.149, [0.184, 0.116, 0.074]], [0.151, [0.184, 0.116, 0.074]], [0.153, [0.189, 0.119, 0.076]], [0.155, [0.189, 0.119, 0.076]], [0.157, [0.194, 0.123, 0.078]], [0.159, [0.194, 0.123, 0.078]], [0.160, [0.199, 0.126, 0.080]], [0.162, [0.199, 0.126, 0.080]], [0.164, [0.203, 0.129, 0.082]], [0.166, [0.203, 0.129, 0.082]], [0.168, [0.208, 0.132, 0.084]], [0.170, [0.208, 0.132, 0.084]], [0.172, [0.213, 0.135, 0.086]], [0.174, [0.213, 0.135, 0.086]], [0.176, [0.218, 0.138, 0.088]], [0.178, [0.218, 0.138, 0.088]], [0.180, [0.223, 0.141, 0.090]], [0.182, [0.223, 0.141, 0.090]], [0.184, [0.228, 0.144, 0.092]], [0.186, [0.228, 0.144, 0.092]], [0.188, [0.233, 0.147, 0.094]], [0.190, [0.233, 0.147, 0.094]], [0.192, [0.237, 0.150, 0.096]], [0.194, [0.237, 0.150, 0.096]], [0.196, [0.242, 0.153, 0.098]], [0.198, [0.242, 0.153, 0.098]], [0.200, [0.247, 0.156, 0.100]], [0.202, [0.247, 0.156, 0.100]], [0.204, [0.252, 0.159, 0.101]], [0.205, [0.252, 0.159, 0.101]], [0.207, [0.257, 0.162, 0.103]], [0.209, [0.257, 0.162, 0.103]], [0.211, [0.262, 0.165, 0.105]], [0.213, [0.262, 0.165, 0.105]], [0.215, [0.266, 0.168, 0.107]], [0.217, [0.266, 0.168, 0.107]], [0.219, [0.271, 0.172, 0.109]], [0.221, [0.271, 0.172, 0.109]], [0.223, [0.276, 0.175, 0.111]], [0.225, [0.276, 0.175, 0.111]], [0.227, [0.281, 0.178, 0.113]], [0.229, [0.281, 0.178, 0.113]], [0.231, [0.286, 0.181, 0.115]], [0.233, [0.286, 0.181, 0.115]], [0.235, [0.291, 0.184, 0.117]], [0.237, [0.291, 0.184, 0.117]], [0.239, [0.296, 0.187, 0.119]], [0.241, [0.296, 0.187, 0.119]], [0.243, [0.300, 0.190, 0.121]], [0.245, [0.300, 0.190, 0.121]], [0.247, [0.305, 0.193, 0.123]], [0.249, [0.305, 0.193, 0.123]], [0.250, [0.310, 0.196, 0.125]], [0.252, [0.310, 0.196, 0.125]], [0.254, [0.315, 0.199, 0.127]], [0.256, [0.315, 0.199, 0.127]], [0.258, [0.320, 0.202, 0.129]], [0.260, [0.320, 0.202, 0.129]], [0.262, [0.325, 0.205, 0.131]], [0.264, [0.325, 0.205, 0.131]], [0.266, [0.329, 0.208, 0.133]], [0.268, [0.329, 0.208, 0.133]], [0.270, [0.334, 0.211, 0.135]], [0.272, [0.334, 0.211, 0.135]], [0.274, [0.339, 0.214, 0.137]], [0.276, [0.339, 0.214, 0.137]], [0.278, [0.344, 0.218, 0.139]], [0.280, [0.344, 0.218, 0.139]], [0.282, [0.349, 0.221, 0.140]], [0.284, [0.349, 0.221, 0.140]], [0.286, [0.354, 0.224, 0.142]], [0.288, [0.354, 0.224, 0.142]], [0.290, [0.358, 0.227, 0.144]], [0.292, [0.358, 0.227, 0.144]], [0.294, [0.363, 0.230, 0.146]], [0.295, [0.363, 0.230, 0.146]], [0.297, [0.368, 0.233, 0.148]], [0.299, [0.368, 0.233, 0.148]], [0.301, [0.373, 0.236, 0.150]], [0.303, [0.373, 0.236, 0.150]], [0.305, [0.378, 0.239, 0.152]], [0.307, [0.378, 0.239, 0.152]], [0.309, [0.383, 0.242, 0.154]], [0.311, [0.383, 0.242, 0.154]], [0.313, [0.388, 0.245, 0.156]], [0.315, [0.388, 0.245, 0.156]], [0.317, [0.392, 0.248, 0.158]], [0.319, [0.392, 0.248, 0.158]], [0.321, [0.397, 0.251, 0.160]], [0.323, [0.397, 0.251, 0.160]], [0.325, [0.402, 0.254, 0.162]], [0.327, [0.402, 0.254, 0.162]], [0.329, [0.407, 0.257, 0.164]], [0.331, [0.407, 0.257, 0.164]], [0.333, [0.412, 0.260, 0.166]], [0.335, [0.412, 0.260, 0.166]], [0.337, [0.417, 0.263, 0.168]], [0.339, [0.417, 0.263, 0.168]], [0.341, [0.421, 0.267, 0.170]], [0.342, [0.421, 0.267, 0.170]], [0.344, [0.426, 0.270, 0.172]], [0.346, [0.426, 0.270, 0.172]], [0.348, [0.431, 0.273, 0.174]], [0.350, [0.431, 0.273, 0.174]], [0.352, [0.436, 0.276, 0.176]], [0.354, [0.436, 0.276, 0.176]], [0.356, [0.441, 0.279, 0.178]], [0.358, [0.441, 0.279, 0.178]], [0.360, [0.446, 0.282, 0.179]], [0.362, [0.446, 0.282, 0.179]], [0.364, [0.451, 0.285, 0.181]], [0.366, [0.451, 0.285, 0.181]], [0.368, [0.455, 0.288, 0.183]], [0.370, [0.455, 0.288, 0.183]], [0.372, [0.460, 0.291, 0.185]], [0.374, [0.460, 0.291, 0.185]], [0.376, [0.465, 0.294, 0.187]], [0.378, [0.465, 0.294, 0.187]], [0.380, [0.470, 0.297, 0.189]], [0.382, [0.470, 0.297, 0.189]], [0.384, [0.475, 0.300, 0.191]], [0.386, [0.475, 0.300, 0.191]], [0.387, [0.480, 0.303, 0.193]], [0.389, [0.480, 0.303, 0.193]], [0.391, [0.484, 0.306, 0.195]], [0.393, [0.484, 0.306, 0.195]], [0.395, [0.489, 0.309, 0.197]], [0.397, [0.489, 0.309, 0.197]], [0.399, [0.494, 0.312, 0.199]], [0.401, [0.494, 0.312, 0.199]], [0.403, [0.499, 0.316, 0.201]], [0.405, [0.499, 0.316, 0.201]], [0.407, [0.504, 0.319, 0.203]], [0.409, [0.504, 0.319, 0.203]], [0.411, [0.509, 0.322, 0.205]], [0.413, [0.509, 0.322, 0.205]], [0.415, [0.513, 0.325, 0.207]], [0.417, [0.513, 0.325, 0.207]], [0.419, [0.518, 0.328, 0.209]], [0.421, [0.518, 0.328, 0.209]], [0.423, [0.523, 0.331, 0.211]], [0.425, [0.523, 0.331, 0.211]], [0.427, [0.528, 0.334, 0.213]], [0.429, [0.528, 0.334, 0.213]], [0.431, [0.533, 0.337, 0.215]], [0.432, [0.533, 0.337, 0.215]], [0.434, [0.538, 0.340, 0.217]], [0.436, [0.538, 0.340, 0.217]], [0.438, [0.543, 0.343, 0.219]], [0.440, [0.543, 0.343, 0.219]], [0.442, [0.547, 0.346, 0.220]], [0.444, [0.547, 0.346, 0.220]], [0.446, [0.552, 0.349, 0.222]], [0.448, [0.552, 0.349, 0.222]], [0.450, [0.557, 0.352, 0.224]], [0.452, [0.557, 0.352, 0.224]], [0.454, [0.562, 0.355, 0.226]], [0.456, [0.562, 0.355, 0.226]], [0.458, [0.567, 0.358, 0.228]], [0.460, [0.567, 0.358, 0.228]], [0.462, [0.572, 0.361, 0.230]], [0.464, [0.572, 0.361, 0.230]], [0.466, [0.576, 0.365, 0.232]], [0.468, [0.576, 0.365, 0.232]], [0.470, [0.581, 0.368, 0.234]], [0.472, [0.581, 0.368, 0.234]], [0.474, [0.586, 0.371, 0.236]], [0.476, [0.586, 0.371, 0.236]], [0.477, [0.591, 0.374, 0.238]], [0.479, [0.591, 0.374, 0.238]], [0.481, [0.596, 0.377, 0.240]], [0.483, [0.596, 0.377, 0.240]], [0.485, [0.601, 0.380, 0.242]], [0.487, [0.601, 0.380, 0.242]], [0.489, [0.606, 0.383, 0.244]], [0.491, [0.606, 0.383, 0.244]], [0.493, [0.610, 0.386, 0.246]], [0.495, [0.610, 0.386, 0.246]], [0.497, [0.615, 0.389, 0.248]], [0.499, [0.615, 0.389, 0.248]], [0.501, [0.620, 0.392, 0.250]], [0.503, [0.620, 0.392, 0.250]], [0.505, [0.625, 0.395, 0.252]], [0.507, [0.625, 0.395, 0.252]], [0.509, [0.630, 0.398, 0.254]], [0.511, [0.630, 0.398, 0.254]], [0.513, [0.635, 0.401, 0.256]], [0.515, [0.635, 0.401, 0.256]], [0.517, [0.639, 0.404, 0.258]], [0.519, [0.639, 0.404, 0.258]], [0.521, [0.644, 0.407, 0.259]], [0.523, [0.644, 0.407, 0.259]], [0.524, [0.649, 0.411, 0.261]], [0.526, [0.649, 0.411, 0.261]], [0.528, [0.654, 0.414, 0.263]], [0.530, [0.654, 0.414, 0.263]], [0.532, [0.659, 0.417, 0.265]], [0.534, [0.659, 0.417, 0.265]], [0.536, [0.664, 0.420, 0.267]], [0.538, [0.664, 0.420, 0.267]], [0.540, [0.669, 0.423, 0.269]], [0.542, [0.669, 0.423, 0.269]], [0.544, [0.673, 0.426, 0.271]], [0.546, [0.673, 0.426, 0.271]], [0.548, [0.678, 0.429, 0.273]], [0.550, [0.678, 0.429, 0.273]], [0.552, [0.683, 0.432, 0.275]], [0.554, [0.683, 0.432, 0.275]], [0.556, [0.688, 0.435, 0.277]], [0.558, [0.688, 0.435, 0.277]], [0.560, [0.693, 0.438, 0.279]], [0.562, [0.693, 0.438, 0.279]], [0.564, [0.698, 0.441, 0.281]], [0.566, [0.698, 0.441, 0.281]], [0.568, [0.702, 0.444, 0.283]], [0.569, [0.702, 0.444, 0.283]], [0.571, [0.707, 0.447, 0.285]], [0.573, [0.707, 0.447, 0.285]], [0.575, [0.712, 0.450, 0.287]], [0.577, [0.712, 0.450, 0.287]], [0.579, [0.717, 0.453, 0.289]], [0.581, [0.717, 0.453, 0.289]], [0.583, [0.722, 0.456, 0.291]], [0.585, [0.722, 0.456, 0.291]], [0.587, [0.727, 0.460, 0.293]], [0.589, [0.727, 0.460, 0.293]], [0.591, [0.731, 0.463, 0.295]], [0.593, [0.731, 0.463, 0.295]], [0.595, [0.736, 0.466, 0.297]], [0.597, [0.736, 0.466, 0.297]], [0.599, [0.741, 0.469, 0.298]], [0.601, [0.741, 0.469, 0.298]], [0.603, [0.746, 0.472, 0.300]], [0.605, [0.746, 0.472, 0.300]], [0.607, [0.751, 0.475, 0.302]], [0.609, [0.751, 0.475, 0.302]], [0.611, [0.756, 0.478, 0.304]], [0.613, [0.756, 0.478, 0.304]], [0.614, [0.761, 0.481, 0.306]], [0.616, [0.761, 0.481, 0.306]], [0.618, [0.765, 0.484, 0.308]], [0.620, [0.765, 0.484, 0.308]], [0.622, [0.770, 0.487, 0.310]], [0.624, [0.770, 0.487, 0.310]], [0.626, [0.775, 0.490, 0.312]], [0.628, [0.775, 0.490, 0.312]], [0.630, [0.780, 0.493, 0.314]], [0.632, [0.780, 0.493, 0.314]], [0.634, [0.785, 0.496, 0.316]], [0.636, [0.785, 0.496, 0.316]], [0.638, [0.790, 0.499, 0.318]], [0.640, [0.790, 0.499, 0.318]], [0.642, [0.794, 0.502, 0.320]], [0.644, [0.794, 0.502, 0.320]], [0.646, [0.799, 0.505, 0.322]], [0.648, [0.799, 0.505, 0.322]], [0.650, [0.804, 0.509, 0.324]], [0.652, [0.804, 0.509, 0.324]], [0.654, [0.809, 0.512, 0.326]], [0.656, [0.809, 0.512, 0.326]], [0.658, [0.814, 0.515, 0.328]], [0.659, [0.814, 0.515, 0.328]], [0.661, [0.819, 0.518, 0.330]], [0.663, [0.819, 0.518, 0.330]], [0.665, [0.824, 0.521, 0.332]], [0.667, [0.824, 0.521, 0.332]], [0.669, [0.828, 0.524, 0.334]], [0.671, [0.828, 0.524, 0.334]], [0.673, [0.833, 0.527, 0.336]], [0.675, [0.833, 0.527, 0.336]], [0.677, [0.838, 0.530, 0.338]], [0.679, [0.838, 0.530, 0.338]], [0.681, [0.843, 0.533, 0.339]], [0.683, [0.843, 0.533, 0.339]], [0.685, [0.848, 0.536, 0.341]], [0.687, [0.848, 0.536, 0.341]], [0.689, [0.853, 0.539, 0.343]], [0.691, [0.853, 0.539, 0.343]], [0.693, [0.857, 0.542, 0.345]], [0.695, [0.857, 0.542, 0.345]], [0.697, [0.862, 0.545, 0.347]], [0.699, [0.862, 0.545, 0.347]], [0.701, [0.867, 0.548, 0.349]], [0.703, [0.867, 0.548, 0.349]], [0.705, [0.872, 0.551, 0.351]], [0.706, [0.872, 0.551, 0.351]], [0.708, [0.877, 0.554, 0.353]], [0.710, [0.877, 0.554, 0.353]], [0.712, [0.882, 0.558, 0.355]], [0.714, [0.882, 0.558, 0.355]], [0.716, [0.887, 0.561, 0.357]], [0.718, [0.887, 0.561, 0.357]], [0.720, [0.891, 0.564, 0.359]], [0.722, [0.891, 0.564, 0.359]], [0.724, [0.896, 0.567, 0.361]], [0.726, [0.896, 0.567, 0.361]], [0.728, [0.901, 0.570, 0.363]], [0.730, [0.901, 0.570, 0.363]], [0.732, [0.906, 0.573, 0.365]], [0.734, [0.906, 0.573, 0.365]], [0.736, [0.911, 0.576, 0.367]], [0.738, [0.911, 0.576, 0.367]], [0.740, [0.916, 0.579, 0.369]], [0.742, [0.916, 0.579, 0.369]], [0.744, [0.920, 0.582, 0.371]], [0.746, [0.920, 0.582, 0.371]], [0.748, [0.925, 0.585, 0.373]], [0.750, [0.925, 0.585, 0.373]], [0.751, [0.930, 0.588, 0.375]], [0.753, [0.930, 0.588, 0.375]], [0.755, [0.935, 0.591, 0.377]], [0.757, [0.935, 0.591, 0.377]], [0.759, [0.940, 0.594, 0.378]], [0.761, [0.940, 0.594, 0.378]], [0.763, [0.945, 0.597, 0.380]], [0.765, [0.945, 0.597, 0.380]], [0.767, [0.949, 0.600, 0.382]], [0.769, [0.949, 0.600, 0.382]], [0.771, [0.954, 0.604, 0.384]], [0.773, [0.954, 0.604, 0.384]], [0.775, [0.959, 0.607, 0.386]], [0.777, [0.959, 0.607, 0.386]], [0.779, [0.964, 0.610, 0.388]], [0.781, [0.964, 0.610, 0.388]], [0.783, [0.969, 0.613, 0.390]], [0.785, [0.969, 0.613, 0.390]], [0.787, [0.974, 0.616, 0.392]], [0.789, [0.974, 0.616, 0.392]], [0.791, [0.979, 0.619, 0.394]], [0.793, [0.979, 0.619, 0.394]], [0.795, [0.983, 0.622, 0.396]], [0.796, [0.983, 0.622, 0.396]], [0.798, [0.988, 0.625, 0.398]], [0.800, [0.988, 0.625, 0.398]], [0.802, [0.993, 0.628, 0.400]], [0.804, [0.993, 0.628, 0.400]], [0.806, [0.998, 0.631, 0.402]], [0.808, [0.998, 0.631, 0.402]], [0.810, [1.000, 0.634, 0.404]], [0.812, [1.000, 0.634, 0.404]], [0.814, [1.000, 0.637, 0.406]], [0.816, [1.000, 0.637, 0.406]], [0.818, [1.000, 0.640, 0.408]], [0.820, [1.000, 0.640, 0.408]], [0.822, [1.000, 0.643, 0.410]], [0.824, [1.000, 0.643, 0.410]], [0.826, [1.000, 0.646, 0.412]], [0.828, [1.000, 0.646, 0.412]], [0.830, [1.000, 0.649, 0.414]], [0.832, [1.000, 0.649, 0.414]], [0.834, [1.000, 0.653, 0.416]], [0.836, [1.000, 0.653, 0.416]], [0.838, [1.000, 0.656, 0.418]], [0.840, [1.000, 0.656, 0.418]], [0.841, [1.000, 0.659, 0.419]], [0.843, [1.000, 0.659, 0.419]], [0.845, [1.000, 0.662, 0.421]], [0.847, [1.000, 0.662, 0.421]], [0.849, [1.000, 0.665, 0.423]], [0.851, [1.000, 0.665, 0.423]], [0.853, [1.000, 0.668, 0.425]], [0.855, [1.000, 0.668, 0.425]], [0.857, [1.000, 0.671, 0.427]], [0.859, [1.000, 0.671, 0.427]], [0.861, [1.000, 0.674, 0.429]], [0.863, [1.000, 0.674, 0.429]], [0.865, [1.000, 0.677, 0.431]], [0.867, [1.000, 0.677, 0.431]], [0.869, [1.000, 0.680, 0.433]], [0.871, [1.000, 0.680, 0.433]], [0.873, [1.000, 0.683, 0.435]], [0.875, [1.000, 0.683, 0.435]], [0.877, [1.000, 0.686, 0.437]], [0.879, [1.000, 0.686, 0.437]], [0.881, [1.000, 0.689, 0.439]], [0.883, [1.000, 0.689, 0.439]], [0.885, [1.000, 0.692, 0.441]], [0.886, [1.000, 0.692, 0.441]], [0.888, [1.000, 0.695, 0.443]], [0.890, [1.000, 0.695, 0.443]], [0.892, [1.000, 0.698, 0.445]], [0.894, [1.000, 0.698, 0.445]], [0.896, [1.000, 0.702, 0.447]], [0.898, [1.000, 0.702, 0.447]], [0.900, [1.000, 0.705, 0.449]], [0.902, [1.000, 0.705, 0.449]], [0.904, [1.000, 0.708, 0.451]], [0.906, [1.000, 0.708, 0.451]], [0.908, [1.000, 0.711, 0.453]], [0.910, [1.000, 0.711, 0.453]], [0.912, [1.000, 0.714, 0.455]], [0.914, [1.000, 0.714, 0.455]], [0.916, [1.000, 0.717, 0.457]], [0.918, [1.000, 0.717, 0.457]], [0.920, [1.000, 0.720, 0.458]], [0.922, [1.000, 0.720, 0.458]], [0.924, [1.000, 0.723, 0.460]], [0.926, [1.000, 0.723, 0.460]], [0.928, [1.000, 0.726, 0.462]], [0.930, [1.000, 0.726, 0.462]], [0.932, [1.000, 0.729, 0.464]], [0.933, [1.000, 0.729, 0.464]], [0.935, [1.000, 0.732, 0.466]], [0.937, [1.000, 0.732, 0.466]], [0.939, [1.000, 0.735, 0.468]], [0.941, [1.000, 0.735, 0.468]], [0.943, [1.000, 0.738, 0.470]], [0.945, [1.000, 0.738, 0.470]], [0.947, [1.000, 0.741, 0.472]], [0.949, [1.000, 0.741, 0.472]], [0.951, [1.000, 0.744, 0.474]], [0.953, [1.000, 0.744, 0.474]], [0.955, [1.000, 0.748, 0.476]], [0.957, [1.000, 0.748, 0.476]], [0.959, [1.000, 0.751, 0.478]], [0.961, [1.000, 0.751, 0.478]], [0.963, [1.000, 0.754, 0.480]], [0.965, [1.000, 0.754, 0.480]], [0.967, [1.000, 0.757, 0.482]], [0.969, [1.000, 0.757, 0.482]], [0.971, [1.000, 0.760, 0.484]], [0.973, [1.000, 0.760, 0.484]], [0.975, [1.000, 0.763, 0.486]], [0.977, [1.000, 0.763, 0.486]], [0.978, [1.000, 0.766, 0.488]], [0.980, [1.000, 0.766, 0.488]], [0.982, [1.000, 0.769, 0.490]], [0.984, [1.000, 0.769, 0.490]], [0.986, [1.000, 0.772, 0.492]], [0.988, [1.000, 0.772, 0.492]], [0.990, [1.000, 0.775, 0.494]], [0.992, [1.000, 0.775, 0.494]], [0.994, [1.000, 0.778, 0.496]], [0.996, [1.000, 0.778, 0.496]], [0.998, [1.000, 0.781, 0.497]], [1.000, [1.000, 0.781, 0.497]]];
+var gist_heat = [[0.000, [0.000, 0.000, 0.000]], [0.002, [0.000, 0.000, 0.000]], [0.004, [0.006, 0.000, 0.000]], [0.006, [0.006, 0.000, 0.000]], [0.008, [0.012, 0.000, 0.000]], [0.010, [0.012, 0.000, 0.000]], [0.012, [0.018, 0.000, 0.000]], [0.014, [0.018, 0.000, 0.000]], [0.016, [0.024, 0.000, 0.000]], [0.018, [0.024, 0.000, 0.000]], [0.020, [0.029, 0.000, 0.000]], [0.022, [0.029, 0.000, 0.000]], [0.023, [0.035, 0.000, 0.000]], [0.025, [0.035, 0.000, 0.000]], [0.027, [0.041, 0.000, 0.000]], [0.029, [0.041, 0.000, 0.000]], [0.031, [0.047, 0.000, 0.000]], [0.033, [0.047, 0.000, 0.000]], [0.035, [0.053, 0.000, 0.000]], [0.037, [0.053, 0.000, 0.000]], [0.039, [0.059, 0.000, 0.000]], [0.041, [0.059, 0.000, 0.000]], [0.043, [0.065, 0.000, 0.000]], [0.045, [0.065, 0.000, 0.000]], [0.047, [0.071, 0.000, 0.000]], [0.049, [0.071, 0.000, 0.000]], [0.051, [0.076, 0.000, 0.000]], [0.053, [0.076, 0.000, 0.000]], [0.055, [0.082, 0.000, 0.000]], [0.057, [0.082, 0.000, 0.000]], [0.059, [0.088, 0.000, 0.000]], [0.061, [0.088, 0.000, 0.000]], [0.063, [0.094, 0.000, 0.000]], [0.065, [0.094, 0.000, 0.000]], [0.067, [0.100, 0.000, 0.000]], [0.068, [0.100, 0.000, 0.000]], [0.070, [0.106, 0.000, 0.000]], [0.072, [0.106, 0.000, 0.000]], [0.074, [0.112, 0.000, 0.000]], [0.076, [0.112, 0.000, 0.000]], [0.078, [0.118, 0.000, 0.000]], [0.080, [0.118, 0.000, 0.000]], [0.082, [0.124, 0.000, 0.000]], [0.084, [0.124, 0.000, 0.000]], [0.086, [0.129, 0.000, 0.000]], [0.088, [0.129, 0.000, 0.000]], [0.090, [0.135, 0.000, 0.000]], [0.092, [0.135, 0.000, 0.000]], [0.094, [0.141, 0.000, 0.000]], [0.096, [0.141, 0.000, 0.000]], [0.098, [0.147, 0.000, 0.000]], [0.100, [0.147, 0.000, 0.000]], [0.102, [0.153, 0.000, 0.000]], [0.104, [0.153, 0.000, 0.000]], [0.106, [0.159, 0.000, 0.000]], [0.108, [0.159, 0.000, 0.000]], [0.110, [0.165, 0.000, 0.000]], [0.112, [0.165, 0.000, 0.000]], [0.114, [0.171, 0.000, 0.000]], [0.115, [0.171, 0.000, 0.000]], [0.117, [0.176, 0.000, 0.000]], [0.119, [0.176, 0.000, 0.000]], [0.121, [0.182, 0.000, 0.000]], [0.123, [0.182, 0.000, 0.000]], [0.125, [0.188, 0.000, 0.000]], [0.127, [0.188, 0.000, 0.000]], [0.129, [0.194, 0.000, 0.000]], [0.131, [0.194, 0.000, 0.000]], [0.133, [0.200, 0.000, 0.000]], [0.135, [0.200, 0.000, 0.000]], [0.137, [0.206, 0.000, 0.000]], [0.139, [0.206, 0.000, 0.000]], [0.141, [0.212, 0.000, 0.000]], [0.143, [0.212, 0.000, 0.000]], [0.145, [0.218, 0.000, 0.000]], [0.147, [0.218, 0.000, 0.000]], [0.149, [0.224, 0.000, 0.000]], [0.151, [0.224, 0.000, 0.000]], [0.153, [0.229, 0.000, 0.000]], [0.155, [0.229, 0.000, 0.000]], [0.157, [0.235, 0.000, 0.000]], [0.159, [0.235, 0.000, 0.000]], [0.160, [0.241, 0.000, 0.000]], [0.162, [0.241, 0.000, 0.000]], [0.164, [0.247, 0.000, 0.000]], [0.166, [0.247, 0.000, 0.000]], [0.168, [0.253, 0.000, 0.000]], [0.170, [0.253, 0.000, 0.000]], [0.172, [0.259, 0.000, 0.000]], [0.174, [0.259, 0.000, 0.000]], [0.176, [0.265, 0.000, 0.000]], [0.178, [0.265, 0.000, 0.000]], [0.180, [0.271, 0.000, 0.000]], [0.182, [0.271, 0.000, 0.000]], [0.184, [0.276, 0.000, 0.000]], [0.186, [0.276, 0.000, 0.000]], [0.188, [0.282, 0.000, 0.000]], [0.190, [0.282, 0.000, 0.000]], [0.192, [0.288, 0.000, 0.000]], [0.194, [0.288, 0.000, 0.000]], [0.196, [0.294, 0.000, 0.000]], [0.198, [0.294, 0.000, 0.000]], [0.200, [0.300, 0.000, 0.000]], [0.202, [0.300, 0.000, 0.000]], [0.204, [0.306, 0.000, 0.000]], [0.205, [0.306, 0.000, 0.000]], [0.207, [0.312, 0.000, 0.000]], [0.209, [0.312, 0.000, 0.000]], [0.211, [0.318, 0.000, 0.000]], [0.213, [0.318, 0.000, 0.000]], [0.215, [0.324, 0.000, 0.000]], [0.217, [0.324, 0.000, 0.000]], [0.219, [0.329, 0.000, 0.000]], [0.221, [0.329, 0.000, 0.000]], [0.223, [0.335, 0.000, 0.000]], [0.225, [0.335, 0.000, 0.000]], [0.227, [0.341, 0.000, 0.000]], [0.229, [0.341, 0.000, 0.000]], [0.231, [0.347, 0.000, 0.000]], [0.233, [0.347, 0.000, 0.000]], [0.235, [0.353, 0.000, 0.000]], [0.237, [0.353, 0.000, 0.000]], [0.239, [0.359, 0.000, 0.000]], [0.241, [0.359, 0.000, 0.000]], [0.243, [0.365, 0.000, 0.000]], [0.245, [0.365, 0.000, 0.000]], [0.247, [0.371, 0.000, 0.000]], [0.249, [0.371, 0.000, 0.000]], [0.250, [0.376, 0.000, 0.000]], [0.252, [0.376, 0.000, 0.000]], [0.254, [0.382, 0.000, 0.000]], [0.256, [0.382, 0.000, 0.000]], [0.258, [0.388, 0.000, 0.000]], [0.260, [0.388, 0.000, 0.000]], [0.262, [0.394, 0.000, 0.000]], [0.264, [0.394, 0.000, 0.000]], [0.266, [0.400, 0.000, 0.000]], [0.268, [0.400, 0.000, 0.000]], [0.270, [0.406, 0.000, 0.000]], [0.272, [0.406, 0.000, 0.000]], [0.274, [0.412, 0.000, 0.000]], [0.276, [0.412, 0.000, 0.000]], [0.278, [0.418, 0.000, 0.000]], [0.280, [0.418, 0.000, 0.000]], [0.282, [0.424, 0.000, 0.000]], [0.284, [0.424, 0.000, 0.000]], [0.286, [0.429, 0.000, 0.000]], [0.288, [0.429, 0.000, 0.000]], [0.290, [0.435, 0.000, 0.000]], [0.292, [0.435, 0.000, 0.000]], [0.294, [0.441, 0.000, 0.000]], [0.295, [0.441, 0.000, 0.000]], [0.297, [0.447, 0.000, 0.000]], [0.299, [0.447, 0.000, 0.000]], [0.301, [0.453, 0.000, 0.000]], [0.303, [0.453, 0.000, 0.000]], [0.305, [0.459, 0.000, 0.000]], [0.307, [0.459, 0.000, 0.000]], [0.309, [0.465, 0.000, 0.000]], [0.311, [0.465, 0.000, 0.000]], [0.313, [0.471, 0.000, 0.000]], [0.315, [0.471, 0.000, 0.000]], [0.317, [0.476, 0.000, 0.000]], [0.319, [0.476, 0.000, 0.000]], [0.321, [0.482, 0.000, 0.000]], [0.323, [0.482, 0.000, 0.000]], [0.325, [0.488, 0.000, 0.000]], [0.327, [0.488, 0.000, 0.000]], [0.329, [0.494, 0.000, 0.000]], [0.331, [0.494, 0.000, 0.000]], [0.333, [0.500, 0.000, 0.000]], [0.335, [0.500, 0.000, 0.000]], [0.337, [0.506, 0.000, 0.000]], [0.339, [0.506, 0.000, 0.000]], [0.341, [0.512, 0.000, 0.000]], [0.342, [0.512, 0.000, 0.000]], [0.344, [0.518, 0.000, 0.000]], [0.346, [0.518, 0.000, 0.000]], [0.348, [0.524, 0.000, 0.000]], [0.350, [0.524, 0.000, 0.000]], [0.352, [0.529, 0.000, 0.000]], [0.354, [0.529, 0.000, 0.000]], [0.356, [0.535, 0.000, 0.000]], [0.358, [0.535, 0.000, 0.000]], [0.360, [0.541, 0.000, 0.000]], [0.362, [0.541, 0.000, 0.000]], [0.364, [0.547, 0.000, 0.000]], [0.366, [0.547, 0.000, 0.000]], [0.368, [0.553, 0.000, 0.000]], [0.370, [0.553, 0.000, 0.000]], [0.372, [0.559, 0.000, 0.000]], [0.374, [0.559, 0.000, 0.000]], [0.376, [0.565, 0.000, 0.000]], [0.378, [0.565, 0.000, 0.000]], [0.380, [0.571, 0.000, 0.000]], [0.382, [0.571, 0.000, 0.000]], [0.384, [0.576, 0.000, 0.000]], [0.386, [0.576, 0.000, 0.000]], [0.387, [0.582, 0.000, 0.000]], [0.389, [0.582, 0.000, 0.000]], [0.391, [0.588, 0.000, 0.000]], [0.393, [0.588, 0.000, 0.000]], [0.395, [0.594, 0.000, 0.000]], [0.397, [0.594, 0.000, 0.000]], [0.399, [0.600, 0.000, 0.000]], [0.401, [0.600, 0.000, 0.000]], [0.403, [0.606, 0.000, 0.000]], [0.405, [0.606, 0.000, 0.000]], [0.407, [0.612, 0.000, 0.000]], [0.409, [0.612, 0.000, 0.000]], [0.411, [0.618, 0.000, 0.000]], [0.413, [0.618, 0.000, 0.000]], [0.415, [0.624, 0.000, 0.000]], [0.417, [0.624, 0.000, 0.000]], [0.419, [0.629, 0.000, 0.000]], [0.421, [0.629, 0.000, 0.000]], [0.423, [0.635, 0.000, 0.000]], [0.425, [0.635, 0.000, 0.000]], [0.427, [0.641, 0.000, 0.000]], [0.429, [0.641, 0.000, 0.000]], [0.431, [0.647, 0.000, 0.000]], [0.432, [0.647, 0.000, 0.000]], [0.434, [0.653, 0.000, 0.000]], [0.436, [0.653, 0.000, 0.000]], [0.438, [0.659, 0.000, 0.000]], [0.440, [0.659, 0.000, 0.000]], [0.442, [0.665, 0.000, 0.000]], [0.444, [0.665, 0.000, 0.000]], [0.446, [0.671, 0.000, 0.000]], [0.448, [0.671, 0.000, 0.000]], [0.450, [0.676, 0.000, 0.000]], [0.452, [0.676, 0.000, 0.000]], [0.454, [0.682, 0.000, 0.000]], [0.456, [0.682, 0.000, 0.000]], [0.458, [0.688, 0.000, 0.000]], [0.460, [0.688, 0.000, 0.000]], [0.462, [0.694, 0.000, 0.000]], [0.464, [0.694, 0.000, 0.000]], [0.466, [0.700, 0.000, 0.000]], [0.468, [0.700, 0.000, 0.000]], [0.470, [0.706, 0.000, 0.000]], [0.472, [0.706, 0.000, 0.000]], [0.474, [0.712, 0.000, 0.000]], [0.476, [0.712, 0.000, 0.000]], [0.477, [0.718, 0.000, 0.000]], [0.479, [0.718, 0.000, 0.000]], [0.481, [0.724, 0.000, 0.000]], [0.483, [0.724, 0.000, 0.000]], [0.485, [0.729, 0.000, 0.000]], [0.487, [0.729, 0.000, 0.000]], [0.489, [0.735, 0.000, 0.000]], [0.491, [0.735, 0.000, 0.000]], [0.493, [0.741, 0.000, 0.000]], [0.495, [0.741, 0.000, 0.000]], [0.497, [0.747, 0.000, 0.000]], [0.499, [0.747, 0.000, 0.000]], [0.501, [0.753, 0.004, 0.000]], [0.503, [0.753, 0.004, 0.000]], [0.505, [0.759, 0.012, 0.000]], [0.507, [0.759, 0.012, 0.000]], [0.509, [0.765, 0.020, 0.000]], [0.511, [0.765, 0.020, 0.000]], [0.513, [0.771, 0.027, 0.000]], [0.515, [0.771, 0.027, 0.000]], [0.517, [0.776, 0.035, 0.000]], [0.519, [0.776, 0.035, 0.000]], [0.521, [0.782, 0.043, 0.000]], [0.523, [0.782, 0.043, 0.000]], [0.524, [0.788, 0.051, 0.000]], [0.526, [0.788, 0.051, 0.000]], [0.528, [0.794, 0.059, 0.000]], [0.530, [0.794, 0.059, 0.000]], [0.532, [0.800, 0.067, 0.000]], [0.534, [0.800, 0.067, 0.000]], [0.536, [0.806, 0.075, 0.000]], [0.538, [0.806, 0.075, 0.000]], [0.540, [0.812, 0.082, 0.000]], [0.542, [0.812, 0.082, 0.000]], [0.544, [0.818, 0.090, 0.000]], [0.546, [0.818, 0.090, 0.000]], [0.548, [0.824, 0.098, 0.000]], [0.550, [0.824, 0.098, 0.000]], [0.552, [0.829, 0.106, 0.000]], [0.554, [0.829, 0.106, 0.000]], [0.556, [0.835, 0.114, 0.000]], [0.558, [0.835, 0.114, 0.000]], [0.560, [0.841, 0.122, 0.000]], [0.562, [0.841, 0.122, 0.000]], [0.564, [0.847, 0.129, 0.000]], [0.566, [0.847, 0.129, 0.000]], [0.568, [0.853, 0.137, 0.000]], [0.569, [0.853, 0.137, 0.000]], [0.571, [0.859, 0.145, 0.000]], [0.573, [0.859, 0.145, 0.000]], [0.575, [0.865, 0.153, 0.000]], [0.577, [0.865, 0.153, 0.000]], [0.579, [0.871, 0.161, 0.000]], [0.581, [0.871, 0.161, 0.000]], [0.583, [0.876, 0.169, 0.000]], [0.585, [0.876, 0.169, 0.000]], [0.587, [0.882, 0.176, 0.000]], [0.589, [0.882, 0.176, 0.000]], [0.591, [0.888, 0.184, 0.000]], [0.593, [0.888, 0.184, 0.000]], [0.595, [0.894, 0.192, 0.000]], [0.597, [0.894, 0.192, 0.000]], [0.599, [0.900, 0.200, 0.000]], [0.601, [0.900, 0.200, 0.000]], [0.603, [0.906, 0.208, 0.000]], [0.605, [0.906, 0.208, 0.000]], [0.607, [0.912, 0.216, 0.000]], [0.609, [0.912, 0.216, 0.000]], [0.611, [0.918, 0.224, 0.000]], [0.613, [0.918, 0.224, 0.000]], [0.614, [0.924, 0.231, 0.000]], [0.616, [0.924, 0.231, 0.000]], [0.618, [0.929, 0.239, 0.000]], [0.620, [0.929, 0.239, 0.000]], [0.622, [0.935, 0.247, 0.000]], [0.624, [0.935, 0.247, 0.000]], [0.626, [0.941, 0.255, 0.000]], [0.628, [0.941, 0.255, 0.000]], [0.630, [0.947, 0.263, 0.000]], [0.632, [0.947, 0.263, 0.000]], [0.634, [0.953, 0.271, 0.000]], [0.636, [0.953, 0.271, 0.000]], [0.638, [0.959, 0.278, 0.000]], [0.640, [0.959, 0.278, 0.000]], [0.642, [0.965, 0.286, 0.000]], [0.644, [0.965, 0.286, 0.000]], [0.646, [0.971, 0.294, 0.000]], [0.648, [0.971, 0.294, 0.000]], [0.650, [0.976, 0.302, 0.000]], [0.652, [0.976, 0.302, 0.000]], [0.654, [0.982, 0.310, 0.000]], [0.656, [0.982, 0.310, 0.000]], [0.658, [0.988, 0.318, 0.000]], [0.659, [0.988, 0.318, 0.000]], [0.661, [0.994, 0.325, 0.000]], [0.663, [0.994, 0.325, 0.000]], [0.665, [1.000, 0.333, 0.000]], [0.667, [1.000, 0.333, 0.000]], [0.669, [1.000, 0.341, 0.000]], [0.671, [1.000, 0.341, 0.000]], [0.673, [1.000, 0.349, 0.000]], [0.675, [1.000, 0.349, 0.000]], [0.677, [1.000, 0.357, 0.000]], [0.679, [1.000, 0.357, 0.000]], [0.681, [1.000, 0.365, 0.000]], [0.683, [1.000, 0.365, 0.000]], [0.685, [1.000, 0.373, 0.000]], [0.687, [1.000, 0.373, 0.000]], [0.689, [1.000, 0.380, 0.000]], [0.691, [1.000, 0.380, 0.000]], [0.693, [1.000, 0.388, 0.000]], [0.695, [1.000, 0.388, 0.000]], [0.697, [1.000, 0.396, 0.000]], [0.699, [1.000, 0.396, 0.000]], [0.701, [1.000, 0.404, 0.000]], [0.703, [1.000, 0.404, 0.000]], [0.705, [1.000, 0.412, 0.000]], [0.706, [1.000, 0.412, 0.000]], [0.708, [1.000, 0.420, 0.000]], [0.710, [1.000, 0.420, 0.000]], [0.712, [1.000, 0.427, 0.000]], [0.714, [1.000, 0.427, 0.000]], [0.716, [1.000, 0.435, 0.000]], [0.718, [1.000, 0.435, 0.000]], [0.720, [1.000, 0.443, 0.000]], [0.722, [1.000, 0.443, 0.000]], [0.724, [1.000, 0.451, 0.000]], [0.726, [1.000, 0.451, 0.000]], [0.728, [1.000, 0.459, 0.000]], [0.730, [1.000, 0.459, 0.000]], [0.732, [1.000, 0.467, 0.000]], [0.734, [1.000, 0.467, 0.000]], [0.736, [1.000, 0.475, 0.000]], [0.738, [1.000, 0.475, 0.000]], [0.740, [1.000, 0.482, 0.000]], [0.742, [1.000, 0.482, 0.000]], [0.744, [1.000, 0.490, 0.000]], [0.746, [1.000, 0.490, 0.000]], [0.748, [1.000, 0.498, 0.000]], [0.750, [1.000, 0.498, 0.000]], [0.751, [1.000, 0.506, 0.012]], [0.753, [1.000, 0.506, 0.012]], [0.755, [1.000, 0.514, 0.027]], [0.757, [1.000, 0.514, 0.027]], [0.759, [1.000, 0.522, 0.043]], [0.761, [1.000, 0.522, 0.043]], [0.763, [1.000, 0.529, 0.059]], [0.765, [1.000, 0.529, 0.059]], [0.767, [1.000, 0.537, 0.075]], [0.769, [1.000, 0.537, 0.075]], [0.771, [1.000, 0.545, 0.090]], [0.773, [1.000, 0.545, 0.090]], [0.775, [1.000, 0.553, 0.106]], [0.777, [1.000, 0.553, 0.106]], [0.779, [1.000, 0.561, 0.122]], [0.781, [1.000, 0.561, 0.122]], [0.783, [1.000, 0.569, 0.137]], [0.785, [1.000, 0.569, 0.137]], [0.787, [1.000, 0.576, 0.153]], [0.789, [1.000, 0.576, 0.153]], [0.791, [1.000, 0.584, 0.169]], [0.793, [1.000, 0.584, 0.169]], [0.795, [1.000, 0.592, 0.184]], [0.796, [1.000, 0.592, 0.184]], [0.798, [1.000, 0.600, 0.200]], [0.800, [1.000, 0.600, 0.200]], [0.802, [1.000, 0.608, 0.216]], [0.804, [1.000, 0.608, 0.216]], [0.806, [1.000, 0.616, 0.231]], [0.808, [1.000, 0.616, 0.231]], [0.810, [1.000, 0.624, 0.247]], [0.812, [1.000, 0.624, 0.247]], [0.814, [1.000, 0.631, 0.263]], [0.816, [1.000, 0.631, 0.263]], [0.818, [1.000, 0.639, 0.278]], [0.820, [1.000, 0.639, 0.278]], [0.822, [1.000, 0.647, 0.294]], [0.824, [1.000, 0.647, 0.294]], [0.826, [1.000, 0.655, 0.310]], [0.828, [1.000, 0.655, 0.310]], [0.830, [1.000, 0.663, 0.325]], [0.832, [1.000, 0.663, 0.325]], [0.834, [1.000, 0.671, 0.341]], [0.836, [1.000, 0.671, 0.341]], [0.838, [1.000, 0.678, 0.357]], [0.840, [1.000, 0.678, 0.357]], [0.841, [1.000, 0.686, 0.373]], [0.843, [1.000, 0.686, 0.373]], [0.845, [1.000, 0.694, 0.388]], [0.847, [1.000, 0.694, 0.388]], [0.849, [1.000, 0.702, 0.404]], [0.851, [1.000, 0.702, 0.404]], [0.853, [1.000, 0.710, 0.420]], [0.855, [1.000, 0.710, 0.420]], [0.857, [1.000, 0.718, 0.435]], [0.859, [1.000, 0.718, 0.435]], [0.861, [1.000, 0.725, 0.451]], [0.863, [1.000, 0.725, 0.451]], [0.865, [1.000, 0.733, 0.467]], [0.867, [1.000, 0.733, 0.467]], [0.869, [1.000, 0.741, 0.482]], [0.871, [1.000, 0.741, 0.482]], [0.873, [1.000, 0.749, 0.498]], [0.875, [1.000, 0.749, 0.498]], [0.877, [1.000, 0.757, 0.514]], [0.879, [1.000, 0.757, 0.514]], [0.881, [1.000, 0.765, 0.529]], [0.883, [1.000, 0.765, 0.529]], [0.885, [1.000, 0.773, 0.545]], [0.886, [1.000, 0.773, 0.545]], [0.888, [1.000, 0.780, 0.561]], [0.890, [1.000, 0.780, 0.561]], [0.892, [1.000, 0.788, 0.576]], [0.894, [1.000, 0.788, 0.576]], [0.896, [1.000, 0.796, 0.592]], [0.898, [1.000, 0.796, 0.592]], [0.900, [1.000, 0.804, 0.608]], [0.902, [1.000, 0.804, 0.608]], [0.904, [1.000, 0.812, 0.624]], [0.906, [1.000, 0.812, 0.624]], [0.908, [1.000, 0.820, 0.639]], [0.910, [1.000, 0.820, 0.639]], [0.912, [1.000, 0.827, 0.655]], [0.914, [1.000, 0.827, 0.655]], [0.916, [1.000, 0.835, 0.671]], [0.918, [1.000, 0.835, 0.671]], [0.920, [1.000, 0.843, 0.686]], [0.922, [1.000, 0.843, 0.686]], [0.924, [1.000, 0.851, 0.702]], [0.926, [1.000, 0.851, 0.702]], [0.928, [1.000, 0.859, 0.718]], [0.930, [1.000, 0.859, 0.718]], [0.932, [1.000, 0.867, 0.733]], [0.933, [1.000, 0.867, 0.733]], [0.935, [1.000, 0.875, 0.749]], [0.937, [1.000, 0.875, 0.749]], [0.939, [1.000, 0.882, 0.765]], [0.941, [1.000, 0.882, 0.765]], [0.943, [1.000, 0.890, 0.780]], [0.945, [1.000, 0.890, 0.780]], [0.947, [1.000, 0.898, 0.796]], [0.949, [1.000, 0.898, 0.796]], [0.951, [1.000, 0.906, 0.812]], [0.953, [1.000, 0.906, 0.812]], [0.955, [1.000, 0.914, 0.827]], [0.957, [1.000, 0.914, 0.827]], [0.959, [1.000, 0.922, 0.843]], [0.961, [1.000, 0.922, 0.843]], [0.963, [1.000, 0.929, 0.859]], [0.965, [1.000, 0.929, 0.859]], [0.967, [1.000, 0.937, 0.875]], [0.969, [1.000, 0.937, 0.875]], [0.971, [1.000, 0.945, 0.890]], [0.973, [1.000, 0.945, 0.890]], [0.975, [1.000, 0.953, 0.906]], [0.977, [1.000, 0.953, 0.906]], [0.978, [1.000, 0.961, 0.922]], [0.980, [1.000, 0.961, 0.922]], [0.982, [1.000, 0.969, 0.937]], [0.984, [1.000, 0.969, 0.937]], [0.986, [1.000, 0.976, 0.953]], [0.988, [1.000, 0.976, 0.953]], [0.990, [1.000, 0.984, 0.969]], [0.992, [1.000, 0.984, 0.969]], [0.994, [1.000, 0.992, 0.984]], [0.996, [1.000, 0.992, 0.984]], [0.998, [1.000, 1.000, 1.000]], [1.000, [1.000, 1.000, 1.000]]];
+var gray = [[0.000, [0.000, 0.000, 0.000]], [0.002, [0.000, 0.000, 0.000]], [0.004, [0.004, 0.004, 0.004]], [0.006, [0.004, 0.004, 0.004]], [0.008, [0.008, 0.008, 0.008]], [0.010, [0.008, 0.008, 0.008]], [0.012, [0.012, 0.012, 0.012]], [0.014, [0.012, 0.012, 0.012]], [0.016, [0.016, 0.016, 0.016]], [0.018, [0.016, 0.016, 0.016]], [0.020, [0.020, 0.020, 0.020]], [0.022, [0.020, 0.020, 0.020]], [0.023, [0.024, 0.024, 0.024]], [0.025, [0.024, 0.024, 0.024]], [0.027, [0.027, 0.027, 0.027]], [0.029, [0.027, 0.027, 0.027]], [0.031, [0.031, 0.031, 0.031]], [0.033, [0.031, 0.031, 0.031]], [0.035, [0.035, 0.035, 0.035]], [0.037, [0.035, 0.035, 0.035]], [0.039, [0.039, 0.039, 0.039]], [0.041, [0.039, 0.039, 0.039]], [0.043, [0.043, 0.043, 0.043]], [0.045, [0.043, 0.043, 0.043]], [0.047, [0.047, 0.047, 0.047]], [0.049, [0.047, 0.047, 0.047]], [0.051, [0.051, 0.051, 0.051]], [0.053, [0.051, 0.051, 0.051]], [0.055, [0.055, 0.055, 0.055]], [0.057, [0.055, 0.055, 0.055]], [0.059, [0.059, 0.059, 0.059]], [0.061, [0.059, 0.059, 0.059]], [0.063, [0.063, 0.063, 0.063]], [0.065, [0.063, 0.063, 0.063]], [0.067, [0.067, 0.067, 0.067]], [0.068, [0.067, 0.067, 0.067]], [0.070, [0.071, 0.071, 0.071]], [0.072, [0.071, 0.071, 0.071]], [0.074, [0.075, 0.075, 0.075]], [0.076, [0.075, 0.075, 0.075]], [0.078, [0.078, 0.078, 0.078]], [0.080, [0.078, 0.078, 0.078]], [0.082, [0.082, 0.082, 0.082]], [0.084, [0.082, 0.082, 0.082]], [0.086, [0.086, 0.086, 0.086]], [0.088, [0.086, 0.086, 0.086]], [0.090, [0.090, 0.090, 0.090]], [0.092, [0.090, 0.090, 0.090]], [0.094, [0.094, 0.094, 0.094]], [0.096, [0.094, 0.094, 0.094]], [0.098, [0.098, 0.098, 0.098]], [0.100, [0.098, 0.098, 0.098]], [0.102, [0.102, 0.102, 0.102]], [0.104, [0.102, 0.102, 0.102]], [0.106, [0.106, 0.106, 0.106]], [0.108, [0.106, 0.106, 0.106]], [0.110, [0.110, 0.110, 0.110]], [0.112, [0.110, 0.110, 0.110]], [0.114, [0.114, 0.114, 0.114]], [0.115, [0.114, 0.114, 0.114]], [0.117, [0.118, 0.118, 0.118]], [0.119, [0.118, 0.118, 0.118]], [0.121, [0.122, 0.122, 0.122]], [0.123, [0.122, 0.122, 0.122]], [0.125, [0.125, 0.125, 0.125]], [0.127, [0.125, 0.125, 0.125]], [0.129, [0.129, 0.129, 0.129]], [0.131, [0.129, 0.129, 0.129]], [0.133, [0.133, 0.133, 0.133]], [0.135, [0.133, 0.133, 0.133]], [0.137, [0.137, 0.137, 0.137]], [0.139, [0.137, 0.137, 0.137]], [0.141, [0.141, 0.141, 0.141]], [0.143, [0.141, 0.141, 0.141]], [0.145, [0.145, 0.145, 0.145]], [0.147, [0.145, 0.145, 0.145]], [0.149, [0.149, 0.149, 0.149]], [0.151, [0.149, 0.149, 0.149]], [0.153, [0.153, 0.153, 0.153]], [0.155, [0.153, 0.153, 0.153]], [0.157, [0.157, 0.157, 0.157]], [0.159, [0.157, 0.157, 0.157]], [0.160, [0.161, 0.161, 0.161]], [0.162, [0.161, 0.161, 0.161]], [0.164, [0.165, 0.165, 0.165]], [0.166, [0.165, 0.165, 0.165]], [0.168, [0.169, 0.169, 0.169]], [0.170, [0.169, 0.169, 0.169]], [0.172, [0.173, 0.173, 0.173]], [0.174, [0.173, 0.173, 0.173]], [0.176, [0.176, 0.176, 0.176]], [0.178, [0.176, 0.176, 0.176]], [0.180, [0.180, 0.180, 0.180]], [0.182, [0.180, 0.180, 0.180]], [0.184, [0.184, 0.184, 0.184]], [0.186, [0.184, 0.184, 0.184]], [0.188, [0.188, 0.188, 0.188]], [0.190, [0.188, 0.188, 0.188]], [0.192, [0.192, 0.192, 0.192]], [0.194, [0.192, 0.192, 0.192]], [0.196, [0.196, 0.196, 0.196]], [0.198, [0.196, 0.196, 0.196]], [0.200, [0.200, 0.200, 0.200]], [0.202, [0.200, 0.200, 0.200]], [0.204, [0.204, 0.204, 0.204]], [0.205, [0.204, 0.204, 0.204]], [0.207, [0.208, 0.208, 0.208]], [0.209, [0.208, 0.208, 0.208]], [0.211, [0.212, 0.212, 0.212]], [0.213, [0.212, 0.212, 0.212]], [0.215, [0.216, 0.216, 0.216]], [0.217, [0.216, 0.216, 0.216]], [0.219, [0.220, 0.220, 0.220]], [0.221, [0.220, 0.220, 0.220]], [0.223, [0.224, 0.224, 0.224]], [0.225, [0.224, 0.224, 0.224]], [0.227, [0.227, 0.227, 0.227]], [0.229, [0.227, 0.227, 0.227]], [0.231, [0.231, 0.231, 0.231]], [0.233, [0.231, 0.231, 0.231]], [0.235, [0.235, 0.235, 0.235]], [0.237, [0.235, 0.235, 0.235]], [0.239, [0.239, 0.239, 0.239]], [0.241, [0.239, 0.239, 0.239]], [0.243, [0.243, 0.243, 0.243]], [0.245, [0.243, 0.243, 0.243]], [0.247, [0.247, 0.247, 0.247]], [0.249, [0.247, 0.247, 0.247]], [0.250, [0.251, 0.251, 0.251]], [0.252, [0.251, 0.251, 0.251]], [0.254, [0.255, 0.255, 0.255]], [0.256, [0.255, 0.255, 0.255]], [0.258, [0.259, 0.259, 0.259]], [0.260, [0.259, 0.259, 0.259]], [0.262, [0.263, 0.263, 0.263]], [0.264, [0.263, 0.263, 0.263]], [0.266, [0.267, 0.267, 0.267]], [0.268, [0.267, 0.267, 0.267]], [0.270, [0.271, 0.271, 0.271]], [0.272, [0.271, 0.271, 0.271]], [0.274, [0.275, 0.275, 0.275]], [0.276, [0.275, 0.275, 0.275]], [0.278, [0.278, 0.278, 0.278]], [0.280, [0.278, 0.278, 0.278]], [0.282, [0.282, 0.282, 0.282]], [0.284, [0.282, 0.282, 0.282]], [0.286, [0.286, 0.286, 0.286]], [0.288, [0.286, 0.286, 0.286]], [0.290, [0.290, 0.290, 0.290]], [0.292, [0.290, 0.290, 0.290]], [0.294, [0.294, 0.294, 0.294]], [0.295, [0.294, 0.294, 0.294]], [0.297, [0.298, 0.298, 0.298]], [0.299, [0.298, 0.298, 0.298]], [0.301, [0.302, 0.302, 0.302]], [0.303, [0.302, 0.302, 0.302]], [0.305, [0.306, 0.306, 0.306]], [0.307, [0.306, 0.306, 0.306]], [0.309, [0.310, 0.310, 0.310]], [0.311, [0.310, 0.310, 0.310]], [0.313, [0.314, 0.314, 0.314]], [0.315, [0.314, 0.314, 0.314]], [0.317, [0.318, 0.318, 0.318]], [0.319, [0.318, 0.318, 0.318]], [0.321, [0.322, 0.322, 0.322]], [0.323, [0.322, 0.322, 0.322]], [0.325, [0.325, 0.325, 0.325]], [0.327, [0.325, 0.325, 0.325]], [0.329, [0.329, 0.329, 0.329]], [0.331, [0.329, 0.329, 0.329]], [0.333, [0.333, 0.333, 0.333]], [0.335, [0.333, 0.333, 0.333]], [0.337, [0.337, 0.337, 0.337]], [0.339, [0.337, 0.337, 0.337]], [0.341, [0.341, 0.341, 0.341]], [0.342, [0.341, 0.341, 0.341]], [0.344, [0.345, 0.345, 0.345]], [0.346, [0.345, 0.345, 0.345]], [0.348, [0.349, 0.349, 0.349]], [0.350, [0.349, 0.349, 0.349]], [0.352, [0.353, 0.353, 0.353]], [0.354, [0.353, 0.353, 0.353]], [0.356, [0.357, 0.357, 0.357]], [0.358, [0.357, 0.357, 0.357]], [0.360, [0.361, 0.361, 0.361]], [0.362, [0.361, 0.361, 0.361]], [0.364, [0.365, 0.365, 0.365]], [0.366, [0.365, 0.365, 0.365]], [0.368, [0.369, 0.369, 0.369]], [0.370, [0.369, 0.369, 0.369]], [0.372, [0.373, 0.373, 0.373]], [0.374, [0.373, 0.373, 0.373]], [0.376, [0.376, 0.376, 0.376]], [0.378, [0.376, 0.376, 0.376]], [0.380, [0.380, 0.380, 0.380]], [0.382, [0.380, 0.380, 0.380]], [0.384, [0.384, 0.384, 0.384]], [0.386, [0.384, 0.384, 0.384]], [0.387, [0.388, 0.388, 0.388]], [0.389, [0.388, 0.388, 0.388]], [0.391, [0.392, 0.392, 0.392]], [0.393, [0.392, 0.392, 0.392]], [0.395, [0.396, 0.396, 0.396]], [0.397, [0.396, 0.396, 0.396]], [0.399, [0.400, 0.400, 0.400]], [0.401, [0.400, 0.400, 0.400]], [0.403, [0.404, 0.404, 0.404]], [0.405, [0.404, 0.404, 0.404]], [0.407, [0.408, 0.408, 0.408]], [0.409, [0.408, 0.408, 0.408]], [0.411, [0.412, 0.412, 0.412]], [0.413, [0.412, 0.412, 0.412]], [0.415, [0.416, 0.416, 0.416]], [0.417, [0.416, 0.416, 0.416]], [0.419, [0.420, 0.420, 0.420]], [0.421, [0.420, 0.420, 0.420]], [0.423, [0.424, 0.424, 0.424]], [0.425, [0.424, 0.424, 0.424]], [0.427, [0.427, 0.427, 0.427]], [0.429, [0.427, 0.427, 0.427]], [0.431, [0.431, 0.431, 0.431]], [0.432, [0.431, 0.431, 0.431]], [0.434, [0.435, 0.435, 0.435]], [0.436, [0.435, 0.435, 0.435]], [0.438, [0.439, 0.439, 0.439]], [0.440, [0.439, 0.439, 0.439]], [0.442, [0.443, 0.443, 0.443]], [0.444, [0.443, 0.443, 0.443]], [0.446, [0.447, 0.447, 0.447]], [0.448, [0.447, 0.447, 0.447]], [0.450, [0.451, 0.451, 0.451]], [0.452, [0.451, 0.451, 0.451]], [0.454, [0.455, 0.455, 0.455]], [0.456, [0.455, 0.455, 0.455]], [0.458, [0.459, 0.459, 0.459]], [0.460, [0.459, 0.459, 0.459]], [0.462, [0.463, 0.463, 0.463]], [0.464, [0.463, 0.463, 0.463]], [0.466, [0.467, 0.467, 0.467]], [0.468, [0.467, 0.467, 0.467]], [0.470, [0.471, 0.471, 0.471]], [0.472, [0.471, 0.471, 0.471]], [0.474, [0.475, 0.475, 0.475]], [0.476, [0.475, 0.475, 0.475]], [0.477, [0.478, 0.478, 0.478]], [0.479, [0.478, 0.478, 0.478]], [0.481, [0.482, 0.482, 0.482]], [0.483, [0.482, 0.482, 0.482]], [0.485, [0.486, 0.486, 0.486]], [0.487, [0.486, 0.486, 0.486]], [0.489, [0.490, 0.490, 0.490]], [0.491, [0.490, 0.490, 0.490]], [0.493, [0.494, 0.494, 0.494]], [0.495, [0.494, 0.494, 0.494]], [0.497, [0.498, 0.498, 0.498]], [0.499, [0.498, 0.498, 0.498]], [0.501, [0.502, 0.502, 0.502]], [0.503, [0.502, 0.502, 0.502]], [0.505, [0.506, 0.506, 0.506]], [0.507, [0.506, 0.506, 0.506]], [0.509, [0.510, 0.510, 0.510]], [0.511, [0.510, 0.510, 0.510]], [0.513, [0.514, 0.514, 0.514]], [0.515, [0.514, 0.514, 0.514]], [0.517, [0.518, 0.518, 0.518]], [0.519, [0.518, 0.518, 0.518]], [0.521, [0.522, 0.522, 0.522]], [0.523, [0.522, 0.522, 0.522]], [0.524, [0.525, 0.525, 0.525]], [0.526, [0.525, 0.525, 0.525]], [0.528, [0.529, 0.529, 0.529]], [0.530, [0.529, 0.529, 0.529]], [0.532, [0.533, 0.533, 0.533]], [0.534, [0.533, 0.533, 0.533]], [0.536, [0.537, 0.537, 0.537]], [0.538, [0.537, 0.537, 0.537]], [0.540, [0.541, 0.541, 0.541]], [0.542, [0.541, 0.541, 0.541]], [0.544, [0.545, 0.545, 0.545]], [0.546, [0.545, 0.545, 0.545]], [0.548, [0.549, 0.549, 0.549]], [0.550, [0.549, 0.549, 0.549]], [0.552, [0.553, 0.553, 0.553]], [0.554, [0.553, 0.553, 0.553]], [0.556, [0.557, 0.557, 0.557]], [0.558, [0.557, 0.557, 0.557]], [0.560, [0.561, 0.561, 0.561]], [0.562, [0.561, 0.561, 0.561]], [0.564, [0.565, 0.565, 0.565]], [0.566, [0.565, 0.565, 0.565]], [0.568, [0.569, 0.569, 0.569]], [0.569, [0.569, 0.569, 0.569]], [0.571, [0.573, 0.573, 0.573]], [0.573, [0.573, 0.573, 0.573]], [0.575, [0.576, 0.576, 0.576]], [0.577, [0.576, 0.576, 0.576]], [0.579, [0.580, 0.580, 0.580]], [0.581, [0.580, 0.580, 0.580]], [0.583, [0.584, 0.584, 0.584]], [0.585, [0.584, 0.584, 0.584]], [0.587, [0.588, 0.588, 0.588]], [0.589, [0.588, 0.588, 0.588]], [0.591, [0.592, 0.592, 0.592]], [0.593, [0.592, 0.592, 0.592]], [0.595, [0.596, 0.596, 0.596]], [0.597, [0.596, 0.596, 0.596]], [0.599, [0.600, 0.600, 0.600]], [0.601, [0.600, 0.600, 0.600]], [0.603, [0.604, 0.604, 0.604]], [0.605, [0.604, 0.604, 0.604]], [0.607, [0.608, 0.608, 0.608]], [0.609, [0.608, 0.608, 0.608]], [0.611, [0.612, 0.612, 0.612]], [0.613, [0.612, 0.612, 0.612]], [0.614, [0.616, 0.616, 0.616]], [0.616, [0.616, 0.616, 0.616]], [0.618, [0.620, 0.620, 0.620]], [0.620, [0.620, 0.620, 0.620]], [0.622, [0.624, 0.624, 0.624]], [0.624, [0.624, 0.624, 0.624]], [0.626, [0.627, 0.627, 0.627]], [0.628, [0.627, 0.627, 0.627]], [0.630, [0.631, 0.631, 0.631]], [0.632, [0.631, 0.631, 0.631]], [0.634, [0.635, 0.635, 0.635]], [0.636, [0.635, 0.635, 0.635]], [0.638, [0.639, 0.639, 0.639]], [0.640, [0.639, 0.639, 0.639]], [0.642, [0.643, 0.643, 0.643]], [0.644, [0.643, 0.643, 0.643]], [0.646, [0.647, 0.647, 0.647]], [0.648, [0.647, 0.647, 0.647]], [0.650, [0.651, 0.651, 0.651]], [0.652, [0.651, 0.651, 0.651]], [0.654, [0.655, 0.655, 0.655]], [0.656, [0.655, 0.655, 0.655]], [0.658, [0.659, 0.659, 0.659]], [0.659, [0.659, 0.659, 0.659]], [0.661, [0.663, 0.663, 0.663]], [0.663, [0.663, 0.663, 0.663]], [0.665, [0.667, 0.667, 0.667]], [0.667, [0.667, 0.667, 0.667]], [0.669, [0.671, 0.671, 0.671]], [0.671, [0.671, 0.671, 0.671]], [0.673, [0.675, 0.675, 0.675]], [0.675, [0.675, 0.675, 0.675]], [0.677, [0.678, 0.678, 0.678]], [0.679, [0.678, 0.678, 0.678]], [0.681, [0.682, 0.682, 0.682]], [0.683, [0.682, 0.682, 0.682]], [0.685, [0.686, 0.686, 0.686]], [0.687, [0.686, 0.686, 0.686]], [0.689, [0.690, 0.690, 0.690]], [0.691, [0.690, 0.690, 0.690]], [0.693, [0.694, 0.694, 0.694]], [0.695, [0.694, 0.694, 0.694]], [0.697, [0.698, 0.698, 0.698]], [0.699, [0.698, 0.698, 0.698]], [0.701, [0.702, 0.702, 0.702]], [0.703, [0.702, 0.702, 0.702]], [0.705, [0.706, 0.706, 0.706]], [0.706, [0.706, 0.706, 0.706]], [0.708, [0.710, 0.710, 0.710]], [0.710, [0.710, 0.710, 0.710]], [0.712, [0.714, 0.714, 0.714]], [0.714, [0.714, 0.714, 0.714]], [0.716, [0.718, 0.718, 0.718]], [0.718, [0.718, 0.718, 0.718]], [0.720, [0.722, 0.722, 0.722]], [0.722, [0.722, 0.722, 0.722]], [0.724, [0.725, 0.725, 0.725]], [0.726, [0.725, 0.725, 0.725]], [0.728, [0.729, 0.729, 0.729]], [0.730, [0.729, 0.729, 0.729]], [0.732, [0.733, 0.733, 0.733]], [0.734, [0.733, 0.733, 0.733]], [0.736, [0.737, 0.737, 0.737]], [0.738, [0.737, 0.737, 0.737]], [0.740, [0.741, 0.741, 0.741]], [0.742, [0.741, 0.741, 0.741]], [0.744, [0.745, 0.745, 0.745]], [0.746, [0.745, 0.745, 0.745]], [0.748, [0.749, 0.749, 0.749]], [0.750, [0.749, 0.749, 0.749]], [0.751, [0.753, 0.753, 0.753]], [0.753, [0.753, 0.753, 0.753]], [0.755, [0.757, 0.757, 0.757]], [0.757, [0.757, 0.757, 0.757]], [0.759, [0.761, 0.761, 0.761]], [0.761, [0.761, 0.761, 0.761]], [0.763, [0.765, 0.765, 0.765]], [0.765, [0.765, 0.765, 0.765]], [0.767, [0.769, 0.769, 0.769]], [0.769, [0.769, 0.769, 0.769]], [0.771, [0.773, 0.773, 0.773]], [0.773, [0.773, 0.773, 0.773]], [0.775, [0.776, 0.776, 0.776]], [0.777, [0.776, 0.776, 0.776]], [0.779, [0.780, 0.780, 0.780]], [0.781, [0.780, 0.780, 0.780]], [0.783, [0.784, 0.784, 0.784]], [0.785, [0.784, 0.784, 0.784]], [0.787, [0.788, 0.788, 0.788]], [0.789, [0.788, 0.788, 0.788]], [0.791, [0.792, 0.792, 0.792]], [0.793, [0.792, 0.792, 0.792]], [0.795, [0.796, 0.796, 0.796]], [0.796, [0.796, 0.796, 0.796]], [0.798, [0.800, 0.800, 0.800]], [0.800, [0.800, 0.800, 0.800]], [0.802, [0.804, 0.804, 0.804]], [0.804, [0.804, 0.804, 0.804]], [0.806, [0.808, 0.808, 0.808]], [0.808, [0.808, 0.808, 0.808]], [0.810, [0.812, 0.812, 0.812]], [0.812, [0.812, 0.812, 0.812]], [0.814, [0.816, 0.816, 0.816]], [0.816, [0.816, 0.816, 0.816]], [0.818, [0.820, 0.820, 0.820]], [0.820, [0.820, 0.820, 0.820]], [0.822, [0.824, 0.824, 0.824]], [0.824, [0.824, 0.824, 0.824]], [0.826, [0.827, 0.827, 0.827]], [0.828, [0.827, 0.827, 0.827]], [0.830, [0.831, 0.831, 0.831]], [0.832, [0.831, 0.831, 0.831]], [0.834, [0.835, 0.835, 0.835]], [0.836, [0.835, 0.835, 0.835]], [0.838, [0.839, 0.839, 0.839]], [0.840, [0.839, 0.839, 0.839]], [0.841, [0.843, 0.843, 0.843]], [0.843, [0.843, 0.843, 0.843]], [0.845, [0.847, 0.847, 0.847]], [0.847, [0.847, 0.847, 0.847]], [0.849, [0.851, 0.851, 0.851]], [0.851, [0.851, 0.851, 0.851]], [0.853, [0.855, 0.855, 0.855]], [0.855, [0.855, 0.855, 0.855]], [0.857, [0.859, 0.859, 0.859]], [0.859, [0.859, 0.859, 0.859]], [0.861, [0.863, 0.863, 0.863]], [0.863, [0.863, 0.863, 0.863]], [0.865, [0.867, 0.867, 0.867]], [0.867, [0.867, 0.867, 0.867]], [0.869, [0.871, 0.871, 0.871]], [0.871, [0.871, 0.871, 0.871]], [0.873, [0.875, 0.875, 0.875]], [0.875, [0.875, 0.875, 0.875]], [0.877, [0.878, 0.878, 0.878]], [0.879, [0.878, 0.878, 0.878]], [0.881, [0.882, 0.882, 0.882]], [0.883, [0.882, 0.882, 0.882]], [0.885, [0.886, 0.886, 0.886]], [0.886, [0.886, 0.886, 0.886]], [0.888, [0.890, 0.890, 0.890]], [0.890, [0.890, 0.890, 0.890]], [0.892, [0.894, 0.894, 0.894]], [0.894, [0.894, 0.894, 0.894]], [0.896, [0.898, 0.898, 0.898]], [0.898, [0.898, 0.898, 0.898]], [0.900, [0.902, 0.902, 0.902]], [0.902, [0.902, 0.902, 0.902]], [0.904, [0.906, 0.906, 0.906]], [0.906, [0.906, 0.906, 0.906]], [0.908, [0.910, 0.910, 0.910]], [0.910, [0.910, 0.910, 0.910]], [0.912, [0.914, 0.914, 0.914]], [0.914, [0.914, 0.914, 0.914]], [0.916, [0.918, 0.918, 0.918]], [0.918, [0.918, 0.918, 0.918]], [0.920, [0.922, 0.922, 0.922]], [0.922, [0.922, 0.922, 0.922]], [0.924, [0.925, 0.925, 0.925]], [0.926, [0.925, 0.925, 0.925]], [0.928, [0.929, 0.929, 0.929]], [0.930, [0.929, 0.929, 0.929]], [0.932, [0.933, 0.933, 0.933]], [0.933, [0.933, 0.933, 0.933]], [0.935, [0.937, 0.937, 0.937]], [0.937, [0.937, 0.937, 0.937]], [0.939, [0.941, 0.941, 0.941]], [0.941, [0.941, 0.941, 0.941]], [0.943, [0.945, 0.945, 0.945]], [0.945, [0.945, 0.945, 0.945]], [0.947, [0.949, 0.949, 0.949]], [0.949, [0.949, 0.949, 0.949]], [0.951, [0.953, 0.953, 0.953]], [0.953, [0.953, 0.953, 0.953]], [0.955, [0.957, 0.957, 0.957]], [0.957, [0.957, 0.957, 0.957]], [0.959, [0.961, 0.961, 0.961]], [0.961, [0.961, 0.961, 0.961]], [0.963, [0.965, 0.965, 0.965]], [0.965, [0.965, 0.965, 0.965]], [0.967, [0.969, 0.969, 0.969]], [0.969, [0.969, 0.969, 0.969]], [0.971, [0.973, 0.973, 0.973]], [0.973, [0.973, 0.973, 0.973]], [0.975, [0.976, 0.976, 0.976]], [0.977, [0.976, 0.976, 0.976]], [0.978, [0.980, 0.980, 0.980]], [0.980, [0.980, 0.980, 0.980]], [0.982, [0.984, 0.984, 0.984]], [0.984, [0.984, 0.984, 0.984]], [0.986, [0.988, 0.988, 0.988]], [0.988, [0.988, 0.988, 0.988]], [0.990, [0.992, 0.992, 0.992]], [0.992, [0.992, 0.992, 0.992]], [0.994, [0.996, 0.996, 0.996]], [0.996, [0.996, 0.996, 0.996]], [0.998, [1.000, 1.000, 1.000]], [1.000, [1.000, 1.000, 1.000]]];
+var hot = [[0.000, [0.042, 0.000, 0.000]], [0.002, [0.042, 0.000, 0.000]], [0.004, [0.052, 0.000, 0.000]], [0.006, [0.052, 0.000, 0.000]], [0.008, [0.062, 0.000, 0.000]], [0.010, [0.062, 0.000, 0.000]], [0.012, [0.072, 0.000, 0.000]], [0.014, [0.072, 0.000, 0.000]], [0.016, [0.083, 0.000, 0.000]], [0.018, [0.083, 0.000, 0.000]], [0.020, [0.093, 0.000, 0.000]], [0.022, [0.093, 0.000, 0.000]], [0.023, [0.103, 0.000, 0.000]], [0.025, [0.103, 0.000, 0.000]], [0.027, [0.114, 0.000, 0.000]], [0.029, [0.114, 0.000, 0.000]], [0.031, [0.124, 0.000, 0.000]], [0.033, [0.124, 0.000, 0.000]], [0.035, [0.134, 0.000, 0.000]], [0.037, [0.134, 0.000, 0.000]], [0.039, [0.145, 0.000, 0.000]], [0.041, [0.145, 0.000, 0.000]], [0.043, [0.155, 0.000, 0.000]], [0.045, [0.155, 0.000, 0.000]], [0.047, [0.165, 0.000, 0.000]], [0.049, [0.165, 0.000, 0.000]], [0.051, [0.175, 0.000, 0.000]], [0.053, [0.175, 0.000, 0.000]], [0.055, [0.186, 0.000, 0.000]], [0.057, [0.186, 0.000, 0.000]], [0.059, [0.196, 0.000, 0.000]], [0.061, [0.196, 0.000, 0.000]], [0.063, [0.206, 0.000, 0.000]], [0.065, [0.206, 0.000, 0.000]], [0.067, [0.217, 0.000, 0.000]], [0.068, [0.217, 0.000, 0.000]], [0.070, [0.227, 0.000, 0.000]], [0.072, [0.227, 0.000, 0.000]], [0.074, [0.237, 0.000, 0.000]], [0.076, [0.237, 0.000, 0.000]], [0.078, [0.247, 0.000, 0.000]], [0.080, [0.247, 0.000, 0.000]], [0.082, [0.258, 0.000, 0.000]], [0.084, [0.258, 0.000, 0.000]], [0.086, [0.268, 0.000, 0.000]], [0.088, [0.268, 0.000, 0.000]], [0.090, [0.278, 0.000, 0.000]], [0.092, [0.278, 0.000, 0.000]], [0.094, [0.289, 0.000, 0.000]], [0.096, [0.289, 0.000, 0.000]], [0.098, [0.299, 0.000, 0.000]], [0.100, [0.299, 0.000, 0.000]], [0.102, [0.309, 0.000, 0.000]], [0.104, [0.309, 0.000, 0.000]], [0.106, [0.320, 0.000, 0.000]], [0.108, [0.320, 0.000, 0.000]], [0.110, [0.330, 0.000, 0.000]], [0.112, [0.330, 0.000, 0.000]], [0.114, [0.340, 0.000, 0.000]], [0.115, [0.340, 0.000, 0.000]], [0.117, [0.350, 0.000, 0.000]], [0.119, [0.350, 0.000, 0.000]], [0.121, [0.361, 0.000, 0.000]], [0.123, [0.361, 0.000, 0.000]], [0.125, [0.371, 0.000, 0.000]], [0.127, [0.371, 0.000, 0.000]], [0.129, [0.381, 0.000, 0.000]], [0.131, [0.381, 0.000, 0.000]], [0.133, [0.392, 0.000, 0.000]], [0.135, [0.392, 0.000, 0.000]], [0.137, [0.402, 0.000, 0.000]], [0.139, [0.402, 0.000, 0.000]], [0.141, [0.412, 0.000, 0.000]], [0.143, [0.412, 0.000, 0.000]], [0.145, [0.423, 0.000, 0.000]], [0.147, [0.423, 0.000, 0.000]], [0.149, [0.433, 0.000, 0.000]], [0.151, [0.433, 0.000, 0.000]], [0.153, [0.443, 0.000, 0.000]], [0.155, [0.443, 0.000, 0.000]], [0.157, [0.453, 0.000, 0.000]], [0.159, [0.453, 0.000, 0.000]], [0.160, [0.464, 0.000, 0.000]], [0.162, [0.464, 0.000, 0.000]], [0.164, [0.474, 0.000, 0.000]], [0.166, [0.474, 0.000, 0.000]], [0.168, [0.484, 0.000, 0.000]], [0.170, [0.484, 0.000, 0.000]], [0.172, [0.495, 0.000, 0.000]], [0.174, [0.495, 0.000, 0.000]], [0.176, [0.505, 0.000, 0.000]], [0.178, [0.505, 0.000, 0.000]], [0.180, [0.515, 0.000, 0.000]], [0.182, [0.515, 0.000, 0.000]], [0.184, [0.525, 0.000, 0.000]], [0.186, [0.525, 0.000, 0.000]], [0.188, [0.536, 0.000, 0.000]], [0.190, [0.536, 0.000, 0.000]], [0.192, [0.546, 0.000, 0.000]], [0.194, [0.546, 0.000, 0.000]], [0.196, [0.556, 0.000, 0.000]], [0.198, [0.556, 0.000, 0.000]], [0.200, [0.567, 0.000, 0.000]], [0.202, [0.567, 0.000, 0.000]], [0.204, [0.577, 0.000, 0.000]], [0.205, [0.577, 0.000, 0.000]], [0.207, [0.587, 0.000, 0.000]], [0.209, [0.587, 0.000, 0.000]], [0.211, [0.598, 0.000, 0.000]], [0.213, [0.598, 0.000, 0.000]], [0.215, [0.608, 0.000, 0.000]], [0.217, [0.608, 0.000, 0.000]], [0.219, [0.618, 0.000, 0.000]], [0.221, [0.618, 0.000, 0.000]], [0.223, [0.628, 0.000, 0.000]], [0.225, [0.628, 0.000, 0.000]], [0.227, [0.639, 0.000, 0.000]], [0.229, [0.639, 0.000, 0.000]], [0.231, [0.649, 0.000, 0.000]], [0.233, [0.649, 0.000, 0.000]], [0.235, [0.659, 0.000, 0.000]], [0.237, [0.659, 0.000, 0.000]], [0.239, [0.670, 0.000, 0.000]], [0.241, [0.670, 0.000, 0.000]], [0.243, [0.680, 0.000, 0.000]], [0.245, [0.680, 0.000, 0.000]], [0.247, [0.690, 0.000, 0.000]], [0.249, [0.690, 0.000, 0.000]], [0.250, [0.700, 0.000, 0.000]], [0.252, [0.700, 0.000, 0.000]], [0.254, [0.711, 0.000, 0.000]], [0.256, [0.711, 0.000, 0.000]], [0.258, [0.721, 0.000, 0.000]], [0.260, [0.721, 0.000, 0.000]], [0.262, [0.731, 0.000, 0.000]], [0.264, [0.731, 0.000, 0.000]], [0.266, [0.742, 0.000, 0.000]], [0.268, [0.742, 0.000, 0.000]], [0.270, [0.752, 0.000, 0.000]], [0.272, [0.752, 0.000, 0.000]], [0.274, [0.762, 0.000, 0.000]], [0.276, [0.762, 0.000, 0.000]], [0.278, [0.773, 0.000, 0.000]], [0.280, [0.773, 0.000, 0.000]], [0.282, [0.783, 0.000, 0.000]], [0.284, [0.783, 0.000, 0.000]], [0.286, [0.793, 0.000, 0.000]], [0.288, [0.793, 0.000, 0.000]], [0.290, [0.803, 0.000, 0.000]], [0.292, [0.803, 0.000, 0.000]], [0.294, [0.814, 0.000, 0.000]], [0.295, [0.814, 0.000, 0.000]], [0.297, [0.824, 0.000, 0.000]], [0.299, [0.824, 0.000, 0.000]], [0.301, [0.834, 0.000, 0.000]], [0.303, [0.834, 0.000, 0.000]], [0.305, [0.845, 0.000, 0.000]], [0.307, [0.845, 0.000, 0.000]], [0.309, [0.855, 0.000, 0.000]], [0.311, [0.855, 0.000, 0.000]], [0.313, [0.865, 0.000, 0.000]], [0.315, [0.865, 0.000, 0.000]], [0.317, [0.875, 0.000, 0.000]], [0.319, [0.875, 0.000, 0.000]], [0.321, [0.886, 0.000, 0.000]], [0.323, [0.886, 0.000, 0.000]], [0.325, [0.896, 0.000, 0.000]], [0.327, [0.896, 0.000, 0.000]], [0.329, [0.906, 0.000, 0.000]], [0.331, [0.906, 0.000, 0.000]], [0.333, [0.917, 0.000, 0.000]], [0.335, [0.917, 0.000, 0.000]], [0.337, [0.927, 0.000, 0.000]], [0.339, [0.927, 0.000, 0.000]], [0.341, [0.937, 0.000, 0.000]], [0.342, [0.937, 0.000, 0.000]], [0.344, [0.948, 0.000, 0.000]], [0.346, [0.948, 0.000, 0.000]], [0.348, [0.958, 0.000, 0.000]], [0.350, [0.958, 0.000, 0.000]], [0.352, [0.968, 0.000, 0.000]], [0.354, [0.968, 0.000, 0.000]], [0.356, [0.978, 0.000, 0.000]], [0.358, [0.978, 0.000, 0.000]], [0.360, [0.989, 0.000, 0.000]], [0.362, [0.989, 0.000, 0.000]], [0.364, [0.999, 0.000, 0.000]], [0.366, [0.999, 0.000, 0.000]], [0.368, [1.000, 0.009, 0.000]], [0.370, [1.000, 0.009, 0.000]], [0.372, [1.000, 0.020, 0.000]], [0.374, [1.000, 0.020, 0.000]], [0.376, [1.000, 0.030, 0.000]], [0.378, [1.000, 0.030, 0.000]], [0.380, [1.000, 0.040, 0.000]], [0.382, [1.000, 0.040, 0.000]], [0.384, [1.000, 0.050, 0.000]], [0.386, [1.000, 0.050, 0.000]], [0.387, [1.000, 0.061, 0.000]], [0.389, [1.000, 0.061, 0.000]], [0.391, [1.000, 0.071, 0.000]], [0.393, [1.000, 0.071, 0.000]], [0.395, [1.000, 0.081, 0.000]], [0.397, [1.000, 0.081, 0.000]], [0.399, [1.000, 0.092, 0.000]], [0.401, [1.000, 0.092, 0.000]], [0.403, [1.000, 0.102, 0.000]], [0.405, [1.000, 0.102, 0.000]], [0.407, [1.000, 0.112, 0.000]], [0.409, [1.000, 0.112, 0.000]], [0.411, [1.000, 0.123, 0.000]], [0.413, [1.000, 0.123, 0.000]], [0.415, [1.000, 0.133, 0.000]], [0.417, [1.000, 0.133, 0.000]], [0.419, [1.000, 0.143, 0.000]], [0.421, [1.000, 0.143, 0.000]], [0.423, [1.000, 0.153, 0.000]], [0.425, [1.000, 0.153, 0.000]], [0.427, [1.000, 0.164, 0.000]], [0.429, [1.000, 0.164, 0.000]], [0.431, [1.000, 0.174, 0.000]], [0.432, [1.000, 0.174, 0.000]], [0.434, [1.000, 0.184, 0.000]], [0.436, [1.000, 0.184, 0.000]], [0.438, [1.000, 0.195, 0.000]], [0.440, [1.000, 0.195, 0.000]], [0.442, [1.000, 0.205, 0.000]], [0.444, [1.000, 0.205, 0.000]], [0.446, [1.000, 0.215, 0.000]], [0.448, [1.000, 0.215, 0.000]], [0.450, [1.000, 0.225, 0.000]], [0.452, [1.000, 0.225, 0.000]], [0.454, [1.000, 0.236, 0.000]], [0.456, [1.000, 0.236, 0.000]], [0.458, [1.000, 0.246, 0.000]], [0.460, [1.000, 0.246, 0.000]], [0.462, [1.000, 0.256, 0.000]], [0.464, [1.000, 0.256, 0.000]], [0.466, [1.000, 0.267, 0.000]], [0.468, [1.000, 0.267, 0.000]], [0.470, [1.000, 0.277, 0.000]], [0.472, [1.000, 0.277, 0.000]], [0.474, [1.000, 0.287, 0.000]], [0.476, [1.000, 0.287, 0.000]], [0.477, [1.000, 0.298, 0.000]], [0.479, [1.000, 0.298, 0.000]], [0.481, [1.000, 0.308, 0.000]], [0.483, [1.000, 0.308, 0.000]], [0.485, [1.000, 0.318, 0.000]], [0.487, [1.000, 0.318, 0.000]], [0.489, [1.000, 0.328, 0.000]], [0.491, [1.000, 0.328, 0.000]], [0.493, [1.000, 0.339, 0.000]], [0.495, [1.000, 0.339, 0.000]], [0.497, [1.000, 0.349, 0.000]], [0.499, [1.000, 0.349, 0.000]], [0.501, [1.000, 0.359, 0.000]], [0.503, [1.000, 0.359, 0.000]], [0.505, [1.000, 0.370, 0.000]], [0.507, [1.000, 0.370, 0.000]], [0.509, [1.000, 0.380, 0.000]], [0.511, [1.000, 0.380, 0.000]], [0.513, [1.000, 0.390, 0.000]], [0.515, [1.000, 0.390, 0.000]], [0.517, [1.000, 0.400, 0.000]], [0.519, [1.000, 0.400, 0.000]], [0.521, [1.000, 0.411, 0.000]], [0.523, [1.000, 0.411, 0.000]], [0.524, [1.000, 0.421, 0.000]], [0.526, [1.000, 0.421, 0.000]], [0.528, [1.000, 0.431, 0.000]], [0.530, [1.000, 0.431, 0.000]], [0.532, [1.000, 0.442, 0.000]], [0.534, [1.000, 0.442, 0.000]], [0.536, [1.000, 0.452, 0.000]], [0.538, [1.000, 0.452, 0.000]], [0.540, [1.000, 0.462, 0.000]], [0.542, [1.000, 0.462, 0.000]], [0.544, [1.000, 0.473, 0.000]], [0.546, [1.000, 0.473, 0.000]], [0.548, [1.000, 0.483, 0.000]], [0.550, [1.000, 0.483, 0.000]], [0.552, [1.000, 0.493, 0.000]], [0.554, [1.000, 0.493, 0.000]], [0.556, [1.000, 0.503, 0.000]], [0.558, [1.000, 0.503, 0.000]], [0.560, [1.000, 0.514, 0.000]], [0.562, [1.000, 0.514, 0.000]], [0.564, [1.000, 0.524, 0.000]], [0.566, [1.000, 0.524, 0.000]], [0.568, [1.000, 0.534, 0.000]], [0.569, [1.000, 0.534, 0.000]], [0.571, [1.000, 0.545, 0.000]], [0.573, [1.000, 0.545, 0.000]], [0.575, [1.000, 0.555, 0.000]], [0.577, [1.000, 0.555, 0.000]], [0.579, [1.000, 0.565, 0.000]], [0.581, [1.000, 0.565, 0.000]], [0.583, [1.000, 0.575, 0.000]], [0.585, [1.000, 0.575, 0.000]], [0.587, [1.000, 0.586, 0.000]], [0.589, [1.000, 0.586, 0.000]], [0.591, [1.000, 0.596, 0.000]], [0.593, [1.000, 0.596, 0.000]], [0.595, [1.000, 0.606, 0.000]], [0.597, [1.000, 0.606, 0.000]], [0.599, [1.000, 0.617, 0.000]], [0.601, [1.000, 0.617, 0.000]], [0.603, [1.000, 0.627, 0.000]], [0.605, [1.000, 0.627, 0.000]], [0.607, [1.000, 0.637, 0.000]], [0.609, [1.000, 0.637, 0.000]], [0.611, [1.000, 0.648, 0.000]], [0.613, [1.000, 0.648, 0.000]], [0.614, [1.000, 0.658, 0.000]], [0.616, [1.000, 0.658, 0.000]], [0.618, [1.000, 0.668, 0.000]], [0.620, [1.000, 0.668, 0.000]], [0.622, [1.000, 0.678, 0.000]], [0.624, [1.000, 0.678, 0.000]], [0.626, [1.000, 0.689, 0.000]], [0.628, [1.000, 0.689, 0.000]], [0.630, [1.000, 0.699, 0.000]], [0.632, [1.000, 0.699, 0.000]], [0.634, [1.000, 0.709, 0.000]], [0.636, [1.000, 0.709, 0.000]], [0.638, [1.000, 0.720, 0.000]], [0.640, [1.000, 0.720, 0.000]], [0.642, [1.000, 0.730, 0.000]], [0.644, [1.000, 0.730, 0.000]], [0.646, [1.000, 0.740, 0.000]], [0.648, [1.000, 0.740, 0.000]], [0.650, [1.000, 0.750, 0.000]], [0.652, [1.000, 0.750, 0.000]], [0.654, [1.000, 0.761, 0.000]], [0.656, [1.000, 0.761, 0.000]], [0.658, [1.000, 0.771, 0.000]], [0.659, [1.000, 0.771, 0.000]], [0.661, [1.000, 0.781, 0.000]], [0.663, [1.000, 0.781, 0.000]], [0.665, [1.000, 0.792, 0.000]], [0.667, [1.000, 0.792, 0.000]], [0.669, [1.000, 0.802, 0.000]], [0.671, [1.000, 0.802, 0.000]], [0.673, [1.000, 0.812, 0.000]], [0.675, [1.000, 0.812, 0.000]], [0.677, [1.000, 0.823, 0.000]], [0.679, [1.000, 0.823, 0.000]], [0.681, [1.000, 0.833, 0.000]], [0.683, [1.000, 0.833, 0.000]], [0.685, [1.000, 0.843, 0.000]], [0.687, [1.000, 0.843, 0.000]], [0.689, [1.000, 0.853, 0.000]], [0.691, [1.000, 0.853, 0.000]], [0.693, [1.000, 0.864, 0.000]], [0.695, [1.000, 0.864, 0.000]], [0.697, [1.000, 0.874, 0.000]], [0.699, [1.000, 0.874, 0.000]], [0.701, [1.000, 0.884, 0.000]], [0.703, [1.000, 0.884, 0.000]], [0.705, [1.000, 0.895, 0.000]], [0.706, [1.000, 0.895, 0.000]], [0.708, [1.000, 0.905, 0.000]], [0.710, [1.000, 0.905, 0.000]], [0.712, [1.000, 0.915, 0.000]], [0.714, [1.000, 0.915, 0.000]], [0.716, [1.000, 0.925, 0.000]], [0.718, [1.000, 0.925, 0.000]], [0.720, [1.000, 0.936, 0.000]], [0.722, [1.000, 0.936, 0.000]], [0.724, [1.000, 0.946, 0.000]], [0.726, [1.000, 0.946, 0.000]], [0.728, [1.000, 0.956, 0.000]], [0.730, [1.000, 0.956, 0.000]], [0.732, [1.000, 0.967, 0.000]], [0.734, [1.000, 0.967, 0.000]], [0.736, [1.000, 0.977, 0.000]], [0.738, [1.000, 0.977, 0.000]], [0.740, [1.000, 0.987, 0.000]], [0.742, [1.000, 0.987, 0.000]], [0.744, [1.000, 0.998, 0.000]], [0.746, [1.000, 0.998, 0.000]], [0.748, [1.000, 1.000, 0.012]], [0.750, [1.000, 1.000, 0.012]], [0.751, [1.000, 1.000, 0.027]], [0.753, [1.000, 1.000, 0.027]], [0.755, [1.000, 1.000, 0.043]], [0.757, [1.000, 1.000, 0.043]], [0.759, [1.000, 1.000, 0.058]], [0.761, [1.000, 1.000, 0.058]], [0.763, [1.000, 1.000, 0.074]], [0.765, [1.000, 1.000, 0.074]], [0.767, [1.000, 1.000, 0.089]], [0.769, [1.000, 1.000, 0.089]], [0.771, [1.000, 1.000, 0.104]], [0.773, [1.000, 1.000, 0.104]], [0.775, [1.000, 1.000, 0.120]], [0.777, [1.000, 1.000, 0.120]], [0.779, [1.000, 1.000, 0.135]], [0.781, [1.000, 1.000, 0.135]], [0.783, [1.000, 1.000, 0.151]], [0.785, [1.000, 1.000, 0.151]], [0.787, [1.000, 1.000, 0.166]], [0.789, [1.000, 1.000, 0.166]], [0.791, [1.000, 1.000, 0.182]], [0.793, [1.000, 1.000, 0.182]], [0.795, [1.000, 1.000, 0.197]], [0.796, [1.000, 1.000, 0.197]], [0.798, [1.000, 1.000, 0.212]], [0.800, [1.000, 1.000, 0.212]], [0.802, [1.000, 1.000, 0.228]], [0.804, [1.000, 1.000, 0.228]], [0.806, [1.000, 1.000, 0.243]], [0.808, [1.000, 1.000, 0.243]], [0.810, [1.000, 1.000, 0.259]], [0.812, [1.000, 1.000, 0.259]], [0.814, [1.000, 1.000, 0.274]], [0.816, [1.000, 1.000, 0.274]], [0.818, [1.000, 1.000, 0.290]], [0.820, [1.000, 1.000, 0.290]], [0.822, [1.000, 1.000, 0.305]], [0.824, [1.000, 1.000, 0.305]], [0.826, [1.000, 1.000, 0.321]], [0.828, [1.000, 1.000, 0.321]], [0.830, [1.000, 1.000, 0.336]], [0.832, [1.000, 1.000, 0.336]], [0.834, [1.000, 1.000, 0.351]], [0.836, [1.000, 1.000, 0.351]], [0.838, [1.000, 1.000, 0.367]], [0.840, [1.000, 1.000, 0.367]], [0.841, [1.000, 1.000, 0.382]], [0.843, [1.000, 1.000, 0.382]], [0.845, [1.000, 1.000, 0.398]], [0.847, [1.000, 1.000, 0.398]], [0.849, [1.000, 1.000, 0.413]], [0.851, [1.000, 1.000, 0.413]], [0.853, [1.000, 1.000, 0.429]], [0.855, [1.000, 1.000, 0.429]], [0.857, [1.000, 1.000, 0.444]], [0.859, [1.000, 1.000, 0.444]], [0.861, [1.000, 1.000, 0.460]], [0.863, [1.000, 1.000, 0.460]], [0.865, [1.000, 1.000, 0.475]], [0.867, [1.000, 1.000, 0.475]], [0.869, [1.000, 1.000, 0.490]], [0.871, [1.000, 1.000, 0.490]], [0.873, [1.000, 1.000, 0.506]], [0.875, [1.000, 1.000, 0.506]], [0.877, [1.000, 1.000, 0.521]], [0.879, [1.000, 1.000, 0.521]], [0.881, [1.000, 1.000, 0.537]], [0.883, [1.000, 1.000, 0.537]], [0.885, [1.000, 1.000, 0.552]], [0.886, [1.000, 1.000, 0.552]], [0.888, [1.000, 1.000, 0.568]], [0.890, [1.000, 1.000, 0.568]], [0.892, [1.000, 1.000, 0.583]], [0.894, [1.000, 1.000, 0.583]], [0.896, [1.000, 1.000, 0.599]], [0.898, [1.000, 1.000, 0.599]], [0.900, [1.000, 1.000, 0.614]], [0.902, [1.000, 1.000, 0.614]], [0.904, [1.000, 1.000, 0.629]], [0.906, [1.000, 1.000, 0.629]], [0.908, [1.000, 1.000, 0.645]], [0.910, [1.000, 1.000, 0.645]], [0.912, [1.000, 1.000, 0.660]], [0.914, [1.000, 1.000, 0.660]], [0.916, [1.000, 1.000, 0.676]], [0.918, [1.000, 1.000, 0.676]], [0.920, [1.000, 1.000, 0.691]], [0.922, [1.000, 1.000, 0.691]], [0.924, [1.000, 1.000, 0.707]], [0.926, [1.000, 1.000, 0.707]], [0.928, [1.000, 1.000, 0.722]], [0.930, [1.000, 1.000, 0.722]], [0.932, [1.000, 1.000, 0.737]], [0.933, [1.000, 1.000, 0.737]], [0.935, [1.000, 1.000, 0.753]], [0.937, [1.000, 1.000, 0.753]], [0.939, [1.000, 1.000, 0.768]], [0.941, [1.000, 1.000, 0.768]], [0.943, [1.000, 1.000, 0.784]], [0.945, [1.000, 1.000, 0.784]], [0.947, [1.000, 1.000, 0.799]], [0.949, [1.000, 1.000, 0.799]], [0.951, [1.000, 1.000, 0.815]], [0.953, [1.000, 1.000, 0.815]], [0.955, [1.000, 1.000, 0.830]], [0.957, [1.000, 1.000, 0.830]], [0.959, [1.000, 1.000, 0.846]], [0.961, [1.000, 1.000, 0.846]], [0.963, [1.000, 1.000, 0.861]], [0.965, [1.000, 1.000, 0.861]], [0.967, [1.000, 1.000, 0.876]], [0.969, [1.000, 1.000, 0.876]], [0.971, [1.000, 1.000, 0.892]], [0.973, [1.000, 1.000, 0.892]], [0.975, [1.000, 1.000, 0.907]], [0.977, [1.000, 1.000, 0.907]], [0.978, [1.000, 1.000, 0.923]], [0.980, [1.000, 1.000, 0.923]], [0.982, [1.000, 1.000, 0.938]], [0.984, [1.000, 1.000, 0.938]], [0.986, [1.000, 1.000, 0.954]], [0.988, [1.000, 1.000, 0.954]], [0.990, [1.000, 1.000, 0.969]], [0.992, [1.000, 1.000, 0.969]], [0.994, [1.000, 1.000, 0.985]], [0.996, [1.000, 1.000, 0.985]], [0.998, [1.000, 1.000, 1.000]], [1.000, [1.000, 1.000, 1.000]]];
+var pink = [[0.000, [0.118, 0.000, 0.000]], [0.002, [0.118, 0.000, 0.000]], [0.004, [0.137, 0.025, 0.025]], [0.006, [0.137, 0.025, 0.025]], [0.008, [0.156, 0.051, 0.051]], [0.010, [0.156, 0.051, 0.051]], [0.012, [0.176, 0.076, 0.076]], [0.014, [0.176, 0.076, 0.076]], [0.016, [0.195, 0.102, 0.102]], [0.018, [0.195, 0.102, 0.102]], [0.020, [0.209, 0.113, 0.113]], [0.022, [0.209, 0.113, 0.113]], [0.023, [0.222, 0.123, 0.123]], [0.025, [0.222, 0.123, 0.123]], [0.027, [0.236, 0.134, 0.134]], [0.029, [0.236, 0.134, 0.134]], [0.031, [0.249, 0.144, 0.144]], [0.033, [0.249, 0.144, 0.144]], [0.035, [0.261, 0.153, 0.153]], [0.037, [0.261, 0.153, 0.153]], [0.039, [0.272, 0.161, 0.161]], [0.041, [0.272, 0.161, 0.161]], [0.043, [0.283, 0.169, 0.169]], [0.045, [0.283, 0.169, 0.169]], [0.047, [0.294, 0.177, 0.177]], [0.049, [0.294, 0.177, 0.177]], [0.051, [0.304, 0.184, 0.184]], [0.053, [0.304, 0.184, 0.184]], [0.055, [0.313, 0.191, 0.191]], [0.057, [0.313, 0.191, 0.191]], [0.059, [0.323, 0.198, 0.198]], [0.061, [0.323, 0.198, 0.198]], [0.063, [0.332, 0.204, 0.204]], [0.065, [0.332, 0.204, 0.204]], [0.067, [0.341, 0.211, 0.211]], [0.068, [0.341, 0.211, 0.211]], [0.070, [0.350, 0.217, 0.217]], [0.072, [0.350, 0.217, 0.217]], [0.074, [0.358, 0.223, 0.223]], [0.076, [0.358, 0.223, 0.223]], [0.078, [0.367, 0.229, 0.229]], [0.080, [0.367, 0.229, 0.229]], [0.082, [0.375, 0.234, 0.234]], [0.084, [0.375, 0.234, 0.234]], [0.086, [0.383, 0.240, 0.240]], [0.088, [0.383, 0.240, 0.240]], [0.090, [0.391, 0.245, 0.245]], [0.092, [0.391, 0.245, 0.245]], [0.094, [0.399, 0.250, 0.250]], [0.096, [0.399, 0.250, 0.250]], [0.098, [0.406, 0.256, 0.256]], [0.100, [0.406, 0.256, 0.256]], [0.102, [0.413, 0.261, 0.261]], [0.104, [0.413, 0.261, 0.261]], [0.106, [0.421, 0.266, 0.266]], [0.108, [0.421, 0.266, 0.266]], [0.110, [0.428, 0.271, 0.271]], [0.112, [0.428, 0.271, 0.271]], [0.114, [0.435, 0.275, 0.275]], [0.115, [0.435, 0.275, 0.275]], [0.117, [0.442, 0.280, 0.280]], [0.119, [0.442, 0.280, 0.280]], [0.121, [0.448, 0.285, 0.285]], [0.123, [0.448, 0.285, 0.285]], [0.125, [0.455, 0.289, 0.289]], [0.127, [0.455, 0.289, 0.289]], [0.129, [0.462, 0.294, 0.294]], [0.131, [0.462, 0.294, 0.294]], [0.133, [0.468, 0.298, 0.298]], [0.135, [0.468, 0.298, 0.298]], [0.137, [0.475, 0.302, 0.302]], [0.139, [0.475, 0.302, 0.302]], [0.141, [0.481, 0.307, 0.307]], [0.143, [0.481, 0.307, 0.307]], [0.145, [0.487, 0.311, 0.311]], [0.147, [0.487, 0.311, 0.311]], [0.149, [0.493, 0.315, 0.315]], [0.151, [0.493, 0.315, 0.315]], [0.153, [0.500, 0.319, 0.319]], [0.155, [0.500, 0.319, 0.319]], [0.157, [0.506, 0.323, 0.323]], [0.159, [0.506, 0.323, 0.323]], [0.160, [0.512, 0.327, 0.327]], [0.162, [0.512, 0.327, 0.327]], [0.164, [0.517, 0.331, 0.331]], [0.166, [0.517, 0.331, 0.331]], [0.168, [0.523, 0.335, 0.335]], [0.170, [0.523, 0.335, 0.335]], [0.172, [0.529, 0.339, 0.339]], [0.174, [0.529, 0.339, 0.339]], [0.176, [0.535, 0.343, 0.343]], [0.178, [0.535, 0.343, 0.343]], [0.180, [0.540, 0.347, 0.347]], [0.182, [0.540, 0.347, 0.347]], [0.184, [0.546, 0.350, 0.350]], [0.186, [0.546, 0.350, 0.350]], [0.188, [0.551, 0.354, 0.354]], [0.190, [0.551, 0.354, 0.354]], [0.192, [0.557, 0.358, 0.358]], [0.194, [0.557, 0.358, 0.358]], [0.196, [0.562, 0.361, 0.361]], [0.198, [0.562, 0.361, 0.361]], [0.200, [0.568, 0.365, 0.365]], [0.202, [0.568, 0.365, 0.365]], [0.204, [0.573, 0.369, 0.369]], [0.205, [0.573, 0.369, 0.369]], [0.207, [0.578, 0.372, 0.372]], [0.209, [0.578, 0.372, 0.372]], [0.211, [0.583, 0.376, 0.376]], [0.213, [0.583, 0.376, 0.376]], [0.215, [0.588, 0.379, 0.379]], [0.217, [0.588, 0.379, 0.379]], [0.219, [0.594, 0.383, 0.383]], [0.221, [0.594, 0.383, 0.383]], [0.223, [0.599, 0.386, 0.386]], [0.225, [0.599, 0.386, 0.386]], [0.227, [0.604, 0.389, 0.389]], [0.229, [0.604, 0.389, 0.389]], [0.231, [0.609, 0.393, 0.393]], [0.233, [0.609, 0.393, 0.393]], [0.235, [0.614, 0.396, 0.396]], [0.237, [0.614, 0.396, 0.396]], [0.239, [0.619, 0.399, 0.399]], [0.241, [0.619, 0.399, 0.399]], [0.243, [0.623, 0.403, 0.403]], [0.245, [0.623, 0.403, 0.403]], [0.247, [0.628, 0.406, 0.406]], [0.249, [0.628, 0.406, 0.406]], [0.250, [0.633, 0.409, 0.409]], [0.252, [0.633, 0.409, 0.409]], [0.254, [0.638, 0.412, 0.412]], [0.256, [0.638, 0.412, 0.412]], [0.258, [0.643, 0.415, 0.415]], [0.260, [0.643, 0.415, 0.415]], [0.262, [0.647, 0.418, 0.418]], [0.264, [0.647, 0.418, 0.418]], [0.266, [0.652, 0.422, 0.422]], [0.268, [0.652, 0.422, 0.422]], [0.270, [0.657, 0.425, 0.425]], [0.272, [0.657, 0.425, 0.425]], [0.274, [0.661, 0.428, 0.428]], [0.276, [0.661, 0.428, 0.428]], [0.278, [0.666, 0.431, 0.431]], [0.280, [0.666, 0.431, 0.431]], [0.282, [0.670, 0.434, 0.434]], [0.284, [0.670, 0.434, 0.434]], [0.286, [0.675, 0.437, 0.437]], [0.288, [0.675, 0.437, 0.437]], [0.290, [0.679, 0.440, 0.440]], [0.292, [0.679, 0.440, 0.440]], [0.294, [0.684, 0.443, 0.443]], [0.295, [0.684, 0.443, 0.443]], [0.297, [0.688, 0.446, 0.446]], [0.299, [0.688, 0.446, 0.446]], [0.301, [0.692, 0.449, 0.449]], [0.303, [0.692, 0.449, 0.449]], [0.305, [0.697, 0.452, 0.452]], [0.307, [0.697, 0.452, 0.452]], [0.309, [0.701, 0.454, 0.454]], [0.311, [0.701, 0.454, 0.454]], [0.313, [0.705, 0.457, 0.457]], [0.315, [0.705, 0.457, 0.457]], [0.317, [0.710, 0.460, 0.460]], [0.319, [0.710, 0.460, 0.460]], [0.321, [0.714, 0.463, 0.463]], [0.323, [0.714, 0.463, 0.463]], [0.325, [0.718, 0.466, 0.466]], [0.327, [0.718, 0.466, 0.466]], [0.329, [0.722, 0.469, 0.469]], [0.331, [0.722, 0.469, 0.469]], [0.333, [0.726, 0.471, 0.471]], [0.335, [0.726, 0.471, 0.471]], [0.337, [0.731, 0.474, 0.474]], [0.339, [0.731, 0.474, 0.474]], [0.341, [0.735, 0.477, 0.477]], [0.342, [0.735, 0.477, 0.477]], [0.344, [0.739, 0.480, 0.480]], [0.346, [0.739, 0.480, 0.480]], [0.348, [0.743, 0.482, 0.482]], [0.350, [0.743, 0.482, 0.482]], [0.352, [0.747, 0.485, 0.485]], [0.354, [0.747, 0.485, 0.485]], [0.356, [0.751, 0.488, 0.488]], [0.358, [0.751, 0.488, 0.488]], [0.360, [0.755, 0.490, 0.490]], [0.362, [0.755, 0.490, 0.490]], [0.364, [0.759, 0.493, 0.493]], [0.366, [0.759, 0.493, 0.493]], [0.368, [0.761, 0.499, 0.496]], [0.370, [0.761, 0.499, 0.496]], [0.372, [0.763, 0.505, 0.498]], [0.374, [0.763, 0.505, 0.498]], [0.376, [0.764, 0.511, 0.501]], [0.378, [0.764, 0.511, 0.501]], [0.380, [0.766, 0.517, 0.504]], [0.382, [0.766, 0.517, 0.504]], [0.384, [0.768, 0.522, 0.506]], [0.386, [0.768, 0.522, 0.506]], [0.387, [0.770, 0.528, 0.509]], [0.389, [0.770, 0.528, 0.509]], [0.391, [0.771, 0.534, 0.511]], [0.393, [0.771, 0.534, 0.511]], [0.395, [0.773, 0.540, 0.514]], [0.397, [0.773, 0.540, 0.514]], [0.399, [0.775, 0.545, 0.516]], [0.401, [0.775, 0.545, 0.516]], [0.403, [0.776, 0.551, 0.519]], [0.405, [0.776, 0.551, 0.519]], [0.407, [0.778, 0.556, 0.521]], [0.409, [0.778, 0.556, 0.521]], [0.411, [0.780, 0.562, 0.524]], [0.413, [0.780, 0.562, 0.524]], [0.415, [0.781, 0.567, 0.526]], [0.417, [0.781, 0.567, 0.526]], [0.419, [0.783, 0.572, 0.529]], [0.421, [0.783, 0.572, 0.529]], [0.423, [0.785, 0.577, 0.531]], [0.425, [0.785, 0.577, 0.531]], [0.427, [0.786, 0.583, 0.534]], [0.429, [0.786, 0.583, 0.534]], [0.431, [0.788, 0.588, 0.536]], [0.432, [0.788, 0.588, 0.536]], [0.434, [0.790, 0.593, 0.539]], [0.436, [0.790, 0.593, 0.539]], [0.438, [0.791, 0.598, 0.541]], [0.440, [0.791, 0.598, 0.541]], [0.442, [0.793, 0.603, 0.544]], [0.444, [0.793, 0.603, 0.544]], [0.446, [0.795, 0.608, 0.546]], [0.448, [0.795, 0.608, 0.546]], [0.450, [0.796, 0.613, 0.548]], [0.452, [0.796, 0.613, 0.548]], [0.454, [0.798, 0.618, 0.551]], [0.456, [0.798, 0.618, 0.551]], [0.458, [0.800, 0.623, 0.553]], [0.460, [0.800, 0.623, 0.553]], [0.462, [0.801, 0.628, 0.555]], [0.464, [0.801, 0.628, 0.555]], [0.466, [0.803, 0.632, 0.558]], [0.468, [0.803, 0.632, 0.558]], [0.470, [0.804, 0.637, 0.560]], [0.472, [0.804, 0.637, 0.560]], [0.474, [0.806, 0.642, 0.562]], [0.476, [0.806, 0.642, 0.562]], [0.477, [0.808, 0.647, 0.565]], [0.479, [0.808, 0.647, 0.565]], [0.481, [0.809, 0.651, 0.567]], [0.483, [0.809, 0.651, 0.567]], [0.485, [0.811, 0.656, 0.569]], [0.487, [0.811, 0.656, 0.569]], [0.489, [0.812, 0.660, 0.572]], [0.491, [0.812, 0.660, 0.572]], [0.493, [0.814, 0.665, 0.574]], [0.495, [0.814, 0.665, 0.574]], [0.497, [0.816, 0.670, 0.576]], [0.499, [0.816, 0.670, 0.576]], [0.501, [0.817, 0.674, 0.578]], [0.503, [0.817, 0.674, 0.578]], [0.505, [0.819, 0.679, 0.581]], [0.507, [0.819, 0.679, 0.581]], [0.509, [0.820, 0.683, 0.583]], [0.511, [0.820, 0.683, 0.583]], [0.513, [0.822, 0.687, 0.585]], [0.515, [0.822, 0.687, 0.585]], [0.517, [0.824, 0.692, 0.587]], [0.519, [0.824, 0.692, 0.587]], [0.521, [0.825, 0.696, 0.590]], [0.523, [0.825, 0.696, 0.590]], [0.524, [0.827, 0.700, 0.592]], [0.526, [0.827, 0.700, 0.592]], [0.528, [0.828, 0.705, 0.594]], [0.530, [0.828, 0.705, 0.594]], [0.532, [0.830, 0.709, 0.596]], [0.534, [0.830, 0.709, 0.596]], [0.536, [0.832, 0.713, 0.598]], [0.538, [0.832, 0.713, 0.598]], [0.540, [0.833, 0.718, 0.601]], [0.542, [0.833, 0.718, 0.601]], [0.544, [0.835, 0.722, 0.603]], [0.546, [0.835, 0.722, 0.603]], [0.548, [0.836, 0.726, 0.605]], [0.550, [0.836, 0.726, 0.605]], [0.552, [0.838, 0.730, 0.607]], [0.554, [0.838, 0.730, 0.607]], [0.556, [0.839, 0.734, 0.609]], [0.558, [0.839, 0.734, 0.609]], [0.560, [0.841, 0.738, 0.611]], [0.562, [0.841, 0.738, 0.611]], [0.564, [0.842, 0.742, 0.614]], [0.566, [0.842, 0.742, 0.614]], [0.568, [0.844, 0.746, 0.616]], [0.569, [0.844, 0.746, 0.616]], [0.571, [0.846, 0.750, 0.618]], [0.573, [0.846, 0.750, 0.618]], [0.575, [0.847, 0.754, 0.620]], [0.577, [0.847, 0.754, 0.620]], [0.579, [0.849, 0.758, 0.622]], [0.581, [0.849, 0.758, 0.622]], [0.583, [0.850, 0.762, 0.624]], [0.585, [0.850, 0.762, 0.624]], [0.587, [0.852, 0.766, 0.626]], [0.589, [0.852, 0.766, 0.626]], [0.591, [0.853, 0.770, 0.628]], [0.593, [0.853, 0.770, 0.628]], [0.595, [0.855, 0.774, 0.630]], [0.597, [0.855, 0.774, 0.630]], [0.599, [0.856, 0.778, 0.632]], [0.601, [0.856, 0.778, 0.632]], [0.603, [0.858, 0.782, 0.635]], [0.605, [0.858, 0.782, 0.635]], [0.607, [0.859, 0.786, 0.637]], [0.609, [0.859, 0.786, 0.637]], [0.611, [0.861, 0.790, 0.639]], [0.613, [0.861, 0.790, 0.639]], [0.614, [0.862, 0.794, 0.641]], [0.616, [0.862, 0.794, 0.641]], [0.618, [0.864, 0.797, 0.643]], [0.620, [0.864, 0.797, 0.643]], [0.622, [0.865, 0.801, 0.645]], [0.624, [0.865, 0.801, 0.645]], [0.626, [0.867, 0.805, 0.647]], [0.628, [0.867, 0.805, 0.647]], [0.630, [0.868, 0.809, 0.649]], [0.632, [0.868, 0.809, 0.649]], [0.634, [0.870, 0.812, 0.651]], [0.636, [0.870, 0.812, 0.651]], [0.638, [0.871, 0.816, 0.653]], [0.640, [0.871, 0.816, 0.653]], [0.642, [0.873, 0.820, 0.655]], [0.644, [0.873, 0.820, 0.655]], [0.646, [0.874, 0.823, 0.657]], [0.648, [0.874, 0.823, 0.657]], [0.650, [0.876, 0.827, 0.659]], [0.652, [0.876, 0.827, 0.659]], [0.654, [0.877, 0.831, 0.661]], [0.656, [0.877, 0.831, 0.661]], [0.658, [0.879, 0.834, 0.663]], [0.659, [0.879, 0.834, 0.663]], [0.661, [0.880, 0.838, 0.665]], [0.663, [0.880, 0.838, 0.665]], [0.665, [0.882, 0.842, 0.667]], [0.667, [0.882, 0.842, 0.667]], [0.669, [0.883, 0.845, 0.669]], [0.671, [0.883, 0.845, 0.669]], [0.673, [0.885, 0.849, 0.671]], [0.675, [0.885, 0.849, 0.671]], [0.677, [0.886, 0.852, 0.673]], [0.679, [0.886, 0.852, 0.673]], [0.681, [0.888, 0.856, 0.674]], [0.683, [0.888, 0.856, 0.674]], [0.685, [0.889, 0.859, 0.676]], [0.687, [0.889, 0.859, 0.676]], [0.689, [0.891, 0.863, 0.678]], [0.691, [0.891, 0.863, 0.678]], [0.693, [0.892, 0.866, 0.680]], [0.695, [0.892, 0.866, 0.680]], [0.697, [0.894, 0.870, 0.682]], [0.699, [0.894, 0.870, 0.682]], [0.701, [0.895, 0.873, 0.684]], [0.703, [0.895, 0.873, 0.684]], [0.705, [0.897, 0.877, 0.686]], [0.706, [0.897, 0.877, 0.686]], [0.708, [0.898, 0.880, 0.688]], [0.710, [0.898, 0.880, 0.688]], [0.712, [0.900, 0.884, 0.690]], [0.714, [0.900, 0.884, 0.690]], [0.716, [0.901, 0.887, 0.692]], [0.718, [0.901, 0.887, 0.692]], [0.720, [0.902, 0.890, 0.694]], [0.722, [0.902, 0.890, 0.694]], [0.724, [0.904, 0.894, 0.695]], [0.726, [0.904, 0.894, 0.695]], [0.728, [0.905, 0.897, 0.697]], [0.730, [0.905, 0.897, 0.697]], [0.732, [0.907, 0.901, 0.699]], [0.734, [0.907, 0.901, 0.699]], [0.736, [0.908, 0.904, 0.701]], [0.738, [0.908, 0.904, 0.701]], [0.740, [0.910, 0.907, 0.703]], [0.742, [0.910, 0.907, 0.703]], [0.744, [0.911, 0.911, 0.705]], [0.746, [0.911, 0.911, 0.705]], [0.748, [0.913, 0.913, 0.709]], [0.750, [0.913, 0.913, 0.709]], [0.751, [0.914, 0.914, 0.715]], [0.753, [0.914, 0.914, 0.715]], [0.755, [0.915, 0.915, 0.720]], [0.757, [0.915, 0.915, 0.720]], [0.759, [0.917, 0.917, 0.726]], [0.761, [0.917, 0.917, 0.726]], [0.763, [0.918, 0.918, 0.731]], [0.765, [0.918, 0.918, 0.731]], [0.767, [0.920, 0.920, 0.736]], [0.769, [0.920, 0.920, 0.736]], [0.771, [0.921, 0.921, 0.741]], [0.773, [0.921, 0.921, 0.741]], [0.775, [0.922, 0.922, 0.747]], [0.777, [0.922, 0.922, 0.747]], [0.779, [0.924, 0.924, 0.752]], [0.781, [0.924, 0.924, 0.752]], [0.783, [0.925, 0.925, 0.757]], [0.785, [0.925, 0.925, 0.757]], [0.787, [0.927, 0.927, 0.762]], [0.789, [0.927, 0.927, 0.762]], [0.791, [0.928, 0.928, 0.767]], [0.793, [0.928, 0.928, 0.767]], [0.795, [0.930, 0.930, 0.772]], [0.796, [0.930, 0.930, 0.772]], [0.798, [0.931, 0.931, 0.777]], [0.800, [0.931, 0.931, 0.777]], [0.802, [0.932, 0.932, 0.782]], [0.804, [0.932, 0.932, 0.782]], [0.806, [0.934, 0.934, 0.787]], [0.808, [0.934, 0.934, 0.787]], [0.810, [0.935, 0.935, 0.792]], [0.812, [0.935, 0.935, 0.792]], [0.814, [0.937, 0.937, 0.797]], [0.816, [0.937, 0.937, 0.797]], [0.818, [0.938, 0.938, 0.802]], [0.820, [0.938, 0.938, 0.802]], [0.822, [0.939, 0.939, 0.807]], [0.824, [0.939, 0.939, 0.807]], [0.826, [0.941, 0.941, 0.811]], [0.828, [0.941, 0.941, 0.811]], [0.830, [0.942, 0.942, 0.816]], [0.832, [0.942, 0.942, 0.816]], [0.834, [0.943, 0.943, 0.821]], [0.836, [0.943, 0.943, 0.821]], [0.838, [0.945, 0.945, 0.826]], [0.840, [0.945, 0.945, 0.826]], [0.841, [0.946, 0.946, 0.830]], [0.843, [0.946, 0.946, 0.830]], [0.845, [0.948, 0.948, 0.835]], [0.847, [0.948, 0.948, 0.835]], [0.849, [0.949, 0.949, 0.840]], [0.851, [0.949, 0.949, 0.840]], [0.853, [0.950, 0.950, 0.844]], [0.855, [0.950, 0.950, 0.844]], [0.857, [0.952, 0.952, 0.849]], [0.859, [0.952, 0.952, 0.849]], [0.861, [0.953, 0.953, 0.853]], [0.863, [0.953, 0.953, 0.853]], [0.865, [0.955, 0.955, 0.858]], [0.867, [0.955, 0.955, 0.858]], [0.869, [0.956, 0.956, 0.862]], [0.871, [0.956, 0.956, 0.862]], [0.873, [0.957, 0.957, 0.867]], [0.875, [0.957, 0.957, 0.867]], [0.877, [0.959, 0.959, 0.871]], [0.879, [0.959, 0.959, 0.871]], [0.881, [0.960, 0.960, 0.876]], [0.883, [0.960, 0.960, 0.876]], [0.885, [0.961, 0.961, 0.880]], [0.886, [0.961, 0.961, 0.880]], [0.888, [0.963, 0.963, 0.885]], [0.890, [0.963, 0.963, 0.885]], [0.892, [0.964, 0.964, 0.889]], [0.894, [0.964, 0.964, 0.889]], [0.896, [0.965, 0.965, 0.893]], [0.898, [0.965, 0.965, 0.893]], [0.900, [0.967, 0.967, 0.898]], [0.902, [0.967, 0.967, 0.898]], [0.904, [0.968, 0.968, 0.902]], [0.906, [0.968, 0.968, 0.902]], [0.908, [0.969, 0.969, 0.906]], [0.910, [0.969, 0.969, 0.906]], [0.912, [0.971, 0.971, 0.911]], [0.914, [0.971, 0.971, 0.911]], [0.916, [0.972, 0.972, 0.915]], [0.918, [0.972, 0.972, 0.915]], [0.920, [0.974, 0.974, 0.919]], [0.922, [0.974, 0.974, 0.919]], [0.924, [0.975, 0.975, 0.923]], [0.926, [0.975, 0.975, 0.923]], [0.928, [0.976, 0.976, 0.927]], [0.930, [0.976, 0.976, 0.927]], [0.932, [0.978, 0.978, 0.932]], [0.933, [0.978, 0.978, 0.932]], [0.935, [0.979, 0.979, 0.936]], [0.937, [0.979, 0.979, 0.936]], [0.939, [0.980, 0.980, 0.940]], [0.941, [0.980, 0.980, 0.940]], [0.943, [0.982, 0.982, 0.944]], [0.945, [0.982, 0.982, 0.944]], [0.947, [0.983, 0.983, 0.948]], [0.949, [0.983, 0.983, 0.948]], [0.951, [0.984, 0.984, 0.952]], [0.953, [0.984, 0.984, 0.952]], [0.955, [0.986, 0.986, 0.956]], [0.957, [0.986, 0.986, 0.956]], [0.959, [0.987, 0.987, 0.960]], [0.961, [0.987, 0.987, 0.960]], [0.963, [0.988, 0.988, 0.964]], [0.965, [0.988, 0.988, 0.964]], [0.967, [0.989, 0.989, 0.968]], [0.969, [0.989, 0.989, 0.968]], [0.971, [0.991, 0.991, 0.972]], [0.973, [0.991, 0.991, 0.972]], [0.975, [0.992, 0.992, 0.976]], [0.977, [0.992, 0.992, 0.976]], [0.978, [0.993, 0.993, 0.980]], [0.980, [0.993, 0.993, 0.980]], [0.982, [0.995, 0.995, 0.984]], [0.984, [0.995, 0.995, 0.984]], [0.986, [0.996, 0.996, 0.988]], [0.988, [0.996, 0.996, 0.988]], [0.990, [0.997, 0.997, 0.992]], [0.992, [0.997, 0.997, 0.992]], [0.994, [0.999, 0.999, 0.996]], [0.996, [0.999, 0.999, 0.996]], [0.998, [1.000, 1.000, 1.000]], [1.000, [1.000, 1.000, 1.000]]];
+var spring = [[0.000, [1.000, 0.000, 1.000]], [0.002, [1.000, 0.000, 1.000]], [0.004, [1.000, 0.004, 0.996]], [0.006, [1.000, 0.004, 0.996]], [0.008, [1.000, 0.008, 0.992]], [0.010, [1.000, 0.008, 0.992]], [0.012, [1.000, 0.012, 0.988]], [0.014, [1.000, 0.012, 0.988]], [0.016, [1.000, 0.016, 0.984]], [0.018, [1.000, 0.016, 0.984]], [0.020, [1.000, 0.020, 0.980]], [0.022, [1.000, 0.020, 0.980]], [0.023, [1.000, 0.024, 0.976]], [0.025, [1.000, 0.024, 0.976]], [0.027, [1.000, 0.027, 0.973]], [0.029, [1.000, 0.027, 0.973]], [0.031, [1.000, 0.031, 0.969]], [0.033, [1.000, 0.031, 0.969]], [0.035, [1.000, 0.035, 0.965]], [0.037, [1.000, 0.035, 0.965]], [0.039, [1.000, 0.039, 0.961]], [0.041, [1.000, 0.039, 0.961]], [0.043, [1.000, 0.043, 0.957]], [0.045, [1.000, 0.043, 0.957]], [0.047, [1.000, 0.047, 0.953]], [0.049, [1.000, 0.047, 0.953]], [0.051, [1.000, 0.051, 0.949]], [0.053, [1.000, 0.051, 0.949]], [0.055, [1.000, 0.055, 0.945]], [0.057, [1.000, 0.055, 0.945]], [0.059, [1.000, 0.059, 0.941]], [0.061, [1.000, 0.059, 0.941]], [0.063, [1.000, 0.063, 0.937]], [0.065, [1.000, 0.063, 0.937]], [0.067, [1.000, 0.067, 0.933]], [0.068, [1.000, 0.067, 0.933]], [0.070, [1.000, 0.071, 0.929]], [0.072, [1.000, 0.071, 0.929]], [0.074, [1.000, 0.075, 0.925]], [0.076, [1.000, 0.075, 0.925]], [0.078, [1.000, 0.078, 0.922]], [0.080, [1.000, 0.078, 0.922]], [0.082, [1.000, 0.082, 0.918]], [0.084, [1.000, 0.082, 0.918]], [0.086, [1.000, 0.086, 0.914]], [0.088, [1.000, 0.086, 0.914]], [0.090, [1.000, 0.090, 0.910]], [0.092, [1.000, 0.090, 0.910]], [0.094, [1.000, 0.094, 0.906]], [0.096, [1.000, 0.094, 0.906]], [0.098, [1.000, 0.098, 0.902]], [0.100, [1.000, 0.098, 0.902]], [0.102, [1.000, 0.102, 0.898]], [0.104, [1.000, 0.102, 0.898]], [0.106, [1.000, 0.106, 0.894]], [0.108, [1.000, 0.106, 0.894]], [0.110, [1.000, 0.110, 0.890]], [0.112, [1.000, 0.110, 0.890]], [0.114, [1.000, 0.114, 0.886]], [0.115, [1.000, 0.114, 0.886]], [0.117, [1.000, 0.118, 0.882]], [0.119, [1.000, 0.118, 0.882]], [0.121, [1.000, 0.122, 0.878]], [0.123, [1.000, 0.122, 0.878]], [0.125, [1.000, 0.125, 0.875]], [0.127, [1.000, 0.125, 0.875]], [0.129, [1.000, 0.129, 0.871]], [0.131, [1.000, 0.129, 0.871]], [0.133, [1.000, 0.133, 0.867]], [0.135, [1.000, 0.133, 0.867]], [0.137, [1.000, 0.137, 0.863]], [0.139, [1.000, 0.137, 0.863]], [0.141, [1.000, 0.141, 0.859]], [0.143, [1.000, 0.141, 0.859]], [0.145, [1.000, 0.145, 0.855]], [0.147, [1.000, 0.145, 0.855]], [0.149, [1.000, 0.149, 0.851]], [0.151, [1.000, 0.149, 0.851]], [0.153, [1.000, 0.153, 0.847]], [0.155, [1.000, 0.153, 0.847]], [0.157, [1.000, 0.157, 0.843]], [0.159, [1.000, 0.157, 0.843]], [0.160, [1.000, 0.161, 0.839]], [0.162, [1.000, 0.161, 0.839]], [0.164, [1.000, 0.165, 0.835]], [0.166, [1.000, 0.165, 0.835]], [0.168, [1.000, 0.169, 0.831]], [0.170, [1.000, 0.169, 0.831]], [0.172, [1.000, 0.173, 0.827]], [0.174, [1.000, 0.173, 0.827]], [0.176, [1.000, 0.176, 0.824]], [0.178, [1.000, 0.176, 0.824]], [0.180, [1.000, 0.180, 0.820]], [0.182, [1.000, 0.180, 0.820]], [0.184, [1.000, 0.184, 0.816]], [0.186, [1.000, 0.184, 0.816]], [0.188, [1.000, 0.188, 0.812]], [0.190, [1.000, 0.188, 0.812]], [0.192, [1.000, 0.192, 0.808]], [0.194, [1.000, 0.192, 0.808]], [0.196, [1.000, 0.196, 0.804]], [0.198, [1.000, 0.196, 0.804]], [0.200, [1.000, 0.200, 0.800]], [0.202, [1.000, 0.200, 0.800]], [0.204, [1.000, 0.204, 0.796]], [0.205, [1.000, 0.204, 0.796]], [0.207, [1.000, 0.208, 0.792]], [0.209, [1.000, 0.208, 0.792]], [0.211, [1.000, 0.212, 0.788]], [0.213, [1.000, 0.212, 0.788]], [0.215, [1.000, 0.216, 0.784]], [0.217, [1.000, 0.216, 0.784]], [0.219, [1.000, 0.220, 0.780]], [0.221, [1.000, 0.220, 0.780]], [0.223, [1.000, 0.224, 0.776]], [0.225, [1.000, 0.224, 0.776]], [0.227, [1.000, 0.227, 0.773]], [0.229, [1.000, 0.227, 0.773]], [0.231, [1.000, 0.231, 0.769]], [0.233, [1.000, 0.231, 0.769]], [0.235, [1.000, 0.235, 0.765]], [0.237, [1.000, 0.235, 0.765]], [0.239, [1.000, 0.239, 0.761]], [0.241, [1.000, 0.239, 0.761]], [0.243, [1.000, 0.243, 0.757]], [0.245, [1.000, 0.243, 0.757]], [0.247, [1.000, 0.247, 0.753]], [0.249, [1.000, 0.247, 0.753]], [0.250, [1.000, 0.251, 0.749]], [0.252, [1.000, 0.251, 0.749]], [0.254, [1.000, 0.255, 0.745]], [0.256, [1.000, 0.255, 0.745]], [0.258, [1.000, 0.259, 0.741]], [0.260, [1.000, 0.259, 0.741]], [0.262, [1.000, 0.263, 0.737]], [0.264, [1.000, 0.263, 0.737]], [0.266, [1.000, 0.267, 0.733]], [0.268, [1.000, 0.267, 0.733]], [0.270, [1.000, 0.271, 0.729]], [0.272, [1.000, 0.271, 0.729]], [0.274, [1.000, 0.275, 0.725]], [0.276, [1.000, 0.275, 0.725]], [0.278, [1.000, 0.278, 0.722]], [0.280, [1.000, 0.278, 0.722]], [0.282, [1.000, 0.282, 0.718]], [0.284, [1.000, 0.282, 0.718]], [0.286, [1.000, 0.286, 0.714]], [0.288, [1.000, 0.286, 0.714]], [0.290, [1.000, 0.290, 0.710]], [0.292, [1.000, 0.290, 0.710]], [0.294, [1.000, 0.294, 0.706]], [0.295, [1.000, 0.294, 0.706]], [0.297, [1.000, 0.298, 0.702]], [0.299, [1.000, 0.298, 0.702]], [0.301, [1.000, 0.302, 0.698]], [0.303, [1.000, 0.302, 0.698]], [0.305, [1.000, 0.306, 0.694]], [0.307, [1.000, 0.306, 0.694]], [0.309, [1.000, 0.310, 0.690]], [0.311, [1.000, 0.310, 0.690]], [0.313, [1.000, 0.314, 0.686]], [0.315, [1.000, 0.314, 0.686]], [0.317, [1.000, 0.318, 0.682]], [0.319, [1.000, 0.318, 0.682]], [0.321, [1.000, 0.322, 0.678]], [0.323, [1.000, 0.322, 0.678]], [0.325, [1.000, 0.325, 0.675]], [0.327, [1.000, 0.325, 0.675]], [0.329, [1.000, 0.329, 0.671]], [0.331, [1.000, 0.329, 0.671]], [0.333, [1.000, 0.333, 0.667]], [0.335, [1.000, 0.333, 0.667]], [0.337, [1.000, 0.337, 0.663]], [0.339, [1.000, 0.337, 0.663]], [0.341, [1.000, 0.341, 0.659]], [0.342, [1.000, 0.341, 0.659]], [0.344, [1.000, 0.345, 0.655]], [0.346, [1.000, 0.345, 0.655]], [0.348, [1.000, 0.349, 0.651]], [0.350, [1.000, 0.349, 0.651]], [0.352, [1.000, 0.353, 0.647]], [0.354, [1.000, 0.353, 0.647]], [0.356, [1.000, 0.357, 0.643]], [0.358, [1.000, 0.357, 0.643]], [0.360, [1.000, 0.361, 0.639]], [0.362, [1.000, 0.361, 0.639]], [0.364, [1.000, 0.365, 0.635]], [0.366, [1.000, 0.365, 0.635]], [0.368, [1.000, 0.369, 0.631]], [0.370, [1.000, 0.369, 0.631]], [0.372, [1.000, 0.373, 0.627]], [0.374, [1.000, 0.373, 0.627]], [0.376, [1.000, 0.376, 0.624]], [0.378, [1.000, 0.376, 0.624]], [0.380, [1.000, 0.380, 0.620]], [0.382, [1.000, 0.380, 0.620]], [0.384, [1.000, 0.384, 0.616]], [0.386, [1.000, 0.384, 0.616]], [0.387, [1.000, 0.388, 0.612]], [0.389, [1.000, 0.388, 0.612]], [0.391, [1.000, 0.392, 0.608]], [0.393, [1.000, 0.392, 0.608]], [0.395, [1.000, 0.396, 0.604]], [0.397, [1.000, 0.396, 0.604]], [0.399, [1.000, 0.400, 0.600]], [0.401, [1.000, 0.400, 0.600]], [0.403, [1.000, 0.404, 0.596]], [0.405, [1.000, 0.404, 0.596]], [0.407, [1.000, 0.408, 0.592]], [0.409, [1.000, 0.408, 0.592]], [0.411, [1.000, 0.412, 0.588]], [0.413, [1.000, 0.412, 0.588]], [0.415, [1.000, 0.416, 0.584]], [0.417, [1.000, 0.416, 0.584]], [0.419, [1.000, 0.420, 0.580]], [0.421, [1.000, 0.420, 0.580]], [0.423, [1.000, 0.424, 0.576]], [0.425, [1.000, 0.424, 0.576]], [0.427, [1.000, 0.427, 0.573]], [0.429, [1.000, 0.427, 0.573]], [0.431, [1.000, 0.431, 0.569]], [0.432, [1.000, 0.431, 0.569]], [0.434, [1.000, 0.435, 0.565]], [0.436, [1.000, 0.435, 0.565]], [0.438, [1.000, 0.439, 0.561]], [0.440, [1.000, 0.439, 0.561]], [0.442, [1.000, 0.443, 0.557]], [0.444, [1.000, 0.443, 0.557]], [0.446, [1.000, 0.447, 0.553]], [0.448, [1.000, 0.447, 0.553]], [0.450, [1.000, 0.451, 0.549]], [0.452, [1.000, 0.451, 0.549]], [0.454, [1.000, 0.455, 0.545]], [0.456, [1.000, 0.455, 0.545]], [0.458, [1.000, 0.459, 0.541]], [0.460, [1.000, 0.459, 0.541]], [0.462, [1.000, 0.463, 0.537]], [0.464, [1.000, 0.463, 0.537]], [0.466, [1.000, 0.467, 0.533]], [0.468, [1.000, 0.467, 0.533]], [0.470, [1.000, 0.471, 0.529]], [0.472, [1.000, 0.471, 0.529]], [0.474, [1.000, 0.475, 0.525]], [0.476, [1.000, 0.475, 0.525]], [0.477, [1.000, 0.478, 0.522]], [0.479, [1.000, 0.478, 0.522]], [0.481, [1.000, 0.482, 0.518]], [0.483, [1.000, 0.482, 0.518]], [0.485, [1.000, 0.486, 0.514]], [0.487, [1.000, 0.486, 0.514]], [0.489, [1.000, 0.490, 0.510]], [0.491, [1.000, 0.490, 0.510]], [0.493, [1.000, 0.494, 0.506]], [0.495, [1.000, 0.494, 0.506]], [0.497, [1.000, 0.498, 0.502]], [0.499, [1.000, 0.498, 0.502]], [0.501, [1.000, 0.502, 0.498]], [0.503, [1.000, 0.502, 0.498]], [0.505, [1.000, 0.506, 0.494]], [0.507, [1.000, 0.506, 0.494]], [0.509, [1.000, 0.510, 0.490]], [0.511, [1.000, 0.510, 0.490]], [0.513, [1.000, 0.514, 0.486]], [0.515, [1.000, 0.514, 0.486]], [0.517, [1.000, 0.518, 0.482]], [0.519, [1.000, 0.518, 0.482]], [0.521, [1.000, 0.522, 0.478]], [0.523, [1.000, 0.522, 0.478]], [0.524, [1.000, 0.525, 0.475]], [0.526, [1.000, 0.525, 0.475]], [0.528, [1.000, 0.529, 0.471]], [0.530, [1.000, 0.529, 0.471]], [0.532, [1.000, 0.533, 0.467]], [0.534, [1.000, 0.533, 0.467]], [0.536, [1.000, 0.537, 0.463]], [0.538, [1.000, 0.537, 0.463]], [0.540, [1.000, 0.541, 0.459]], [0.542, [1.000, 0.541, 0.459]], [0.544, [1.000, 0.545, 0.455]], [0.546, [1.000, 0.545, 0.455]], [0.548, [1.000, 0.549, 0.451]], [0.550, [1.000, 0.549, 0.451]], [0.552, [1.000, 0.553, 0.447]], [0.554, [1.000, 0.553, 0.447]], [0.556, [1.000, 0.557, 0.443]], [0.558, [1.000, 0.557, 0.443]], [0.560, [1.000, 0.561, 0.439]], [0.562, [1.000, 0.561, 0.439]], [0.564, [1.000, 0.565, 0.435]], [0.566, [1.000, 0.565, 0.435]], [0.568, [1.000, 0.569, 0.431]], [0.569, [1.000, 0.569, 0.431]], [0.571, [1.000, 0.573, 0.427]], [0.573, [1.000, 0.573, 0.427]], [0.575, [1.000, 0.576, 0.424]], [0.577, [1.000, 0.576, 0.424]], [0.579, [1.000, 0.580, 0.420]], [0.581, [1.000, 0.580, 0.420]], [0.583, [1.000, 0.584, 0.416]], [0.585, [1.000, 0.584, 0.416]], [0.587, [1.000, 0.588, 0.412]], [0.589, [1.000, 0.588, 0.412]], [0.591, [1.000, 0.592, 0.408]], [0.593, [1.000, 0.592, 0.408]], [0.595, [1.000, 0.596, 0.404]], [0.597, [1.000, 0.596, 0.404]], [0.599, [1.000, 0.600, 0.400]], [0.601, [1.000, 0.600, 0.400]], [0.603, [1.000, 0.604, 0.396]], [0.605, [1.000, 0.604, 0.396]], [0.607, [1.000, 0.608, 0.392]], [0.609, [1.000, 0.608, 0.392]], [0.611, [1.000, 0.612, 0.388]], [0.613, [1.000, 0.612, 0.388]], [0.614, [1.000, 0.616, 0.384]], [0.616, [1.000, 0.616, 0.384]], [0.618, [1.000, 0.620, 0.380]], [0.620, [1.000, 0.620, 0.380]], [0.622, [1.000, 0.624, 0.376]], [0.624, [1.000, 0.624, 0.376]], [0.626, [1.000, 0.627, 0.373]], [0.628, [1.000, 0.627, 0.373]], [0.630, [1.000, 0.631, 0.369]], [0.632, [1.000, 0.631, 0.369]], [0.634, [1.000, 0.635, 0.365]], [0.636, [1.000, 0.635, 0.365]], [0.638, [1.000, 0.639, 0.361]], [0.640, [1.000, 0.639, 0.361]], [0.642, [1.000, 0.643, 0.357]], [0.644, [1.000, 0.643, 0.357]], [0.646, [1.000, 0.647, 0.353]], [0.648, [1.000, 0.647, 0.353]], [0.650, [1.000, 0.651, 0.349]], [0.652, [1.000, 0.651, 0.349]], [0.654, [1.000, 0.655, 0.345]], [0.656, [1.000, 0.655, 0.345]], [0.658, [1.000, 0.659, 0.341]], [0.659, [1.000, 0.659, 0.341]], [0.661, [1.000, 0.663, 0.337]], [0.663, [1.000, 0.663, 0.337]], [0.665, [1.000, 0.667, 0.333]], [0.667, [1.000, 0.667, 0.333]], [0.669, [1.000, 0.671, 0.329]], [0.671, [1.000, 0.671, 0.329]], [0.673, [1.000, 0.675, 0.325]], [0.675, [1.000, 0.675, 0.325]], [0.677, [1.000, 0.678, 0.322]], [0.679, [1.000, 0.678, 0.322]], [0.681, [1.000, 0.682, 0.318]], [0.683, [1.000, 0.682, 0.318]], [0.685, [1.000, 0.686, 0.314]], [0.687, [1.000, 0.686, 0.314]], [0.689, [1.000, 0.690, 0.310]], [0.691, [1.000, 0.690, 0.310]], [0.693, [1.000, 0.694, 0.306]], [0.695, [1.000, 0.694, 0.306]], [0.697, [1.000, 0.698, 0.302]], [0.699, [1.000, 0.698, 0.302]], [0.701, [1.000, 0.702, 0.298]], [0.703, [1.000, 0.702, 0.298]], [0.705, [1.000, 0.706, 0.294]], [0.706, [1.000, 0.706, 0.294]], [0.708, [1.000, 0.710, 0.290]], [0.710, [1.000, 0.710, 0.290]], [0.712, [1.000, 0.714, 0.286]], [0.714, [1.000, 0.714, 0.286]], [0.716, [1.000, 0.718, 0.282]], [0.718, [1.000, 0.718, 0.282]], [0.720, [1.000, 0.722, 0.278]], [0.722, [1.000, 0.722, 0.278]], [0.724, [1.000, 0.725, 0.275]], [0.726, [1.000, 0.725, 0.275]], [0.728, [1.000, 0.729, 0.271]], [0.730, [1.000, 0.729, 0.271]], [0.732, [1.000, 0.733, 0.267]], [0.734, [1.000, 0.733, 0.267]], [0.736, [1.000, 0.737, 0.263]], [0.738, [1.000, 0.737, 0.263]], [0.740, [1.000, 0.741, 0.259]], [0.742, [1.000, 0.741, 0.259]], [0.744, [1.000, 0.745, 0.255]], [0.746, [1.000, 0.745, 0.255]], [0.748, [1.000, 0.749, 0.251]], [0.750, [1.000, 0.749, 0.251]], [0.751, [1.000, 0.753, 0.247]], [0.753, [1.000, 0.753, 0.247]], [0.755, [1.000, 0.757, 0.243]], [0.757, [1.000, 0.757, 0.243]], [0.759, [1.000, 0.761, 0.239]], [0.761, [1.000, 0.761, 0.239]], [0.763, [1.000, 0.765, 0.235]], [0.765, [1.000, 0.765, 0.235]], [0.767, [1.000, 0.769, 0.231]], [0.769, [1.000, 0.769, 0.231]], [0.771, [1.000, 0.773, 0.227]], [0.773, [1.000, 0.773, 0.227]], [0.775, [1.000, 0.776, 0.224]], [0.777, [1.000, 0.776, 0.224]], [0.779, [1.000, 0.780, 0.220]], [0.781, [1.000, 0.780, 0.220]], [0.783, [1.000, 0.784, 0.216]], [0.785, [1.000, 0.784, 0.216]], [0.787, [1.000, 0.788, 0.212]], [0.789, [1.000, 0.788, 0.212]], [0.791, [1.000, 0.792, 0.208]], [0.793, [1.000, 0.792, 0.208]], [0.795, [1.000, 0.796, 0.204]], [0.796, [1.000, 0.796, 0.204]], [0.798, [1.000, 0.800, 0.200]], [0.800, [1.000, 0.800, 0.200]], [0.802, [1.000, 0.804, 0.196]], [0.804, [1.000, 0.804, 0.196]], [0.806, [1.000, 0.808, 0.192]], [0.808, [1.000, 0.808, 0.192]], [0.810, [1.000, 0.812, 0.188]], [0.812, [1.000, 0.812, 0.188]], [0.814, [1.000, 0.816, 0.184]], [0.816, [1.000, 0.816, 0.184]], [0.818, [1.000, 0.820, 0.180]], [0.820, [1.000, 0.820, 0.180]], [0.822, [1.000, 0.824, 0.176]], [0.824, [1.000, 0.824, 0.176]], [0.826, [1.000, 0.827, 0.173]], [0.828, [1.000, 0.827, 0.173]], [0.830, [1.000, 0.831, 0.169]], [0.832, [1.000, 0.831, 0.169]], [0.834, [1.000, 0.835, 0.165]], [0.836, [1.000, 0.835, 0.165]], [0.838, [1.000, 0.839, 0.161]], [0.840, [1.000, 0.839, 0.161]], [0.841, [1.000, 0.843, 0.157]], [0.843, [1.000, 0.843, 0.157]], [0.845, [1.000, 0.847, 0.153]], [0.847, [1.000, 0.847, 0.153]], [0.849, [1.000, 0.851, 0.149]], [0.851, [1.000, 0.851, 0.149]], [0.853, [1.000, 0.855, 0.145]], [0.855, [1.000, 0.855, 0.145]], [0.857, [1.000, 0.859, 0.141]], [0.859, [1.000, 0.859, 0.141]], [0.861, [1.000, 0.863, 0.137]], [0.863, [1.000, 0.863, 0.137]], [0.865, [1.000, 0.867, 0.133]], [0.867, [1.000, 0.867, 0.133]], [0.869, [1.000, 0.871, 0.129]], [0.871, [1.000, 0.871, 0.129]], [0.873, [1.000, 0.875, 0.125]], [0.875, [1.000, 0.875, 0.125]], [0.877, [1.000, 0.878, 0.122]], [0.879, [1.000, 0.878, 0.122]], [0.881, [1.000, 0.882, 0.118]], [0.883, [1.000, 0.882, 0.118]], [0.885, [1.000, 0.886, 0.114]], [0.886, [1.000, 0.886, 0.114]], [0.888, [1.000, 0.890, 0.110]], [0.890, [1.000, 0.890, 0.110]], [0.892, [1.000, 0.894, 0.106]], [0.894, [1.000, 0.894, 0.106]], [0.896, [1.000, 0.898, 0.102]], [0.898, [1.000, 0.898, 0.102]], [0.900, [1.000, 0.902, 0.098]], [0.902, [1.000, 0.902, 0.098]], [0.904, [1.000, 0.906, 0.094]], [0.906, [1.000, 0.906, 0.094]], [0.908, [1.000, 0.910, 0.090]], [0.910, [1.000, 0.910, 0.090]], [0.912, [1.000, 0.914, 0.086]], [0.914, [1.000, 0.914, 0.086]], [0.916, [1.000, 0.918, 0.082]], [0.918, [1.000, 0.918, 0.082]], [0.920, [1.000, 0.922, 0.078]], [0.922, [1.000, 0.922, 0.078]], [0.924, [1.000, 0.925, 0.075]], [0.926, [1.000, 0.925, 0.075]], [0.928, [1.000, 0.929, 0.071]], [0.930, [1.000, 0.929, 0.071]], [0.932, [1.000, 0.933, 0.067]], [0.933, [1.000, 0.933, 0.067]], [0.935, [1.000, 0.937, 0.063]], [0.937, [1.000, 0.937, 0.063]], [0.939, [1.000, 0.941, 0.059]], [0.941, [1.000, 0.941, 0.059]], [0.943, [1.000, 0.945, 0.055]], [0.945, [1.000, 0.945, 0.055]], [0.947, [1.000, 0.949, 0.051]], [0.949, [1.000, 0.949, 0.051]], [0.951, [1.000, 0.953, 0.047]], [0.953, [1.000, 0.953, 0.047]], [0.955, [1.000, 0.957, 0.043]], [0.957, [1.000, 0.957, 0.043]], [0.959, [1.000, 0.961, 0.039]], [0.961, [1.000, 0.961, 0.039]], [0.963, [1.000, 0.965, 0.035]], [0.965, [1.000, 0.965, 0.035]], [0.967, [1.000, 0.969, 0.031]], [0.969, [1.000, 0.969, 0.031]], [0.971, [1.000, 0.973, 0.027]], [0.973, [1.000, 0.973, 0.027]], [0.975, [1.000, 0.976, 0.024]], [0.977, [1.000, 0.976, 0.024]], [0.978, [1.000, 0.980, 0.020]], [0.980, [1.000, 0.980, 0.020]], [0.982, [1.000, 0.984, 0.016]], [0.984, [1.000, 0.984, 0.016]], [0.986, [1.000, 0.988, 0.012]], [0.988, [1.000, 0.988, 0.012]], [0.990, [1.000, 0.992, 0.008]], [0.992, [1.000, 0.992, 0.008]], [0.994, [1.000, 0.996, 0.004]], [0.996, [1.000, 0.996, 0.004]], [0.998, [1.000, 1.000, 0.000]], [1.000, [1.000, 1.000, 0.000]]];
+var summer = [[0.000, [0.000, 0.500, 0.400]], [0.002, [0.000, 0.500, 0.400]], [0.004, [0.004, 0.502, 0.400]], [0.006, [0.004, 0.502, 0.400]], [0.008, [0.008, 0.504, 0.400]], [0.010, [0.008, 0.504, 0.400]], [0.012, [0.012, 0.506, 0.400]], [0.014, [0.012, 0.506, 0.400]], [0.016, [0.016, 0.508, 0.400]], [0.018, [0.016, 0.508, 0.400]], [0.020, [0.020, 0.510, 0.400]], [0.022, [0.020, 0.510, 0.400]], [0.023, [0.024, 0.512, 0.400]], [0.025, [0.024, 0.512, 0.400]], [0.027, [0.027, 0.514, 0.400]], [0.029, [0.027, 0.514, 0.400]], [0.031, [0.031, 0.516, 0.400]], [0.033, [0.031, 0.516, 0.400]], [0.035, [0.035, 0.518, 0.400]], [0.037, [0.035, 0.518, 0.400]], [0.039, [0.039, 0.520, 0.400]], [0.041, [0.039, 0.520, 0.400]], [0.043, [0.043, 0.522, 0.400]], [0.045, [0.043, 0.522, 0.400]], [0.047, [0.047, 0.524, 0.400]], [0.049, [0.047, 0.524, 0.400]], [0.051, [0.051, 0.525, 0.400]], [0.053, [0.051, 0.525, 0.400]], [0.055, [0.055, 0.527, 0.400]], [0.057, [0.055, 0.527, 0.400]], [0.059, [0.059, 0.529, 0.400]], [0.061, [0.059, 0.529, 0.400]], [0.063, [0.063, 0.531, 0.400]], [0.065, [0.063, 0.531, 0.400]], [0.067, [0.067, 0.533, 0.400]], [0.068, [0.067, 0.533, 0.400]], [0.070, [0.071, 0.535, 0.400]], [0.072, [0.071, 0.535, 0.400]], [0.074, [0.075, 0.537, 0.400]], [0.076, [0.075, 0.537, 0.400]], [0.078, [0.078, 0.539, 0.400]], [0.080, [0.078, 0.539, 0.400]], [0.082, [0.082, 0.541, 0.400]], [0.084, [0.082, 0.541, 0.400]], [0.086, [0.086, 0.543, 0.400]], [0.088, [0.086, 0.543, 0.400]], [0.090, [0.090, 0.545, 0.400]], [0.092, [0.090, 0.545, 0.400]], [0.094, [0.094, 0.547, 0.400]], [0.096, [0.094, 0.547, 0.400]], [0.098, [0.098, 0.549, 0.400]], [0.100, [0.098, 0.549, 0.400]], [0.102, [0.102, 0.551, 0.400]], [0.104, [0.102, 0.551, 0.400]], [0.106, [0.106, 0.553, 0.400]], [0.108, [0.106, 0.553, 0.400]], [0.110, [0.110, 0.555, 0.400]], [0.112, [0.110, 0.555, 0.400]], [0.114, [0.114, 0.557, 0.400]], [0.115, [0.114, 0.557, 0.400]], [0.117, [0.118, 0.559, 0.400]], [0.119, [0.118, 0.559, 0.400]], [0.121, [0.122, 0.561, 0.400]], [0.123, [0.122, 0.561, 0.400]], [0.125, [0.125, 0.563, 0.400]], [0.127, [0.125, 0.563, 0.400]], [0.129, [0.129, 0.565, 0.400]], [0.131, [0.129, 0.565, 0.400]], [0.133, [0.133, 0.567, 0.400]], [0.135, [0.133, 0.567, 0.400]], [0.137, [0.137, 0.569, 0.400]], [0.139, [0.137, 0.569, 0.400]], [0.141, [0.141, 0.571, 0.400]], [0.143, [0.141, 0.571, 0.400]], [0.145, [0.145, 0.573, 0.400]], [0.147, [0.145, 0.573, 0.400]], [0.149, [0.149, 0.575, 0.400]], [0.151, [0.149, 0.575, 0.400]], [0.153, [0.153, 0.576, 0.400]], [0.155, [0.153, 0.576, 0.400]], [0.157, [0.157, 0.578, 0.400]], [0.159, [0.157, 0.578, 0.400]], [0.160, [0.161, 0.580, 0.400]], [0.162, [0.161, 0.580, 0.400]], [0.164, [0.165, 0.582, 0.400]], [0.166, [0.165, 0.582, 0.400]], [0.168, [0.169, 0.584, 0.400]], [0.170, [0.169, 0.584, 0.400]], [0.172, [0.173, 0.586, 0.400]], [0.174, [0.173, 0.586, 0.400]], [0.176, [0.176, 0.588, 0.400]], [0.178, [0.176, 0.588, 0.400]], [0.180, [0.180, 0.590, 0.400]], [0.182, [0.180, 0.590, 0.400]], [0.184, [0.184, 0.592, 0.400]], [0.186, [0.184, 0.592, 0.400]], [0.188, [0.188, 0.594, 0.400]], [0.190, [0.188, 0.594, 0.400]], [0.192, [0.192, 0.596, 0.400]], [0.194, [0.192, 0.596, 0.400]], [0.196, [0.196, 0.598, 0.400]], [0.198, [0.196, 0.598, 0.400]], [0.200, [0.200, 0.600, 0.400]], [0.202, [0.200, 0.600, 0.400]], [0.204, [0.204, 0.602, 0.400]], [0.205, [0.204, 0.602, 0.400]], [0.207, [0.208, 0.604, 0.400]], [0.209, [0.208, 0.604, 0.400]], [0.211, [0.212, 0.606, 0.400]], [0.213, [0.212, 0.606, 0.400]], [0.215, [0.216, 0.608, 0.400]], [0.217, [0.216, 0.608, 0.400]], [0.219, [0.220, 0.610, 0.400]], [0.221, [0.220, 0.610, 0.400]], [0.223, [0.224, 0.612, 0.400]], [0.225, [0.224, 0.612, 0.400]], [0.227, [0.227, 0.614, 0.400]], [0.229, [0.227, 0.614, 0.400]], [0.231, [0.231, 0.616, 0.400]], [0.233, [0.231, 0.616, 0.400]], [0.235, [0.235, 0.618, 0.400]], [0.237, [0.235, 0.618, 0.400]], [0.239, [0.239, 0.620, 0.400]], [0.241, [0.239, 0.620, 0.400]], [0.243, [0.243, 0.622, 0.400]], [0.245, [0.243, 0.622, 0.400]], [0.247, [0.247, 0.624, 0.400]], [0.249, [0.247, 0.624, 0.400]], [0.250, [0.251, 0.625, 0.400]], [0.252, [0.251, 0.625, 0.400]], [0.254, [0.255, 0.627, 0.400]], [0.256, [0.255, 0.627, 0.400]], [0.258, [0.259, 0.629, 0.400]], [0.260, [0.259, 0.629, 0.400]], [0.262, [0.263, 0.631, 0.400]], [0.264, [0.263, 0.631, 0.400]], [0.266, [0.267, 0.633, 0.400]], [0.268, [0.267, 0.633, 0.400]], [0.270, [0.271, 0.635, 0.400]], [0.272, [0.271, 0.635, 0.400]], [0.274, [0.275, 0.637, 0.400]], [0.276, [0.275, 0.637, 0.400]], [0.278, [0.278, 0.639, 0.400]], [0.280, [0.278, 0.639, 0.400]], [0.282, [0.282, 0.641, 0.400]], [0.284, [0.282, 0.641, 0.400]], [0.286, [0.286, 0.643, 0.400]], [0.288, [0.286, 0.643, 0.400]], [0.290, [0.290, 0.645, 0.400]], [0.292, [0.290, 0.645, 0.400]], [0.294, [0.294, 0.647, 0.400]], [0.295, [0.294, 0.647, 0.400]], [0.297, [0.298, 0.649, 0.400]], [0.299, [0.298, 0.649, 0.400]], [0.301, [0.302, 0.651, 0.400]], [0.303, [0.302, 0.651, 0.400]], [0.305, [0.306, 0.653, 0.400]], [0.307, [0.306, 0.653, 0.400]], [0.309, [0.310, 0.655, 0.400]], [0.311, [0.310, 0.655, 0.400]], [0.313, [0.314, 0.657, 0.400]], [0.315, [0.314, 0.657, 0.400]], [0.317, [0.318, 0.659, 0.400]], [0.319, [0.318, 0.659, 0.400]], [0.321, [0.322, 0.661, 0.400]], [0.323, [0.322, 0.661, 0.400]], [0.325, [0.325, 0.663, 0.400]], [0.327, [0.325, 0.663, 0.400]], [0.329, [0.329, 0.665, 0.400]], [0.331, [0.329, 0.665, 0.400]], [0.333, [0.333, 0.667, 0.400]], [0.335, [0.333, 0.667, 0.400]], [0.337, [0.337, 0.669, 0.400]], [0.339, [0.337, 0.669, 0.400]], [0.341, [0.341, 0.671, 0.400]], [0.342, [0.341, 0.671, 0.400]], [0.344, [0.345, 0.673, 0.400]], [0.346, [0.345, 0.673, 0.400]], [0.348, [0.349, 0.675, 0.400]], [0.350, [0.349, 0.675, 0.400]], [0.352, [0.353, 0.676, 0.400]], [0.354, [0.353, 0.676, 0.400]], [0.356, [0.357, 0.678, 0.400]], [0.358, [0.357, 0.678, 0.400]], [0.360, [0.361, 0.680, 0.400]], [0.362, [0.361, 0.680, 0.400]], [0.364, [0.365, 0.682, 0.400]], [0.366, [0.365, 0.682, 0.400]], [0.368, [0.369, 0.684, 0.400]], [0.370, [0.369, 0.684, 0.400]], [0.372, [0.373, 0.686, 0.400]], [0.374, [0.373, 0.686, 0.400]], [0.376, [0.376, 0.688, 0.400]], [0.378, [0.376, 0.688, 0.400]], [0.380, [0.380, 0.690, 0.400]], [0.382, [0.380, 0.690, 0.400]], [0.384, [0.384, 0.692, 0.400]], [0.386, [0.384, 0.692, 0.400]], [0.387, [0.388, 0.694, 0.400]], [0.389, [0.388, 0.694, 0.400]], [0.391, [0.392, 0.696, 0.400]], [0.393, [0.392, 0.696, 0.400]], [0.395, [0.396, 0.698, 0.400]], [0.397, [0.396, 0.698, 0.400]], [0.399, [0.400, 0.700, 0.400]], [0.401, [0.400, 0.700, 0.400]], [0.403, [0.404, 0.702, 0.400]], [0.405, [0.404, 0.702, 0.400]], [0.407, [0.408, 0.704, 0.400]], [0.409, [0.408, 0.704, 0.400]], [0.411, [0.412, 0.706, 0.400]], [0.413, [0.412, 0.706, 0.400]], [0.415, [0.416, 0.708, 0.400]], [0.417, [0.416, 0.708, 0.400]], [0.419, [0.420, 0.710, 0.400]], [0.421, [0.420, 0.710, 0.400]], [0.423, [0.424, 0.712, 0.400]], [0.425, [0.424, 0.712, 0.400]], [0.427, [0.427, 0.714, 0.400]], [0.429, [0.427, 0.714, 0.400]], [0.431, [0.431, 0.716, 0.400]], [0.432, [0.431, 0.716, 0.400]], [0.434, [0.435, 0.718, 0.400]], [0.436, [0.435, 0.718, 0.400]], [0.438, [0.439, 0.720, 0.400]], [0.440, [0.439, 0.720, 0.400]], [0.442, [0.443, 0.722, 0.400]], [0.444, [0.443, 0.722, 0.400]], [0.446, [0.447, 0.724, 0.400]], [0.448, [0.447, 0.724, 0.400]], [0.450, [0.451, 0.725, 0.400]], [0.452, [0.451, 0.725, 0.400]], [0.454, [0.455, 0.727, 0.400]], [0.456, [0.455, 0.727, 0.400]], [0.458, [0.459, 0.729, 0.400]], [0.460, [0.459, 0.729, 0.400]], [0.462, [0.463, 0.731, 0.400]], [0.464, [0.463, 0.731, 0.400]], [0.466, [0.467, 0.733, 0.400]], [0.468, [0.467, 0.733, 0.400]], [0.470, [0.471, 0.735, 0.400]], [0.472, [0.471, 0.735, 0.400]], [0.474, [0.475, 0.737, 0.400]], [0.476, [0.475, 0.737, 0.400]], [0.477, [0.478, 0.739, 0.400]], [0.479, [0.478, 0.739, 0.400]], [0.481, [0.482, 0.741, 0.400]], [0.483, [0.482, 0.741, 0.400]], [0.485, [0.486, 0.743, 0.400]], [0.487, [0.486, 0.743, 0.400]], [0.489, [0.490, 0.745, 0.400]], [0.491, [0.490, 0.745, 0.400]], [0.493, [0.494, 0.747, 0.400]], [0.495, [0.494, 0.747, 0.400]], [0.497, [0.498, 0.749, 0.400]], [0.499, [0.498, 0.749, 0.400]], [0.501, [0.502, 0.751, 0.400]], [0.503, [0.502, 0.751, 0.400]], [0.505, [0.506, 0.753, 0.400]], [0.507, [0.506, 0.753, 0.400]], [0.509, [0.510, 0.755, 0.400]], [0.511, [0.510, 0.755, 0.400]], [0.513, [0.514, 0.757, 0.400]], [0.515, [0.514, 0.757, 0.400]], [0.517, [0.518, 0.759, 0.400]], [0.519, [0.518, 0.759, 0.400]], [0.521, [0.522, 0.761, 0.400]], [0.523, [0.522, 0.761, 0.400]], [0.524, [0.525, 0.763, 0.400]], [0.526, [0.525, 0.763, 0.400]], [0.528, [0.529, 0.765, 0.400]], [0.530, [0.529, 0.765, 0.400]], [0.532, [0.533, 0.767, 0.400]], [0.534, [0.533, 0.767, 0.400]], [0.536, [0.537, 0.769, 0.400]], [0.538, [0.537, 0.769, 0.400]], [0.540, [0.541, 0.771, 0.400]], [0.542, [0.541, 0.771, 0.400]], [0.544, [0.545, 0.773, 0.400]], [0.546, [0.545, 0.773, 0.400]], [0.548, [0.549, 0.775, 0.400]], [0.550, [0.549, 0.775, 0.400]], [0.552, [0.553, 0.776, 0.400]], [0.554, [0.553, 0.776, 0.400]], [0.556, [0.557, 0.778, 0.400]], [0.558, [0.557, 0.778, 0.400]], [0.560, [0.561, 0.780, 0.400]], [0.562, [0.561, 0.780, 0.400]], [0.564, [0.565, 0.782, 0.400]], [0.566, [0.565, 0.782, 0.400]], [0.568, [0.569, 0.784, 0.400]], [0.569, [0.569, 0.784, 0.400]], [0.571, [0.573, 0.786, 0.400]], [0.573, [0.573, 0.786, 0.400]], [0.575, [0.576, 0.788, 0.400]], [0.577, [0.576, 0.788, 0.400]], [0.579, [0.580, 0.790, 0.400]], [0.581, [0.580, 0.790, 0.400]], [0.583, [0.584, 0.792, 0.400]], [0.585, [0.584, 0.792, 0.400]], [0.587, [0.588, 0.794, 0.400]], [0.589, [0.588, 0.794, 0.400]], [0.591, [0.592, 0.796, 0.400]], [0.593, [0.592, 0.796, 0.400]], [0.595, [0.596, 0.798, 0.400]], [0.597, [0.596, 0.798, 0.400]], [0.599, [0.600, 0.800, 0.400]], [0.601, [0.600, 0.800, 0.400]], [0.603, [0.604, 0.802, 0.400]], [0.605, [0.604, 0.802, 0.400]], [0.607, [0.608, 0.804, 0.400]], [0.609, [0.608, 0.804, 0.400]], [0.611, [0.612, 0.806, 0.400]], [0.613, [0.612, 0.806, 0.400]], [0.614, [0.616, 0.808, 0.400]], [0.616, [0.616, 0.808, 0.400]], [0.618, [0.620, 0.810, 0.400]], [0.620, [0.620, 0.810, 0.400]], [0.622, [0.624, 0.812, 0.400]], [0.624, [0.624, 0.812, 0.400]], [0.626, [0.627, 0.814, 0.400]], [0.628, [0.627, 0.814, 0.400]], [0.630, [0.631, 0.816, 0.400]], [0.632, [0.631, 0.816, 0.400]], [0.634, [0.635, 0.818, 0.400]], [0.636, [0.635, 0.818, 0.400]], [0.638, [0.639, 0.820, 0.400]], [0.640, [0.639, 0.820, 0.400]], [0.642, [0.643, 0.822, 0.400]], [0.644, [0.643, 0.822, 0.400]], [0.646, [0.647, 0.824, 0.400]], [0.648, [0.647, 0.824, 0.400]], [0.650, [0.651, 0.825, 0.400]], [0.652, [0.651, 0.825, 0.400]], [0.654, [0.655, 0.827, 0.400]], [0.656, [0.655, 0.827, 0.400]], [0.658, [0.659, 0.829, 0.400]], [0.659, [0.659, 0.829, 0.400]], [0.661, [0.663, 0.831, 0.400]], [0.663, [0.663, 0.831, 0.400]], [0.665, [0.667, 0.833, 0.400]], [0.667, [0.667, 0.833, 0.400]], [0.669, [0.671, 0.835, 0.400]], [0.671, [0.671, 0.835, 0.400]], [0.673, [0.675, 0.837, 0.400]], [0.675, [0.675, 0.837, 0.400]], [0.677, [0.678, 0.839, 0.400]], [0.679, [0.678, 0.839, 0.400]], [0.681, [0.682, 0.841, 0.400]], [0.683, [0.682, 0.841, 0.400]], [0.685, [0.686, 0.843, 0.400]], [0.687, [0.686, 0.843, 0.400]], [0.689, [0.690, 0.845, 0.400]], [0.691, [0.690, 0.845, 0.400]], [0.693, [0.694, 0.847, 0.400]], [0.695, [0.694, 0.847, 0.400]], [0.697, [0.698, 0.849, 0.400]], [0.699, [0.698, 0.849, 0.400]], [0.701, [0.702, 0.851, 0.400]], [0.703, [0.702, 0.851, 0.400]], [0.705, [0.706, 0.853, 0.400]], [0.706, [0.706, 0.853, 0.400]], [0.708, [0.710, 0.855, 0.400]], [0.710, [0.710, 0.855, 0.400]], [0.712, [0.714, 0.857, 0.400]], [0.714, [0.714, 0.857, 0.400]], [0.716, [0.718, 0.859, 0.400]], [0.718, [0.718, 0.859, 0.400]], [0.720, [0.722, 0.861, 0.400]], [0.722, [0.722, 0.861, 0.400]], [0.724, [0.725, 0.863, 0.400]], [0.726, [0.725, 0.863, 0.400]], [0.728, [0.729, 0.865, 0.400]], [0.730, [0.729, 0.865, 0.400]], [0.732, [0.733, 0.867, 0.400]], [0.734, [0.733, 0.867, 0.400]], [0.736, [0.737, 0.869, 0.400]], [0.738, [0.737, 0.869, 0.400]], [0.740, [0.741, 0.871, 0.400]], [0.742, [0.741, 0.871, 0.400]], [0.744, [0.745, 0.873, 0.400]], [0.746, [0.745, 0.873, 0.400]], [0.748, [0.749, 0.875, 0.400]], [0.750, [0.749, 0.875, 0.400]], [0.751, [0.753, 0.876, 0.400]], [0.753, [0.753, 0.876, 0.400]], [0.755, [0.757, 0.878, 0.400]], [0.757, [0.757, 0.878, 0.400]], [0.759, [0.761, 0.880, 0.400]], [0.761, [0.761, 0.880, 0.400]], [0.763, [0.765, 0.882, 0.400]], [0.765, [0.765, 0.882, 0.400]], [0.767, [0.769, 0.884, 0.400]], [0.769, [0.769, 0.884, 0.400]], [0.771, [0.773, 0.886, 0.400]], [0.773, [0.773, 0.886, 0.400]], [0.775, [0.776, 0.888, 0.400]], [0.777, [0.776, 0.888, 0.400]], [0.779, [0.780, 0.890, 0.400]], [0.781, [0.780, 0.890, 0.400]], [0.783, [0.784, 0.892, 0.400]], [0.785, [0.784, 0.892, 0.400]], [0.787, [0.788, 0.894, 0.400]], [0.789, [0.788, 0.894, 0.400]], [0.791, [0.792, 0.896, 0.400]], [0.793, [0.792, 0.896, 0.400]], [0.795, [0.796, 0.898, 0.400]], [0.796, [0.796, 0.898, 0.400]], [0.798, [0.800, 0.900, 0.400]], [0.800, [0.800, 0.900, 0.400]], [0.802, [0.804, 0.902, 0.400]], [0.804, [0.804, 0.902, 0.400]], [0.806, [0.808, 0.904, 0.400]], [0.808, [0.808, 0.904, 0.400]], [0.810, [0.812, 0.906, 0.400]], [0.812, [0.812, 0.906, 0.400]], [0.814, [0.816, 0.908, 0.400]], [0.816, [0.816, 0.908, 0.400]], [0.818, [0.820, 0.910, 0.400]], [0.820, [0.820, 0.910, 0.400]], [0.822, [0.824, 0.912, 0.400]], [0.824, [0.824, 0.912, 0.400]], [0.826, [0.827, 0.914, 0.400]], [0.828, [0.827, 0.914, 0.400]], [0.830, [0.831, 0.916, 0.400]], [0.832, [0.831, 0.916, 0.400]], [0.834, [0.835, 0.918, 0.400]], [0.836, [0.835, 0.918, 0.400]], [0.838, [0.839, 0.920, 0.400]], [0.840, [0.839, 0.920, 0.400]], [0.841, [0.843, 0.922, 0.400]], [0.843, [0.843, 0.922, 0.400]], [0.845, [0.847, 0.924, 0.400]], [0.847, [0.847, 0.924, 0.400]], [0.849, [0.851, 0.925, 0.400]], [0.851, [0.851, 0.925, 0.400]], [0.853, [0.855, 0.927, 0.400]], [0.855, [0.855, 0.927, 0.400]], [0.857, [0.859, 0.929, 0.400]], [0.859, [0.859, 0.929, 0.400]], [0.861, [0.863, 0.931, 0.400]], [0.863, [0.863, 0.931, 0.400]], [0.865, [0.867, 0.933, 0.400]], [0.867, [0.867, 0.933, 0.400]], [0.869, [0.871, 0.935, 0.400]], [0.871, [0.871, 0.935, 0.400]], [0.873, [0.875, 0.937, 0.400]], [0.875, [0.875, 0.937, 0.400]], [0.877, [0.878, 0.939, 0.400]], [0.879, [0.878, 0.939, 0.400]], [0.881, [0.882, 0.941, 0.400]], [0.883, [0.882, 0.941, 0.400]], [0.885, [0.886, 0.943, 0.400]], [0.886, [0.886, 0.943, 0.400]], [0.888, [0.890, 0.945, 0.400]], [0.890, [0.890, 0.945, 0.400]], [0.892, [0.894, 0.947, 0.400]], [0.894, [0.894, 0.947, 0.400]], [0.896, [0.898, 0.949, 0.400]], [0.898, [0.898, 0.949, 0.400]], [0.900, [0.902, 0.951, 0.400]], [0.902, [0.902, 0.951, 0.400]], [0.904, [0.906, 0.953, 0.400]], [0.906, [0.906, 0.953, 0.400]], [0.908, [0.910, 0.955, 0.400]], [0.910, [0.910, 0.955, 0.400]], [0.912, [0.914, 0.957, 0.400]], [0.914, [0.914, 0.957, 0.400]], [0.916, [0.918, 0.959, 0.400]], [0.918, [0.918, 0.959, 0.400]], [0.920, [0.922, 0.961, 0.400]], [0.922, [0.922, 0.961, 0.400]], [0.924, [0.925, 0.963, 0.400]], [0.926, [0.925, 0.963, 0.400]], [0.928, [0.929, 0.965, 0.400]], [0.930, [0.929, 0.965, 0.400]], [0.932, [0.933, 0.967, 0.400]], [0.933, [0.933, 0.967, 0.400]], [0.935, [0.937, 0.969, 0.400]], [0.937, [0.937, 0.969, 0.400]], [0.939, [0.941, 0.971, 0.400]], [0.941, [0.941, 0.971, 0.400]], [0.943, [0.945, 0.973, 0.400]], [0.945, [0.945, 0.973, 0.400]], [0.947, [0.949, 0.975, 0.400]], [0.949, [0.949, 0.975, 0.400]], [0.951, [0.953, 0.976, 0.400]], [0.953, [0.953, 0.976, 0.400]], [0.955, [0.957, 0.978, 0.400]], [0.957, [0.957, 0.978, 0.400]], [0.959, [0.961, 0.980, 0.400]], [0.961, [0.961, 0.980, 0.400]], [0.963, [0.965, 0.982, 0.400]], [0.965, [0.965, 0.982, 0.400]], [0.967, [0.969, 0.984, 0.400]], [0.969, [0.969, 0.984, 0.400]], [0.971, [0.973, 0.986, 0.400]], [0.973, [0.973, 0.986, 0.400]], [0.975, [0.976, 0.988, 0.400]], [0.977, [0.976, 0.988, 0.400]], [0.978, [0.980, 0.990, 0.400]], [0.980, [0.980, 0.990, 0.400]], [0.982, [0.984, 0.992, 0.400]], [0.984, [0.984, 0.992, 0.400]], [0.986, [0.988, 0.994, 0.400]], [0.988, [0.988, 0.994, 0.400]], [0.990, [0.992, 0.996, 0.400]], [0.992, [0.992, 0.996, 0.400]], [0.994, [0.996, 0.998, 0.400]], [0.996, [0.996, 0.998, 0.400]], [0.998, [1.000, 1.000, 0.400]], [1.000, [1.000, 1.000, 0.400]]];
+var winter = [[0.000, [0.000, 0.000, 1.000]], [0.002, [0.000, 0.000, 1.000]], [0.004, [0.000, 0.004, 0.998]], [0.006, [0.000, 0.004, 0.998]], [0.008, [0.000, 0.008, 0.996]], [0.010, [0.000, 0.008, 0.996]], [0.012, [0.000, 0.012, 0.994]], [0.014, [0.000, 0.012, 0.994]], [0.016, [0.000, 0.016, 0.992]], [0.018, [0.000, 0.016, 0.992]], [0.020, [0.000, 0.020, 0.990]], [0.022, [0.000, 0.020, 0.990]], [0.023, [0.000, 0.024, 0.988]], [0.025, [0.000, 0.024, 0.988]], [0.027, [0.000, 0.027, 0.986]], [0.029, [0.000, 0.027, 0.986]], [0.031, [0.000, 0.031, 0.984]], [0.033, [0.000, 0.031, 0.984]], [0.035, [0.000, 0.035, 0.982]], [0.037, [0.000, 0.035, 0.982]], [0.039, [0.000, 0.039, 0.980]], [0.041, [0.000, 0.039, 0.980]], [0.043, [0.000, 0.043, 0.978]], [0.045, [0.000, 0.043, 0.978]], [0.047, [0.000, 0.047, 0.976]], [0.049, [0.000, 0.047, 0.976]], [0.051, [0.000, 0.051, 0.975]], [0.053, [0.000, 0.051, 0.975]], [0.055, [0.000, 0.055, 0.973]], [0.057, [0.000, 0.055, 0.973]], [0.059, [0.000, 0.059, 0.971]], [0.061, [0.000, 0.059, 0.971]], [0.063, [0.000, 0.063, 0.969]], [0.065, [0.000, 0.063, 0.969]], [0.067, [0.000, 0.067, 0.967]], [0.068, [0.000, 0.067, 0.967]], [0.070, [0.000, 0.071, 0.965]], [0.072, [0.000, 0.071, 0.965]], [0.074, [0.000, 0.075, 0.963]], [0.076, [0.000, 0.075, 0.963]], [0.078, [0.000, 0.078, 0.961]], [0.080, [0.000, 0.078, 0.961]], [0.082, [0.000, 0.082, 0.959]], [0.084, [0.000, 0.082, 0.959]], [0.086, [0.000, 0.086, 0.957]], [0.088, [0.000, 0.086, 0.957]], [0.090, [0.000, 0.090, 0.955]], [0.092, [0.000, 0.090, 0.955]], [0.094, [0.000, 0.094, 0.953]], [0.096, [0.000, 0.094, 0.953]], [0.098, [0.000, 0.098, 0.951]], [0.100, [0.000, 0.098, 0.951]], [0.102, [0.000, 0.102, 0.949]], [0.104, [0.000, 0.102, 0.949]], [0.106, [0.000, 0.106, 0.947]], [0.108, [0.000, 0.106, 0.947]], [0.110, [0.000, 0.110, 0.945]], [0.112, [0.000, 0.110, 0.945]], [0.114, [0.000, 0.114, 0.943]], [0.115, [0.000, 0.114, 0.943]], [0.117, [0.000, 0.118, 0.941]], [0.119, [0.000, 0.118, 0.941]], [0.121, [0.000, 0.122, 0.939]], [0.123, [0.000, 0.122, 0.939]], [0.125, [0.000, 0.125, 0.937]], [0.127, [0.000, 0.125, 0.937]], [0.129, [0.000, 0.129, 0.935]], [0.131, [0.000, 0.129, 0.935]], [0.133, [0.000, 0.133, 0.933]], [0.135, [0.000, 0.133, 0.933]], [0.137, [0.000, 0.137, 0.931]], [0.139, [0.000, 0.137, 0.931]], [0.141, [0.000, 0.141, 0.929]], [0.143, [0.000, 0.141, 0.929]], [0.145, [0.000, 0.145, 0.927]], [0.147, [0.000, 0.145, 0.927]], [0.149, [0.000, 0.149, 0.925]], [0.151, [0.000, 0.149, 0.925]], [0.153, [0.000, 0.153, 0.924]], [0.155, [0.000, 0.153, 0.924]], [0.157, [0.000, 0.157, 0.922]], [0.159, [0.000, 0.157, 0.922]], [0.160, [0.000, 0.161, 0.920]], [0.162, [0.000, 0.161, 0.920]], [0.164, [0.000, 0.165, 0.918]], [0.166, [0.000, 0.165, 0.918]], [0.168, [0.000, 0.169, 0.916]], [0.170, [0.000, 0.169, 0.916]], [0.172, [0.000, 0.173, 0.914]], [0.174, [0.000, 0.173, 0.914]], [0.176, [0.000, 0.176, 0.912]], [0.178, [0.000, 0.176, 0.912]], [0.180, [0.000, 0.180, 0.910]], [0.182, [0.000, 0.180, 0.910]], [0.184, [0.000, 0.184, 0.908]], [0.186, [0.000, 0.184, 0.908]], [0.188, [0.000, 0.188, 0.906]], [0.190, [0.000, 0.188, 0.906]], [0.192, [0.000, 0.192, 0.904]], [0.194, [0.000, 0.192, 0.904]], [0.196, [0.000, 0.196, 0.902]], [0.198, [0.000, 0.196, 0.902]], [0.200, [0.000, 0.200, 0.900]], [0.202, [0.000, 0.200, 0.900]], [0.204, [0.000, 0.204, 0.898]], [0.205, [0.000, 0.204, 0.898]], [0.207, [0.000, 0.208, 0.896]], [0.209, [0.000, 0.208, 0.896]], [0.211, [0.000, 0.212, 0.894]], [0.213, [0.000, 0.212, 0.894]], [0.215, [0.000, 0.216, 0.892]], [0.217, [0.000, 0.216, 0.892]], [0.219, [0.000, 0.220, 0.890]], [0.221, [0.000, 0.220, 0.890]], [0.223, [0.000, 0.224, 0.888]], [0.225, [0.000, 0.224, 0.888]], [0.227, [0.000, 0.227, 0.886]], [0.229, [0.000, 0.227, 0.886]], [0.231, [0.000, 0.231, 0.884]], [0.233, [0.000, 0.231, 0.884]], [0.235, [0.000, 0.235, 0.882]], [0.237, [0.000, 0.235, 0.882]], [0.239, [0.000, 0.239, 0.880]], [0.241, [0.000, 0.239, 0.880]], [0.243, [0.000, 0.243, 0.878]], [0.245, [0.000, 0.243, 0.878]], [0.247, [0.000, 0.247, 0.876]], [0.249, [0.000, 0.247, 0.876]], [0.250, [0.000, 0.251, 0.875]], [0.252, [0.000, 0.251, 0.875]], [0.254, [0.000, 0.255, 0.873]], [0.256, [0.000, 0.255, 0.873]], [0.258, [0.000, 0.259, 0.871]], [0.260, [0.000, 0.259, 0.871]], [0.262, [0.000, 0.263, 0.869]], [0.264, [0.000, 0.263, 0.869]], [0.266, [0.000, 0.267, 0.867]], [0.268, [0.000, 0.267, 0.867]], [0.270, [0.000, 0.271, 0.865]], [0.272, [0.000, 0.271, 0.865]], [0.274, [0.000, 0.275, 0.863]], [0.276, [0.000, 0.275, 0.863]], [0.278, [0.000, 0.278, 0.861]], [0.280, [0.000, 0.278, 0.861]], [0.282, [0.000, 0.282, 0.859]], [0.284, [0.000, 0.282, 0.859]], [0.286, [0.000, 0.286, 0.857]], [0.288, [0.000, 0.286, 0.857]], [0.290, [0.000, 0.290, 0.855]], [0.292, [0.000, 0.290, 0.855]], [0.294, [0.000, 0.294, 0.853]], [0.295, [0.000, 0.294, 0.853]], [0.297, [0.000, 0.298, 0.851]], [0.299, [0.000, 0.298, 0.851]], [0.301, [0.000, 0.302, 0.849]], [0.303, [0.000, 0.302, 0.849]], [0.305, [0.000, 0.306, 0.847]], [0.307, [0.000, 0.306, 0.847]], [0.309, [0.000, 0.310, 0.845]], [0.311, [0.000, 0.310, 0.845]], [0.313, [0.000, 0.314, 0.843]], [0.315, [0.000, 0.314, 0.843]], [0.317, [0.000, 0.318, 0.841]], [0.319, [0.000, 0.318, 0.841]], [0.321, [0.000, 0.322, 0.839]], [0.323, [0.000, 0.322, 0.839]], [0.325, [0.000, 0.325, 0.837]], [0.327, [0.000, 0.325, 0.837]], [0.329, [0.000, 0.329, 0.835]], [0.331, [0.000, 0.329, 0.835]], [0.333, [0.000, 0.333, 0.833]], [0.335, [0.000, 0.333, 0.833]], [0.337, [0.000, 0.337, 0.831]], [0.339, [0.000, 0.337, 0.831]], [0.341, [0.000, 0.341, 0.829]], [0.342, [0.000, 0.341, 0.829]], [0.344, [0.000, 0.345, 0.827]], [0.346, [0.000, 0.345, 0.827]], [0.348, [0.000, 0.349, 0.825]], [0.350, [0.000, 0.349, 0.825]], [0.352, [0.000, 0.353, 0.824]], [0.354, [0.000, 0.353, 0.824]], [0.356, [0.000, 0.357, 0.822]], [0.358, [0.000, 0.357, 0.822]], [0.360, [0.000, 0.361, 0.820]], [0.362, [0.000, 0.361, 0.820]], [0.364, [0.000, 0.365, 0.818]], [0.366, [0.000, 0.365, 0.818]], [0.368, [0.000, 0.369, 0.816]], [0.370, [0.000, 0.369, 0.816]], [0.372, [0.000, 0.373, 0.814]], [0.374, [0.000, 0.373, 0.814]], [0.376, [0.000, 0.376, 0.812]], [0.378, [0.000, 0.376, 0.812]], [0.380, [0.000, 0.380, 0.810]], [0.382, [0.000, 0.380, 0.810]], [0.384, [0.000, 0.384, 0.808]], [0.386, [0.000, 0.384, 0.808]], [0.387, [0.000, 0.388, 0.806]], [0.389, [0.000, 0.388, 0.806]], [0.391, [0.000, 0.392, 0.804]], [0.393, [0.000, 0.392, 0.804]], [0.395, [0.000, 0.396, 0.802]], [0.397, [0.000, 0.396, 0.802]], [0.399, [0.000, 0.400, 0.800]], [0.401, [0.000, 0.400, 0.800]], [0.403, [0.000, 0.404, 0.798]], [0.405, [0.000, 0.404, 0.798]], [0.407, [0.000, 0.408, 0.796]], [0.409, [0.000, 0.408, 0.796]], [0.411, [0.000, 0.412, 0.794]], [0.413, [0.000, 0.412, 0.794]], [0.415, [0.000, 0.416, 0.792]], [0.417, [0.000, 0.416, 0.792]], [0.419, [0.000, 0.420, 0.790]], [0.421, [0.000, 0.420, 0.790]], [0.423, [0.000, 0.424, 0.788]], [0.425, [0.000, 0.424, 0.788]], [0.427, [0.000, 0.427, 0.786]], [0.429, [0.000, 0.427, 0.786]], [0.431, [0.000, 0.431, 0.784]], [0.432, [0.000, 0.431, 0.784]], [0.434, [0.000, 0.435, 0.782]], [0.436, [0.000, 0.435, 0.782]], [0.438, [0.000, 0.439, 0.780]], [0.440, [0.000, 0.439, 0.780]], [0.442, [0.000, 0.443, 0.778]], [0.444, [0.000, 0.443, 0.778]], [0.446, [0.000, 0.447, 0.776]], [0.448, [0.000, 0.447, 0.776]], [0.450, [0.000, 0.451, 0.775]], [0.452, [0.000, 0.451, 0.775]], [0.454, [0.000, 0.455, 0.773]], [0.456, [0.000, 0.455, 0.773]], [0.458, [0.000, 0.459, 0.771]], [0.460, [0.000, 0.459, 0.771]], [0.462, [0.000, 0.463, 0.769]], [0.464, [0.000, 0.463, 0.769]], [0.466, [0.000, 0.467, 0.767]], [0.468, [0.000, 0.467, 0.767]], [0.470, [0.000, 0.471, 0.765]], [0.472, [0.000, 0.471, 0.765]], [0.474, [0.000, 0.475, 0.763]], [0.476, [0.000, 0.475, 0.763]], [0.477, [0.000, 0.478, 0.761]], [0.479, [0.000, 0.478, 0.761]], [0.481, [0.000, 0.482, 0.759]], [0.483, [0.000, 0.482, 0.759]], [0.485, [0.000, 0.486, 0.757]], [0.487, [0.000, 0.486, 0.757]], [0.489, [0.000, 0.490, 0.755]], [0.491, [0.000, 0.490, 0.755]], [0.493, [0.000, 0.494, 0.753]], [0.495, [0.000, 0.494, 0.753]], [0.497, [0.000, 0.498, 0.751]], [0.499, [0.000, 0.498, 0.751]], [0.501, [0.000, 0.502, 0.749]], [0.503, [0.000, 0.502, 0.749]], [0.505, [0.000, 0.506, 0.747]], [0.507, [0.000, 0.506, 0.747]], [0.509, [0.000, 0.510, 0.745]], [0.511, [0.000, 0.510, 0.745]], [0.513, [0.000, 0.514, 0.743]], [0.515, [0.000, 0.514, 0.743]], [0.517, [0.000, 0.518, 0.741]], [0.519, [0.000, 0.518, 0.741]], [0.521, [0.000, 0.522, 0.739]], [0.523, [0.000, 0.522, 0.739]], [0.524, [0.000, 0.525, 0.737]], [0.526, [0.000, 0.525, 0.737]], [0.528, [0.000, 0.529, 0.735]], [0.530, [0.000, 0.529, 0.735]], [0.532, [0.000, 0.533, 0.733]], [0.534, [0.000, 0.533, 0.733]], [0.536, [0.000, 0.537, 0.731]], [0.538, [0.000, 0.537, 0.731]], [0.540, [0.000, 0.541, 0.729]], [0.542, [0.000, 0.541, 0.729]], [0.544, [0.000, 0.545, 0.727]], [0.546, [0.000, 0.545, 0.727]], [0.548, [0.000, 0.549, 0.725]], [0.550, [0.000, 0.549, 0.725]], [0.552, [0.000, 0.553, 0.724]], [0.554, [0.000, 0.553, 0.724]], [0.556, [0.000, 0.557, 0.722]], [0.558, [0.000, 0.557, 0.722]], [0.560, [0.000, 0.561, 0.720]], [0.562, [0.000, 0.561, 0.720]], [0.564, [0.000, 0.565, 0.718]], [0.566, [0.000, 0.565, 0.718]], [0.568, [0.000, 0.569, 0.716]], [0.569, [0.000, 0.569, 0.716]], [0.571, [0.000, 0.573, 0.714]], [0.573, [0.000, 0.573, 0.714]], [0.575, [0.000, 0.576, 0.712]], [0.577, [0.000, 0.576, 0.712]], [0.579, [0.000, 0.580, 0.710]], [0.581, [0.000, 0.580, 0.710]], [0.583, [0.000, 0.584, 0.708]], [0.585, [0.000, 0.584, 0.708]], [0.587, [0.000, 0.588, 0.706]], [0.589, [0.000, 0.588, 0.706]], [0.591, [0.000, 0.592, 0.704]], [0.593, [0.000, 0.592, 0.704]], [0.595, [0.000, 0.596, 0.702]], [0.597, [0.000, 0.596, 0.702]], [0.599, [0.000, 0.600, 0.700]], [0.601, [0.000, 0.600, 0.700]], [0.603, [0.000, 0.604, 0.698]], [0.605, [0.000, 0.604, 0.698]], [0.607, [0.000, 0.608, 0.696]], [0.609, [0.000, 0.608, 0.696]], [0.611, [0.000, 0.612, 0.694]], [0.613, [0.000, 0.612, 0.694]], [0.614, [0.000, 0.616, 0.692]], [0.616, [0.000, 0.616, 0.692]], [0.618, [0.000, 0.620, 0.690]], [0.620, [0.000, 0.620, 0.690]], [0.622, [0.000, 0.624, 0.688]], [0.624, [0.000, 0.624, 0.688]], [0.626, [0.000, 0.627, 0.686]], [0.628, [0.000, 0.627, 0.686]], [0.630, [0.000, 0.631, 0.684]], [0.632, [0.000, 0.631, 0.684]], [0.634, [0.000, 0.635, 0.682]], [0.636, [0.000, 0.635, 0.682]], [0.638, [0.000, 0.639, 0.680]], [0.640, [0.000, 0.639, 0.680]], [0.642, [0.000, 0.643, 0.678]], [0.644, [0.000, 0.643, 0.678]], [0.646, [0.000, 0.647, 0.676]], [0.648, [0.000, 0.647, 0.676]], [0.650, [0.000, 0.651, 0.675]], [0.652, [0.000, 0.651, 0.675]], [0.654, [0.000, 0.655, 0.673]], [0.656, [0.000, 0.655, 0.673]], [0.658, [0.000, 0.659, 0.671]], [0.659, [0.000, 0.659, 0.671]], [0.661, [0.000, 0.663, 0.669]], [0.663, [0.000, 0.663, 0.669]], [0.665, [0.000, 0.667, 0.667]], [0.667, [0.000, 0.667, 0.667]], [0.669, [0.000, 0.671, 0.665]], [0.671, [0.000, 0.671, 0.665]], [0.673, [0.000, 0.675, 0.663]], [0.675, [0.000, 0.675, 0.663]], [0.677, [0.000, 0.678, 0.661]], [0.679, [0.000, 0.678, 0.661]], [0.681, [0.000, 0.682, 0.659]], [0.683, [0.000, 0.682, 0.659]], [0.685, [0.000, 0.686, 0.657]], [0.687, [0.000, 0.686, 0.657]], [0.689, [0.000, 0.690, 0.655]], [0.691, [0.000, 0.690, 0.655]], [0.693, [0.000, 0.694, 0.653]], [0.695, [0.000, 0.694, 0.653]], [0.697, [0.000, 0.698, 0.651]], [0.699, [0.000, 0.698, 0.651]], [0.701, [0.000, 0.702, 0.649]], [0.703, [0.000, 0.702, 0.649]], [0.705, [0.000, 0.706, 0.647]], [0.706, [0.000, 0.706, 0.647]], [0.708, [0.000, 0.710, 0.645]], [0.710, [0.000, 0.710, 0.645]], [0.712, [0.000, 0.714, 0.643]], [0.714, [0.000, 0.714, 0.643]], [0.716, [0.000, 0.718, 0.641]], [0.718, [0.000, 0.718, 0.641]], [0.720, [0.000, 0.722, 0.639]], [0.722, [0.000, 0.722, 0.639]], [0.724, [0.000, 0.725, 0.637]], [0.726, [0.000, 0.725, 0.637]], [0.728, [0.000, 0.729, 0.635]], [0.730, [0.000, 0.729, 0.635]], [0.732, [0.000, 0.733, 0.633]], [0.734, [0.000, 0.733, 0.633]], [0.736, [0.000, 0.737, 0.631]], [0.738, [0.000, 0.737, 0.631]], [0.740, [0.000, 0.741, 0.629]], [0.742, [0.000, 0.741, 0.629]], [0.744, [0.000, 0.745, 0.627]], [0.746, [0.000, 0.745, 0.627]], [0.748, [0.000, 0.749, 0.625]], [0.750, [0.000, 0.749, 0.625]], [0.751, [0.000, 0.753, 0.624]], [0.753, [0.000, 0.753, 0.624]], [0.755, [0.000, 0.757, 0.622]], [0.757, [0.000, 0.757, 0.622]], [0.759, [0.000, 0.761, 0.620]], [0.761, [0.000, 0.761, 0.620]], [0.763, [0.000, 0.765, 0.618]], [0.765, [0.000, 0.765, 0.618]], [0.767, [0.000, 0.769, 0.616]], [0.769, [0.000, 0.769, 0.616]], [0.771, [0.000, 0.773, 0.614]], [0.773, [0.000, 0.773, 0.614]], [0.775, [0.000, 0.776, 0.612]], [0.777, [0.000, 0.776, 0.612]], [0.779, [0.000, 0.780, 0.610]], [0.781, [0.000, 0.780, 0.610]], [0.783, [0.000, 0.784, 0.608]], [0.785, [0.000, 0.784, 0.608]], [0.787, [0.000, 0.788, 0.606]], [0.789, [0.000, 0.788, 0.606]], [0.791, [0.000, 0.792, 0.604]], [0.793, [0.000, 0.792, 0.604]], [0.795, [0.000, 0.796, 0.602]], [0.796, [0.000, 0.796, 0.602]], [0.798, [0.000, 0.800, 0.600]], [0.800, [0.000, 0.800, 0.600]], [0.802, [0.000, 0.804, 0.598]], [0.804, [0.000, 0.804, 0.598]], [0.806, [0.000, 0.808, 0.596]], [0.808, [0.000, 0.808, 0.596]], [0.810, [0.000, 0.812, 0.594]], [0.812, [0.000, 0.812, 0.594]], [0.814, [0.000, 0.816, 0.592]], [0.816, [0.000, 0.816, 0.592]], [0.818, [0.000, 0.820, 0.590]], [0.820, [0.000, 0.820, 0.590]], [0.822, [0.000, 0.824, 0.588]], [0.824, [0.000, 0.824, 0.588]], [0.826, [0.000, 0.827, 0.586]], [0.828, [0.000, 0.827, 0.586]], [0.830, [0.000, 0.831, 0.584]], [0.832, [0.000, 0.831, 0.584]], [0.834, [0.000, 0.835, 0.582]], [0.836, [0.000, 0.835, 0.582]], [0.838, [0.000, 0.839, 0.580]], [0.840, [0.000, 0.839, 0.580]], [0.841, [0.000, 0.843, 0.578]], [0.843, [0.000, 0.843, 0.578]], [0.845, [0.000, 0.847, 0.576]], [0.847, [0.000, 0.847, 0.576]], [0.849, [0.000, 0.851, 0.575]], [0.851, [0.000, 0.851, 0.575]], [0.853, [0.000, 0.855, 0.573]], [0.855, [0.000, 0.855, 0.573]], [0.857, [0.000, 0.859, 0.571]], [0.859, [0.000, 0.859, 0.571]], [0.861, [0.000, 0.863, 0.569]], [0.863, [0.000, 0.863, 0.569]], [0.865, [0.000, 0.867, 0.567]], [0.867, [0.000, 0.867, 0.567]], [0.869, [0.000, 0.871, 0.565]], [0.871, [0.000, 0.871, 0.565]], [0.873, [0.000, 0.875, 0.563]], [0.875, [0.000, 0.875, 0.563]], [0.877, [0.000, 0.878, 0.561]], [0.879, [0.000, 0.878, 0.561]], [0.881, [0.000, 0.882, 0.559]], [0.883, [0.000, 0.882, 0.559]], [0.885, [0.000, 0.886, 0.557]], [0.886, [0.000, 0.886, 0.557]], [0.888, [0.000, 0.890, 0.555]], [0.890, [0.000, 0.890, 0.555]], [0.892, [0.000, 0.894, 0.553]], [0.894, [0.000, 0.894, 0.553]], [0.896, [0.000, 0.898, 0.551]], [0.898, [0.000, 0.898, 0.551]], [0.900, [0.000, 0.902, 0.549]], [0.902, [0.000, 0.902, 0.549]], [0.904, [0.000, 0.906, 0.547]], [0.906, [0.000, 0.906, 0.547]], [0.908, [0.000, 0.910, 0.545]], [0.910, [0.000, 0.910, 0.545]], [0.912, [0.000, 0.914, 0.543]], [0.914, [0.000, 0.914, 0.543]], [0.916, [0.000, 0.918, 0.541]], [0.918, [0.000, 0.918, 0.541]], [0.920, [0.000, 0.922, 0.539]], [0.922, [0.000, 0.922, 0.539]], [0.924, [0.000, 0.925, 0.537]], [0.926, [0.000, 0.925, 0.537]], [0.928, [0.000, 0.929, 0.535]], [0.930, [0.000, 0.929, 0.535]], [0.932, [0.000, 0.933, 0.533]], [0.933, [0.000, 0.933, 0.533]], [0.935, [0.000, 0.937, 0.531]], [0.937, [0.000, 0.937, 0.531]], [0.939, [0.000, 0.941, 0.529]], [0.941, [0.000, 0.941, 0.529]], [0.943, [0.000, 0.945, 0.527]], [0.945, [0.000, 0.945, 0.527]], [0.947, [0.000, 0.949, 0.525]], [0.949, [0.000, 0.949, 0.525]], [0.951, [0.000, 0.953, 0.524]], [0.953, [0.000, 0.953, 0.524]], [0.955, [0.000, 0.957, 0.522]], [0.957, [0.000, 0.957, 0.522]], [0.959, [0.000, 0.961, 0.520]], [0.961, [0.000, 0.961, 0.520]], [0.963, [0.000, 0.965, 0.518]], [0.965, [0.000, 0.965, 0.518]], [0.967, [0.000, 0.969, 0.516]], [0.969, [0.000, 0.969, 0.516]], [0.971, [0.000, 0.973, 0.514]], [0.973, [0.000, 0.973, 0.514]], [0.975, [0.000, 0.976, 0.512]], [0.977, [0.000, 0.976, 0.512]], [0.978, [0.000, 0.980, 0.510]], [0.980, [0.000, 0.980, 0.510]], [0.982, [0.000, 0.984, 0.508]], [0.984, [0.000, 0.984, 0.508]], [0.986, [0.000, 0.988, 0.506]], [0.988, [0.000, 0.988, 0.506]], [0.990, [0.000, 0.992, 0.504]], [0.992, [0.000, 0.992, 0.504]], [0.994, [0.000, 0.996, 0.502]], [0.996, [0.000, 0.996, 0.502]], [0.998, [0.000, 1.000, 0.500]], [1.000, [0.000, 1.000, 0.500]]];
+
+// Miscellaneous
+var CMRmap = [[0.000, [0.000, 0.000, 0.000]], [0.002, [0.000, 0.000, 0.000]], [0.004, [0.005, 0.005, 0.016]], [0.006, [0.005, 0.005, 0.016]], [0.008, [0.009, 0.009, 0.031]], [0.010, [0.009, 0.009, 0.031]], [0.012, [0.014, 0.014, 0.047]], [0.014, [0.014, 0.014, 0.047]], [0.016, [0.019, 0.019, 0.063]], [0.018, [0.019, 0.019, 0.063]], [0.020, [0.024, 0.024, 0.078]], [0.022, [0.024, 0.024, 0.078]], [0.023, [0.028, 0.028, 0.094]], [0.025, [0.028, 0.028, 0.094]], [0.027, [0.033, 0.033, 0.110]], [0.029, [0.033, 0.033, 0.110]], [0.031, [0.038, 0.038, 0.125]], [0.033, [0.038, 0.038, 0.125]], [0.035, [0.042, 0.042, 0.141]], [0.037, [0.042, 0.042, 0.141]], [0.039, [0.047, 0.047, 0.157]], [0.041, [0.047, 0.047, 0.157]], [0.043, [0.052, 0.052, 0.173]], [0.045, [0.052, 0.052, 0.173]], [0.047, [0.056, 0.056, 0.188]], [0.049, [0.056, 0.056, 0.188]], [0.051, [0.061, 0.061, 0.204]], [0.053, [0.061, 0.061, 0.204]], [0.055, [0.066, 0.066, 0.220]], [0.057, [0.066, 0.066, 0.220]], [0.059, [0.071, 0.071, 0.235]], [0.061, [0.071, 0.071, 0.235]], [0.063, [0.075, 0.075, 0.251]], [0.065, [0.075, 0.075, 0.251]], [0.067, [0.080, 0.080, 0.267]], [0.068, [0.080, 0.080, 0.267]], [0.070, [0.085, 0.085, 0.282]], [0.072, [0.085, 0.085, 0.282]], [0.074, [0.089, 0.089, 0.298]], [0.076, [0.089, 0.089, 0.298]], [0.078, [0.094, 0.094, 0.314]], [0.080, [0.094, 0.094, 0.314]], [0.082, [0.099, 0.099, 0.329]], [0.084, [0.099, 0.099, 0.329]], [0.086, [0.104, 0.104, 0.345]], [0.088, [0.104, 0.104, 0.345]], [0.090, [0.108, 0.108, 0.361]], [0.092, [0.108, 0.108, 0.361]], [0.094, [0.113, 0.113, 0.376]], [0.096, [0.113, 0.113, 0.376]], [0.098, [0.118, 0.118, 0.392]], [0.100, [0.118, 0.118, 0.392]], [0.102, [0.122, 0.122, 0.408]], [0.104, [0.122, 0.122, 0.408]], [0.106, [0.127, 0.127, 0.424]], [0.108, [0.127, 0.127, 0.424]], [0.110, [0.132, 0.132, 0.439]], [0.112, [0.132, 0.132, 0.439]], [0.114, [0.136, 0.136, 0.455]], [0.115, [0.136, 0.136, 0.455]], [0.117, [0.141, 0.141, 0.471]], [0.119, [0.141, 0.141, 0.471]], [0.121, [0.146, 0.146, 0.486]], [0.123, [0.146, 0.146, 0.486]], [0.125, [0.151, 0.150, 0.501]], [0.127, [0.151, 0.150, 0.501]], [0.129, [0.155, 0.150, 0.509]], [0.131, [0.155, 0.150, 0.509]], [0.133, [0.160, 0.150, 0.517]], [0.135, [0.160, 0.150, 0.517]], [0.137, [0.165, 0.150, 0.525]], [0.139, [0.165, 0.150, 0.525]], [0.141, [0.169, 0.150, 0.532]], [0.143, [0.169, 0.150, 0.532]], [0.145, [0.174, 0.150, 0.540]], [0.147, [0.174, 0.150, 0.540]], [0.149, [0.179, 0.150, 0.548]], [0.151, [0.179, 0.150, 0.548]], [0.153, [0.184, 0.150, 0.556]], [0.155, [0.184, 0.150, 0.556]], [0.157, [0.188, 0.150, 0.564]], [0.159, [0.188, 0.150, 0.564]], [0.160, [0.193, 0.150, 0.572]], [0.162, [0.193, 0.150, 0.572]], [0.164, [0.198, 0.150, 0.579]], [0.166, [0.198, 0.150, 0.579]], [0.168, [0.202, 0.150, 0.587]], [0.170, [0.202, 0.150, 0.587]], [0.172, [0.207, 0.150, 0.595]], [0.174, [0.207, 0.150, 0.595]], [0.176, [0.212, 0.150, 0.603]], [0.178, [0.212, 0.150, 0.603]], [0.180, [0.216, 0.150, 0.611]], [0.182, [0.216, 0.150, 0.611]], [0.184, [0.221, 0.150, 0.619]], [0.186, [0.221, 0.150, 0.619]], [0.188, [0.226, 0.150, 0.626]], [0.190, [0.226, 0.150, 0.626]], [0.192, [0.231, 0.150, 0.634]], [0.194, [0.231, 0.150, 0.634]], [0.196, [0.235, 0.150, 0.642]], [0.198, [0.235, 0.150, 0.642]], [0.200, [0.240, 0.150, 0.650]], [0.202, [0.240, 0.150, 0.650]], [0.204, [0.245, 0.150, 0.658]], [0.205, [0.245, 0.150, 0.658]], [0.207, [0.249, 0.150, 0.666]], [0.209, [0.249, 0.150, 0.666]], [0.211, [0.254, 0.150, 0.674]], [0.213, [0.254, 0.150, 0.674]], [0.215, [0.259, 0.150, 0.681]], [0.217, [0.259, 0.150, 0.681]], [0.219, [0.264, 0.150, 0.689]], [0.221, [0.264, 0.150, 0.689]], [0.223, [0.268, 0.150, 0.697]], [0.225, [0.268, 0.150, 0.697]], [0.227, [0.273, 0.150, 0.705]], [0.229, [0.273, 0.150, 0.705]], [0.231, [0.278, 0.150, 0.713]], [0.233, [0.278, 0.150, 0.713]], [0.235, [0.282, 0.150, 0.721]], [0.237, [0.282, 0.150, 0.721]], [0.239, [0.287, 0.150, 0.728]], [0.241, [0.287, 0.150, 0.728]], [0.243, [0.292, 0.150, 0.736]], [0.245, [0.292, 0.150, 0.736]], [0.247, [0.296, 0.150, 0.744]], [0.249, [0.296, 0.150, 0.744]], [0.250, [0.302, 0.150, 0.748]], [0.252, [0.302, 0.150, 0.748]], [0.254, [0.312, 0.152, 0.740]], [0.256, [0.312, 0.152, 0.740]], [0.258, [0.321, 0.154, 0.732]], [0.260, [0.321, 0.154, 0.732]], [0.262, [0.331, 0.155, 0.725]], [0.264, [0.331, 0.155, 0.725]], [0.266, [0.340, 0.157, 0.717]], [0.268, [0.340, 0.157, 0.717]], [0.270, [0.349, 0.158, 0.709]], [0.272, [0.349, 0.158, 0.709]], [0.274, [0.359, 0.160, 0.701]], [0.276, [0.359, 0.160, 0.701]], [0.278, [0.368, 0.161, 0.693]], [0.280, [0.368, 0.161, 0.693]], [0.282, [0.378, 0.163, 0.685]], [0.284, [0.378, 0.163, 0.685]], [0.286, [0.387, 0.165, 0.677]], [0.288, [0.387, 0.165, 0.677]], [0.290, [0.396, 0.166, 0.670]], [0.292, [0.396, 0.166, 0.670]], [0.294, [0.406, 0.168, 0.662]], [0.295, [0.406, 0.168, 0.662]], [0.297, [0.415, 0.169, 0.654]], [0.299, [0.415, 0.169, 0.654]], [0.301, [0.425, 0.171, 0.646]], [0.303, [0.425, 0.171, 0.646]], [0.305, [0.434, 0.172, 0.638]], [0.307, [0.434, 0.172, 0.638]], [0.309, [0.444, 0.174, 0.630]], [0.311, [0.444, 0.174, 0.630]], [0.313, [0.453, 0.175, 0.623]], [0.315, [0.453, 0.175, 0.623]], [0.317, [0.462, 0.177, 0.615]], [0.319, [0.462, 0.177, 0.615]], [0.321, [0.472, 0.179, 0.607]], [0.323, [0.472, 0.179, 0.607]], [0.325, [0.481, 0.180, 0.599]], [0.327, [0.481, 0.180, 0.599]], [0.329, [0.491, 0.182, 0.591]], [0.331, [0.491, 0.182, 0.591]], [0.333, [0.500, 0.183, 0.583]], [0.335, [0.500, 0.183, 0.583]], [0.337, [0.509, 0.185, 0.575]], [0.339, [0.509, 0.185, 0.575]], [0.341, [0.519, 0.186, 0.568]], [0.342, [0.519, 0.186, 0.568]], [0.344, [0.528, 0.188, 0.560]], [0.346, [0.528, 0.188, 0.560]], [0.348, [0.538, 0.190, 0.552]], [0.350, [0.538, 0.190, 0.552]], [0.352, [0.547, 0.191, 0.544]], [0.354, [0.547, 0.191, 0.544]], [0.356, [0.556, 0.193, 0.536]], [0.358, [0.556, 0.193, 0.536]], [0.360, [0.566, 0.194, 0.528]], [0.362, [0.566, 0.194, 0.528]], [0.364, [0.575, 0.196, 0.521]], [0.366, [0.575, 0.196, 0.521]], [0.368, [0.585, 0.197, 0.513]], [0.370, [0.585, 0.197, 0.513]], [0.372, [0.594, 0.199, 0.505]], [0.374, [0.594, 0.199, 0.505]], [0.376, [0.605, 0.201, 0.496]], [0.378, [0.605, 0.201, 0.496]], [0.380, [0.617, 0.202, 0.485]], [0.382, [0.617, 0.202, 0.485]], [0.384, [0.630, 0.204, 0.474]], [0.386, [0.630, 0.204, 0.474]], [0.387, [0.642, 0.205, 0.463]], [0.389, [0.642, 0.205, 0.463]], [0.391, [0.655, 0.207, 0.452]], [0.393, [0.655, 0.207, 0.452]], [0.395, [0.667, 0.208, 0.441]], [0.397, [0.667, 0.208, 0.441]], [0.399, [0.680, 0.210, 0.430]], [0.401, [0.680, 0.210, 0.430]], [0.403, [0.693, 0.212, 0.419]], [0.405, [0.693, 0.212, 0.419]], [0.407, [0.705, 0.213, 0.408]], [0.409, [0.705, 0.213, 0.408]], [0.411, [0.718, 0.215, 0.397]], [0.413, [0.718, 0.215, 0.397]], [0.415, [0.730, 0.216, 0.386]], [0.417, [0.730, 0.216, 0.386]], [0.419, [0.743, 0.218, 0.375]], [0.421, [0.743, 0.218, 0.375]], [0.423, [0.755, 0.219, 0.364]], [0.425, [0.755, 0.219, 0.364]], [0.427, [0.768, 0.221, 0.353]], [0.429, [0.768, 0.221, 0.353]], [0.431, [0.780, 0.223, 0.342]], [0.432, [0.780, 0.223, 0.342]], [0.434, [0.793, 0.224, 0.331]], [0.436, [0.793, 0.224, 0.331]], [0.438, [0.805, 0.226, 0.320]], [0.440, [0.805, 0.226, 0.320]], [0.442, [0.818, 0.227, 0.309]], [0.444, [0.818, 0.227, 0.309]], [0.446, [0.831, 0.229, 0.298]], [0.448, [0.831, 0.229, 0.298]], [0.450, [0.843, 0.230, 0.287]], [0.452, [0.843, 0.230, 0.287]], [0.454, [0.856, 0.232, 0.276]], [0.456, [0.856, 0.232, 0.276]], [0.458, [0.868, 0.234, 0.265]], [0.460, [0.868, 0.234, 0.265]], [0.462, [0.881, 0.235, 0.254]], [0.464, [0.881, 0.235, 0.254]], [0.466, [0.893, 0.237, 0.243]], [0.468, [0.893, 0.237, 0.243]], [0.470, [0.906, 0.238, 0.232]], [0.472, [0.906, 0.238, 0.232]], [0.474, [0.918, 0.240, 0.221]], [0.476, [0.918, 0.240, 0.221]], [0.477, [0.931, 0.241, 0.210]], [0.479, [0.931, 0.241, 0.210]], [0.481, [0.944, 0.243, 0.199]], [0.483, [0.944, 0.243, 0.199]], [0.485, [0.956, 0.245, 0.188]], [0.487, [0.956, 0.245, 0.188]], [0.489, [0.969, 0.246, 0.177]], [0.491, [0.969, 0.246, 0.177]], [0.493, [0.981, 0.248, 0.166]], [0.495, [0.981, 0.248, 0.166]], [0.497, [0.994, 0.249, 0.155]], [0.499, [0.994, 0.249, 0.155]], [0.501, [0.998, 0.254, 0.148]], [0.503, [0.998, 0.254, 0.148]], [0.505, [0.995, 0.262, 0.143]], [0.507, [0.995, 0.262, 0.143]], [0.509, [0.992, 0.270, 0.138]], [0.511, [0.992, 0.270, 0.138]], [0.513, [0.989, 0.277, 0.134]], [0.515, [0.989, 0.277, 0.134]], [0.517, [0.986, 0.285, 0.129]], [0.519, [0.986, 0.285, 0.129]], [0.521, [0.983, 0.293, 0.124]], [0.523, [0.983, 0.293, 0.124]], [0.524, [0.980, 0.301, 0.119]], [0.526, [0.980, 0.301, 0.119]], [0.528, [0.976, 0.309, 0.115]], [0.530, [0.976, 0.309, 0.115]], [0.532, [0.973, 0.317, 0.110]], [0.534, [0.973, 0.317, 0.110]], [0.536, [0.970, 0.325, 0.105]], [0.538, [0.970, 0.325, 0.105]], [0.540, [0.967, 0.332, 0.101]], [0.542, [0.967, 0.332, 0.101]], [0.544, [0.964, 0.340, 0.096]], [0.546, [0.964, 0.340, 0.096]], [0.548, [0.961, 0.348, 0.091]], [0.550, [0.961, 0.348, 0.091]], [0.552, [0.958, 0.356, 0.086]], [0.554, [0.958, 0.356, 0.086]], [0.556, [0.955, 0.364, 0.082]], [0.558, [0.955, 0.364, 0.082]], [0.560, [0.951, 0.372, 0.077]], [0.562, [0.951, 0.372, 0.077]], [0.564, [0.948, 0.379, 0.072]], [0.566, [0.948, 0.379, 0.072]], [0.568, [0.945, 0.387, 0.068]], [0.569, [0.945, 0.387, 0.068]], [0.571, [0.942, 0.395, 0.063]], [0.573, [0.942, 0.395, 0.063]], [0.575, [0.939, 0.403, 0.058]], [0.577, [0.939, 0.403, 0.058]], [0.579, [0.936, 0.411, 0.054]], [0.581, [0.936, 0.411, 0.054]], [0.583, [0.933, 0.419, 0.049]], [0.585, [0.933, 0.419, 0.049]], [0.587, [0.929, 0.426, 0.044]], [0.589, [0.929, 0.426, 0.044]], [0.591, [0.926, 0.434, 0.039]], [0.593, [0.926, 0.434, 0.039]], [0.595, [0.923, 0.442, 0.035]], [0.597, [0.923, 0.442, 0.035]], [0.599, [0.920, 0.450, 0.030]], [0.601, [0.920, 0.450, 0.030]], [0.603, [0.917, 0.458, 0.025]], [0.605, [0.917, 0.458, 0.025]], [0.607, [0.914, 0.466, 0.021]], [0.609, [0.914, 0.466, 0.021]], [0.611, [0.911, 0.474, 0.016]], [0.613, [0.911, 0.474, 0.016]], [0.614, [0.907, 0.481, 0.011]], [0.616, [0.907, 0.481, 0.011]], [0.618, [0.904, 0.489, 0.006]], [0.620, [0.904, 0.489, 0.006]], [0.622, [0.901, 0.497, 0.002]], [0.624, [0.901, 0.497, 0.002]], [0.626, [0.900, 0.505, 0.002]], [0.628, [0.900, 0.505, 0.002]], [0.630, [0.900, 0.513, 0.005]], [0.632, [0.900, 0.513, 0.005]], [0.634, [0.900, 0.521, 0.008]], [0.636, [0.900, 0.521, 0.008]], [0.638, [0.900, 0.528, 0.011]], [0.640, [0.900, 0.528, 0.011]], [0.642, [0.900, 0.536, 0.015]], [0.644, [0.900, 0.536, 0.015]], [0.646, [0.900, 0.544, 0.018]], [0.648, [0.900, 0.544, 0.018]], [0.650, [0.900, 0.552, 0.021]], [0.652, [0.900, 0.552, 0.021]], [0.654, [0.900, 0.560, 0.024]], [0.656, [0.900, 0.560, 0.024]], [0.658, [0.900, 0.568, 0.027]], [0.659, [0.900, 0.568, 0.027]], [0.661, [0.900, 0.575, 0.030]], [0.663, [0.900, 0.575, 0.030]], [0.665, [0.900, 0.583, 0.033]], [0.667, [0.900, 0.583, 0.033]], [0.669, [0.900, 0.591, 0.036]], [0.671, [0.900, 0.591, 0.036]], [0.673, [0.900, 0.599, 0.040]], [0.675, [0.900, 0.599, 0.040]], [0.677, [0.900, 0.607, 0.043]], [0.679, [0.900, 0.607, 0.043]], [0.681, [0.900, 0.615, 0.046]], [0.683, [0.900, 0.615, 0.046]], [0.685, [0.900, 0.623, 0.049]], [0.687, [0.900, 0.623, 0.049]], [0.689, [0.900, 0.630, 0.052]], [0.691, [0.900, 0.630, 0.052]], [0.693, [0.900, 0.638, 0.055]], [0.695, [0.900, 0.638, 0.055]], [0.697, [0.900, 0.646, 0.058]], [0.699, [0.900, 0.646, 0.058]], [0.701, [0.900, 0.654, 0.062]], [0.703, [0.900, 0.654, 0.062]], [0.705, [0.900, 0.662, 0.065]], [0.706, [0.900, 0.662, 0.065]], [0.708, [0.900, 0.670, 0.068]], [0.710, [0.900, 0.670, 0.068]], [0.712, [0.900, 0.677, 0.071]], [0.714, [0.900, 0.677, 0.071]], [0.716, [0.900, 0.685, 0.074]], [0.718, [0.900, 0.685, 0.074]], [0.720, [0.900, 0.693, 0.077]], [0.722, [0.900, 0.693, 0.077]], [0.724, [0.900, 0.701, 0.080]], [0.726, [0.900, 0.701, 0.080]], [0.728, [0.900, 0.709, 0.084]], [0.730, [0.900, 0.709, 0.084]], [0.732, [0.900, 0.717, 0.087]], [0.734, [0.900, 0.717, 0.087]], [0.736, [0.900, 0.725, 0.090]], [0.738, [0.900, 0.725, 0.090]], [0.740, [0.900, 0.732, 0.093]], [0.742, [0.900, 0.732, 0.093]], [0.744, [0.900, 0.740, 0.096]], [0.746, [0.900, 0.740, 0.096]], [0.748, [0.900, 0.748, 0.099]], [0.750, [0.900, 0.748, 0.099]], [0.751, [0.900, 0.754, 0.109]], [0.753, [0.900, 0.754, 0.109]], [0.755, [0.900, 0.758, 0.122]], [0.757, [0.900, 0.758, 0.122]], [0.759, [0.900, 0.763, 0.135]], [0.761, [0.900, 0.763, 0.135]], [0.763, [0.900, 0.768, 0.147]], [0.765, [0.900, 0.768, 0.147]], [0.767, [0.900, 0.772, 0.160]], [0.769, [0.900, 0.772, 0.160]], [0.771, [0.900, 0.777, 0.172]], [0.773, [0.900, 0.777, 0.172]], [0.775, [0.900, 0.782, 0.185]], [0.777, [0.900, 0.782, 0.185]], [0.779, [0.900, 0.786, 0.197]], [0.781, [0.900, 0.786, 0.197]], [0.783, [0.900, 0.791, 0.210]], [0.785, [0.900, 0.791, 0.210]], [0.787, [0.900, 0.796, 0.222]], [0.789, [0.900, 0.796, 0.222]], [0.791, [0.900, 0.801, 0.235]], [0.793, [0.900, 0.801, 0.235]], [0.795, [0.900, 0.805, 0.247]], [0.796, [0.900, 0.805, 0.247]], [0.798, [0.900, 0.810, 0.260]], [0.800, [0.900, 0.810, 0.260]], [0.802, [0.900, 0.815, 0.273]], [0.804, [0.900, 0.815, 0.273]], [0.806, [0.900, 0.819, 0.285]], [0.808, [0.900, 0.819, 0.285]], [0.810, [0.900, 0.824, 0.298]], [0.812, [0.900, 0.824, 0.298]], [0.814, [0.900, 0.829, 0.310]], [0.816, [0.900, 0.829, 0.310]], [0.818, [0.900, 0.834, 0.323]], [0.820, [0.900, 0.834, 0.323]], [0.822, [0.900, 0.838, 0.335]], [0.824, [0.900, 0.838, 0.335]], [0.826, [0.900, 0.843, 0.348]], [0.828, [0.900, 0.843, 0.348]], [0.830, [0.900, 0.848, 0.360]], [0.832, [0.900, 0.848, 0.360]], [0.834, [0.900, 0.852, 0.373]], [0.836, [0.900, 0.852, 0.373]], [0.838, [0.900, 0.857, 0.385]], [0.840, [0.900, 0.857, 0.385]], [0.841, [0.900, 0.862, 0.398]], [0.843, [0.900, 0.862, 0.398]], [0.845, [0.900, 0.866, 0.411]], [0.847, [0.900, 0.866, 0.411]], [0.849, [0.900, 0.871, 0.423]], [0.851, [0.900, 0.871, 0.423]], [0.853, [0.900, 0.876, 0.436]], [0.855, [0.900, 0.876, 0.436]], [0.857, [0.900, 0.881, 0.448]], [0.859, [0.900, 0.881, 0.448]], [0.861, [0.900, 0.885, 0.461]], [0.863, [0.900, 0.885, 0.461]], [0.865, [0.900, 0.890, 0.473]], [0.867, [0.900, 0.890, 0.473]], [0.869, [0.900, 0.895, 0.486]], [0.871, [0.900, 0.895, 0.486]], [0.873, [0.900, 0.899, 0.498]], [0.875, [0.900, 0.899, 0.498]], [0.877, [0.903, 0.903, 0.514]], [0.879, [0.903, 0.903, 0.514]], [0.881, [0.906, 0.906, 0.529]], [0.883, [0.906, 0.906, 0.529]], [0.885, [0.909, 0.909, 0.545]], [0.886, [0.909, 0.909, 0.545]], [0.888, [0.912, 0.912, 0.561]], [0.890, [0.912, 0.912, 0.561]], [0.892, [0.915, 0.915, 0.576]], [0.894, [0.915, 0.915, 0.576]], [0.896, [0.918, 0.918, 0.592]], [0.898, [0.918, 0.918, 0.592]], [0.900, [0.922, 0.922, 0.608]], [0.902, [0.922, 0.922, 0.608]], [0.904, [0.925, 0.925, 0.624]], [0.906, [0.925, 0.925, 0.624]], [0.908, [0.928, 0.928, 0.639]], [0.910, [0.928, 0.928, 0.639]], [0.912, [0.931, 0.931, 0.655]], [0.914, [0.931, 0.931, 0.655]], [0.916, [0.934, 0.934, 0.671]], [0.918, [0.934, 0.934, 0.671]], [0.920, [0.937, 0.937, 0.686]], [0.922, [0.937, 0.937, 0.686]], [0.924, [0.940, 0.940, 0.702]], [0.926, [0.940, 0.940, 0.702]], [0.928, [0.944, 0.944, 0.718]], [0.930, [0.944, 0.944, 0.718]], [0.932, [0.947, 0.947, 0.733]], [0.933, [0.947, 0.947, 0.733]], [0.935, [0.950, 0.950, 0.749]], [0.937, [0.950, 0.950, 0.749]], [0.939, [0.953, 0.953, 0.765]], [0.941, [0.953, 0.953, 0.765]], [0.943, [0.956, 0.956, 0.780]], [0.945, [0.956, 0.956, 0.780]], [0.947, [0.959, 0.959, 0.796]], [0.949, [0.959, 0.959, 0.796]], [0.951, [0.962, 0.962, 0.812]], [0.953, [0.962, 0.962, 0.812]], [0.955, [0.965, 0.965, 0.827]], [0.957, [0.965, 0.965, 0.827]], [0.959, [0.969, 0.969, 0.843]], [0.961, [0.969, 0.969, 0.843]], [0.963, [0.972, 0.972, 0.859]], [0.965, [0.972, 0.972, 0.859]], [0.967, [0.975, 0.975, 0.875]], [0.969, [0.975, 0.975, 0.875]], [0.971, [0.978, 0.978, 0.890]], [0.973, [0.978, 0.978, 0.890]], [0.975, [0.981, 0.981, 0.906]], [0.977, [0.981, 0.981, 0.906]], [0.978, [0.984, 0.984, 0.922]], [0.980, [0.984, 0.984, 0.922]], [0.982, [0.987, 0.987, 0.937]], [0.984, [0.987, 0.987, 0.937]], [0.986, [0.991, 0.991, 0.953]], [0.988, [0.991, 0.991, 0.953]], [0.990, [0.994, 0.994, 0.969]], [0.992, [0.994, 0.994, 0.969]], [0.994, [0.997, 0.997, 0.984]], [0.996, [0.997, 0.997, 0.984]], [0.998, [1.000, 1.000, 1.000]], [1.000, [1.000, 1.000, 1.000]]];
+var brg = [[0.000, [0.000, 0.000, 1.000]], [0.002, [0.000, 0.000, 1.000]], [0.004, [0.008, 0.000, 0.992]], [0.006, [0.008, 0.000, 0.992]], [0.008, [0.016, 0.000, 0.984]], [0.010, [0.016, 0.000, 0.984]], [0.012, [0.024, 0.000, 0.976]], [0.014, [0.024, 0.000, 0.976]], [0.016, [0.031, 0.000, 0.969]], [0.018, [0.031, 0.000, 0.969]], [0.020, [0.039, 0.000, 0.961]], [0.022, [0.039, 0.000, 0.961]], [0.023, [0.047, 0.000, 0.953]], [0.025, [0.047, 0.000, 0.953]], [0.027, [0.055, 0.000, 0.945]], [0.029, [0.055, 0.000, 0.945]], [0.031, [0.063, 0.000, 0.937]], [0.033, [0.063, 0.000, 0.937]], [0.035, [0.071, 0.000, 0.929]], [0.037, [0.071, 0.000, 0.929]], [0.039, [0.078, 0.000, 0.922]], [0.041, [0.078, 0.000, 0.922]], [0.043, [0.086, 0.000, 0.914]], [0.045, [0.086, 0.000, 0.914]], [0.047, [0.094, 0.000, 0.906]], [0.049, [0.094, 0.000, 0.906]], [0.051, [0.102, 0.000, 0.898]], [0.053, [0.102, 0.000, 0.898]], [0.055, [0.110, 0.000, 0.890]], [0.057, [0.110, 0.000, 0.890]], [0.059, [0.118, 0.000, 0.882]], [0.061, [0.118, 0.000, 0.882]], [0.063, [0.125, 0.000, 0.875]], [0.065, [0.125, 0.000, 0.875]], [0.067, [0.133, 0.000, 0.867]], [0.068, [0.133, 0.000, 0.867]], [0.070, [0.141, 0.000, 0.859]], [0.072, [0.141, 0.000, 0.859]], [0.074, [0.149, 0.000, 0.851]], [0.076, [0.149, 0.000, 0.851]], [0.078, [0.157, 0.000, 0.843]], [0.080, [0.157, 0.000, 0.843]], [0.082, [0.165, 0.000, 0.835]], [0.084, [0.165, 0.000, 0.835]], [0.086, [0.173, 0.000, 0.827]], [0.088, [0.173, 0.000, 0.827]], [0.090, [0.180, 0.000, 0.820]], [0.092, [0.180, 0.000, 0.820]], [0.094, [0.188, 0.000, 0.812]], [0.096, [0.188, 0.000, 0.812]], [0.098, [0.196, 0.000, 0.804]], [0.100, [0.196, 0.000, 0.804]], [0.102, [0.204, 0.000, 0.796]], [0.104, [0.204, 0.000, 0.796]], [0.106, [0.212, 0.000, 0.788]], [0.108, [0.212, 0.000, 0.788]], [0.110, [0.220, 0.000, 0.780]], [0.112, [0.220, 0.000, 0.780]], [0.114, [0.227, 0.000, 0.773]], [0.115, [0.227, 0.000, 0.773]], [0.117, [0.235, 0.000, 0.765]], [0.119, [0.235, 0.000, 0.765]], [0.121, [0.243, 0.000, 0.757]], [0.123, [0.243, 0.000, 0.757]], [0.125, [0.251, 0.000, 0.749]], [0.127, [0.251, 0.000, 0.749]], [0.129, [0.259, 0.000, 0.741]], [0.131, [0.259, 0.000, 0.741]], [0.133, [0.267, 0.000, 0.733]], [0.135, [0.267, 0.000, 0.733]], [0.137, [0.275, 0.000, 0.725]], [0.139, [0.275, 0.000, 0.725]], [0.141, [0.282, 0.000, 0.718]], [0.143, [0.282, 0.000, 0.718]], [0.145, [0.290, 0.000, 0.710]], [0.147, [0.290, 0.000, 0.710]], [0.149, [0.298, 0.000, 0.702]], [0.151, [0.298, 0.000, 0.702]], [0.153, [0.306, 0.000, 0.694]], [0.155, [0.306, 0.000, 0.694]], [0.157, [0.314, 0.000, 0.686]], [0.159, [0.314, 0.000, 0.686]], [0.160, [0.322, 0.000, 0.678]], [0.162, [0.322, 0.000, 0.678]], [0.164, [0.329, 0.000, 0.671]], [0.166, [0.329, 0.000, 0.671]], [0.168, [0.337, 0.000, 0.663]], [0.170, [0.337, 0.000, 0.663]], [0.172, [0.345, 0.000, 0.655]], [0.174, [0.345, 0.000, 0.655]], [0.176, [0.353, 0.000, 0.647]], [0.178, [0.353, 0.000, 0.647]], [0.180, [0.361, 0.000, 0.639]], [0.182, [0.361, 0.000, 0.639]], [0.184, [0.369, 0.000, 0.631]], [0.186, [0.369, 0.000, 0.631]], [0.188, [0.376, 0.000, 0.624]], [0.190, [0.376, 0.000, 0.624]], [0.192, [0.384, 0.000, 0.616]], [0.194, [0.384, 0.000, 0.616]], [0.196, [0.392, 0.000, 0.608]], [0.198, [0.392, 0.000, 0.608]], [0.200, [0.400, 0.000, 0.600]], [0.202, [0.400, 0.000, 0.600]], [0.204, [0.408, 0.000, 0.592]], [0.205, [0.408, 0.000, 0.592]], [0.207, [0.416, 0.000, 0.584]], [0.209, [0.416, 0.000, 0.584]], [0.211, [0.424, 0.000, 0.576]], [0.213, [0.424, 0.000, 0.576]], [0.215, [0.431, 0.000, 0.569]], [0.217, [0.431, 0.000, 0.569]], [0.219, [0.439, 0.000, 0.561]], [0.221, [0.439, 0.000, 0.561]], [0.223, [0.447, 0.000, 0.553]], [0.225, [0.447, 0.000, 0.553]], [0.227, [0.455, 0.000, 0.545]], [0.229, [0.455, 0.000, 0.545]], [0.231, [0.463, 0.000, 0.537]], [0.233, [0.463, 0.000, 0.537]], [0.235, [0.471, 0.000, 0.529]], [0.237, [0.471, 0.000, 0.529]], [0.239, [0.478, 0.000, 0.522]], [0.241, [0.478, 0.000, 0.522]], [0.243, [0.486, 0.000, 0.514]], [0.245, [0.486, 0.000, 0.514]], [0.247, [0.494, 0.000, 0.506]], [0.249, [0.494, 0.000, 0.506]], [0.250, [0.502, 0.000, 0.498]], [0.252, [0.502, 0.000, 0.498]], [0.254, [0.510, 0.000, 0.490]], [0.256, [0.510, 0.000, 0.490]], [0.258, [0.518, 0.000, 0.482]], [0.260, [0.518, 0.000, 0.482]], [0.262, [0.525, 0.000, 0.475]], [0.264, [0.525, 0.000, 0.475]], [0.266, [0.533, 0.000, 0.467]], [0.268, [0.533, 0.000, 0.467]], [0.270, [0.541, 0.000, 0.459]], [0.272, [0.541, 0.000, 0.459]], [0.274, [0.549, 0.000, 0.451]], [0.276, [0.549, 0.000, 0.451]], [0.278, [0.557, 0.000, 0.443]], [0.280, [0.557, 0.000, 0.443]], [0.282, [0.565, 0.000, 0.435]], [0.284, [0.565, 0.000, 0.435]], [0.286, [0.573, 0.000, 0.427]], [0.288, [0.573, 0.000, 0.427]], [0.290, [0.580, 0.000, 0.420]], [0.292, [0.580, 0.000, 0.420]], [0.294, [0.588, 0.000, 0.412]], [0.295, [0.588, 0.000, 0.412]], [0.297, [0.596, 0.000, 0.404]], [0.299, [0.596, 0.000, 0.404]], [0.301, [0.604, 0.000, 0.396]], [0.303, [0.604, 0.000, 0.396]], [0.305, [0.612, 0.000, 0.388]], [0.307, [0.612, 0.000, 0.388]], [0.309, [0.620, 0.000, 0.380]], [0.311, [0.620, 0.000, 0.380]], [0.313, [0.627, 0.000, 0.373]], [0.315, [0.627, 0.000, 0.373]], [0.317, [0.635, 0.000, 0.365]], [0.319, [0.635, 0.000, 0.365]], [0.321, [0.643, 0.000, 0.357]], [0.323, [0.643, 0.000, 0.357]], [0.325, [0.651, 0.000, 0.349]], [0.327, [0.651, 0.000, 0.349]], [0.329, [0.659, 0.000, 0.341]], [0.331, [0.659, 0.000, 0.341]], [0.333, [0.667, 0.000, 0.333]], [0.335, [0.667, 0.000, 0.333]], [0.337, [0.675, 0.000, 0.325]], [0.339, [0.675, 0.000, 0.325]], [0.341, [0.682, 0.000, 0.318]], [0.342, [0.682, 0.000, 0.318]], [0.344, [0.690, 0.000, 0.310]], [0.346, [0.690, 0.000, 0.310]], [0.348, [0.698, 0.000, 0.302]], [0.350, [0.698, 0.000, 0.302]], [0.352, [0.706, 0.000, 0.294]], [0.354, [0.706, 0.000, 0.294]], [0.356, [0.714, 0.000, 0.286]], [0.358, [0.714, 0.000, 0.286]], [0.360, [0.722, 0.000, 0.278]], [0.362, [0.722, 0.000, 0.278]], [0.364, [0.729, 0.000, 0.271]], [0.366, [0.729, 0.000, 0.271]], [0.368, [0.737, 0.000, 0.263]], [0.370, [0.737, 0.000, 0.263]], [0.372, [0.745, 0.000, 0.255]], [0.374, [0.745, 0.000, 0.255]], [0.376, [0.753, 0.000, 0.247]], [0.378, [0.753, 0.000, 0.247]], [0.380, [0.761, 0.000, 0.239]], [0.382, [0.761, 0.000, 0.239]], [0.384, [0.769, 0.000, 0.231]], [0.386, [0.769, 0.000, 0.231]], [0.387, [0.776, 0.000, 0.224]], [0.389, [0.776, 0.000, 0.224]], [0.391, [0.784, 0.000, 0.216]], [0.393, [0.784, 0.000, 0.216]], [0.395, [0.792, 0.000, 0.208]], [0.397, [0.792, 0.000, 0.208]], [0.399, [0.800, 0.000, 0.200]], [0.401, [0.800, 0.000, 0.200]], [0.403, [0.808, 0.000, 0.192]], [0.405, [0.808, 0.000, 0.192]], [0.407, [0.816, 0.000, 0.184]], [0.409, [0.816, 0.000, 0.184]], [0.411, [0.824, 0.000, 0.176]], [0.413, [0.824, 0.000, 0.176]], [0.415, [0.831, 0.000, 0.169]], [0.417, [0.831, 0.000, 0.169]], [0.419, [0.839, 0.000, 0.161]], [0.421, [0.839, 0.000, 0.161]], [0.423, [0.847, 0.000, 0.153]], [0.425, [0.847, 0.000, 0.153]], [0.427, [0.855, 0.000, 0.145]], [0.429, [0.855, 0.000, 0.145]], [0.431, [0.863, 0.000, 0.137]], [0.432, [0.863, 0.000, 0.137]], [0.434, [0.871, 0.000, 0.129]], [0.436, [0.871, 0.000, 0.129]], [0.438, [0.878, 0.000, 0.122]], [0.440, [0.878, 0.000, 0.122]], [0.442, [0.886, 0.000, 0.114]], [0.444, [0.886, 0.000, 0.114]], [0.446, [0.894, 0.000, 0.106]], [0.448, [0.894, 0.000, 0.106]], [0.450, [0.902, 0.000, 0.098]], [0.452, [0.902, 0.000, 0.098]], [0.454, [0.910, 0.000, 0.090]], [0.456, [0.910, 0.000, 0.090]], [0.458, [0.918, 0.000, 0.082]], [0.460, [0.918, 0.000, 0.082]], [0.462, [0.925, 0.000, 0.075]], [0.464, [0.925, 0.000, 0.075]], [0.466, [0.933, 0.000, 0.067]], [0.468, [0.933, 0.000, 0.067]], [0.470, [0.941, 0.000, 0.059]], [0.472, [0.941, 0.000, 0.059]], [0.474, [0.949, 0.000, 0.051]], [0.476, [0.949, 0.000, 0.051]], [0.477, [0.957, 0.000, 0.043]], [0.479, [0.957, 0.000, 0.043]], [0.481, [0.965, 0.000, 0.035]], [0.483, [0.965, 0.000, 0.035]], [0.485, [0.973, 0.000, 0.027]], [0.487, [0.973, 0.000, 0.027]], [0.489, [0.980, 0.000, 0.020]], [0.491, [0.980, 0.000, 0.020]], [0.493, [0.988, 0.000, 0.012]], [0.495, [0.988, 0.000, 0.012]], [0.497, [0.996, 0.000, 0.004]], [0.499, [0.996, 0.000, 0.004]], [0.501, [0.996, 0.004, 0.000]], [0.503, [0.996, 0.004, 0.000]], [0.505, [0.988, 0.012, 0.000]], [0.507, [0.988, 0.012, 0.000]], [0.509, [0.980, 0.020, 0.000]], [0.511, [0.980, 0.020, 0.000]], [0.513, [0.973, 0.027, 0.000]], [0.515, [0.973, 0.027, 0.000]], [0.517, [0.965, 0.035, 0.000]], [0.519, [0.965, 0.035, 0.000]], [0.521, [0.957, 0.043, 0.000]], [0.523, [0.957, 0.043, 0.000]], [0.524, [0.949, 0.051, 0.000]], [0.526, [0.949, 0.051, 0.000]], [0.528, [0.941, 0.059, 0.000]], [0.530, [0.941, 0.059, 0.000]], [0.532, [0.933, 0.067, 0.000]], [0.534, [0.933, 0.067, 0.000]], [0.536, [0.925, 0.075, 0.000]], [0.538, [0.925, 0.075, 0.000]], [0.540, [0.918, 0.082, 0.000]], [0.542, [0.918, 0.082, 0.000]], [0.544, [0.910, 0.090, 0.000]], [0.546, [0.910, 0.090, 0.000]], [0.548, [0.902, 0.098, 0.000]], [0.550, [0.902, 0.098, 0.000]], [0.552, [0.894, 0.106, 0.000]], [0.554, [0.894, 0.106, 0.000]], [0.556, [0.886, 0.114, 0.000]], [0.558, [0.886, 0.114, 0.000]], [0.560, [0.878, 0.122, 0.000]], [0.562, [0.878, 0.122, 0.000]], [0.564, [0.871, 0.129, 0.000]], [0.566, [0.871, 0.129, 0.000]], [0.568, [0.863, 0.137, 0.000]], [0.569, [0.863, 0.137, 0.000]], [0.571, [0.855, 0.145, 0.000]], [0.573, [0.855, 0.145, 0.000]], [0.575, [0.847, 0.153, 0.000]], [0.577, [0.847, 0.153, 0.000]], [0.579, [0.839, 0.161, 0.000]], [0.581, [0.839, 0.161, 0.000]], [0.583, [0.831, 0.169, 0.000]], [0.585, [0.831, 0.169, 0.000]], [0.587, [0.824, 0.176, 0.000]], [0.589, [0.824, 0.176, 0.000]], [0.591, [0.816, 0.184, 0.000]], [0.593, [0.816, 0.184, 0.000]], [0.595, [0.808, 0.192, 0.000]], [0.597, [0.808, 0.192, 0.000]], [0.599, [0.800, 0.200, 0.000]], [0.601, [0.800, 0.200, 0.000]], [0.603, [0.792, 0.208, 0.000]], [0.605, [0.792, 0.208, 0.000]], [0.607, [0.784, 0.216, 0.000]], [0.609, [0.784, 0.216, 0.000]], [0.611, [0.776, 0.224, 0.000]], [0.613, [0.776, 0.224, 0.000]], [0.614, [0.769, 0.231, 0.000]], [0.616, [0.769, 0.231, 0.000]], [0.618, [0.761, 0.239, 0.000]], [0.620, [0.761, 0.239, 0.000]], [0.622, [0.753, 0.247, 0.000]], [0.624, [0.753, 0.247, 0.000]], [0.626, [0.745, 0.255, 0.000]], [0.628, [0.745, 0.255, 0.000]], [0.630, [0.737, 0.263, 0.000]], [0.632, [0.737, 0.263, 0.000]], [0.634, [0.729, 0.271, 0.000]], [0.636, [0.729, 0.271, 0.000]], [0.638, [0.722, 0.278, 0.000]], [0.640, [0.722, 0.278, 0.000]], [0.642, [0.714, 0.286, 0.000]], [0.644, [0.714, 0.286, 0.000]], [0.646, [0.706, 0.294, 0.000]], [0.648, [0.706, 0.294, 0.000]], [0.650, [0.698, 0.302, 0.000]], [0.652, [0.698, 0.302, 0.000]], [0.654, [0.690, 0.310, 0.000]], [0.656, [0.690, 0.310, 0.000]], [0.658, [0.682, 0.318, 0.000]], [0.659, [0.682, 0.318, 0.000]], [0.661, [0.675, 0.325, 0.000]], [0.663, [0.675, 0.325, 0.000]], [0.665, [0.667, 0.333, 0.000]], [0.667, [0.667, 0.333, 0.000]], [0.669, [0.659, 0.341, 0.000]], [0.671, [0.659, 0.341, 0.000]], [0.673, [0.651, 0.349, 0.000]], [0.675, [0.651, 0.349, 0.000]], [0.677, [0.643, 0.357, 0.000]], [0.679, [0.643, 0.357, 0.000]], [0.681, [0.635, 0.365, 0.000]], [0.683, [0.635, 0.365, 0.000]], [0.685, [0.627, 0.373, 0.000]], [0.687, [0.627, 0.373, 0.000]], [0.689, [0.620, 0.380, 0.000]], [0.691, [0.620, 0.380, 0.000]], [0.693, [0.612, 0.388, 0.000]], [0.695, [0.612, 0.388, 0.000]], [0.697, [0.604, 0.396, 0.000]], [0.699, [0.604, 0.396, 0.000]], [0.701, [0.596, 0.404, 0.000]], [0.703, [0.596, 0.404, 0.000]], [0.705, [0.588, 0.412, 0.000]], [0.706, [0.588, 0.412, 0.000]], [0.708, [0.580, 0.420, 0.000]], [0.710, [0.580, 0.420, 0.000]], [0.712, [0.573, 0.427, 0.000]], [0.714, [0.573, 0.427, 0.000]], [0.716, [0.565, 0.435, 0.000]], [0.718, [0.565, 0.435, 0.000]], [0.720, [0.557, 0.443, 0.000]], [0.722, [0.557, 0.443, 0.000]], [0.724, [0.549, 0.451, 0.000]], [0.726, [0.549, 0.451, 0.000]], [0.728, [0.541, 0.459, 0.000]], [0.730, [0.541, 0.459, 0.000]], [0.732, [0.533, 0.467, 0.000]], [0.734, [0.533, 0.467, 0.000]], [0.736, [0.525, 0.475, 0.000]], [0.738, [0.525, 0.475, 0.000]], [0.740, [0.518, 0.482, 0.000]], [0.742, [0.518, 0.482, 0.000]], [0.744, [0.510, 0.490, 0.000]], [0.746, [0.510, 0.490, 0.000]], [0.748, [0.502, 0.498, 0.000]], [0.750, [0.502, 0.498, 0.000]], [0.751, [0.494, 0.506, 0.000]], [0.753, [0.494, 0.506, 0.000]], [0.755, [0.486, 0.514, 0.000]], [0.757, [0.486, 0.514, 0.000]], [0.759, [0.478, 0.522, 0.000]], [0.761, [0.478, 0.522, 0.000]], [0.763, [0.471, 0.529, 0.000]], [0.765, [0.471, 0.529, 0.000]], [0.767, [0.463, 0.537, 0.000]], [0.769, [0.463, 0.537, 0.000]], [0.771, [0.455, 0.545, 0.000]], [0.773, [0.455, 0.545, 0.000]], [0.775, [0.447, 0.553, 0.000]], [0.777, [0.447, 0.553, 0.000]], [0.779, [0.439, 0.561, 0.000]], [0.781, [0.439, 0.561, 0.000]], [0.783, [0.431, 0.569, 0.000]], [0.785, [0.431, 0.569, 0.000]], [0.787, [0.424, 0.576, 0.000]], [0.789, [0.424, 0.576, 0.000]], [0.791, [0.416, 0.584, 0.000]], [0.793, [0.416, 0.584, 0.000]], [0.795, [0.408, 0.592, 0.000]], [0.796, [0.408, 0.592, 0.000]], [0.798, [0.400, 0.600, 0.000]], [0.800, [0.400, 0.600, 0.000]], [0.802, [0.392, 0.608, 0.000]], [0.804, [0.392, 0.608, 0.000]], [0.806, [0.384, 0.616, 0.000]], [0.808, [0.384, 0.616, 0.000]], [0.810, [0.376, 0.624, 0.000]], [0.812, [0.376, 0.624, 0.000]], [0.814, [0.369, 0.631, 0.000]], [0.816, [0.369, 0.631, 0.000]], [0.818, [0.361, 0.639, 0.000]], [0.820, [0.361, 0.639, 0.000]], [0.822, [0.353, 0.647, 0.000]], [0.824, [0.353, 0.647, 0.000]], [0.826, [0.345, 0.655, 0.000]], [0.828, [0.345, 0.655, 0.000]], [0.830, [0.337, 0.663, 0.000]], [0.832, [0.337, 0.663, 0.000]], [0.834, [0.329, 0.671, 0.000]], [0.836, [0.329, 0.671, 0.000]], [0.838, [0.322, 0.678, 0.000]], [0.840, [0.322, 0.678, 0.000]], [0.841, [0.314, 0.686, 0.000]], [0.843, [0.314, 0.686, 0.000]], [0.845, [0.306, 0.694, 0.000]], [0.847, [0.306, 0.694, 0.000]], [0.849, [0.298, 0.702, 0.000]], [0.851, [0.298, 0.702, 0.000]], [0.853, [0.290, 0.710, 0.000]], [0.855, [0.290, 0.710, 0.000]], [0.857, [0.282, 0.718, 0.000]], [0.859, [0.282, 0.718, 0.000]], [0.861, [0.275, 0.725, 0.000]], [0.863, [0.275, 0.725, 0.000]], [0.865, [0.267, 0.733, 0.000]], [0.867, [0.267, 0.733, 0.000]], [0.869, [0.259, 0.741, 0.000]], [0.871, [0.259, 0.741, 0.000]], [0.873, [0.251, 0.749, 0.000]], [0.875, [0.251, 0.749, 0.000]], [0.877, [0.243, 0.757, 0.000]], [0.879, [0.243, 0.757, 0.000]], [0.881, [0.235, 0.765, 0.000]], [0.883, [0.235, 0.765, 0.000]], [0.885, [0.227, 0.773, 0.000]], [0.886, [0.227, 0.773, 0.000]], [0.888, [0.220, 0.780, 0.000]], [0.890, [0.220, 0.780, 0.000]], [0.892, [0.212, 0.788, 0.000]], [0.894, [0.212, 0.788, 0.000]], [0.896, [0.204, 0.796, 0.000]], [0.898, [0.204, 0.796, 0.000]], [0.900, [0.196, 0.804, 0.000]], [0.902, [0.196, 0.804, 0.000]], [0.904, [0.188, 0.812, 0.000]], [0.906, [0.188, 0.812, 0.000]], [0.908, [0.180, 0.820, 0.000]], [0.910, [0.180, 0.820, 0.000]], [0.912, [0.173, 0.827, 0.000]], [0.914, [0.173, 0.827, 0.000]], [0.916, [0.165, 0.835, 0.000]], [0.918, [0.165, 0.835, 0.000]], [0.920, [0.157, 0.843, 0.000]], [0.922, [0.157, 0.843, 0.000]], [0.924, [0.149, 0.851, 0.000]], [0.926, [0.149, 0.851, 0.000]], [0.928, [0.141, 0.859, 0.000]], [0.930, [0.141, 0.859, 0.000]], [0.932, [0.133, 0.867, 0.000]], [0.933, [0.133, 0.867, 0.000]], [0.935, [0.125, 0.875, 0.000]], [0.937, [0.125, 0.875, 0.000]], [0.939, [0.118, 0.882, 0.000]], [0.941, [0.118, 0.882, 0.000]], [0.943, [0.110, 0.890, 0.000]], [0.945, [0.110, 0.890, 0.000]], [0.947, [0.102, 0.898, 0.000]], [0.949, [0.102, 0.898, 0.000]], [0.951, [0.094, 0.906, 0.000]], [0.953, [0.094, 0.906, 0.000]], [0.955, [0.086, 0.914, 0.000]], [0.957, [0.086, 0.914, 0.000]], [0.959, [0.078, 0.922, 0.000]], [0.961, [0.078, 0.922, 0.000]], [0.963, [0.071, 0.929, 0.000]], [0.965, [0.071, 0.929, 0.000]], [0.967, [0.063, 0.937, 0.000]], [0.969, [0.063, 0.937, 0.000]], [0.971, [0.055, 0.945, 0.000]], [0.973, [0.055, 0.945, 0.000]], [0.975, [0.047, 0.953, 0.000]], [0.977, [0.047, 0.953, 0.000]], [0.978, [0.039, 0.961, 0.000]], [0.980, [0.039, 0.961, 0.000]], [0.982, [0.031, 0.969, 0.000]], [0.984, [0.031, 0.969, 0.000]], [0.986, [0.024, 0.976, 0.000]], [0.988, [0.024, 0.976, 0.000]], [0.990, [0.016, 0.984, 0.000]], [0.992, [0.016, 0.984, 0.000]], [0.994, [0.008, 0.992, 0.000]], [0.996, [0.008, 0.992, 0.000]], [0.998, [0.000, 1.000, 0.000]], [1.000, [0.000, 1.000, 0.000]]];
+var cubehelix = [[0.000, [0.000, 0.000, 0.000]], [0.002, [0.000, 0.000, 0.000]], [0.004, [0.007, 0.002, 0.006]], [0.006, [0.007, 0.002, 0.006]], [0.008, [0.013, 0.004, 0.012]], [0.010, [0.013, 0.004, 0.012]], [0.012, [0.020, 0.007, 0.019]], [0.014, [0.020, 0.007, 0.019]], [0.016, [0.026, 0.009, 0.025]], [0.018, [0.026, 0.009, 0.025]], [0.020, [0.032, 0.011, 0.032]], [0.022, [0.032, 0.011, 0.032]], [0.023, [0.037, 0.014, 0.039]], [0.025, [0.037, 0.014, 0.039]], [0.027, [0.043, 0.016, 0.046]], [0.029, [0.043, 0.016, 0.046]], [0.031, [0.048, 0.019, 0.053]], [0.033, [0.048, 0.019, 0.053]], [0.035, [0.053, 0.021, 0.061]], [0.037, [0.053, 0.021, 0.061]], [0.039, [0.058, 0.024, 0.068]], [0.041, [0.058, 0.024, 0.068]], [0.043, [0.063, 0.027, 0.076]], [0.045, [0.063, 0.027, 0.076]], [0.047, [0.067, 0.030, 0.083]], [0.049, [0.067, 0.030, 0.083]], [0.051, [0.071, 0.033, 0.091]], [0.053, [0.071, 0.033, 0.091]], [0.055, [0.075, 0.036, 0.099]], [0.057, [0.075, 0.036, 0.099]], [0.059, [0.079, 0.040, 0.107]], [0.061, [0.079, 0.040, 0.107]], [0.063, [0.082, 0.043, 0.115]], [0.065, [0.082, 0.043, 0.115]], [0.067, [0.085, 0.047, 0.123]], [0.068, [0.085, 0.047, 0.123]], [0.070, [0.088, 0.051, 0.131]], [0.072, [0.088, 0.051, 0.131]], [0.074, [0.090, 0.054, 0.139]], [0.076, [0.090, 0.054, 0.139]], [0.078, [0.093, 0.058, 0.146]], [0.080, [0.093, 0.058, 0.146]], [0.082, [0.095, 0.063, 0.154]], [0.084, [0.095, 0.063, 0.154]], [0.086, [0.097, 0.067, 0.162]], [0.088, [0.097, 0.067, 0.162]], [0.090, [0.099, 0.071, 0.170]], [0.092, [0.099, 0.071, 0.170]], [0.094, [0.100, 0.076, 0.177]], [0.096, [0.100, 0.076, 0.177]], [0.098, [0.101, 0.080, 0.185]], [0.100, [0.101, 0.080, 0.185]], [0.102, [0.102, 0.085, 0.192]], [0.104, [0.102, 0.085, 0.192]], [0.106, [0.103, 0.090, 0.199]], [0.108, [0.103, 0.090, 0.199]], [0.110, [0.104, 0.095, 0.206]], [0.112, [0.104, 0.095, 0.206]], [0.114, [0.104, 0.100, 0.213]], [0.115, [0.104, 0.100, 0.213]], [0.117, [0.104, 0.105, 0.220]], [0.119, [0.104, 0.105, 0.220]], [0.121, [0.104, 0.111, 0.226]], [0.123, [0.104, 0.111, 0.226]], [0.125, [0.104, 0.116, 0.233]], [0.127, [0.104, 0.116, 0.233]], [0.129, [0.104, 0.122, 0.239]], [0.131, [0.104, 0.122, 0.239]], [0.133, [0.104, 0.128, 0.245]], [0.135, [0.104, 0.128, 0.245]], [0.137, [0.103, 0.134, 0.251]], [0.139, [0.103, 0.134, 0.251]], [0.141, [0.102, 0.140, 0.256]], [0.143, [0.102, 0.140, 0.256]], [0.145, [0.102, 0.146, 0.261]], [0.147, [0.102, 0.146, 0.261]], [0.149, [0.101, 0.152, 0.266]], [0.151, [0.101, 0.152, 0.266]], [0.153, [0.100, 0.158, 0.271]], [0.155, [0.100, 0.158, 0.271]], [0.157, [0.099, 0.164, 0.275]], [0.159, [0.099, 0.164, 0.275]], [0.160, [0.098, 0.171, 0.280]], [0.162, [0.098, 0.171, 0.280]], [0.164, [0.096, 0.177, 0.283]], [0.166, [0.096, 0.177, 0.283]], [0.168, [0.095, 0.184, 0.287]], [0.170, [0.095, 0.184, 0.287]], [0.172, [0.094, 0.190, 0.290]], [0.174, [0.094, 0.190, 0.290]], [0.176, [0.093, 0.197, 0.293]], [0.178, [0.093, 0.197, 0.293]], [0.180, [0.092, 0.204, 0.296]], [0.182, [0.092, 0.204, 0.296]], [0.184, [0.090, 0.211, 0.299]], [0.186, [0.090, 0.211, 0.299]], [0.188, [0.089, 0.218, 0.301]], [0.190, [0.089, 0.218, 0.301]], [0.192, [0.088, 0.224, 0.303]], [0.194, [0.088, 0.224, 0.303]], [0.196, [0.087, 0.231, 0.304]], [0.198, [0.087, 0.231, 0.304]], [0.200, [0.086, 0.238, 0.306]], [0.202, [0.086, 0.238, 0.306]], [0.204, [0.085, 0.245, 0.307]], [0.205, [0.085, 0.245, 0.307]], [0.207, [0.084, 0.252, 0.307]], [0.209, [0.084, 0.252, 0.307]], [0.211, [0.084, 0.259, 0.308]], [0.213, [0.084, 0.259, 0.308]], [0.215, [0.083, 0.266, 0.308]], [0.217, [0.083, 0.266, 0.308]], [0.219, [0.083, 0.273, 0.308]], [0.221, [0.083, 0.273, 0.308]], [0.223, [0.082, 0.280, 0.307]], [0.225, [0.082, 0.280, 0.307]], [0.227, [0.082, 0.287, 0.307]], [0.229, [0.082, 0.287, 0.307]], [0.231, [0.082, 0.293, 0.306]], [0.233, [0.082, 0.293, 0.306]], [0.235, [0.082, 0.300, 0.304]], [0.237, [0.082, 0.300, 0.304]], [0.239, [0.083, 0.307, 0.303]], [0.241, [0.083, 0.307, 0.303]], [0.243, [0.083, 0.314, 0.301]], [0.245, [0.083, 0.314, 0.301]], [0.247, [0.084, 0.320, 0.299]], [0.249, [0.084, 0.320, 0.299]], [0.250, [0.085, 0.327, 0.297]], [0.252, [0.085, 0.327, 0.297]], [0.254, [0.087, 0.333, 0.295]], [0.256, [0.087, 0.333, 0.295]], [0.258, [0.088, 0.339, 0.292]], [0.260, [0.088, 0.339, 0.292]], [0.262, [0.090, 0.346, 0.290]], [0.264, [0.090, 0.346, 0.290]], [0.266, [0.092, 0.352, 0.287]], [0.268, [0.092, 0.352, 0.287]], [0.270, [0.094, 0.358, 0.284]], [0.272, [0.094, 0.358, 0.284]], [0.274, [0.097, 0.364, 0.281]], [0.276, [0.097, 0.364, 0.281]], [0.278, [0.099, 0.370, 0.277]], [0.280, [0.099, 0.370, 0.277]], [0.282, [0.103, 0.375, 0.274]], [0.284, [0.103, 0.375, 0.274]], [0.286, [0.106, 0.381, 0.270]], [0.288, [0.106, 0.381, 0.270]], [0.290, [0.110, 0.386, 0.266]], [0.292, [0.110, 0.386, 0.266]], [0.294, [0.114, 0.392, 0.263]], [0.295, [0.114, 0.392, 0.263]], [0.297, [0.118, 0.397, 0.259]], [0.299, [0.118, 0.397, 0.259]], [0.301, [0.122, 0.402, 0.255]], [0.303, [0.122, 0.402, 0.255]], [0.305, [0.127, 0.407, 0.251]], [0.307, [0.127, 0.407, 0.251]], [0.309, [0.133, 0.412, 0.247]], [0.311, [0.133, 0.412, 0.247]], [0.313, [0.138, 0.416, 0.243]], [0.315, [0.138, 0.416, 0.243]], [0.317, [0.144, 0.421, 0.239]], [0.319, [0.144, 0.421, 0.239]], [0.321, [0.150, 0.425, 0.235]], [0.323, [0.150, 0.425, 0.235]], [0.325, [0.156, 0.429, 0.231]], [0.327, [0.156, 0.429, 0.231]], [0.329, [0.163, 0.433, 0.228]], [0.331, [0.163, 0.433, 0.228]], [0.333, [0.170, 0.437, 0.224]], [0.335, [0.170, 0.437, 0.224]], [0.337, [0.177, 0.440, 0.220]], [0.339, [0.177, 0.440, 0.220]], [0.341, [0.185, 0.444, 0.216]], [0.342, [0.185, 0.444, 0.216]], [0.344, [0.193, 0.447, 0.213]], [0.346, [0.193, 0.447, 0.213]], [0.348, [0.201, 0.450, 0.210]], [0.350, [0.201, 0.450, 0.210]], [0.352, [0.209, 0.453, 0.206]], [0.354, [0.209, 0.453, 0.206]], [0.356, [0.218, 0.456, 0.203]], [0.358, [0.218, 0.456, 0.203]], [0.360, [0.227, 0.459, 0.200]], [0.362, [0.227, 0.459, 0.200]], [0.364, [0.236, 0.461, 0.198]], [0.366, [0.236, 0.461, 0.198]], [0.368, [0.246, 0.463, 0.195]], [0.370, [0.246, 0.463, 0.195]], [0.372, [0.255, 0.466, 0.193]], [0.374, [0.255, 0.466, 0.193]], [0.376, [0.265, 0.468, 0.191]], [0.378, [0.265, 0.468, 0.191]], [0.380, [0.276, 0.469, 0.189]], [0.382, [0.276, 0.469, 0.189]], [0.384, [0.286, 0.471, 0.187]], [0.386, [0.286, 0.471, 0.187]], [0.387, [0.296, 0.473, 0.186]], [0.389, [0.296, 0.473, 0.186]], [0.391, [0.307, 0.474, 0.185]], [0.393, [0.307, 0.474, 0.185]], [0.395, [0.318, 0.475, 0.184]], [0.397, [0.318, 0.475, 0.184]], [0.399, [0.329, 0.476, 0.184]], [0.401, [0.329, 0.476, 0.184]], [0.403, [0.341, 0.477, 0.184]], [0.405, [0.341, 0.477, 0.184]], [0.407, [0.352, 0.478, 0.184]], [0.409, [0.352, 0.478, 0.184]], [0.411, [0.363, 0.479, 0.184]], [0.413, [0.363, 0.479, 0.184]], [0.415, [0.375, 0.479, 0.185]], [0.417, [0.375, 0.479, 0.185]], [0.419, [0.387, 0.480, 0.186]], [0.421, [0.387, 0.480, 0.186]], [0.423, [0.399, 0.480, 0.187]], [0.425, [0.399, 0.480, 0.187]], [0.427, [0.411, 0.480, 0.189]], [0.429, [0.411, 0.480, 0.189]], [0.431, [0.423, 0.481, 0.191]], [0.432, [0.423, 0.481, 0.191]], [0.434, [0.435, 0.481, 0.194]], [0.436, [0.435, 0.481, 0.194]], [0.438, [0.447, 0.481, 0.197]], [0.440, [0.447, 0.481, 0.197]], [0.442, [0.459, 0.481, 0.200]], [0.444, [0.459, 0.481, 0.200]], [0.446, [0.471, 0.480, 0.203]], [0.448, [0.471, 0.480, 0.203]], [0.450, [0.483, 0.480, 0.207]], [0.452, [0.483, 0.480, 0.207]], [0.454, [0.495, 0.480, 0.211]], [0.456, [0.495, 0.480, 0.211]], [0.458, [0.507, 0.480, 0.216]], [0.460, [0.507, 0.480, 0.216]], [0.462, [0.519, 0.479, 0.221]], [0.464, [0.519, 0.479, 0.221]], [0.466, [0.531, 0.479, 0.227]], [0.468, [0.531, 0.479, 0.227]], [0.470, [0.543, 0.478, 0.232]], [0.472, [0.543, 0.478, 0.232]], [0.474, [0.554, 0.478, 0.238]], [0.476, [0.554, 0.478, 0.238]], [0.477, [0.566, 0.477, 0.245]], [0.479, [0.566, 0.477, 0.245]], [0.481, [0.578, 0.477, 0.252]], [0.483, [0.578, 0.477, 0.252]], [0.485, [0.589, 0.476, 0.259]], [0.487, [0.589, 0.476, 0.259]], [0.489, [0.600, 0.476, 0.266]], [0.491, [0.600, 0.476, 0.266]], [0.493, [0.611, 0.476, 0.274]], [0.495, [0.611, 0.476, 0.274]], [0.497, [0.622, 0.475, 0.282]], [0.499, [0.622, 0.475, 0.282]], [0.501, [0.633, 0.475, 0.291]], [0.503, [0.633, 0.475, 0.291]], [0.505, [0.643, 0.474, 0.299]], [0.507, [0.643, 0.474, 0.299]], [0.509, [0.654, 0.474, 0.309]], [0.511, [0.654, 0.474, 0.309]], [0.513, [0.664, 0.474, 0.318]], [0.515, [0.664, 0.474, 0.318]], [0.517, [0.674, 0.474, 0.328]], [0.519, [0.674, 0.474, 0.328]], [0.521, [0.683, 0.474, 0.338]], [0.523, [0.683, 0.474, 0.338]], [0.524, [0.693, 0.474, 0.348]], [0.526, [0.693, 0.474, 0.348]], [0.528, [0.702, 0.474, 0.358]], [0.530, [0.702, 0.474, 0.358]], [0.532, [0.711, 0.474, 0.369]], [0.534, [0.711, 0.474, 0.369]], [0.536, [0.719, 0.474, 0.380]], [0.538, [0.719, 0.474, 0.380]], [0.540, [0.727, 0.474, 0.391]], [0.542, [0.727, 0.474, 0.391]], [0.544, [0.735, 0.475, 0.403]], [0.546, [0.735, 0.475, 0.403]], [0.548, [0.743, 0.475, 0.414]], [0.550, [0.743, 0.475, 0.414]], [0.552, [0.751, 0.476, 0.426]], [0.554, [0.751, 0.476, 0.426]], [0.556, [0.758, 0.477, 0.438]], [0.558, [0.758, 0.477, 0.438]], [0.560, [0.764, 0.478, 0.450]], [0.562, [0.764, 0.478, 0.450]], [0.564, [0.771, 0.479, 0.462]], [0.566, [0.771, 0.479, 0.462]], [0.568, [0.777, 0.480, 0.474]], [0.569, [0.777, 0.480, 0.474]], [0.571, [0.783, 0.482, 0.487]], [0.573, [0.783, 0.482, 0.487]], [0.575, [0.788, 0.483, 0.499]], [0.577, [0.788, 0.483, 0.499]], [0.579, [0.794, 0.485, 0.512]], [0.581, [0.794, 0.485, 0.512]], [0.583, [0.798, 0.487, 0.524]], [0.585, [0.798, 0.487, 0.524]], [0.587, [0.803, 0.489, 0.537]], [0.589, [0.803, 0.489, 0.537]], [0.591, [0.807, 0.491, 0.550]], [0.593, [0.807, 0.491, 0.550]], [0.595, [0.811, 0.493, 0.563]], [0.597, [0.811, 0.493, 0.563]], [0.599, [0.815, 0.495, 0.575]], [0.601, [0.815, 0.495, 0.575]], [0.603, [0.818, 0.498, 0.588]], [0.605, [0.818, 0.498, 0.588]], [0.607, [0.821, 0.501, 0.601]], [0.609, [0.821, 0.501, 0.601]], [0.611, [0.823, 0.504, 0.613]], [0.613, [0.823, 0.504, 0.613]], [0.614, [0.826, 0.507, 0.626]], [0.616, [0.826, 0.507, 0.626]], [0.618, [0.828, 0.510, 0.638]], [0.620, [0.828, 0.510, 0.638]], [0.622, [0.829, 0.514, 0.651]], [0.624, [0.829, 0.514, 0.651]], [0.626, [0.831, 0.518, 0.663]], [0.628, [0.831, 0.518, 0.663]], [0.630, [0.832, 0.521, 0.675]], [0.632, [0.832, 0.521, 0.675]], [0.634, [0.833, 0.525, 0.687]], [0.636, [0.833, 0.525, 0.687]], [0.638, [0.833, 0.530, 0.699]], [0.640, [0.833, 0.530, 0.699]], [0.642, [0.833, 0.534, 0.710]], [0.644, [0.833, 0.534, 0.710]], [0.646, [0.833, 0.538, 0.722]], [0.648, [0.833, 0.538, 0.722]], [0.650, [0.833, 0.543, 0.733]], [0.652, [0.833, 0.543, 0.733]], [0.654, [0.833, 0.548, 0.744]], [0.656, [0.833, 0.548, 0.744]], [0.658, [0.832, 0.553, 0.755]], [0.659, [0.832, 0.553, 0.755]], [0.661, [0.831, 0.558, 0.766]], [0.663, [0.831, 0.558, 0.766]], [0.665, [0.830, 0.563, 0.776]], [0.667, [0.830, 0.563, 0.776]], [0.669, [0.829, 0.569, 0.786]], [0.671, [0.829, 0.569, 0.786]], [0.673, [0.827, 0.574, 0.796]], [0.675, [0.827, 0.574, 0.796]], [0.677, [0.825, 0.580, 0.806]], [0.679, [0.825, 0.580, 0.806]], [0.681, [0.824, 0.586, 0.815]], [0.683, [0.824, 0.586, 0.815]], [0.685, [0.822, 0.592, 0.824]], [0.687, [0.822, 0.592, 0.824]], [0.689, [0.819, 0.598, 0.833]], [0.691, [0.819, 0.598, 0.833]], [0.693, [0.817, 0.604, 0.842]], [0.695, [0.817, 0.604, 0.842]], [0.697, [0.815, 0.610, 0.850]], [0.699, [0.815, 0.610, 0.850]], [0.701, [0.812, 0.617, 0.858]], [0.703, [0.812, 0.617, 0.858]], [0.705, [0.810, 0.623, 0.865]], [0.706, [0.810, 0.623, 0.865]], [0.708, [0.807, 0.630, 0.873]], [0.710, [0.807, 0.630, 0.873]], [0.712, [0.805, 0.637, 0.880]], [0.714, [0.805, 0.637, 0.880]], [0.716, [0.802, 0.643, 0.886]], [0.718, [0.802, 0.643, 0.886]], [0.720, [0.799, 0.650, 0.893]], [0.722, [0.799, 0.650, 0.893]], [0.724, [0.796, 0.657, 0.899]], [0.726, [0.796, 0.657, 0.899]], [0.728, [0.794, 0.664, 0.904]], [0.730, [0.794, 0.664, 0.904]], [0.732, [0.791, 0.671, 0.910]], [0.734, [0.791, 0.671, 0.910]], [0.736, [0.788, 0.678, 0.915]], [0.738, [0.788, 0.678, 0.915]], [0.740, [0.786, 0.685, 0.919]], [0.742, [0.786, 0.685, 0.919]], [0.744, [0.783, 0.693, 0.924]], [0.746, [0.783, 0.693, 0.924]], [0.748, [0.780, 0.700, 0.928]], [0.750, [0.780, 0.700, 0.928]], [0.751, [0.778, 0.707, 0.931]], [0.753, [0.778, 0.707, 0.931]], [0.755, [0.776, 0.714, 0.935]], [0.757, [0.776, 0.714, 0.935]], [0.759, [0.773, 0.721, 0.938]], [0.761, [0.773, 0.721, 0.938]], [0.763, [0.771, 0.729, 0.941]], [0.765, [0.771, 0.729, 0.941]], [0.767, [0.769, 0.736, 0.943]], [0.769, [0.769, 0.736, 0.943]], [0.771, [0.767, 0.743, 0.946]], [0.773, [0.767, 0.743, 0.946]], [0.775, [0.765, 0.750, 0.948]], [0.777, [0.765, 0.750, 0.948]], [0.779, [0.764, 0.757, 0.949]], [0.781, [0.764, 0.757, 0.949]], [0.783, [0.762, 0.764, 0.951]], [0.785, [0.762, 0.764, 0.951]], [0.787, [0.761, 0.771, 0.952]], [0.789, [0.761, 0.771, 0.952]], [0.791, [0.760, 0.778, 0.953]], [0.793, [0.760, 0.778, 0.953]], [0.795, [0.759, 0.785, 0.954]], [0.796, [0.759, 0.785, 0.954]], [0.798, [0.759, 0.792, 0.954]], [0.800, [0.759, 0.792, 0.954]], [0.802, [0.758, 0.799, 0.955]], [0.804, [0.758, 0.799, 0.955]], [0.806, [0.758, 0.806, 0.955]], [0.808, [0.758, 0.806, 0.955]], [0.810, [0.758, 0.812, 0.955]], [0.812, [0.758, 0.812, 0.955]], [0.814, [0.758, 0.819, 0.955]], [0.816, [0.758, 0.819, 0.955]], [0.818, [0.759, 0.825, 0.954]], [0.820, [0.759, 0.825, 0.954]], [0.822, [0.760, 0.832, 0.954]], [0.824, [0.760, 0.832, 0.954]], [0.826, [0.761, 0.838, 0.953]], [0.828, [0.761, 0.838, 0.953]], [0.830, [0.762, 0.844, 0.952]], [0.832, [0.762, 0.844, 0.952]], [0.834, [0.763, 0.850, 0.952]], [0.836, [0.763, 0.850, 0.952]], [0.838, [0.765, 0.856, 0.951]], [0.840, [0.765, 0.856, 0.951]], [0.841, [0.767, 0.862, 0.950]], [0.843, [0.767, 0.862, 0.950]], [0.845, [0.769, 0.868, 0.949]], [0.847, [0.769, 0.868, 0.949]], [0.849, [0.772, 0.873, 0.947]], [0.851, [0.772, 0.873, 0.947]], [0.853, [0.775, 0.879, 0.946]], [0.855, [0.775, 0.879, 0.946]], [0.857, [0.778, 0.884, 0.945]], [0.859, [0.778, 0.884, 0.945]], [0.861, [0.781, 0.889, 0.944]], [0.863, [0.781, 0.889, 0.944]], [0.865, [0.784, 0.894, 0.943]], [0.867, [0.784, 0.894, 0.943]], [0.869, [0.788, 0.899, 0.942]], [0.871, [0.788, 0.899, 0.942]], [0.873, [0.792, 0.904, 0.941]], [0.875, [0.792, 0.904, 0.941]], [0.877, [0.796, 0.909, 0.940]], [0.879, [0.796, 0.909, 0.940]], [0.881, [0.801, 0.913, 0.939]], [0.883, [0.801, 0.913, 0.939]], [0.885, [0.806, 0.918, 0.938]], [0.886, [0.806, 0.918, 0.938]], [0.888, [0.811, 0.922, 0.937]], [0.890, [0.811, 0.922, 0.937]], [0.892, [0.816, 0.926, 0.937]], [0.894, [0.816, 0.926, 0.937]], [0.896, [0.821, 0.930, 0.936]], [0.898, [0.821, 0.930, 0.936]], [0.900, [0.827, 0.934, 0.936]], [0.902, [0.827, 0.934, 0.936]], [0.904, [0.833, 0.938, 0.936]], [0.906, [0.833, 0.938, 0.936]], [0.908, [0.839, 0.941, 0.936]], [0.910, [0.839, 0.941, 0.936]], [0.912, [0.845, 0.945, 0.936]], [0.914, [0.845, 0.945, 0.936]], [0.916, [0.851, 0.948, 0.936]], [0.918, [0.851, 0.948, 0.936]], [0.920, [0.857, 0.951, 0.937]], [0.922, [0.857, 0.951, 0.937]], [0.924, [0.864, 0.954, 0.938]], [0.926, [0.864, 0.954, 0.938]], [0.928, [0.871, 0.957, 0.939]], [0.930, [0.871, 0.957, 0.939]], [0.932, [0.878, 0.960, 0.940]], [0.933, [0.878, 0.960, 0.940]], [0.935, [0.885, 0.963, 0.941]], [0.937, [0.885, 0.963, 0.941]], [0.939, [0.892, 0.966, 0.943]], [0.941, [0.892, 0.966, 0.943]], [0.943, [0.899, 0.969, 0.945]], [0.945, [0.899, 0.969, 0.945]], [0.947, [0.906, 0.971, 0.947]], [0.949, [0.906, 0.971, 0.947]], [0.951, [0.913, 0.974, 0.949]], [0.953, [0.913, 0.974, 0.949]], [0.955, [0.921, 0.976, 0.952]], [0.957, [0.921, 0.976, 0.952]], [0.959, [0.928, 0.979, 0.955]], [0.961, [0.928, 0.979, 0.955]], [0.963, [0.935, 0.981, 0.958]], [0.965, [0.935, 0.981, 0.958]], [0.967, [0.943, 0.983, 0.962]], [0.969, [0.943, 0.983, 0.962]], [0.971, [0.950, 0.985, 0.966]], [0.973, [0.950, 0.985, 0.966]], [0.975, [0.957, 0.987, 0.970]], [0.977, [0.957, 0.987, 0.970]], [0.978, [0.965, 0.990, 0.974]], [0.980, [0.965, 0.990, 0.974]], [0.982, [0.972, 0.992, 0.979]], [0.984, [0.972, 0.992, 0.979]], [0.986, [0.979, 0.994, 0.984]], [0.988, [0.979, 0.994, 0.984]], [0.990, [0.986, 0.996, 0.989]], [0.992, [0.986, 0.996, 0.989]], [0.994, [0.993, 0.998, 0.994]], [0.996, [0.993, 0.998, 0.994]], [0.998, [1.000, 1.000, 1.000]], [1.000, [1.000, 1.000, 1.000]]];
+var flag = [[0.000, [1.000, 0.000, 0.000]], [0.002, [1.000, 0.000, 0.000]], [0.004, [1.000, 0.378, 0.210]], [0.006, [1.000, 0.378, 0.210]], [0.008, [1.000, 0.701, 0.493]], [0.010, [1.000, 0.701, 0.493]], [0.012, [1.000, 0.918, 0.777]], [0.014, [1.000, 0.918, 0.777]], [0.016, [1.000, 1.000, 1.000]], [0.018, [1.000, 1.000, 1.000]], [0.020, [0.803, 0.932, 1.000]], [0.022, [0.803, 0.932, 1.000]], [0.023, [0.521, 0.726, 1.000]], [0.025, [0.521, 0.726, 1.000]], [0.027, [0.236, 0.412, 1.000]], [0.029, [0.236, 0.412, 1.000]], [0.031, [0.000, 0.037, 1.000]], [0.033, [0.000, 0.037, 1.000]], [0.035, [0.000, 0.000, 0.816]], [0.037, [0.000, 0.000, 0.816]], [0.039, [0.000, 0.000, 0.535]], [0.041, [0.000, 0.000, 0.535]], [0.043, [0.000, 0.000, 0.249]], [0.045, [0.000, 0.000, 0.249]], [0.047, [0.000, 0.000, 0.000]], [0.049, [0.000, 0.000, 0.000]], [0.051, [0.172, 0.000, 0.000]], [0.053, [0.172, 0.000, 0.000]], [0.055, [0.452, 0.000, 0.000]], [0.057, [0.452, 0.000, 0.000]], [0.059, [0.738, 0.000, 0.000]], [0.061, [0.738, 0.000, 0.000]], [0.063, [0.990, 0.000, 0.000]], [0.065, [0.990, 0.000, 0.000]], [0.067, [1.000, 0.309, 0.160]], [0.068, [1.000, 0.309, 0.160]], [0.070, [1.000, 0.646, 0.438]], [0.072, [1.000, 0.646, 0.438]], [0.074, [1.000, 0.887, 0.725]], [0.076, [1.000, 0.887, 0.725]], [0.078, [1.000, 0.996, 0.979]], [0.080, [1.000, 0.996, 0.979]], [0.082, [0.853, 0.957, 1.000]], [0.084, [0.853, 0.957, 1.000]], [0.086, [0.576, 0.775, 1.000]], [0.088, [0.576, 0.775, 1.000]], [0.090, [0.288, 0.479, 1.000]], [0.092, [0.288, 0.479, 1.000]], [0.094, [0.032, 0.111, 1.000]], [0.096, [0.032, 0.111, 1.000]], [0.098, [0.000, 0.000, 0.865]], [0.100, [0.000, 0.000, 0.865]], [0.102, [0.000, 0.000, 0.590]], [0.104, [0.000, 0.000, 0.590]], [0.106, [0.000, 0.000, 0.301]], [0.108, [0.000, 0.000, 0.301]], [0.110, [0.000, 0.000, 0.043]], [0.112, [0.000, 0.000, 0.043]], [0.114, [0.123, 0.000, 0.000]], [0.115, [0.123, 0.000, 0.000]], [0.117, [0.396, 0.000, 0.000]], [0.119, [0.396, 0.000, 0.000]], [0.121, [0.685, 0.000, 0.000]], [0.123, [0.685, 0.000, 0.000]], [0.125, [0.946, 0.000, 0.000]], [0.127, [0.946, 0.000, 0.000]], [0.129, [1.000, 0.238, 0.111]], [0.131, [1.000, 0.238, 0.111]], [0.133, [1.000, 0.588, 0.383]], [0.135, [1.000, 0.588, 0.383]], [0.137, [1.000, 0.850, 0.672]], [0.139, [1.000, 0.850, 0.672]], [0.141, [1.000, 0.986, 0.935]], [0.143, [1.000, 0.986, 0.935]], [0.145, [0.901, 0.976, 1.000]], [0.147, [0.901, 0.976, 1.000]], [0.149, [0.631, 0.820, 1.000]], [0.151, [0.631, 0.820, 1.000]], [0.153, [0.342, 0.542, 1.000]], [0.155, [0.342, 0.542, 1.000]], [0.157, [0.076, 0.184, 1.000]], [0.159, [0.076, 0.184, 1.000]], [0.160, [0.000, 0.000, 0.912]], [0.162, [0.000, 0.000, 0.912]], [0.164, [0.000, 0.000, 0.645]], [0.166, [0.000, 0.000, 0.645]], [0.168, [0.000, 0.000, 0.355]], [0.170, [0.000, 0.000, 0.355]], [0.172, [0.000, 0.000, 0.088]], [0.174, [0.000, 0.000, 0.088]], [0.176, [0.076, 0.000, 0.000]], [0.178, [0.076, 0.000, 0.000]], [0.180, [0.342, 0.000, 0.000]], [0.182, [0.342, 0.000, 0.000]], [0.184, [0.631, 0.000, 0.000]], [0.186, [0.631, 0.000, 0.000]], [0.188, [0.901, 0.000, 0.000]], [0.190, [0.901, 0.000, 0.000]], [0.192, [1.000, 0.166, 0.065]], [0.194, [1.000, 0.166, 0.065]], [0.196, [1.000, 0.526, 0.328]], [0.198, [1.000, 0.526, 0.328]], [0.200, [1.000, 0.809, 0.617]], [0.202, [1.000, 0.809, 0.617]], [0.204, [1.000, 0.971, 0.889]], [0.205, [1.000, 0.971, 0.889]], [0.207, [0.946, 0.989, 1.000]], [0.209, [0.946, 0.989, 1.000]], [0.211, [0.685, 0.860, 1.000]], [0.213, [0.685, 0.860, 1.000]], [0.215, [0.396, 0.603, 1.000]], [0.217, [0.396, 0.603, 1.000]], [0.219, [0.123, 0.256, 1.000]], [0.221, [0.123, 0.256, 1.000]], [0.223, [0.000, 0.000, 0.957]], [0.225, [0.000, 0.000, 0.957]], [0.227, [0.000, 0.000, 0.699]], [0.229, [0.000, 0.000, 0.699]], [0.231, [0.000, 0.000, 0.410]], [0.233, [0.000, 0.000, 0.410]], [0.235, [0.000, 0.000, 0.135]], [0.237, [0.000, 0.000, 0.135]], [0.239, [0.032, 0.000, 0.000]], [0.241, [0.032, 0.000, 0.000]], [0.243, [0.288, 0.000, 0.000]], [0.245, [0.288, 0.000, 0.000]], [0.247, [0.576, 0.000, 0.000]], [0.249, [0.576, 0.000, 0.000]], [0.250, [0.853, 0.000, 0.000]], [0.252, [0.853, 0.000, 0.000]], [0.254, [1.000, 0.092, 0.021]], [0.256, [1.000, 0.092, 0.021]], [0.258, [1.000, 0.462, 0.275]], [0.260, [1.000, 0.462, 0.275]], [0.262, [1.000, 0.763, 0.562]], [0.264, [1.000, 0.763, 0.562]], [0.266, [1.000, 0.951, 0.840]], [0.268, [1.000, 0.951, 0.840]], [0.270, [0.990, 0.997, 1.000]], [0.272, [0.990, 0.997, 1.000]], [0.274, [0.738, 0.895, 1.000]], [0.276, [0.738, 0.895, 1.000]], [0.278, [0.452, 0.660, 1.000]], [0.280, [0.452, 0.660, 1.000]], [0.282, [0.172, 0.327, 1.000]], [0.284, [0.172, 0.327, 1.000]], [0.286, [0.000, 0.000, 1.000]], [0.288, [0.000, 0.000, 1.000]], [0.290, [0.000, 0.000, 0.751]], [0.292, [0.000, 0.000, 0.751]], [0.294, [0.000, 0.000, 0.465]], [0.295, [0.000, 0.000, 0.465]], [0.297, [0.000, 0.000, 0.184]], [0.299, [0.000, 0.000, 0.184]], [0.301, [0.000, 0.000, 0.000]], [0.303, [0.000, 0.000, 0.000]], [0.305, [0.236, 0.000, 0.000]], [0.307, [0.236, 0.000, 0.000]], [0.309, [0.521, 0.000, 0.000]], [0.311, [0.521, 0.000, 0.000]], [0.313, [0.803, 0.000, 0.000]], [0.315, [0.803, 0.000, 0.000]], [0.317, [1.000, 0.018, 0.000]], [0.319, [1.000, 0.018, 0.000]], [0.321, [1.000, 0.395, 0.223]], [0.323, [1.000, 0.395, 0.223]], [0.325, [1.000, 0.714, 0.507]], [0.327, [1.000, 0.714, 0.507]], [0.329, [1.000, 0.926, 0.790]], [0.331, [1.000, 0.926, 0.790]], [0.333, [1.000, 1.000, 1.000]], [0.335, [1.000, 1.000, 1.000]], [0.337, [0.790, 0.926, 1.000]], [0.339, [0.790, 0.926, 1.000]], [0.341, [0.507, 0.714, 1.000]], [0.342, [0.507, 0.714, 1.000]], [0.344, [0.223, 0.395, 1.000]], [0.346, [0.223, 0.395, 1.000]], [0.348, [0.000, 0.018, 1.000]], [0.350, [0.000, 0.018, 1.000]], [0.352, [0.000, 0.000, 0.803]], [0.354, [0.000, 0.000, 0.803]], [0.356, [0.000, 0.000, 0.521]], [0.358, [0.000, 0.000, 0.521]], [0.360, [0.000, 0.000, 0.236]], [0.362, [0.000, 0.000, 0.236]], [0.364, [0.000, 0.000, 0.000]], [0.366, [0.000, 0.000, 0.000]], [0.368, [0.184, 0.000, 0.000]], [0.370, [0.184, 0.000, 0.000]], [0.372, [0.465, 0.000, 0.000]], [0.374, [0.465, 0.000, 0.000]], [0.376, [0.751, 0.000, 0.000]], [0.378, [0.751, 0.000, 0.000]], [0.380, [1.000, 0.000, 0.000]], [0.382, [1.000, 0.000, 0.000]], [0.384, [1.000, 0.327, 0.172]], [0.386, [1.000, 0.327, 0.172]], [0.387, [1.000, 0.660, 0.452]], [0.389, [1.000, 0.660, 0.452]], [0.391, [1.000, 0.895, 0.738]], [0.393, [1.000, 0.895, 0.738]], [0.395, [1.000, 0.997, 0.990]], [0.397, [1.000, 0.997, 0.990]], [0.399, [0.840, 0.951, 1.000]], [0.401, [0.840, 0.951, 1.000]], [0.403, [0.562, 0.763, 1.000]], [0.405, [0.562, 0.763, 1.000]], [0.407, [0.275, 0.462, 1.000]], [0.409, [0.275, 0.462, 1.000]], [0.411, [0.021, 0.092, 1.000]], [0.413, [0.021, 0.092, 1.000]], [0.415, [0.000, 0.000, 0.853]], [0.417, [0.000, 0.000, 0.853]], [0.419, [0.000, 0.000, 0.576]], [0.421, [0.000, 0.000, 0.576]], [0.423, [0.000, 0.000, 0.288]], [0.425, [0.000, 0.000, 0.288]], [0.427, [0.000, 0.000, 0.032]], [0.429, [0.000, 0.000, 0.032]], [0.431, [0.135, 0.000, 0.000]], [0.432, [0.135, 0.000, 0.000]], [0.434, [0.410, 0.000, 0.000]], [0.436, [0.410, 0.000, 0.000]], [0.438, [0.699, 0.000, 0.000]], [0.440, [0.699, 0.000, 0.000]], [0.442, [0.957, 0.000, 0.000]], [0.444, [0.957, 0.000, 0.000]], [0.446, [1.000, 0.256, 0.123]], [0.448, [1.000, 0.256, 0.123]], [0.450, [1.000, 0.603, 0.396]], [0.452, [1.000, 0.603, 0.396]], [0.454, [1.000, 0.860, 0.685]], [0.456, [1.000, 0.860, 0.685]], [0.458, [1.000, 0.989, 0.946]], [0.460, [1.000, 0.989, 0.946]], [0.462, [0.889, 0.971, 1.000]], [0.464, [0.889, 0.971, 1.000]], [0.466, [0.617, 0.809, 1.000]], [0.468, [0.617, 0.809, 1.000]], [0.470, [0.328, 0.526, 1.000]], [0.472, [0.328, 0.526, 1.000]], [0.474, [0.065, 0.166, 1.000]], [0.476, [0.065, 0.166, 1.000]], [0.477, [0.000, 0.000, 0.901]], [0.479, [0.000, 0.000, 0.901]], [0.481, [0.000, 0.000, 0.631]], [0.483, [0.000, 0.000, 0.631]], [0.485, [0.000, 0.000, 0.342]], [0.487, [0.000, 0.000, 0.342]], [0.489, [0.000, 0.000, 0.076]], [0.491, [0.000, 0.000, 0.076]], [0.493, [0.088, 0.000, 0.000]], [0.495, [0.088, 0.000, 0.000]], [0.497, [0.355, 0.000, 0.000]], [0.499, [0.355, 0.000, 0.000]], [0.501, [0.645, 0.000, 0.000]], [0.503, [0.645, 0.000, 0.000]], [0.505, [0.912, 0.000, 0.000]], [0.507, [0.912, 0.000, 0.000]], [0.509, [1.000, 0.184, 0.076]], [0.511, [1.000, 0.184, 0.076]], [0.513, [1.000, 0.542, 0.342]], [0.515, [1.000, 0.542, 0.342]], [0.517, [1.000, 0.820, 0.631]], [0.519, [1.000, 0.820, 0.631]], [0.521, [1.000, 0.976, 0.901]], [0.523, [1.000, 0.976, 0.901]], [0.524, [0.935, 0.986, 1.000]], [0.526, [0.935, 0.986, 1.000]], [0.528, [0.672, 0.850, 1.000]], [0.530, [0.672, 0.850, 1.000]], [0.532, [0.383, 0.588, 1.000]], [0.534, [0.383, 0.588, 1.000]], [0.536, [0.111, 0.238, 1.000]], [0.538, [0.111, 0.238, 1.000]], [0.540, [0.000, 0.000, 0.946]], [0.542, [0.000, 0.000, 0.946]], [0.544, [0.000, 0.000, 0.685]], [0.546, [0.000, 0.000, 0.685]], [0.548, [0.000, 0.000, 0.396]], [0.550, [0.000, 0.000, 0.396]], [0.552, [0.000, 0.000, 0.123]], [0.554, [0.000, 0.000, 0.123]], [0.556, [0.043, 0.000, 0.000]], [0.558, [0.043, 0.000, 0.000]], [0.560, [0.301, 0.000, 0.000]], [0.562, [0.301, 0.000, 0.000]], [0.564, [0.590, 0.000, 0.000]], [0.566, [0.590, 0.000, 0.000]], [0.568, [0.865, 0.000, 0.000]], [0.569, [0.865, 0.000, 0.000]], [0.571, [1.000, 0.111, 0.032]], [0.573, [1.000, 0.111, 0.032]], [0.575, [1.000, 0.479, 0.288]], [0.577, [1.000, 0.479, 0.288]], [0.579, [1.000, 0.775, 0.576]], [0.581, [1.000, 0.775, 0.576]], [0.583, [1.000, 0.957, 0.853]], [0.585, [1.000, 0.957, 0.853]], [0.587, [0.979, 0.996, 1.000]], [0.589, [0.979, 0.996, 1.000]], [0.591, [0.725, 0.887, 1.000]], [0.593, [0.725, 0.887, 1.000]], [0.595, [0.438, 0.646, 1.000]], [0.597, [0.438, 0.646, 1.000]], [0.599, [0.160, 0.309, 1.000]], [0.601, [0.160, 0.309, 1.000]], [0.603, [0.000, 0.000, 0.990]], [0.605, [0.000, 0.000, 0.990]], [0.607, [0.000, 0.000, 0.738]], [0.609, [0.000, 0.000, 0.738]], [0.611, [0.000, 0.000, 0.452]], [0.613, [0.000, 0.000, 0.452]], [0.614, [0.000, 0.000, 0.172]], [0.616, [0.000, 0.000, 0.172]], [0.618, [0.000, 0.000, 0.000]], [0.620, [0.000, 0.000, 0.000]], [0.622, [0.249, 0.000, 0.000]], [0.624, [0.249, 0.000, 0.000]], [0.626, [0.535, 0.000, 0.000]], [0.628, [0.535, 0.000, 0.000]], [0.630, [0.816, 0.000, 0.000]], [0.632, [0.816, 0.000, 0.000]], [0.634, [1.000, 0.037, 0.000]], [0.636, [1.000, 0.037, 0.000]], [0.638, [1.000, 0.412, 0.236]], [0.640, [1.000, 0.412, 0.236]], [0.642, [1.000, 0.726, 0.521]], [0.644, [1.000, 0.726, 0.521]], [0.646, [1.000, 0.932, 0.803]], [0.648, [1.000, 0.932, 0.803]], [0.650, [1.000, 1.000, 1.000]], [0.652, [1.000, 1.000, 1.000]], [0.654, [0.777, 0.918, 1.000]], [0.656, [0.777, 0.918, 1.000]], [0.658, [0.493, 0.701, 1.000]], [0.659, [0.493, 0.701, 1.000]], [0.661, [0.210, 0.378, 1.000]], [0.663, [0.210, 0.378, 1.000]], [0.665, [0.000, 0.000, 1.000]], [0.667, [0.000, 0.000, 1.000]], [0.669, [0.000, 0.000, 0.790]], [0.671, [0.000, 0.000, 0.790]], [0.673, [0.000, 0.000, 0.507]], [0.675, [0.000, 0.000, 0.507]], [0.677, [0.000, 0.000, 0.223]], [0.679, [0.000, 0.000, 0.223]], [0.681, [0.000, 0.000, 0.000]], [0.683, [0.000, 0.000, 0.000]], [0.685, [0.197, 0.000, 0.000]], [0.687, [0.197, 0.000, 0.000]], [0.689, [0.479, 0.000, 0.000]], [0.691, [0.479, 0.000, 0.000]], [0.693, [0.764, 0.000, 0.000]], [0.695, [0.764, 0.000, 0.000]], [0.697, [1.000, 0.000, 0.000]], [0.699, [1.000, 0.000, 0.000]], [0.701, [1.000, 0.344, 0.184]], [0.703, [1.000, 0.344, 0.184]], [0.705, [1.000, 0.674, 0.465]], [0.706, [1.000, 0.674, 0.465]], [0.708, [1.000, 0.903, 0.751]], [0.710, [1.000, 0.903, 0.751]], [0.712, [1.000, 0.998, 1.000]], [0.714, [1.000, 0.998, 1.000]], [0.716, [0.828, 0.945, 1.000]], [0.718, [0.828, 0.945, 1.000]], [0.720, [0.548, 0.751, 1.000]], [0.722, [0.548, 0.751, 1.000]], [0.724, [0.262, 0.446, 1.000]], [0.726, [0.262, 0.446, 1.000]], [0.728, [0.010, 0.074, 1.000]], [0.730, [0.010, 0.074, 1.000]], [0.732, [0.000, 0.000, 0.840]], [0.734, [0.000, 0.000, 0.840]], [0.736, [0.000, 0.000, 0.562]], [0.738, [0.000, 0.000, 0.562]], [0.740, [0.000, 0.000, 0.275]], [0.742, [0.000, 0.000, 0.275]], [0.744, [0.000, 0.000, 0.021]], [0.746, [0.000, 0.000, 0.021]], [0.748, [0.147, 0.000, 0.000]], [0.750, [0.147, 0.000, 0.000]], [0.751, [0.424, 0.000, 0.000]], [0.753, [0.424, 0.000, 0.000]], [0.755, [0.712, 0.000, 0.000]], [0.757, [0.712, 0.000, 0.000]], [0.759, [0.968, 0.000, 0.000]], [0.761, [0.968, 0.000, 0.000]], [0.763, [1.000, 0.274, 0.135]], [0.765, [1.000, 0.274, 0.135]], [0.767, [1.000, 0.617, 0.410]], [0.769, [1.000, 0.617, 0.410]], [0.771, [1.000, 0.869, 0.699]], [0.773, [1.000, 0.869, 0.699]], [0.775, [1.000, 0.992, 0.957]], [0.777, [1.000, 0.992, 0.957]], [0.779, [0.877, 0.967, 1.000]], [0.781, [0.877, 0.967, 1.000]], [0.783, [0.604, 0.798, 1.000]], [0.785, [0.604, 0.798, 1.000]], [0.787, [0.315, 0.511, 1.000]], [0.789, [0.315, 0.511, 1.000]], [0.791, [0.054, 0.147, 1.000]], [0.793, [0.054, 0.147, 1.000]], [0.795, [0.000, 0.000, 0.889]], [0.796, [0.000, 0.000, 0.889]], [0.798, [0.000, 0.000, 0.617]], [0.800, [0.000, 0.000, 0.617]], [0.802, [0.000, 0.000, 0.328]], [0.804, [0.000, 0.000, 0.328]], [0.806, [0.000, 0.000, 0.065]], [0.808, [0.000, 0.000, 0.065]], [0.810, [0.099, 0.000, 0.000]], [0.812, [0.099, 0.000, 0.000]], [0.814, [0.369, 0.000, 0.000]], [0.816, [0.369, 0.000, 0.000]], [0.818, [0.658, 0.000, 0.000]], [0.820, [0.658, 0.000, 0.000]], [0.822, [0.924, 0.000, 0.000]], [0.824, [0.924, 0.000, 0.000]], [0.826, [1.000, 0.202, 0.088]], [0.828, [1.000, 0.202, 0.088]], [0.830, [1.000, 0.557, 0.355]], [0.832, [1.000, 0.557, 0.355]], [0.834, [1.000, 0.830, 0.645]], [0.836, [1.000, 0.830, 0.645]], [0.838, [1.000, 0.979, 0.912]], [0.840, [1.000, 0.979, 0.912]], [0.841, [0.924, 0.983, 1.000]], [0.843, [0.924, 0.983, 1.000]], [0.845, [0.658, 0.840, 1.000]], [0.847, [0.658, 0.840, 1.000]], [0.849, [0.369, 0.573, 1.000]], [0.851, [0.369, 0.573, 1.000]], [0.853, [0.099, 0.220, 1.000]], [0.855, [0.099, 0.220, 1.000]], [0.857, [0.000, 0.000, 0.935]], [0.859, [0.000, 0.000, 0.935]], [0.861, [0.000, 0.000, 0.672]], [0.863, [0.000, 0.000, 0.672]], [0.865, [0.000, 0.000, 0.383]], [0.867, [0.000, 0.000, 0.383]], [0.869, [0.000, 0.000, 0.111]], [0.871, [0.000, 0.000, 0.111]], [0.873, [0.054, 0.000, 0.000]], [0.875, [0.054, 0.000, 0.000]], [0.877, [0.315, 0.000, 0.000]], [0.879, [0.315, 0.000, 0.000]], [0.881, [0.604, 0.000, 0.000]], [0.883, [0.604, 0.000, 0.000]], [0.885, [0.877, 0.000, 0.000]], [0.886, [0.877, 0.000, 0.000]], [0.888, [1.000, 0.129, 0.043]], [0.890, [1.000, 0.129, 0.043]], [0.892, [1.000, 0.495, 0.301]], [0.894, [1.000, 0.495, 0.301]], [0.896, [1.000, 0.787, 0.590]], [0.898, [1.000, 0.787, 0.590]], [0.900, [1.000, 0.962, 0.865]], [0.902, [1.000, 0.962, 0.865]], [0.904, [0.968, 0.994, 1.000]], [0.906, [0.968, 0.994, 1.000]], [0.908, [0.712, 0.878, 1.000]], [0.910, [0.712, 0.878, 1.000]], [0.912, [0.424, 0.632, 1.000]], [0.914, [0.424, 0.632, 1.000]], [0.916, [0.147, 0.291, 1.000]], [0.918, [0.147, 0.291, 1.000]], [0.920, [0.000, 0.000, 0.979]], [0.922, [0.000, 0.000, 0.979]], [0.924, [0.000, 0.000, 0.725]], [0.926, [0.000, 0.000, 0.725]], [0.928, [0.000, 0.000, 0.438]], [0.930, [0.000, 0.000, 0.438]], [0.932, [0.000, 0.000, 0.160]], [0.933, [0.000, 0.000, 0.160]], [0.935, [0.010, 0.000, 0.000]], [0.937, [0.010, 0.000, 0.000]], [0.939, [0.262, 0.000, 0.000]], [0.941, [0.262, 0.000, 0.000]], [0.943, [0.548, 0.000, 0.000]], [0.945, [0.548, 0.000, 0.000]], [0.947, [0.828, 0.000, 0.000]], [0.949, [0.828, 0.000, 0.000]], [0.951, [1.000, 0.055, 0.000]], [0.953, [1.000, 0.055, 0.000]], [0.955, [1.000, 0.429, 0.249]], [0.957, [1.000, 0.429, 0.249]], [0.959, [1.000, 0.739, 0.535]], [0.961, [1.000, 0.739, 0.535]], [0.963, [1.000, 0.939, 0.816]], [0.965, [1.000, 0.939, 0.816]], [0.967, [1.000, 0.999, 1.000]], [0.969, [1.000, 0.999, 1.000]], [0.971, [0.764, 0.911, 1.000]], [0.973, [0.764, 0.911, 1.000]], [0.975, [0.479, 0.687, 1.000]], [0.977, [0.479, 0.687, 1.000]], [0.978, [0.197, 0.361, 1.000]], [0.980, [0.197, 0.361, 1.000]], [0.982, [0.000, 0.000, 1.000]], [0.984, [0.000, 0.000, 1.000]], [0.986, [0.000, 0.000, 0.777]], [0.988, [0.000, 0.000, 0.777]], [0.990, [0.000, 0.000, 0.493]], [0.992, [0.000, 0.000, 0.493]], [0.994, [0.000, 0.000, 0.210]], [0.996, [0.000, 0.000, 0.210]], [0.998, [0.000, 0.000, 0.000]], [1.000, [0.000, 0.000, 0.000]]];
+var gist_earth = [[0.000, [0.000, 0.000, 0.000]], [0.002, [0.000, 0.000, 0.000]], [0.004, [0.003, 0.000, 0.169]], [0.006, [0.003, 0.000, 0.169]], [0.008, [0.005, 0.000, 0.222]], [0.010, [0.005, 0.000, 0.222]], [0.012, [0.008, 0.000, 0.264]], [0.014, [0.008, 0.000, 0.264]], [0.016, [0.010, 0.000, 0.306]], [0.018, [0.010, 0.000, 0.306]], [0.020, [0.013, 0.000, 0.348]], [0.022, [0.013, 0.000, 0.348]], [0.023, [0.016, 0.000, 0.390]], [0.025, [0.016, 0.000, 0.390]], [0.027, [0.018, 0.000, 0.432]], [0.029, [0.018, 0.000, 0.432]], [0.031, [0.021, 0.009, 0.455]], [0.033, [0.021, 0.009, 0.455]], [0.035, [0.024, 0.018, 0.456]], [0.037, [0.024, 0.018, 0.456]], [0.039, [0.026, 0.027, 0.456]], [0.041, [0.026, 0.027, 0.456]], [0.043, [0.029, 0.036, 0.457]], [0.045, [0.029, 0.036, 0.457]], [0.047, [0.031, 0.045, 0.458]], [0.049, [0.031, 0.045, 0.458]], [0.051, [0.034, 0.054, 0.458]], [0.053, [0.034, 0.054, 0.458]], [0.055, [0.037, 0.063, 0.459]], [0.057, [0.037, 0.063, 0.459]], [0.059, [0.039, 0.072, 0.460]], [0.061, [0.039, 0.072, 0.460]], [0.063, [0.042, 0.081, 0.461]], [0.065, [0.042, 0.081, 0.461]], [0.067, [0.044, 0.090, 0.461]], [0.068, [0.044, 0.090, 0.461]], [0.070, [0.047, 0.099, 0.462]], [0.072, [0.047, 0.099, 0.462]], [0.074, [0.050, 0.108, 0.463]], [0.076, [0.050, 0.108, 0.463]], [0.078, [0.052, 0.117, 0.463]], [0.080, [0.052, 0.117, 0.463]], [0.082, [0.055, 0.126, 0.464]], [0.084, [0.055, 0.126, 0.464]], [0.086, [0.057, 0.135, 0.465]], [0.088, [0.057, 0.135, 0.465]], [0.090, [0.060, 0.144, 0.466]], [0.092, [0.060, 0.144, 0.466]], [0.094, [0.063, 0.153, 0.466]], [0.096, [0.063, 0.153, 0.466]], [0.098, [0.065, 0.162, 0.467]], [0.100, [0.065, 0.162, 0.467]], [0.102, [0.068, 0.171, 0.468]], [0.104, [0.068, 0.171, 0.468]], [0.106, [0.071, 0.180, 0.468]], [0.108, [0.071, 0.180, 0.468]], [0.110, [0.073, 0.189, 0.469]], [0.112, [0.073, 0.189, 0.469]], [0.114, [0.076, 0.197, 0.470]], [0.115, [0.076, 0.197, 0.470]], [0.117, [0.078, 0.206, 0.471]], [0.119, [0.078, 0.206, 0.471]], [0.121, [0.081, 0.214, 0.471]], [0.123, [0.081, 0.214, 0.471]], [0.125, [0.084, 0.222, 0.472]], [0.127, [0.084, 0.222, 0.472]], [0.129, [0.086, 0.230, 0.473]], [0.131, [0.086, 0.230, 0.473]], [0.133, [0.089, 0.238, 0.473]], [0.135, [0.089, 0.238, 0.473]], [0.137, [0.091, 0.246, 0.474]], [0.139, [0.091, 0.246, 0.474]], [0.141, [0.094, 0.255, 0.475]], [0.143, [0.094, 0.255, 0.475]], [0.145, [0.097, 0.263, 0.476]], [0.147, [0.097, 0.263, 0.476]], [0.149, [0.099, 0.271, 0.476]], [0.151, [0.099, 0.271, 0.476]], [0.153, [0.102, 0.279, 0.477]], [0.155, [0.102, 0.279, 0.477]], [0.157, [0.105, 0.287, 0.478]], [0.159, [0.105, 0.287, 0.478]], [0.160, [0.107, 0.295, 0.478]], [0.162, [0.107, 0.295, 0.478]], [0.164, [0.110, 0.304, 0.479]], [0.166, [0.110, 0.304, 0.479]], [0.168, [0.112, 0.311, 0.480]], [0.170, [0.112, 0.311, 0.480]], [0.172, [0.115, 0.318, 0.480]], [0.174, [0.115, 0.318, 0.480]], [0.176, [0.118, 0.326, 0.481]], [0.178, [0.118, 0.326, 0.481]], [0.180, [0.120, 0.333, 0.482]], [0.182, [0.120, 0.333, 0.482]], [0.184, [0.123, 0.340, 0.483]], [0.186, [0.123, 0.340, 0.483]], [0.188, [0.125, 0.348, 0.483]], [0.190, [0.125, 0.348, 0.483]], [0.192, [0.128, 0.355, 0.484]], [0.194, [0.128, 0.355, 0.484]], [0.196, [0.131, 0.362, 0.485]], [0.198, [0.131, 0.362, 0.485]], [0.200, [0.133, 0.370, 0.485]], [0.202, [0.133, 0.370, 0.485]], [0.204, [0.136, 0.377, 0.486]], [0.205, [0.136, 0.377, 0.486]], [0.207, [0.139, 0.384, 0.487]], [0.209, [0.139, 0.384, 0.487]], [0.211, [0.141, 0.390, 0.488]], [0.213, [0.141, 0.390, 0.488]], [0.215, [0.144, 0.397, 0.488]], [0.217, [0.144, 0.397, 0.488]], [0.219, [0.146, 0.403, 0.489]], [0.221, [0.146, 0.403, 0.489]], [0.223, [0.149, 0.409, 0.490]], [0.225, [0.149, 0.409, 0.490]], [0.227, [0.152, 0.415, 0.490]], [0.229, [0.152, 0.415, 0.490]], [0.231, [0.154, 0.421, 0.491]], [0.233, [0.154, 0.421, 0.491]], [0.235, [0.157, 0.428, 0.492]], [0.237, [0.157, 0.428, 0.492]], [0.239, [0.159, 0.434, 0.493]], [0.241, [0.159, 0.434, 0.493]], [0.243, [0.162, 0.440, 0.493]], [0.245, [0.162, 0.440, 0.493]], [0.247, [0.165, 0.446, 0.494]], [0.249, [0.165, 0.446, 0.494]], [0.250, [0.167, 0.452, 0.495]], [0.252, [0.167, 0.452, 0.495]], [0.254, [0.170, 0.459, 0.495]], [0.256, [0.170, 0.459, 0.495]], [0.258, [0.172, 0.465, 0.496]], [0.260, [0.172, 0.465, 0.496]], [0.262, [0.175, 0.471, 0.497]], [0.264, [0.175, 0.471, 0.497]], [0.266, [0.178, 0.477, 0.498]], [0.268, [0.178, 0.477, 0.498]], [0.270, [0.180, 0.483, 0.498]], [0.272, [0.180, 0.483, 0.498]], [0.274, [0.183, 0.490, 0.499]], [0.276, [0.183, 0.490, 0.499]], [0.278, [0.186, 0.496, 0.500]], [0.280, [0.186, 0.496, 0.500]], [0.282, [0.188, 0.502, 0.500]], [0.284, [0.188, 0.502, 0.500]], [0.286, [0.190, 0.504, 0.496]], [0.288, [0.190, 0.504, 0.496]], [0.290, [0.192, 0.506, 0.491]], [0.292, [0.192, 0.506, 0.491]], [0.294, [0.194, 0.509, 0.486]], [0.295, [0.194, 0.509, 0.486]], [0.297, [0.196, 0.511, 0.481]], [0.299, [0.196, 0.511, 0.481]], [0.301, [0.197, 0.513, 0.476]], [0.303, [0.197, 0.513, 0.476]], [0.305, [0.199, 0.516, 0.472]], [0.307, [0.199, 0.516, 0.472]], [0.309, [0.201, 0.518, 0.467]], [0.311, [0.201, 0.518, 0.467]], [0.313, [0.203, 0.520, 0.462]], [0.315, [0.203, 0.520, 0.462]], [0.317, [0.205, 0.522, 0.457]], [0.319, [0.205, 0.522, 0.457]], [0.321, [0.207, 0.525, 0.452]], [0.323, [0.207, 0.525, 0.452]], [0.325, [0.209, 0.527, 0.448]], [0.327, [0.209, 0.527, 0.448]], [0.329, [0.210, 0.529, 0.443]], [0.331, [0.210, 0.529, 0.443]], [0.333, [0.212, 0.531, 0.438]], [0.335, [0.212, 0.531, 0.438]], [0.337, [0.214, 0.534, 0.433]], [0.339, [0.214, 0.534, 0.433]], [0.341, [0.216, 0.536, 0.428]], [0.342, [0.216, 0.536, 0.428]], [0.344, [0.218, 0.538, 0.424]], [0.346, [0.218, 0.538, 0.424]], [0.348, [0.220, 0.540, 0.419]], [0.350, [0.220, 0.540, 0.419]], [0.352, [0.221, 0.543, 0.414]], [0.354, [0.221, 0.543, 0.414]], [0.356, [0.223, 0.545, 0.409]], [0.358, [0.223, 0.545, 0.409]], [0.360, [0.225, 0.547, 0.404]], [0.362, [0.225, 0.547, 0.404]], [0.364, [0.227, 0.549, 0.400]], [0.366, [0.227, 0.549, 0.400]], [0.368, [0.229, 0.552, 0.395]], [0.370, [0.229, 0.552, 0.395]], [0.372, [0.231, 0.554, 0.390]], [0.374, [0.231, 0.554, 0.390]], [0.376, [0.233, 0.556, 0.385]], [0.378, [0.233, 0.556, 0.385]], [0.380, [0.234, 0.558, 0.380]], [0.382, [0.234, 0.558, 0.380]], [0.384, [0.236, 0.561, 0.376]], [0.386, [0.236, 0.561, 0.376]], [0.387, [0.238, 0.563, 0.371]], [0.389, [0.238, 0.563, 0.371]], [0.391, [0.240, 0.565, 0.366]], [0.393, [0.240, 0.565, 0.366]], [0.395, [0.242, 0.567, 0.361]], [0.397, [0.242, 0.567, 0.361]], [0.399, [0.244, 0.570, 0.356]], [0.401, [0.244, 0.570, 0.356]], [0.403, [0.246, 0.572, 0.352]], [0.405, [0.246, 0.572, 0.352]], [0.407, [0.247, 0.574, 0.347]], [0.409, [0.247, 0.574, 0.347]], [0.411, [0.249, 0.576, 0.342]], [0.413, [0.249, 0.576, 0.342]], [0.415, [0.251, 0.579, 0.337]], [0.417, [0.251, 0.579, 0.337]], [0.419, [0.253, 0.581, 0.332]], [0.421, [0.253, 0.581, 0.332]], [0.423, [0.255, 0.583, 0.328]], [0.425, [0.255, 0.583, 0.328]], [0.427, [0.257, 0.586, 0.323]], [0.429, [0.257, 0.586, 0.323]], [0.431, [0.258, 0.588, 0.318]], [0.432, [0.258, 0.588, 0.318]], [0.434, [0.260, 0.590, 0.313]], [0.436, [0.260, 0.590, 0.313]], [0.438, [0.262, 0.592, 0.308]], [0.440, [0.262, 0.592, 0.308]], [0.442, [0.264, 0.595, 0.304]], [0.444, [0.264, 0.595, 0.304]], [0.446, [0.266, 0.597, 0.299]], [0.448, [0.266, 0.597, 0.299]], [0.450, [0.268, 0.599, 0.294]], [0.452, [0.268, 0.599, 0.294]], [0.454, [0.270, 0.601, 0.289]], [0.456, [0.270, 0.601, 0.289]], [0.458, [0.271, 0.604, 0.284]], [0.460, [0.271, 0.604, 0.284]], [0.462, [0.280, 0.606, 0.280]], [0.464, [0.280, 0.606, 0.280]], [0.466, [0.289, 0.608, 0.275]], [0.468, [0.289, 0.608, 0.275]], [0.470, [0.298, 0.610, 0.277]], [0.472, [0.298, 0.610, 0.277]], [0.474, [0.306, 0.613, 0.279]], [0.476, [0.306, 0.613, 0.279]], [0.477, [0.315, 0.615, 0.282]], [0.479, [0.315, 0.615, 0.282]], [0.481, [0.324, 0.617, 0.284]], [0.483, [0.324, 0.617, 0.284]], [0.485, [0.332, 0.619, 0.286]], [0.487, [0.332, 0.619, 0.286]], [0.489, [0.341, 0.622, 0.288]], [0.491, [0.341, 0.622, 0.288]], [0.493, [0.350, 0.624, 0.291]], [0.495, [0.350, 0.624, 0.291]], [0.497, [0.359, 0.626, 0.293]], [0.499, [0.359, 0.626, 0.293]], [0.501, [0.367, 0.628, 0.295]], [0.503, [0.367, 0.628, 0.295]], [0.505, [0.376, 0.631, 0.298]], [0.507, [0.376, 0.631, 0.298]], [0.509, [0.385, 0.633, 0.300]], [0.511, [0.385, 0.633, 0.300]], [0.513, [0.393, 0.635, 0.302]], [0.515, [0.393, 0.635, 0.302]], [0.517, [0.402, 0.637, 0.304]], [0.519, [0.402, 0.637, 0.304]], [0.521, [0.411, 0.640, 0.307]], [0.523, [0.411, 0.640, 0.307]], [0.524, [0.420, 0.641, 0.309]], [0.526, [0.420, 0.641, 0.309]], [0.528, [0.428, 0.643, 0.311]], [0.530, [0.428, 0.643, 0.311]], [0.532, [0.437, 0.645, 0.314]], [0.534, [0.437, 0.645, 0.314]], [0.536, [0.446, 0.647, 0.316]], [0.538, [0.446, 0.647, 0.316]], [0.540, [0.455, 0.648, 0.318]], [0.542, [0.455, 0.648, 0.318]], [0.544, [0.463, 0.650, 0.320]], [0.546, [0.463, 0.650, 0.320]], [0.548, [0.472, 0.652, 0.322]], [0.550, [0.472, 0.652, 0.322]], [0.552, [0.478, 0.653, 0.323]], [0.554, [0.478, 0.653, 0.323]], [0.556, [0.485, 0.655, 0.324]], [0.558, [0.485, 0.655, 0.324]], [0.560, [0.491, 0.657, 0.325]], [0.562, [0.491, 0.657, 0.325]], [0.564, [0.498, 0.659, 0.327]], [0.566, [0.498, 0.659, 0.327]], [0.568, [0.504, 0.660, 0.328]], [0.569, [0.504, 0.660, 0.328]], [0.571, [0.511, 0.662, 0.329]], [0.573, [0.511, 0.662, 0.329]], [0.575, [0.517, 0.664, 0.330]], [0.577, [0.517, 0.664, 0.330]], [0.579, [0.524, 0.665, 0.332]], [0.581, [0.524, 0.665, 0.332]], [0.583, [0.530, 0.667, 0.333]], [0.585, [0.530, 0.667, 0.333]], [0.587, [0.537, 0.669, 0.334]], [0.589, [0.537, 0.669, 0.334]], [0.591, [0.543, 0.671, 0.335]], [0.593, [0.543, 0.671, 0.335]], [0.595, [0.550, 0.672, 0.337]], [0.597, [0.550, 0.672, 0.337]], [0.599, [0.556, 0.674, 0.338]], [0.601, [0.556, 0.674, 0.338]], [0.603, [0.562, 0.676, 0.339]], [0.605, [0.562, 0.676, 0.339]], [0.607, [0.569, 0.678, 0.340]], [0.609, [0.569, 0.678, 0.340]], [0.611, [0.575, 0.679, 0.342]], [0.613, [0.575, 0.679, 0.342]], [0.614, [0.582, 0.681, 0.343]], [0.616, [0.582, 0.681, 0.343]], [0.618, [0.588, 0.683, 0.344]], [0.620, [0.588, 0.683, 0.344]], [0.622, [0.595, 0.684, 0.345]], [0.624, [0.595, 0.684, 0.345]], [0.626, [0.601, 0.686, 0.347]], [0.628, [0.601, 0.686, 0.347]], [0.630, [0.608, 0.688, 0.348]], [0.632, [0.608, 0.688, 0.348]], [0.634, [0.614, 0.690, 0.349]], [0.636, [0.614, 0.690, 0.349]], [0.638, [0.621, 0.691, 0.350]], [0.640, [0.621, 0.691, 0.350]], [0.642, [0.627, 0.693, 0.351]], [0.644, [0.627, 0.693, 0.351]], [0.646, [0.634, 0.695, 0.353]], [0.648, [0.634, 0.695, 0.353]], [0.650, [0.640, 0.696, 0.354]], [0.652, [0.640, 0.696, 0.354]], [0.654, [0.647, 0.698, 0.355]], [0.656, [0.647, 0.698, 0.355]], [0.658, [0.653, 0.700, 0.356]], [0.659, [0.653, 0.700, 0.356]], [0.661, [0.659, 0.702, 0.358]], [0.663, [0.659, 0.702, 0.358]], [0.665, [0.666, 0.703, 0.359]], [0.667, [0.666, 0.703, 0.359]], [0.669, [0.672, 0.705, 0.360]], [0.671, [0.672, 0.705, 0.360]], [0.673, [0.679, 0.707, 0.361]], [0.675, [0.679, 0.707, 0.361]], [0.677, [0.685, 0.709, 0.363]], [0.679, [0.685, 0.709, 0.363]], [0.681, [0.692, 0.710, 0.364]], [0.683, [0.692, 0.710, 0.364]], [0.685, [0.698, 0.712, 0.365]], [0.687, [0.698, 0.712, 0.365]], [0.689, [0.705, 0.714, 0.366]], [0.691, [0.705, 0.714, 0.366]], [0.693, [0.711, 0.715, 0.368]], [0.695, [0.711, 0.715, 0.368]], [0.697, [0.718, 0.717, 0.369]], [0.699, [0.718, 0.717, 0.369]], [0.701, [0.719, 0.714, 0.370]], [0.703, [0.719, 0.714, 0.370]], [0.705, [0.721, 0.710, 0.371]], [0.706, [0.721, 0.710, 0.371]], [0.708, [0.723, 0.707, 0.373]], [0.710, [0.723, 0.707, 0.373]], [0.712, [0.724, 0.704, 0.374]], [0.714, [0.724, 0.704, 0.374]], [0.716, [0.726, 0.700, 0.375]], [0.718, [0.726, 0.700, 0.375]], [0.720, [0.727, 0.697, 0.376]], [0.722, [0.727, 0.697, 0.376]], [0.724, [0.729, 0.693, 0.378]], [0.726, [0.729, 0.693, 0.378]], [0.728, [0.731, 0.690, 0.379]], [0.730, [0.731, 0.690, 0.379]], [0.732, [0.732, 0.687, 0.380]], [0.734, [0.732, 0.687, 0.380]], [0.736, [0.734, 0.683, 0.381]], [0.738, [0.734, 0.683, 0.381]], [0.740, [0.736, 0.680, 0.382]], [0.742, [0.736, 0.680, 0.382]], [0.744, [0.737, 0.676, 0.384]], [0.746, [0.737, 0.676, 0.384]], [0.748, [0.739, 0.673, 0.385]], [0.750, [0.739, 0.673, 0.385]], [0.751, [0.741, 0.670, 0.386]], [0.753, [0.741, 0.670, 0.386]], [0.755, [0.742, 0.666, 0.387]], [0.757, [0.742, 0.666, 0.387]], [0.759, [0.744, 0.663, 0.389]], [0.761, [0.744, 0.663, 0.389]], [0.763, [0.745, 0.659, 0.390]], [0.765, [0.745, 0.659, 0.390]], [0.767, [0.747, 0.656, 0.391]], [0.769, [0.747, 0.656, 0.391]], [0.771, [0.749, 0.653, 0.392]], [0.773, [0.749, 0.653, 0.392]], [0.775, [0.750, 0.649, 0.394]], [0.777, [0.750, 0.649, 0.394]], [0.779, [0.752, 0.646, 0.395]], [0.781, [0.752, 0.646, 0.395]], [0.783, [0.754, 0.643, 0.396]], [0.785, [0.754, 0.643, 0.396]], [0.787, [0.755, 0.639, 0.406]], [0.789, [0.755, 0.639, 0.406]], [0.791, [0.760, 0.641, 0.415]], [0.793, [0.760, 0.641, 0.415]], [0.795, [0.764, 0.643, 0.425]], [0.796, [0.764, 0.643, 0.425]], [0.798, [0.768, 0.645, 0.435]], [0.800, [0.768, 0.645, 0.435]], [0.802, [0.773, 0.646, 0.444]], [0.804, [0.773, 0.646, 0.444]], [0.806, [0.777, 0.648, 0.454]], [0.808, [0.777, 0.648, 0.454]], [0.810, [0.782, 0.652, 0.463]], [0.812, [0.782, 0.652, 0.463]], [0.814, [0.786, 0.655, 0.473]], [0.816, [0.786, 0.655, 0.473]], [0.818, [0.790, 0.658, 0.483]], [0.820, [0.790, 0.658, 0.483]], [0.822, [0.795, 0.662, 0.492]], [0.824, [0.795, 0.662, 0.492]], [0.826, [0.799, 0.665, 0.502]], [0.828, [0.799, 0.665, 0.502]], [0.830, [0.804, 0.668, 0.511]], [0.832, [0.804, 0.668, 0.511]], [0.834, [0.808, 0.672, 0.521]], [0.836, [0.808, 0.672, 0.521]], [0.838, [0.812, 0.675, 0.531]], [0.840, [0.812, 0.675, 0.531]], [0.841, [0.817, 0.679, 0.540]], [0.843, [0.817, 0.679, 0.540]], [0.845, [0.821, 0.682, 0.550]], [0.847, [0.821, 0.682, 0.550]], [0.849, [0.826, 0.685, 0.559]], [0.851, [0.826, 0.685, 0.559]], [0.853, [0.830, 0.689, 0.569]], [0.855, [0.830, 0.689, 0.569]], [0.857, [0.834, 0.692, 0.579]], [0.859, [0.834, 0.692, 0.579]], [0.861, [0.839, 0.696, 0.588]], [0.863, [0.839, 0.696, 0.588]], [0.865, [0.843, 0.699, 0.598]], [0.867, [0.843, 0.699, 0.598]], [0.869, [0.847, 0.705, 0.607]], [0.871, [0.847, 0.705, 0.607]], [0.873, [0.852, 0.710, 0.617]], [0.875, [0.852, 0.710, 0.617]], [0.877, [0.856, 0.716, 0.627]], [0.879, [0.856, 0.716, 0.627]], [0.881, [0.861, 0.722, 0.636]], [0.883, [0.861, 0.722, 0.636]], [0.885, [0.865, 0.727, 0.646]], [0.886, [0.865, 0.727, 0.646]], [0.888, [0.869, 0.732, 0.656]], [0.890, [0.869, 0.732, 0.656]], [0.892, [0.874, 0.738, 0.665]], [0.894, [0.874, 0.738, 0.665]], [0.896, [0.878, 0.743, 0.677]], [0.898, [0.878, 0.743, 0.677]], [0.900, [0.883, 0.751, 0.689]], [0.902, [0.883, 0.751, 0.689]], [0.904, [0.887, 0.758, 0.701]], [0.906, [0.887, 0.758, 0.701]], [0.908, [0.891, 0.766, 0.712]], [0.910, [0.891, 0.766, 0.712]], [0.912, [0.896, 0.774, 0.724]], [0.914, [0.896, 0.774, 0.724]], [0.916, [0.900, 0.781, 0.736]], [0.918, [0.900, 0.781, 0.736]], [0.920, [0.904, 0.789, 0.748]], [0.922, [0.904, 0.789, 0.748]], [0.924, [0.909, 0.797, 0.760]], [0.926, [0.909, 0.797, 0.760]], [0.928, [0.913, 0.804, 0.772]], [0.930, [0.913, 0.804, 0.772]], [0.932, [0.918, 0.812, 0.783]], [0.933, [0.918, 0.812, 0.783]], [0.935, [0.922, 0.820, 0.795]], [0.937, [0.922, 0.820, 0.795]], [0.939, [0.926, 0.827, 0.807]], [0.941, [0.926, 0.827, 0.807]], [0.943, [0.931, 0.836, 0.819]], [0.945, [0.931, 0.836, 0.819]], [0.947, [0.935, 0.845, 0.831]], [0.949, [0.935, 0.845, 0.831]], [0.951, [0.940, 0.854, 0.842]], [0.953, [0.940, 0.854, 0.842]], [0.955, [0.944, 0.863, 0.854]], [0.957, [0.944, 0.863, 0.854]], [0.959, [0.948, 0.873, 0.866]], [0.961, [0.948, 0.873, 0.866]], [0.963, [0.953, 0.882, 0.878]], [0.965, [0.953, 0.882, 0.878]], [0.967, [0.957, 0.893, 0.890]], [0.969, [0.957, 0.893, 0.890]], [0.971, [0.961, 0.905, 0.902]], [0.973, [0.961, 0.905, 0.902]], [0.975, [0.966, 0.916, 0.913]], [0.977, [0.966, 0.916, 0.913]], [0.978, [0.970, 0.927, 0.925]], [0.980, [0.970, 0.927, 0.925]], [0.982, [0.975, 0.939, 0.937]], [0.984, [0.975, 0.939, 0.937]], [0.986, [0.979, 0.950, 0.949]], [0.988, [0.979, 0.950, 0.949]], [0.990, [0.983, 0.962, 0.961]], [0.992, [0.983, 0.962, 0.961]], [0.994, [0.988, 0.973, 0.972]], [0.996, [0.988, 0.973, 0.972]], [0.998, [0.992, 0.984, 0.984]], [1.000, [0.992, 0.984, 0.984]]];
+var gist_ncar = [[0.000, [0.000, 0.000, 0.502]], [0.002, [0.000, 0.000, 0.502]], [0.004, [0.000, 0.029, 0.465]], [0.006, [0.000, 0.029, 0.465]], [0.008, [0.000, 0.057, 0.428]], [0.010, [0.000, 0.057, 0.428]], [0.012, [0.000, 0.086, 0.391]], [0.014, [0.000, 0.086, 0.391]], [0.016, [0.000, 0.114, 0.354]], [0.018, [0.000, 0.114, 0.354]], [0.020, [0.000, 0.143, 0.318]], [0.022, [0.000, 0.143, 0.318]], [0.023, [0.000, 0.172, 0.281]], [0.025, [0.000, 0.172, 0.281]], [0.027, [0.000, 0.200, 0.244]], [0.029, [0.000, 0.200, 0.244]], [0.031, [0.000, 0.229, 0.207]], [0.033, [0.000, 0.229, 0.207]], [0.035, [0.000, 0.258, 0.170]], [0.037, [0.000, 0.258, 0.170]], [0.039, [0.000, 0.286, 0.133]], [0.041, [0.000, 0.286, 0.133]], [0.043, [0.000, 0.315, 0.096]], [0.045, [0.000, 0.315, 0.096]], [0.047, [0.000, 0.343, 0.059]], [0.049, [0.000, 0.343, 0.059]], [0.051, [0.000, 0.372, 0.022]], [0.053, [0.000, 0.372, 0.022]], [0.055, [0.000, 0.346, 0.087]], [0.057, [0.000, 0.346, 0.087]], [0.059, [0.000, 0.319, 0.152]], [0.061, [0.000, 0.319, 0.152]], [0.063, [0.000, 0.293, 0.218]], [0.065, [0.000, 0.293, 0.218]], [0.067, [0.000, 0.266, 0.283]], [0.068, [0.000, 0.266, 0.283]], [0.070, [0.000, 0.239, 0.348]], [0.072, [0.000, 0.239, 0.348]], [0.074, [0.000, 0.213, 0.413]], [0.076, [0.000, 0.213, 0.413]], [0.078, [0.000, 0.186, 0.478]], [0.080, [0.000, 0.186, 0.478]], [0.082, [0.000, 0.160, 0.544]], [0.084, [0.000, 0.160, 0.544]], [0.086, [0.000, 0.133, 0.609]], [0.088, [0.000, 0.133, 0.609]], [0.090, [0.000, 0.106, 0.674]], [0.092, [0.000, 0.106, 0.674]], [0.094, [0.000, 0.080, 0.739]], [0.096, [0.000, 0.080, 0.739]], [0.098, [0.000, 0.053, 0.804]], [0.100, [0.000, 0.053, 0.804]], [0.102, [0.000, 0.027, 0.870]], [0.104, [0.000, 0.027, 0.870]], [0.106, [0.000, 0.000, 0.935]], [0.108, [0.000, 0.000, 0.935]], [0.110, [0.000, 0.055, 1.000]], [0.112, [0.000, 0.055, 1.000]], [0.114, [0.000, 0.111, 1.000]], [0.115, [0.000, 0.111, 1.000]], [0.117, [0.000, 0.166, 1.000]], [0.119, [0.000, 0.166, 1.000]], [0.121, [0.000, 0.221, 1.000]], [0.123, [0.000, 0.221, 1.000]], [0.125, [0.000, 0.277, 1.000]], [0.127, [0.000, 0.277, 1.000]], [0.129, [0.000, 0.332, 1.000]], [0.131, [0.000, 0.332, 1.000]], [0.133, [0.000, 0.387, 1.000]], [0.135, [0.000, 0.387, 1.000]], [0.137, [0.000, 0.443, 1.000]], [0.139, [0.000, 0.443, 1.000]], [0.141, [0.000, 0.498, 1.000]], [0.143, [0.000, 0.498, 1.000]], [0.145, [0.000, 0.554, 1.000]], [0.147, [0.000, 0.554, 1.000]], [0.149, [0.000, 0.609, 1.000]], [0.151, [0.000, 0.609, 1.000]], [0.153, [0.000, 0.664, 1.000]], [0.155, [0.000, 0.664, 1.000]], [0.157, [0.000, 0.720, 1.000]], [0.159, [0.000, 0.720, 1.000]], [0.160, [0.000, 0.754, 1.000]], [0.162, [0.000, 0.754, 1.000]], [0.164, [0.000, 0.775, 1.000]], [0.166, [0.000, 0.775, 1.000]], [0.168, [0.000, 0.793, 1.000]], [0.170, [0.000, 0.793, 1.000]], [0.172, [0.000, 0.810, 1.000]], [0.174, [0.000, 0.810, 1.000]], [0.176, [0.000, 0.827, 1.000]], [0.178, [0.000, 0.827, 1.000]], [0.180, [0.000, 0.844, 1.000]], [0.182, [0.000, 0.844, 1.000]], [0.184, [0.000, 0.862, 1.000]], [0.186, [0.000, 0.862, 1.000]], [0.188, [0.000, 0.879, 1.000]], [0.190, [0.000, 0.879, 1.000]], [0.192, [0.000, 0.896, 1.000]], [0.194, [0.000, 0.896, 1.000]], [0.196, [0.000, 0.914, 1.000]], [0.198, [0.000, 0.914, 1.000]], [0.200, [0.000, 0.931, 1.000]], [0.202, [0.000, 0.931, 1.000]], [0.204, [0.000, 0.948, 1.000]], [0.205, [0.000, 0.948, 1.000]], [0.207, [0.000, 0.965, 0.974]], [0.209, [0.000, 0.965, 0.974]], [0.211, [0.000, 0.983, 0.948]], [0.213, [0.000, 0.983, 0.948]], [0.215, [0.000, 1.000, 0.923]], [0.217, [0.000, 1.000, 0.923]], [0.219, [0.000, 0.998, 0.897]], [0.221, [0.000, 0.998, 0.897]], [0.223, [0.000, 0.996, 0.871]], [0.225, [0.000, 0.996, 0.871]], [0.227, [0.000, 0.995, 0.846]], [0.229, [0.000, 0.995, 0.846]], [0.231, [0.000, 0.993, 0.820]], [0.233, [0.000, 0.993, 0.820]], [0.235, [0.000, 0.991, 0.794]], [0.237, [0.000, 0.991, 0.794]], [0.239, [0.000, 0.989, 0.768]], [0.241, [0.000, 0.989, 0.768]], [0.243, [0.000, 0.988, 0.743]], [0.245, [0.000, 0.988, 0.743]], [0.247, [0.000, 0.986, 0.717]], [0.249, [0.000, 0.986, 0.717]], [0.250, [0.000, 0.984, 0.691]], [0.252, [0.000, 0.984, 0.691]], [0.254, [0.000, 0.982, 0.666]], [0.256, [0.000, 0.982, 0.666]], [0.258, [0.000, 0.980, 0.640]], [0.260, [0.000, 0.980, 0.640]], [0.262, [0.000, 0.980, 0.614]], [0.264, [0.000, 0.980, 0.614]], [0.266, [0.000, 0.980, 0.573]], [0.268, [0.000, 0.980, 0.573]], [0.270, [0.000, 0.980, 0.532]], [0.272, [0.000, 0.980, 0.532]], [0.274, [0.000, 0.982, 0.491]], [0.276, [0.000, 0.982, 0.491]], [0.278, [0.000, 0.984, 0.450]], [0.280, [0.000, 0.984, 0.450]], [0.282, [0.000, 0.985, 0.409]], [0.284, [0.000, 0.985, 0.409]], [0.286, [0.000, 0.987, 0.369]], [0.288, [0.000, 0.987, 0.369]], [0.290, [0.000, 0.989, 0.328]], [0.292, [0.000, 0.989, 0.328]], [0.294, [0.000, 0.990, 0.287]], [0.295, [0.000, 0.990, 0.287]], [0.297, [0.000, 0.992, 0.246]], [0.299, [0.000, 0.992, 0.246]], [0.301, [0.000, 0.993, 0.205]], [0.303, [0.000, 0.993, 0.205]], [0.305, [0.000, 0.995, 0.164]], [0.307, [0.000, 0.995, 0.164]], [0.309, [0.000, 0.997, 0.123]], [0.311, [0.000, 0.997, 0.123]], [0.313, [0.025, 0.998, 0.082]], [0.315, [0.025, 0.998, 0.082]], [0.317, [0.050, 1.000, 0.041]], [0.319, [0.050, 1.000, 0.041]], [0.321, [0.075, 0.985, 0.000]], [0.323, [0.075, 0.985, 0.000]], [0.325, [0.100, 0.970, 0.000]], [0.327, [0.100, 0.970, 0.000]], [0.329, [0.125, 0.956, 0.000]], [0.331, [0.125, 0.956, 0.000]], [0.333, [0.150, 0.941, 0.000]], [0.335, [0.150, 0.941, 0.000]], [0.337, [0.175, 0.926, 0.000]], [0.339, [0.175, 0.926, 0.000]], [0.341, [0.200, 0.911, 0.000]], [0.342, [0.200, 0.911, 0.000]], [0.344, [0.225, 0.897, 0.000]], [0.346, [0.225, 0.897, 0.000]], [0.348, [0.250, 0.882, 0.000]], [0.350, [0.250, 0.882, 0.000]], [0.352, [0.275, 0.867, 0.000]], [0.354, [0.275, 0.867, 0.000]], [0.356, [0.300, 0.852, 0.000]], [0.358, [0.300, 0.852, 0.000]], [0.360, [0.325, 0.838, 0.000]], [0.362, [0.325, 0.838, 0.000]], [0.364, [0.350, 0.823, 0.000]], [0.366, [0.350, 0.823, 0.000]], [0.368, [0.375, 0.808, 0.000]], [0.370, [0.375, 0.808, 0.000]], [0.372, [0.399, 0.821, 0.000]], [0.374, [0.399, 0.821, 0.000]], [0.376, [0.407, 0.834, 0.000]], [0.378, [0.407, 0.834, 0.000]], [0.380, [0.415, 0.847, 0.000]], [0.382, [0.415, 0.847, 0.000]], [0.384, [0.423, 0.859, 0.000]], [0.386, [0.423, 0.859, 0.000]], [0.387, [0.430, 0.872, 0.000]], [0.389, [0.430, 0.872, 0.000]], [0.391, [0.438, 0.885, 0.000]], [0.393, [0.438, 0.885, 0.000]], [0.395, [0.446, 0.898, 0.000]], [0.397, [0.446, 0.898, 0.000]], [0.399, [0.454, 0.910, 0.000]], [0.401, [0.454, 0.910, 0.000]], [0.403, [0.462, 0.923, 0.000]], [0.405, [0.462, 0.923, 0.000]], [0.407, [0.469, 0.936, 0.000]], [0.409, [0.469, 0.936, 0.000]], [0.411, [0.477, 0.949, 0.000]], [0.413, [0.477, 0.949, 0.000]], [0.415, [0.485, 0.962, 0.000]], [0.417, [0.485, 0.962, 0.000]], [0.419, [0.493, 0.974, 0.016]], [0.421, [0.493, 0.974, 0.016]], [0.423, [0.500, 0.987, 0.031]], [0.425, [0.500, 0.987, 0.031]], [0.427, [0.518, 1.000, 0.047]], [0.429, [0.518, 1.000, 0.047]], [0.431, [0.536, 1.000, 0.062]], [0.432, [0.536, 1.000, 0.062]], [0.434, [0.554, 1.000, 0.078]], [0.436, [0.554, 1.000, 0.078]], [0.438, [0.572, 1.000, 0.094]], [0.440, [0.572, 1.000, 0.094]], [0.442, [0.590, 1.000, 0.109]], [0.444, [0.590, 1.000, 0.109]], [0.446, [0.608, 1.000, 0.125]], [0.448, [0.608, 1.000, 0.125]], [0.450, [0.625, 1.000, 0.141]], [0.452, [0.625, 1.000, 0.141]], [0.454, [0.643, 1.000, 0.156]], [0.456, [0.643, 1.000, 0.156]], [0.458, [0.661, 1.000, 0.172]], [0.460, [0.661, 1.000, 0.172]], [0.462, [0.679, 1.000, 0.187]], [0.464, [0.679, 1.000, 0.187]], [0.466, [0.697, 1.000, 0.203]], [0.468, [0.697, 1.000, 0.203]], [0.470, [0.715, 1.000, 0.219]], [0.472, [0.715, 1.000, 0.219]], [0.474, [0.732, 1.000, 0.234]], [0.476, [0.732, 1.000, 0.234]], [0.477, [0.750, 1.000, 0.219]], [0.479, [0.750, 1.000, 0.219]], [0.481, [0.768, 1.000, 0.203]], [0.483, [0.768, 1.000, 0.203]], [0.485, [0.786, 1.000, 0.187]], [0.487, [0.786, 1.000, 0.187]], [0.489, [0.804, 1.000, 0.172]], [0.491, [0.804, 1.000, 0.172]], [0.493, [0.822, 1.000, 0.156]], [0.495, [0.822, 1.000, 0.156]], [0.497, [0.840, 1.000, 0.140]], [0.499, [0.840, 1.000, 0.140]], [0.501, [0.857, 1.000, 0.125]], [0.503, [0.857, 1.000, 0.125]], [0.505, [0.875, 1.000, 0.109]], [0.507, [0.875, 1.000, 0.109]], [0.509, [0.893, 1.000, 0.094]], [0.511, [0.893, 1.000, 0.094]], [0.513, [0.911, 1.000, 0.078]], [0.515, [0.911, 1.000, 0.078]], [0.517, [0.929, 1.000, 0.062]], [0.519, [0.929, 1.000, 0.062]], [0.521, [0.947, 1.000, 0.047]], [0.523, [0.947, 1.000, 0.047]], [0.524, [0.964, 0.990, 0.031]], [0.526, [0.964, 0.990, 0.031]], [0.528, [0.982, 0.981, 0.015]], [0.530, [0.982, 0.981, 0.015]], [0.532, [1.000, 0.971, 0.000]], [0.534, [1.000, 0.971, 0.000]], [0.536, [1.000, 0.961, 0.000]], [0.538, [1.000, 0.961, 0.000]], [0.540, [1.000, 0.952, 0.000]], [0.542, [1.000, 0.952, 0.000]], [0.544, [1.000, 0.942, 0.000]], [0.546, [1.000, 0.942, 0.000]], [0.548, [1.000, 0.932, 0.000]], [0.550, [1.000, 0.932, 0.000]], [0.552, [1.000, 0.923, 0.000]], [0.554, [1.000, 0.923, 0.000]], [0.556, [1.000, 0.913, 0.000]], [0.558, [1.000, 0.913, 0.000]], [0.560, [1.000, 0.903, 0.000]], [0.562, [1.000, 0.903, 0.000]], [0.564, [1.000, 0.894, 0.000]], [0.566, [1.000, 0.894, 0.000]], [0.568, [1.000, 0.884, 0.000]], [0.569, [1.000, 0.884, 0.000]], [0.571, [1.000, 0.874, 0.000]], [0.573, [1.000, 0.874, 0.000]], [0.575, [1.000, 0.865, 0.000]], [0.577, [1.000, 0.865, 0.000]], [0.579, [1.000, 0.855, 0.000]], [0.581, [1.000, 0.855, 0.000]], [0.583, [1.000, 0.845, 0.004]], [0.585, [1.000, 0.845, 0.004]], [0.587, [1.000, 0.836, 0.008]], [0.589, [1.000, 0.836, 0.008]], [0.591, [1.000, 0.826, 0.013]], [0.593, [1.000, 0.826, 0.013]], [0.595, [1.000, 0.816, 0.017]], [0.597, [1.000, 0.816, 0.017]], [0.599, [1.000, 0.807, 0.021]], [0.601, [1.000, 0.807, 0.021]], [0.603, [1.000, 0.797, 0.025]], [0.605, [1.000, 0.797, 0.025]], [0.607, [1.000, 0.787, 0.030]], [0.609, [1.000, 0.787, 0.030]], [0.611, [1.000, 0.778, 0.034]], [0.613, [1.000, 0.778, 0.034]], [0.614, [1.000, 0.768, 0.038]], [0.616, [1.000, 0.768, 0.038]], [0.618, [1.000, 0.758, 0.042]], [0.620, [1.000, 0.758, 0.042]], [0.622, [1.000, 0.749, 0.046]], [0.624, [1.000, 0.749, 0.046]], [0.626, [1.000, 0.739, 0.051]], [0.628, [1.000, 0.739, 0.051]], [0.630, [1.000, 0.729, 0.055]], [0.632, [1.000, 0.729, 0.055]], [0.634, [1.000, 0.697, 0.051]], [0.636, [1.000, 0.697, 0.051]], [0.638, [1.000, 0.665, 0.048]], [0.640, [1.000, 0.665, 0.048]], [0.642, [1.000, 0.633, 0.044]], [0.644, [1.000, 0.633, 0.044]], [0.646, [1.000, 0.601, 0.040]], [0.648, [1.000, 0.601, 0.040]], [0.650, [1.000, 0.569, 0.037]], [0.652, [1.000, 0.569, 0.037]], [0.654, [1.000, 0.537, 0.033]], [0.656, [1.000, 0.537, 0.033]], [0.658, [1.000, 0.505, 0.029]], [0.659, [1.000, 0.505, 0.029]], [0.661, [1.000, 0.473, 0.026]], [0.663, [1.000, 0.473, 0.026]], [0.665, [1.000, 0.440, 0.022]], [0.667, [1.000, 0.440, 0.022]], [0.669, [1.000, 0.408, 0.018]], [0.671, [1.000, 0.408, 0.018]], [0.673, [1.000, 0.376, 0.015]], [0.675, [1.000, 0.376, 0.015]], [0.677, [1.000, 0.344, 0.011]], [0.679, [1.000, 0.344, 0.011]], [0.681, [1.000, 0.312, 0.007]], [0.683, [1.000, 0.312, 0.007]], [0.685, [1.000, 0.280, 0.004]], [0.687, [1.000, 0.280, 0.004]], [0.689, [1.000, 0.261, 0.000]], [0.691, [1.000, 0.261, 0.000]], [0.693, [1.000, 0.242, 0.000]], [0.695, [1.000, 0.242, 0.000]], [0.697, [1.000, 0.224, 0.000]], [0.699, [1.000, 0.224, 0.000]], [0.701, [1.000, 0.205, 0.000]], [0.703, [1.000, 0.205, 0.000]], [0.705, [1.000, 0.186, 0.000]], [0.706, [1.000, 0.186, 0.000]], [0.708, [1.000, 0.168, 0.000]], [0.710, [1.000, 0.168, 0.000]], [0.712, [1.000, 0.149, 0.000]], [0.714, [1.000, 0.149, 0.000]], [0.716, [1.000, 0.131, 0.000]], [0.718, [1.000, 0.131, 0.000]], [0.720, [1.000, 0.112, 0.000]], [0.722, [1.000, 0.112, 0.000]], [0.724, [1.000, 0.093, 0.000]], [0.726, [1.000, 0.093, 0.000]], [0.728, [1.000, 0.075, 0.000]], [0.730, [1.000, 0.075, 0.000]], [0.732, [1.000, 0.056, 0.000]], [0.734, [1.000, 0.056, 0.000]], [0.736, [1.000, 0.037, 0.000]], [0.738, [1.000, 0.037, 0.000]], [0.740, [1.000, 0.019, 0.069]], [0.742, [1.000, 0.019, 0.069]], [0.744, [1.000, 0.000, 0.138]], [0.746, [1.000, 0.000, 0.138]], [0.748, [1.000, 0.000, 0.208]], [0.750, [1.000, 0.000, 0.208]], [0.751, [1.000, 0.000, 0.277]], [0.753, [1.000, 0.000, 0.277]], [0.755, [1.000, 0.000, 0.347]], [0.757, [1.000, 0.000, 0.347]], [0.759, [1.000, 0.000, 0.417]], [0.761, [1.000, 0.000, 0.417]], [0.763, [1.000, 0.000, 0.486]], [0.765, [1.000, 0.000, 0.486]], [0.767, [1.000, 0.000, 0.556]], [0.769, [1.000, 0.000, 0.556]], [0.771, [1.000, 0.000, 0.625]], [0.773, [1.000, 0.000, 0.625]], [0.775, [1.000, 0.000, 0.695]], [0.777, [1.000, 0.000, 0.695]], [0.779, [1.000, 0.000, 0.764]], [0.781, [1.000, 0.000, 0.764]], [0.783, [1.000, 0.000, 0.834]], [0.785, [1.000, 0.000, 0.834]], [0.787, [1.000, 0.000, 0.903]], [0.789, [1.000, 0.000, 0.903]], [0.791, [1.000, 0.000, 0.973]], [0.793, [1.000, 0.000, 0.973]], [0.795, [0.973, 0.013, 0.987]], [0.796, [0.973, 0.013, 0.987]], [0.798, [0.946, 0.027, 1.000]], [0.800, [0.946, 0.027, 1.000]], [0.802, [0.919, 0.040, 1.000]], [0.804, [0.919, 0.040, 1.000]], [0.806, [0.892, 0.054, 1.000]], [0.808, [0.892, 0.054, 1.000]], [0.810, [0.865, 0.067, 1.000]], [0.812, [0.865, 0.067, 1.000]], [0.814, [0.838, 0.081, 1.000]], [0.816, [0.838, 0.081, 1.000]], [0.818, [0.811, 0.094, 1.000]], [0.820, [0.811, 0.094, 1.000]], [0.822, [0.784, 0.108, 1.000]], [0.824, [0.784, 0.108, 1.000]], [0.826, [0.757, 0.121, 1.000]], [0.828, [0.757, 0.121, 1.000]], [0.830, [0.730, 0.135, 1.000]], [0.832, [0.730, 0.135, 1.000]], [0.834, [0.703, 0.148, 1.000]], [0.836, [0.703, 0.148, 1.000]], [0.838, [0.676, 0.162, 1.000]], [0.840, [0.676, 0.162, 1.000]], [0.841, [0.649, 0.176, 1.000]], [0.843, [0.649, 0.176, 1.000]], [0.845, [0.622, 0.199, 0.995]], [0.847, [0.622, 0.199, 0.995]], [0.849, [0.645, 0.222, 0.991]], [0.851, [0.645, 0.222, 0.991]], [0.853, [0.668, 0.245, 0.986]], [0.855, [0.668, 0.245, 0.986]], [0.857, [0.691, 0.268, 0.981]], [0.859, [0.691, 0.268, 0.981]], [0.861, [0.715, 0.291, 0.976]], [0.863, [0.715, 0.291, 0.976]], [0.865, [0.738, 0.315, 0.972]], [0.867, [0.738, 0.315, 0.972]], [0.869, [0.761, 0.338, 0.967]], [0.871, [0.761, 0.338, 0.967]], [0.873, [0.784, 0.361, 0.962]], [0.875, [0.784, 0.361, 0.962]], [0.877, [0.808, 0.384, 0.958]], [0.879, [0.808, 0.384, 0.958]], [0.881, [0.831, 0.407, 0.953]], [0.883, [0.831, 0.407, 0.953]], [0.885, [0.854, 0.431, 0.948]], [0.886, [0.854, 0.431, 0.948]], [0.888, [0.877, 0.454, 0.943]], [0.890, [0.877, 0.454, 0.943]], [0.892, [0.900, 0.477, 0.939]], [0.894, [0.900, 0.477, 0.939]], [0.896, [0.924, 0.500, 0.934]], [0.898, [0.924, 0.500, 0.934]], [0.900, [0.926, 0.518, 0.937]], [0.902, [0.926, 0.518, 0.937]], [0.904, [0.929, 0.537, 0.939]], [0.906, [0.929, 0.537, 0.939]], [0.908, [0.932, 0.555, 0.941]], [0.910, [0.932, 0.555, 0.941]], [0.912, [0.935, 0.573, 0.944]], [0.914, [0.935, 0.573, 0.944]], [0.916, [0.937, 0.591, 0.946]], [0.918, [0.937, 0.591, 0.946]], [0.920, [0.940, 0.609, 0.948]], [0.922, [0.940, 0.609, 0.948]], [0.924, [0.943, 0.627, 0.951]], [0.926, [0.943, 0.627, 0.951]], [0.928, [0.946, 0.646, 0.953]], [0.930, [0.946, 0.646, 0.953]], [0.932, [0.949, 0.664, 0.956]], [0.933, [0.949, 0.664, 0.956]], [0.935, [0.951, 0.682, 0.958]], [0.937, [0.951, 0.682, 0.958]], [0.939, [0.954, 0.700, 0.960]], [0.941, [0.954, 0.700, 0.960]], [0.943, [0.957, 0.718, 0.963]], [0.945, [0.957, 0.718, 0.963]], [0.947, [0.960, 0.736, 0.965]], [0.949, [0.960, 0.736, 0.965]], [0.951, [0.963, 0.755, 0.967]], [0.953, [0.963, 0.755, 0.967]], [0.955, [0.965, 0.773, 0.970]], [0.957, [0.965, 0.773, 0.970]], [0.959, [0.968, 0.791, 0.972]], [0.961, [0.968, 0.791, 0.972]], [0.963, [0.971, 0.809, 0.975]], [0.965, [0.971, 0.809, 0.975]], [0.967, [0.974, 0.827, 0.977]], [0.969, [0.974, 0.827, 0.977]], [0.971, [0.977, 0.845, 0.979]], [0.973, [0.977, 0.845, 0.979]], [0.975, [0.979, 0.864, 0.982]], [0.977, [0.979, 0.864, 0.982]], [0.978, [0.982, 0.882, 0.984]], [0.980, [0.982, 0.882, 0.984]], [0.982, [0.985, 0.900, 0.987]], [0.984, [0.985, 0.900, 0.987]], [0.986, [0.988, 0.918, 0.989]], [0.988, [0.988, 0.918, 0.989]], [0.990, [0.991, 0.936, 0.991]], [0.992, [0.991, 0.936, 0.991]], [0.994, [0.993, 0.954, 0.994]], [0.996, [0.993, 0.954, 0.994]], [0.998, [0.996, 0.973, 0.996]], [1.000, [0.996, 0.973, 0.996]]];
+var gist_rainbow = [[0.000, [1.000, 0.000, 0.160]], [0.002, [1.000, 0.000, 0.160]], [0.004, [1.000, 0.000, 0.139]], [0.006, [1.000, 0.000, 0.139]], [0.008, [1.000, 0.000, 0.118]], [0.010, [1.000, 0.000, 0.118]], [0.012, [1.000, 0.000, 0.097]], [0.014, [1.000, 0.000, 0.097]], [0.016, [1.000, 0.000, 0.076]], [0.018, [1.000, 0.000, 0.076]], [0.020, [1.000, 0.000, 0.055]], [0.022, [1.000, 0.000, 0.055]], [0.023, [1.000, 0.000, 0.035]], [0.025, [1.000, 0.000, 0.035]], [0.027, [1.000, 0.000, 0.014]], [0.029, [1.000, 0.000, 0.014]], [0.031, [1.000, 0.007, 0.000]], [0.033, [1.000, 0.007, 0.000]], [0.035, [1.000, 0.029, 0.000]], [0.037, [1.000, 0.029, 0.000]], [0.039, [1.000, 0.050, 0.000]], [0.041, [1.000, 0.050, 0.000]], [0.043, [1.000, 0.071, 0.000]], [0.045, [1.000, 0.071, 0.000]], [0.047, [1.000, 0.092, 0.000]], [0.049, [1.000, 0.092, 0.000]], [0.051, [1.000, 0.113, 0.000]], [0.053, [1.000, 0.113, 0.000]], [0.055, [1.000, 0.135, 0.000]], [0.057, [1.000, 0.135, 0.000]], [0.059, [1.000, 0.156, 0.000]], [0.061, [1.000, 0.156, 0.000]], [0.063, [1.000, 0.177, 0.000]], [0.065, [1.000, 0.177, 0.000]], [0.067, [1.000, 0.198, 0.000]], [0.068, [1.000, 0.198, 0.000]], [0.070, [1.000, 0.219, 0.000]], [0.072, [1.000, 0.219, 0.000]], [0.074, [1.000, 0.241, 0.000]], [0.076, [1.000, 0.241, 0.000]], [0.078, [1.000, 0.262, 0.000]], [0.080, [1.000, 0.262, 0.000]], [0.082, [1.000, 0.283, 0.000]], [0.084, [1.000, 0.283, 0.000]], [0.086, [1.000, 0.304, 0.000]], [0.088, [1.000, 0.304, 0.000]], [0.090, [1.000, 0.325, 0.000]], [0.092, [1.000, 0.325, 0.000]], [0.094, [1.000, 0.347, 0.000]], [0.096, [1.000, 0.347, 0.000]], [0.098, [1.000, 0.368, 0.000]], [0.100, [1.000, 0.368, 0.000]], [0.102, [1.000, 0.389, 0.000]], [0.104, [1.000, 0.389, 0.000]], [0.106, [1.000, 0.410, 0.000]], [0.108, [1.000, 0.410, 0.000]], [0.110, [1.000, 0.431, 0.000]], [0.112, [1.000, 0.431, 0.000]], [0.114, [1.000, 0.453, 0.000]], [0.115, [1.000, 0.453, 0.000]], [0.117, [1.000, 0.474, 0.000]], [0.119, [1.000, 0.474, 0.000]], [0.121, [1.000, 0.495, 0.000]], [0.123, [1.000, 0.495, 0.000]], [0.125, [1.000, 0.516, 0.000]], [0.127, [1.000, 0.516, 0.000]], [0.129, [1.000, 0.537, 0.000]], [0.131, [1.000, 0.537, 0.000]], [0.133, [1.000, 0.559, 0.000]], [0.135, [1.000, 0.559, 0.000]], [0.137, [1.000, 0.580, 0.000]], [0.139, [1.000, 0.580, 0.000]], [0.141, [1.000, 0.601, 0.000]], [0.143, [1.000, 0.601, 0.000]], [0.145, [1.000, 0.622, 0.000]], [0.147, [1.000, 0.622, 0.000]], [0.149, [1.000, 0.643, 0.000]], [0.151, [1.000, 0.643, 0.000]], [0.153, [1.000, 0.665, 0.000]], [0.155, [1.000, 0.665, 0.000]], [0.157, [1.000, 0.686, 0.000]], [0.159, [1.000, 0.686, 0.000]], [0.160, [1.000, 0.707, 0.000]], [0.162, [1.000, 0.707, 0.000]], [0.164, [1.000, 0.728, 0.000]], [0.166, [1.000, 0.728, 0.000]], [0.168, [1.000, 0.749, 0.000]], [0.170, [1.000, 0.749, 0.000]], [0.172, [1.000, 0.771, 0.000]], [0.174, [1.000, 0.771, 0.000]], [0.176, [1.000, 0.792, 0.000]], [0.178, [1.000, 0.792, 0.000]], [0.180, [1.000, 0.813, 0.000]], [0.182, [1.000, 0.813, 0.000]], [0.184, [1.000, 0.834, 0.000]], [0.186, [1.000, 0.834, 0.000]], [0.188, [1.000, 0.855, 0.000]], [0.190, [1.000, 0.855, 0.000]], [0.192, [1.000, 0.877, 0.000]], [0.194, [1.000, 0.877, 0.000]], [0.196, [1.000, 0.898, 0.000]], [0.198, [1.000, 0.898, 0.000]], [0.200, [1.000, 0.919, 0.000]], [0.202, [1.000, 0.919, 0.000]], [0.204, [1.000, 0.940, 0.000]], [0.205, [1.000, 0.940, 0.000]], [0.207, [1.000, 0.961, 0.000]], [0.209, [1.000, 0.961, 0.000]], [0.211, [1.000, 0.983, 0.000]], [0.213, [1.000, 0.983, 0.000]], [0.215, [0.996, 1.000, 0.000]], [0.217, [0.996, 1.000, 0.000]], [0.219, [0.975, 1.000, 0.000]], [0.221, [0.975, 1.000, 0.000]], [0.223, [0.954, 1.000, 0.000]], [0.225, [0.954, 1.000, 0.000]], [0.227, [0.933, 1.000, 0.000]], [0.229, [0.933, 1.000, 0.000]], [0.231, [0.911, 1.000, 0.000]], [0.233, [0.911, 1.000, 0.000]], [0.235, [0.890, 1.000, 0.000]], [0.237, [0.890, 1.000, 0.000]], [0.239, [0.869, 1.000, 0.000]], [0.241, [0.869, 1.000, 0.000]], [0.243, [0.848, 1.000, 0.000]], [0.245, [0.848, 1.000, 0.000]], [0.247, [0.827, 1.000, 0.000]], [0.249, [0.827, 1.000, 0.000]], [0.250, [0.806, 1.000, 0.000]], [0.252, [0.806, 1.000, 0.000]], [0.254, [0.784, 1.000, 0.000]], [0.256, [0.784, 1.000, 0.000]], [0.258, [0.763, 1.000, 0.000]], [0.260, [0.763, 1.000, 0.000]], [0.262, [0.742, 1.000, 0.000]], [0.264, [0.742, 1.000, 0.000]], [0.266, [0.721, 1.000, 0.000]], [0.268, [0.721, 1.000, 0.000]], [0.270, [0.700, 1.000, 0.000]], [0.272, [0.700, 1.000, 0.000]], [0.274, [0.678, 1.000, 0.000]], [0.276, [0.678, 1.000, 0.000]], [0.278, [0.657, 1.000, 0.000]], [0.280, [0.657, 1.000, 0.000]], [0.282, [0.636, 1.000, 0.000]], [0.284, [0.636, 1.000, 0.000]], [0.286, [0.615, 1.000, 0.000]], [0.288, [0.615, 1.000, 0.000]], [0.290, [0.594, 1.000, 0.000]], [0.292, [0.594, 1.000, 0.000]], [0.294, [0.572, 1.000, 0.000]], [0.295, [0.572, 1.000, 0.000]], [0.297, [0.551, 1.000, 0.000]], [0.299, [0.551, 1.000, 0.000]], [0.301, [0.530, 1.000, 0.000]], [0.303, [0.530, 1.000, 0.000]], [0.305, [0.509, 1.000, 0.000]], [0.307, [0.509, 1.000, 0.000]], [0.309, [0.488, 1.000, 0.000]], [0.311, [0.488, 1.000, 0.000]], [0.313, [0.466, 1.000, 0.000]], [0.315, [0.466, 1.000, 0.000]], [0.317, [0.445, 1.000, 0.000]], [0.319, [0.445, 1.000, 0.000]], [0.321, [0.424, 1.000, 0.000]], [0.323, [0.424, 1.000, 0.000]], [0.325, [0.403, 1.000, 0.000]], [0.327, [0.403, 1.000, 0.000]], [0.329, [0.382, 1.000, 0.000]], [0.331, [0.382, 1.000, 0.000]], [0.333, [0.360, 1.000, 0.000]], [0.335, [0.360, 1.000, 0.000]], [0.337, [0.339, 1.000, 0.000]], [0.339, [0.339, 1.000, 0.000]], [0.341, [0.318, 1.000, 0.000]], [0.342, [0.318, 1.000, 0.000]], [0.344, [0.297, 1.000, 0.000]], [0.346, [0.297, 1.000, 0.000]], [0.348, [0.276, 1.000, 0.000]], [0.350, [0.276, 1.000, 0.000]], [0.352, [0.254, 1.000, 0.000]], [0.354, [0.254, 1.000, 0.000]], [0.356, [0.233, 1.000, 0.000]], [0.358, [0.233, 1.000, 0.000]], [0.360, [0.212, 1.000, 0.000]], [0.362, [0.212, 1.000, 0.000]], [0.364, [0.191, 1.000, 0.000]], [0.366, [0.191, 1.000, 0.000]], [0.368, [0.170, 1.000, 0.000]], [0.370, [0.170, 1.000, 0.000]], [0.372, [0.148, 1.000, 0.000]], [0.374, [0.148, 1.000, 0.000]], [0.376, [0.127, 1.000, 0.000]], [0.378, [0.127, 1.000, 0.000]], [0.380, [0.106, 1.000, 0.000]], [0.382, [0.106, 1.000, 0.000]], [0.384, [0.085, 1.000, 0.000]], [0.386, [0.085, 1.000, 0.000]], [0.387, [0.064, 1.000, 0.000]], [0.389, [0.064, 1.000, 0.000]], [0.391, [0.042, 1.000, 0.000]], [0.393, [0.042, 1.000, 0.000]], [0.395, [0.021, 1.000, 0.000]], [0.397, [0.021, 1.000, 0.000]], [0.399, [0.000, 1.000, 0.000]], [0.401, [0.000, 1.000, 0.000]], [0.403, [0.000, 1.000, 0.021]], [0.405, [0.000, 1.000, 0.021]], [0.407, [0.000, 1.000, 0.042]], [0.409, [0.000, 1.000, 0.042]], [0.411, [0.000, 1.000, 0.063]], [0.413, [0.000, 1.000, 0.063]], [0.415, [0.000, 1.000, 0.084]], [0.417, [0.000, 1.000, 0.084]], [0.419, [0.000, 1.000, 0.105]], [0.421, [0.000, 1.000, 0.105]], [0.423, [0.000, 1.000, 0.127]], [0.425, [0.000, 1.000, 0.127]], [0.427, [0.000, 1.000, 0.148]], [0.429, [0.000, 1.000, 0.148]], [0.431, [0.000, 1.000, 0.169]], [0.432, [0.000, 1.000, 0.169]], [0.434, [0.000, 1.000, 0.190]], [0.436, [0.000, 1.000, 0.190]], [0.438, [0.000, 1.000, 0.211]], [0.440, [0.000, 1.000, 0.211]], [0.442, [0.000, 1.000, 0.232]], [0.444, [0.000, 1.000, 0.232]], [0.446, [0.000, 1.000, 0.253]], [0.448, [0.000, 1.000, 0.253]], [0.450, [0.000, 1.000, 0.274]], [0.452, [0.000, 1.000, 0.274]], [0.454, [0.000, 1.000, 0.295]], [0.456, [0.000, 1.000, 0.295]], [0.458, [0.000, 1.000, 0.316]], [0.460, [0.000, 1.000, 0.316]], [0.462, [0.000, 1.000, 0.337]], [0.464, [0.000, 1.000, 0.337]], [0.466, [0.000, 1.000, 0.358]], [0.468, [0.000, 1.000, 0.358]], [0.470, [0.000, 1.000, 0.380]], [0.472, [0.000, 1.000, 0.380]], [0.474, [0.000, 1.000, 0.401]], [0.476, [0.000, 1.000, 0.401]], [0.477, [0.000, 1.000, 0.422]], [0.479, [0.000, 1.000, 0.422]], [0.481, [0.000, 1.000, 0.443]], [0.483, [0.000, 1.000, 0.443]], [0.485, [0.000, 1.000, 0.464]], [0.487, [0.000, 1.000, 0.464]], [0.489, [0.000, 1.000, 0.485]], [0.491, [0.000, 1.000, 0.485]], [0.493, [0.000, 1.000, 0.506]], [0.495, [0.000, 1.000, 0.506]], [0.497, [0.000, 1.000, 0.527]], [0.499, [0.000, 1.000, 0.527]], [0.501, [0.000, 1.000, 0.548]], [0.503, [0.000, 1.000, 0.548]], [0.505, [0.000, 1.000, 0.569]], [0.507, [0.000, 1.000, 0.569]], [0.509, [0.000, 1.000, 0.590]], [0.511, [0.000, 1.000, 0.590]], [0.513, [0.000, 1.000, 0.611]], [0.515, [0.000, 1.000, 0.611]], [0.517, [0.000, 1.000, 0.633]], [0.519, [0.000, 1.000, 0.633]], [0.521, [0.000, 1.000, 0.654]], [0.523, [0.000, 1.000, 0.654]], [0.524, [0.000, 1.000, 0.675]], [0.526, [0.000, 1.000, 0.675]], [0.528, [0.000, 1.000, 0.696]], [0.530, [0.000, 1.000, 0.696]], [0.532, [0.000, 1.000, 0.717]], [0.534, [0.000, 1.000, 0.717]], [0.536, [0.000, 1.000, 0.738]], [0.538, [0.000, 1.000, 0.738]], [0.540, [0.000, 1.000, 0.759]], [0.542, [0.000, 1.000, 0.759]], [0.544, [0.000, 1.000, 0.780]], [0.546, [0.000, 1.000, 0.780]], [0.548, [0.000, 1.000, 0.801]], [0.550, [0.000, 1.000, 0.801]], [0.552, [0.000, 1.000, 0.822]], [0.554, [0.000, 1.000, 0.822]], [0.556, [0.000, 1.000, 0.843]], [0.558, [0.000, 1.000, 0.843]], [0.560, [0.000, 1.000, 0.864]], [0.562, [0.000, 1.000, 0.864]], [0.564, [0.000, 1.000, 0.886]], [0.566, [0.000, 1.000, 0.886]], [0.568, [0.000, 1.000, 0.907]], [0.569, [0.000, 1.000, 0.907]], [0.571, [0.000, 1.000, 0.928]], [0.573, [0.000, 1.000, 0.928]], [0.575, [0.000, 1.000, 0.949]], [0.577, [0.000, 1.000, 0.949]], [0.579, [0.000, 1.000, 0.970]], [0.581, [0.000, 1.000, 0.970]], [0.583, [0.000, 1.000, 0.991]], [0.585, [0.000, 1.000, 0.991]], [0.587, [0.000, 0.988, 1.000]], [0.589, [0.000, 0.988, 1.000]], [0.591, [0.000, 0.967, 1.000]], [0.593, [0.000, 0.967, 1.000]], [0.595, [0.000, 0.945, 1.000]], [0.597, [0.000, 0.945, 1.000]], [0.599, [0.000, 0.924, 1.000]], [0.601, [0.000, 0.924, 1.000]], [0.603, [0.000, 0.903, 1.000]], [0.605, [0.000, 0.903, 1.000]], [0.607, [0.000, 0.881, 1.000]], [0.609, [0.000, 0.881, 1.000]], [0.611, [0.000, 0.860, 1.000]], [0.613, [0.000, 0.860, 1.000]], [0.614, [0.000, 0.839, 1.000]], [0.616, [0.000, 0.839, 1.000]], [0.618, [0.000, 0.817, 1.000]], [0.620, [0.000, 0.817, 1.000]], [0.622, [0.000, 0.796, 1.000]], [0.624, [0.000, 0.796, 1.000]], [0.626, [0.000, 0.775, 1.000]], [0.628, [0.000, 0.775, 1.000]], [0.630, [0.000, 0.753, 1.000]], [0.632, [0.000, 0.753, 1.000]], [0.634, [0.000, 0.732, 1.000]], [0.636, [0.000, 0.732, 1.000]], [0.638, [0.000, 0.711, 1.000]], [0.640, [0.000, 0.711, 1.000]], [0.642, [0.000, 0.689, 1.000]], [0.644, [0.000, 0.689, 1.000]], [0.646, [0.000, 0.668, 1.000]], [0.648, [0.000, 0.668, 1.000]], [0.650, [0.000, 0.647, 1.000]], [0.652, [0.000, 0.647, 1.000]], [0.654, [0.000, 0.626, 1.000]], [0.656, [0.000, 0.626, 1.000]], [0.658, [0.000, 0.604, 1.000]], [0.659, [0.000, 0.604, 1.000]], [0.661, [0.000, 0.583, 1.000]], [0.663, [0.000, 0.583, 1.000]], [0.665, [0.000, 0.562, 1.000]], [0.667, [0.000, 0.562, 1.000]], [0.669, [0.000, 0.540, 1.000]], [0.671, [0.000, 0.540, 1.000]], [0.673, [0.000, 0.519, 1.000]], [0.675, [0.000, 0.519, 1.000]], [0.677, [0.000, 0.498, 1.000]], [0.679, [0.000, 0.498, 1.000]], [0.681, [0.000, 0.476, 1.000]], [0.683, [0.000, 0.476, 1.000]], [0.685, [0.000, 0.455, 1.000]], [0.687, [0.000, 0.455, 1.000]], [0.689, [0.000, 0.434, 1.000]], [0.691, [0.000, 0.434, 1.000]], [0.693, [0.000, 0.412, 1.000]], [0.695, [0.000, 0.412, 1.000]], [0.697, [0.000, 0.391, 1.000]], [0.699, [0.000, 0.391, 1.000]], [0.701, [0.000, 0.370, 1.000]], [0.703, [0.000, 0.370, 1.000]], [0.705, [0.000, 0.348, 1.000]], [0.706, [0.000, 0.348, 1.000]], [0.708, [0.000, 0.327, 1.000]], [0.710, [0.000, 0.327, 1.000]], [0.712, [0.000, 0.306, 1.000]], [0.714, [0.000, 0.306, 1.000]], [0.716, [0.000, 0.285, 1.000]], [0.718, [0.000, 0.285, 1.000]], [0.720, [0.000, 0.263, 1.000]], [0.722, [0.000, 0.263, 1.000]], [0.724, [0.000, 0.242, 1.000]], [0.726, [0.000, 0.242, 1.000]], [0.728, [0.000, 0.221, 1.000]], [0.730, [0.000, 0.221, 1.000]], [0.732, [0.000, 0.199, 1.000]], [0.734, [0.000, 0.199, 1.000]], [0.736, [0.000, 0.178, 1.000]], [0.738, [0.000, 0.178, 1.000]], [0.740, [0.000, 0.157, 1.000]], [0.742, [0.000, 0.157, 1.000]], [0.744, [0.000, 0.135, 1.000]], [0.746, [0.000, 0.135, 1.000]], [0.748, [0.000, 0.114, 1.000]], [0.750, [0.000, 0.114, 1.000]], [0.751, [0.000, 0.093, 1.000]], [0.753, [0.000, 0.093, 1.000]], [0.755, [0.000, 0.071, 1.000]], [0.757, [0.000, 0.071, 1.000]], [0.759, [0.000, 0.050, 1.000]], [0.761, [0.000, 0.050, 1.000]], [0.763, [0.000, 0.029, 1.000]], [0.765, [0.000, 0.029, 1.000]], [0.767, [0.000, 0.007, 1.000]], [0.769, [0.000, 0.007, 1.000]], [0.771, [0.014, 0.000, 1.000]], [0.773, [0.014, 0.000, 1.000]], [0.775, [0.035, 0.000, 1.000]], [0.777, [0.035, 0.000, 1.000]], [0.779, [0.056, 0.000, 1.000]], [0.781, [0.056, 0.000, 1.000]], [0.783, [0.078, 0.000, 1.000]], [0.785, [0.078, 0.000, 1.000]], [0.787, [0.099, 0.000, 1.000]], [0.789, [0.099, 0.000, 1.000]], [0.791, [0.120, 0.000, 1.000]], [0.793, [0.120, 0.000, 1.000]], [0.795, [0.142, 0.000, 1.000]], [0.796, [0.142, 0.000, 1.000]], [0.798, [0.163, 0.000, 1.000]], [0.800, [0.163, 0.000, 1.000]], [0.802, [0.184, 0.000, 1.000]], [0.804, [0.184, 0.000, 1.000]], [0.806, [0.206, 0.000, 1.000]], [0.808, [0.206, 0.000, 1.000]], [0.810, [0.227, 0.000, 1.000]], [0.812, [0.227, 0.000, 1.000]], [0.814, [0.248, 0.000, 1.000]], [0.816, [0.248, 0.000, 1.000]], [0.818, [0.270, 0.000, 1.000]], [0.820, [0.270, 0.000, 1.000]], [0.822, [0.291, 0.000, 1.000]], [0.824, [0.291, 0.000, 1.000]], [0.826, [0.312, 0.000, 1.000]], [0.828, [0.312, 0.000, 1.000]], [0.830, [0.334, 0.000, 1.000]], [0.832, [0.334, 0.000, 1.000]], [0.834, [0.355, 0.000, 1.000]], [0.836, [0.355, 0.000, 1.000]], [0.838, [0.376, 0.000, 1.000]], [0.840, [0.376, 0.000, 1.000]], [0.841, [0.397, 0.000, 1.000]], [0.843, [0.397, 0.000, 1.000]], [0.845, [0.419, 0.000, 1.000]], [0.847, [0.419, 0.000, 1.000]], [0.849, [0.440, 0.000, 1.000]], [0.851, [0.440, 0.000, 1.000]], [0.853, [0.461, 0.000, 1.000]], [0.855, [0.461, 0.000, 1.000]], [0.857, [0.483, 0.000, 1.000]], [0.859, [0.483, 0.000, 1.000]], [0.861, [0.504, 0.000, 1.000]], [0.863, [0.504, 0.000, 1.000]], [0.865, [0.525, 0.000, 1.000]], [0.867, [0.525, 0.000, 1.000]], [0.869, [0.547, 0.000, 1.000]], [0.871, [0.547, 0.000, 1.000]], [0.873, [0.568, 0.000, 1.000]], [0.875, [0.568, 0.000, 1.000]], [0.877, [0.589, 0.000, 1.000]], [0.879, [0.589, 0.000, 1.000]], [0.881, [0.611, 0.000, 1.000]], [0.883, [0.611, 0.000, 1.000]], [0.885, [0.632, 0.000, 1.000]], [0.886, [0.632, 0.000, 1.000]], [0.888, [0.653, 0.000, 1.000]], [0.890, [0.653, 0.000, 1.000]], [0.892, [0.675, 0.000, 1.000]], [0.894, [0.675, 0.000, 1.000]], [0.896, [0.696, 0.000, 1.000]], [0.898, [0.696, 0.000, 1.000]], [0.900, [0.717, 0.000, 1.000]], [0.902, [0.717, 0.000, 1.000]], [0.904, [0.738, 0.000, 1.000]], [0.906, [0.738, 0.000, 1.000]], [0.908, [0.760, 0.000, 1.000]], [0.910, [0.760, 0.000, 1.000]], [0.912, [0.781, 0.000, 1.000]], [0.914, [0.781, 0.000, 1.000]], [0.916, [0.802, 0.000, 1.000]], [0.918, [0.802, 0.000, 1.000]], [0.920, [0.824, 0.000, 1.000]], [0.922, [0.824, 0.000, 1.000]], [0.924, [0.845, 0.000, 1.000]], [0.926, [0.845, 0.000, 1.000]], [0.928, [0.866, 0.000, 1.000]], [0.930, [0.866, 0.000, 1.000]], [0.932, [0.888, 0.000, 1.000]], [0.933, [0.888, 0.000, 1.000]], [0.935, [0.909, 0.000, 1.000]], [0.937, [0.909, 0.000, 1.000]], [0.939, [0.930, 0.000, 1.000]], [0.941, [0.930, 0.000, 1.000]], [0.943, [0.952, 0.000, 1.000]], [0.945, [0.952, 0.000, 1.000]], [0.947, [0.973, 0.000, 1.000]], [0.949, [0.973, 0.000, 1.000]], [0.951, [0.994, 0.000, 1.000]], [0.953, [0.994, 0.000, 1.000]], [0.955, [1.000, 0.000, 0.984]], [0.957, [1.000, 0.000, 0.984]], [0.959, [1.000, 0.000, 0.963]], [0.961, [1.000, 0.000, 0.963]], [0.963, [1.000, 0.000, 0.942]], [0.965, [1.000, 0.000, 0.942]], [0.967, [1.000, 0.000, 0.921]], [0.969, [1.000, 0.000, 0.921]], [0.971, [1.000, 0.000, 0.899]], [0.973, [1.000, 0.000, 0.899]], [0.975, [1.000, 0.000, 0.878]], [0.977, [1.000, 0.000, 0.878]], [0.978, [1.000, 0.000, 0.857]], [0.980, [1.000, 0.000, 0.857]], [0.982, [1.000, 0.000, 0.835]], [0.984, [1.000, 0.000, 0.835]], [0.986, [1.000, 0.000, 0.814]], [0.988, [1.000, 0.000, 0.814]], [0.990, [1.000, 0.000, 0.793]], [0.992, [1.000, 0.000, 0.793]], [0.994, [1.000, 0.000, 0.771]], [0.996, [1.000, 0.000, 0.771]], [0.998, [1.000, 0.000, 0.750]], [1.000, [1.000, 0.000, 0.750]]];
+var gist_stern = [[0.000, [0.000, 0.000, 0.000]], [0.002, [0.000, 0.000, 0.000]], [0.004, [0.072, 0.004, 0.008]], [0.006, [0.072, 0.004, 0.008]], [0.008, [0.143, 0.008, 0.016]], [0.010, [0.143, 0.008, 0.016]], [0.012, [0.215, 0.012, 0.024]], [0.014, [0.215, 0.012, 0.024]], [0.016, [0.287, 0.016, 0.031]], [0.018, [0.287, 0.016, 0.031]], [0.020, [0.358, 0.020, 0.039]], [0.022, [0.358, 0.020, 0.039]], [0.023, [0.430, 0.024, 0.047]], [0.025, [0.430, 0.024, 0.047]], [0.027, [0.502, 0.027, 0.055]], [0.029, [0.502, 0.027, 0.055]], [0.031, [0.574, 0.031, 0.063]], [0.033, [0.574, 0.031, 0.063]], [0.035, [0.645, 0.035, 0.071]], [0.037, [0.645, 0.035, 0.071]], [0.039, [0.717, 0.039, 0.078]], [0.041, [0.717, 0.039, 0.078]], [0.043, [0.789, 0.043, 0.086]], [0.045, [0.789, 0.043, 0.086]], [0.047, [0.860, 0.047, 0.094]], [0.049, [0.860, 0.047, 0.094]], [0.051, [0.932, 0.051, 0.102]], [0.053, [0.932, 0.051, 0.102]], [0.055, [0.999, 0.055, 0.110]], [0.057, [0.999, 0.055, 0.110]], [0.059, [0.979, 0.059, 0.118]], [0.061, [0.979, 0.059, 0.118]], [0.063, [0.960, 0.063, 0.125]], [0.065, [0.960, 0.063, 0.125]], [0.067, [0.940, 0.067, 0.133]], [0.068, [0.940, 0.067, 0.133]], [0.070, [0.921, 0.071, 0.141]], [0.072, [0.921, 0.071, 0.141]], [0.074, [0.901, 0.075, 0.149]], [0.076, [0.901, 0.075, 0.149]], [0.078, [0.882, 0.078, 0.157]], [0.080, [0.882, 0.078, 0.157]], [0.082, [0.862, 0.082, 0.165]], [0.084, [0.862, 0.082, 0.165]], [0.086, [0.843, 0.086, 0.173]], [0.088, [0.843, 0.086, 0.173]], [0.090, [0.823, 0.090, 0.180]], [0.092, [0.823, 0.090, 0.180]], [0.094, [0.804, 0.094, 0.188]], [0.096, [0.804, 0.094, 0.188]], [0.098, [0.784, 0.098, 0.196]], [0.100, [0.784, 0.098, 0.196]], [0.102, [0.765, 0.102, 0.204]], [0.104, [0.765, 0.102, 0.204]], [0.106, [0.745, 0.106, 0.212]], [0.108, [0.745, 0.106, 0.212]], [0.110, [0.725, 0.110, 0.220]], [0.112, [0.725, 0.110, 0.220]], [0.114, [0.706, 0.114, 0.227]], [0.115, [0.706, 0.114, 0.227]], [0.117, [0.686, 0.118, 0.235]], [0.119, [0.686, 0.118, 0.235]], [0.121, [0.667, 0.122, 0.243]], [0.123, [0.667, 0.122, 0.243]], [0.125, [0.647, 0.125, 0.251]], [0.127, [0.647, 0.125, 0.251]], [0.129, [0.628, 0.129, 0.259]], [0.131, [0.628, 0.129, 0.259]], [0.133, [0.608, 0.133, 0.267]], [0.135, [0.608, 0.133, 0.267]], [0.137, [0.589, 0.137, 0.275]], [0.139, [0.589, 0.137, 0.275]], [0.141, [0.569, 0.141, 0.282]], [0.143, [0.569, 0.141, 0.282]], [0.145, [0.550, 0.145, 0.290]], [0.147, [0.550, 0.145, 0.290]], [0.149, [0.530, 0.149, 0.298]], [0.151, [0.530, 0.149, 0.298]], [0.153, [0.511, 0.153, 0.306]], [0.155, [0.511, 0.153, 0.306]], [0.157, [0.491, 0.157, 0.314]], [0.159, [0.491, 0.157, 0.314]], [0.160, [0.471, 0.161, 0.322]], [0.162, [0.471, 0.161, 0.322]], [0.164, [0.452, 0.165, 0.329]], [0.166, [0.452, 0.165, 0.329]], [0.168, [0.432, 0.169, 0.337]], [0.170, [0.432, 0.169, 0.337]], [0.172, [0.413, 0.173, 0.345]], [0.174, [0.413, 0.173, 0.345]], [0.176, [0.393, 0.176, 0.353]], [0.178, [0.393, 0.176, 0.353]], [0.180, [0.374, 0.180, 0.361]], [0.182, [0.374, 0.180, 0.361]], [0.184, [0.354, 0.184, 0.369]], [0.186, [0.354, 0.184, 0.369]], [0.188, [0.335, 0.188, 0.376]], [0.190, [0.335, 0.188, 0.376]], [0.192, [0.315, 0.192, 0.384]], [0.194, [0.315, 0.192, 0.384]], [0.196, [0.296, 0.196, 0.392]], [0.198, [0.296, 0.196, 0.392]], [0.200, [0.276, 0.200, 0.400]], [0.202, [0.276, 0.200, 0.400]], [0.204, [0.257, 0.204, 0.408]], [0.205, [0.257, 0.204, 0.408]], [0.207, [0.237, 0.208, 0.416]], [0.209, [0.237, 0.208, 0.416]], [0.211, [0.217, 0.212, 0.424]], [0.213, [0.217, 0.212, 0.424]], [0.215, [0.198, 0.216, 0.431]], [0.217, [0.198, 0.216, 0.431]], [0.219, [0.178, 0.220, 0.439]], [0.221, [0.178, 0.220, 0.439]], [0.223, [0.159, 0.224, 0.447]], [0.225, [0.159, 0.224, 0.447]], [0.227, [0.139, 0.227, 0.455]], [0.229, [0.139, 0.227, 0.455]], [0.231, [0.120, 0.231, 0.463]], [0.233, [0.120, 0.231, 0.463]], [0.235, [0.100, 0.235, 0.471]], [0.237, [0.100, 0.235, 0.471]], [0.239, [0.081, 0.239, 0.478]], [0.241, [0.081, 0.239, 0.478]], [0.243, [0.061, 0.243, 0.486]], [0.245, [0.061, 0.243, 0.486]], [0.247, [0.042, 0.247, 0.494]], [0.249, [0.042, 0.247, 0.494]], [0.250, [0.251, 0.251, 0.502]], [0.252, [0.251, 0.251, 0.502]], [0.254, [0.255, 0.255, 0.510]], [0.256, [0.255, 0.255, 0.510]], [0.258, [0.259, 0.259, 0.518]], [0.260, [0.259, 0.259, 0.518]], [0.262, [0.263, 0.263, 0.525]], [0.264, [0.263, 0.263, 0.525]], [0.266, [0.267, 0.267, 0.533]], [0.268, [0.267, 0.267, 0.533]], [0.270, [0.271, 0.271, 0.541]], [0.272, [0.271, 0.271, 0.541]], [0.274, [0.275, 0.275, 0.549]], [0.276, [0.275, 0.275, 0.549]], [0.278, [0.278, 0.278, 0.557]], [0.280, [0.278, 0.278, 0.557]], [0.282, [0.282, 0.282, 0.565]], [0.284, [0.282, 0.282, 0.565]], [0.286, [0.286, 0.286, 0.573]], [0.288, [0.286, 0.286, 0.573]], [0.290, [0.290, 0.290, 0.580]], [0.292, [0.290, 0.290, 0.580]], [0.294, [0.294, 0.294, 0.588]], [0.295, [0.294, 0.294, 0.588]], [0.297, [0.298, 0.298, 0.596]], [0.299, [0.298, 0.298, 0.596]], [0.301, [0.302, 0.302, 0.604]], [0.303, [0.302, 0.302, 0.604]], [0.305, [0.306, 0.306, 0.612]], [0.307, [0.306, 0.306, 0.612]], [0.309, [0.310, 0.310, 0.620]], [0.311, [0.310, 0.310, 0.620]], [0.313, [0.314, 0.314, 0.627]], [0.315, [0.314, 0.314, 0.627]], [0.317, [0.318, 0.318, 0.635]], [0.319, [0.318, 0.318, 0.635]], [0.321, [0.322, 0.322, 0.643]], [0.323, [0.322, 0.322, 0.643]], [0.325, [0.325, 0.325, 0.651]], [0.327, [0.325, 0.325, 0.651]], [0.329, [0.329, 0.329, 0.659]], [0.331, [0.329, 0.329, 0.659]], [0.333, [0.333, 0.333, 0.667]], [0.335, [0.333, 0.333, 0.667]], [0.337, [0.337, 0.337, 0.675]], [0.339, [0.337, 0.337, 0.675]], [0.341, [0.341, 0.341, 0.682]], [0.342, [0.341, 0.341, 0.682]], [0.344, [0.345, 0.345, 0.690]], [0.346, [0.345, 0.345, 0.690]], [0.348, [0.349, 0.349, 0.698]], [0.350, [0.349, 0.349, 0.698]], [0.352, [0.353, 0.353, 0.706]], [0.354, [0.353, 0.353, 0.706]], [0.356, [0.357, 0.357, 0.714]], [0.358, [0.357, 0.357, 0.714]], [0.360, [0.361, 0.361, 0.722]], [0.362, [0.361, 0.361, 0.722]], [0.364, [0.365, 0.365, 0.729]], [0.366, [0.365, 0.365, 0.729]], [0.368, [0.369, 0.369, 0.737]], [0.370, [0.369, 0.369, 0.737]], [0.372, [0.373, 0.373, 0.745]], [0.374, [0.373, 0.373, 0.745]], [0.376, [0.376, 0.376, 0.753]], [0.378, [0.376, 0.376, 0.753]], [0.380, [0.380, 0.380, 0.761]], [0.382, [0.380, 0.380, 0.761]], [0.384, [0.384, 0.384, 0.769]], [0.386, [0.384, 0.384, 0.769]], [0.387, [0.388, 0.388, 0.776]], [0.389, [0.388, 0.388, 0.776]], [0.391, [0.392, 0.392, 0.784]], [0.393, [0.392, 0.392, 0.784]], [0.395, [0.396, 0.396, 0.792]], [0.397, [0.396, 0.396, 0.792]], [0.399, [0.400, 0.400, 0.800]], [0.401, [0.400, 0.400, 0.800]], [0.403, [0.404, 0.404, 0.808]], [0.405, [0.404, 0.404, 0.808]], [0.407, [0.408, 0.408, 0.816]], [0.409, [0.408, 0.408, 0.816]], [0.411, [0.412, 0.412, 0.824]], [0.413, [0.412, 0.412, 0.824]], [0.415, [0.416, 0.416, 0.831]], [0.417, [0.416, 0.416, 0.831]], [0.419, [0.420, 0.420, 0.839]], [0.421, [0.420, 0.420, 0.839]], [0.423, [0.424, 0.424, 0.847]], [0.425, [0.424, 0.424, 0.847]], [0.427, [0.427, 0.427, 0.855]], [0.429, [0.427, 0.427, 0.855]], [0.431, [0.431, 0.431, 0.863]], [0.432, [0.431, 0.431, 0.863]], [0.434, [0.435, 0.435, 0.871]], [0.436, [0.435, 0.435, 0.871]], [0.438, [0.439, 0.439, 0.878]], [0.440, [0.439, 0.439, 0.878]], [0.442, [0.443, 0.443, 0.886]], [0.444, [0.443, 0.443, 0.886]], [0.446, [0.447, 0.447, 0.894]], [0.448, [0.447, 0.447, 0.894]], [0.450, [0.451, 0.451, 0.902]], [0.452, [0.451, 0.451, 0.902]], [0.454, [0.455, 0.455, 0.910]], [0.456, [0.455, 0.455, 0.910]], [0.458, [0.459, 0.459, 0.918]], [0.460, [0.459, 0.459, 0.918]], [0.462, [0.463, 0.463, 0.925]], [0.464, [0.463, 0.463, 0.925]], [0.466, [0.467, 0.467, 0.933]], [0.468, [0.467, 0.467, 0.933]], [0.470, [0.471, 0.471, 0.941]], [0.472, [0.471, 0.471, 0.941]], [0.474, [0.475, 0.475, 0.949]], [0.476, [0.475, 0.475, 0.949]], [0.477, [0.478, 0.478, 0.957]], [0.479, [0.478, 0.478, 0.957]], [0.481, [0.482, 0.482, 0.965]], [0.483, [0.482, 0.482, 0.965]], [0.485, [0.486, 0.486, 0.973]], [0.487, [0.486, 0.486, 0.973]], [0.489, [0.490, 0.490, 0.980]], [0.491, [0.490, 0.490, 0.980]], [0.493, [0.494, 0.494, 0.988]], [0.495, [0.494, 0.494, 0.988]], [0.497, [0.498, 0.498, 0.996]], [0.499, [0.498, 0.498, 0.996]], [0.501, [0.502, 0.502, 0.992]], [0.503, [0.502, 0.502, 0.992]], [0.505, [0.506, 0.506, 0.975]], [0.507, [0.506, 0.506, 0.975]], [0.509, [0.510, 0.510, 0.958]], [0.511, [0.510, 0.510, 0.958]], [0.513, [0.514, 0.514, 0.942]], [0.515, [0.514, 0.514, 0.942]], [0.517, [0.518, 0.518, 0.925]], [0.519, [0.518, 0.518, 0.925]], [0.521, [0.522, 0.522, 0.908]], [0.523, [0.522, 0.522, 0.908]], [0.524, [0.525, 0.525, 0.892]], [0.526, [0.525, 0.525, 0.892]], [0.528, [0.529, 0.529, 0.875]], [0.530, [0.529, 0.529, 0.875]], [0.532, [0.533, 0.533, 0.858]], [0.534, [0.533, 0.533, 0.858]], [0.536, [0.537, 0.537, 0.841]], [0.538, [0.537, 0.537, 0.841]], [0.540, [0.541, 0.541, 0.825]], [0.542, [0.541, 0.541, 0.825]], [0.544, [0.545, 0.545, 0.808]], [0.546, [0.545, 0.545, 0.808]], [0.548, [0.549, 0.549, 0.791]], [0.550, [0.549, 0.549, 0.791]], [0.552, [0.553, 0.553, 0.775]], [0.554, [0.553, 0.553, 0.775]], [0.556, [0.557, 0.557, 0.758]], [0.558, [0.557, 0.557, 0.758]], [0.560, [0.561, 0.561, 0.741]], [0.562, [0.561, 0.561, 0.741]], [0.564, [0.565, 0.565, 0.725]], [0.566, [0.565, 0.565, 0.725]], [0.568, [0.569, 0.569, 0.708]], [0.569, [0.569, 0.569, 0.708]], [0.571, [0.573, 0.573, 0.691]], [0.573, [0.573, 0.573, 0.691]], [0.575, [0.576, 0.576, 0.675]], [0.577, [0.576, 0.576, 0.675]], [0.579, [0.580, 0.580, 0.658]], [0.581, [0.580, 0.580, 0.658]], [0.583, [0.584, 0.584, 0.641]], [0.585, [0.584, 0.584, 0.641]], [0.587, [0.588, 0.588, 0.625]], [0.589, [0.588, 0.588, 0.625]], [0.591, [0.592, 0.592, 0.608]], [0.593, [0.592, 0.592, 0.608]], [0.595, [0.596, 0.596, 0.591]], [0.597, [0.596, 0.596, 0.591]], [0.599, [0.600, 0.600, 0.574]], [0.601, [0.600, 0.600, 0.574]], [0.603, [0.604, 0.604, 0.558]], [0.605, [0.604, 0.604, 0.558]], [0.607, [0.608, 0.608, 0.541]], [0.609, [0.608, 0.608, 0.541]], [0.611, [0.612, 0.612, 0.524]], [0.613, [0.612, 0.612, 0.524]], [0.614, [0.616, 0.616, 0.508]], [0.616, [0.616, 0.616, 0.508]], [0.618, [0.620, 0.620, 0.491]], [0.620, [0.620, 0.620, 0.491]], [0.622, [0.624, 0.624, 0.474]], [0.624, [0.624, 0.624, 0.474]], [0.626, [0.627, 0.627, 0.458]], [0.628, [0.627, 0.627, 0.458]], [0.630, [0.631, 0.631, 0.441]], [0.632, [0.631, 0.631, 0.441]], [0.634, [0.635, 0.635, 0.424]], [0.636, [0.635, 0.635, 0.424]], [0.638, [0.639, 0.639, 0.408]], [0.640, [0.639, 0.639, 0.408]], [0.642, [0.643, 0.643, 0.391]], [0.644, [0.643, 0.643, 0.391]], [0.646, [0.647, 0.647, 0.374]], [0.648, [0.647, 0.647, 0.374]], [0.650, [0.651, 0.651, 0.358]], [0.652, [0.651, 0.651, 0.358]], [0.654, [0.655, 0.655, 0.341]], [0.656, [0.655, 0.655, 0.341]], [0.658, [0.659, 0.659, 0.324]], [0.659, [0.659, 0.659, 0.324]], [0.661, [0.663, 0.663, 0.307]], [0.663, [0.663, 0.663, 0.307]], [0.665, [0.667, 0.667, 0.291]], [0.667, [0.667, 0.667, 0.291]], [0.669, [0.671, 0.671, 0.274]], [0.671, [0.671, 0.671, 0.274]], [0.673, [0.675, 0.675, 0.257]], [0.675, [0.675, 0.675, 0.257]], [0.677, [0.678, 0.678, 0.241]], [0.679, [0.678, 0.678, 0.241]], [0.681, [0.682, 0.682, 0.224]], [0.683, [0.682, 0.682, 0.224]], [0.685, [0.686, 0.686, 0.207]], [0.687, [0.686, 0.686, 0.207]], [0.689, [0.690, 0.690, 0.191]], [0.691, [0.690, 0.690, 0.191]], [0.693, [0.694, 0.694, 0.174]], [0.695, [0.694, 0.694, 0.174]], [0.697, [0.698, 0.698, 0.157]], [0.699, [0.698, 0.698, 0.157]], [0.701, [0.702, 0.702, 0.141]], [0.703, [0.702, 0.702, 0.141]], [0.705, [0.706, 0.706, 0.124]], [0.706, [0.706, 0.706, 0.124]], [0.708, [0.710, 0.710, 0.107]], [0.710, [0.710, 0.710, 0.107]], [0.712, [0.714, 0.714, 0.091]], [0.714, [0.714, 0.714, 0.091]], [0.716, [0.718, 0.718, 0.074]], [0.718, [0.718, 0.718, 0.074]], [0.720, [0.722, 0.722, 0.057]], [0.722, [0.722, 0.722, 0.057]], [0.724, [0.725, 0.725, 0.040]], [0.726, [0.725, 0.725, 0.040]], [0.728, [0.729, 0.729, 0.024]], [0.730, [0.729, 0.729, 0.024]], [0.732, [0.733, 0.733, 0.007]], [0.734, [0.733, 0.733, 0.007]], [0.736, [0.737, 0.737, 0.009]], [0.738, [0.737, 0.737, 0.009]], [0.740, [0.741, 0.741, 0.023]], [0.742, [0.741, 0.741, 0.023]], [0.744, [0.745, 0.745, 0.038]], [0.746, [0.745, 0.745, 0.038]], [0.748, [0.749, 0.749, 0.053]], [0.750, [0.749, 0.749, 0.053]], [0.751, [0.753, 0.753, 0.068]], [0.753, [0.753, 0.753, 0.068]], [0.755, [0.757, 0.757, 0.083]], [0.757, [0.757, 0.757, 0.083]], [0.759, [0.761, 0.761, 0.097]], [0.761, [0.761, 0.761, 0.097]], [0.763, [0.765, 0.765, 0.112]], [0.765, [0.765, 0.765, 0.112]], [0.767, [0.769, 0.769, 0.127]], [0.769, [0.769, 0.769, 0.127]], [0.771, [0.773, 0.773, 0.142]], [0.773, [0.773, 0.773, 0.142]], [0.775, [0.776, 0.776, 0.156]], [0.777, [0.776, 0.776, 0.156]], [0.779, [0.780, 0.780, 0.171]], [0.781, [0.780, 0.780, 0.171]], [0.783, [0.784, 0.784, 0.186]], [0.785, [0.784, 0.784, 0.186]], [0.787, [0.788, 0.788, 0.201]], [0.789, [0.788, 0.788, 0.201]], [0.791, [0.792, 0.792, 0.216]], [0.793, [0.792, 0.792, 0.216]], [0.795, [0.796, 0.796, 0.230]], [0.796, [0.796, 0.796, 0.230]], [0.798, [0.800, 0.800, 0.245]], [0.800, [0.800, 0.800, 0.245]], [0.802, [0.804, 0.804, 0.260]], [0.804, [0.804, 0.804, 0.260]], [0.806, [0.808, 0.808, 0.275]], [0.808, [0.808, 0.808, 0.275]], [0.810, [0.812, 0.812, 0.290]], [0.812, [0.812, 0.812, 0.290]], [0.814, [0.816, 0.816, 0.304]], [0.816, [0.816, 0.816, 0.304]], [0.818, [0.820, 0.820, 0.319]], [0.820, [0.820, 0.820, 0.319]], [0.822, [0.824, 0.824, 0.334]], [0.824, [0.824, 0.824, 0.334]], [0.826, [0.827, 0.827, 0.349]], [0.828, [0.827, 0.827, 0.349]], [0.830, [0.831, 0.831, 0.364]], [0.832, [0.831, 0.831, 0.364]], [0.834, [0.835, 0.835, 0.378]], [0.836, [0.835, 0.835, 0.378]], [0.838, [0.839, 0.839, 0.393]], [0.840, [0.839, 0.839, 0.393]], [0.841, [0.843, 0.843, 0.408]], [0.843, [0.843, 0.843, 0.408]], [0.845, [0.847, 0.847, 0.423]], [0.847, [0.847, 0.847, 0.423]], [0.849, [0.851, 0.851, 0.438]], [0.851, [0.851, 0.851, 0.438]], [0.853, [0.855, 0.855, 0.452]], [0.855, [0.855, 0.855, 0.452]], [0.857, [0.859, 0.859, 0.467]], [0.859, [0.859, 0.859, 0.467]], [0.861, [0.863, 0.863, 0.482]], [0.863, [0.863, 0.863, 0.482]], [0.865, [0.867, 0.867, 0.497]], [0.867, [0.867, 0.867, 0.497]], [0.869, [0.871, 0.871, 0.512]], [0.871, [0.871, 0.871, 0.512]], [0.873, [0.875, 0.875, 0.526]], [0.875, [0.875, 0.875, 0.526]], [0.877, [0.878, 0.878, 0.541]], [0.879, [0.878, 0.878, 0.541]], [0.881, [0.882, 0.882, 0.556]], [0.883, [0.882, 0.882, 0.556]], [0.885, [0.886, 0.886, 0.571]], [0.886, [0.886, 0.886, 0.571]], [0.888, [0.890, 0.890, 0.586]], [0.890, [0.890, 0.890, 0.586]], [0.892, [0.894, 0.894, 0.600]], [0.894, [0.894, 0.894, 0.600]], [0.896, [0.898, 0.898, 0.615]], [0.898, [0.898, 0.898, 0.615]], [0.900, [0.902, 0.902, 0.630]], [0.902, [0.902, 0.902, 0.630]], [0.904, [0.906, 0.906, 0.645]], [0.906, [0.906, 0.906, 0.645]], [0.908, [0.910, 0.910, 0.660]], [0.910, [0.910, 0.910, 0.660]], [0.912, [0.914, 0.914, 0.674]], [0.914, [0.914, 0.914, 0.674]], [0.916, [0.918, 0.918, 0.689]], [0.918, [0.918, 0.918, 0.689]], [0.920, [0.922, 0.922, 0.704]], [0.922, [0.922, 0.922, 0.704]], [0.924, [0.925, 0.925, 0.719]], [0.926, [0.925, 0.925, 0.719]], [0.928, [0.929, 0.929, 0.734]], [0.930, [0.929, 0.929, 0.734]], [0.932, [0.933, 0.933, 0.748]], [0.933, [0.933, 0.933, 0.748]], [0.935, [0.937, 0.937, 0.763]], [0.937, [0.937, 0.937, 0.763]], [0.939, [0.941, 0.941, 0.778]], [0.941, [0.941, 0.941, 0.778]], [0.943, [0.945, 0.945, 0.793]], [0.945, [0.945, 0.945, 0.793]], [0.947, [0.949, 0.949, 0.808]], [0.949, [0.949, 0.949, 0.808]], [0.951, [0.953, 0.953, 0.822]], [0.953, [0.953, 0.953, 0.822]], [0.955, [0.957, 0.957, 0.837]], [0.957, [0.957, 0.957, 0.837]], [0.959, [0.961, 0.961, 0.852]], [0.961, [0.961, 0.961, 0.852]], [0.963, [0.965, 0.965, 0.867]], [0.965, [0.965, 0.965, 0.867]], [0.967, [0.969, 0.969, 0.882]], [0.969, [0.969, 0.969, 0.882]], [0.971, [0.973, 0.973, 0.896]], [0.973, [0.973, 0.973, 0.896]], [0.975, [0.976, 0.976, 0.911]], [0.977, [0.976, 0.976, 0.911]], [0.978, [0.980, 0.980, 0.926]], [0.980, [0.980, 0.980, 0.926]], [0.982, [0.984, 0.984, 0.941]], [0.984, [0.984, 0.984, 0.941]], [0.986, [0.988, 0.988, 0.956]], [0.988, [0.988, 0.988, 0.956]], [0.990, [0.992, 0.992, 0.970]], [0.992, [0.992, 0.992, 0.970]], [0.994, [0.996, 0.996, 0.985]], [0.996, [0.996, 0.996, 0.985]], [0.998, [1.000, 1.000, 1.000]], [1.000, [1.000, 1.000, 1.000]]];
+var gnuplot = [[0.000, [0.000, 0.000, 0.000]], [0.002, [0.000, 0.000, 0.000]], [0.004, [0.063, 0.000, 0.025]], [0.006, [0.063, 0.000, 0.025]], [0.008, [0.089, 0.000, 0.049]], [0.010, [0.089, 0.000, 0.049]], [0.012, [0.108, 0.000, 0.074]], [0.014, [0.108, 0.000, 0.074]], [0.016, [0.125, 0.000, 0.098]], [0.018, [0.125, 0.000, 0.098]], [0.020, [0.140, 0.000, 0.123]], [0.022, [0.140, 0.000, 0.123]], [0.023, [0.153, 0.000, 0.147]], [0.025, [0.153, 0.000, 0.147]], [0.027, [0.166, 0.000, 0.172]], [0.029, [0.166, 0.000, 0.172]], [0.031, [0.177, 0.000, 0.196]], [0.033, [0.177, 0.000, 0.196]], [0.035, [0.188, 0.000, 0.220]], [0.037, [0.188, 0.000, 0.220]], [0.039, [0.198, 0.000, 0.244]], [0.041, [0.198, 0.000, 0.244]], [0.043, [0.208, 0.000, 0.268]], [0.045, [0.208, 0.000, 0.268]], [0.047, [0.217, 0.000, 0.291]], [0.049, [0.217, 0.000, 0.291]], [0.051, [0.226, 0.000, 0.315]], [0.053, [0.226, 0.000, 0.315]], [0.055, [0.234, 0.000, 0.338]], [0.057, [0.234, 0.000, 0.338]], [0.059, [0.243, 0.000, 0.361]], [0.061, [0.243, 0.000, 0.361]], [0.063, [0.250, 0.000, 0.384]], [0.065, [0.250, 0.000, 0.384]], [0.067, [0.258, 0.000, 0.407]], [0.068, [0.258, 0.000, 0.407]], [0.070, [0.266, 0.000, 0.429]], [0.072, [0.266, 0.000, 0.429]], [0.074, [0.273, 0.000, 0.451]], [0.076, [0.273, 0.000, 0.451]], [0.078, [0.280, 0.000, 0.473]], [0.080, [0.280, 0.000, 0.473]], [0.082, [0.287, 0.001, 0.495]], [0.084, [0.287, 0.001, 0.495]], [0.086, [0.294, 0.001, 0.516]], [0.088, [0.294, 0.001, 0.516]], [0.090, [0.300, 0.001, 0.537]], [0.092, [0.300, 0.001, 0.537]], [0.094, [0.307, 0.001, 0.557]], [0.096, [0.307, 0.001, 0.557]], [0.098, [0.313, 0.001, 0.578]], [0.100, [0.313, 0.001, 0.578]], [0.102, [0.319, 0.001, 0.598]], [0.104, [0.319, 0.001, 0.598]], [0.106, [0.325, 0.001, 0.617]], [0.108, [0.325, 0.001, 0.617]], [0.110, [0.331, 0.001, 0.636]], [0.112, [0.331, 0.001, 0.636]], [0.114, [0.337, 0.001, 0.655]], [0.115, [0.337, 0.001, 0.655]], [0.117, [0.343, 0.002, 0.674]], [0.119, [0.343, 0.002, 0.674]], [0.121, [0.349, 0.002, 0.692]], [0.123, [0.349, 0.002, 0.692]], [0.125, [0.354, 0.002, 0.709]], [0.127, [0.354, 0.002, 0.709]], [0.129, [0.360, 0.002, 0.726]], [0.131, [0.360, 0.002, 0.726]], [0.133, [0.365, 0.002, 0.743]], [0.135, [0.365, 0.002, 0.743]], [0.137, [0.370, 0.003, 0.759]], [0.139, [0.370, 0.003, 0.759]], [0.141, [0.376, 0.003, 0.775]], [0.143, [0.376, 0.003, 0.775]], [0.145, [0.381, 0.003, 0.791]], [0.147, [0.381, 0.003, 0.791]], [0.149, [0.386, 0.003, 0.805]], [0.151, [0.386, 0.003, 0.805]], [0.153, [0.391, 0.004, 0.820]], [0.155, [0.391, 0.004, 0.820]], [0.157, [0.396, 0.004, 0.834]], [0.159, [0.396, 0.004, 0.834]], [0.160, [0.401, 0.004, 0.847]], [0.162, [0.401, 0.004, 0.847]], [0.164, [0.406, 0.004, 0.860]], [0.166, [0.406, 0.004, 0.860]], [0.168, [0.411, 0.005, 0.872]], [0.170, [0.411, 0.005, 0.872]], [0.172, [0.415, 0.005, 0.884]], [0.174, [0.415, 0.005, 0.884]], [0.176, [0.420, 0.005, 0.895]], [0.178, [0.420, 0.005, 0.895]], [0.180, [0.425, 0.006, 0.906]], [0.182, [0.425, 0.006, 0.906]], [0.184, [0.429, 0.006, 0.916]], [0.186, [0.429, 0.006, 0.916]], [0.188, [0.434, 0.007, 0.926]], [0.190, [0.434, 0.007, 0.926]], [0.192, [0.438, 0.007, 0.935]], [0.194, [0.438, 0.007, 0.935]], [0.196, [0.443, 0.008, 0.943]], [0.198, [0.443, 0.008, 0.943]], [0.200, [0.447, 0.008, 0.951]], [0.202, [0.447, 0.008, 0.951]], [0.204, [0.452, 0.008, 0.958]], [0.205, [0.452, 0.008, 0.958]], [0.207, [0.456, 0.009, 0.965]], [0.209, [0.456, 0.009, 0.965]], [0.211, [0.460, 0.009, 0.971]], [0.213, [0.460, 0.009, 0.971]], [0.215, [0.464, 0.010, 0.977]], [0.217, [0.464, 0.010, 0.977]], [0.219, [0.469, 0.011, 0.982]], [0.221, [0.469, 0.011, 0.982]], [0.223, [0.473, 0.011, 0.986]], [0.225, [0.473, 0.011, 0.986]], [0.227, [0.477, 0.012, 0.990]], [0.229, [0.477, 0.012, 0.990]], [0.231, [0.481, 0.012, 0.993]], [0.233, [0.481, 0.012, 0.993]], [0.235, [0.485, 0.013, 0.996]], [0.237, [0.485, 0.013, 0.996]], [0.239, [0.489, 0.014, 0.998]], [0.241, [0.489, 0.014, 0.998]], [0.243, [0.493, 0.014, 0.999]], [0.245, [0.493, 0.014, 0.999]], [0.247, [0.497, 0.015, 1.000]], [0.249, [0.497, 0.015, 1.000]], [0.250, [0.501, 0.016, 1.000]], [0.252, [0.501, 0.016, 1.000]], [0.254, [0.505, 0.017, 1.000]], [0.256, [0.505, 0.017, 1.000]], [0.258, [0.509, 0.017, 0.998]], [0.260, [0.509, 0.017, 0.998]], [0.262, [0.513, 0.018, 0.997]], [0.264, [0.513, 0.018, 0.997]], [0.266, [0.516, 0.019, 0.995]], [0.268, [0.516, 0.019, 0.995]], [0.270, [0.520, 0.020, 0.992]], [0.272, [0.520, 0.020, 0.992]], [0.274, [0.524, 0.021, 0.988]], [0.276, [0.524, 0.021, 0.988]], [0.278, [0.528, 0.022, 0.984]], [0.280, [0.528, 0.022, 0.984]], [0.282, [0.531, 0.023, 0.979]], [0.284, [0.531, 0.023, 0.979]], [0.286, [0.535, 0.023, 0.974]], [0.288, [0.535, 0.023, 0.974]], [0.290, [0.539, 0.024, 0.968]], [0.292, [0.539, 0.024, 0.968]], [0.294, [0.542, 0.025, 0.962]], [0.295, [0.542, 0.025, 0.962]], [0.297, [0.546, 0.026, 0.955]], [0.299, [0.546, 0.026, 0.955]], [0.301, [0.550, 0.028, 0.947]], [0.303, [0.550, 0.028, 0.947]], [0.305, [0.553, 0.029, 0.939]], [0.307, [0.553, 0.029, 0.939]], [0.309, [0.557, 0.030, 0.930]], [0.311, [0.557, 0.030, 0.930]], [0.313, [0.560, 0.031, 0.921]], [0.315, [0.560, 0.031, 0.921]], [0.317, [0.564, 0.032, 0.911]], [0.319, [0.564, 0.032, 0.911]], [0.321, [0.567, 0.033, 0.901]], [0.323, [0.567, 0.033, 0.901]], [0.325, [0.571, 0.034, 0.890]], [0.327, [0.571, 0.034, 0.890]], [0.329, [0.574, 0.036, 0.878]], [0.331, [0.574, 0.036, 0.878]], [0.333, [0.577, 0.037, 0.866]], [0.335, [0.577, 0.037, 0.866]], [0.337, [0.581, 0.038, 0.853]], [0.339, [0.581, 0.038, 0.853]], [0.341, [0.584, 0.040, 0.840]], [0.342, [0.584, 0.040, 0.840]], [0.344, [0.587, 0.041, 0.827]], [0.346, [0.587, 0.041, 0.827]], [0.348, [0.591, 0.043, 0.813]], [0.350, [0.591, 0.043, 0.813]], [0.352, [0.594, 0.044, 0.798]], [0.354, [0.594, 0.044, 0.798]], [0.356, [0.597, 0.045, 0.783]], [0.358, [0.597, 0.045, 0.783]], [0.360, [0.601, 0.047, 0.767]], [0.362, [0.601, 0.047, 0.767]], [0.364, [0.604, 0.049, 0.751]], [0.366, [0.604, 0.049, 0.751]], [0.368, [0.607, 0.050, 0.735]], [0.370, [0.607, 0.050, 0.735]], [0.372, [0.610, 0.052, 0.718]], [0.374, [0.610, 0.052, 0.718]], [0.376, [0.614, 0.053, 0.701]], [0.378, [0.614, 0.053, 0.701]], [0.380, [0.617, 0.055, 0.683]], [0.382, [0.617, 0.055, 0.683]], [0.384, [0.620, 0.057, 0.665]], [0.386, [0.620, 0.057, 0.665]], [0.387, [0.623, 0.059, 0.646]], [0.389, [0.623, 0.059, 0.646]], [0.391, [0.626, 0.060, 0.627]], [0.393, [0.626, 0.060, 0.627]], [0.395, [0.629, 0.062, 0.608]], [0.397, [0.629, 0.062, 0.608]], [0.399, [0.632, 0.064, 0.588]], [0.401, [0.632, 0.064, 0.588]], [0.403, [0.636, 0.066, 0.568]], [0.405, [0.636, 0.066, 0.568]], [0.407, [0.639, 0.068, 0.547]], [0.409, [0.639, 0.068, 0.547]], [0.411, [0.642, 0.070, 0.526]], [0.413, [0.642, 0.070, 0.526]], [0.415, [0.645, 0.072, 0.505]], [0.417, [0.645, 0.072, 0.505]], [0.419, [0.648, 0.074, 0.484]], [0.421, [0.648, 0.074, 0.484]], [0.423, [0.651, 0.076, 0.462]], [0.425, [0.651, 0.076, 0.462]], [0.427, [0.654, 0.078, 0.440]], [0.429, [0.654, 0.078, 0.440]], [0.431, [0.657, 0.080, 0.418]], [0.432, [0.657, 0.080, 0.418]], [0.434, [0.660, 0.082, 0.395]], [0.436, [0.660, 0.082, 0.395]], [0.438, [0.663, 0.085, 0.373]], [0.440, [0.663, 0.085, 0.373]], [0.442, [0.666, 0.087, 0.350]], [0.444, [0.666, 0.087, 0.350]], [0.446, [0.669, 0.089, 0.327]], [0.448, [0.669, 0.089, 0.327]], [0.450, [0.672, 0.092, 0.303]], [0.452, [0.672, 0.092, 0.303]], [0.454, [0.674, 0.094, 0.280]], [0.456, [0.674, 0.094, 0.280]], [0.458, [0.677, 0.097, 0.256]], [0.460, [0.677, 0.097, 0.256]], [0.462, [0.680, 0.099, 0.232]], [0.464, [0.680, 0.099, 0.232]], [0.466, [0.683, 0.102, 0.208]], [0.468, [0.683, 0.102, 0.208]], [0.470, [0.686, 0.104, 0.184]], [0.472, [0.686, 0.104, 0.184]], [0.474, [0.689, 0.107, 0.159]], [0.476, [0.689, 0.107, 0.159]], [0.477, [0.692, 0.110, 0.135]], [0.479, [0.692, 0.110, 0.135]], [0.481, [0.695, 0.112, 0.111]], [0.483, [0.695, 0.112, 0.111]], [0.485, [0.697, 0.115, 0.086]], [0.487, [0.697, 0.115, 0.086]], [0.489, [0.700, 0.118, 0.062]], [0.491, [0.700, 0.118, 0.062]], [0.493, [0.703, 0.121, 0.037]], [0.495, [0.703, 0.121, 0.037]], [0.497, [0.706, 0.124, 0.012]], [0.499, [0.706, 0.124, 0.012]], [0.501, [0.708, 0.126, 0.000]], [0.503, [0.708, 0.126, 0.000]], [0.505, [0.711, 0.129, 0.000]], [0.507, [0.711, 0.129, 0.000]], [0.509, [0.714, 0.132, 0.000]], [0.511, [0.714, 0.132, 0.000]], [0.513, [0.717, 0.136, 0.000]], [0.515, [0.717, 0.136, 0.000]], [0.517, [0.719, 0.139, 0.000]], [0.519, [0.719, 0.139, 0.000]], [0.521, [0.722, 0.142, 0.000]], [0.523, [0.722, 0.142, 0.000]], [0.524, [0.725, 0.145, 0.000]], [0.526, [0.725, 0.145, 0.000]], [0.528, [0.728, 0.148, 0.000]], [0.530, [0.728, 0.148, 0.000]], [0.532, [0.730, 0.152, 0.000]], [0.534, [0.730, 0.152, 0.000]], [0.536, [0.733, 0.155, 0.000]], [0.538, [0.733, 0.155, 0.000]], [0.540, [0.736, 0.158, 0.000]], [0.542, [0.736, 0.158, 0.000]], [0.544, [0.738, 0.162, 0.000]], [0.546, [0.738, 0.162, 0.000]], [0.548, [0.741, 0.165, 0.000]], [0.550, [0.741, 0.165, 0.000]], [0.552, [0.744, 0.169, 0.000]], [0.554, [0.744, 0.169, 0.000]], [0.556, [0.746, 0.173, 0.000]], [0.558, [0.746, 0.173, 0.000]], [0.560, [0.749, 0.176, 0.000]], [0.562, [0.749, 0.176, 0.000]], [0.564, [0.751, 0.180, 0.000]], [0.566, [0.751, 0.180, 0.000]], [0.568, [0.754, 0.184, 0.000]], [0.569, [0.754, 0.184, 0.000]], [0.571, [0.757, 0.188, 0.000]], [0.573, [0.757, 0.188, 0.000]], [0.575, [0.759, 0.192, 0.000]], [0.577, [0.759, 0.192, 0.000]], [0.579, [0.762, 0.196, 0.000]], [0.581, [0.762, 0.196, 0.000]], [0.583, [0.764, 0.199, 0.000]], [0.585, [0.764, 0.199, 0.000]], [0.587, [0.767, 0.204, 0.000]], [0.589, [0.767, 0.204, 0.000]], [0.591, [0.770, 0.208, 0.000]], [0.593, [0.770, 0.208, 0.000]], [0.595, [0.772, 0.212, 0.000]], [0.597, [0.772, 0.212, 0.000]], [0.599, [0.775, 0.216, 0.000]], [0.601, [0.775, 0.216, 0.000]], [0.603, [0.777, 0.220, 0.000]], [0.605, [0.777, 0.220, 0.000]], [0.607, [0.780, 0.225, 0.000]], [0.609, [0.780, 0.225, 0.000]], [0.611, [0.782, 0.229, 0.000]], [0.613, [0.782, 0.229, 0.000]], [0.614, [0.785, 0.233, 0.000]], [0.616, [0.785, 0.233, 0.000]], [0.618, [0.787, 0.238, 0.000]], [0.620, [0.787, 0.238, 0.000]], [0.622, [0.790, 0.242, 0.000]], [0.624, [0.790, 0.242, 0.000]], [0.626, [0.792, 0.247, 0.000]], [0.628, [0.792, 0.247, 0.000]], [0.630, [0.795, 0.252, 0.000]], [0.632, [0.795, 0.252, 0.000]], [0.634, [0.797, 0.256, 0.000]], [0.636, [0.797, 0.256, 0.000]], [0.638, [0.800, 0.261, 0.000]], [0.640, [0.800, 0.261, 0.000]], [0.642, [0.802, 0.266, 0.000]], [0.644, [0.802, 0.266, 0.000]], [0.646, [0.804, 0.271, 0.000]], [0.648, [0.804, 0.271, 0.000]], [0.650, [0.807, 0.276, 0.000]], [0.652, [0.807, 0.276, 0.000]], [0.654, [0.809, 0.281, 0.000]], [0.656, [0.809, 0.281, 0.000]], [0.658, [0.812, 0.286, 0.000]], [0.659, [0.812, 0.286, 0.000]], [0.661, [0.814, 0.291, 0.000]], [0.663, [0.814, 0.291, 0.000]], [0.665, [0.816, 0.296, 0.000]], [0.667, [0.816, 0.296, 0.000]], [0.669, [0.819, 0.302, 0.000]], [0.671, [0.819, 0.302, 0.000]], [0.673, [0.821, 0.307, 0.000]], [0.675, [0.821, 0.307, 0.000]], [0.677, [0.824, 0.312, 0.000]], [0.679, [0.824, 0.312, 0.000]], [0.681, [0.826, 0.318, 0.000]], [0.683, [0.826, 0.318, 0.000]], [0.685, [0.828, 0.323, 0.000]], [0.687, [0.828, 0.323, 0.000]], [0.689, [0.831, 0.329, 0.000]], [0.691, [0.831, 0.329, 0.000]], [0.693, [0.833, 0.334, 0.000]], [0.695, [0.833, 0.334, 0.000]], [0.697, [0.835, 0.340, 0.000]], [0.699, [0.835, 0.340, 0.000]], [0.701, [0.838, 0.346, 0.000]], [0.703, [0.838, 0.346, 0.000]], [0.705, [0.840, 0.352, 0.000]], [0.706, [0.840, 0.352, 0.000]], [0.708, [0.842, 0.358, 0.000]], [0.710, [0.842, 0.358, 0.000]], [0.712, [0.845, 0.364, 0.000]], [0.714, [0.845, 0.364, 0.000]], [0.716, [0.847, 0.370, 0.000]], [0.718, [0.847, 0.370, 0.000]], [0.720, [0.849, 0.376, 0.000]], [0.722, [0.849, 0.376, 0.000]], [0.724, [0.852, 0.382, 0.000]], [0.726, [0.852, 0.382, 0.000]], [0.728, [0.854, 0.388, 0.000]], [0.730, [0.854, 0.388, 0.000]], [0.732, [0.856, 0.394, 0.000]], [0.734, [0.856, 0.394, 0.000]], [0.736, [0.859, 0.401, 0.000]], [0.738, [0.859, 0.401, 0.000]], [0.740, [0.861, 0.407, 0.000]], [0.742, [0.861, 0.407, 0.000]], [0.744, [0.863, 0.414, 0.000]], [0.746, [0.863, 0.414, 0.000]], [0.748, [0.865, 0.420, 0.000]], [0.750, [0.865, 0.420, 0.000]], [0.751, [0.868, 0.427, 0.000]], [0.753, [0.868, 0.427, 0.000]], [0.755, [0.870, 0.434, 0.000]], [0.757, [0.870, 0.434, 0.000]], [0.759, [0.872, 0.440, 0.000]], [0.761, [0.872, 0.440, 0.000]], [0.763, [0.874, 0.447, 0.000]], [0.765, [0.874, 0.447, 0.000]], [0.767, [0.877, 0.454, 0.000]], [0.769, [0.877, 0.454, 0.000]], [0.771, [0.879, 0.461, 0.000]], [0.773, [0.879, 0.461, 0.000]], [0.775, [0.881, 0.468, 0.000]], [0.777, [0.881, 0.468, 0.000]], [0.779, [0.883, 0.475, 0.000]], [0.781, [0.883, 0.475, 0.000]], [0.783, [0.886, 0.482, 0.000]], [0.785, [0.886, 0.482, 0.000]], [0.787, [0.888, 0.490, 0.000]], [0.789, [0.888, 0.490, 0.000]], [0.791, [0.890, 0.497, 0.000]], [0.793, [0.890, 0.497, 0.000]], [0.795, [0.892, 0.505, 0.000]], [0.796, [0.892, 0.505, 0.000]], [0.798, [0.894, 0.512, 0.000]], [0.800, [0.894, 0.512, 0.000]], [0.802, [0.897, 0.520, 0.000]], [0.804, [0.897, 0.520, 0.000]], [0.806, [0.899, 0.527, 0.000]], [0.808, [0.899, 0.527, 0.000]], [0.810, [0.901, 0.535, 0.000]], [0.812, [0.901, 0.535, 0.000]], [0.814, [0.903, 0.543, 0.000]], [0.816, [0.903, 0.543, 0.000]], [0.818, [0.905, 0.551, 0.000]], [0.820, [0.905, 0.551, 0.000]], [0.822, [0.907, 0.559, 0.000]], [0.824, [0.907, 0.559, 0.000]], [0.826, [0.910, 0.567, 0.000]], [0.828, [0.910, 0.567, 0.000]], [0.830, [0.912, 0.575, 0.000]], [0.832, [0.912, 0.575, 0.000]], [0.834, [0.914, 0.583, 0.000]], [0.836, [0.914, 0.583, 0.000]], [0.838, [0.916, 0.591, 0.000]], [0.840, [0.916, 0.591, 0.000]], [0.841, [0.918, 0.599, 0.000]], [0.843, [0.918, 0.599, 0.000]], [0.845, [0.920, 0.608, 0.000]], [0.847, [0.920, 0.608, 0.000]], [0.849, [0.922, 0.616, 0.000]], [0.851, [0.922, 0.616, 0.000]], [0.853, [0.925, 0.625, 0.000]], [0.855, [0.925, 0.625, 0.000]], [0.857, [0.927, 0.633, 0.000]], [0.859, [0.927, 0.633, 0.000]], [0.861, [0.929, 0.642, 0.000]], [0.863, [0.929, 0.642, 0.000]], [0.865, [0.931, 0.651, 0.000]], [0.867, [0.931, 0.651, 0.000]], [0.869, [0.933, 0.660, 0.000]], [0.871, [0.933, 0.660, 0.000]], [0.873, [0.935, 0.669, 0.000]], [0.875, [0.935, 0.669, 0.000]], [0.877, [0.937, 0.678, 0.000]], [0.879, [0.937, 0.678, 0.000]], [0.881, [0.939, 0.687, 0.000]], [0.883, [0.939, 0.687, 0.000]], [0.885, [0.941, 0.696, 0.000]], [0.886, [0.941, 0.696, 0.000]], [0.888, [0.944, 0.705, 0.000]], [0.890, [0.944, 0.705, 0.000]], [0.892, [0.946, 0.715, 0.000]], [0.894, [0.946, 0.715, 0.000]], [0.896, [0.948, 0.724, 0.000]], [0.898, [0.948, 0.724, 0.000]], [0.900, [0.950, 0.734, 0.000]], [0.902, [0.950, 0.734, 0.000]], [0.904, [0.952, 0.743, 0.000]], [0.906, [0.952, 0.743, 0.000]], [0.908, [0.954, 0.753, 0.000]], [0.910, [0.954, 0.753, 0.000]], [0.912, [0.956, 0.763, 0.000]], [0.914, [0.956, 0.763, 0.000]], [0.916, [0.958, 0.773, 0.000]], [0.918, [0.958, 0.773, 0.000]], [0.920, [0.960, 0.783, 0.000]], [0.922, [0.960, 0.783, 0.000]], [0.924, [0.962, 0.793, 0.000]], [0.926, [0.962, 0.793, 0.000]], [0.928, [0.964, 0.803, 0.000]], [0.930, [0.964, 0.803, 0.000]], [0.932, [0.966, 0.813, 0.000]], [0.933, [0.966, 0.813, 0.000]], [0.935, [0.968, 0.823, 0.000]], [0.937, [0.968, 0.823, 0.000]], [0.939, [0.970, 0.834, 0.000]], [0.941, [0.970, 0.834, 0.000]], [0.943, [0.972, 0.844, 0.000]], [0.945, [0.972, 0.844, 0.000]], [0.947, [0.974, 0.855, 0.000]], [0.949, [0.974, 0.855, 0.000]], [0.951, [0.976, 0.865, 0.000]], [0.953, [0.976, 0.865, 0.000]], [0.955, [0.978, 0.876, 0.000]], [0.957, [0.978, 0.876, 0.000]], [0.959, [0.980, 0.887, 0.000]], [0.961, [0.980, 0.887, 0.000]], [0.963, [0.982, 0.898, 0.000]], [0.965, [0.982, 0.898, 0.000]], [0.967, [0.984, 0.909, 0.000]], [0.969, [0.984, 0.909, 0.000]], [0.971, [0.986, 0.920, 0.000]], [0.973, [0.986, 0.920, 0.000]], [0.975, [0.988, 0.931, 0.000]], [0.977, [0.988, 0.931, 0.000]], [0.978, [0.990, 0.942, 0.000]], [0.980, [0.990, 0.942, 0.000]], [0.982, [0.992, 0.954, 0.000]], [0.984, [0.992, 0.954, 0.000]], [0.986, [0.994, 0.965, 0.000]], [0.988, [0.994, 0.965, 0.000]], [0.990, [0.996, 0.977, 0.000]], [0.992, [0.996, 0.977, 0.000]], [0.994, [0.998, 0.988, 0.000]], [0.996, [0.998, 0.988, 0.000]], [0.998, [1.000, 1.000, 0.000]], [1.000, [1.000, 1.000, 0.000]]];
+var gnuplot2 = [[0.000, [0.000, 0.000, 0.000]], [0.002, [0.000, 0.000, 0.000]], [0.004, [0.000, 0.000, 0.016]], [0.006, [0.000, 0.000, 0.016]], [0.008, [0.000, 0.000, 0.031]], [0.010, [0.000, 0.000, 0.031]], [0.012, [0.000, 0.000, 0.047]], [0.014, [0.000, 0.000, 0.047]], [0.016, [0.000, 0.000, 0.063]], [0.018, [0.000, 0.000, 0.063]], [0.020, [0.000, 0.000, 0.078]], [0.022, [0.000, 0.000, 0.078]], [0.023, [0.000, 0.000, 0.094]], [0.025, [0.000, 0.000, 0.094]], [0.027, [0.000, 0.000, 0.110]], [0.029, [0.000, 0.000, 0.110]], [0.031, [0.000, 0.000, 0.125]], [0.033, [0.000, 0.000, 0.125]], [0.035, [0.000, 0.000, 0.141]], [0.037, [0.000, 0.000, 0.141]], [0.039, [0.000, 0.000, 0.157]], [0.041, [0.000, 0.000, 0.157]], [0.043, [0.000, 0.000, 0.173]], [0.045, [0.000, 0.000, 0.173]], [0.047, [0.000, 0.000, 0.188]], [0.049, [0.000, 0.000, 0.188]], [0.051, [0.000, 0.000, 0.204]], [0.053, [0.000, 0.000, 0.204]], [0.055, [0.000, 0.000, 0.220]], [0.057, [0.000, 0.000, 0.220]], [0.059, [0.000, 0.000, 0.235]], [0.061, [0.000, 0.000, 0.235]], [0.063, [0.000, 0.000, 0.251]], [0.065, [0.000, 0.000, 0.251]], [0.067, [0.000, 0.000, 0.267]], [0.068, [0.000, 0.000, 0.267]], [0.070, [0.000, 0.000, 0.282]], [0.072, [0.000, 0.000, 0.282]], [0.074, [0.000, 0.000, 0.298]], [0.076, [0.000, 0.000, 0.298]], [0.078, [0.000, 0.000, 0.314]], [0.080, [0.000, 0.000, 0.314]], [0.082, [0.000, 0.000, 0.329]], [0.084, [0.000, 0.000, 0.329]], [0.086, [0.000, 0.000, 0.345]], [0.088, [0.000, 0.000, 0.345]], [0.090, [0.000, 0.000, 0.361]], [0.092, [0.000, 0.000, 0.361]], [0.094, [0.000, 0.000, 0.376]], [0.096, [0.000, 0.000, 0.376]], [0.098, [0.000, 0.000, 0.392]], [0.100, [0.000, 0.000, 0.392]], [0.102, [0.000, 0.000, 0.408]], [0.104, [0.000, 0.000, 0.408]], [0.106, [0.000, 0.000, 0.424]], [0.108, [0.000, 0.000, 0.424]], [0.110, [0.000, 0.000, 0.439]], [0.112, [0.000, 0.000, 0.439]], [0.114, [0.000, 0.000, 0.455]], [0.115, [0.000, 0.000, 0.455]], [0.117, [0.000, 0.000, 0.471]], [0.119, [0.000, 0.000, 0.471]], [0.121, [0.000, 0.000, 0.486]], [0.123, [0.000, 0.000, 0.486]], [0.125, [0.000, 0.000, 0.502]], [0.127, [0.000, 0.000, 0.502]], [0.129, [0.000, 0.000, 0.518]], [0.131, [0.000, 0.000, 0.518]], [0.133, [0.000, 0.000, 0.533]], [0.135, [0.000, 0.000, 0.533]], [0.137, [0.000, 0.000, 0.549]], [0.139, [0.000, 0.000, 0.549]], [0.141, [0.000, 0.000, 0.565]], [0.143, [0.000, 0.000, 0.565]], [0.145, [0.000, 0.000, 0.580]], [0.147, [0.000, 0.000, 0.580]], [0.149, [0.000, 0.000, 0.596]], [0.151, [0.000, 0.000, 0.596]], [0.153, [0.000, 0.000, 0.612]], [0.155, [0.000, 0.000, 0.612]], [0.157, [0.000, 0.000, 0.627]], [0.159, [0.000, 0.000, 0.627]], [0.160, [0.000, 0.000, 0.643]], [0.162, [0.000, 0.000, 0.643]], [0.164, [0.000, 0.000, 0.659]], [0.166, [0.000, 0.000, 0.659]], [0.168, [0.000, 0.000, 0.675]], [0.170, [0.000, 0.000, 0.675]], [0.172, [0.000, 0.000, 0.690]], [0.174, [0.000, 0.000, 0.690]], [0.176, [0.000, 0.000, 0.706]], [0.178, [0.000, 0.000, 0.706]], [0.180, [0.000, 0.000, 0.722]], [0.182, [0.000, 0.000, 0.722]], [0.184, [0.000, 0.000, 0.737]], [0.186, [0.000, 0.000, 0.737]], [0.188, [0.000, 0.000, 0.753]], [0.190, [0.000, 0.000, 0.753]], [0.192, [0.000, 0.000, 0.769]], [0.194, [0.000, 0.000, 0.769]], [0.196, [0.000, 0.000, 0.784]], [0.198, [0.000, 0.000, 0.784]], [0.200, [0.000, 0.000, 0.800]], [0.202, [0.000, 0.000, 0.800]], [0.204, [0.000, 0.000, 0.816]], [0.205, [0.000, 0.000, 0.816]], [0.207, [0.000, 0.000, 0.831]], [0.209, [0.000, 0.000, 0.831]], [0.211, [0.000, 0.000, 0.847]], [0.213, [0.000, 0.000, 0.847]], [0.215, [0.000, 0.000, 0.863]], [0.217, [0.000, 0.000, 0.863]], [0.219, [0.000, 0.000, 0.878]], [0.221, [0.000, 0.000, 0.878]], [0.223, [0.000, 0.000, 0.894]], [0.225, [0.000, 0.000, 0.894]], [0.227, [0.000, 0.000, 0.910]], [0.229, [0.000, 0.000, 0.910]], [0.231, [0.000, 0.000, 0.925]], [0.233, [0.000, 0.000, 0.925]], [0.235, [0.000, 0.000, 0.941]], [0.237, [0.000, 0.000, 0.941]], [0.239, [0.000, 0.000, 0.957]], [0.241, [0.000, 0.000, 0.957]], [0.243, [0.000, 0.000, 0.973]], [0.245, [0.000, 0.000, 0.973]], [0.247, [0.000, 0.000, 0.988]], [0.249, [0.000, 0.000, 0.988]], [0.250, [0.003, 0.000, 1.000]], [0.252, [0.003, 0.000, 1.000]], [0.254, [0.015, 0.000, 1.000]], [0.256, [0.015, 0.000, 1.000]], [0.258, [0.028, 0.000, 1.000]], [0.260, [0.028, 0.000, 1.000]], [0.262, [0.040, 0.000, 1.000]], [0.264, [0.040, 0.000, 1.000]], [0.266, [0.052, 0.000, 1.000]], [0.268, [0.052, 0.000, 1.000]], [0.270, [0.064, 0.000, 1.000]], [0.272, [0.064, 0.000, 1.000]], [0.274, [0.077, 0.000, 1.000]], [0.276, [0.077, 0.000, 1.000]], [0.278, [0.089, 0.000, 1.000]], [0.280, [0.089, 0.000, 1.000]], [0.282, [0.101, 0.000, 1.000]], [0.284, [0.101, 0.000, 1.000]], [0.286, [0.113, 0.000, 1.000]], [0.288, [0.113, 0.000, 1.000]], [0.290, [0.126, 0.000, 1.000]], [0.292, [0.126, 0.000, 1.000]], [0.294, [0.138, 0.000, 1.000]], [0.295, [0.138, 0.000, 1.000]], [0.297, [0.150, 0.000, 1.000]], [0.299, [0.150, 0.000, 1.000]], [0.301, [0.162, 0.000, 1.000]], [0.303, [0.162, 0.000, 1.000]], [0.305, [0.175, 0.000, 1.000]], [0.307, [0.175, 0.000, 1.000]], [0.309, [0.187, 0.000, 1.000]], [0.311, [0.187, 0.000, 1.000]], [0.313, [0.199, 0.000, 1.000]], [0.315, [0.199, 0.000, 1.000]], [0.317, [0.211, 0.000, 1.000]], [0.319, [0.211, 0.000, 1.000]], [0.321, [0.224, 0.000, 1.000]], [0.323, [0.224, 0.000, 1.000]], [0.325, [0.236, 0.000, 1.000]], [0.327, [0.236, 0.000, 1.000]], [0.329, [0.248, 0.000, 1.000]], [0.331, [0.248, 0.000, 1.000]], [0.333, [0.260, 0.000, 1.000]], [0.335, [0.260, 0.000, 1.000]], [0.337, [0.273, 0.000, 1.000]], [0.339, [0.273, 0.000, 1.000]], [0.341, [0.285, 0.000, 1.000]], [0.342, [0.285, 0.000, 1.000]], [0.344, [0.297, 0.000, 1.000]], [0.346, [0.297, 0.000, 1.000]], [0.348, [0.309, 0.000, 1.000]], [0.350, [0.309, 0.000, 1.000]], [0.352, [0.322, 0.000, 1.000]], [0.354, [0.322, 0.000, 1.000]], [0.356, [0.334, 0.000, 1.000]], [0.358, [0.334, 0.000, 1.000]], [0.360, [0.346, 0.000, 1.000]], [0.362, [0.346, 0.000, 1.000]], [0.364, [0.358, 0.000, 1.000]], [0.366, [0.358, 0.000, 1.000]], [0.368, [0.371, 0.000, 1.000]], [0.370, [0.371, 0.000, 1.000]], [0.372, [0.383, 0.000, 1.000]], [0.374, [0.383, 0.000, 1.000]], [0.376, [0.395, 0.000, 1.000]], [0.378, [0.395, 0.000, 1.000]], [0.380, [0.407, 0.000, 1.000]], [0.382, [0.407, 0.000, 1.000]], [0.384, [0.420, 0.000, 1.000]], [0.386, [0.420, 0.000, 1.000]], [0.387, [0.432, 0.000, 1.000]], [0.389, [0.432, 0.000, 1.000]], [0.391, [0.444, 0.000, 1.000]], [0.393, [0.444, 0.000, 1.000]], [0.395, [0.456, 0.000, 1.000]], [0.397, [0.456, 0.000, 1.000]], [0.399, [0.469, 0.000, 1.000]], [0.401, [0.469, 0.000, 1.000]], [0.403, [0.481, 0.000, 1.000]], [0.405, [0.481, 0.000, 1.000]], [0.407, [0.493, 0.000, 1.000]], [0.409, [0.493, 0.000, 1.000]], [0.411, [0.506, 0.000, 1.000]], [0.413, [0.506, 0.000, 1.000]], [0.415, [0.518, 0.000, 1.000]], [0.417, [0.518, 0.000, 1.000]], [0.419, [0.530, 0.000, 1.000]], [0.421, [0.530, 0.000, 1.000]], [0.423, [0.542, 0.007, 0.993]], [0.425, [0.542, 0.007, 0.993]], [0.427, [0.555, 0.015, 0.985]], [0.429, [0.555, 0.015, 0.985]], [0.431, [0.567, 0.023, 0.977]], [0.432, [0.567, 0.023, 0.977]], [0.434, [0.579, 0.031, 0.969]], [0.436, [0.579, 0.031, 0.969]], [0.438, [0.591, 0.038, 0.962]], [0.440, [0.591, 0.038, 0.962]], [0.442, [0.604, 0.046, 0.954]], [0.444, [0.604, 0.046, 0.954]], [0.446, [0.616, 0.054, 0.946]], [0.448, [0.616, 0.054, 0.946]], [0.450, [0.628, 0.062, 0.938]], [0.452, [0.628, 0.062, 0.938]], [0.454, [0.640, 0.070, 0.930]], [0.456, [0.640, 0.070, 0.930]], [0.458, [0.653, 0.078, 0.922]], [0.460, [0.653, 0.078, 0.922]], [0.462, [0.665, 0.085, 0.915]], [0.464, [0.665, 0.085, 0.915]], [0.466, [0.677, 0.093, 0.907]], [0.468, [0.677, 0.093, 0.907]], [0.470, [0.689, 0.101, 0.899]], [0.472, [0.689, 0.101, 0.899]], [0.474, [0.702, 0.109, 0.891]], [0.476, [0.702, 0.109, 0.891]], [0.477, [0.714, 0.117, 0.883]], [0.479, [0.714, 0.117, 0.883]], [0.481, [0.726, 0.125, 0.875]], [0.483, [0.726, 0.125, 0.875]], [0.485, [0.738, 0.133, 0.867]], [0.487, [0.738, 0.133, 0.867]], [0.489, [0.751, 0.140, 0.860]], [0.491, [0.751, 0.140, 0.860]], [0.493, [0.763, 0.148, 0.852]], [0.495, [0.763, 0.148, 0.852]], [0.497, [0.775, 0.156, 0.844]], [0.499, [0.775, 0.156, 0.844]], [0.501, [0.787, 0.164, 0.836]], [0.503, [0.787, 0.164, 0.836]], [0.505, [0.800, 0.172, 0.828]], [0.507, [0.800, 0.172, 0.828]], [0.509, [0.812, 0.180, 0.820]], [0.511, [0.812, 0.180, 0.820]], [0.513, [0.824, 0.187, 0.813]], [0.515, [0.824, 0.187, 0.813]], [0.517, [0.836, 0.195, 0.805]], [0.519, [0.836, 0.195, 0.805]], [0.521, [0.849, 0.203, 0.797]], [0.523, [0.849, 0.203, 0.797]], [0.524, [0.861, 0.211, 0.789]], [0.526, [0.861, 0.211, 0.789]], [0.528, [0.873, 0.219, 0.781]], [0.530, [0.873, 0.219, 0.781]], [0.532, [0.885, 0.227, 0.773]], [0.534, [0.885, 0.227, 0.773]], [0.536, [0.898, 0.235, 0.765]], [0.538, [0.898, 0.235, 0.765]], [0.540, [0.910, 0.242, 0.758]], [0.542, [0.910, 0.242, 0.758]], [0.544, [0.922, 0.250, 0.750]], [0.546, [0.922, 0.250, 0.750]], [0.548, [0.934, 0.258, 0.742]], [0.550, [0.934, 0.258, 0.742]], [0.552, [0.947, 0.266, 0.734]], [0.554, [0.947, 0.266, 0.734]], [0.556, [0.959, 0.274, 0.726]], [0.558, [0.959, 0.274, 0.726]], [0.560, [0.971, 0.282, 0.718]], [0.562, [0.971, 0.282, 0.718]], [0.564, [0.983, 0.289, 0.711]], [0.566, [0.983, 0.289, 0.711]], [0.568, [0.996, 0.297, 0.703]], [0.569, [0.996, 0.297, 0.703]], [0.571, [1.000, 0.305, 0.695]], [0.573, [1.000, 0.305, 0.695]], [0.575, [1.000, 0.313, 0.687]], [0.577, [1.000, 0.313, 0.687]], [0.579, [1.000, 0.321, 0.679]], [0.581, [1.000, 0.321, 0.679]], [0.583, [1.000, 0.329, 0.671]], [0.585, [1.000, 0.329, 0.671]], [0.587, [1.000, 0.336, 0.664]], [0.589, [1.000, 0.336, 0.664]], [0.591, [1.000, 0.344, 0.656]], [0.593, [1.000, 0.344, 0.656]], [0.595, [1.000, 0.352, 0.648]], [0.597, [1.000, 0.352, 0.648]], [0.599, [1.000, 0.360, 0.640]], [0.601, [1.000, 0.360, 0.640]], [0.603, [1.000, 0.368, 0.632]], [0.605, [1.000, 0.368, 0.632]], [0.607, [1.000, 0.376, 0.624]], [0.609, [1.000, 0.376, 0.624]], [0.611, [1.000, 0.384, 0.616]], [0.613, [1.000, 0.384, 0.616]], [0.614, [1.000, 0.391, 0.609]], [0.616, [1.000, 0.391, 0.609]], [0.618, [1.000, 0.399, 0.601]], [0.620, [1.000, 0.399, 0.601]], [0.622, [1.000, 0.407, 0.593]], [0.624, [1.000, 0.407, 0.593]], [0.626, [1.000, 0.415, 0.585]], [0.628, [1.000, 0.415, 0.585]], [0.630, [1.000, 0.423, 0.577]], [0.632, [1.000, 0.423, 0.577]], [0.634, [1.000, 0.431, 0.569]], [0.636, [1.000, 0.431, 0.569]], [0.638, [1.000, 0.438, 0.562]], [0.640, [1.000, 0.438, 0.562]], [0.642, [1.000, 0.446, 0.554]], [0.644, [1.000, 0.446, 0.554]], [0.646, [1.000, 0.454, 0.546]], [0.648, [1.000, 0.454, 0.546]], [0.650, [1.000, 0.462, 0.538]], [0.652, [1.000, 0.462, 0.538]], [0.654, [1.000, 0.470, 0.530]], [0.656, [1.000, 0.470, 0.530]], [0.658, [1.000, 0.478, 0.522]], [0.659, [1.000, 0.478, 0.522]], [0.661, [1.000, 0.485, 0.515]], [0.663, [1.000, 0.485, 0.515]], [0.665, [1.000, 0.493, 0.507]], [0.667, [1.000, 0.493, 0.507]], [0.669, [1.000, 0.501, 0.499]], [0.671, [1.000, 0.501, 0.499]], [0.673, [1.000, 0.509, 0.491]], [0.675, [1.000, 0.509, 0.491]], [0.677, [1.000, 0.517, 0.483]], [0.679, [1.000, 0.517, 0.483]], [0.681, [1.000, 0.525, 0.475]], [0.683, [1.000, 0.525, 0.475]], [0.685, [1.000, 0.533, 0.467]], [0.687, [1.000, 0.533, 0.467]], [0.689, [1.000, 0.540, 0.460]], [0.691, [1.000, 0.540, 0.460]], [0.693, [1.000, 0.548, 0.452]], [0.695, [1.000, 0.548, 0.452]], [0.697, [1.000, 0.556, 0.444]], [0.699, [1.000, 0.556, 0.444]], [0.701, [1.000, 0.564, 0.436]], [0.703, [1.000, 0.564, 0.436]], [0.705, [1.000, 0.572, 0.428]], [0.706, [1.000, 0.572, 0.428]], [0.708, [1.000, 0.580, 0.420]], [0.710, [1.000, 0.580, 0.420]], [0.712, [1.000, 0.587, 0.413]], [0.714, [1.000, 0.587, 0.413]], [0.716, [1.000, 0.595, 0.405]], [0.718, [1.000, 0.595, 0.405]], [0.720, [1.000, 0.603, 0.397]], [0.722, [1.000, 0.603, 0.397]], [0.724, [1.000, 0.611, 0.389]], [0.726, [1.000, 0.611, 0.389]], [0.728, [1.000, 0.619, 0.381]], [0.730, [1.000, 0.619, 0.381]], [0.732, [1.000, 0.627, 0.373]], [0.734, [1.000, 0.627, 0.373]], [0.736, [1.000, 0.635, 0.365]], [0.738, [1.000, 0.635, 0.365]], [0.740, [1.000, 0.642, 0.358]], [0.742, [1.000, 0.642, 0.358]], [0.744, [1.000, 0.650, 0.350]], [0.746, [1.000, 0.650, 0.350]], [0.748, [1.000, 0.658, 0.342]], [0.750, [1.000, 0.658, 0.342]], [0.751, [1.000, 0.666, 0.334]], [0.753, [1.000, 0.666, 0.334]], [0.755, [1.000, 0.674, 0.326]], [0.757, [1.000, 0.674, 0.326]], [0.759, [1.000, 0.682, 0.318]], [0.761, [1.000, 0.682, 0.318]], [0.763, [1.000, 0.689, 0.311]], [0.765, [1.000, 0.689, 0.311]], [0.767, [1.000, 0.697, 0.303]], [0.769, [1.000, 0.697, 0.303]], [0.771, [1.000, 0.705, 0.295]], [0.773, [1.000, 0.705, 0.295]], [0.775, [1.000, 0.713, 0.287]], [0.777, [1.000, 0.713, 0.287]], [0.779, [1.000, 0.721, 0.279]], [0.781, [1.000, 0.721, 0.279]], [0.783, [1.000, 0.729, 0.271]], [0.785, [1.000, 0.729, 0.271]], [0.787, [1.000, 0.736, 0.264]], [0.789, [1.000, 0.736, 0.264]], [0.791, [1.000, 0.744, 0.256]], [0.793, [1.000, 0.744, 0.256]], [0.795, [1.000, 0.752, 0.248]], [0.796, [1.000, 0.752, 0.248]], [0.798, [1.000, 0.760, 0.240]], [0.800, [1.000, 0.760, 0.240]], [0.802, [1.000, 0.768, 0.232]], [0.804, [1.000, 0.768, 0.232]], [0.806, [1.000, 0.776, 0.224]], [0.808, [1.000, 0.776, 0.224]], [0.810, [1.000, 0.784, 0.216]], [0.812, [1.000, 0.784, 0.216]], [0.814, [1.000, 0.791, 0.209]], [0.816, [1.000, 0.791, 0.209]], [0.818, [1.000, 0.799, 0.201]], [0.820, [1.000, 0.799, 0.201]], [0.822, [1.000, 0.807, 0.193]], [0.824, [1.000, 0.807, 0.193]], [0.826, [1.000, 0.815, 0.185]], [0.828, [1.000, 0.815, 0.185]], [0.830, [1.000, 0.823, 0.177]], [0.832, [1.000, 0.823, 0.177]], [0.834, [1.000, 0.831, 0.169]], [0.836, [1.000, 0.831, 0.169]], [0.838, [1.000, 0.838, 0.162]], [0.840, [1.000, 0.838, 0.162]], [0.841, [1.000, 0.846, 0.154]], [0.843, [1.000, 0.846, 0.154]], [0.845, [1.000, 0.854, 0.146]], [0.847, [1.000, 0.854, 0.146]], [0.849, [1.000, 0.862, 0.138]], [0.851, [1.000, 0.862, 0.138]], [0.853, [1.000, 0.870, 0.130]], [0.855, [1.000, 0.870, 0.130]], [0.857, [1.000, 0.878, 0.122]], [0.859, [1.000, 0.878, 0.122]], [0.861, [1.000, 0.885, 0.115]], [0.863, [1.000, 0.885, 0.115]], [0.865, [1.000, 0.893, 0.107]], [0.867, [1.000, 0.893, 0.107]], [0.869, [1.000, 0.901, 0.099]], [0.871, [1.000, 0.901, 0.099]], [0.873, [1.000, 0.909, 0.091]], [0.875, [1.000, 0.909, 0.091]], [0.877, [1.000, 0.917, 0.083]], [0.879, [1.000, 0.917, 0.083]], [0.881, [1.000, 0.925, 0.075]], [0.883, [1.000, 0.925, 0.075]], [0.885, [1.000, 0.933, 0.067]], [0.886, [1.000, 0.933, 0.067]], [0.888, [1.000, 0.940, 0.060]], [0.890, [1.000, 0.940, 0.060]], [0.892, [1.000, 0.948, 0.052]], [0.894, [1.000, 0.948, 0.052]], [0.896, [1.000, 0.956, 0.044]], [0.898, [1.000, 0.956, 0.044]], [0.900, [1.000, 0.964, 0.036]], [0.902, [1.000, 0.964, 0.036]], [0.904, [1.000, 0.972, 0.028]], [0.906, [1.000, 0.972, 0.028]], [0.908, [1.000, 0.980, 0.020]], [0.910, [1.000, 0.980, 0.020]], [0.912, [1.000, 0.987, 0.013]], [0.914, [1.000, 0.987, 0.013]], [0.916, [1.000, 0.995, 0.005]], [0.918, [1.000, 0.995, 0.005]], [0.920, [1.000, 1.000, 0.020]], [0.922, [1.000, 1.000, 0.020]], [0.924, [1.000, 1.000, 0.069]], [0.926, [1.000, 1.000, 0.069]], [0.928, [1.000, 1.000, 0.118]], [0.930, [1.000, 1.000, 0.118]], [0.932, [1.000, 1.000, 0.167]], [0.933, [1.000, 1.000, 0.167]], [0.935, [1.000, 1.000, 0.216]], [0.937, [1.000, 1.000, 0.216]], [0.939, [1.000, 1.000, 0.265]], [0.941, [1.000, 1.000, 0.265]], [0.943, [1.000, 1.000, 0.314]], [0.945, [1.000, 1.000, 0.314]], [0.947, [1.000, 1.000, 0.363]], [0.949, [1.000, 1.000, 0.363]], [0.951, [1.000, 1.000, 0.412]], [0.953, [1.000, 1.000, 0.412]], [0.955, [1.000, 1.000, 0.461]], [0.957, [1.000, 1.000, 0.461]], [0.959, [1.000, 1.000, 0.510]], [0.961, [1.000, 1.000, 0.510]], [0.963, [1.000, 1.000, 0.559]], [0.965, [1.000, 1.000, 0.559]], [0.967, [1.000, 1.000, 0.608]], [0.969, [1.000, 1.000, 0.608]], [0.971, [1.000, 1.000, 0.657]], [0.973, [1.000, 1.000, 0.657]], [0.975, [1.000, 1.000, 0.706]], [0.977, [1.000, 1.000, 0.706]], [0.978, [1.000, 1.000, 0.755]], [0.980, [1.000, 1.000, 0.755]], [0.982, [1.000, 1.000, 0.804]], [0.984, [1.000, 1.000, 0.804]], [0.986, [1.000, 1.000, 0.853]], [0.988, [1.000, 1.000, 0.853]], [0.990, [1.000, 1.000, 0.902]], [0.992, [1.000, 1.000, 0.902]], [0.994, [1.000, 1.000, 0.951]], [0.996, [1.000, 1.000, 0.951]], [0.998, [1.000, 1.000, 1.000]], [1.000, [1.000, 1.000, 1.000]]];
+var hsv = [[0.000, [1.000, 0.000, 0.000]], [0.002, [1.000, 0.000, 0.000]], [0.004, [1.000, 0.023, 0.000]], [0.006, [1.000, 0.023, 0.000]], [0.008, [1.000, 0.046, 0.000]], [0.010, [1.000, 0.046, 0.000]], [0.012, [1.000, 0.069, 0.000]], [0.014, [1.000, 0.069, 0.000]], [0.016, [1.000, 0.093, 0.000]], [0.018, [1.000, 0.093, 0.000]], [0.020, [1.000, 0.116, 0.000]], [0.022, [1.000, 0.116, 0.000]], [0.023, [1.000, 0.139, 0.000]], [0.025, [1.000, 0.139, 0.000]], [0.027, [1.000, 0.162, 0.000]], [0.029, [1.000, 0.162, 0.000]], [0.031, [1.000, 0.185, 0.000]], [0.033, [1.000, 0.185, 0.000]], [0.035, [1.000, 0.208, 0.000]], [0.037, [1.000, 0.208, 0.000]], [0.039, [1.000, 0.232, 0.000]], [0.041, [1.000, 0.232, 0.000]], [0.043, [1.000, 0.255, 0.000]], [0.045, [1.000, 0.255, 0.000]], [0.047, [1.000, 0.278, 0.000]], [0.049, [1.000, 0.278, 0.000]], [0.051, [1.000, 0.301, 0.000]], [0.053, [1.000, 0.301, 0.000]], [0.055, [1.000, 0.324, 0.000]], [0.057, [1.000, 0.324, 0.000]], [0.059, [1.000, 0.347, 0.000]], [0.061, [1.000, 0.347, 0.000]], [0.063, [1.000, 0.371, 0.000]], [0.065, [1.000, 0.371, 0.000]], [0.067, [1.000, 0.394, 0.000]], [0.068, [1.000, 0.394, 0.000]], [0.070, [1.000, 0.417, 0.000]], [0.072, [1.000, 0.417, 0.000]], [0.074, [1.000, 0.440, 0.000]], [0.076, [1.000, 0.440, 0.000]], [0.078, [1.000, 0.463, 0.000]], [0.080, [1.000, 0.463, 0.000]], [0.082, [1.000, 0.486, 0.000]], [0.084, [1.000, 0.486, 0.000]], [0.086, [1.000, 0.510, 0.000]], [0.088, [1.000, 0.510, 0.000]], [0.090, [1.000, 0.533, 0.000]], [0.092, [1.000, 0.533, 0.000]], [0.094, [1.000, 0.556, 0.000]], [0.096, [1.000, 0.556, 0.000]], [0.098, [1.000, 0.579, 0.000]], [0.100, [1.000, 0.579, 0.000]], [0.102, [1.000, 0.602, 0.000]], [0.104, [1.000, 0.602, 0.000]], [0.106, [1.000, 0.625, 0.000]], [0.108, [1.000, 0.625, 0.000]], [0.110, [1.000, 0.649, 0.000]], [0.112, [1.000, 0.649, 0.000]], [0.114, [1.000, 0.672, 0.000]], [0.115, [1.000, 0.672, 0.000]], [0.117, [1.000, 0.695, 0.000]], [0.119, [1.000, 0.695, 0.000]], [0.121, [1.000, 0.718, 0.000]], [0.123, [1.000, 0.718, 0.000]], [0.125, [1.000, 0.741, 0.000]], [0.127, [1.000, 0.741, 0.000]], [0.129, [1.000, 0.764, 0.000]], [0.131, [1.000, 0.764, 0.000]], [0.133, [1.000, 0.788, 0.000]], [0.135, [1.000, 0.788, 0.000]], [0.137, [1.000, 0.811, 0.000]], [0.139, [1.000, 0.811, 0.000]], [0.141, [1.000, 0.834, 0.000]], [0.143, [1.000, 0.834, 0.000]], [0.145, [1.000, 0.857, 0.000]], [0.147, [1.000, 0.857, 0.000]], [0.149, [1.000, 0.880, 0.000]], [0.151, [1.000, 0.880, 0.000]], [0.153, [1.000, 0.903, 0.000]], [0.155, [1.000, 0.903, 0.000]], [0.157, [1.000, 0.926, 0.000]], [0.159, [1.000, 0.926, 0.000]], [0.160, [0.996, 0.946, 0.000]], [0.162, [0.996, 0.946, 0.000]], [0.164, [0.988, 0.961, 0.000]], [0.166, [0.988, 0.961, 0.000]], [0.168, [0.981, 0.976, 0.000]], [0.170, [0.981, 0.976, 0.000]], [0.172, [0.973, 0.992, 0.000]], [0.174, [0.973, 0.992, 0.000]], [0.176, [0.958, 1.000, 0.000]], [0.178, [0.958, 1.000, 0.000]], [0.180, [0.935, 1.000, 0.000]], [0.182, [0.935, 1.000, 0.000]], [0.184, [0.911, 1.000, 0.000]], [0.186, [0.911, 1.000, 0.000]], [0.188, [0.888, 1.000, 0.000]], [0.190, [0.888, 1.000, 0.000]], [0.192, [0.865, 1.000, 0.000]], [0.194, [0.865, 1.000, 0.000]], [0.196, [0.842, 1.000, 0.000]], [0.198, [0.842, 1.000, 0.000]], [0.200, [0.819, 1.000, 0.000]], [0.202, [0.819, 1.000, 0.000]], [0.204, [0.796, 1.000, 0.000]], [0.205, [0.796, 1.000, 0.000]], [0.207, [0.772, 1.000, 0.000]], [0.209, [0.772, 1.000, 0.000]], [0.211, [0.749, 1.000, 0.000]], [0.213, [0.749, 1.000, 0.000]], [0.215, [0.726, 1.000, 0.000]], [0.217, [0.726, 1.000, 0.000]], [0.219, [0.703, 1.000, 0.000]], [0.221, [0.703, 1.000, 0.000]], [0.223, [0.680, 1.000, 0.000]], [0.225, [0.680, 1.000, 0.000]], [0.227, [0.657, 1.000, 0.000]], [0.229, [0.657, 1.000, 0.000]], [0.231, [0.633, 1.000, 0.000]], [0.233, [0.633, 1.000, 0.000]], [0.235, [0.610, 1.000, 0.000]], [0.237, [0.610, 1.000, 0.000]], [0.239, [0.587, 1.000, 0.000]], [0.241, [0.587, 1.000, 0.000]], [0.243, [0.564, 1.000, 0.000]], [0.245, [0.564, 1.000, 0.000]], [0.247, [0.541, 1.000, 0.000]], [0.249, [0.541, 1.000, 0.000]], [0.250, [0.518, 1.000, 0.000]], [0.252, [0.518, 1.000, 0.000]], [0.254, [0.494, 1.000, 0.000]], [0.256, [0.494, 1.000, 0.000]], [0.258, [0.471, 1.000, 0.000]], [0.260, [0.471, 1.000, 0.000]], [0.262, [0.448, 1.000, 0.000]], [0.264, [0.448, 1.000, 0.000]], [0.266, [0.425, 1.000, 0.000]], [0.268, [0.425, 1.000, 0.000]], [0.270, [0.402, 1.000, 0.000]], [0.272, [0.402, 1.000, 0.000]], [0.274, [0.379, 1.000, 0.000]], [0.276, [0.379, 1.000, 0.000]], [0.278, [0.356, 1.000, 0.000]], [0.280, [0.356, 1.000, 0.000]], [0.282, [0.332, 1.000, 0.000]], [0.284, [0.332, 1.000, 0.000]], [0.286, [0.309, 1.000, 0.000]], [0.288, [0.309, 1.000, 0.000]], [0.290, [0.286, 1.000, 0.000]], [0.292, [0.286, 1.000, 0.000]], [0.294, [0.263, 1.000, 0.000]], [0.295, [0.263, 1.000, 0.000]], [0.297, [0.240, 1.000, 0.000]], [0.299, [0.240, 1.000, 0.000]], [0.301, [0.217, 1.000, 0.000]], [0.303, [0.217, 1.000, 0.000]], [0.305, [0.193, 1.000, 0.000]], [0.307, [0.193, 1.000, 0.000]], [0.309, [0.170, 1.000, 0.000]], [0.311, [0.170, 1.000, 0.000]], [0.313, [0.147, 1.000, 0.000]], [0.315, [0.147, 1.000, 0.000]], [0.317, [0.124, 1.000, 0.000]], [0.319, [0.124, 1.000, 0.000]], [0.321, [0.101, 1.000, 0.000]], [0.323, [0.101, 1.000, 0.000]], [0.325, [0.078, 1.000, 0.000]], [0.327, [0.078, 1.000, 0.000]], [0.329, [0.054, 1.000, 0.000]], [0.331, [0.054, 1.000, 0.000]], [0.333, [0.031, 1.000, 0.000]], [0.335, [0.031, 1.000, 0.000]], [0.337, [0.024, 1.000, 0.015]], [0.339, [0.024, 1.000, 0.015]], [0.341, [0.016, 1.000, 0.031]], [0.342, [0.016, 1.000, 0.031]], [0.344, [0.008, 1.000, 0.046]], [0.346, [0.008, 1.000, 0.046]], [0.348, [0.000, 1.000, 0.062]], [0.350, [0.000, 1.000, 0.062]], [0.352, [0.000, 1.000, 0.085]], [0.354, [0.000, 1.000, 0.085]], [0.356, [0.000, 1.000, 0.108]], [0.358, [0.000, 1.000, 0.108]], [0.360, [0.000, 1.000, 0.131]], [0.362, [0.000, 1.000, 0.131]], [0.364, [0.000, 1.000, 0.154]], [0.366, [0.000, 1.000, 0.154]], [0.368, [0.000, 1.000, 0.177]], [0.370, [0.000, 1.000, 0.177]], [0.372, [0.000, 1.000, 0.200]], [0.374, [0.000, 1.000, 0.200]], [0.376, [0.000, 1.000, 0.224]], [0.378, [0.000, 1.000, 0.224]], [0.380, [0.000, 1.000, 0.247]], [0.382, [0.000, 1.000, 0.247]], [0.384, [0.000, 1.000, 0.270]], [0.386, [0.000, 1.000, 0.270]], [0.387, [0.000, 1.000, 0.293]], [0.389, [0.000, 1.000, 0.293]], [0.391, [0.000, 1.000, 0.316]], [0.393, [0.000, 1.000, 0.316]], [0.395, [0.000, 1.000, 0.339]], [0.397, [0.000, 1.000, 0.339]], [0.399, [0.000, 1.000, 0.363]], [0.401, [0.000, 1.000, 0.363]], [0.403, [0.000, 1.000, 0.386]], [0.405, [0.000, 1.000, 0.386]], [0.407, [0.000, 1.000, 0.409]], [0.409, [0.000, 1.000, 0.409]], [0.411, [0.000, 1.000, 0.432]], [0.413, [0.000, 1.000, 0.432]], [0.415, [0.000, 1.000, 0.455]], [0.417, [0.000, 1.000, 0.455]], [0.419, [0.000, 1.000, 0.478]], [0.421, [0.000, 1.000, 0.478]], [0.423, [0.000, 1.000, 0.501]], [0.425, [0.000, 1.000, 0.501]], [0.427, [0.000, 1.000, 0.525]], [0.429, [0.000, 1.000, 0.525]], [0.431, [0.000, 1.000, 0.548]], [0.432, [0.000, 1.000, 0.548]], [0.434, [0.000, 1.000, 0.571]], [0.436, [0.000, 1.000, 0.571]], [0.438, [0.000, 1.000, 0.594]], [0.440, [0.000, 1.000, 0.594]], [0.442, [0.000, 1.000, 0.617]], [0.444, [0.000, 1.000, 0.617]], [0.446, [0.000, 1.000, 0.640]], [0.448, [0.000, 1.000, 0.640]], [0.450, [0.000, 1.000, 0.664]], [0.452, [0.000, 1.000, 0.664]], [0.454, [0.000, 1.000, 0.687]], [0.456, [0.000, 1.000, 0.687]], [0.458, [0.000, 1.000, 0.710]], [0.460, [0.000, 1.000, 0.710]], [0.462, [0.000, 1.000, 0.733]], [0.464, [0.000, 1.000, 0.733]], [0.466, [0.000, 1.000, 0.756]], [0.468, [0.000, 1.000, 0.756]], [0.470, [0.000, 1.000, 0.779]], [0.472, [0.000, 1.000, 0.779]], [0.474, [0.000, 1.000, 0.803]], [0.476, [0.000, 1.000, 0.803]], [0.477, [0.000, 1.000, 0.826]], [0.479, [0.000, 1.000, 0.826]], [0.481, [0.000, 1.000, 0.849]], [0.483, [0.000, 1.000, 0.849]], [0.485, [0.000, 1.000, 0.872]], [0.487, [0.000, 1.000, 0.872]], [0.489, [0.000, 1.000, 0.895]], [0.491, [0.000, 1.000, 0.895]], [0.493, [0.000, 1.000, 0.918]], [0.495, [0.000, 1.000, 0.918]], [0.497, [0.000, 1.000, 0.942]], [0.499, [0.000, 1.000, 0.942]], [0.501, [0.000, 1.000, 0.965]], [0.503, [0.000, 1.000, 0.965]], [0.505, [0.000, 1.000, 0.988]], [0.507, [0.000, 1.000, 0.988]], [0.509, [0.000, 0.989, 1.000]], [0.511, [0.000, 0.989, 1.000]], [0.513, [0.000, 0.966, 1.000]], [0.515, [0.000, 0.966, 1.000]], [0.517, [0.000, 0.943, 1.000]], [0.519, [0.000, 0.943, 1.000]], [0.521, [0.000, 0.919, 1.000]], [0.523, [0.000, 0.919, 1.000]], [0.524, [0.000, 0.896, 1.000]], [0.526, [0.000, 0.896, 1.000]], [0.528, [0.000, 0.873, 1.000]], [0.530, [0.000, 0.873, 1.000]], [0.532, [0.000, 0.850, 1.000]], [0.534, [0.000, 0.850, 1.000]], [0.536, [0.000, 0.827, 1.000]], [0.538, [0.000, 0.827, 1.000]], [0.540, [0.000, 0.804, 1.000]], [0.542, [0.000, 0.804, 1.000]], [0.544, [0.000, 0.781, 1.000]], [0.546, [0.000, 0.781, 1.000]], [0.548, [0.000, 0.757, 1.000]], [0.550, [0.000, 0.757, 1.000]], [0.552, [0.000, 0.734, 1.000]], [0.554, [0.000, 0.734, 1.000]], [0.556, [0.000, 0.711, 1.000]], [0.558, [0.000, 0.711, 1.000]], [0.560, [0.000, 0.688, 1.000]], [0.562, [0.000, 0.688, 1.000]], [0.564, [0.000, 0.665, 1.000]], [0.566, [0.000, 0.665, 1.000]], [0.568, [0.000, 0.642, 1.000]], [0.569, [0.000, 0.642, 1.000]], [0.571, [0.000, 0.618, 1.000]], [0.573, [0.000, 0.618, 1.000]], [0.575, [0.000, 0.595, 1.000]], [0.577, [0.000, 0.595, 1.000]], [0.579, [0.000, 0.572, 1.000]], [0.581, [0.000, 0.572, 1.000]], [0.583, [0.000, 0.549, 1.000]], [0.585, [0.000, 0.549, 1.000]], [0.587, [0.000, 0.526, 1.000]], [0.589, [0.000, 0.526, 1.000]], [0.591, [0.000, 0.503, 1.000]], [0.593, [0.000, 0.503, 1.000]], [0.595, [0.000, 0.479, 1.000]], [0.597, [0.000, 0.479, 1.000]], [0.599, [0.000, 0.456, 1.000]], [0.601, [0.000, 0.456, 1.000]], [0.603, [0.000, 0.433, 1.000]], [0.605, [0.000, 0.433, 1.000]], [0.607, [0.000, 0.410, 1.000]], [0.609, [0.000, 0.410, 1.000]], [0.611, [0.000, 0.387, 1.000]], [0.613, [0.000, 0.387, 1.000]], [0.614, [0.000, 0.364, 1.000]], [0.616, [0.000, 0.364, 1.000]], [0.618, [0.000, 0.340, 1.000]], [0.620, [0.000, 0.340, 1.000]], [0.622, [0.000, 0.317, 1.000]], [0.624, [0.000, 0.317, 1.000]], [0.626, [0.000, 0.294, 1.000]], [0.628, [0.000, 0.294, 1.000]], [0.630, [0.000, 0.271, 1.000]], [0.632, [0.000, 0.271, 1.000]], [0.634, [0.000, 0.248, 1.000]], [0.636, [0.000, 0.248, 1.000]], [0.638, [0.000, 0.225, 1.000]], [0.640, [0.000, 0.225, 1.000]], [0.642, [0.000, 0.201, 1.000]], [0.644, [0.000, 0.201, 1.000]], [0.646, [0.000, 0.178, 1.000]], [0.648, [0.000, 0.178, 1.000]], [0.650, [0.000, 0.155, 1.000]], [0.652, [0.000, 0.155, 1.000]], [0.654, [0.000, 0.132, 1.000]], [0.656, [0.000, 0.132, 1.000]], [0.658, [0.000, 0.109, 1.000]], [0.659, [0.000, 0.109, 1.000]], [0.661, [0.000, 0.086, 1.000]], [0.663, [0.000, 0.086, 1.000]], [0.665, [0.000, 0.063, 1.000]], [0.667, [0.000, 0.063, 1.000]], [0.669, [0.008, 0.047, 1.000]], [0.671, [0.008, 0.047, 1.000]], [0.673, [0.015, 0.032, 1.000]], [0.675, [0.015, 0.032, 1.000]], [0.677, [0.023, 0.016, 1.000]], [0.679, [0.023, 0.016, 1.000]], [0.681, [0.031, 0.001, 1.000]], [0.683, [0.031, 0.001, 1.000]], [0.685, [0.053, 0.000, 1.000]], [0.687, [0.053, 0.000, 1.000]], [0.689, [0.076, 0.000, 1.000]], [0.691, [0.076, 0.000, 1.000]], [0.693, [0.100, 0.000, 1.000]], [0.695, [0.100, 0.000, 1.000]], [0.697, [0.123, 0.000, 1.000]], [0.699, [0.123, 0.000, 1.000]], [0.701, [0.146, 0.000, 1.000]], [0.703, [0.146, 0.000, 1.000]], [0.705, [0.169, 0.000, 1.000]], [0.706, [0.169, 0.000, 1.000]], [0.708, [0.192, 0.000, 1.000]], [0.710, [0.192, 0.000, 1.000]], [0.712, [0.215, 0.000, 1.000]], [0.714, [0.215, 0.000, 1.000]], [0.716, [0.239, 0.000, 1.000]], [0.718, [0.239, 0.000, 1.000]], [0.720, [0.262, 0.000, 1.000]], [0.722, [0.262, 0.000, 1.000]], [0.724, [0.285, 0.000, 1.000]], [0.726, [0.285, 0.000, 1.000]], [0.728, [0.308, 0.000, 1.000]], [0.730, [0.308, 0.000, 1.000]], [0.732, [0.331, 0.000, 1.000]], [0.734, [0.331, 0.000, 1.000]], [0.736, [0.354, 0.000, 1.000]], [0.738, [0.354, 0.000, 1.000]], [0.740, [0.378, 0.000, 1.000]], [0.742, [0.378, 0.000, 1.000]], [0.744, [0.401, 0.000, 1.000]], [0.746, [0.401, 0.000, 1.000]], [0.748, [0.424, 0.000, 1.000]], [0.750, [0.424, 0.000, 1.000]], [0.751, [0.447, 0.000, 1.000]], [0.753, [0.447, 0.000, 1.000]], [0.755, [0.470, 0.000, 1.000]], [0.757, [0.470, 0.000, 1.000]], [0.759, [0.493, 0.000, 1.000]], [0.761, [0.493, 0.000, 1.000]], [0.763, [0.517, 0.000, 1.000]], [0.765, [0.517, 0.000, 1.000]], [0.767, [0.540, 0.000, 1.000]], [0.769, [0.540, 0.000, 1.000]], [0.771, [0.563, 0.000, 1.000]], [0.773, [0.563, 0.000, 1.000]], [0.775, [0.586, 0.000, 1.000]], [0.777, [0.586, 0.000, 1.000]], [0.779, [0.609, 0.000, 1.000]], [0.781, [0.609, 0.000, 1.000]], [0.783, [0.632, 0.000, 1.000]], [0.785, [0.632, 0.000, 1.000]], [0.787, [0.656, 0.000, 1.000]], [0.789, [0.656, 0.000, 1.000]], [0.791, [0.679, 0.000, 1.000]], [0.793, [0.679, 0.000, 1.000]], [0.795, [0.702, 0.000, 1.000]], [0.796, [0.702, 0.000, 1.000]], [0.798, [0.725, 0.000, 1.000]], [0.800, [0.725, 0.000, 1.000]], [0.802, [0.748, 0.000, 1.000]], [0.804, [0.748, 0.000, 1.000]], [0.806, [0.771, 0.000, 1.000]], [0.808, [0.771, 0.000, 1.000]], [0.810, [0.794, 0.000, 1.000]], [0.812, [0.794, 0.000, 1.000]], [0.814, [0.818, 0.000, 1.000]], [0.816, [0.818, 0.000, 1.000]], [0.818, [0.841, 0.000, 1.000]], [0.820, [0.841, 0.000, 1.000]], [0.822, [0.864, 0.000, 1.000]], [0.824, [0.864, 0.000, 1.000]], [0.826, [0.887, 0.000, 1.000]], [0.828, [0.887, 0.000, 1.000]], [0.830, [0.910, 0.000, 1.000]], [0.832, [0.910, 0.000, 1.000]], [0.834, [0.933, 0.000, 1.000]], [0.836, [0.933, 0.000, 1.000]], [0.838, [0.957, 0.000, 1.000]], [0.840, [0.957, 0.000, 1.000]], [0.841, [0.972, 0.000, 0.993]], [0.843, [0.972, 0.000, 0.993]], [0.845, [0.980, 0.000, 0.977]], [0.847, [0.980, 0.000, 0.977]], [0.849, [0.988, 0.000, 0.962]], [0.851, [0.988, 0.000, 0.962]], [0.853, [0.996, 0.000, 0.946]], [0.855, [0.996, 0.000, 0.946]], [0.857, [1.000, 0.000, 0.928]], [0.859, [1.000, 0.000, 0.928]], [0.861, [1.000, 0.000, 0.904]], [0.863, [1.000, 0.000, 0.904]], [0.865, [1.000, 0.000, 0.881]], [0.867, [1.000, 0.000, 0.881]], [0.869, [1.000, 0.000, 0.858]], [0.871, [1.000, 0.000, 0.858]], [0.873, [1.000, 0.000, 0.835]], [0.875, [1.000, 0.000, 0.835]], [0.877, [1.000, 0.000, 0.812]], [0.879, [1.000, 0.000, 0.812]], [0.881, [1.000, 0.000, 0.789]], [0.883, [1.000, 0.000, 0.789]], [0.885, [1.000, 0.000, 0.765]], [0.886, [1.000, 0.000, 0.765]], [0.888, [1.000, 0.000, 0.742]], [0.890, [1.000, 0.000, 0.742]], [0.892, [1.000, 0.000, 0.719]], [0.894, [1.000, 0.000, 0.719]], [0.896, [1.000, 0.000, 0.696]], [0.898, [1.000, 0.000, 0.696]], [0.900, [1.000, 0.000, 0.673]], [0.902, [1.000, 0.000, 0.673]], [0.904, [1.000, 0.000, 0.650]], [0.906, [1.000, 0.000, 0.650]], [0.908, [1.000, 0.000, 0.626]], [0.910, [1.000, 0.000, 0.626]], [0.912, [1.000, 0.000, 0.603]], [0.914, [1.000, 0.000, 0.603]], [0.916, [1.000, 0.000, 0.580]], [0.918, [1.000, 0.000, 0.580]], [0.920, [1.000, 0.000, 0.557]], [0.922, [1.000, 0.000, 0.557]], [0.924, [1.000, 0.000, 0.534]], [0.926, [1.000, 0.000, 0.534]], [0.928, [1.000, 0.000, 0.511]], [0.930, [1.000, 0.000, 0.511]], [0.932, [1.000, 0.000, 0.488]], [0.933, [1.000, 0.000, 0.488]], [0.935, [1.000, 0.000, 0.464]], [0.937, [1.000, 0.000, 0.464]], [0.939, [1.000, 0.000, 0.441]], [0.941, [1.000, 0.000, 0.441]], [0.943, [1.000, 0.000, 0.418]], [0.945, [1.000, 0.000, 0.418]], [0.947, [1.000, 0.000, 0.395]], [0.949, [1.000, 0.000, 0.395]], [0.951, [1.000, 0.000, 0.372]], [0.953, [1.000, 0.000, 0.372]], [0.955, [1.000, 0.000, 0.349]], [0.957, [1.000, 0.000, 0.349]], [0.959, [1.000, 0.000, 0.325]], [0.961, [1.000, 0.000, 0.325]], [0.963, [1.000, 0.000, 0.302]], [0.965, [1.000, 0.000, 0.302]], [0.967, [1.000, 0.000, 0.279]], [0.969, [1.000, 0.000, 0.279]], [0.971, [1.000, 0.000, 0.256]], [0.973, [1.000, 0.000, 0.256]], [0.975, [1.000, 0.000, 0.233]], [0.977, [1.000, 0.000, 0.233]], [0.978, [1.000, 0.000, 0.210]], [0.980, [1.000, 0.000, 0.210]], [0.982, [1.000, 0.000, 0.186]], [0.984, [1.000, 0.000, 0.186]], [0.986, [1.000, 0.000, 0.163]], [0.988, [1.000, 0.000, 0.163]], [0.990, [1.000, 0.000, 0.140]], [0.992, [1.000, 0.000, 0.140]], [0.994, [1.000, 0.000, 0.117]], [0.996, [1.000, 0.000, 0.117]], [0.998, [1.000, 0.000, 0.094]], [1.000, [1.000, 0.000, 0.094]]];
+var jet = [[0.000, [0.000, 0.000, 0.500]], [0.002, [0.000, 0.000, 0.500]], [0.004, [0.000, 0.000, 0.518]], [0.006, [0.000, 0.000, 0.518]], [0.008, [0.000, 0.000, 0.536]], [0.010, [0.000, 0.000, 0.536]], [0.012, [0.000, 0.000, 0.553]], [0.014, [0.000, 0.000, 0.553]], [0.016, [0.000, 0.000, 0.571]], [0.018, [0.000, 0.000, 0.571]], [0.020, [0.000, 0.000, 0.589]], [0.022, [0.000, 0.000, 0.589]], [0.023, [0.000, 0.000, 0.607]], [0.025, [0.000, 0.000, 0.607]], [0.027, [0.000, 0.000, 0.625]], [0.029, [0.000, 0.000, 0.625]], [0.031, [0.000, 0.000, 0.643]], [0.033, [0.000, 0.000, 0.643]], [0.035, [0.000, 0.000, 0.660]], [0.037, [0.000, 0.000, 0.660]], [0.039, [0.000, 0.000, 0.678]], [0.041, [0.000, 0.000, 0.678]], [0.043, [0.000, 0.000, 0.696]], [0.045, [0.000, 0.000, 0.696]], [0.047, [0.000, 0.000, 0.714]], [0.049, [0.000, 0.000, 0.714]], [0.051, [0.000, 0.000, 0.732]], [0.053, [0.000, 0.000, 0.732]], [0.055, [0.000, 0.000, 0.750]], [0.057, [0.000, 0.000, 0.750]], [0.059, [0.000, 0.000, 0.767]], [0.061, [0.000, 0.000, 0.767]], [0.063, [0.000, 0.000, 0.785]], [0.065, [0.000, 0.000, 0.785]], [0.067, [0.000, 0.000, 0.803]], [0.068, [0.000, 0.000, 0.803]], [0.070, [0.000, 0.000, 0.821]], [0.072, [0.000, 0.000, 0.821]], [0.074, [0.000, 0.000, 0.839]], [0.076, [0.000, 0.000, 0.839]], [0.078, [0.000, 0.000, 0.857]], [0.080, [0.000, 0.000, 0.857]], [0.082, [0.000, 0.000, 0.874]], [0.084, [0.000, 0.000, 0.874]], [0.086, [0.000, 0.000, 0.892]], [0.088, [0.000, 0.000, 0.892]], [0.090, [0.000, 0.000, 0.910]], [0.092, [0.000, 0.000, 0.910]], [0.094, [0.000, 0.000, 0.928]], [0.096, [0.000, 0.000, 0.928]], [0.098, [0.000, 0.000, 0.946]], [0.100, [0.000, 0.000, 0.946]], [0.102, [0.000, 0.000, 0.963]], [0.104, [0.000, 0.000, 0.963]], [0.106, [0.000, 0.000, 0.981]], [0.108, [0.000, 0.000, 0.981]], [0.110, [0.000, 0.000, 0.999]], [0.112, [0.000, 0.000, 0.999]], [0.114, [0.000, 0.000, 1.000]], [0.115, [0.000, 0.000, 1.000]], [0.117, [0.000, 0.000, 1.000]], [0.119, [0.000, 0.000, 1.000]], [0.121, [0.000, 0.000, 1.000]], [0.123, [0.000, 0.000, 1.000]], [0.125, [0.000, 0.002, 1.000]], [0.127, [0.000, 0.002, 1.000]], [0.129, [0.000, 0.018, 1.000]], [0.131, [0.000, 0.018, 1.000]], [0.133, [0.000, 0.033, 1.000]], [0.135, [0.000, 0.033, 1.000]], [0.137, [0.000, 0.049, 1.000]], [0.139, [0.000, 0.049, 1.000]], [0.141, [0.000, 0.065, 1.000]], [0.143, [0.000, 0.065, 1.000]], [0.145, [0.000, 0.080, 1.000]], [0.147, [0.000, 0.080, 1.000]], [0.149, [0.000, 0.096, 1.000]], [0.151, [0.000, 0.096, 1.000]], [0.153, [0.000, 0.112, 1.000]], [0.155, [0.000, 0.112, 1.000]], [0.157, [0.000, 0.127, 1.000]], [0.159, [0.000, 0.127, 1.000]], [0.160, [0.000, 0.143, 1.000]], [0.162, [0.000, 0.143, 1.000]], [0.164, [0.000, 0.159, 1.000]], [0.166, [0.000, 0.159, 1.000]], [0.168, [0.000, 0.175, 1.000]], [0.170, [0.000, 0.175, 1.000]], [0.172, [0.000, 0.190, 1.000]], [0.174, [0.000, 0.190, 1.000]], [0.176, [0.000, 0.206, 1.000]], [0.178, [0.000, 0.206, 1.000]], [0.180, [0.000, 0.222, 1.000]], [0.182, [0.000, 0.222, 1.000]], [0.184, [0.000, 0.237, 1.000]], [0.186, [0.000, 0.237, 1.000]], [0.188, [0.000, 0.253, 1.000]], [0.190, [0.000, 0.253, 1.000]], [0.192, [0.000, 0.269, 1.000]], [0.194, [0.000, 0.269, 1.000]], [0.196, [0.000, 0.284, 1.000]], [0.198, [0.000, 0.284, 1.000]], [0.200, [0.000, 0.300, 1.000]], [0.202, [0.000, 0.300, 1.000]], [0.204, [0.000, 0.316, 1.000]], [0.205, [0.000, 0.316, 1.000]], [0.207, [0.000, 0.331, 1.000]], [0.209, [0.000, 0.331, 1.000]], [0.211, [0.000, 0.347, 1.000]], [0.213, [0.000, 0.347, 1.000]], [0.215, [0.000, 0.363, 1.000]], [0.217, [0.000, 0.363, 1.000]], [0.219, [0.000, 0.378, 1.000]], [0.221, [0.000, 0.378, 1.000]], [0.223, [0.000, 0.394, 1.000]], [0.225, [0.000, 0.394, 1.000]], [0.227, [0.000, 0.410, 1.000]], [0.229, [0.000, 0.410, 1.000]], [0.231, [0.000, 0.425, 1.000]], [0.233, [0.000, 0.425, 1.000]], [0.235, [0.000, 0.441, 1.000]], [0.237, [0.000, 0.441, 1.000]], [0.239, [0.000, 0.457, 1.000]], [0.241, [0.000, 0.457, 1.000]], [0.243, [0.000, 0.473, 1.000]], [0.245, [0.000, 0.473, 1.000]], [0.247, [0.000, 0.488, 1.000]], [0.249, [0.000, 0.488, 1.000]], [0.250, [0.000, 0.504, 1.000]], [0.252, [0.000, 0.504, 1.000]], [0.254, [0.000, 0.520, 1.000]], [0.256, [0.000, 0.520, 1.000]], [0.258, [0.000, 0.535, 1.000]], [0.260, [0.000, 0.535, 1.000]], [0.262, [0.000, 0.551, 1.000]], [0.264, [0.000, 0.551, 1.000]], [0.266, [0.000, 0.567, 1.000]], [0.268, [0.000, 0.567, 1.000]], [0.270, [0.000, 0.582, 1.000]], [0.272, [0.000, 0.582, 1.000]], [0.274, [0.000, 0.598, 1.000]], [0.276, [0.000, 0.598, 1.000]], [0.278, [0.000, 0.614, 1.000]], [0.280, [0.000, 0.614, 1.000]], [0.282, [0.000, 0.629, 1.000]], [0.284, [0.000, 0.629, 1.000]], [0.286, [0.000, 0.645, 1.000]], [0.288, [0.000, 0.645, 1.000]], [0.290, [0.000, 0.661, 1.000]], [0.292, [0.000, 0.661, 1.000]], [0.294, [0.000, 0.676, 1.000]], [0.295, [0.000, 0.676, 1.000]], [0.297, [0.000, 0.692, 1.000]], [0.299, [0.000, 0.692, 1.000]], [0.301, [0.000, 0.708, 1.000]], [0.303, [0.000, 0.708, 1.000]], [0.305, [0.000, 0.724, 1.000]], [0.307, [0.000, 0.724, 1.000]], [0.309, [0.000, 0.739, 1.000]], [0.311, [0.000, 0.739, 1.000]], [0.313, [0.000, 0.755, 1.000]], [0.315, [0.000, 0.755, 1.000]], [0.317, [0.000, 0.771, 1.000]], [0.319, [0.000, 0.771, 1.000]], [0.321, [0.000, 0.786, 1.000]], [0.323, [0.000, 0.786, 1.000]], [0.325, [0.000, 0.802, 1.000]], [0.327, [0.000, 0.802, 1.000]], [0.329, [0.000, 0.818, 1.000]], [0.331, [0.000, 0.818, 1.000]], [0.333, [0.000, 0.833, 1.000]], [0.335, [0.000, 0.833, 1.000]], [0.337, [0.000, 0.849, 1.000]], [0.339, [0.000, 0.849, 1.000]], [0.341, [0.000, 0.865, 0.996]], [0.342, [0.000, 0.865, 0.996]], [0.344, [0.000, 0.880, 0.984]], [0.346, [0.000, 0.880, 0.984]], [0.348, [0.000, 0.896, 0.971]], [0.350, [0.000, 0.896, 0.971]], [0.352, [0.009, 0.912, 0.958]], [0.354, [0.009, 0.912, 0.958]], [0.356, [0.022, 0.927, 0.946]], [0.358, [0.022, 0.927, 0.946]], [0.360, [0.035, 0.943, 0.933]], [0.362, [0.035, 0.943, 0.933]], [0.364, [0.047, 0.959, 0.920]], [0.366, [0.047, 0.959, 0.920]], [0.368, [0.060, 0.975, 0.908]], [0.370, [0.060, 0.975, 0.908]], [0.372, [0.073, 0.990, 0.895]], [0.374, [0.073, 0.990, 0.895]], [0.376, [0.085, 1.000, 0.882]], [0.378, [0.085, 1.000, 0.882]], [0.380, [0.098, 1.000, 0.870]], [0.382, [0.098, 1.000, 0.870]], [0.384, [0.111, 1.000, 0.857]], [0.386, [0.111, 1.000, 0.857]], [0.387, [0.123, 1.000, 0.844]], [0.389, [0.123, 1.000, 0.844]], [0.391, [0.136, 1.000, 0.832]], [0.393, [0.136, 1.000, 0.832]], [0.395, [0.149, 1.000, 0.819]], [0.397, [0.149, 1.000, 0.819]], [0.399, [0.161, 1.000, 0.806]], [0.401, [0.161, 1.000, 0.806]], [0.403, [0.174, 1.000, 0.794]], [0.405, [0.174, 1.000, 0.794]], [0.407, [0.187, 1.000, 0.781]], [0.409, [0.187, 1.000, 0.781]], [0.411, [0.199, 1.000, 0.769]], [0.413, [0.199, 1.000, 0.769]], [0.415, [0.212, 1.000, 0.756]], [0.417, [0.212, 1.000, 0.756]], [0.419, [0.225, 1.000, 0.743]], [0.421, [0.225, 1.000, 0.743]], [0.423, [0.237, 1.000, 0.731]], [0.425, [0.237, 1.000, 0.731]], [0.427, [0.250, 1.000, 0.718]], [0.429, [0.250, 1.000, 0.718]], [0.431, [0.262, 1.000, 0.705]], [0.432, [0.262, 1.000, 0.705]], [0.434, [0.275, 1.000, 0.693]], [0.436, [0.275, 1.000, 0.693]], [0.438, [0.288, 1.000, 0.680]], [0.440, [0.288, 1.000, 0.680]], [0.442, [0.300, 1.000, 0.667]], [0.444, [0.300, 1.000, 0.667]], [0.446, [0.313, 1.000, 0.655]], [0.448, [0.313, 1.000, 0.655]], [0.450, [0.326, 1.000, 0.642]], [0.452, [0.326, 1.000, 0.642]], [0.454, [0.338, 1.000, 0.629]], [0.456, [0.338, 1.000, 0.629]], [0.458, [0.351, 1.000, 0.617]], [0.460, [0.351, 1.000, 0.617]], [0.462, [0.364, 1.000, 0.604]], [0.464, [0.364, 1.000, 0.604]], [0.466, [0.376, 1.000, 0.591]], [0.468, [0.376, 1.000, 0.591]], [0.470, [0.389, 1.000, 0.579]], [0.472, [0.389, 1.000, 0.579]], [0.474, [0.402, 1.000, 0.566]], [0.476, [0.402, 1.000, 0.566]], [0.477, [0.414, 1.000, 0.553]], [0.479, [0.414, 1.000, 0.553]], [0.481, [0.427, 1.000, 0.541]], [0.483, [0.427, 1.000, 0.541]], [0.485, [0.440, 1.000, 0.528]], [0.487, [0.440, 1.000, 0.528]], [0.489, [0.452, 1.000, 0.515]], [0.491, [0.452, 1.000, 0.515]], [0.493, [0.465, 1.000, 0.503]], [0.495, [0.465, 1.000, 0.503]], [0.497, [0.478, 1.000, 0.490]], [0.499, [0.478, 1.000, 0.490]], [0.501, [0.490, 1.000, 0.478]], [0.503, [0.490, 1.000, 0.478]], [0.505, [0.503, 1.000, 0.465]], [0.507, [0.503, 1.000, 0.465]], [0.509, [0.515, 1.000, 0.452]], [0.511, [0.515, 1.000, 0.452]], [0.513, [0.528, 1.000, 0.440]], [0.515, [0.528, 1.000, 0.440]], [0.517, [0.541, 1.000, 0.427]], [0.519, [0.541, 1.000, 0.427]], [0.521, [0.553, 1.000, 0.414]], [0.523, [0.553, 1.000, 0.414]], [0.524, [0.566, 1.000, 0.402]], [0.526, [0.566, 1.000, 0.402]], [0.528, [0.579, 1.000, 0.389]], [0.530, [0.579, 1.000, 0.389]], [0.532, [0.591, 1.000, 0.376]], [0.534, [0.591, 1.000, 0.376]], [0.536, [0.604, 1.000, 0.364]], [0.538, [0.604, 1.000, 0.364]], [0.540, [0.617, 1.000, 0.351]], [0.542, [0.617, 1.000, 0.351]], [0.544, [0.629, 1.000, 0.338]], [0.546, [0.629, 1.000, 0.338]], [0.548, [0.642, 1.000, 0.326]], [0.550, [0.642, 1.000, 0.326]], [0.552, [0.655, 1.000, 0.313]], [0.554, [0.655, 1.000, 0.313]], [0.556, [0.667, 1.000, 0.300]], [0.558, [0.667, 1.000, 0.300]], [0.560, [0.680, 1.000, 0.288]], [0.562, [0.680, 1.000, 0.288]], [0.564, [0.693, 1.000, 0.275]], [0.566, [0.693, 1.000, 0.275]], [0.568, [0.705, 1.000, 0.262]], [0.569, [0.705, 1.000, 0.262]], [0.571, [0.718, 1.000, 0.250]], [0.573, [0.718, 1.000, 0.250]], [0.575, [0.731, 1.000, 0.237]], [0.577, [0.731, 1.000, 0.237]], [0.579, [0.743, 1.000, 0.225]], [0.581, [0.743, 1.000, 0.225]], [0.583, [0.756, 1.000, 0.212]], [0.585, [0.756, 1.000, 0.212]], [0.587, [0.769, 1.000, 0.199]], [0.589, [0.769, 1.000, 0.199]], [0.591, [0.781, 1.000, 0.187]], [0.593, [0.781, 1.000, 0.187]], [0.595, [0.794, 1.000, 0.174]], [0.597, [0.794, 1.000, 0.174]], [0.599, [0.806, 1.000, 0.161]], [0.601, [0.806, 1.000, 0.161]], [0.603, [0.819, 1.000, 0.149]], [0.605, [0.819, 1.000, 0.149]], [0.607, [0.832, 1.000, 0.136]], [0.609, [0.832, 1.000, 0.136]], [0.611, [0.844, 1.000, 0.123]], [0.613, [0.844, 1.000, 0.123]], [0.614, [0.857, 1.000, 0.111]], [0.616, [0.857, 1.000, 0.111]], [0.618, [0.870, 1.000, 0.098]], [0.620, [0.870, 1.000, 0.098]], [0.622, [0.882, 1.000, 0.085]], [0.624, [0.882, 1.000, 0.085]], [0.626, [0.895, 1.000, 0.073]], [0.628, [0.895, 1.000, 0.073]], [0.630, [0.908, 1.000, 0.060]], [0.632, [0.908, 1.000, 0.060]], [0.634, [0.920, 1.000, 0.047]], [0.636, [0.920, 1.000, 0.047]], [0.638, [0.933, 1.000, 0.035]], [0.640, [0.933, 1.000, 0.035]], [0.642, [0.946, 0.988, 0.022]], [0.644, [0.946, 0.988, 0.022]], [0.646, [0.958, 0.974, 0.009]], [0.648, [0.958, 0.974, 0.009]], [0.650, [0.971, 0.959, 0.000]], [0.652, [0.971, 0.959, 0.000]], [0.654, [0.984, 0.945, 0.000]], [0.656, [0.984, 0.945, 0.000]], [0.658, [0.996, 0.930, 0.000]], [0.659, [0.996, 0.930, 0.000]], [0.661, [1.000, 0.916, 0.000]], [0.663, [1.000, 0.916, 0.000]], [0.665, [1.000, 0.901, 0.000]], [0.667, [1.000, 0.901, 0.000]], [0.669, [1.000, 0.887, 0.000]], [0.671, [1.000, 0.887, 0.000]], [0.673, [1.000, 0.872, 0.000]], [0.675, [1.000, 0.872, 0.000]], [0.677, [1.000, 0.858, 0.000]], [0.679, [1.000, 0.858, 0.000]], [0.681, [1.000, 0.843, 0.000]], [0.683, [1.000, 0.843, 0.000]], [0.685, [1.000, 0.829, 0.000]], [0.687, [1.000, 0.829, 0.000]], [0.689, [1.000, 0.814, 0.000]], [0.691, [1.000, 0.814, 0.000]], [0.693, [1.000, 0.800, 0.000]], [0.695, [1.000, 0.800, 0.000]], [0.697, [1.000, 0.785, 0.000]], [0.699, [1.000, 0.785, 0.000]], [0.701, [1.000, 0.771, 0.000]], [0.703, [1.000, 0.771, 0.000]], [0.705, [1.000, 0.756, 0.000]], [0.706, [1.000, 0.756, 0.000]], [0.708, [1.000, 0.741, 0.000]], [0.710, [1.000, 0.741, 0.000]], [0.712, [1.000, 0.727, 0.000]], [0.714, [1.000, 0.727, 0.000]], [0.716, [1.000, 0.712, 0.000]], [0.718, [1.000, 0.712, 0.000]], [0.720, [1.000, 0.698, 0.000]], [0.722, [1.000, 0.698, 0.000]], [0.724, [1.000, 0.683, 0.000]], [0.726, [1.000, 0.683, 0.000]], [0.728, [1.000, 0.669, 0.000]], [0.730, [1.000, 0.669, 0.000]], [0.732, [1.000, 0.654, 0.000]], [0.734, [1.000, 0.654, 0.000]], [0.736, [1.000, 0.640, 0.000]], [0.738, [1.000, 0.640, 0.000]], [0.740, [1.000, 0.625, 0.000]], [0.742, [1.000, 0.625, 0.000]], [0.744, [1.000, 0.611, 0.000]], [0.746, [1.000, 0.611, 0.000]], [0.748, [1.000, 0.596, 0.000]], [0.750, [1.000, 0.596, 0.000]], [0.751, [1.000, 0.582, 0.000]], [0.753, [1.000, 0.582, 0.000]], [0.755, [1.000, 0.567, 0.000]], [0.757, [1.000, 0.567, 0.000]], [0.759, [1.000, 0.553, 0.000]], [0.761, [1.000, 0.553, 0.000]], [0.763, [1.000, 0.538, 0.000]], [0.765, [1.000, 0.538, 0.000]], [0.767, [1.000, 0.524, 0.000]], [0.769, [1.000, 0.524, 0.000]], [0.771, [1.000, 0.509, 0.000]], [0.773, [1.000, 0.509, 0.000]], [0.775, [1.000, 0.495, 0.000]], [0.777, [1.000, 0.495, 0.000]], [0.779, [1.000, 0.480, 0.000]], [0.781, [1.000, 0.480, 0.000]], [0.783, [1.000, 0.466, 0.000]], [0.785, [1.000, 0.466, 0.000]], [0.787, [1.000, 0.451, 0.000]], [0.789, [1.000, 0.451, 0.000]], [0.791, [1.000, 0.436, 0.000]], [0.793, [1.000, 0.436, 0.000]], [0.795, [1.000, 0.422, 0.000]], [0.796, [1.000, 0.422, 0.000]], [0.798, [1.000, 0.407, 0.000]], [0.800, [1.000, 0.407, 0.000]], [0.802, [1.000, 0.393, 0.000]], [0.804, [1.000, 0.393, 0.000]], [0.806, [1.000, 0.378, 0.000]], [0.808, [1.000, 0.378, 0.000]], [0.810, [1.000, 0.364, 0.000]], [0.812, [1.000, 0.364, 0.000]], [0.814, [1.000, 0.349, 0.000]], [0.816, [1.000, 0.349, 0.000]], [0.818, [1.000, 0.335, 0.000]], [0.820, [1.000, 0.335, 0.000]], [0.822, [1.000, 0.320, 0.000]], [0.824, [1.000, 0.320, 0.000]], [0.826, [1.000, 0.306, 0.000]], [0.828, [1.000, 0.306, 0.000]], [0.830, [1.000, 0.291, 0.000]], [0.832, [1.000, 0.291, 0.000]], [0.834, [1.000, 0.277, 0.000]], [0.836, [1.000, 0.277, 0.000]], [0.838, [1.000, 0.262, 0.000]], [0.840, [1.000, 0.262, 0.000]], [0.841, [1.000, 0.248, 0.000]], [0.843, [1.000, 0.248, 0.000]], [0.845, [1.000, 0.233, 0.000]], [0.847, [1.000, 0.233, 0.000]], [0.849, [1.000, 0.219, 0.000]], [0.851, [1.000, 0.219, 0.000]], [0.853, [1.000, 0.204, 0.000]], [0.855, [1.000, 0.204, 0.000]], [0.857, [1.000, 0.190, 0.000]], [0.859, [1.000, 0.190, 0.000]], [0.861, [1.000, 0.175, 0.000]], [0.863, [1.000, 0.175, 0.000]], [0.865, [1.000, 0.160, 0.000]], [0.867, [1.000, 0.160, 0.000]], [0.869, [1.000, 0.146, 0.000]], [0.871, [1.000, 0.146, 0.000]], [0.873, [1.000, 0.131, 0.000]], [0.875, [1.000, 0.131, 0.000]], [0.877, [1.000, 0.117, 0.000]], [0.879, [1.000, 0.117, 0.000]], [0.881, [1.000, 0.102, 0.000]], [0.883, [1.000, 0.102, 0.000]], [0.885, [1.000, 0.088, 0.000]], [0.886, [1.000, 0.088, 0.000]], [0.888, [0.999, 0.073, 0.000]], [0.890, [0.999, 0.073, 0.000]], [0.892, [0.981, 0.059, 0.000]], [0.894, [0.981, 0.059, 0.000]], [0.896, [0.963, 0.044, 0.000]], [0.898, [0.963, 0.044, 0.000]], [0.900, [0.946, 0.030, 0.000]], [0.902, [0.946, 0.030, 0.000]], [0.904, [0.928, 0.015, 0.000]], [0.906, [0.928, 0.015, 0.000]], [0.908, [0.910, 0.001, 0.000]], [0.910, [0.910, 0.001, 0.000]], [0.912, [0.892, 0.000, 0.000]], [0.914, [0.892, 0.000, 0.000]], [0.916, [0.874, 0.000, 0.000]], [0.918, [0.874, 0.000, 0.000]], [0.920, [0.857, 0.000, 0.000]], [0.922, [0.857, 0.000, 0.000]], [0.924, [0.839, 0.000, 0.000]], [0.926, [0.839, 0.000, 0.000]], [0.928, [0.821, 0.000, 0.000]], [0.930, [0.821, 0.000, 0.000]], [0.932, [0.803, 0.000, 0.000]], [0.933, [0.803, 0.000, 0.000]], [0.935, [0.785, 0.000, 0.000]], [0.937, [0.785, 0.000, 0.000]], [0.939, [0.767, 0.000, 0.000]], [0.941, [0.767, 0.000, 0.000]], [0.943, [0.750, 0.000, 0.000]], [0.945, [0.750, 0.000, 0.000]], [0.947, [0.732, 0.000, 0.000]], [0.949, [0.732, 0.000, 0.000]], [0.951, [0.714, 0.000, 0.000]], [0.953, [0.714, 0.000, 0.000]], [0.955, [0.696, 0.000, 0.000]], [0.957, [0.696, 0.000, 0.000]], [0.959, [0.678, 0.000, 0.000]], [0.961, [0.678, 0.000, 0.000]], [0.963, [0.660, 0.000, 0.000]], [0.965, [0.660, 0.000, 0.000]], [0.967, [0.643, 0.000, 0.000]], [0.969, [0.643, 0.000, 0.000]], [0.971, [0.625, 0.000, 0.000]], [0.973, [0.625, 0.000, 0.000]], [0.975, [0.607, 0.000, 0.000]], [0.977, [0.607, 0.000, 0.000]], [0.978, [0.589, 0.000, 0.000]], [0.980, [0.589, 0.000, 0.000]], [0.982, [0.571, 0.000, 0.000]], [0.984, [0.571, 0.000, 0.000]], [0.986, [0.553, 0.000, 0.000]], [0.988, [0.553, 0.000, 0.000]], [0.990, [0.536, 0.000, 0.000]], [0.992, [0.536, 0.000, 0.000]], [0.994, [0.518, 0.000, 0.000]], [0.996, [0.518, 0.000, 0.000]], [0.998, [0.500, 0.000, 0.000]], [1.000, [0.500, 0.000, 0.000]]];
+var nipy_spectral = [[0.000, [0.000, 0.000, 0.000]], [0.002, [0.000, 0.000, 0.000]], [0.004, [0.037, 0.000, 0.042]], [0.006, [0.037, 0.000, 0.042]], [0.008, [0.073, 0.000, 0.084]], [0.010, [0.073, 0.000, 0.084]], [0.012, [0.110, 0.000, 0.125]], [0.014, [0.110, 0.000, 0.125]], [0.016, [0.146, 0.000, 0.167]], [0.018, [0.146, 0.000, 0.167]], [0.020, [0.183, 0.000, 0.209]], [0.022, [0.183, 0.000, 0.209]], [0.023, [0.220, 0.000, 0.251]], [0.025, [0.220, 0.000, 0.251]], [0.027, [0.256, 0.000, 0.293]], [0.029, [0.256, 0.000, 0.293]], [0.031, [0.293, 0.000, 0.335]], [0.033, [0.293, 0.000, 0.335]], [0.035, [0.329, 0.000, 0.376]], [0.037, [0.329, 0.000, 0.376]], [0.039, [0.366, 0.000, 0.418]], [0.041, [0.366, 0.000, 0.418]], [0.043, [0.403, 0.000, 0.460]], [0.045, [0.403, 0.000, 0.460]], [0.047, [0.439, 0.000, 0.502]], [0.049, [0.439, 0.000, 0.502]], [0.051, [0.468, 0.000, 0.535]], [0.053, [0.468, 0.000, 0.535]], [0.055, [0.473, 0.000, 0.540]], [0.057, [0.473, 0.000, 0.540]], [0.059, [0.478, 0.000, 0.545]], [0.061, [0.478, 0.000, 0.545]], [0.063, [0.484, 0.000, 0.550]], [0.065, [0.484, 0.000, 0.550]], [0.067, [0.489, 0.000, 0.556]], [0.068, [0.489, 0.000, 0.556]], [0.070, [0.494, 0.000, 0.561]], [0.072, [0.494, 0.000, 0.561]], [0.074, [0.499, 0.000, 0.566]], [0.076, [0.499, 0.000, 0.566]], [0.078, [0.505, 0.000, 0.571]], [0.080, [0.505, 0.000, 0.571]], [0.082, [0.510, 0.000, 0.576]], [0.084, [0.510, 0.000, 0.576]], [0.086, [0.515, 0.000, 0.582]], [0.088, [0.515, 0.000, 0.582]], [0.090, [0.520, 0.000, 0.587]], [0.092, [0.520, 0.000, 0.587]], [0.094, [0.525, 0.000, 0.592]], [0.096, [0.525, 0.000, 0.592]], [0.098, [0.531, 0.000, 0.597]], [0.100, [0.531, 0.000, 0.597]], [0.102, [0.512, 0.000, 0.603]], [0.104, [0.512, 0.000, 0.603]], [0.106, [0.471, 0.000, 0.608]], [0.108, [0.471, 0.000, 0.608]], [0.110, [0.429, 0.000, 0.613]], [0.112, [0.429, 0.000, 0.613]], [0.114, [0.387, 0.000, 0.618]], [0.115, [0.387, 0.000, 0.618]], [0.117, [0.345, 0.000, 0.624]], [0.119, [0.345, 0.000, 0.624]], [0.121, [0.303, 0.000, 0.629]], [0.123, [0.303, 0.000, 0.629]], [0.125, [0.261, 0.000, 0.634]], [0.127, [0.261, 0.000, 0.634]], [0.129, [0.220, 0.000, 0.639]], [0.131, [0.220, 0.000, 0.639]], [0.133, [0.178, 0.000, 0.644]], [0.135, [0.178, 0.000, 0.644]], [0.137, [0.136, 0.000, 0.650]], [0.139, [0.136, 0.000, 0.650]], [0.141, [0.094, 0.000, 0.655]], [0.143, [0.094, 0.000, 0.655]], [0.145, [0.052, 0.000, 0.660]], [0.147, [0.052, 0.000, 0.660]], [0.149, [0.010, 0.000, 0.665]], [0.151, [0.010, 0.000, 0.665]], [0.153, [0.000, 0.000, 0.678]], [0.155, [0.000, 0.000, 0.678]], [0.157, [0.000, 0.000, 0.694]], [0.159, [0.000, 0.000, 0.694]], [0.160, [0.000, 0.000, 0.710]], [0.162, [0.000, 0.000, 0.710]], [0.164, [0.000, 0.000, 0.726]], [0.166, [0.000, 0.000, 0.726]], [0.168, [0.000, 0.000, 0.741]], [0.170, [0.000, 0.000, 0.741]], [0.172, [0.000, 0.000, 0.757]], [0.174, [0.000, 0.000, 0.757]], [0.176, [0.000, 0.000, 0.773]], [0.178, [0.000, 0.000, 0.773]], [0.180, [0.000, 0.000, 0.788]], [0.182, [0.000, 0.000, 0.788]], [0.184, [0.000, 0.000, 0.804]], [0.186, [0.000, 0.000, 0.804]], [0.188, [0.000, 0.000, 0.820]], [0.190, [0.000, 0.000, 0.820]], [0.192, [0.000, 0.000, 0.835]], [0.194, [0.000, 0.000, 0.835]], [0.196, [0.000, 0.000, 0.851]], [0.198, [0.000, 0.000, 0.851]], [0.200, [0.000, 0.000, 0.867]], [0.202, [0.000, 0.000, 0.867]], [0.204, [0.000, 0.037, 0.867]], [0.205, [0.000, 0.037, 0.867]], [0.207, [0.000, 0.073, 0.867]], [0.209, [0.000, 0.073, 0.867]], [0.211, [0.000, 0.110, 0.867]], [0.213, [0.000, 0.110, 0.867]], [0.215, [0.000, 0.146, 0.867]], [0.217, [0.000, 0.146, 0.867]], [0.219, [0.000, 0.183, 0.867]], [0.221, [0.000, 0.183, 0.867]], [0.223, [0.000, 0.220, 0.867]], [0.225, [0.000, 0.220, 0.867]], [0.227, [0.000, 0.256, 0.867]], [0.229, [0.000, 0.256, 0.867]], [0.231, [0.000, 0.293, 0.867]], [0.233, [0.000, 0.293, 0.867]], [0.235, [0.000, 0.329, 0.867]], [0.237, [0.000, 0.329, 0.867]], [0.239, [0.000, 0.366, 0.867]], [0.241, [0.000, 0.366, 0.867]], [0.243, [0.000, 0.403, 0.867]], [0.245, [0.000, 0.403, 0.867]], [0.247, [0.000, 0.439, 0.867]], [0.249, [0.000, 0.439, 0.867]], [0.250, [0.000, 0.469, 0.867]], [0.252, [0.000, 0.469, 0.867]], [0.254, [0.000, 0.480, 0.867]], [0.256, [0.000, 0.480, 0.867]], [0.258, [0.000, 0.490, 0.867]], [0.260, [0.000, 0.490, 0.867]], [0.262, [0.000, 0.501, 0.867]], [0.264, [0.000, 0.501, 0.867]], [0.266, [0.000, 0.511, 0.867]], [0.268, [0.000, 0.511, 0.867]], [0.270, [0.000, 0.522, 0.867]], [0.272, [0.000, 0.522, 0.867]], [0.274, [0.000, 0.532, 0.867]], [0.276, [0.000, 0.532, 0.867]], [0.278, [0.000, 0.542, 0.867]], [0.280, [0.000, 0.542, 0.867]], [0.282, [0.000, 0.553, 0.867]], [0.284, [0.000, 0.553, 0.867]], [0.286, [0.000, 0.563, 0.867]], [0.288, [0.000, 0.563, 0.867]], [0.290, [0.000, 0.574, 0.867]], [0.292, [0.000, 0.574, 0.867]], [0.294, [0.000, 0.584, 0.867]], [0.295, [0.000, 0.584, 0.867]], [0.297, [0.000, 0.595, 0.867]], [0.299, [0.000, 0.595, 0.867]], [0.301, [0.000, 0.603, 0.859]], [0.303, [0.000, 0.603, 0.859]], [0.305, [0.000, 0.608, 0.843]], [0.307, [0.000, 0.608, 0.843]], [0.309, [0.000, 0.613, 0.827]], [0.311, [0.000, 0.613, 0.827]], [0.313, [0.000, 0.618, 0.812]], [0.315, [0.000, 0.618, 0.812]], [0.317, [0.000, 0.624, 0.796]], [0.319, [0.000, 0.624, 0.796]], [0.321, [0.000, 0.629, 0.780]], [0.323, [0.000, 0.629, 0.780]], [0.325, [0.000, 0.634, 0.765]], [0.327, [0.000, 0.634, 0.765]], [0.329, [0.000, 0.639, 0.749]], [0.331, [0.000, 0.639, 0.749]], [0.333, [0.000, 0.644, 0.733]], [0.335, [0.000, 0.644, 0.733]], [0.337, [0.000, 0.650, 0.718]], [0.339, [0.000, 0.650, 0.718]], [0.341, [0.000, 0.655, 0.702]], [0.342, [0.000, 0.655, 0.702]], [0.344, [0.000, 0.660, 0.686]], [0.346, [0.000, 0.660, 0.686]], [0.348, [0.000, 0.665, 0.671]], [0.350, [0.000, 0.665, 0.671]], [0.352, [0.000, 0.667, 0.659]], [0.354, [0.000, 0.667, 0.659]], [0.356, [0.000, 0.667, 0.648]], [0.358, [0.000, 0.667, 0.648]], [0.360, [0.000, 0.667, 0.638]], [0.362, [0.000, 0.667, 0.638]], [0.364, [0.000, 0.667, 0.627]], [0.366, [0.000, 0.667, 0.627]], [0.368, [0.000, 0.667, 0.617]], [0.370, [0.000, 0.667, 0.617]], [0.372, [0.000, 0.667, 0.607]], [0.374, [0.000, 0.667, 0.607]], [0.376, [0.000, 0.667, 0.596]], [0.378, [0.000, 0.667, 0.596]], [0.380, [0.000, 0.667, 0.586]], [0.382, [0.000, 0.667, 0.586]], [0.384, [0.000, 0.667, 0.575]], [0.386, [0.000, 0.667, 0.575]], [0.387, [0.000, 0.667, 0.565]], [0.389, [0.000, 0.667, 0.565]], [0.391, [0.000, 0.667, 0.554]], [0.393, [0.000, 0.667, 0.554]], [0.395, [0.000, 0.667, 0.544]], [0.397, [0.000, 0.667, 0.544]], [0.399, [0.000, 0.667, 0.533]], [0.401, [0.000, 0.667, 0.533]], [0.403, [0.000, 0.661, 0.491]], [0.405, [0.000, 0.661, 0.491]], [0.407, [0.000, 0.656, 0.450]], [0.409, [0.000, 0.656, 0.450]], [0.411, [0.000, 0.651, 0.408]], [0.413, [0.000, 0.651, 0.408]], [0.415, [0.000, 0.646, 0.366]], [0.417, [0.000, 0.646, 0.366]], [0.419, [0.000, 0.641, 0.324]], [0.421, [0.000, 0.641, 0.324]], [0.423, [0.000, 0.635, 0.282]], [0.425, [0.000, 0.635, 0.282]], [0.427, [0.000, 0.630, 0.241]], [0.429, [0.000, 0.630, 0.241]], [0.431, [0.000, 0.625, 0.199]], [0.432, [0.000, 0.625, 0.199]], [0.434, [0.000, 0.620, 0.157]], [0.436, [0.000, 0.620, 0.157]], [0.438, [0.000, 0.614, 0.115]], [0.440, [0.000, 0.614, 0.115]], [0.442, [0.000, 0.609, 0.073]], [0.444, [0.000, 0.609, 0.073]], [0.446, [0.000, 0.604, 0.031]], [0.448, [0.000, 0.604, 0.031]], [0.450, [0.000, 0.603, 0.000]], [0.452, [0.000, 0.603, 0.000]], [0.454, [0.000, 0.613, 0.000]], [0.456, [0.000, 0.613, 0.000]], [0.458, [0.000, 0.624, 0.000]], [0.460, [0.000, 0.624, 0.000]], [0.462, [0.000, 0.634, 0.000]], [0.464, [0.000, 0.634, 0.000]], [0.466, [0.000, 0.644, 0.000]], [0.468, [0.000, 0.644, 0.000]], [0.470, [0.000, 0.655, 0.000]], [0.472, [0.000, 0.655, 0.000]], [0.474, [0.000, 0.665, 0.000]], [0.476, [0.000, 0.665, 0.000]], [0.477, [0.000, 0.676, 0.000]], [0.479, [0.000, 0.676, 0.000]], [0.481, [0.000, 0.686, 0.000]], [0.483, [0.000, 0.686, 0.000]], [0.485, [0.000, 0.697, 0.000]], [0.487, [0.000, 0.697, 0.000]], [0.489, [0.000, 0.707, 0.000]], [0.491, [0.000, 0.707, 0.000]], [0.493, [0.000, 0.718, 0.000]], [0.495, [0.000, 0.718, 0.000]], [0.497, [0.000, 0.728, 0.000]], [0.499, [0.000, 0.728, 0.000]], [0.501, [0.000, 0.739, 0.000]], [0.503, [0.000, 0.739, 0.000]], [0.505, [0.000, 0.749, 0.000]], [0.507, [0.000, 0.749, 0.000]], [0.509, [0.000, 0.759, 0.000]], [0.511, [0.000, 0.759, 0.000]], [0.513, [0.000, 0.770, 0.000]], [0.515, [0.000, 0.770, 0.000]], [0.517, [0.000, 0.780, 0.000]], [0.519, [0.000, 0.780, 0.000]], [0.521, [0.000, 0.791, 0.000]], [0.523, [0.000, 0.791, 0.000]], [0.524, [0.000, 0.801, 0.000]], [0.526, [0.000, 0.801, 0.000]], [0.528, [0.000, 0.812, 0.000]], [0.530, [0.000, 0.812, 0.000]], [0.532, [0.000, 0.822, 0.000]], [0.534, [0.000, 0.822, 0.000]], [0.536, [0.000, 0.833, 0.000]], [0.538, [0.000, 0.833, 0.000]], [0.540, [0.000, 0.843, 0.000]], [0.542, [0.000, 0.843, 0.000]], [0.544, [0.000, 0.854, 0.000]], [0.546, [0.000, 0.854, 0.000]], [0.548, [0.000, 0.864, 0.000]], [0.550, [0.000, 0.864, 0.000]], [0.552, [0.000, 0.875, 0.000]], [0.554, [0.000, 0.875, 0.000]], [0.556, [0.000, 0.885, 0.000]], [0.558, [0.000, 0.885, 0.000]], [0.560, [0.000, 0.895, 0.000]], [0.562, [0.000, 0.895, 0.000]], [0.564, [0.000, 0.906, 0.000]], [0.566, [0.000, 0.906, 0.000]], [0.568, [0.000, 0.916, 0.000]], [0.569, [0.000, 0.916, 0.000]], [0.571, [0.000, 0.927, 0.000]], [0.573, [0.000, 0.927, 0.000]], [0.575, [0.000, 0.937, 0.000]], [0.577, [0.000, 0.937, 0.000]], [0.579, [0.000, 0.948, 0.000]], [0.581, [0.000, 0.948, 0.000]], [0.583, [0.000, 0.958, 0.000]], [0.585, [0.000, 0.958, 0.000]], [0.587, [0.000, 0.969, 0.000]], [0.589, [0.000, 0.969, 0.000]], [0.591, [0.000, 0.979, 0.000]], [0.593, [0.000, 0.979, 0.000]], [0.595, [0.000, 0.990, 0.000]], [0.597, [0.000, 0.990, 0.000]], [0.599, [0.000, 1.000, 0.000]], [0.601, [0.000, 1.000, 0.000]], [0.603, [0.058, 1.000, 0.000]], [0.605, [0.058, 1.000, 0.000]], [0.607, [0.115, 1.000, 0.000]], [0.609, [0.115, 1.000, 0.000]], [0.611, [0.173, 1.000, 0.000]], [0.613, [0.173, 1.000, 0.000]], [0.614, [0.230, 1.000, 0.000]], [0.616, [0.230, 1.000, 0.000]], [0.618, [0.288, 1.000, 0.000]], [0.620, [0.288, 1.000, 0.000]], [0.622, [0.345, 1.000, 0.000]], [0.624, [0.345, 1.000, 0.000]], [0.626, [0.403, 1.000, 0.000]], [0.628, [0.403, 1.000, 0.000]], [0.630, [0.460, 1.000, 0.000]], [0.632, [0.460, 1.000, 0.000]], [0.634, [0.518, 1.000, 0.000]], [0.636, [0.518, 1.000, 0.000]], [0.638, [0.575, 1.000, 0.000]], [0.640, [0.575, 1.000, 0.000]], [0.642, [0.633, 1.000, 0.000]], [0.644, [0.633, 1.000, 0.000]], [0.646, [0.690, 1.000, 0.000]], [0.648, [0.690, 1.000, 0.000]], [0.650, [0.737, 0.999, 0.000]], [0.652, [0.737, 0.999, 0.000]], [0.654, [0.753, 0.993, 0.000]], [0.656, [0.753, 0.993, 0.000]], [0.658, [0.769, 0.988, 0.000]], [0.659, [0.769, 0.988, 0.000]], [0.661, [0.784, 0.983, 0.000]], [0.663, [0.784, 0.983, 0.000]], [0.665, [0.800, 0.978, 0.000]], [0.667, [0.800, 0.978, 0.000]], [0.669, [0.816, 0.973, 0.000]], [0.671, [0.816, 0.973, 0.000]], [0.673, [0.831, 0.967, 0.000]], [0.675, [0.831, 0.967, 0.000]], [0.677, [0.847, 0.962, 0.000]], [0.679, [0.847, 0.962, 0.000]], [0.681, [0.863, 0.957, 0.000]], [0.683, [0.863, 0.957, 0.000]], [0.685, [0.878, 0.952, 0.000]], [0.687, [0.878, 0.952, 0.000]], [0.689, [0.894, 0.946, 0.000]], [0.691, [0.894, 0.946, 0.000]], [0.693, [0.910, 0.941, 0.000]], [0.695, [0.910, 0.941, 0.000]], [0.697, [0.925, 0.936, 0.000]], [0.699, [0.925, 0.936, 0.000]], [0.701, [0.936, 0.928, 0.000]], [0.703, [0.936, 0.928, 0.000]], [0.705, [0.941, 0.918, 0.000]], [0.706, [0.941, 0.918, 0.000]], [0.708, [0.946, 0.907, 0.000]], [0.710, [0.946, 0.907, 0.000]], [0.712, [0.952, 0.897, 0.000]], [0.714, [0.952, 0.897, 0.000]], [0.716, [0.957, 0.886, 0.000]], [0.718, [0.957, 0.886, 0.000]], [0.720, [0.962, 0.876, 0.000]], [0.722, [0.962, 0.876, 0.000]], [0.724, [0.967, 0.865, 0.000]], [0.726, [0.967, 0.865, 0.000]], [0.728, [0.973, 0.855, 0.000]], [0.730, [0.973, 0.855, 0.000]], [0.732, [0.978, 0.844, 0.000]], [0.734, [0.978, 0.844, 0.000]], [0.736, [0.983, 0.834, 0.000]], [0.738, [0.983, 0.834, 0.000]], [0.740, [0.988, 0.824, 0.000]], [0.742, [0.988, 0.824, 0.000]], [0.744, [0.993, 0.813, 0.000]], [0.746, [0.993, 0.813, 0.000]], [0.748, [0.999, 0.803, 0.000]], [0.750, [0.999, 0.803, 0.000]], [0.751, [1.000, 0.788, 0.000]], [0.753, [1.000, 0.788, 0.000]], [0.755, [1.000, 0.773, 0.000]], [0.757, [1.000, 0.773, 0.000]], [0.759, [1.000, 0.757, 0.000]], [0.761, [1.000, 0.757, 0.000]], [0.763, [1.000, 0.741, 0.000]], [0.765, [1.000, 0.741, 0.000]], [0.767, [1.000, 0.725, 0.000]], [0.769, [1.000, 0.725, 0.000]], [0.771, [1.000, 0.710, 0.000]], [0.773, [1.000, 0.710, 0.000]], [0.775, [1.000, 0.694, 0.000]], [0.777, [1.000, 0.694, 0.000]], [0.779, [1.000, 0.678, 0.000]], [0.781, [1.000, 0.678, 0.000]], [0.783, [1.000, 0.663, 0.000]], [0.785, [1.000, 0.663, 0.000]], [0.787, [1.000, 0.647, 0.000]], [0.789, [1.000, 0.647, 0.000]], [0.791, [1.000, 0.631, 0.000]], [0.793, [1.000, 0.631, 0.000]], [0.795, [1.000, 0.616, 0.000]], [0.796, [1.000, 0.616, 0.000]], [0.798, [1.000, 0.600, 0.000]], [0.800, [1.000, 0.600, 0.000]], [0.802, [1.000, 0.553, 0.000]], [0.804, [1.000, 0.553, 0.000]], [0.806, [1.000, 0.506, 0.000]], [0.808, [1.000, 0.506, 0.000]], [0.810, [1.000, 0.459, 0.000]], [0.812, [1.000, 0.459, 0.000]], [0.814, [1.000, 0.412, 0.000]], [0.816, [1.000, 0.412, 0.000]], [0.818, [1.000, 0.365, 0.000]], [0.820, [1.000, 0.365, 0.000]], [0.822, [1.000, 0.318, 0.000]], [0.824, [1.000, 0.318, 0.000]], [0.826, [1.000, 0.271, 0.000]], [0.828, [1.000, 0.271, 0.000]], [0.830, [1.000, 0.224, 0.000]], [0.832, [1.000, 0.224, 0.000]], [0.834, [1.000, 0.176, 0.000]], [0.836, [1.000, 0.176, 0.000]], [0.838, [1.000, 0.129, 0.000]], [0.840, [1.000, 0.129, 0.000]], [0.841, [1.000, 0.082, 0.000]], [0.843, [1.000, 0.082, 0.000]], [0.845, [1.000, 0.035, 0.000]], [0.847, [1.000, 0.035, 0.000]], [0.849, [0.997, 0.000, 0.000]], [0.851, [0.997, 0.000, 0.000]], [0.853, [0.987, 0.000, 0.000]], [0.855, [0.987, 0.000, 0.000]], [0.857, [0.976, 0.000, 0.000]], [0.859, [0.976, 0.000, 0.000]], [0.861, [0.966, 0.000, 0.000]], [0.863, [0.966, 0.000, 0.000]], [0.865, [0.956, 0.000, 0.000]], [0.867, [0.956, 0.000, 0.000]], [0.869, [0.945, 0.000, 0.000]], [0.871, [0.945, 0.000, 0.000]], [0.873, [0.935, 0.000, 0.000]], [0.875, [0.935, 0.000, 0.000]], [0.877, [0.924, 0.000, 0.000]], [0.879, [0.924, 0.000, 0.000]], [0.881, [0.914, 0.000, 0.000]], [0.883, [0.914, 0.000, 0.000]], [0.885, [0.903, 0.000, 0.000]], [0.886, [0.903, 0.000, 0.000]], [0.888, [0.893, 0.000, 0.000]], [0.890, [0.893, 0.000, 0.000]], [0.892, [0.882, 0.000, 0.000]], [0.894, [0.882, 0.000, 0.000]], [0.896, [0.872, 0.000, 0.000]], [0.898, [0.872, 0.000, 0.000]], [0.900, [0.864, 0.000, 0.000]], [0.902, [0.864, 0.000, 0.000]], [0.904, [0.859, 0.000, 0.000]], [0.906, [0.859, 0.000, 0.000]], [0.908, [0.854, 0.000, 0.000]], [0.910, [0.854, 0.000, 0.000]], [0.912, [0.848, 0.000, 0.000]], [0.914, [0.848, 0.000, 0.000]], [0.916, [0.843, 0.000, 0.000]], [0.918, [0.843, 0.000, 0.000]], [0.920, [0.838, 0.000, 0.000]], [0.922, [0.838, 0.000, 0.000]], [0.924, [0.833, 0.000, 0.000]], [0.926, [0.833, 0.000, 0.000]], [0.928, [0.827, 0.000, 0.000]], [0.930, [0.827, 0.000, 0.000]], [0.932, [0.822, 0.000, 0.000]], [0.933, [0.822, 0.000, 0.000]], [0.935, [0.817, 0.000, 0.000]], [0.937, [0.817, 0.000, 0.000]], [0.939, [0.812, 0.000, 0.000]], [0.941, [0.812, 0.000, 0.000]], [0.943, [0.807, 0.000, 0.000]], [0.945, [0.807, 0.000, 0.000]], [0.947, [0.801, 0.000, 0.000]], [0.949, [0.801, 0.000, 0.000]], [0.951, [0.800, 0.047, 0.047]], [0.953, [0.800, 0.047, 0.047]], [0.955, [0.800, 0.110, 0.110]], [0.957, [0.800, 0.110, 0.110]], [0.959, [0.800, 0.173, 0.173]], [0.961, [0.800, 0.173, 0.173]], [0.963, [0.800, 0.235, 0.235]], [0.965, [0.800, 0.235, 0.235]], [0.967, [0.800, 0.298, 0.298]], [0.969, [0.800, 0.298, 0.298]], [0.971, [0.800, 0.361, 0.361]], [0.973, [0.800, 0.361, 0.361]], [0.975, [0.800, 0.424, 0.424]], [0.977, [0.800, 0.424, 0.424]], [0.978, [0.800, 0.486, 0.486]], [0.980, [0.800, 0.486, 0.486]], [0.982, [0.800, 0.549, 0.549]], [0.984, [0.800, 0.549, 0.549]], [0.986, [0.800, 0.612, 0.612]], [0.988, [0.800, 0.612, 0.612]], [0.990, [0.800, 0.675, 0.675]], [0.992, [0.800, 0.675, 0.675]], [0.994, [0.800, 0.737, 0.737]], [0.996, [0.800, 0.737, 0.737]], [0.998, [0.800, 0.800, 0.800]], [1.000, [0.800, 0.800, 0.800]]];
+var ocean = [[0.000, [0.000, 0.500, 0.000]], [0.002, [0.000, 0.500, 0.000]], [0.004, [0.000, 0.494, 0.004]], [0.006, [0.000, 0.494, 0.004]], [0.008, [0.000, 0.488, 0.008]], [0.010, [0.000, 0.488, 0.008]], [0.012, [0.000, 0.482, 0.012]], [0.014, [0.000, 0.482, 0.012]], [0.016, [0.000, 0.476, 0.016]], [0.018, [0.000, 0.476, 0.016]], [0.020, [0.000, 0.471, 0.020]], [0.022, [0.000, 0.471, 0.020]], [0.023, [0.000, 0.465, 0.024]], [0.025, [0.000, 0.465, 0.024]], [0.027, [0.000, 0.459, 0.027]], [0.029, [0.000, 0.459, 0.027]], [0.031, [0.000, 0.453, 0.031]], [0.033, [0.000, 0.453, 0.031]], [0.035, [0.000, 0.447, 0.035]], [0.037, [0.000, 0.447, 0.035]], [0.039, [0.000, 0.441, 0.039]], [0.041, [0.000, 0.441, 0.039]], [0.043, [0.000, 0.435, 0.043]], [0.045, [0.000, 0.435, 0.043]], [0.047, [0.000, 0.429, 0.047]], [0.049, [0.000, 0.429, 0.047]], [0.051, [0.000, 0.424, 0.051]], [0.053, [0.000, 0.424, 0.051]], [0.055, [0.000, 0.418, 0.055]], [0.057, [0.000, 0.418, 0.055]], [0.059, [0.000, 0.412, 0.059]], [0.061, [0.000, 0.412, 0.059]], [0.063, [0.000, 0.406, 0.063]], [0.065, [0.000, 0.406, 0.063]], [0.067, [0.000, 0.400, 0.067]], [0.068, [0.000, 0.400, 0.067]], [0.070, [0.000, 0.394, 0.071]], [0.072, [0.000, 0.394, 0.071]], [0.074, [0.000, 0.388, 0.075]], [0.076, [0.000, 0.388, 0.075]], [0.078, [0.000, 0.382, 0.078]], [0.080, [0.000, 0.382, 0.078]], [0.082, [0.000, 0.376, 0.082]], [0.084, [0.000, 0.376, 0.082]], [0.086, [0.000, 0.371, 0.086]], [0.088, [0.000, 0.371, 0.086]], [0.090, [0.000, 0.365, 0.090]], [0.092, [0.000, 0.365, 0.090]], [0.094, [0.000, 0.359, 0.094]], [0.096, [0.000, 0.359, 0.094]], [0.098, [0.000, 0.353, 0.098]], [0.100, [0.000, 0.353, 0.098]], [0.102, [0.000, 0.347, 0.102]], [0.104, [0.000, 0.347, 0.102]], [0.106, [0.000, 0.341, 0.106]], [0.108, [0.000, 0.341, 0.106]], [0.110, [0.000, 0.335, 0.110]], [0.112, [0.000, 0.335, 0.110]], [0.114, [0.000, 0.329, 0.114]], [0.115, [0.000, 0.329, 0.114]], [0.117, [0.000, 0.324, 0.118]], [0.119, [0.000, 0.324, 0.118]], [0.121, [0.000, 0.318, 0.122]], [0.123, [0.000, 0.318, 0.122]], [0.125, [0.000, 0.312, 0.125]], [0.127, [0.000, 0.312, 0.125]], [0.129, [0.000, 0.306, 0.129]], [0.131, [0.000, 0.306, 0.129]], [0.133, [0.000, 0.300, 0.133]], [0.135, [0.000, 0.300, 0.133]], [0.137, [0.000, 0.294, 0.137]], [0.139, [0.000, 0.294, 0.137]], [0.141, [0.000, 0.288, 0.141]], [0.143, [0.000, 0.288, 0.141]], [0.145, [0.000, 0.282, 0.145]], [0.147, [0.000, 0.282, 0.145]], [0.149, [0.000, 0.276, 0.149]], [0.151, [0.000, 0.276, 0.149]], [0.153, [0.000, 0.271, 0.153]], [0.155, [0.000, 0.271, 0.153]], [0.157, [0.000, 0.265, 0.157]], [0.159, [0.000, 0.265, 0.157]], [0.160, [0.000, 0.259, 0.161]], [0.162, [0.000, 0.259, 0.161]], [0.164, [0.000, 0.253, 0.165]], [0.166, [0.000, 0.253, 0.165]], [0.168, [0.000, 0.247, 0.169]], [0.170, [0.000, 0.247, 0.169]], [0.172, [0.000, 0.241, 0.173]], [0.174, [0.000, 0.241, 0.173]], [0.176, [0.000, 0.235, 0.176]], [0.178, [0.000, 0.235, 0.176]], [0.180, [0.000, 0.229, 0.180]], [0.182, [0.000, 0.229, 0.180]], [0.184, [0.000, 0.224, 0.184]], [0.186, [0.000, 0.224, 0.184]], [0.188, [0.000, 0.218, 0.188]], [0.190, [0.000, 0.218, 0.188]], [0.192, [0.000, 0.212, 0.192]], [0.194, [0.000, 0.212, 0.192]], [0.196, [0.000, 0.206, 0.196]], [0.198, [0.000, 0.206, 0.196]], [0.200, [0.000, 0.200, 0.200]], [0.202, [0.000, 0.200, 0.200]], [0.204, [0.000, 0.194, 0.204]], [0.205, [0.000, 0.194, 0.204]], [0.207, [0.000, 0.188, 0.208]], [0.209, [0.000, 0.188, 0.208]], [0.211, [0.000, 0.182, 0.212]], [0.213, [0.000, 0.182, 0.212]], [0.215, [0.000, 0.176, 0.216]], [0.217, [0.000, 0.176, 0.216]], [0.219, [0.000, 0.171, 0.220]], [0.221, [0.000, 0.171, 0.220]], [0.223, [0.000, 0.165, 0.224]], [0.225, [0.000, 0.165, 0.224]], [0.227, [0.000, 0.159, 0.227]], [0.229, [0.000, 0.159, 0.227]], [0.231, [0.000, 0.153, 0.231]], [0.233, [0.000, 0.153, 0.231]], [0.235, [0.000, 0.147, 0.235]], [0.237, [0.000, 0.147, 0.235]], [0.239, [0.000, 0.141, 0.239]], [0.241, [0.000, 0.141, 0.239]], [0.243, [0.000, 0.135, 0.243]], [0.245, [0.000, 0.135, 0.243]], [0.247, [0.000, 0.129, 0.247]], [0.249, [0.000, 0.129, 0.247]], [0.250, [0.000, 0.124, 0.251]], [0.252, [0.000, 0.124, 0.251]], [0.254, [0.000, 0.118, 0.255]], [0.256, [0.000, 0.118, 0.255]], [0.258, [0.000, 0.112, 0.259]], [0.260, [0.000, 0.112, 0.259]], [0.262, [0.000, 0.106, 0.263]], [0.264, [0.000, 0.106, 0.263]], [0.266, [0.000, 0.100, 0.267]], [0.268, [0.000, 0.100, 0.267]], [0.270, [0.000, 0.094, 0.271]], [0.272, [0.000, 0.094, 0.271]], [0.274, [0.000, 0.088, 0.275]], [0.276, [0.000, 0.088, 0.275]], [0.278, [0.000, 0.082, 0.278]], [0.280, [0.000, 0.082, 0.278]], [0.282, [0.000, 0.076, 0.282]], [0.284, [0.000, 0.076, 0.282]], [0.286, [0.000, 0.071, 0.286]], [0.288, [0.000, 0.071, 0.286]], [0.290, [0.000, 0.065, 0.290]], [0.292, [0.000, 0.065, 0.290]], [0.294, [0.000, 0.059, 0.294]], [0.295, [0.000, 0.059, 0.294]], [0.297, [0.000, 0.053, 0.298]], [0.299, [0.000, 0.053, 0.298]], [0.301, [0.000, 0.047, 0.302]], [0.303, [0.000, 0.047, 0.302]], [0.305, [0.000, 0.041, 0.306]], [0.307, [0.000, 0.041, 0.306]], [0.309, [0.000, 0.035, 0.310]], [0.311, [0.000, 0.035, 0.310]], [0.313, [0.000, 0.029, 0.314]], [0.315, [0.000, 0.029, 0.314]], [0.317, [0.000, 0.024, 0.318]], [0.319, [0.000, 0.024, 0.318]], [0.321, [0.000, 0.018, 0.322]], [0.323, [0.000, 0.018, 0.322]], [0.325, [0.000, 0.012, 0.325]], [0.327, [0.000, 0.012, 0.325]], [0.329, [0.000, 0.006, 0.329]], [0.331, [0.000, 0.006, 0.329]], [0.333, [0.000, 0.000, 0.333]], [0.335, [0.000, 0.000, 0.333]], [0.337, [0.000, 0.006, 0.337]], [0.339, [0.000, 0.006, 0.337]], [0.341, [0.000, 0.012, 0.341]], [0.342, [0.000, 0.012, 0.341]], [0.344, [0.000, 0.018, 0.345]], [0.346, [0.000, 0.018, 0.345]], [0.348, [0.000, 0.024, 0.349]], [0.350, [0.000, 0.024, 0.349]], [0.352, [0.000, 0.029, 0.353]], [0.354, [0.000, 0.029, 0.353]], [0.356, [0.000, 0.035, 0.357]], [0.358, [0.000, 0.035, 0.357]], [0.360, [0.000, 0.041, 0.361]], [0.362, [0.000, 0.041, 0.361]], [0.364, [0.000, 0.047, 0.365]], [0.366, [0.000, 0.047, 0.365]], [0.368, [0.000, 0.053, 0.369]], [0.370, [0.000, 0.053, 0.369]], [0.372, [0.000, 0.059, 0.373]], [0.374, [0.000, 0.059, 0.373]], [0.376, [0.000, 0.065, 0.376]], [0.378, [0.000, 0.065, 0.376]], [0.380, [0.000, 0.071, 0.380]], [0.382, [0.000, 0.071, 0.380]], [0.384, [0.000, 0.076, 0.384]], [0.386, [0.000, 0.076, 0.384]], [0.387, [0.000, 0.082, 0.388]], [0.389, [0.000, 0.082, 0.388]], [0.391, [0.000, 0.088, 0.392]], [0.393, [0.000, 0.088, 0.392]], [0.395, [0.000, 0.094, 0.396]], [0.397, [0.000, 0.094, 0.396]], [0.399, [0.000, 0.100, 0.400]], [0.401, [0.000, 0.100, 0.400]], [0.403, [0.000, 0.106, 0.404]], [0.405, [0.000, 0.106, 0.404]], [0.407, [0.000, 0.112, 0.408]], [0.409, [0.000, 0.112, 0.408]], [0.411, [0.000, 0.118, 0.412]], [0.413, [0.000, 0.118, 0.412]], [0.415, [0.000, 0.124, 0.416]], [0.417, [0.000, 0.124, 0.416]], [0.419, [0.000, 0.129, 0.420]], [0.421, [0.000, 0.129, 0.420]], [0.423, [0.000, 0.135, 0.424]], [0.425, [0.000, 0.135, 0.424]], [0.427, [0.000, 0.141, 0.427]], [0.429, [0.000, 0.141, 0.427]], [0.431, [0.000, 0.147, 0.431]], [0.432, [0.000, 0.147, 0.431]], [0.434, [0.000, 0.153, 0.435]], [0.436, [0.000, 0.153, 0.435]], [0.438, [0.000, 0.159, 0.439]], [0.440, [0.000, 0.159, 0.439]], [0.442, [0.000, 0.165, 0.443]], [0.444, [0.000, 0.165, 0.443]], [0.446, [0.000, 0.171, 0.447]], [0.448, [0.000, 0.171, 0.447]], [0.450, [0.000, 0.176, 0.451]], [0.452, [0.000, 0.176, 0.451]], [0.454, [0.000, 0.182, 0.455]], [0.456, [0.000, 0.182, 0.455]], [0.458, [0.000, 0.188, 0.459]], [0.460, [0.000, 0.188, 0.459]], [0.462, [0.000, 0.194, 0.463]], [0.464, [0.000, 0.194, 0.463]], [0.466, [0.000, 0.200, 0.467]], [0.468, [0.000, 0.200, 0.467]], [0.470, [0.000, 0.206, 0.471]], [0.472, [0.000, 0.206, 0.471]], [0.474, [0.000, 0.212, 0.475]], [0.476, [0.000, 0.212, 0.475]], [0.477, [0.000, 0.218, 0.478]], [0.479, [0.000, 0.218, 0.478]], [0.481, [0.000, 0.224, 0.482]], [0.483, [0.000, 0.224, 0.482]], [0.485, [0.000, 0.229, 0.486]], [0.487, [0.000, 0.229, 0.486]], [0.489, [0.000, 0.235, 0.490]], [0.491, [0.000, 0.235, 0.490]], [0.493, [0.000, 0.241, 0.494]], [0.495, [0.000, 0.241, 0.494]], [0.497, [0.000, 0.247, 0.498]], [0.499, [0.000, 0.247, 0.498]], [0.501, [0.000, 0.253, 0.502]], [0.503, [0.000, 0.253, 0.502]], [0.505, [0.000, 0.259, 0.506]], [0.507, [0.000, 0.259, 0.506]], [0.509, [0.000, 0.265, 0.510]], [0.511, [0.000, 0.265, 0.510]], [0.513, [0.000, 0.271, 0.514]], [0.515, [0.000, 0.271, 0.514]], [0.517, [0.000, 0.276, 0.518]], [0.519, [0.000, 0.276, 0.518]], [0.521, [0.000, 0.282, 0.522]], [0.523, [0.000, 0.282, 0.522]], [0.524, [0.000, 0.288, 0.525]], [0.526, [0.000, 0.288, 0.525]], [0.528, [0.000, 0.294, 0.529]], [0.530, [0.000, 0.294, 0.529]], [0.532, [0.000, 0.300, 0.533]], [0.534, [0.000, 0.300, 0.533]], [0.536, [0.000, 0.306, 0.537]], [0.538, [0.000, 0.306, 0.537]], [0.540, [0.000, 0.312, 0.541]], [0.542, [0.000, 0.312, 0.541]], [0.544, [0.000, 0.318, 0.545]], [0.546, [0.000, 0.318, 0.545]], [0.548, [0.000, 0.324, 0.549]], [0.550, [0.000, 0.324, 0.549]], [0.552, [0.000, 0.329, 0.553]], [0.554, [0.000, 0.329, 0.553]], [0.556, [0.000, 0.335, 0.557]], [0.558, [0.000, 0.335, 0.557]], [0.560, [0.000, 0.341, 0.561]], [0.562, [0.000, 0.341, 0.561]], [0.564, [0.000, 0.347, 0.565]], [0.566, [0.000, 0.347, 0.565]], [0.568, [0.000, 0.353, 0.569]], [0.569, [0.000, 0.353, 0.569]], [0.571, [0.000, 0.359, 0.573]], [0.573, [0.000, 0.359, 0.573]], [0.575, [0.000, 0.365, 0.576]], [0.577, [0.000, 0.365, 0.576]], [0.579, [0.000, 0.371, 0.580]], [0.581, [0.000, 0.371, 0.580]], [0.583, [0.000, 0.376, 0.584]], [0.585, [0.000, 0.376, 0.584]], [0.587, [0.000, 0.382, 0.588]], [0.589, [0.000, 0.382, 0.588]], [0.591, [0.000, 0.388, 0.592]], [0.593, [0.000, 0.388, 0.592]], [0.595, [0.000, 0.394, 0.596]], [0.597, [0.000, 0.394, 0.596]], [0.599, [0.000, 0.400, 0.600]], [0.601, [0.000, 0.400, 0.600]], [0.603, [0.000, 0.406, 0.604]], [0.605, [0.000, 0.406, 0.604]], [0.607, [0.000, 0.412, 0.608]], [0.609, [0.000, 0.412, 0.608]], [0.611, [0.000, 0.418, 0.612]], [0.613, [0.000, 0.418, 0.612]], [0.614, [0.000, 0.424, 0.616]], [0.616, [0.000, 0.424, 0.616]], [0.618, [0.000, 0.429, 0.620]], [0.620, [0.000, 0.429, 0.620]], [0.622, [0.000, 0.435, 0.624]], [0.624, [0.000, 0.435, 0.624]], [0.626, [0.000, 0.441, 0.627]], [0.628, [0.000, 0.441, 0.627]], [0.630, [0.000, 0.447, 0.631]], [0.632, [0.000, 0.447, 0.631]], [0.634, [0.000, 0.453, 0.635]], [0.636, [0.000, 0.453, 0.635]], [0.638, [0.000, 0.459, 0.639]], [0.640, [0.000, 0.459, 0.639]], [0.642, [0.000, 0.465, 0.643]], [0.644, [0.000, 0.465, 0.643]], [0.646, [0.000, 0.471, 0.647]], [0.648, [0.000, 0.471, 0.647]], [0.650, [0.000, 0.476, 0.651]], [0.652, [0.000, 0.476, 0.651]], [0.654, [0.000, 0.482, 0.655]], [0.656, [0.000, 0.482, 0.655]], [0.658, [0.000, 0.488, 0.659]], [0.659, [0.000, 0.488, 0.659]], [0.661, [0.000, 0.494, 0.663]], [0.663, [0.000, 0.494, 0.663]], [0.665, [0.000, 0.500, 0.667]], [0.667, [0.000, 0.500, 0.667]], [0.669, [0.012, 0.506, 0.671]], [0.671, [0.012, 0.506, 0.671]], [0.673, [0.024, 0.512, 0.675]], [0.675, [0.024, 0.512, 0.675]], [0.677, [0.035, 0.518, 0.678]], [0.679, [0.035, 0.518, 0.678]], [0.681, [0.047, 0.524, 0.682]], [0.683, [0.047, 0.524, 0.682]], [0.685, [0.059, 0.529, 0.686]], [0.687, [0.059, 0.529, 0.686]], [0.689, [0.071, 0.535, 0.690]], [0.691, [0.071, 0.535, 0.690]], [0.693, [0.082, 0.541, 0.694]], [0.695, [0.082, 0.541, 0.694]], [0.697, [0.094, 0.547, 0.698]], [0.699, [0.094, 0.547, 0.698]], [0.701, [0.106, 0.553, 0.702]], [0.703, [0.106, 0.553, 0.702]], [0.705, [0.118, 0.559, 0.706]], [0.706, [0.118, 0.559, 0.706]], [0.708, [0.129, 0.565, 0.710]], [0.710, [0.129, 0.565, 0.710]], [0.712, [0.141, 0.571, 0.714]], [0.714, [0.141, 0.571, 0.714]], [0.716, [0.153, 0.576, 0.718]], [0.718, [0.153, 0.576, 0.718]], [0.720, [0.165, 0.582, 0.722]], [0.722, [0.165, 0.582, 0.722]], [0.724, [0.176, 0.588, 0.725]], [0.726, [0.176, 0.588, 0.725]], [0.728, [0.188, 0.594, 0.729]], [0.730, [0.188, 0.594, 0.729]], [0.732, [0.200, 0.600, 0.733]], [0.734, [0.200, 0.600, 0.733]], [0.736, [0.212, 0.606, 0.737]], [0.738, [0.212, 0.606, 0.737]], [0.740, [0.224, 0.612, 0.741]], [0.742, [0.224, 0.612, 0.741]], [0.744, [0.235, 0.618, 0.745]], [0.746, [0.235, 0.618, 0.745]], [0.748, [0.247, 0.624, 0.749]], [0.750, [0.247, 0.624, 0.749]], [0.751, [0.259, 0.629, 0.753]], [0.753, [0.259, 0.629, 0.753]], [0.755, [0.271, 0.635, 0.757]], [0.757, [0.271, 0.635, 0.757]], [0.759, [0.282, 0.641, 0.761]], [0.761, [0.282, 0.641, 0.761]], [0.763, [0.294, 0.647, 0.765]], [0.765, [0.294, 0.647, 0.765]], [0.767, [0.306, 0.653, 0.769]], [0.769, [0.306, 0.653, 0.769]], [0.771, [0.318, 0.659, 0.773]], [0.773, [0.318, 0.659, 0.773]], [0.775, [0.329, 0.665, 0.776]], [0.777, [0.329, 0.665, 0.776]], [0.779, [0.341, 0.671, 0.780]], [0.781, [0.341, 0.671, 0.780]], [0.783, [0.353, 0.676, 0.784]], [0.785, [0.353, 0.676, 0.784]], [0.787, [0.365, 0.682, 0.788]], [0.789, [0.365, 0.682, 0.788]], [0.791, [0.376, 0.688, 0.792]], [0.793, [0.376, 0.688, 0.792]], [0.795, [0.388, 0.694, 0.796]], [0.796, [0.388, 0.694, 0.796]], [0.798, [0.400, 0.700, 0.800]], [0.800, [0.400, 0.700, 0.800]], [0.802, [0.412, 0.706, 0.804]], [0.804, [0.412, 0.706, 0.804]], [0.806, [0.424, 0.712, 0.808]], [0.808, [0.424, 0.712, 0.808]], [0.810, [0.435, 0.718, 0.812]], [0.812, [0.435, 0.718, 0.812]], [0.814, [0.447, 0.724, 0.816]], [0.816, [0.447, 0.724, 0.816]], [0.818, [0.459, 0.729, 0.820]], [0.820, [0.459, 0.729, 0.820]], [0.822, [0.471, 0.735, 0.824]], [0.824, [0.471, 0.735, 0.824]], [0.826, [0.482, 0.741, 0.827]], [0.828, [0.482, 0.741, 0.827]], [0.830, [0.494, 0.747, 0.831]], [0.832, [0.494, 0.747, 0.831]], [0.834, [0.506, 0.753, 0.835]], [0.836, [0.506, 0.753, 0.835]], [0.838, [0.518, 0.759, 0.839]], [0.840, [0.518, 0.759, 0.839]], [0.841, [0.529, 0.765, 0.843]], [0.843, [0.529, 0.765, 0.843]], [0.845, [0.541, 0.771, 0.847]], [0.847, [0.541, 0.771, 0.847]], [0.849, [0.553, 0.776, 0.851]], [0.851, [0.553, 0.776, 0.851]], [0.853, [0.565, 0.782, 0.855]], [0.855, [0.565, 0.782, 0.855]], [0.857, [0.576, 0.788, 0.859]], [0.859, [0.576, 0.788, 0.859]], [0.861, [0.588, 0.794, 0.863]], [0.863, [0.588, 0.794, 0.863]], [0.865, [0.600, 0.800, 0.867]], [0.867, [0.600, 0.800, 0.867]], [0.869, [0.612, 0.806, 0.871]], [0.871, [0.612, 0.806, 0.871]], [0.873, [0.624, 0.812, 0.875]], [0.875, [0.624, 0.812, 0.875]], [0.877, [0.635, 0.818, 0.878]], [0.879, [0.635, 0.818, 0.878]], [0.881, [0.647, 0.824, 0.882]], [0.883, [0.647, 0.824, 0.882]], [0.885, [0.659, 0.829, 0.886]], [0.886, [0.659, 0.829, 0.886]], [0.888, [0.671, 0.835, 0.890]], [0.890, [0.671, 0.835, 0.890]], [0.892, [0.682, 0.841, 0.894]], [0.894, [0.682, 0.841, 0.894]], [0.896, [0.694, 0.847, 0.898]], [0.898, [0.694, 0.847, 0.898]], [0.900, [0.706, 0.853, 0.902]], [0.902, [0.706, 0.853, 0.902]], [0.904, [0.718, 0.859, 0.906]], [0.906, [0.718, 0.859, 0.906]], [0.908, [0.729, 0.865, 0.910]], [0.910, [0.729, 0.865, 0.910]], [0.912, [0.741, 0.871, 0.914]], [0.914, [0.741, 0.871, 0.914]], [0.916, [0.753, 0.876, 0.918]], [0.918, [0.753, 0.876, 0.918]], [0.920, [0.765, 0.882, 0.922]], [0.922, [0.765, 0.882, 0.922]], [0.924, [0.776, 0.888, 0.925]], [0.926, [0.776, 0.888, 0.925]], [0.928, [0.788, 0.894, 0.929]], [0.930, [0.788, 0.894, 0.929]], [0.932, [0.800, 0.900, 0.933]], [0.933, [0.800, 0.900, 0.933]], [0.935, [0.812, 0.906, 0.937]], [0.937, [0.812, 0.906, 0.937]], [0.939, [0.824, 0.912, 0.941]], [0.941, [0.824, 0.912, 0.941]], [0.943, [0.835, 0.918, 0.945]], [0.945, [0.835, 0.918, 0.945]], [0.947, [0.847, 0.924, 0.949]], [0.949, [0.847, 0.924, 0.949]], [0.951, [0.859, 0.929, 0.953]], [0.953, [0.859, 0.929, 0.953]], [0.955, [0.871, 0.935, 0.957]], [0.957, [0.871, 0.935, 0.957]], [0.959, [0.882, 0.941, 0.961]], [0.961, [0.882, 0.941, 0.961]], [0.963, [0.894, 0.947, 0.965]], [0.965, [0.894, 0.947, 0.965]], [0.967, [0.906, 0.953, 0.969]], [0.969, [0.906, 0.953, 0.969]], [0.971, [0.918, 0.959, 0.973]], [0.973, [0.918, 0.959, 0.973]], [0.975, [0.929, 0.965, 0.976]], [0.977, [0.929, 0.965, 0.976]], [0.978, [0.941, 0.971, 0.980]], [0.980, [0.941, 0.971, 0.980]], [0.982, [0.953, 0.976, 0.984]], [0.984, [0.953, 0.976, 0.984]], [0.986, [0.965, 0.982, 0.988]], [0.988, [0.965, 0.982, 0.988]], [0.990, [0.976, 0.988, 0.992]], [0.992, [0.976, 0.988, 0.992]], [0.994, [0.988, 0.994, 0.996]], [0.996, [0.988, 0.994, 0.996]], [0.998, [1.000, 1.000, 1.000]], [1.000, [1.000, 1.000, 1.000]]];
+var prism = [[0.000, [1.000, 0.000, -0.000]], [0.002, [1.000, 0.000, -0.000]], [0.004, [1.000, 0.000, 0.000]], [0.006, [1.000, 0.000, 0.000]], [0.008, [1.000, 0.130, 0.000]], [0.010, [1.000, 0.130, 0.000]], [0.012, [1.000, 0.320, 0.000]], [0.014, [1.000, 0.320, 0.000]], [0.016, [1.000, 0.512, 0.000]], [0.018, [1.000, 0.512, 0.000]], [0.020, [1.000, 0.691, 0.000]], [0.022, [1.000, 0.691, 0.000]], [0.023, [1.000, 0.846, 0.000]], [0.025, [1.000, 0.846, 0.000]], [0.027, [1.000, 0.968, 0.000]], [0.029, [1.000, 0.968, 0.000]], [0.031, [0.889, 1.000, 0.000]], [0.033, [0.889, 1.000, 0.000]], [0.035, [0.699, 1.000, 0.000]], [0.037, [0.699, 1.000, 0.000]], [0.039, [0.507, 1.000, 0.000]], [0.041, [0.507, 1.000, 0.000]], [0.043, [0.326, 0.997, 0.000]], [0.045, [0.326, 0.997, 0.000]], [0.047, [0.168, 0.887, 0.000]], [0.049, [0.168, 0.887, 0.000]], [0.051, [0.043, 0.741, 0.225]], [0.053, [0.043, 0.741, 0.225]], [0.055, [0.000, 0.567, 0.492]], [0.057, [0.000, 0.567, 0.492]], [0.059, [0.000, 0.378, 0.726]], [0.061, [0.000, 0.378, 0.726]], [0.063, [0.000, 0.186, 0.912]], [0.065, [0.000, 0.186, 0.912]], [0.067, [0.000, 0.004, 1.000]], [0.068, [0.000, 0.004, 1.000]], [0.070, [0.100, 0.000, 1.000]], [0.072, [0.100, 0.000, 1.000]], [0.074, [0.243, 0.000, 1.000]], [0.076, [0.243, 0.000, 1.000]], [0.078, [0.414, 0.000, 0.996]], [0.080, [0.414, 0.000, 0.996]], [0.082, [0.602, 0.000, 0.845]], [0.084, [0.602, 0.000, 0.845]], [0.086, [0.795, 0.000, 0.638]], [0.088, [0.795, 0.000, 0.638]], [0.090, [0.979, 0.000, 0.389]], [0.092, [0.979, 0.000, 0.389]], [0.094, [1.000, 0.000, 0.114]], [0.096, [1.000, 0.000, 0.114]], [0.098, [1.000, 0.000, 0.000]], [0.100, [1.000, 0.000, 0.000]], [0.102, [1.000, 0.056, 0.000]], [0.104, [1.000, 0.056, 0.000]], [0.106, [1.000, 0.243, 0.000]], [0.108, [1.000, 0.243, 0.000]], [0.110, [1.000, 0.435, 0.000]], [0.112, [1.000, 0.435, 0.000]], [0.114, [1.000, 0.621, 0.000]], [0.115, [1.000, 0.621, 0.000]], [0.117, [1.000, 0.787, 0.000]], [0.119, [1.000, 0.787, 0.000]], [0.121, [1.000, 0.924, 0.000]], [0.123, [1.000, 0.924, 0.000]], [0.125, [0.962, 1.000, 0.000]], [0.127, [0.962, 1.000, 0.000]], [0.129, [0.776, 1.000, 0.000]], [0.131, [0.776, 1.000, 0.000]], [0.133, [0.584, 1.000, 0.000]], [0.135, [0.584, 1.000, 0.000]], [0.137, [0.397, 1.000, 0.000]], [0.139, [0.397, 1.000, 0.000]], [0.141, [0.228, 0.936, 0.000]], [0.143, [0.228, 0.936, 0.000]], [0.145, [0.088, 0.803, 0.112]], [0.147, [0.088, 0.803, 0.112]], [0.149, [0.000, 0.640, 0.387]], [0.151, [0.000, 0.640, 0.387]], [0.153, [0.000, 0.456, 0.637]], [0.155, [0.000, 0.456, 0.637]], [0.157, [0.000, 0.263, 0.844]], [0.159, [0.000, 0.263, 0.844]], [0.160, [0.000, 0.075, 0.996]], [0.162, [0.000, 0.075, 0.996]], [0.164, [0.053, 0.000, 1.000]], [0.166, [0.053, 0.000, 1.000]], [0.168, [0.182, 0.000, 1.000]], [0.170, [0.182, 0.000, 1.000]], [0.172, [0.343, 0.000, 1.000]], [0.174, [0.343, 0.000, 1.000]], [0.176, [0.525, 0.000, 0.913]], [0.178, [0.525, 0.000, 0.913]], [0.180, [0.718, 0.000, 0.727]], [0.182, [0.718, 0.000, 0.727]], [0.184, [0.907, 0.000, 0.493]], [0.186, [0.907, 0.000, 0.493]], [0.188, [1.000, 0.000, 0.226]], [0.190, [1.000, 0.000, 0.226]], [0.192, [1.000, 0.000, 0.000]], [0.194, [1.000, 0.000, 0.000]], [0.196, [1.000, 0.000, 0.000]], [0.198, [1.000, 0.000, 0.000]], [0.200, [1.000, 0.166, 0.000]], [0.202, [1.000, 0.166, 0.000]], [0.204, [1.000, 0.358, 0.000]], [0.205, [1.000, 0.358, 0.000]], [0.207, [1.000, 0.548, 0.000]], [0.209, [1.000, 0.548, 0.000]], [0.211, [1.000, 0.724, 0.000]], [0.213, [1.000, 0.724, 0.000]], [0.215, [1.000, 0.873, 0.000]], [0.217, [1.000, 0.873, 0.000]], [0.219, [1.000, 0.987, 0.000]], [0.221, [1.000, 0.987, 0.000]], [0.223, [0.852, 1.000, 0.000]], [0.225, [0.852, 1.000, 0.000]], [0.227, [0.661, 1.000, 0.000]], [0.229, [0.661, 1.000, 0.000]], [0.231, [0.471, 1.000, 0.000]], [0.233, [0.471, 1.000, 0.000]], [0.235, [0.293, 0.978, 0.000]], [0.237, [0.293, 0.978, 0.000]], [0.239, [0.140, 0.861, 0.000]], [0.241, [0.140, 0.861, 0.000]], [0.243, [0.023, 0.709, 0.279]], [0.245, [0.023, 0.709, 0.279]], [0.247, [0.000, 0.531, 0.541]], [0.249, [0.000, 0.531, 0.541]], [0.250, [0.000, 0.341, 0.767]], [0.252, [0.000, 0.341, 0.767]], [0.254, [0.000, 0.149, 0.942]], [0.256, [0.000, 0.149, 0.942]], [0.258, [0.012, 0.000, 1.000]], [0.260, [0.012, 0.000, 1.000]], [0.262, [0.125, 0.000, 1.000]], [0.264, [0.125, 0.000, 1.000]], [0.266, [0.275, 0.000, 1.000]], [0.268, [0.275, 0.000, 1.000]], [0.270, [0.450, 0.000, 0.972]], [0.272, [0.450, 0.000, 0.972]], [0.274, [0.640, 0.000, 0.808]], [0.276, [0.640, 0.000, 0.808]], [0.278, [0.832, 0.000, 0.592]], [0.280, [0.832, 0.000, 0.592]], [0.282, [1.000, 0.000, 0.336]], [0.284, [1.000, 0.000, 0.336]], [0.286, [1.000, 0.000, 0.058]], [0.288, [1.000, 0.000, 0.058]], [0.290, [1.000, 0.000, 0.000]], [0.292, [1.000, 0.000, 0.000]], [0.294, [1.000, 0.092, 0.000]], [0.295, [1.000, 0.092, 0.000]], [0.297, [1.000, 0.281, 0.000]], [0.299, [1.000, 0.281, 0.000]], [0.301, [1.000, 0.473, 0.000]], [0.303, [1.000, 0.473, 0.000]], [0.305, [1.000, 0.656, 0.000]], [0.307, [1.000, 0.656, 0.000]], [0.309, [1.000, 0.817, 0.000]], [0.311, [1.000, 0.817, 0.000]], [0.313, [1.000, 0.946, 0.000]], [0.315, [1.000, 0.946, 0.000]], [0.317, [0.927, 1.000, 0.000]], [0.319, [0.927, 1.000, 0.000]], [0.321, [0.739, 1.000, 0.000]], [0.323, [0.739, 1.000, 0.000]], [0.325, [0.546, 1.000, 0.000]], [0.327, [0.546, 1.000, 0.000]], [0.329, [0.362, 1.000, 0.000]], [0.331, [0.362, 1.000, 0.000]], [0.333, [0.198, 0.913, 0.000]], [0.335, [0.198, 0.913, 0.000]], [0.337, [0.065, 0.773, 0.167]], [0.339, [0.065, 0.773, 0.167]], [0.341, [0.000, 0.605, 0.439]], [0.342, [0.000, 0.605, 0.439]], [0.344, [0.000, 0.418, 0.681]], [0.346, [0.000, 0.418, 0.681]], [0.348, [0.000, 0.225, 0.879]], [0.350, [0.000, 0.225, 0.879]], [0.352, [0.000, 0.040, 1.000]], [0.354, [0.000, 0.040, 1.000]], [0.356, [0.075, 0.000, 1.000]], [0.358, [0.075, 0.000, 1.000]], [0.360, [0.211, 0.000, 1.000]], [0.362, [0.211, 0.000, 1.000]], [0.364, [0.377, 0.000, 1.000]], [0.366, [0.377, 0.000, 1.000]], [0.368, [0.563, 0.000, 0.881]], [0.370, [0.563, 0.000, 0.881]], [0.372, [0.755, 0.000, 0.684]], [0.374, [0.755, 0.000, 0.684]], [0.376, [0.942, 0.000, 0.442]], [0.378, [0.942, 0.000, 0.442]], [0.380, [1.000, 0.000, 0.171]], [0.382, [1.000, 0.000, 0.171]], [0.384, [1.000, 0.000, 0.000]], [0.386, [1.000, 0.000, 0.000]], [0.387, [1.000, 0.019, 0.000]], [0.389, [1.000, 0.019, 0.000]], [0.391, [1.000, 0.204, 0.000]], [0.393, [1.000, 0.204, 0.000]], [0.395, [1.000, 0.396, 0.000]], [0.397, [1.000, 0.396, 0.000]], [0.399, [1.000, 0.584, 0.000]], [0.401, [1.000, 0.584, 0.000]], [0.403, [1.000, 0.755, 0.000]], [0.405, [1.000, 0.755, 0.000]], [0.407, [1.000, 0.899, 0.000]], [0.409, [1.000, 0.899, 0.000]], [0.411, [0.998, 1.000, 0.000]], [0.413, [0.998, 1.000, 0.000]], [0.415, [0.816, 1.000, 0.000]], [0.417, [0.816, 1.000, 0.000]], [0.419, [0.623, 1.000, 0.000]], [0.421, [0.623, 1.000, 0.000]], [0.423, [0.434, 1.000, 0.000]], [0.425, [0.434, 1.000, 0.000]], [0.427, [0.261, 0.958, 0.000]], [0.429, [0.261, 0.958, 0.000]], [0.431, [0.114, 0.834, 0.054]], [0.432, [0.114, 0.834, 0.054]], [0.434, [0.004, 0.675, 0.332]], [0.436, [0.004, 0.675, 0.332]], [0.438, [0.000, 0.495, 0.588]], [0.440, [0.000, 0.495, 0.588]], [0.442, [0.000, 0.303, 0.806]], [0.444, [0.000, 0.303, 0.806]], [0.446, [0.000, 0.113, 0.970]], [0.448, [0.000, 0.113, 0.970]], [0.450, [0.031, 0.000, 1.000]], [0.452, [0.031, 0.000, 1.000]], [0.454, [0.152, 0.000, 1.000]], [0.456, [0.152, 0.000, 1.000]], [0.458, [0.307, 0.000, 1.000]], [0.460, [0.307, 0.000, 1.000]], [0.462, [0.487, 0.000, 0.944]], [0.464, [0.487, 0.000, 0.944]], [0.466, [0.678, 0.000, 0.770]], [0.468, [0.678, 0.000, 0.770]], [0.470, [0.869, 0.000, 0.544]], [0.472, [0.869, 0.000, 0.544]], [0.474, [1.000, 0.000, 0.283]], [0.476, [1.000, 0.000, 0.283]], [0.477, [1.000, 0.000, 0.003]], [0.479, [1.000, 0.000, 0.003]], [0.481, [1.000, 0.000, 0.000]], [0.483, [1.000, 0.000, 0.000]], [0.485, [1.000, 0.128, 0.000]], [0.487, [1.000, 0.128, 0.000]], [0.489, [1.000, 0.318, 0.000]], [0.491, [1.000, 0.318, 0.000]], [0.493, [1.000, 0.510, 0.000]], [0.495, [1.000, 0.510, 0.000]], [0.497, [1.000, 0.689, 0.000]], [0.499, [1.000, 0.689, 0.000]], [0.501, [1.000, 0.845, 0.000]], [0.503, [1.000, 0.845, 0.000]], [0.505, [1.000, 0.967, 0.000]], [0.507, [1.000, 0.967, 0.000]], [0.509, [0.891, 1.000, 0.000]], [0.511, [0.891, 1.000, 0.000]], [0.513, [0.701, 1.000, 0.000]], [0.515, [0.701, 1.000, 0.000]], [0.517, [0.509, 1.000, 0.000]], [0.519, [0.509, 1.000, 0.000]], [0.521, [0.328, 0.997, 0.000]], [0.523, [0.328, 0.997, 0.000]], [0.524, [0.169, 0.888, 0.000]], [0.526, [0.169, 0.888, 0.000]], [0.528, [0.044, 0.742, 0.222]], [0.530, [0.044, 0.742, 0.222]], [0.532, [0.000, 0.569, 0.489]], [0.534, [0.000, 0.569, 0.489]], [0.536, [0.000, 0.380, 0.724]], [0.538, [0.000, 0.380, 0.724]], [0.540, [0.000, 0.188, 0.911]], [0.542, [0.000, 0.188, 0.911]], [0.544, [0.000, 0.005, 1.000]], [0.546, [0.000, 0.005, 1.000]], [0.548, [0.099, 0.000, 1.000]], [0.550, [0.099, 0.000, 1.000]], [0.552, [0.242, 0.000, 1.000]], [0.554, [0.242, 0.000, 1.000]], [0.556, [0.412, 0.000, 0.998]], [0.558, [0.412, 0.000, 0.998]], [0.560, [0.600, 0.000, 0.847]], [0.562, [0.600, 0.000, 0.847]], [0.564, [0.793, 0.000, 0.640]], [0.566, [0.793, 0.000, 0.640]], [0.568, [0.977, 0.000, 0.391]], [0.569, [0.977, 0.000, 0.391]], [0.571, [1.000, 0.000, 0.116]], [0.573, [1.000, 0.000, 0.116]], [0.575, [1.000, 0.000, 0.000]], [0.577, [1.000, 0.000, 0.000]], [0.579, [1.000, 0.054, 0.000]], [0.581, [1.000, 0.054, 0.000]], [0.583, [1.000, 0.241, 0.000]], [0.585, [1.000, 0.241, 0.000]], [0.587, [1.000, 0.434, 0.000]], [0.589, [1.000, 0.434, 0.000]], [0.591, [1.000, 0.619, 0.000]], [0.593, [1.000, 0.619, 0.000]], [0.595, [1.000, 0.786, 0.000]], [0.597, [1.000, 0.786, 0.000]], [0.599, [1.000, 0.923, 0.000]], [0.601, [1.000, 0.923, 0.000]], [0.603, [0.964, 1.000, 0.000]], [0.605, [0.964, 1.000, 0.000]], [0.607, [0.778, 1.000, 0.000]], [0.609, [0.778, 1.000, 0.000]], [0.611, [0.586, 1.000, 0.000]], [0.613, [0.586, 1.000, 0.000]], [0.614, [0.399, 1.000, 0.000]], [0.616, [0.399, 1.000, 0.000]], [0.618, [0.230, 0.937, 0.000]], [0.620, [0.230, 0.937, 0.000]], [0.622, [0.089, 0.805, 0.110]], [0.624, [0.089, 0.805, 0.110]], [0.626, [0.000, 0.641, 0.385]], [0.628, [0.000, 0.641, 0.385]], [0.630, [0.000, 0.457, 0.634]], [0.632, [0.000, 0.457, 0.634]], [0.634, [0.000, 0.265, 0.842]], [0.636, [0.000, 0.265, 0.842]], [0.638, [0.000, 0.077, 0.995]], [0.640, [0.000, 0.077, 0.995]], [0.642, [0.052, 0.000, 1.000]], [0.644, [0.052, 0.000, 1.000]], [0.646, [0.180, 0.000, 1.000]], [0.648, [0.180, 0.000, 1.000]], [0.650, [0.341, 0.000, 1.000]], [0.652, [0.341, 0.000, 1.000]], [0.654, [0.524, 0.000, 0.915]], [0.656, [0.524, 0.000, 0.915]], [0.658, [0.716, 0.000, 0.729]], [0.659, [0.716, 0.000, 0.729]], [0.661, [0.905, 0.000, 0.495]], [0.663, [0.905, 0.000, 0.495]], [0.665, [1.000, 0.000, 0.229]], [0.667, [1.000, 0.000, 0.229]], [0.669, [1.000, 0.000, 0.000]], [0.671, [1.000, 0.000, 0.000]], [0.673, [1.000, 0.000, 0.000]], [0.675, [1.000, 0.000, 0.000]], [0.677, [1.000, 0.165, 0.000]], [0.679, [1.000, 0.165, 0.000]], [0.681, [1.000, 0.356, 0.000]], [0.683, [1.000, 0.356, 0.000]], [0.685, [1.000, 0.546, 0.000]], [0.687, [1.000, 0.546, 0.000]], [0.689, [1.000, 0.722, 0.000]], [0.691, [1.000, 0.722, 0.000]], [0.693, [1.000, 0.872, 0.000]], [0.695, [1.000, 0.872, 0.000]], [0.697, [1.000, 0.986, 0.000]], [0.699, [1.000, 0.986, 0.000]], [0.701, [0.854, 1.000, 0.000]], [0.703, [0.854, 1.000, 0.000]], [0.705, [0.663, 1.000, 0.000]], [0.706, [0.663, 1.000, 0.000]], [0.708, [0.472, 1.000, 0.000]], [0.710, [0.472, 1.000, 0.000]], [0.712, [0.295, 0.979, 0.000]], [0.714, [0.295, 0.979, 0.000]], [0.716, [0.142, 0.862, 0.000]], [0.718, [0.142, 0.862, 0.000]], [0.720, [0.024, 0.710, 0.276]], [0.722, [0.024, 0.710, 0.276]], [0.724, [0.000, 0.533, 0.538]], [0.726, [0.000, 0.533, 0.538]], [0.728, [0.000, 0.342, 0.765]], [0.730, [0.000, 0.342, 0.765]], [0.732, [0.000, 0.151, 0.941]], [0.734, [0.000, 0.151, 0.941]], [0.736, [0.011, 0.000, 1.000]], [0.738, [0.011, 0.000, 1.000]], [0.740, [0.124, 0.000, 1.000]], [0.742, [0.124, 0.000, 1.000]], [0.744, [0.273, 0.000, 1.000]], [0.746, [0.273, 0.000, 1.000]], [0.748, [0.448, 0.000, 0.973]], [0.750, [0.448, 0.000, 0.973]], [0.751, [0.638, 0.000, 0.810]], [0.753, [0.638, 0.000, 0.810]], [0.755, [0.830, 0.000, 0.594]], [0.757, [0.830, 0.000, 0.594]], [0.759, [1.000, 0.000, 0.339]], [0.761, [1.000, 0.000, 0.339]], [0.763, [1.000, 0.000, 0.061]], [0.765, [1.000, 0.000, 0.061]], [0.767, [1.000, 0.000, 0.000]], [0.769, [1.000, 0.000, 0.000]], [0.771, [1.000, 0.090, 0.000]], [0.773, [1.000, 0.090, 0.000]], [0.775, [1.000, 0.279, 0.000]], [0.777, [1.000, 0.279, 0.000]], [0.779, [1.000, 0.471, 0.000]], [0.781, [1.000, 0.471, 0.000]], [0.783, [1.000, 0.654, 0.000]], [0.785, [1.000, 0.654, 0.000]], [0.787, [1.000, 0.816, 0.000]], [0.789, [1.000, 0.816, 0.000]], [0.791, [1.000, 0.945, 0.000]], [0.793, [1.000, 0.945, 0.000]], [0.795, [0.928, 1.000, 0.000]], [0.796, [0.928, 1.000, 0.000]], [0.798, [0.741, 1.000, 0.000]], [0.800, [0.741, 1.000, 0.000]], [0.802, [0.548, 1.000, 0.000]], [0.804, [0.548, 1.000, 0.000]], [0.806, [0.364, 1.000, 0.000]], [0.808, [0.364, 1.000, 0.000]], [0.810, [0.199, 0.914, 0.000]], [0.812, [0.199, 0.914, 0.000]], [0.814, [0.066, 0.775, 0.165]], [0.816, [0.066, 0.775, 0.165]], [0.818, [0.000, 0.607, 0.436]], [0.820, [0.000, 0.607, 0.436]], [0.822, [0.000, 0.420, 0.679]], [0.824, [0.000, 0.420, 0.679]], [0.826, [0.000, 0.227, 0.877]], [0.828, [0.000, 0.227, 0.877]], [0.830, [0.000, 0.041, 1.000]], [0.832, [0.000, 0.041, 1.000]], [0.834, [0.074, 0.000, 1.000]], [0.836, [0.074, 0.000, 1.000]], [0.838, [0.210, 0.000, 1.000]], [0.840, [0.210, 0.000, 1.000]], [0.841, [0.376, 0.000, 1.000]], [0.843, [0.376, 0.000, 1.000]], [0.845, [0.561, 0.000, 0.883]], [0.847, [0.561, 0.000, 0.883]], [0.849, [0.753, 0.000, 0.686]], [0.851, [0.753, 0.000, 0.686]], [0.853, [0.941, 0.000, 0.445]], [0.855, [0.941, 0.000, 0.445]], [0.857, [1.000, 0.000, 0.174]], [0.859, [1.000, 0.000, 0.174]], [0.861, [1.000, 0.000, 0.000]], [0.863, [1.000, 0.000, 0.000]], [0.865, [1.000, 0.018, 0.000]], [0.867, [1.000, 0.018, 0.000]], [0.869, [1.000, 0.202, 0.000]], [0.871, [1.000, 0.202, 0.000]], [0.873, [1.000, 0.394, 0.000]], [0.875, [1.000, 0.394, 0.000]], [0.877, [1.000, 0.582, 0.000]], [0.879, [1.000, 0.582, 0.000]], [0.881, [1.000, 0.754, 0.000]], [0.883, [1.000, 0.754, 0.000]], [0.885, [1.000, 0.897, 0.000]], [0.886, [1.000, 0.897, 0.000]], [0.888, [1.000, 1.000, 0.000]], [0.890, [1.000, 1.000, 0.000]], [0.892, [0.817, 1.000, 0.000]], [0.894, [0.817, 1.000, 0.000]], [0.896, [0.625, 1.000, 0.000]], [0.898, [0.625, 1.000, 0.000]], [0.900, [0.436, 1.000, 0.000]], [0.902, [0.436, 1.000, 0.000]], [0.904, [0.262, 0.960, 0.000]], [0.906, [0.262, 0.960, 0.000]], [0.908, [0.115, 0.835, 0.051]], [0.910, [0.115, 0.835, 0.051]], [0.912, [0.005, 0.677, 0.330]], [0.914, [0.005, 0.677, 0.330]], [0.916, [0.000, 0.496, 0.586]], [0.918, [0.000, 0.496, 0.586]], [0.920, [0.000, 0.305, 0.804]], [0.922, [0.000, 0.305, 0.804]], [0.924, [0.000, 0.115, 0.968]], [0.926, [0.000, 0.115, 0.968]], [0.928, [0.030, 0.000, 1.000]], [0.930, [0.030, 0.000, 1.000]], [0.932, [0.151, 0.000, 1.000]], [0.933, [0.151, 0.000, 1.000]], [0.935, [0.306, 0.000, 1.000]], [0.937, [0.306, 0.000, 1.000]], [0.939, [0.485, 0.000, 0.946]], [0.941, [0.485, 0.000, 0.946]], [0.943, [0.676, 0.000, 0.772]], [0.945, [0.676, 0.000, 0.772]], [0.947, [0.867, 0.000, 0.546]], [0.949, [0.867, 0.000, 0.546]], [0.951, [1.000, 0.000, 0.285]], [0.953, [1.000, 0.000, 0.285]], [0.955, [1.000, 0.000, 0.005]], [0.957, [1.000, 0.000, 0.005]], [0.959, [1.000, 0.000, 0.000]], [0.961, [1.000, 0.000, 0.000]], [0.963, [1.000, 0.126, 0.000]], [0.965, [1.000, 0.126, 0.000]], [0.967, [1.000, 0.317, 0.000]], [0.969, [1.000, 0.317, 0.000]], [0.971, [1.000, 0.508, 0.000]], [0.973, [1.000, 0.508, 0.000]], [0.975, [1.000, 0.688, 0.000]], [0.977, [1.000, 0.688, 0.000]], [0.978, [1.000, 0.844, 0.000]], [0.980, [1.000, 0.844, 0.000]], [0.982, [1.000, 0.966, 0.000]], [0.984, [1.000, 0.966, 0.000]], [0.986, [0.893, 1.000, 0.000]], [0.988, [0.893, 1.000, 0.000]], [0.990, [0.703, 1.000, 0.000]], [0.992, [0.703, 1.000, 0.000]], [0.994, [0.511, 1.000, 0.000]], [0.996, [0.511, 1.000, 0.000]], [0.998, [0.330, 0.998, 0.000]], [1.000, [0.330, 0.998, 0.000]]];
+var rainbow = [[0.000, [0.500, 0.000, 1.000]], [0.002, [0.500, 0.000, 1.000]], [0.004, [0.492, 0.012, 1.000]], [0.006, [0.492, 0.012, 1.000]], [0.008, [0.484, 0.025, 1.000]], [0.010, [0.484, 0.025, 1.000]], [0.012, [0.476, 0.037, 1.000]], [0.014, [0.476, 0.037, 1.000]], [0.016, [0.469, 0.049, 1.000]], [0.018, [0.469, 0.049, 1.000]], [0.020, [0.461, 0.062, 1.000]], [0.022, [0.461, 0.062, 1.000]], [0.023, [0.453, 0.074, 0.999]], [0.025, [0.453, 0.074, 0.999]], [0.027, [0.445, 0.086, 0.999]], [0.029, [0.445, 0.086, 0.999]], [0.031, [0.437, 0.098, 0.999]], [0.033, [0.437, 0.098, 0.999]], [0.035, [0.429, 0.111, 0.998]], [0.037, [0.429, 0.111, 0.998]], [0.039, [0.422, 0.123, 0.998]], [0.041, [0.422, 0.123, 0.998]], [0.043, [0.414, 0.135, 0.998]], [0.045, [0.414, 0.135, 0.998]], [0.047, [0.406, 0.147, 0.997]], [0.049, [0.406, 0.147, 0.997]], [0.051, [0.398, 0.159, 0.997]], [0.053, [0.398, 0.159, 0.997]], [0.055, [0.390, 0.172, 0.996]], [0.057, [0.390, 0.172, 0.996]], [0.059, [0.382, 0.184, 0.996]], [0.061, [0.382, 0.184, 0.996]], [0.063, [0.375, 0.196, 0.995]], [0.065, [0.375, 0.196, 0.995]], [0.067, [0.367, 0.208, 0.995]], [0.068, [0.367, 0.208, 0.995]], [0.070, [0.359, 0.220, 0.994]], [0.072, [0.359, 0.220, 0.994]], [0.074, [0.351, 0.232, 0.993]], [0.076, [0.351, 0.232, 0.993]], [0.078, [0.343, 0.244, 0.992]], [0.080, [0.343, 0.244, 0.992]], [0.082, [0.335, 0.256, 0.992]], [0.084, [0.335, 0.256, 0.992]], [0.086, [0.327, 0.268, 0.991]], [0.088, [0.327, 0.268, 0.991]], [0.090, [0.320, 0.280, 0.990]], [0.092, [0.320, 0.280, 0.990]], [0.094, [0.312, 0.291, 0.989]], [0.096, [0.312, 0.291, 0.989]], [0.098, [0.304, 0.303, 0.988]], [0.100, [0.304, 0.303, 0.988]], [0.102, [0.296, 0.315, 0.987]], [0.104, [0.296, 0.315, 0.987]], [0.106, [0.288, 0.327, 0.986]], [0.108, [0.288, 0.327, 0.986]], [0.110, [0.280, 0.338, 0.985]], [0.112, [0.280, 0.338, 0.985]], [0.114, [0.273, 0.350, 0.984]], [0.115, [0.273, 0.350, 0.984]], [0.117, [0.265, 0.361, 0.983]], [0.119, [0.265, 0.361, 0.983]], [0.121, [0.257, 0.373, 0.982]], [0.123, [0.257, 0.373, 0.982]], [0.125, [0.249, 0.384, 0.981]], [0.127, [0.249, 0.384, 0.981]], [0.129, [0.241, 0.395, 0.979]], [0.131, [0.241, 0.395, 0.979]], [0.133, [0.233, 0.407, 0.978]], [0.135, [0.233, 0.407, 0.978]], [0.137, [0.225, 0.418, 0.977]], [0.139, [0.225, 0.418, 0.977]], [0.141, [0.218, 0.429, 0.976]], [0.143, [0.218, 0.429, 0.976]], [0.145, [0.210, 0.440, 0.974]], [0.147, [0.210, 0.440, 0.974]], [0.149, [0.202, 0.451, 0.973]], [0.151, [0.202, 0.451, 0.973]], [0.153, [0.194, 0.462, 0.971]], [0.155, [0.194, 0.462, 0.971]], [0.157, [0.186, 0.473, 0.970]], [0.159, [0.186, 0.473, 0.970]], [0.160, [0.178, 0.484, 0.968]], [0.162, [0.178, 0.484, 0.968]], [0.164, [0.171, 0.495, 0.967]], [0.166, [0.171, 0.495, 0.967]], [0.168, [0.163, 0.505, 0.965]], [0.170, [0.163, 0.505, 0.965]], [0.172, [0.155, 0.516, 0.963]], [0.174, [0.155, 0.516, 0.963]], [0.176, [0.147, 0.526, 0.962]], [0.178, [0.147, 0.526, 0.962]], [0.180, [0.139, 0.537, 0.960]], [0.182, [0.139, 0.537, 0.960]], [0.184, [0.131, 0.547, 0.958]], [0.186, [0.131, 0.547, 0.958]], [0.188, [0.124, 0.557, 0.957]], [0.190, [0.124, 0.557, 0.957]], [0.192, [0.116, 0.568, 0.955]], [0.194, [0.116, 0.568, 0.955]], [0.196, [0.108, 0.578, 0.953]], [0.198, [0.108, 0.578, 0.953]], [0.200, [0.100, 0.588, 0.951]], [0.202, [0.100, 0.588, 0.951]], [0.204, [0.092, 0.598, 0.949]], [0.205, [0.092, 0.598, 0.949]], [0.207, [0.084, 0.608, 0.947]], [0.209, [0.084, 0.608, 0.947]], [0.211, [0.076, 0.617, 0.945]], [0.213, [0.076, 0.617, 0.945]], [0.215, [0.069, 0.627, 0.943]], [0.217, [0.069, 0.627, 0.943]], [0.219, [0.061, 0.636, 0.941]], [0.221, [0.061, 0.636, 0.941]], [0.223, [0.053, 0.646, 0.939]], [0.225, [0.053, 0.646, 0.939]], [0.227, [0.045, 0.655, 0.937]], [0.229, [0.045, 0.655, 0.937]], [0.231, [0.037, 0.665, 0.935]], [0.233, [0.037, 0.665, 0.935]], [0.235, [0.029, 0.674, 0.932]], [0.237, [0.029, 0.674, 0.932]], [0.239, [0.022, 0.683, 0.930]], [0.241, [0.022, 0.683, 0.930]], [0.243, [0.014, 0.692, 0.928]], [0.245, [0.014, 0.692, 0.928]], [0.247, [0.006, 0.701, 0.926]], [0.249, [0.006, 0.701, 0.926]], [0.250, [0.002, 0.709, 0.923]], [0.252, [0.002, 0.709, 0.923]], [0.254, [0.010, 0.718, 0.921]], [0.256, [0.010, 0.718, 0.921]], [0.258, [0.018, 0.726, 0.918]], [0.260, [0.018, 0.726, 0.918]], [0.262, [0.025, 0.735, 0.916]], [0.264, [0.025, 0.735, 0.916]], [0.266, [0.033, 0.743, 0.914]], [0.268, [0.033, 0.743, 0.914]], [0.270, [0.041, 0.751, 0.911]], [0.272, [0.041, 0.751, 0.911]], [0.274, [0.049, 0.759, 0.908]], [0.276, [0.049, 0.759, 0.908]], [0.278, [0.057, 0.767, 0.906]], [0.280, [0.057, 0.767, 0.906]], [0.282, [0.065, 0.775, 0.903]], [0.284, [0.065, 0.775, 0.903]], [0.286, [0.073, 0.783, 0.901]], [0.288, [0.073, 0.783, 0.901]], [0.290, [0.080, 0.791, 0.898]], [0.292, [0.080, 0.791, 0.898]], [0.294, [0.088, 0.798, 0.895]], [0.295, [0.088, 0.798, 0.895]], [0.297, [0.096, 0.805, 0.892]], [0.299, [0.096, 0.805, 0.892]], [0.301, [0.104, 0.813, 0.890]], [0.303, [0.104, 0.813, 0.890]], [0.305, [0.112, 0.820, 0.887]], [0.307, [0.112, 0.820, 0.887]], [0.309, [0.120, 0.827, 0.884]], [0.311, [0.120, 0.827, 0.884]], [0.313, [0.127, 0.834, 0.881]], [0.315, [0.127, 0.834, 0.881]], [0.317, [0.135, 0.840, 0.878]], [0.319, [0.135, 0.840, 0.878]], [0.321, [0.143, 0.847, 0.875]], [0.323, [0.143, 0.847, 0.875]], [0.325, [0.151, 0.853, 0.872]], [0.327, [0.151, 0.853, 0.872]], [0.329, [0.159, 0.860, 0.869]], [0.331, [0.159, 0.860, 0.869]], [0.333, [0.167, 0.866, 0.866]], [0.335, [0.167, 0.866, 0.866]], [0.337, [0.175, 0.872, 0.863]], [0.339, [0.175, 0.872, 0.863]], [0.341, [0.182, 0.878, 0.860]], [0.342, [0.182, 0.878, 0.860]], [0.344, [0.190, 0.884, 0.857]], [0.346, [0.190, 0.884, 0.857]], [0.348, [0.198, 0.890, 0.853]], [0.350, [0.198, 0.890, 0.853]], [0.352, [0.206, 0.895, 0.850]], [0.354, [0.206, 0.895, 0.850]], [0.356, [0.214, 0.901, 0.847]], [0.358, [0.214, 0.901, 0.847]], [0.360, [0.222, 0.906, 0.844]], [0.362, [0.222, 0.906, 0.844]], [0.364, [0.229, 0.911, 0.840]], [0.366, [0.229, 0.911, 0.840]], [0.368, [0.237, 0.916, 0.837]], [0.370, [0.237, 0.916, 0.837]], [0.372, [0.245, 0.921, 0.834]], [0.374, [0.245, 0.921, 0.834]], [0.376, [0.253, 0.926, 0.830]], [0.378, [0.253, 0.926, 0.830]], [0.380, [0.261, 0.930, 0.827]], [0.382, [0.261, 0.930, 0.827]], [0.384, [0.269, 0.935, 0.823]], [0.386, [0.269, 0.935, 0.823]], [0.387, [0.276, 0.939, 0.820]], [0.389, [0.276, 0.939, 0.820]], [0.391, [0.284, 0.943, 0.816]], [0.393, [0.284, 0.943, 0.816]], [0.395, [0.292, 0.947, 0.813]], [0.397, [0.292, 0.947, 0.813]], [0.399, [0.300, 0.951, 0.809]], [0.401, [0.300, 0.951, 0.809]], [0.403, [0.308, 0.955, 0.805]], [0.405, [0.308, 0.955, 0.805]], [0.407, [0.316, 0.958, 0.802]], [0.409, [0.316, 0.958, 0.802]], [0.411, [0.324, 0.962, 0.798]], [0.413, [0.324, 0.962, 0.798]], [0.415, [0.331, 0.965, 0.794]], [0.417, [0.331, 0.965, 0.794]], [0.419, [0.339, 0.968, 0.791]], [0.421, [0.339, 0.968, 0.791]], [0.423, [0.347, 0.971, 0.787]], [0.425, [0.347, 0.971, 0.787]], [0.427, [0.355, 0.974, 0.783]], [0.429, [0.355, 0.974, 0.783]], [0.431, [0.363, 0.977, 0.779]], [0.432, [0.363, 0.977, 0.779]], [0.434, [0.371, 0.979, 0.775]], [0.436, [0.371, 0.979, 0.775]], [0.438, [0.378, 0.982, 0.771]], [0.440, [0.378, 0.982, 0.771]], [0.442, [0.386, 0.984, 0.767]], [0.444, [0.386, 0.984, 0.767]], [0.446, [0.394, 0.986, 0.763]], [0.448, [0.394, 0.986, 0.763]], [0.450, [0.402, 0.988, 0.759]], [0.452, [0.402, 0.988, 0.759]], [0.454, [0.410, 0.990, 0.755]], [0.456, [0.410, 0.990, 0.755]], [0.458, [0.418, 0.992, 0.751]], [0.460, [0.418, 0.992, 0.751]], [0.462, [0.425, 0.993, 0.747]], [0.464, [0.425, 0.993, 0.747]], [0.466, [0.433, 0.995, 0.743]], [0.468, [0.433, 0.995, 0.743]], [0.470, [0.441, 0.996, 0.739]], [0.472, [0.441, 0.996, 0.739]], [0.474, [0.449, 0.997, 0.735]], [0.476, [0.449, 0.997, 0.735]], [0.477, [0.457, 0.998, 0.731]], [0.479, [0.457, 0.998, 0.731]], [0.481, [0.465, 0.998, 0.726]], [0.483, [0.465, 0.998, 0.726]], [0.485, [0.473, 0.999, 0.722]], [0.487, [0.473, 0.999, 0.722]], [0.489, [0.480, 1.000, 0.718]], [0.491, [0.480, 1.000, 0.718]], [0.493, [0.488, 1.000, 0.714]], [0.495, [0.488, 1.000, 0.714]], [0.497, [0.496, 1.000, 0.709]], [0.499, [0.496, 1.000, 0.709]], [0.501, [0.504, 1.000, 0.705]], [0.503, [0.504, 1.000, 0.705]], [0.505, [0.512, 1.000, 0.701]], [0.507, [0.512, 1.000, 0.701]], [0.509, [0.520, 1.000, 0.696]], [0.511, [0.520, 1.000, 0.696]], [0.513, [0.527, 0.999, 0.692]], [0.515, [0.527, 0.999, 0.692]], [0.517, [0.535, 0.998, 0.687]], [0.519, [0.535, 0.998, 0.687]], [0.521, [0.543, 0.998, 0.683]], [0.523, [0.543, 0.998, 0.683]], [0.524, [0.551, 0.997, 0.678]], [0.526, [0.551, 0.997, 0.678]], [0.528, [0.559, 0.996, 0.674]], [0.530, [0.559, 0.996, 0.674]], [0.532, [0.567, 0.995, 0.669]], [0.534, [0.567, 0.995, 0.669]], [0.536, [0.575, 0.993, 0.665]], [0.538, [0.575, 0.993, 0.665]], [0.540, [0.582, 0.992, 0.660]], [0.542, [0.582, 0.992, 0.660]], [0.544, [0.590, 0.990, 0.655]], [0.546, [0.590, 0.990, 0.655]], [0.548, [0.598, 0.988, 0.651]], [0.550, [0.598, 0.988, 0.651]], [0.552, [0.606, 0.986, 0.646]], [0.554, [0.606, 0.986, 0.646]], [0.556, [0.614, 0.984, 0.641]], [0.558, [0.614, 0.984, 0.641]], [0.560, [0.622, 0.982, 0.636]], [0.562, [0.622, 0.982, 0.636]], [0.564, [0.629, 0.979, 0.632]], [0.566, [0.629, 0.979, 0.632]], [0.568, [0.637, 0.977, 0.627]], [0.569, [0.637, 0.977, 0.627]], [0.571, [0.645, 0.974, 0.622]], [0.573, [0.645, 0.974, 0.622]], [0.575, [0.653, 0.971, 0.617]], [0.577, [0.653, 0.971, 0.617]], [0.579, [0.661, 0.968, 0.612]], [0.581, [0.661, 0.968, 0.612]], [0.583, [0.669, 0.965, 0.608]], [0.585, [0.669, 0.965, 0.608]], [0.587, [0.676, 0.962, 0.603]], [0.589, [0.676, 0.962, 0.603]], [0.591, [0.684, 0.958, 0.598]], [0.593, [0.684, 0.958, 0.598]], [0.595, [0.692, 0.955, 0.593]], [0.597, [0.692, 0.955, 0.593]], [0.599, [0.700, 0.951, 0.588]], [0.601, [0.700, 0.951, 0.588]], [0.603, [0.708, 0.947, 0.583]], [0.605, [0.708, 0.947, 0.583]], [0.607, [0.716, 0.943, 0.578]], [0.609, [0.716, 0.943, 0.578]], [0.611, [0.724, 0.939, 0.573]], [0.613, [0.724, 0.939, 0.573]], [0.614, [0.731, 0.935, 0.568]], [0.616, [0.731, 0.935, 0.568]], [0.618, [0.739, 0.930, 0.563]], [0.620, [0.739, 0.930, 0.563]], [0.622, [0.747, 0.926, 0.557]], [0.624, [0.747, 0.926, 0.557]], [0.626, [0.755, 0.921, 0.552]], [0.628, [0.755, 0.921, 0.552]], [0.630, [0.763, 0.916, 0.547]], [0.632, [0.763, 0.916, 0.547]], [0.634, [0.771, 0.911, 0.542]], [0.636, [0.771, 0.911, 0.542]], [0.638, [0.778, 0.906, 0.537]], [0.640, [0.778, 0.906, 0.537]], [0.642, [0.786, 0.901, 0.532]], [0.644, [0.786, 0.901, 0.532]], [0.646, [0.794, 0.895, 0.526]], [0.648, [0.794, 0.895, 0.526]], [0.650, [0.802, 0.890, 0.521]], [0.652, [0.802, 0.890, 0.521]], [0.654, [0.810, 0.884, 0.516]], [0.656, [0.810, 0.884, 0.516]], [0.658, [0.818, 0.878, 0.511]], [0.659, [0.818, 0.878, 0.511]], [0.661, [0.825, 0.872, 0.505]], [0.663, [0.825, 0.872, 0.505]], [0.665, [0.833, 0.866, 0.500]], [0.667, [0.833, 0.866, 0.500]], [0.669, [0.841, 0.860, 0.495]], [0.671, [0.841, 0.860, 0.495]], [0.673, [0.849, 0.853, 0.489]], [0.675, [0.849, 0.853, 0.489]], [0.677, [0.857, 0.847, 0.484]], [0.679, [0.857, 0.847, 0.484]], [0.681, [0.865, 0.840, 0.479]], [0.683, [0.865, 0.840, 0.479]], [0.685, [0.873, 0.834, 0.473]], [0.687, [0.873, 0.834, 0.473]], [0.689, [0.880, 0.827, 0.468]], [0.691, [0.880, 0.827, 0.468]], [0.693, [0.888, 0.820, 0.462]], [0.695, [0.888, 0.820, 0.462]], [0.697, [0.896, 0.813, 0.457]], [0.699, [0.896, 0.813, 0.457]], [0.701, [0.904, 0.805, 0.451]], [0.703, [0.904, 0.805, 0.451]], [0.705, [0.912, 0.798, 0.446]], [0.706, [0.912, 0.798, 0.446]], [0.708, [0.920, 0.791, 0.440]], [0.710, [0.920, 0.791, 0.440]], [0.712, [0.927, 0.783, 0.435]], [0.714, [0.927, 0.783, 0.435]], [0.716, [0.935, 0.775, 0.429]], [0.718, [0.935, 0.775, 0.429]], [0.720, [0.943, 0.767, 0.424]], [0.722, [0.943, 0.767, 0.424]], [0.724, [0.951, 0.759, 0.418]], [0.726, [0.951, 0.759, 0.418]], [0.728, [0.959, 0.751, 0.412]], [0.730, [0.959, 0.751, 0.412]], [0.732, [0.967, 0.743, 0.407]], [0.734, [0.967, 0.743, 0.407]], [0.736, [0.975, 0.735, 0.401]], [0.738, [0.975, 0.735, 0.401]], [0.740, [0.982, 0.726, 0.395]], [0.742, [0.982, 0.726, 0.395]], [0.744, [0.990, 0.718, 0.390]], [0.746, [0.990, 0.718, 0.390]], [0.748, [0.998, 0.709, 0.384]], [0.750, [0.998, 0.709, 0.384]], [0.751, [1.000, 0.701, 0.378]], [0.753, [1.000, 0.701, 0.378]], [0.755, [1.000, 0.692, 0.373]], [0.757, [1.000, 0.692, 0.373]], [0.759, [1.000, 0.683, 0.367]], [0.761, [1.000, 0.683, 0.367]], [0.763, [1.000, 0.674, 0.361]], [0.765, [1.000, 0.674, 0.361]], [0.767, [1.000, 0.665, 0.355]], [0.769, [1.000, 0.665, 0.355]], [0.771, [1.000, 0.655, 0.350]], [0.773, [1.000, 0.655, 0.350]], [0.775, [1.000, 0.646, 0.344]], [0.777, [1.000, 0.646, 0.344]], [0.779, [1.000, 0.636, 0.338]], [0.781, [1.000, 0.636, 0.338]], [0.783, [1.000, 0.627, 0.332]], [0.785, [1.000, 0.627, 0.332]], [0.787, [1.000, 0.617, 0.327]], [0.789, [1.000, 0.617, 0.327]], [0.791, [1.000, 0.608, 0.321]], [0.793, [1.000, 0.608, 0.321]], [0.795, [1.000, 0.598, 0.315]], [0.796, [1.000, 0.598, 0.315]], [0.798, [1.000, 0.588, 0.309]], [0.800, [1.000, 0.588, 0.309]], [0.802, [1.000, 0.578, 0.303]], [0.804, [1.000, 0.578, 0.303]], [0.806, [1.000, 0.568, 0.297]], [0.808, [1.000, 0.568, 0.297]], [0.810, [1.000, 0.557, 0.291]], [0.812, [1.000, 0.557, 0.291]], [0.814, [1.000, 0.547, 0.285]], [0.816, [1.000, 0.547, 0.285]], [0.818, [1.000, 0.537, 0.280]], [0.820, [1.000, 0.537, 0.280]], [0.822, [1.000, 0.526, 0.274]], [0.824, [1.000, 0.526, 0.274]], [0.826, [1.000, 0.516, 0.268]], [0.828, [1.000, 0.516, 0.268]], [0.830, [1.000, 0.505, 0.262]], [0.832, [1.000, 0.505, 0.262]], [0.834, [1.000, 0.495, 0.256]], [0.836, [1.000, 0.495, 0.256]], [0.838, [1.000, 0.484, 0.250]], [0.840, [1.000, 0.484, 0.250]], [0.841, [1.000, 0.473, 0.244]], [0.843, [1.000, 0.473, 0.244]], [0.845, [1.000, 0.462, 0.238]], [0.847, [1.000, 0.462, 0.238]], [0.849, [1.000, 0.451, 0.232]], [0.851, [1.000, 0.451, 0.232]], [0.853, [1.000, 0.440, 0.226]], [0.855, [1.000, 0.440, 0.226]], [0.857, [1.000, 0.429, 0.220]], [0.859, [1.000, 0.429, 0.220]], [0.861, [1.000, 0.418, 0.214]], [0.863, [1.000, 0.418, 0.214]], [0.865, [1.000, 0.407, 0.208]], [0.867, [1.000, 0.407, 0.208]], [0.869, [1.000, 0.395, 0.202]], [0.871, [1.000, 0.395, 0.202]], [0.873, [1.000, 0.384, 0.196]], [0.875, [1.000, 0.384, 0.196]], [0.877, [1.000, 0.373, 0.190]], [0.879, [1.000, 0.373, 0.190]], [0.881, [1.000, 0.361, 0.184]], [0.883, [1.000, 0.361, 0.184]], [0.885, [1.000, 0.350, 0.178]], [0.886, [1.000, 0.350, 0.178]], [0.888, [1.000, 0.338, 0.172]], [0.890, [1.000, 0.338, 0.172]], [0.892, [1.000, 0.327, 0.166]], [0.894, [1.000, 0.327, 0.166]], [0.896, [1.000, 0.315, 0.159]], [0.898, [1.000, 0.315, 0.159]], [0.900, [1.000, 0.303, 0.153]], [0.902, [1.000, 0.303, 0.153]], [0.904, [1.000, 0.291, 0.147]], [0.906, [1.000, 0.291, 0.147]], [0.908, [1.000, 0.280, 0.141]], [0.910, [1.000, 0.280, 0.141]], [0.912, [1.000, 0.268, 0.135]], [0.914, [1.000, 0.268, 0.135]], [0.916, [1.000, 0.256, 0.129]], [0.918, [1.000, 0.256, 0.129]], [0.920, [1.000, 0.244, 0.123]], [0.922, [1.000, 0.244, 0.123]], [0.924, [1.000, 0.232, 0.117]], [0.926, [1.000, 0.232, 0.117]], [0.928, [1.000, 0.220, 0.111]], [0.930, [1.000, 0.220, 0.111]], [0.932, [1.000, 0.208, 0.105]], [0.933, [1.000, 0.208, 0.105]], [0.935, [1.000, 0.196, 0.098]], [0.937, [1.000, 0.196, 0.098]], [0.939, [1.000, 0.184, 0.092]], [0.941, [1.000, 0.184, 0.092]], [0.943, [1.000, 0.172, 0.086]], [0.945, [1.000, 0.172, 0.086]], [0.947, [1.000, 0.159, 0.080]], [0.949, [1.000, 0.159, 0.080]], [0.951, [1.000, 0.147, 0.074]], [0.953, [1.000, 0.147, 0.074]], [0.955, [1.000, 0.135, 0.068]], [0.957, [1.000, 0.135, 0.068]], [0.959, [1.000, 0.123, 0.062]], [0.961, [1.000, 0.123, 0.062]], [0.963, [1.000, 0.111, 0.055]], [0.965, [1.000, 0.111, 0.055]], [0.967, [1.000, 0.098, 0.049]], [0.969, [1.000, 0.098, 0.049]], [0.971, [1.000, 0.086, 0.043]], [0.973, [1.000, 0.086, 0.043]], [0.975, [1.000, 0.074, 0.037]], [0.977, [1.000, 0.074, 0.037]], [0.978, [1.000, 0.062, 0.031]], [0.980, [1.000, 0.062, 0.031]], [0.982, [1.000, 0.049, 0.025]], [0.984, [1.000, 0.049, 0.025]], [0.986, [1.000, 0.037, 0.018]], [0.988, [1.000, 0.037, 0.018]], [0.990, [1.000, 0.025, 0.012]], [0.992, [1.000, 0.025, 0.012]], [0.994, [1.000, 0.012, 0.006]], [0.996, [1.000, 0.012, 0.006]], [0.998, [1.000, 0.000, 0.000]], [1.000, [1.000, 0.000, 0.000]]];
+var terrain = [[0.000, [0.200, 0.200, 0.600]], [0.002, [0.200, 0.200, 0.600]], [0.004, [0.195, 0.210, 0.610]], [0.006, [0.195, 0.210, 0.610]], [0.008, [0.190, 0.221, 0.621]], [0.010, [0.190, 0.221, 0.621]], [0.012, [0.184, 0.231, 0.631]], [0.014, [0.184, 0.231, 0.631]], [0.016, [0.179, 0.242, 0.642]], [0.018, [0.179, 0.242, 0.642]], [0.020, [0.174, 0.252, 0.652]], [0.022, [0.174, 0.252, 0.652]], [0.023, [0.169, 0.263, 0.663]], [0.025, [0.169, 0.263, 0.663]], [0.027, [0.163, 0.273, 0.673]], [0.029, [0.163, 0.273, 0.673]], [0.031, [0.158, 0.284, 0.684]], [0.033, [0.158, 0.284, 0.684]], [0.035, [0.153, 0.294, 0.694]], [0.037, [0.153, 0.294, 0.694]], [0.039, [0.148, 0.305, 0.705]], [0.041, [0.148, 0.305, 0.705]], [0.043, [0.142, 0.315, 0.715]], [0.045, [0.142, 0.315, 0.715]], [0.047, [0.137, 0.325, 0.725]], [0.049, [0.137, 0.325, 0.725]], [0.051, [0.132, 0.336, 0.736]], [0.053, [0.132, 0.336, 0.736]], [0.055, [0.127, 0.346, 0.746]], [0.057, [0.127, 0.346, 0.746]], [0.059, [0.122, 0.357, 0.757]], [0.061, [0.122, 0.357, 0.757]], [0.063, [0.116, 0.367, 0.767]], [0.065, [0.116, 0.367, 0.767]], [0.067, [0.111, 0.378, 0.778]], [0.068, [0.111, 0.378, 0.778]], [0.070, [0.106, 0.388, 0.788]], [0.072, [0.106, 0.388, 0.788]], [0.074, [0.101, 0.399, 0.799]], [0.076, [0.101, 0.399, 0.799]], [0.078, [0.095, 0.409, 0.809]], [0.080, [0.095, 0.409, 0.809]], [0.082, [0.090, 0.420, 0.820]], [0.084, [0.090, 0.420, 0.820]], [0.086, [0.085, 0.430, 0.830]], [0.088, [0.085, 0.430, 0.830]], [0.090, [0.080, 0.441, 0.841]], [0.092, [0.080, 0.441, 0.841]], [0.094, [0.075, 0.451, 0.851]], [0.096, [0.075, 0.451, 0.851]], [0.098, [0.069, 0.461, 0.861]], [0.100, [0.069, 0.461, 0.861]], [0.102, [0.064, 0.472, 0.872]], [0.104, [0.064, 0.472, 0.872]], [0.106, [0.059, 0.482, 0.882]], [0.108, [0.059, 0.482, 0.882]], [0.110, [0.054, 0.493, 0.893]], [0.112, [0.054, 0.493, 0.893]], [0.114, [0.048, 0.503, 0.903]], [0.115, [0.048, 0.503, 0.903]], [0.117, [0.043, 0.514, 0.914]], [0.119, [0.043, 0.514, 0.914]], [0.121, [0.038, 0.524, 0.924]], [0.123, [0.038, 0.524, 0.924]], [0.125, [0.033, 0.535, 0.935]], [0.127, [0.033, 0.535, 0.935]], [0.129, [0.027, 0.545, 0.945]], [0.131, [0.027, 0.545, 0.945]], [0.133, [0.022, 0.556, 0.956]], [0.135, [0.022, 0.556, 0.956]], [0.137, [0.017, 0.566, 0.966]], [0.139, [0.017, 0.566, 0.966]], [0.141, [0.012, 0.576, 0.976]], [0.143, [0.012, 0.576, 0.976]], [0.145, [0.007, 0.587, 0.987]], [0.147, [0.007, 0.587, 0.987]], [0.149, [0.001, 0.597, 0.997]], [0.151, [0.001, 0.597, 0.997]], [0.153, [0.000, 0.606, 0.982]], [0.155, [0.000, 0.606, 0.982]], [0.157, [0.000, 0.614, 0.959]], [0.159, [0.000, 0.614, 0.959]], [0.160, [0.000, 0.622, 0.935]], [0.162, [0.000, 0.622, 0.935]], [0.164, [0.000, 0.629, 0.912]], [0.166, [0.000, 0.629, 0.912]], [0.168, [0.000, 0.637, 0.888]], [0.170, [0.000, 0.637, 0.888]], [0.172, [0.000, 0.645, 0.865]], [0.174, [0.000, 0.645, 0.865]], [0.176, [0.000, 0.653, 0.841]], [0.178, [0.000, 0.653, 0.841]], [0.180, [0.000, 0.661, 0.818]], [0.182, [0.000, 0.661, 0.818]], [0.184, [0.000, 0.669, 0.794]], [0.186, [0.000, 0.669, 0.794]], [0.188, [0.000, 0.676, 0.771]], [0.190, [0.000, 0.676, 0.771]], [0.192, [0.000, 0.684, 0.747]], [0.194, [0.000, 0.684, 0.747]], [0.196, [0.000, 0.692, 0.724]], [0.198, [0.000, 0.692, 0.724]], [0.200, [0.000, 0.700, 0.700]], [0.202, [0.000, 0.700, 0.700]], [0.204, [0.000, 0.708, 0.676]], [0.205, [0.000, 0.708, 0.676]], [0.207, [0.000, 0.716, 0.653]], [0.209, [0.000, 0.716, 0.653]], [0.211, [0.000, 0.724, 0.629]], [0.213, [0.000, 0.724, 0.629]], [0.215, [0.000, 0.731, 0.606]], [0.217, [0.000, 0.731, 0.606]], [0.219, [0.000, 0.739, 0.582]], [0.221, [0.000, 0.739, 0.582]], [0.223, [0.000, 0.747, 0.559]], [0.225, [0.000, 0.747, 0.559]], [0.227, [0.000, 0.755, 0.535]], [0.229, [0.000, 0.755, 0.535]], [0.231, [0.000, 0.763, 0.512]], [0.233, [0.000, 0.763, 0.512]], [0.235, [0.000, 0.771, 0.488]], [0.237, [0.000, 0.771, 0.488]], [0.239, [0.000, 0.778, 0.465]], [0.241, [0.000, 0.778, 0.465]], [0.243, [0.000, 0.786, 0.441]], [0.245, [0.000, 0.786, 0.441]], [0.247, [0.000, 0.794, 0.418]], [0.249, [0.000, 0.794, 0.418]], [0.250, [0.004, 0.801, 0.401]], [0.252, [0.004, 0.801, 0.401]], [0.254, [0.020, 0.804, 0.404]], [0.256, [0.020, 0.804, 0.404]], [0.258, [0.035, 0.807, 0.407]], [0.260, [0.035, 0.807, 0.407]], [0.262, [0.051, 0.810, 0.410]], [0.264, [0.051, 0.810, 0.410]], [0.266, [0.067, 0.813, 0.413]], [0.268, [0.067, 0.813, 0.413]], [0.270, [0.082, 0.816, 0.416]], [0.272, [0.082, 0.816, 0.416]], [0.274, [0.098, 0.820, 0.420]], [0.276, [0.098, 0.820, 0.420]], [0.278, [0.114, 0.823, 0.423]], [0.280, [0.114, 0.823, 0.423]], [0.282, [0.129, 0.826, 0.426]], [0.284, [0.129, 0.826, 0.426]], [0.286, [0.145, 0.829, 0.429]], [0.288, [0.145, 0.829, 0.429]], [0.290, [0.161, 0.832, 0.432]], [0.292, [0.161, 0.832, 0.432]], [0.294, [0.176, 0.835, 0.435]], [0.295, [0.176, 0.835, 0.435]], [0.297, [0.192, 0.838, 0.438]], [0.299, [0.192, 0.838, 0.438]], [0.301, [0.208, 0.842, 0.442]], [0.303, [0.208, 0.842, 0.442]], [0.305, [0.224, 0.845, 0.445]], [0.307, [0.224, 0.845, 0.445]], [0.309, [0.239, 0.848, 0.448]], [0.311, [0.239, 0.848, 0.448]], [0.313, [0.255, 0.851, 0.451]], [0.315, [0.255, 0.851, 0.451]], [0.317, [0.271, 0.854, 0.454]], [0.319, [0.271, 0.854, 0.454]], [0.321, [0.286, 0.857, 0.457]], [0.323, [0.286, 0.857, 0.457]], [0.325, [0.302, 0.860, 0.460]], [0.327, [0.302, 0.860, 0.460]], [0.329, [0.318, 0.864, 0.464]], [0.331, [0.318, 0.864, 0.464]], [0.333, [0.333, 0.867, 0.467]], [0.335, [0.333, 0.867, 0.467]], [0.337, [0.349, 0.870, 0.470]], [0.339, [0.349, 0.870, 0.470]], [0.341, [0.365, 0.873, 0.473]], [0.342, [0.365, 0.873, 0.473]], [0.344, [0.380, 0.876, 0.476]], [0.346, [0.380, 0.876, 0.476]], [0.348, [0.396, 0.879, 0.479]], [0.350, [0.396, 0.879, 0.479]], [0.352, [0.412, 0.882, 0.482]], [0.354, [0.412, 0.882, 0.482]], [0.356, [0.427, 0.885, 0.485]], [0.358, [0.427, 0.885, 0.485]], [0.360, [0.443, 0.889, 0.489]], [0.362, [0.443, 0.889, 0.489]], [0.364, [0.459, 0.892, 0.492]], [0.366, [0.459, 0.892, 0.492]], [0.368, [0.475, 0.895, 0.495]], [0.370, [0.475, 0.895, 0.495]], [0.372, [0.490, 0.898, 0.498]], [0.374, [0.490, 0.898, 0.498]], [0.376, [0.506, 0.901, 0.501]], [0.378, [0.506, 0.901, 0.501]], [0.380, [0.522, 0.904, 0.504]], [0.382, [0.522, 0.904, 0.504]], [0.384, [0.537, 0.907, 0.507]], [0.386, [0.537, 0.907, 0.507]], [0.387, [0.553, 0.911, 0.511]], [0.389, [0.553, 0.911, 0.511]], [0.391, [0.569, 0.914, 0.514]], [0.393, [0.569, 0.914, 0.514]], [0.395, [0.584, 0.917, 0.517]], [0.397, [0.584, 0.917, 0.517]], [0.399, [0.600, 0.920, 0.520]], [0.401, [0.600, 0.920, 0.520]], [0.403, [0.616, 0.923, 0.523]], [0.405, [0.616, 0.923, 0.523]], [0.407, [0.631, 0.926, 0.526]], [0.409, [0.631, 0.926, 0.526]], [0.411, [0.647, 0.929, 0.529]], [0.413, [0.647, 0.929, 0.529]], [0.415, [0.663, 0.933, 0.533]], [0.417, [0.663, 0.933, 0.533]], [0.419, [0.678, 0.936, 0.536]], [0.421, [0.678, 0.936, 0.536]], [0.423, [0.694, 0.939, 0.539]], [0.425, [0.694, 0.939, 0.539]], [0.427, [0.710, 0.942, 0.542]], [0.429, [0.710, 0.942, 0.542]], [0.431, [0.725, 0.945, 0.545]], [0.432, [0.725, 0.945, 0.545]], [0.434, [0.741, 0.948, 0.548]], [0.436, [0.741, 0.948, 0.548]], [0.438, [0.757, 0.951, 0.551]], [0.440, [0.757, 0.951, 0.551]], [0.442, [0.773, 0.955, 0.555]], [0.444, [0.773, 0.955, 0.555]], [0.446, [0.788, 0.958, 0.558]], [0.448, [0.788, 0.958, 0.558]], [0.450, [0.804, 0.961, 0.561]], [0.452, [0.804, 0.961, 0.561]], [0.454, [0.820, 0.964, 0.564]], [0.456, [0.820, 0.964, 0.564]], [0.458, [0.835, 0.967, 0.567]], [0.460, [0.835, 0.967, 0.567]], [0.462, [0.851, 0.970, 0.570]], [0.464, [0.851, 0.970, 0.570]], [0.466, [0.867, 0.973, 0.573]], [0.468, [0.867, 0.973, 0.573]], [0.470, [0.882, 0.976, 0.576]], [0.472, [0.882, 0.976, 0.576]], [0.474, [0.898, 0.980, 0.580]], [0.476, [0.898, 0.980, 0.580]], [0.477, [0.914, 0.983, 0.583]], [0.479, [0.914, 0.983, 0.583]], [0.481, [0.929, 0.986, 0.586]], [0.483, [0.929, 0.986, 0.586]], [0.485, [0.945, 0.989, 0.589]], [0.487, [0.945, 0.989, 0.589]], [0.489, [0.961, 0.992, 0.592]], [0.491, [0.961, 0.992, 0.592]], [0.493, [0.976, 0.995, 0.595]], [0.495, [0.976, 0.995, 0.595]], [0.497, [0.992, 0.998, 0.598]], [0.499, [0.992, 0.998, 0.598]], [0.501, [0.996, 0.995, 0.598]], [0.503, [0.996, 0.995, 0.598]], [0.505, [0.988, 0.985, 0.594]], [0.507, [0.988, 0.985, 0.594]], [0.509, [0.980, 0.975, 0.589]], [0.511, [0.980, 0.975, 0.589]], [0.513, [0.973, 0.965, 0.585]], [0.515, [0.973, 0.965, 0.585]], [0.517, [0.965, 0.955, 0.581]], [0.519, [0.965, 0.955, 0.581]], [0.521, [0.957, 0.945, 0.577]], [0.523, [0.957, 0.945, 0.577]], [0.524, [0.949, 0.935, 0.572]], [0.526, [0.949, 0.935, 0.572]], [0.528, [0.941, 0.925, 0.568]], [0.530, [0.941, 0.925, 0.568]], [0.532, [0.933, 0.915, 0.564]], [0.534, [0.933, 0.915, 0.564]], [0.536, [0.925, 0.905, 0.560]], [0.538, [0.925, 0.905, 0.560]], [0.540, [0.918, 0.895, 0.556]], [0.542, [0.918, 0.895, 0.556]], [0.544, [0.910, 0.885, 0.551]], [0.546, [0.910, 0.885, 0.551]], [0.548, [0.902, 0.875, 0.547]], [0.550, [0.902, 0.875, 0.547]], [0.552, [0.894, 0.864, 0.543]], [0.554, [0.894, 0.864, 0.543]], [0.556, [0.886, 0.854, 0.539]], [0.558, [0.886, 0.854, 0.539]], [0.560, [0.878, 0.844, 0.534]], [0.562, [0.878, 0.844, 0.534]], [0.564, [0.871, 0.834, 0.530]], [0.566, [0.871, 0.834, 0.530]], [0.568, [0.863, 0.824, 0.526]], [0.569, [0.863, 0.824, 0.526]], [0.571, [0.855, 0.814, 0.522]], [0.573, [0.855, 0.814, 0.522]], [0.575, [0.847, 0.804, 0.517]], [0.577, [0.847, 0.804, 0.517]], [0.579, [0.839, 0.794, 0.513]], [0.581, [0.839, 0.794, 0.513]], [0.583, [0.831, 0.784, 0.509]], [0.585, [0.831, 0.784, 0.509]], [0.587, [0.824, 0.774, 0.505]], [0.589, [0.824, 0.774, 0.505]], [0.591, [0.816, 0.764, 0.500]], [0.593, [0.816, 0.764, 0.500]], [0.595, [0.808, 0.754, 0.496]], [0.597, [0.808, 0.754, 0.496]], [0.599, [0.800, 0.744, 0.492]], [0.601, [0.800, 0.744, 0.492]], [0.603, [0.792, 0.734, 0.488]], [0.605, [0.792, 0.734, 0.488]], [0.607, [0.784, 0.724, 0.484]], [0.609, [0.784, 0.724, 0.484]], [0.611, [0.776, 0.714, 0.479]], [0.613, [0.776, 0.714, 0.479]], [0.614, [0.769, 0.704, 0.475]], [0.616, [0.769, 0.704, 0.475]], [0.618, [0.761, 0.694, 0.471]], [0.620, [0.761, 0.694, 0.471]], [0.622, [0.753, 0.684, 0.467]], [0.624, [0.753, 0.684, 0.467]], [0.626, [0.745, 0.674, 0.462]], [0.628, [0.745, 0.674, 0.462]], [0.630, [0.737, 0.664, 0.458]], [0.632, [0.737, 0.664, 0.458]], [0.634, [0.729, 0.654, 0.454]], [0.636, [0.729, 0.654, 0.454]], [0.638, [0.722, 0.644, 0.450]], [0.640, [0.722, 0.644, 0.450]], [0.642, [0.714, 0.634, 0.445]], [0.644, [0.714, 0.634, 0.445]], [0.646, [0.706, 0.624, 0.441]], [0.648, [0.706, 0.624, 0.441]], [0.650, [0.698, 0.613, 0.437]], [0.652, [0.698, 0.613, 0.437]], [0.654, [0.690, 0.603, 0.433]], [0.656, [0.690, 0.603, 0.433]], [0.658, [0.682, 0.593, 0.428]], [0.659, [0.682, 0.593, 0.428]], [0.661, [0.675, 0.583, 0.424]], [0.663, [0.675, 0.583, 0.424]], [0.665, [0.667, 0.573, 0.420]], [0.667, [0.667, 0.573, 0.420]], [0.669, [0.659, 0.563, 0.416]], [0.671, [0.659, 0.563, 0.416]], [0.673, [0.651, 0.553, 0.412]], [0.675, [0.651, 0.553, 0.412]], [0.677, [0.643, 0.543, 0.407]], [0.679, [0.643, 0.543, 0.407]], [0.681, [0.635, 0.533, 0.403]], [0.683, [0.635, 0.533, 0.403]], [0.685, [0.627, 0.523, 0.399]], [0.687, [0.627, 0.523, 0.399]], [0.689, [0.620, 0.513, 0.395]], [0.691, [0.620, 0.513, 0.395]], [0.693, [0.612, 0.503, 0.390]], [0.695, [0.612, 0.503, 0.390]], [0.697, [0.604, 0.493, 0.386]], [0.699, [0.604, 0.493, 0.386]], [0.701, [0.596, 0.483, 0.382]], [0.703, [0.596, 0.483, 0.382]], [0.705, [0.588, 0.473, 0.378]], [0.706, [0.588, 0.473, 0.378]], [0.708, [0.580, 0.463, 0.373]], [0.710, [0.580, 0.463, 0.373]], [0.712, [0.573, 0.453, 0.369]], [0.714, [0.573, 0.453, 0.369]], [0.716, [0.565, 0.443, 0.365]], [0.718, [0.565, 0.443, 0.365]], [0.720, [0.557, 0.433, 0.361]], [0.722, [0.557, 0.433, 0.361]], [0.724, [0.549, 0.423, 0.356]], [0.726, [0.549, 0.423, 0.356]], [0.728, [0.541, 0.413, 0.352]], [0.730, [0.541, 0.413, 0.352]], [0.732, [0.533, 0.403, 0.348]], [0.734, [0.533, 0.403, 0.348]], [0.736, [0.525, 0.393, 0.344]], [0.738, [0.525, 0.393, 0.344]], [0.740, [0.518, 0.383, 0.340]], [0.742, [0.518, 0.383, 0.340]], [0.744, [0.510, 0.373, 0.335]], [0.746, [0.510, 0.373, 0.335]], [0.748, [0.502, 0.363, 0.331]], [0.750, [0.502, 0.363, 0.331]], [0.751, [0.506, 0.368, 0.338]], [0.753, [0.506, 0.368, 0.338]], [0.755, [0.514, 0.378, 0.348]], [0.757, [0.514, 0.378, 0.348]], [0.759, [0.522, 0.388, 0.359]], [0.761, [0.522, 0.388, 0.359]], [0.763, [0.529, 0.398, 0.369]], [0.765, [0.529, 0.398, 0.369]], [0.767, [0.537, 0.408, 0.380]], [0.769, [0.537, 0.408, 0.380]], [0.771, [0.545, 0.418, 0.390]], [0.773, [0.545, 0.418, 0.390]], [0.775, [0.553, 0.428, 0.401]], [0.777, [0.553, 0.428, 0.401]], [0.779, [0.561, 0.438, 0.411]], [0.781, [0.561, 0.438, 0.411]], [0.783, [0.569, 0.448, 0.422]], [0.785, [0.569, 0.448, 0.422]], [0.787, [0.576, 0.458, 0.432]], [0.789, [0.576, 0.458, 0.432]], [0.791, [0.584, 0.468, 0.443]], [0.793, [0.584, 0.468, 0.443]], [0.795, [0.592, 0.478, 0.453]], [0.796, [0.592, 0.478, 0.453]], [0.798, [0.600, 0.488, 0.464]], [0.800, [0.600, 0.488, 0.464]], [0.802, [0.608, 0.498, 0.475]], [0.804, [0.608, 0.498, 0.475]], [0.806, [0.616, 0.508, 0.485]], [0.808, [0.616, 0.508, 0.485]], [0.810, [0.624, 0.518, 0.496]], [0.812, [0.624, 0.518, 0.496]], [0.814, [0.631, 0.528, 0.506]], [0.816, [0.631, 0.528, 0.506]], [0.818, [0.639, 0.538, 0.517]], [0.820, [0.639, 0.538, 0.517]], [0.822, [0.647, 0.548, 0.527]], [0.824, [0.647, 0.548, 0.527]], [0.826, [0.655, 0.558, 0.538]], [0.828, [0.655, 0.558, 0.538]], [0.830, [0.663, 0.568, 0.548]], [0.832, [0.663, 0.568, 0.548]], [0.834, [0.671, 0.578, 0.559]], [0.836, [0.671, 0.578, 0.559]], [0.838, [0.678, 0.588, 0.569]], [0.840, [0.678, 0.588, 0.569]], [0.841, [0.686, 0.598, 0.580]], [0.843, [0.686, 0.598, 0.580]], [0.845, [0.694, 0.608, 0.590]], [0.847, [0.694, 0.608, 0.590]], [0.849, [0.702, 0.619, 0.601]], [0.851, [0.702, 0.619, 0.601]], [0.853, [0.710, 0.629, 0.611]], [0.855, [0.710, 0.629, 0.611]], [0.857, [0.718, 0.639, 0.622]], [0.859, [0.718, 0.639, 0.622]], [0.861, [0.725, 0.649, 0.632]], [0.863, [0.725, 0.649, 0.632]], [0.865, [0.733, 0.659, 0.643]], [0.867, [0.733, 0.659, 0.643]], [0.869, [0.741, 0.669, 0.653]], [0.871, [0.741, 0.669, 0.653]], [0.873, [0.749, 0.679, 0.664]], [0.875, [0.749, 0.679, 0.664]], [0.877, [0.757, 0.689, 0.674]], [0.879, [0.757, 0.689, 0.674]], [0.881, [0.765, 0.699, 0.685]], [0.883, [0.765, 0.699, 0.685]], [0.885, [0.773, 0.709, 0.695]], [0.886, [0.773, 0.709, 0.695]], [0.888, [0.780, 0.719, 0.706]], [0.890, [0.780, 0.719, 0.706]], [0.892, [0.788, 0.729, 0.716]], [0.894, [0.788, 0.729, 0.716]], [0.896, [0.796, 0.739, 0.727]], [0.898, [0.796, 0.739, 0.727]], [0.900, [0.804, 0.749, 0.737]], [0.902, [0.804, 0.749, 0.737]], [0.904, [0.812, 0.759, 0.748]], [0.906, [0.812, 0.759, 0.748]], [0.908, [0.820, 0.769, 0.758]], [0.910, [0.820, 0.769, 0.758]], [0.912, [0.827, 0.779, 0.769]], [0.914, [0.827, 0.779, 0.769]], [0.916, [0.835, 0.789, 0.779]], [0.918, [0.835, 0.789, 0.779]], [0.920, [0.843, 0.799, 0.790]], [0.922, [0.843, 0.799, 0.790]], [0.924, [0.851, 0.809, 0.800]], [0.926, [0.851, 0.809, 0.800]], [0.928, [0.859, 0.819, 0.811]], [0.930, [0.859, 0.819, 0.811]], [0.932, [0.867, 0.829, 0.821]], [0.933, [0.867, 0.829, 0.821]], [0.935, [0.875, 0.839, 0.832]], [0.937, [0.875, 0.839, 0.832]], [0.939, [0.882, 0.849, 0.842]], [0.941, [0.882, 0.849, 0.842]], [0.943, [0.890, 0.859, 0.853]], [0.945, [0.890, 0.859, 0.853]], [0.947, [0.898, 0.869, 0.863]], [0.949, [0.898, 0.869, 0.863]], [0.951, [0.906, 0.880, 0.874]], [0.953, [0.906, 0.880, 0.874]], [0.955, [0.914, 0.890, 0.884]], [0.957, [0.914, 0.890, 0.884]], [0.959, [0.922, 0.900, 0.895]], [0.961, [0.922, 0.900, 0.895]], [0.963, [0.929, 0.910, 0.905]], [0.965, [0.929, 0.910, 0.905]], [0.967, [0.937, 0.920, 0.916]], [0.969, [0.937, 0.920, 0.916]], [0.971, [0.945, 0.930, 0.926]], [0.973, [0.945, 0.930, 0.926]], [0.975, [0.953, 0.940, 0.937]], [0.977, [0.953, 0.940, 0.937]], [0.978, [0.961, 0.950, 0.947]], [0.980, [0.961, 0.950, 0.947]], [0.982, [0.969, 0.960, 0.958]], [0.984, [0.969, 0.960, 0.958]], [0.986, [0.976, 0.970, 0.968]], [0.988, [0.976, 0.970, 0.968]], [0.990, [0.984, 0.980, 0.979]], [0.992, [0.984, 0.980, 0.979]], [0.994, [0.992, 0.990, 0.989]], [0.996, [0.992, 0.990, 0.989]], [0.998, [1.000, 1.000, 1.000]], [1.000, [1.000, 1.000, 1.000]]];
+
diff --git a/01_Code/physical_computing_interface/simulation/lib/overview.html b/01_Code/physical_computing_interface/simulation/lib/overview.html
new file mode 100644
index 0000000000000000000000000000000000000000..086e977569e637fd81099bcbde4f12ae2b5ee624
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/lib/overview.html
@@ -0,0 +1,150 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+    <title>js-colormaps: Overview</title>
+
+    <link rel="stylesheet" type="text/css" href="styles.css">
+    
+    <script type="text/javascript" src="js-colormaps.js"></script>
+    
+    <script>
+        function appendHTMLbyID(id, text) {
+            old_html = document.getElementById(id).innerHTML;
+            document.getElementById(id).innerHTML = old_html+text;
+        }
+
+        function enforceBounds(x) {
+            if (x < 0) {
+                return 0;
+            } else if (x > 1){
+                return 1;
+            } else {
+                return x;
+            }
+        }
+
+        function interpolateLinearly(x, values) {
+
+            // Split values into four lists
+            var x_values = [];
+            var r_values = [];
+            var g_values = [];
+            var b_values = [];
+            for (i in values) {
+                x_values.push(values[i][0]);
+                r_values.push(values[i][1][0]);
+                g_values.push(values[i][1][1]);
+                b_values.push(values[i][1][2]);
+            }
+
+            var i = 1;
+            while (x_values[i] < x) {
+                i = i+1;
+            }
+            i = i-1;
+
+            var width = Math.abs(x_values[i] - x_values[i+1]);
+            var scaling_factor = (x - x_values[i]) / width;
+
+            // Get the new color values though interpolation
+            var r = r_values[i] + scaling_factor * (r_values[i+1] - r_values[i])
+            var g = g_values[i] + scaling_factor * (g_values[i+1] - g_values[i])
+            var b = b_values[i] + scaling_factor * (b_values[i+1] - b_values[i])
+
+            return [enforceBounds(r), enforceBounds(g), enforceBounds(b)];
+
+        }
+
+        function drawColormap(CanvasID, colormap) {
+        
+            var c = document.getElementById(CanvasID);
+            var ctx = c.getContext("2d");
+
+            for (i = 0; i <= 1024; i++) {
+                var color = interpolateLinearly(i/1024, colormap);
+                r = Math.round(255*color[0]);
+                g = Math.round(255*color[1]);
+                b = Math.round(255*color[2]);
+                ctx.fillStyle = 'rgb('+r+', '+g+', '+b+')';
+                ctx.fillRect(i, 0, 1, 50);
+            }
+        }
+        
+        function drawColormapTable(TableID) {
+
+            var Sequential    = ['Blues', 'BuGn', 'BuPu',
+                                 'GnBu', 'Greens', 'Greys', 'Oranges', 'OrRd',
+                                 'PuBu', 'PuBuGn', 'PuRd', 'Purples', 'RdPu',
+                                 'Reds', 'YlGn', 'YlGnBu', 'YlOrBr', 'YlOrRd'];
+            var Sequential2   = ['afmhot', 'autumn', 'bone', 'cool', 'copper',
+                                 'gist_heat', 'gray', 'hot', 'pink',
+                                 'spring', 'summer', 'winter'];
+            var Diverging     = ['BrBG', 'bwr', 'coolwarm', 'PiYG', 'PRGn', 'PuOr',
+                                 'RdBu', 'RdGy', 'RdYlBu', 'RdYlGn', 'Spectral',
+                                 'seismic'];
+            var Qualitative   = ['Accent', 'Dark2', 'Paired', 'Pastel1',
+                                 'Pastel2', 'Set1', 'Set2', 'Set3'];
+            var Miscellaneous = ['gist_earth', 'terrain', 'ocean', 'gist_stern',
+                                 'brg', 'CMRmap', 'cubehelix', 'gnuplot', 
+                                 'gnuplot2', 'gist_ncar', 'nipy_spectral', 
+                                 'jet', 'rainbow', 'gist_rainbow', 'hsv', 
+                                 'flag', 'prism']
+
+            if (TableID == 'Sequential') {
+                var cm_type = Sequential;
+            } else if (TableID == 'Sequential2') {
+                var cm_type = Sequential2;
+            } else if (TableID == 'Diverging') {
+                var cm_type = Diverging;
+            } else if (TableID == 'Qualitative') {
+                var cm_type = Qualitative;
+            } else {
+                var cm_type = Miscellaneous;
+            }
+
+            for (i in cm_type) {
+                var cmap = cm_type[i];
+                appendHTMLbyID(TableID, '<tr><td>'+cmap+'</td><td><canvas id="'+cmap+'" width="1024" height="50"></canvas></td></tr>');
+            }
+            for (i in cm_type) {
+                var cmap = cm_type[i];
+                drawColormap(cmap, window[cmap]);
+            }
+        }
+    </script>
+</head>
+
+<body>
+
+<h2>Sequential</h2>
+<table id='Sequential'>
+</table>
+
+<h2>Sequential (2)</h2>
+<table id='Sequential2'>
+</table>
+
+<h2>Diverging</h2>
+<table id='Diverging'>
+</table>
+
+<h2>Qualitative</h2>
+<table id='Qualitative'>
+</table>
+
+<h2>Miscellaneous</h2>
+<table id='Miscellaneous'>
+</table>
+
+
+<script>
+    drawColormapTable('Sequential');
+    drawColormapTable('Sequential2');
+    drawColormapTable('Diverging');
+    drawColormapTable('Qualitative');
+    drawColormapTable('Miscellaneous');
+</script>
+
+</body>
+</html>
diff --git a/01_Code/physical_computing_interface/simulation/lib/require.js b/01_Code/physical_computing_interface/simulation/lib/require.js
new file mode 100644
index 0000000000000000000000000000000000000000..a4203f0d06ccc719923cd24b5b20b8076c1b494d
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/lib/require.js
@@ -0,0 +1,5 @@
+/** vim: et:ts=4:sw=4:sts=4
+ * @license RequireJS 2.3.6 Copyright jQuery Foundation and other contributors.
+ * Released under MIT license, https://github.com/requirejs/requirejs/blob/master/LICENSE
+ */
+var requirejs,require,define;!function(global,setTimeout){var req,s,head,baseElement,dataMain,src,interactiveScript,currentlyAddingScript,mainScript,subPath,version="2.3.6",commentRegExp=/\/\*[\s\S]*?\*\/|([^:"'=]|^)\/\/.*$/gm,cjsRequireRegExp=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,jsSuffixRegExp=/\.js$/,currDirRegExp=/^\.\//,op=Object.prototype,ostring=op.toString,hasOwn=op.hasOwnProperty,isBrowser=!("undefined"==typeof window||"undefined"==typeof navigator||!window.document),isWebWorker=!isBrowser&&"undefined"!=typeof importScripts,readyRegExp=isBrowser&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,defContextName="_",isOpera="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),contexts={},cfg={},globalDefQueue=[],useInteractive=!1;function commentReplace(e,t){return t||""}function isFunction(e){return"[object Function]"===ostring.call(e)}function isArray(e){return"[object Array]"===ostring.call(e)}function each(e,t){var i;if(e)for(i=0;i<e.length&&(!e[i]||!t(e[i],i,e));i+=1);}function eachReverse(e,t){var i;if(e)for(i=e.length-1;-1<i&&(!e[i]||!t(e[i],i,e));i-=1);}function hasProp(e,t){return hasOwn.call(e,t)}function getOwn(e,t){return hasProp(e,t)&&e[t]}function eachProp(e,t){var i;for(i in e)if(hasProp(e,i)&&t(e[i],i))break}function mixin(i,e,r,n){return e&&eachProp(e,function(e,t){!r&&hasProp(i,t)||(!n||"object"!=typeof e||!e||isArray(e)||isFunction(e)||e instanceof RegExp?i[t]=e:(i[t]||(i[t]={}),mixin(i[t],e,r,n)))}),i}function bind(e,t){return function(){return t.apply(e,arguments)}}function scripts(){return document.getElementsByTagName("script")}function defaultOnError(e){throw e}function getGlobal(e){if(!e)return e;var t=global;return each(e.split("."),function(e){t=t[e]}),t}function makeError(e,t,i,r){var n=new Error(t+"\nhttps://requirejs.org/docs/errors.html#"+e);return n.requireType=e,n.requireModules=r,i&&(n.originalError=i),n}if(void 0===define){if(void 0!==requirejs){if(isFunction(requirejs))return;cfg=requirejs,requirejs=void 0}void 0===require||isFunction(require)||(cfg=require,require=void 0),req=requirejs=function(e,t,i,r){var n,o,a=defContextName;return isArray(e)||"string"==typeof e||(o=e,isArray(t)?(e=t,t=i,i=r):e=[]),o&&o.context&&(a=o.context),(n=getOwn(contexts,a))||(n=contexts[a]=req.s.newContext(a)),o&&n.configure(o),n.require(e,t,i)},req.config=function(e){return req(e)},req.nextTick=void 0!==setTimeout?function(e){setTimeout(e,4)}:function(e){e()},require||(require=req),req.version=version,req.jsExtRegExp=/^\/|:|\?|\.js$/,req.isBrowser=isBrowser,s=req.s={contexts:contexts,newContext:newContext},req({}),each(["toUrl","undef","defined","specified"],function(t){req[t]=function(){var e=contexts[defContextName];return e.require[t].apply(e,arguments)}}),isBrowser&&(head=s.head=document.getElementsByTagName("head")[0],baseElement=document.getElementsByTagName("base")[0],baseElement&&(head=s.head=baseElement.parentNode)),req.onError=defaultOnError,req.createNode=function(e,t,i){var r=e.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");return r.type=e.scriptType||"text/javascript",r.charset="utf-8",r.async=!0,r},req.load=function(t,i,r){var e,n=t&&t.config||{};if(isBrowser)return(e=req.createNode(n,i,r)).setAttribute("data-requirecontext",t.contextName),e.setAttribute("data-requiremodule",i),!e.attachEvent||e.attachEvent.toString&&e.attachEvent.toString().indexOf("[native code")<0||isOpera?(e.addEventListener("load",t.onScriptLoad,!1),e.addEventListener("error",t.onScriptError,!1)):(useInteractive=!0,e.attachEvent("onreadystatechange",t.onScriptLoad)),e.src=r,n.onNodeCreated&&n.onNodeCreated(e,n,i,r),currentlyAddingScript=e,baseElement?head.insertBefore(e,baseElement):head.appendChild(e),currentlyAddingScript=null,e;if(isWebWorker)try{setTimeout(function(){},0),importScripts(r),t.completeLoad(i)}catch(e){t.onError(makeError("importscripts","importScripts failed for "+i+" at "+r,e,[i]))}},isBrowser&&!cfg.skipDataMain&&eachReverse(scripts(),function(e){if(head||(head=e.parentNode),dataMain=e.getAttribute("data-main"))return mainScript=dataMain,cfg.baseUrl||-1!==mainScript.indexOf("!")||(mainScript=(src=mainScript.split("/")).pop(),subPath=src.length?src.join("/")+"/":"./",cfg.baseUrl=subPath),mainScript=mainScript.replace(jsSuffixRegExp,""),req.jsExtRegExp.test(mainScript)&&(mainScript=dataMain),cfg.deps=cfg.deps?cfg.deps.concat(mainScript):[mainScript],!0}),define=function(e,i,t){var r,n;"string"!=typeof e&&(t=i,i=e,e=null),isArray(i)||(t=i,i=null),!i&&isFunction(t)&&(i=[],t.length&&(t.toString().replace(commentRegExp,commentReplace).replace(cjsRequireRegExp,function(e,t){i.push(t)}),i=(1===t.length?["require"]:["require","exports","module"]).concat(i))),useInteractive&&(r=currentlyAddingScript||getInteractiveScript())&&(e||(e=r.getAttribute("data-requiremodule")),n=contexts[r.getAttribute("data-requirecontext")]),n?(n.defQueue.push([e,i,t]),n.defQueueMap[e]=!0):globalDefQueue.push([e,i,t])},define.amd={jQuery:!0},req.exec=function(text){return eval(text)},req(cfg)}function newContext(u){var i,e,l,c,d,g={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},p={},f={},r={},h=[],m={},n={},v={},x=1,b=1;function q(e,t,i){var r,n,o,a,s,u,c,d,p,f,l=t&&t.split("/"),h=g.map,m=h&&h["*"];if(e&&(u=(e=e.split("/")).length-1,g.nodeIdCompat&&jsSuffixRegExp.test(e[u])&&(e[u]=e[u].replace(jsSuffixRegExp,"")),"."===e[0].charAt(0)&&l&&(e=l.slice(0,l.length-1).concat(e)),function(e){var t,i;for(t=0;t<e.length;t++)if("."===(i=e[t]))e.splice(t,1),t-=1;else if(".."===i){if(0===t||1===t&&".."===e[2]||".."===e[t-1])continue;0<t&&(e.splice(t-1,2),t-=2)}}(e),e=e.join("/")),i&&h&&(l||m)){e:for(o=(n=e.split("/")).length;0<o;o-=1){if(s=n.slice(0,o).join("/"),l)for(a=l.length;0<a;a-=1)if((r=getOwn(h,l.slice(0,a).join("/")))&&(r=getOwn(r,s))){c=r,d=o;break e}!p&&m&&getOwn(m,s)&&(p=getOwn(m,s),f=o)}!c&&p&&(c=p,d=f),c&&(n.splice(0,d,c),e=n.join("/"))}return getOwn(g.pkgs,e)||e}function E(t){isBrowser&&each(scripts(),function(e){if(e.getAttribute("data-requiremodule")===t&&e.getAttribute("data-requirecontext")===l.contextName)return e.parentNode.removeChild(e),!0})}function w(e){var t=getOwn(g.paths,e);if(t&&isArray(t)&&1<t.length)return t.shift(),l.require.undef(e),l.makeRequire(null,{skipMap:!0})([e]),!0}function y(e){var t,i=e?e.indexOf("!"):-1;return-1<i&&(t=e.substring(0,i),e=e.substring(i+1,e.length)),[t,e]}function S(e,t,i,r){var n,o,a,s,u=null,c=t?t.name:null,d=e,p=!0,f="";return e||(p=!1,e="_@r"+(x+=1)),u=(s=y(e))[0],e=s[1],u&&(u=q(u,c,r),o=getOwn(m,u)),e&&(u?f=i?e:o&&o.normalize?o.normalize(e,function(e){return q(e,c,r)}):-1===e.indexOf("!")?q(e,c,r):e:(u=(s=y(f=q(e,c,r)))[0],f=s[1],i=!0,n=l.nameToUrl(f))),{prefix:u,name:f,parentMap:t,unnormalized:!!(a=!u||o||i?"":"_unnormalized"+(b+=1)),url:n,originalName:d,isDefine:p,id:(u?u+"!"+f:f)+a}}function k(e){var t=e.id,i=getOwn(p,t);return i||(i=p[t]=new l.Module(e)),i}function M(e,t,i){var r=e.id,n=getOwn(p,r);!hasProp(m,r)||n&&!n.defineEmitComplete?(n=k(e)).error&&"error"===t?i(n.error):n.on(t,i):"defined"===t&&i(m[r])}function O(i,e){var t=i.requireModules,r=!1;e?e(i):(each(t,function(e){var t=getOwn(p,e);t&&(t.error=i,t.events.error&&(r=!0,t.emit("error",i)))}),r||req.onError(i))}function j(){globalDefQueue.length&&(each(globalDefQueue,function(e){var t=e[0];"string"==typeof t&&(l.defQueueMap[t]=!0),h.push(e)}),globalDefQueue=[])}function P(e){delete p[e],delete f[e]}function R(){var e,r,t=1e3*g.waitSeconds,n=t&&l.startTime+t<(new Date).getTime(),o=[],a=[],s=!1,u=!0;if(!i){if(i=!0,eachProp(f,function(e){var t=e.map,i=t.id;if(e.enabled&&(t.isDefine||a.push(e),!e.error))if(!e.inited&&n)w(i)?s=r=!0:(o.push(i),E(i));else if(!e.inited&&e.fetched&&t.isDefine&&(s=!0,!t.prefix))return u=!1}),n&&o.length)return(e=makeError("timeout","Load timeout for modules: "+o,null,o)).contextName=l.contextName,O(e);u&&each(a,function(e){!function n(o,a,s){var e=o.map.id;o.error?o.emit("error",o.error):(a[e]=!0,each(o.depMaps,function(e,t){var i=e.id,r=getOwn(p,i);!r||o.depMatched[t]||s[i]||(getOwn(a,i)?(o.defineDep(t,m[i]),o.check()):n(r,a,s))}),s[e]=!0)}(e,{},{})}),n&&!r||!s||!isBrowser&&!isWebWorker||d||(d=setTimeout(function(){d=0,R()},50)),i=!1}}function a(e){hasProp(m,e[0])||k(S(e[0],null,!0)).init(e[1],e[2])}function o(e,t,i,r){e.detachEvent&&!isOpera?r&&e.detachEvent(r,t):e.removeEventListener(i,t,!1)}function s(e){var t=e.currentTarget||e.srcElement;return o(t,l.onScriptLoad,"load","onreadystatechange"),o(t,l.onScriptError,"error"),{node:t,id:t&&t.getAttribute("data-requiremodule")}}function T(){var e;for(j();h.length;){if(null===(e=h.shift())[0])return O(makeError("mismatch","Mismatched anonymous define() module: "+e[e.length-1]));a(e)}l.defQueueMap={}}return c={require:function(e){return e.require?e.require:e.require=l.makeRequire(e.map)},exports:function(e){if(e.usingExports=!0,e.map.isDefine)return e.exports?m[e.map.id]=e.exports:e.exports=m[e.map.id]={}},module:function(e){return e.module?e.module:e.module={id:e.map.id,uri:e.map.url,config:function(){return getOwn(g.config,e.map.id)||{}},exports:e.exports||(e.exports={})}}},(e=function(e){this.events=getOwn(r,e.id)||{},this.map=e,this.shim=getOwn(g.shim,e.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0}).prototype={init:function(e,t,i,r){r=r||{},this.inited||(this.factory=t,i?this.on("error",i):this.events.error&&(i=bind(this,function(e){this.emit("error",e)})),this.depMaps=e&&e.slice(0),this.errback=i,this.inited=!0,this.ignore=r.ignore,r.enabled||this.enabled?this.enable():this.check())},defineDep:function(e,t){this.depMatched[e]||(this.depMatched[e]=!0,this.depCount-=1,this.depExports[e]=t)},fetch:function(){if(!this.fetched){this.fetched=!0,l.startTime=(new Date).getTime();var e=this.map;if(!this.shim)return e.prefix?this.callPlugin():this.load();l.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],bind(this,function(){return e.prefix?this.callPlugin():this.load()}))}},load:function(){var e=this.map.url;n[e]||(n[e]=!0,l.load(this.map.id,e))},check:function(){if(this.enabled&&!this.enabling){var t,e,i=this.map.id,r=this.depExports,n=this.exports,o=this.factory;if(this.inited){if(this.error)this.emit("error",this.error);else if(!this.defining){if(this.defining=!0,this.depCount<1&&!this.defined){if(isFunction(o)){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)try{n=l.execCb(i,o,r,n)}catch(e){t=e}else n=l.execCb(i,o,r,n);if(this.map.isDefine&&void 0===n&&((e=this.module)?n=e.exports:this.usingExports&&(n=this.exports)),t)return t.requireMap=this.map,t.requireModules=this.map.isDefine?[this.map.id]:null,t.requireType=this.map.isDefine?"define":"require",O(this.error=t)}else n=o;if(this.exports=n,this.map.isDefine&&!this.ignore&&(m[i]=n,req.onResourceLoad)){var a=[];each(this.depMaps,function(e){a.push(e.normalizedMap||e)}),req.onResourceLoad(l,this.map,a)}P(i),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else hasProp(l.defQueueMap,i)||this.fetch()}},callPlugin:function(){var u=this.map,c=u.id,e=S(u.prefix);this.depMaps.push(e),M(e,"defined",bind(this,function(e){var o,t,i,r=getOwn(v,this.map.id),n=this.map.name,a=this.map.parentMap?this.map.parentMap.name:null,s=l.makeRequire(u.parentMap,{enableBuildCallback:!0});return this.map.unnormalized?(e.normalize&&(n=e.normalize(n,function(e){return q(e,a,!0)})||""),M(t=S(u.prefix+"!"+n,this.map.parentMap,!0),"defined",bind(this,function(e){this.map.normalizedMap=t,this.init([],function(){return e},null,{enabled:!0,ignore:!0})})),void((i=getOwn(p,t.id))&&(this.depMaps.push(t),this.events.error&&i.on("error",bind(this,function(e){this.emit("error",e)})),i.enable()))):r?(this.map.url=l.nameToUrl(r),void this.load()):((o=bind(this,function(e){this.init([],function(){return e},null,{enabled:!0})})).error=bind(this,function(e){this.inited=!0,(this.error=e).requireModules=[c],eachProp(p,function(e){0===e.map.id.indexOf(c+"_unnormalized")&&P(e.map.id)}),O(e)}),o.fromText=bind(this,function(e,t){var i=u.name,r=S(i),n=useInteractive;t&&(e=t),n&&(useInteractive=!1),k(r),hasProp(g.config,c)&&(g.config[i]=g.config[c]);try{req.exec(e)}catch(e){return O(makeError("fromtexteval","fromText eval for "+c+" failed: "+e,e,[c]))}n&&(useInteractive=!0),this.depMaps.push(r),l.completeLoad(i),s([i],o)}),void e.load(u.name,s,o,g))})),l.enable(e,this),this.pluginMaps[e.id]=e},enable:function(){(f[this.map.id]=this).enabled=!0,this.enabling=!0,each(this.depMaps,bind(this,function(e,t){var i,r,n;if("string"==typeof e){if(e=S(e,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[t]=e,n=getOwn(c,e.id))return void(this.depExports[t]=n(this));this.depCount+=1,M(e,"defined",bind(this,function(e){this.undefed||(this.defineDep(t,e),this.check())})),this.errback?M(e,"error",bind(this,this.errback)):this.events.error&&M(e,"error",bind(this,function(e){this.emit("error",e)}))}i=e.id,r=p[i],hasProp(c,i)||!r||r.enabled||l.enable(e,this)})),eachProp(this.pluginMaps,bind(this,function(e){var t=getOwn(p,e.id);t&&!t.enabled&&l.enable(e,this)})),this.enabling=!1,this.check()},on:function(e,t){var i=this.events[e];i||(i=this.events[e]=[]),i.push(t)},emit:function(e,t){each(this.events[e],function(e){e(t)}),"error"===e&&delete this.events[e]}},(l={config:g,contextName:u,registry:p,defined:m,urlFetched:n,defQueue:h,defQueueMap:{},Module:e,makeModuleMap:S,nextTick:req.nextTick,onError:O,configure:function(e){if(e.baseUrl&&"/"!==e.baseUrl.charAt(e.baseUrl.length-1)&&(e.baseUrl+="/"),"string"==typeof e.urlArgs){var i=e.urlArgs;e.urlArgs=function(e,t){return(-1===t.indexOf("?")?"?":"&")+i}}var r=g.shim,n={paths:!0,bundles:!0,config:!0,map:!0};eachProp(e,function(e,t){n[t]?(g[t]||(g[t]={}),mixin(g[t],e,!0,!0)):g[t]=e}),e.bundles&&eachProp(e.bundles,function(e,t){each(e,function(e){e!==t&&(v[e]=t)})}),e.shim&&(eachProp(e.shim,function(e,t){isArray(e)&&(e={deps:e}),!e.exports&&!e.init||e.exportsFn||(e.exportsFn=l.makeShimExports(e)),r[t]=e}),g.shim=r),e.packages&&each(e.packages,function(e){var t;t=(e="string"==typeof e?{name:e}:e).name,e.location&&(g.paths[t]=e.location),g.pkgs[t]=e.name+"/"+(e.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}),eachProp(p,function(e,t){e.inited||e.map.unnormalized||(e.map=S(t,null,!0))}),(e.deps||e.callback)&&l.require(e.deps||[],e.callback)},makeShimExports:function(t){return function(){var e;return t.init&&(e=t.init.apply(global,arguments)),e||t.exports&&getGlobal(t.exports)}},makeRequire:function(o,a){function s(e,t,i){var r,n;return a.enableBuildCallback&&t&&isFunction(t)&&(t.__requireJsBuild=!0),"string"==typeof e?isFunction(t)?O(makeError("requireargs","Invalid require call"),i):o&&hasProp(c,e)?c[e](p[o.id]):req.get?req.get(l,e,o,s):(r=S(e,o,!1,!0).id,hasProp(m,r)?m[r]:O(makeError("notloaded",'Module name "'+r+'" has not been loaded yet for context: '+u+(o?"":". Use require([])")))):(T(),l.nextTick(function(){T(),(n=k(S(null,o))).skipMap=a.skipMap,n.init(e,t,i,{enabled:!0}),R()}),s)}return a=a||{},mixin(s,{isBrowser:isBrowser,toUrl:function(e){var t,i=e.lastIndexOf("."),r=e.split("/")[0];return-1!==i&&(!("."===r||".."===r)||1<i)&&(t=e.substring(i,e.length),e=e.substring(0,i)),l.nameToUrl(q(e,o&&o.id,!0),t,!0)},defined:function(e){return hasProp(m,S(e,o,!1,!0).id)},specified:function(e){return e=S(e,o,!1,!0).id,hasProp(m,e)||hasProp(p,e)}}),o||(s.undef=function(i){j();var e=S(i,o,!0),t=getOwn(p,i);t.undefed=!0,E(i),delete m[i],delete n[e.url],delete r[i],eachReverse(h,function(e,t){e[0]===i&&h.splice(t,1)}),delete l.defQueueMap[i],t&&(t.events.defined&&(r[i]=t.events),P(i))}),s},enable:function(e){getOwn(p,e.id)&&k(e).enable()},completeLoad:function(e){var t,i,r,n=getOwn(g.shim,e)||{},o=n.exports;for(j();h.length;){if(null===(i=h.shift())[0]){if(i[0]=e,t)break;t=!0}else i[0]===e&&(t=!0);a(i)}if(l.defQueueMap={},r=getOwn(p,e),!t&&!hasProp(m,e)&&r&&!r.inited){if(!(!g.enforceDefine||o&&getGlobal(o)))return w(e)?void 0:O(makeError("nodefine","No define call for "+e,null,[e]));a([e,n.deps||[],n.exportsFn])}R()},nameToUrl:function(e,t,i){var r,n,o,a,s,u,c=getOwn(g.pkgs,e);if(c&&(e=c),u=getOwn(v,e))return l.nameToUrl(u,t,i);if(req.jsExtRegExp.test(e))a=e+(t||"");else{for(r=g.paths,o=(n=e.split("/")).length;0<o;o-=1)if(s=getOwn(r,n.slice(0,o).join("/"))){isArray(s)&&(s=s[0]),n.splice(0,o,s);break}a=n.join("/"),a=("/"===(a+=t||(/^data\:|^blob\:|\?/.test(a)||i?"":".js")).charAt(0)||a.match(/^[\w\+\.\-]+:/)?"":g.baseUrl)+a}return g.urlArgs&&!/^blob\:/.test(a)?a+g.urlArgs(e,a):a},load:function(e,t){req.load(l,e,t)},execCb:function(e,t,i,r){return t.apply(r,i)},onScriptLoad:function(e){if("load"===e.type||readyRegExp.test((e.currentTarget||e.srcElement).readyState)){interactiveScript=null;var t=s(e);l.completeLoad(t.id)}},onScriptError:function(e){var i=s(e);if(!w(i.id)){var r=[];return eachProp(p,function(e,t){0!==t.indexOf("_@r")&&each(e.depMaps,function(e){if(e.id===i.id)return r.push(t),!0})}),O(makeError("scripterror",'Script error for "'+i.id+(r.length?'", needed by: '+r.join(", "):'"'),e,[i.id]))}}}).require=l.makeRequire(),l}function getInteractiveScript(){return interactiveScript&&"interactive"===interactiveScript.readyState||eachReverse(scripts(),function(e){if("interactive"===e.readyState)return interactiveScript=e}),interactiveScript}}(this,"undefined"==typeof setTimeout?void 0:setTimeout);
\ No newline at end of file
diff --git a/01_Code/physical_computing_interface/simulation/lib/rhino3dm.js b/01_Code/physical_computing_interface/simulation/lib/rhino3dm.js
new file mode 100644
index 0000000000000000000000000000000000000000..6d756919b6c37fcffe6e1d5f7350d83b51f02e92
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/lib/rhino3dm.js
@@ -0,0 +1,8704 @@
+
+var rhino3dm = (function() {
+  var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;
+  return (
+function(rhino3dm) {
+  rhino3dm = rhino3dm || {};
+
+// Copyright 2010 The Emscripten Authors.  All rights reserved.
+// Emscripten is available under two separate licenses, the MIT license and the
+// University of Illinois/NCSA Open Source License.  Both these licenses can be
+// found in the LICENSE file.
+
+// The Module object: Our interface to the outside world. We import
+// and export values on it. There are various ways Module can be used:
+// 1. Not defined. We create it here
+// 2. A function parameter, function(Module) { ..generated code.. }
+// 3. pre-run appended it, var Module = {}; ..generated code..
+// 4. External script tag defines var Module.
+// We need to check if Module already exists (e.g. case 3 above).
+// Substitution will be replaced with actual code on later stage of the build,
+// this way Closure Compiler will not mangle it (e.g. case 4. above).
+// Note that if you want to run closure, and also to use Module
+// after the generated code, you will need to define   var Module = {};
+// before the code. Then that object will be used in the code, and you
+// can continue to use Module afterwards as well.
+var Module = typeof rhino3dm !== 'undefined' ? rhino3dm : {};
+
+// --pre-jses are emitted after the Module integration code, so that they can
+// refer to Module (if they choose; they can also define Module)
+// {{PRE_JSES}}
+
+// Sometimes an existing Module object exists with properties
+// meant to overwrite the default module functionality. Here
+// we collect those properties and reapply _after_ we configure
+// the current environment's defaults to avoid having to be so
+// defensive during initialization.
+var moduleOverrides = {};
+var key;
+for (key in Module) {
+  if (Module.hasOwnProperty(key)) {
+    moduleOverrides[key] = Module[key];
+  }
+}
+
+var arguments_ = [];
+var thisProgram = './this.program';
+var quit_ = function(status, toThrow) {
+  throw toThrow;
+};
+
+// Determine the runtime environment we are in. You can customize this by
+// setting the ENVIRONMENT setting at compile time (see settings.js).
+
+var ENVIRONMENT_IS_WEB = false;
+var ENVIRONMENT_IS_WORKER = false;
+var ENVIRONMENT_IS_NODE = false;
+var ENVIRONMENT_HAS_NODE = false;
+var ENVIRONMENT_IS_SHELL = false;
+ENVIRONMENT_IS_WEB = typeof window === 'object';
+ENVIRONMENT_IS_WORKER = typeof importScripts === 'function';
+// A web environment like Electron.js can have Node enabled, so we must
+// distinguish between Node-enabled environments and Node environments per se.
+// This will allow the former to do things like mount NODEFS.
+// Extended check using process.versions fixes issue #8816.
+// (Also makes redundant the original check that 'require' is a function.)
+ENVIRONMENT_HAS_NODE = typeof process === 'object' && typeof process.versions === 'object' && typeof process.versions.node === 'string';
+ENVIRONMENT_IS_NODE = ENVIRONMENT_HAS_NODE && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER;
+ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;
+
+if (Module['ENVIRONMENT']) {
+  throw new Error('Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)');
+}
+
+
+
+// `/` should be present at the end if `scriptDirectory` is not empty
+var scriptDirectory = '';
+function locateFile(path) {
+  if (Module['locateFile']) {
+    return Module['locateFile'](path, scriptDirectory);
+  }
+  return scriptDirectory + path;
+}
+
+// Hooks that are implemented differently in different runtime environments.
+var read_,
+    readAsync,
+    readBinary,
+    setWindowTitle;
+
+if (ENVIRONMENT_IS_NODE) {
+  scriptDirectory = __dirname + '/';
+
+  // Expose functionality in the same simple way that the shells work
+  // Note that we pollute the global namespace here, otherwise we break in node
+  var nodeFS;
+  var nodePath;
+
+  read_ = function shell_read(filename, binary) {
+    var ret;
+      if (!nodeFS) nodeFS = require('fs');
+      if (!nodePath) nodePath = require('path');
+      filename = nodePath['normalize'](filename);
+      ret = nodeFS['readFileSync'](filename);
+    return binary ? ret : ret.toString();
+  };
+
+  readBinary = function readBinary(filename) {
+    var ret = read_(filename, true);
+    if (!ret.buffer) {
+      ret = new Uint8Array(ret);
+    }
+    assert(ret.buffer);
+    return ret;
+  };
+
+  if (process['argv'].length > 1) {
+    thisProgram = process['argv'][1].replace(/\\/g, '/');
+  }
+
+  arguments_ = process['argv'].slice(2);
+
+  // MODULARIZE will export the module in the proper place outside, we don't need to export here
+
+  process['on']('uncaughtException', function(ex) {
+    // suppress ExitStatus exceptions from showing an error
+    if (!(ex instanceof ExitStatus)) {
+      throw ex;
+    }
+  });
+
+  process['on']('unhandledRejection', abort);
+
+  quit_ = function(status) {
+    process['exit'](status);
+  };
+
+  Module['inspect'] = function () { return '[Emscripten Module object]'; };
+} else
+if (ENVIRONMENT_IS_SHELL) {
+
+
+  if (typeof read != 'undefined') {
+    read_ = function shell_read(f) {
+      return read(f);
+    };
+  }
+
+  readBinary = function readBinary(f) {
+    var data;
+    if (typeof readbuffer === 'function') {
+      return new Uint8Array(readbuffer(f));
+    }
+    data = read(f, 'binary');
+    assert(typeof data === 'object');
+    return data;
+  };
+
+  if (typeof scriptArgs != 'undefined') {
+    arguments_ = scriptArgs;
+  } else if (typeof arguments != 'undefined') {
+    arguments_ = arguments;
+  }
+
+  if (typeof quit === 'function') {
+    quit_ = function(status) {
+      quit(status);
+    };
+  }
+
+  if (typeof print !== 'undefined') {
+    // Prefer to use print/printErr where they exist, as they usually work better.
+    if (typeof console === 'undefined') console = {};
+    console.log = print;
+    console.warn = console.error = typeof printErr !== 'undefined' ? printErr : print;
+  }
+} else
+if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
+  if (ENVIRONMENT_IS_WORKER) { // Check worker, not web, since window could be polyfilled
+    scriptDirectory = self.location.href;
+  } else if (document.currentScript) { // web
+    scriptDirectory = document.currentScript.src;
+  }
+  // When MODULARIZE (and not _INSTANCE), this JS may be executed later, after document.currentScript
+  // is gone, so we saved it, and we use it here instead of any other info.
+  if (_scriptDir) {
+    scriptDirectory = _scriptDir;
+  }
+  // blob urls look like blob:http://site.com/etc/etc and we cannot infer anything from them.
+  // otherwise, slice off the final part of the url to find the script directory.
+  // if scriptDirectory does not contain a slash, lastIndexOf will return -1,
+  // and scriptDirectory will correctly be replaced with an empty string.
+  if (scriptDirectory.indexOf('blob:') !== 0) {
+    scriptDirectory = scriptDirectory.substr(0, scriptDirectory.lastIndexOf('/')+1);
+  } else {
+    scriptDirectory = '';
+  }
+
+
+  read_ = function shell_read(url) {
+      var xhr = new XMLHttpRequest();
+      xhr.open('GET', url, false);
+      xhr.send(null);
+      return xhr.responseText;
+  };
+
+  if (ENVIRONMENT_IS_WORKER) {
+    readBinary = function readBinary(url) {
+        var xhr = new XMLHttpRequest();
+        xhr.open('GET', url, false);
+        xhr.responseType = 'arraybuffer';
+        xhr.send(null);
+        return new Uint8Array(xhr.response);
+    };
+  }
+
+  readAsync = function readAsync(url, onload, onerror) {
+    var xhr = new XMLHttpRequest();
+    xhr.open('GET', url, true);
+    xhr.responseType = 'arraybuffer';
+    xhr.onload = function xhr_onload() {
+      if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0
+        onload(xhr.response);
+        return;
+      }
+      onerror();
+    };
+    xhr.onerror = onerror;
+    xhr.send(null);
+  };
+
+  setWindowTitle = function(title) { document.title = title };
+} else
+{
+  throw new Error('environment detection error');
+}
+
+// Set up the out() and err() hooks, which are how we can print to stdout or
+// stderr, respectively.
+var out = Module['print'] || console.log.bind(console);
+var err = Module['printErr'] || console.warn.bind(console);
+
+// Merge back in the overrides
+for (key in moduleOverrides) {
+  if (moduleOverrides.hasOwnProperty(key)) {
+    Module[key] = moduleOverrides[key];
+  }
+}
+// Free the object hierarchy contained in the overrides, this lets the GC
+// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array.
+moduleOverrides = null;
+
+// Emit code to handle expected values on the Module object. This applies Module.x
+// to the proper local x. This has two benefits: first, we only emit it if it is
+// expected to arrive, and second, by using a local everywhere else that can be
+// minified.
+if (Module['arguments']) arguments_ = Module['arguments'];if (!Object.getOwnPropertyDescriptor(Module, 'arguments')) Object.defineProperty(Module, 'arguments', { configurable: true, get: function() { abort('Module.arguments has been replaced with plain arguments_') } });
+if (Module['thisProgram']) thisProgram = Module['thisProgram'];if (!Object.getOwnPropertyDescriptor(Module, 'thisProgram')) Object.defineProperty(Module, 'thisProgram', { configurable: true, get: function() { abort('Module.thisProgram has been replaced with plain thisProgram') } });
+if (Module['quit']) quit_ = Module['quit'];if (!Object.getOwnPropertyDescriptor(Module, 'quit')) Object.defineProperty(Module, 'quit', { configurable: true, get: function() { abort('Module.quit has been replaced with plain quit_') } });
+
+// perform assertions in shell.js after we set up out() and err(), as otherwise if an assertion fails it cannot print the message
+// Assertions on removed incoming Module JS APIs.
+assert(typeof Module['memoryInitializerPrefixURL'] === 'undefined', 'Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead');
+assert(typeof Module['pthreadMainPrefixURL'] === 'undefined', 'Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead');
+assert(typeof Module['cdInitializerPrefixURL'] === 'undefined', 'Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead');
+assert(typeof Module['filePackagePrefixURL'] === 'undefined', 'Module.filePackagePrefixURL option was removed, use Module.locateFile instead');
+assert(typeof Module['read'] === 'undefined', 'Module.read option was removed (modify read_ in JS)');
+assert(typeof Module['readAsync'] === 'undefined', 'Module.readAsync option was removed (modify readAsync in JS)');
+assert(typeof Module['readBinary'] === 'undefined', 'Module.readBinary option was removed (modify readBinary in JS)');
+assert(typeof Module['setWindowTitle'] === 'undefined', 'Module.setWindowTitle option was removed (modify setWindowTitle in JS)');
+if (!Object.getOwnPropertyDescriptor(Module, 'read')) Object.defineProperty(Module, 'read', { configurable: true, get: function() { abort('Module.read has been replaced with plain read_') } });
+if (!Object.getOwnPropertyDescriptor(Module, 'readAsync')) Object.defineProperty(Module, 'readAsync', { configurable: true, get: function() { abort('Module.readAsync has been replaced with plain readAsync') } });
+if (!Object.getOwnPropertyDescriptor(Module, 'readBinary')) Object.defineProperty(Module, 'readBinary', { configurable: true, get: function() { abort('Module.readBinary has been replaced with plain readBinary') } });
+// TODO: add when SDL2 is fixed if (!Object.getOwnPropertyDescriptor(Module, 'setWindowTitle')) Object.defineProperty(Module, 'setWindowTitle', { configurable: true, get: function() { abort('Module.setWindowTitle has been replaced with plain setWindowTitle') } });
+
+
+// TODO remove when SDL2 is fixed (also see above)
+
+
+
+// Copyright 2017 The Emscripten Authors.  All rights reserved.
+// Emscripten is available under two separate licenses, the MIT license and the
+// University of Illinois/NCSA Open Source License.  Both these licenses can be
+// found in the LICENSE file.
+
+// {{PREAMBLE_ADDITIONS}}
+
+var STACK_ALIGN = 16;
+
+// stack management, and other functionality that is provided by the compiled code,
+// should not be used before it is ready
+stackSave = stackRestore = stackAlloc = function() {
+  abort('cannot use the stack before compiled code is ready to run, and has provided stack access');
+};
+
+function staticAlloc(size) {
+  abort('staticAlloc is no longer available at runtime; instead, perform static allocations at compile time (using makeStaticAlloc)');
+}
+
+function dynamicAlloc(size) {
+  assert(DYNAMICTOP_PTR);
+  var ret = HEAP32[DYNAMICTOP_PTR>>2];
+  var end = (ret + size + 15) & -16;
+  if (end > _emscripten_get_heap_size()) {
+    abort('failure to dynamicAlloc - memory growth etc. is not supported there, call malloc/sbrk directly');
+  }
+  HEAP32[DYNAMICTOP_PTR>>2] = end;
+  return ret;
+}
+
+function alignMemory(size, factor) {
+  if (!factor) factor = STACK_ALIGN; // stack alignment (16-byte) by default
+  return Math.ceil(size / factor) * factor;
+}
+
+function getNativeTypeSize(type) {
+  switch (type) {
+    case 'i1': case 'i8': return 1;
+    case 'i16': return 2;
+    case 'i32': return 4;
+    case 'i64': return 8;
+    case 'float': return 4;
+    case 'double': return 8;
+    default: {
+      if (type[type.length-1] === '*') {
+        return 4; // A pointer
+      } else if (type[0] === 'i') {
+        var bits = parseInt(type.substr(1));
+        assert(bits % 8 === 0, 'getNativeTypeSize invalid bits ' + bits + ', type ' + type);
+        return bits / 8;
+      } else {
+        return 0;
+      }
+    }
+  }
+}
+
+function warnOnce(text) {
+  if (!warnOnce.shown) warnOnce.shown = {};
+  if (!warnOnce.shown[text]) {
+    warnOnce.shown[text] = 1;
+    err(text);
+  }
+}
+
+var asm2wasmImports = { // special asm2wasm imports
+    "f64-rem": function(x, y) {
+        return x % y;
+    },
+    "debugger": function() {
+        debugger;
+    }
+};
+
+
+
+var jsCallStartIndex = 1;
+var functionPointers = new Array(0);
+
+// Wraps a JS function as a wasm function with a given signature.
+// In the future, we may get a WebAssembly.Function constructor. Until then,
+// we create a wasm module that takes the JS function as an import with a given
+// signature, and re-exports that as a wasm function.
+function convertJsFunctionToWasm(func, sig) {
+
+  // The module is static, with the exception of the type section, which is
+  // generated based on the signature passed in.
+  var typeSection = [
+    0x01, // id: section,
+    0x00, // length: 0 (placeholder)
+    0x01, // count: 1
+    0x60, // form: func
+  ];
+  var sigRet = sig.slice(0, 1);
+  var sigParam = sig.slice(1);
+  var typeCodes = {
+    'i': 0x7f, // i32
+    'j': 0x7e, // i64
+    'f': 0x7d, // f32
+    'd': 0x7c, // f64
+  };
+
+  // Parameters, length + signatures
+  typeSection.push(sigParam.length);
+  for (var i = 0; i < sigParam.length; ++i) {
+    typeSection.push(typeCodes[sigParam[i]]);
+  }
+
+  // Return values, length + signatures
+  // With no multi-return in MVP, either 0 (void) or 1 (anything else)
+  if (sigRet == 'v') {
+    typeSection.push(0x00);
+  } else {
+    typeSection = typeSection.concat([0x01, typeCodes[sigRet]]);
+  }
+
+  // Write the overall length of the type section back into the section header
+  // (excepting the 2 bytes for the section id and length)
+  typeSection[1] = typeSection.length - 2;
+
+  // Rest of the module is static
+  var bytes = new Uint8Array([
+    0x00, 0x61, 0x73, 0x6d, // magic ("\0asm")
+    0x01, 0x00, 0x00, 0x00, // version: 1
+  ].concat(typeSection, [
+    0x02, 0x07, // import section
+      // (import "e" "f" (func 0 (type 0)))
+      0x01, 0x01, 0x65, 0x01, 0x66, 0x00, 0x00,
+    0x07, 0x05, // export section
+      // (export "f" (func 0 (type 0)))
+      0x01, 0x01, 0x66, 0x00, 0x00,
+  ]));
+
+   // We can compile this wasm module synchronously because it is very small.
+  // This accepts an import (at "e.f"), that it reroutes to an export (at "f")
+  var module = new WebAssembly.Module(bytes);
+  var instance = new WebAssembly.Instance(module, {
+    e: {
+      f: func
+    }
+  });
+  var wrappedFunc = instance.exports.f;
+  return wrappedFunc;
+}
+
+// Add a wasm function to the table.
+function addFunctionWasm(func, sig) {
+  var table = wasmTable;
+  var ret = table.length;
+
+  // Grow the table
+  try {
+    table.grow(1);
+  } catch (err) {
+    if (!err instanceof RangeError) {
+      throw err;
+    }
+    throw 'Unable to grow wasm table. Use a higher value for RESERVED_FUNCTION_POINTERS or set ALLOW_TABLE_GROWTH.';
+  }
+
+  // Insert new element
+  try {
+    // Attempting to call this with JS function will cause of table.set() to fail
+    table.set(ret, func);
+  } catch (err) {
+    if (!err instanceof TypeError) {
+      throw err;
+    }
+    assert(typeof sig !== 'undefined', 'Missing signature argument to addFunction');
+    var wrapped = convertJsFunctionToWasm(func, sig);
+    table.set(ret, wrapped);
+  }
+
+  return ret;
+}
+
+function removeFunctionWasm(index) {
+  // TODO(sbc): Look into implementing this to allow re-using of table slots
+}
+
+// 'sig' parameter is required for the llvm backend but only when func is not
+// already a WebAssembly function.
+function addFunction(func, sig) {
+  assert(typeof func !== 'undefined');
+
+
+  var base = 0;
+  for (var i = base; i < base + 0; i++) {
+    if (!functionPointers[i]) {
+      functionPointers[i] = func;
+      return jsCallStartIndex + i;
+    }
+  }
+  throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.';
+
+}
+
+function removeFunction(index) {
+
+  functionPointers[index-jsCallStartIndex] = null;
+}
+
+var funcWrappers = {};
+
+function getFuncWrapper(func, sig) {
+  if (!func) return; // on null pointer, return undefined
+  assert(sig);
+  if (!funcWrappers[sig]) {
+    funcWrappers[sig] = {};
+  }
+  var sigCache = funcWrappers[sig];
+  if (!sigCache[func]) {
+    // optimize away arguments usage in common cases
+    if (sig.length === 1) {
+      sigCache[func] = function dynCall_wrapper() {
+        return dynCall(sig, func);
+      };
+    } else if (sig.length === 2) {
+      sigCache[func] = function dynCall_wrapper(arg) {
+        return dynCall(sig, func, [arg]);
+      };
+    } else {
+      // general case
+      sigCache[func] = function dynCall_wrapper() {
+        return dynCall(sig, func, Array.prototype.slice.call(arguments));
+      };
+    }
+  }
+  return sigCache[func];
+}
+
+
+function makeBigInt(low, high, unsigned) {
+  return unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0));
+}
+
+function dynCall(sig, ptr, args) {
+  if (args && args.length) {
+    assert(args.length == sig.length-1);
+    assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\'');
+    return Module['dynCall_' + sig].apply(null, [ptr].concat(args));
+  } else {
+    assert(sig.length == 1);
+    assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\'');
+    return Module['dynCall_' + sig].call(null, ptr);
+  }
+}
+
+var tempRet0 = 0;
+
+var setTempRet0 = function(value) {
+  tempRet0 = value;
+};
+
+var getTempRet0 = function() {
+  return tempRet0;
+};
+
+function getCompilerSetting(name) {
+  throw 'You must build with -s RETAIN_COMPILER_SETTINGS=1 for getCompilerSetting or emscripten_get_compiler_setting to work';
+}
+
+var Runtime = {
+  // helpful errors
+  getTempRet0: function() { abort('getTempRet0() is now a top-level function, after removing the Runtime object. Remove "Runtime."') },
+  staticAlloc: function() { abort('staticAlloc() is now a top-level function, after removing the Runtime object. Remove "Runtime."') },
+  stackAlloc: function() { abort('stackAlloc() is now a top-level function, after removing the Runtime object. Remove "Runtime."') },
+};
+
+// The address globals begin at. Very low in memory, for code size and optimization opportunities.
+// Above 0 is static memory, starting with globals.
+// Then the stack.
+// Then 'dynamic' memory for sbrk.
+var GLOBAL_BASE = 1024;
+
+
+
+
+// === Preamble library stuff ===
+
+// Documentation for the public APIs defined in this file must be updated in:
+//    site/source/docs/api_reference/preamble.js.rst
+// A prebuilt local version of the documentation is available at:
+//    site/build/text/docs/api_reference/preamble.js.txt
+// You can also build docs locally as HTML or other formats in site/
+// An online HTML version (which may be of a different version of Emscripten)
+//    is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html
+
+
+var wasmBinary;if (Module['wasmBinary']) wasmBinary = Module['wasmBinary'];if (!Object.getOwnPropertyDescriptor(Module, 'wasmBinary')) Object.defineProperty(Module, 'wasmBinary', { configurable: true, get: function() { abort('Module.wasmBinary has been replaced with plain wasmBinary') } });
+var noExitRuntime;if (Module['noExitRuntime']) noExitRuntime = Module['noExitRuntime'];if (!Object.getOwnPropertyDescriptor(Module, 'noExitRuntime')) Object.defineProperty(Module, 'noExitRuntime', { configurable: true, get: function() { abort('Module.noExitRuntime has been replaced with plain noExitRuntime') } });
+
+
+if (typeof WebAssembly !== 'object') {
+  abort('No WebAssembly support found. Build with -s WASM=0 to target JavaScript instead.');
+}
+
+
+// In MINIMAL_RUNTIME, setValue() and getValue() are only available when building with safe heap enabled, for heap safety checking.
+// In traditional runtime, setValue() and getValue() are always available (although their use is highly discouraged due to perf penalties)
+
+/** @type {function(number, number, string, boolean=)} */
+function setValue(ptr, value, type, noSafe) {
+  type = type || 'i8';
+  if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit
+    switch(type) {
+      case 'i1': HEAP8[((ptr)>>0)]=value; break;
+      case 'i8': HEAP8[((ptr)>>0)]=value; break;
+      case 'i16': HEAP16[((ptr)>>1)]=value; break;
+      case 'i32': HEAP32[((ptr)>>2)]=value; break;
+      case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break;
+      case 'float': HEAPF32[((ptr)>>2)]=value; break;
+      case 'double': HEAPF64[((ptr)>>3)]=value; break;
+      default: abort('invalid type for setValue: ' + type);
+    }
+}
+
+/** @type {function(number, string, boolean=)} */
+function getValue(ptr, type, noSafe) {
+  type = type || 'i8';
+  if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit
+    switch(type) {
+      case 'i1': return HEAP8[((ptr)>>0)];
+      case 'i8': return HEAP8[((ptr)>>0)];
+      case 'i16': return HEAP16[((ptr)>>1)];
+      case 'i32': return HEAP32[((ptr)>>2)];
+      case 'i64': return HEAP32[((ptr)>>2)];
+      case 'float': return HEAPF32[((ptr)>>2)];
+      case 'double': return HEAPF64[((ptr)>>3)];
+      default: abort('invalid type for getValue: ' + type);
+    }
+  return null;
+}
+
+
+
+
+
+// Wasm globals
+
+var wasmMemory;
+
+// In fastcomp asm.js, we don't need a wasm Table at all.
+// In the wasm backend, we polyfill the WebAssembly object,
+// so this creates a (non-native-wasm) table for us.
+var wasmTable = new WebAssembly.Table({
+  'initial': 464128,
+  'maximum': 464128,
+  'element': 'anyfunc'
+});
+
+
+//========================================
+// Runtime essentials
+//========================================
+
+// whether we are quitting the application. no code should run after this.
+// set in exit() and abort()
+var ABORT = false;
+
+// set by exit() and abort().  Passed to 'onExit' handler.
+// NOTE: This is also used as the process return code code in shell environments
+// but only when noExitRuntime is false.
+var EXITSTATUS = 0;
+
+/** @type {function(*, string=)} */
+function assert(condition, text) {
+  if (!condition) {
+    abort('Assertion failed: ' + text);
+  }
+}
+
+// Returns the C function with a specified identifier (for C++, you need to do manual name mangling)
+function getCFunc(ident) {
+  var func = Module['_' + ident]; // closure exported function
+  assert(func, 'Cannot call unknown function ' + ident + ', make sure it is exported');
+  return func;
+}
+
+// C calling interface.
+function ccall(ident, returnType, argTypes, args, opts) {
+  // For fast lookup of conversion functions
+  var toC = {
+    'string': function(str) {
+      var ret = 0;
+      if (str !== null && str !== undefined && str !== 0) { // null string
+        // at most 4 bytes per UTF-8 code point, +1 for the trailing '\0'
+        var len = (str.length << 2) + 1;
+        ret = stackAlloc(len);
+        stringToUTF8(str, ret, len);
+      }
+      return ret;
+    },
+    'array': function(arr) {
+      var ret = stackAlloc(arr.length);
+      writeArrayToMemory(arr, ret);
+      return ret;
+    }
+  };
+
+  function convertReturnValue(ret) {
+    if (returnType === 'string') return UTF8ToString(ret);
+    if (returnType === 'boolean') return Boolean(ret);
+    return ret;
+  }
+
+  var func = getCFunc(ident);
+  var cArgs = [];
+  var stack = 0;
+  assert(returnType !== 'array', 'Return type should not be "array".');
+  if (args) {
+    for (var i = 0; i < args.length; i++) {
+      var converter = toC[argTypes[i]];
+      if (converter) {
+        if (stack === 0) stack = stackSave();
+        cArgs[i] = converter(args[i]);
+      } else {
+        cArgs[i] = args[i];
+      }
+    }
+  }
+  var ret = func.apply(null, cArgs);
+
+  ret = convertReturnValue(ret);
+  if (stack !== 0) stackRestore(stack);
+  return ret;
+}
+
+function cwrap(ident, returnType, argTypes, opts) {
+  return function() {
+    return ccall(ident, returnType, argTypes, arguments, opts);
+  }
+}
+
+var ALLOC_NORMAL = 0; // Tries to use _malloc()
+var ALLOC_STACK = 1; // Lives for the duration of the current function call
+var ALLOC_DYNAMIC = 2; // Cannot be freed except through sbrk
+var ALLOC_NONE = 3; // Do not allocate
+
+// allocate(): This is for internal use. You can use it yourself as well, but the interface
+//             is a little tricky (see docs right below). The reason is that it is optimized
+//             for multiple syntaxes to save space in generated code. So you should
+//             normally not use allocate(), and instead allocate memory using _malloc(),
+//             initialize it with setValue(), and so forth.
+// @slab: An array of data, or a number. If a number, then the size of the block to allocate,
+//        in *bytes* (note that this is sometimes confusing: the next parameter does not
+//        affect this!)
+// @types: Either an array of types, one for each byte (or 0 if no type at that position),
+//         or a single type which is used for the entire block. This only matters if there
+//         is initial data - if @slab is a number, then this does not matter at all and is
+//         ignored.
+// @allocator: How to allocate memory, see ALLOC_*
+/** @type {function((TypedArray|Array<number>|number), string, number, number=)} */
+function allocate(slab, types, allocator, ptr) {
+  var zeroinit, size;
+  if (typeof slab === 'number') {
+    zeroinit = true;
+    size = slab;
+  } else {
+    zeroinit = false;
+    size = slab.length;
+  }
+
+  var singleType = typeof types === 'string' ? types : null;
+
+  var ret;
+  if (allocator == ALLOC_NONE) {
+    ret = ptr;
+  } else {
+    ret = [_malloc,
+    stackAlloc,
+    dynamicAlloc][allocator](Math.max(size, singleType ? 1 : types.length));
+  }
+
+  if (zeroinit) {
+    var stop;
+    ptr = ret;
+    assert((ret & 3) == 0);
+    stop = ret + (size & ~3);
+    for (; ptr < stop; ptr += 4) {
+      HEAP32[((ptr)>>2)]=0;
+    }
+    stop = ret + size;
+    while (ptr < stop) {
+      HEAP8[((ptr++)>>0)]=0;
+    }
+    return ret;
+  }
+
+  if (singleType === 'i8') {
+    if (slab.subarray || slab.slice) {
+      HEAPU8.set(/** @type {!Uint8Array} */ (slab), ret);
+    } else {
+      HEAPU8.set(new Uint8Array(slab), ret);
+    }
+    return ret;
+  }
+
+  var i = 0, type, typeSize, previousType;
+  while (i < size) {
+    var curr = slab[i];
+
+    type = singleType || types[i];
+    if (type === 0) {
+      i++;
+      continue;
+    }
+    assert(type, 'Must know what type to store in allocate!');
+
+    if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later
+
+    setValue(ret+i, curr, type);
+
+    // no need to look up size unless type changes, so cache it
+    if (previousType !== type) {
+      typeSize = getNativeTypeSize(type);
+      previousType = type;
+    }
+    i += typeSize;
+  }
+
+  return ret;
+}
+
+// Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready
+function getMemory(size) {
+  if (!runtimeInitialized) return dynamicAlloc(size);
+  return _malloc(size);
+}
+
+
+
+
+/** @type {function(number, number=)} */
+function Pointer_stringify(ptr, length) {
+  abort("this function has been removed - you should use UTF8ToString(ptr, maxBytesToRead) instead!");
+}
+
+// Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns
+// a copy of that string as a Javascript String object.
+
+function AsciiToString(ptr) {
+  var str = '';
+  while (1) {
+    var ch = HEAPU8[((ptr++)>>0)];
+    if (!ch) return str;
+    str += String.fromCharCode(ch);
+  }
+}
+
+// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
+// null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP.
+
+function stringToAscii(str, outPtr) {
+  return writeAsciiToMemory(str, outPtr, false);
+}
+
+
+// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the given array that contains uint8 values, returns
+// a copy of that string as a Javascript String object.
+
+var UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined;
+
+/**
+ * @param {number} idx
+ * @param {number=} maxBytesToRead
+ * @return {string}
+ */
+function UTF8ArrayToString(u8Array, idx, maxBytesToRead) {
+  var endIdx = idx + maxBytesToRead;
+  var endPtr = idx;
+  // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself.
+  // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage.
+  // (As a tiny code save trick, compare endPtr against endIdx using a negation, so that undefined means Infinity)
+  while (u8Array[endPtr] && !(endPtr >= endIdx)) ++endPtr;
+
+  if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) {
+    return UTF8Decoder.decode(u8Array.subarray(idx, endPtr));
+  } else {
+    var str = '';
+    // If building with TextDecoder, we have already computed the string length above, so test loop end condition against that
+    while (idx < endPtr) {
+      // For UTF8 byte structure, see:
+      // http://en.wikipedia.org/wiki/UTF-8#Description
+      // https://www.ietf.org/rfc/rfc2279.txt
+      // https://tools.ietf.org/html/rfc3629
+      var u0 = u8Array[idx++];
+      if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; }
+      var u1 = u8Array[idx++] & 63;
+      if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; }
+      var u2 = u8Array[idx++] & 63;
+      if ((u0 & 0xF0) == 0xE0) {
+        u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;
+      } else {
+        if ((u0 & 0xF8) != 0xF0) warnOnce('Invalid UTF-8 leading byte 0x' + u0.toString(16) + ' encountered when deserializing a UTF-8 string on the asm.js/wasm heap to a JS string!');
+        u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (u8Array[idx++] & 63);
+      }
+
+      if (u0 < 0x10000) {
+        str += String.fromCharCode(u0);
+      } else {
+        var ch = u0 - 0x10000;
+        str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));
+      }
+    }
+  }
+  return str;
+}
+
+// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the emscripten HEAP, returns a
+// copy of that string as a Javascript String object.
+// maxBytesToRead: an optional length that specifies the maximum number of bytes to read. You can omit
+//                 this parameter to scan the string until the first \0 byte. If maxBytesToRead is
+//                 passed, and the string at [ptr, ptr+maxBytesToReadr[ contains a null byte in the
+//                 middle, then the string will cut short at that byte index (i.e. maxBytesToRead will
+//                 not produce a string of exact length [ptr, ptr+maxBytesToRead[)
+//                 N.B. mixing frequent uses of UTF8ToString() with and without maxBytesToRead may
+//                 throw JS JIT optimizations off, so it is worth to consider consistently using one
+//                 style or the other.
+/**
+ * @param {number} ptr
+ * @param {number=} maxBytesToRead
+ * @return {string}
+ */
+function UTF8ToString(ptr, maxBytesToRead) {
+  return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : '';
+}
+
+// Copies the given Javascript String object 'str' to the given byte array at address 'outIdx',
+// encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP.
+// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write.
+// Parameters:
+//   str: the Javascript string to copy.
+//   outU8Array: the array to copy to. Each index in this array is assumed to be one 8-byte element.
+//   outIdx: The starting offset in the array to begin the copying.
+//   maxBytesToWrite: The maximum number of bytes this function can write to the array.
+//                    This count should include the null terminator,
+//                    i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else.
+//                    maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator.
+// Returns the number of bytes written, EXCLUDING the null terminator.
+
+function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) {
+  if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes.
+    return 0;
+
+  var startIdx = outIdx;
+  var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator.
+  for (var i = 0; i < str.length; ++i) {
+    // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8.
+    // See http://unicode.org/faq/utf_bom.html#utf16-3
+    // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629
+    var u = str.charCodeAt(i); // possibly a lead surrogate
+    if (u >= 0xD800 && u <= 0xDFFF) {
+      var u1 = str.charCodeAt(++i);
+      u = 0x10000 + ((u & 0x3FF) << 10) | (u1 & 0x3FF);
+    }
+    if (u <= 0x7F) {
+      if (outIdx >= endIdx) break;
+      outU8Array[outIdx++] = u;
+    } else if (u <= 0x7FF) {
+      if (outIdx + 1 >= endIdx) break;
+      outU8Array[outIdx++] = 0xC0 | (u >> 6);
+      outU8Array[outIdx++] = 0x80 | (u & 63);
+    } else if (u <= 0xFFFF) {
+      if (outIdx + 2 >= endIdx) break;
+      outU8Array[outIdx++] = 0xE0 | (u >> 12);
+      outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);
+      outU8Array[outIdx++] = 0x80 | (u & 63);
+    } else {
+      if (outIdx + 3 >= endIdx) break;
+      if (u >= 0x200000) warnOnce('Invalid Unicode code point 0x' + u.toString(16) + ' encountered when serializing a JS string to an UTF-8 string on the asm.js/wasm heap! (Valid unicode code points should be in range 0-0x1FFFFF).');
+      outU8Array[outIdx++] = 0xF0 | (u >> 18);
+      outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);
+      outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);
+      outU8Array[outIdx++] = 0x80 | (u & 63);
+    }
+  }
+  // Null-terminate the pointer to the buffer.
+  outU8Array[outIdx] = 0;
+  return outIdx - startIdx;
+}
+
+// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
+// null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP.
+// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write.
+// Returns the number of bytes written, EXCLUDING the null terminator.
+
+function stringToUTF8(str, outPtr, maxBytesToWrite) {
+  assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!');
+  return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite);
+}
+
+// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte.
+function lengthBytesUTF8(str) {
+  var len = 0;
+  for (var i = 0; i < str.length; ++i) {
+    // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8.
+    // See http://unicode.org/faq/utf_bom.html#utf16-3
+    var u = str.charCodeAt(i); // possibly a lead surrogate
+    if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF);
+    if (u <= 0x7F) ++len;
+    else if (u <= 0x7FF) len += 2;
+    else if (u <= 0xFFFF) len += 3;
+    else len += 4;
+  }
+  return len;
+}
+
+
+// Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns
+// a copy of that string as a Javascript String object.
+
+var UTF16Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined;
+function UTF16ToString(ptr) {
+  assert(ptr % 2 == 0, 'Pointer passed to UTF16ToString must be aligned to two bytes!');
+  var endPtr = ptr;
+  // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself.
+  // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage.
+  var idx = endPtr >> 1;
+  while (HEAP16[idx]) ++idx;
+  endPtr = idx << 1;
+
+  if (endPtr - ptr > 32 && UTF16Decoder) {
+    return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr));
+  } else {
+    var i = 0;
+
+    var str = '';
+    while (1) {
+      var codeUnit = HEAP16[(((ptr)+(i*2))>>1)];
+      if (codeUnit == 0) return str;
+      ++i;
+      // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through.
+      str += String.fromCharCode(codeUnit);
+    }
+  }
+}
+
+// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
+// null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP.
+// Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write.
+// Parameters:
+//   str: the Javascript string to copy.
+//   outPtr: Byte address in Emscripten HEAP where to write the string to.
+//   maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null
+//                    terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else.
+//                    maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator.
+// Returns the number of bytes written, EXCLUDING the null terminator.
+
+function stringToUTF16(str, outPtr, maxBytesToWrite) {
+  assert(outPtr % 2 == 0, 'Pointer passed to stringToUTF16 must be aligned to two bytes!');
+  assert(typeof maxBytesToWrite == 'number', 'stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!');
+  // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.
+  if (maxBytesToWrite === undefined) {
+    maxBytesToWrite = 0x7FFFFFFF;
+  }
+  if (maxBytesToWrite < 2) return 0;
+  maxBytesToWrite -= 2; // Null terminator.
+  var startPtr = outPtr;
+  var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length;
+  for (var i = 0; i < numCharsToWrite; ++i) {
+    // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP.
+    var codeUnit = str.charCodeAt(i); // possibly a lead surrogate
+    HEAP16[((outPtr)>>1)]=codeUnit;
+    outPtr += 2;
+  }
+  // Null-terminate the pointer to the HEAP.
+  HEAP16[((outPtr)>>1)]=0;
+  return outPtr - startPtr;
+}
+
+// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte.
+
+function lengthBytesUTF16(str) {
+  return str.length*2;
+}
+
+function UTF32ToString(ptr) {
+  assert(ptr % 4 == 0, 'Pointer passed to UTF32ToString must be aligned to four bytes!');
+  var i = 0;
+
+  var str = '';
+  while (1) {
+    var utf32 = HEAP32[(((ptr)+(i*4))>>2)];
+    if (utf32 == 0)
+      return str;
+    ++i;
+    // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing.
+    // See http://unicode.org/faq/utf_bom.html#utf16-3
+    if (utf32 >= 0x10000) {
+      var ch = utf32 - 0x10000;
+      str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));
+    } else {
+      str += String.fromCharCode(utf32);
+    }
+  }
+}
+
+// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
+// null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP.
+// Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write.
+// Parameters:
+//   str: the Javascript string to copy.
+//   outPtr: Byte address in Emscripten HEAP where to write the string to.
+//   maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null
+//                    terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else.
+//                    maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator.
+// Returns the number of bytes written, EXCLUDING the null terminator.
+
+function stringToUTF32(str, outPtr, maxBytesToWrite) {
+  assert(outPtr % 4 == 0, 'Pointer passed to stringToUTF32 must be aligned to four bytes!');
+  assert(typeof maxBytesToWrite == 'number', 'stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!');
+  // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.
+  if (maxBytesToWrite === undefined) {
+    maxBytesToWrite = 0x7FFFFFFF;
+  }
+  if (maxBytesToWrite < 4) return 0;
+  var startPtr = outPtr;
+  var endPtr = startPtr + maxBytesToWrite - 4;
+  for (var i = 0; i < str.length; ++i) {
+    // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.
+    // See http://unicode.org/faq/utf_bom.html#utf16-3
+    var codeUnit = str.charCodeAt(i); // possibly a lead surrogate
+    if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) {
+      var trailSurrogate = str.charCodeAt(++i);
+      codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF);
+    }
+    HEAP32[((outPtr)>>2)]=codeUnit;
+    outPtr += 4;
+    if (outPtr + 4 > endPtr) break;
+  }
+  // Null-terminate the pointer to the HEAP.
+  HEAP32[((outPtr)>>2)]=0;
+  return outPtr - startPtr;
+}
+
+// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte.
+
+function lengthBytesUTF32(str) {
+  var len = 0;
+  for (var i = 0; i < str.length; ++i) {
+    // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.
+    // See http://unicode.org/faq/utf_bom.html#utf16-3
+    var codeUnit = str.charCodeAt(i);
+    if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate.
+    len += 4;
+  }
+
+  return len;
+}
+
+// Allocate heap space for a JS string, and write it there.
+// It is the responsibility of the caller to free() that memory.
+function allocateUTF8(str) {
+  var size = lengthBytesUTF8(str) + 1;
+  var ret = _malloc(size);
+  if (ret) stringToUTF8Array(str, HEAP8, ret, size);
+  return ret;
+}
+
+// Allocate stack space for a JS string, and write it there.
+function allocateUTF8OnStack(str) {
+  var size = lengthBytesUTF8(str) + 1;
+  var ret = stackAlloc(size);
+  stringToUTF8Array(str, HEAP8, ret, size);
+  return ret;
+}
+
+// Deprecated: This function should not be called because it is unsafe and does not provide
+// a maximum length limit of how many bytes it is allowed to write. Prefer calling the
+// function stringToUTF8Array() instead, which takes in a maximum length that can be used
+// to be secure from out of bounds writes.
+/** @deprecated */
+function writeStringToMemory(string, buffer, dontAddNull) {
+  warnOnce('writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!');
+
+  var /** @type {number} */ lastChar, /** @type {number} */ end;
+  if (dontAddNull) {
+    // stringToUTF8Array always appends null. If we don't want to do that, remember the
+    // character that existed at the location where the null will be placed, and restore
+    // that after the write (below).
+    end = buffer + lengthBytesUTF8(string);
+    lastChar = HEAP8[end];
+  }
+  stringToUTF8(string, buffer, Infinity);
+  if (dontAddNull) HEAP8[end] = lastChar; // Restore the value under the null character.
+}
+
+function writeArrayToMemory(array, buffer) {
+  assert(array.length >= 0, 'writeArrayToMemory array must have a length (should be an array or typed array)')
+  HEAP8.set(array, buffer);
+}
+
+function writeAsciiToMemory(str, buffer, dontAddNull) {
+  for (var i = 0; i < str.length; ++i) {
+    assert(str.charCodeAt(i) === str.charCodeAt(i)&0xff);
+    HEAP8[((buffer++)>>0)]=str.charCodeAt(i);
+  }
+  // Null-terminate the pointer to the HEAP.
+  if (!dontAddNull) HEAP8[((buffer)>>0)]=0;
+}
+
+
+
+
+// Memory management
+
+var PAGE_SIZE = 16384;
+var WASM_PAGE_SIZE = 65536;
+var ASMJS_PAGE_SIZE = 16777216;
+
+function alignUp(x, multiple) {
+  if (x % multiple > 0) {
+    x += multiple - (x % multiple);
+  }
+  return x;
+}
+
+var HEAP,
+/** @type {ArrayBuffer} */
+  buffer,
+/** @type {Int8Array} */
+  HEAP8,
+/** @type {Uint8Array} */
+  HEAPU8,
+/** @type {Int16Array} */
+  HEAP16,
+/** @type {Uint16Array} */
+  HEAPU16,
+/** @type {Int32Array} */
+  HEAP32,
+/** @type {Uint32Array} */
+  HEAPU32,
+/** @type {Float32Array} */
+  HEAPF32,
+/** @type {Float64Array} */
+  HEAPF64;
+
+function updateGlobalBufferAndViews(buf) {
+  buffer = buf;
+  Module['HEAP8'] = HEAP8 = new Int8Array(buf);
+  Module['HEAP16'] = HEAP16 = new Int16Array(buf);
+  Module['HEAP32'] = HEAP32 = new Int32Array(buf);
+  Module['HEAPU8'] = HEAPU8 = new Uint8Array(buf);
+  Module['HEAPU16'] = HEAPU16 = new Uint16Array(buf);
+  Module['HEAPU32'] = HEAPU32 = new Uint32Array(buf);
+  Module['HEAPF32'] = HEAPF32 = new Float32Array(buf);
+  Module['HEAPF64'] = HEAPF64 = new Float64Array(buf);
+}
+
+var STATIC_BASE = 1024,
+    STACK_BASE = 306704,
+    STACKTOP = STACK_BASE,
+    STACK_MAX = 5549584,
+    DYNAMIC_BASE = 5549584,
+    DYNAMICTOP_PTR = 306512;
+
+assert(STACK_BASE % 16 === 0, 'stack must start aligned');
+assert(DYNAMIC_BASE % 16 === 0, 'heap must start aligned');
+
+
+
+var TOTAL_STACK = 5242880;
+if (Module['TOTAL_STACK']) assert(TOTAL_STACK === Module['TOTAL_STACK'], 'the stack size can no longer be determined at runtime')
+
+var INITIAL_TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 16777216;if (!Object.getOwnPropertyDescriptor(Module, 'TOTAL_MEMORY')) Object.defineProperty(Module, 'TOTAL_MEMORY', { configurable: true, get: function() { abort('Module.TOTAL_MEMORY has been replaced with plain INITIAL_TOTAL_MEMORY') } });
+
+assert(INITIAL_TOTAL_MEMORY >= TOTAL_STACK, 'TOTAL_MEMORY should be larger than TOTAL_STACK, was ' + INITIAL_TOTAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')');
+
+// check for full engine support (use string 'subarray' to avoid closure compiler confusion)
+assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && Int32Array.prototype.subarray !== undefined && Int32Array.prototype.set !== undefined,
+       'JS engine does not provide full typed array support');
+
+
+
+
+
+
+// In standalone mode, the wasm creates the memory, and the user can't provide it.
+// In non-standalone/normal mode, we create the memory here.
+
+// Create the main memory. (Note: this isn't used in STANDALONE_WASM mode since the wasm
+// memory is created in the wasm, not in JS.)
+
+  if (Module['wasmMemory']) {
+    wasmMemory = Module['wasmMemory'];
+  } else
+  {
+    wasmMemory = new WebAssembly.Memory({
+      'initial': INITIAL_TOTAL_MEMORY / WASM_PAGE_SIZE
+    });
+  }
+
+
+if (wasmMemory) {
+  buffer = wasmMemory.buffer;
+}
+
+// If the user provides an incorrect length, just use that length instead rather than providing the user to
+// specifically provide the memory length with Module['TOTAL_MEMORY'].
+INITIAL_TOTAL_MEMORY = buffer.byteLength;
+assert(INITIAL_TOTAL_MEMORY % WASM_PAGE_SIZE === 0);
+updateGlobalBufferAndViews(buffer);
+
+HEAP32[DYNAMICTOP_PTR>>2] = DYNAMIC_BASE;
+
+
+
+
+// Initializes the stack cookie. Called at the startup of main and at the startup of each thread in pthreads mode.
+function writeStackCookie() {
+  assert((STACK_MAX & 3) == 0);
+  HEAPU32[(STACK_MAX >> 2)-1] = 0x02135467;
+  HEAPU32[(STACK_MAX >> 2)-2] = 0x89BACDFE;
+  // Also test the global address 0 for integrity.
+  // We don't do this with ASan because ASan does its own checks for this.
+  HEAP32[0] = 0x63736d65; /* 'emsc' */
+}
+
+function checkStackCookie() {
+  var cookie1 = HEAPU32[(STACK_MAX >> 2)-1];
+  var cookie2 = HEAPU32[(STACK_MAX >> 2)-2];
+  if (cookie1 != 0x02135467 || cookie2 != 0x89BACDFE) {
+    abort('Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x' + cookie2.toString(16) + ' ' + cookie1.toString(16));
+  }
+  // Also test the global address 0 for integrity.
+  // We don't do this with ASan because ASan does its own checks for this.
+  if (HEAP32[0] !== 0x63736d65 /* 'emsc' */) abort('Runtime error: The application has corrupted its heap memory area (address zero)!');
+}
+
+function abortStackOverflow(allocSize) {
+  abort('Stack overflow! Attempted to allocate ' + allocSize + ' bytes on the stack, but stack has only ' + (STACK_MAX - stackSave() + allocSize) + ' bytes available!');
+}
+
+
+
+
+// Endianness check (note: assumes compiler arch was little-endian)
+(function() {
+  var h16 = new Int16Array(1);
+  var h8 = new Int8Array(h16.buffer);
+  h16[0] = 0x6373;
+  if (h8[0] !== 0x73 || h8[1] !== 0x63) throw 'Runtime error: expected the system to be little-endian!';
+})();
+
+function abortFnPtrError(ptr, sig) {
+	abort("Invalid function pointer " + ptr + " called with signature '" + sig + "'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this). Build with ASSERTIONS=2 for more info.");
+}
+
+
+
+function callRuntimeCallbacks(callbacks) {
+  while(callbacks.length > 0) {
+    var callback = callbacks.shift();
+    if (typeof callback == 'function') {
+      callback();
+      continue;
+    }
+    var func = callback.func;
+    if (typeof func === 'number') {
+      if (callback.arg === undefined) {
+        Module['dynCall_v'](func);
+      } else {
+        Module['dynCall_vi'](func, callback.arg);
+      }
+    } else {
+      func(callback.arg === undefined ? null : callback.arg);
+    }
+  }
+}
+
+var __ATPRERUN__  = []; // functions called before the runtime is initialized
+var __ATINIT__    = []; // functions called during startup
+var __ATMAIN__    = []; // functions called when main() is to be run
+var __ATEXIT__    = []; // functions called during shutdown
+var __ATPOSTRUN__ = []; // functions called after the main() is called
+
+var runtimeInitialized = false;
+var runtimeExited = false;
+
+
+function preRun() {
+
+  if (Module['preRun']) {
+    if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']];
+    while (Module['preRun'].length) {
+      addOnPreRun(Module['preRun'].shift());
+    }
+  }
+
+  callRuntimeCallbacks(__ATPRERUN__);
+}
+
+function initRuntime() {
+  checkStackCookie();
+  assert(!runtimeInitialized);
+  runtimeInitialized = true;
+  if (!Module["noFSInit"] && !FS.init.initialized) FS.init();
+TTY.init();
+  callRuntimeCallbacks(__ATINIT__);
+}
+
+function preMain() {
+  checkStackCookie();
+  FS.ignorePermissions = false;
+  callRuntimeCallbacks(__ATMAIN__);
+}
+
+function exitRuntime() {
+  checkStackCookie();
+  runtimeExited = true;
+}
+
+function postRun() {
+  checkStackCookie();
+
+  if (Module['postRun']) {
+    if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']];
+    while (Module['postRun'].length) {
+      addOnPostRun(Module['postRun'].shift());
+    }
+  }
+
+  callRuntimeCallbacks(__ATPOSTRUN__);
+}
+
+function addOnPreRun(cb) {
+  __ATPRERUN__.unshift(cb);
+}
+
+function addOnInit(cb) {
+  __ATINIT__.unshift(cb);
+}
+
+function addOnPreMain(cb) {
+  __ATMAIN__.unshift(cb);
+}
+
+function addOnExit(cb) {
+}
+
+function addOnPostRun(cb) {
+  __ATPOSTRUN__.unshift(cb);
+}
+
+function unSign(value, bits, ignore) {
+  if (value >= 0) {
+    return value;
+  }
+  return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts
+                    : Math.pow(2, bits)         + value;
+}
+function reSign(value, bits, ignore) {
+  if (value <= 0) {
+    return value;
+  }
+  var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32
+                        : Math.pow(2, bits-1);
+  if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that
+                                                       // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors
+                                                       // TODO: In i64 mode 1, resign the two parts separately and safely
+    value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts
+  }
+  return value;
+}
+
+
+assert(Math.imul, 'This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill');
+assert(Math.fround, 'This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill');
+assert(Math.clz32, 'This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill');
+assert(Math.trunc, 'This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill');
+
+var Math_abs = Math.abs;
+var Math_cos = Math.cos;
+var Math_sin = Math.sin;
+var Math_tan = Math.tan;
+var Math_acos = Math.acos;
+var Math_asin = Math.asin;
+var Math_atan = Math.atan;
+var Math_atan2 = Math.atan2;
+var Math_exp = Math.exp;
+var Math_log = Math.log;
+var Math_sqrt = Math.sqrt;
+var Math_ceil = Math.ceil;
+var Math_floor = Math.floor;
+var Math_pow = Math.pow;
+var Math_imul = Math.imul;
+var Math_fround = Math.fround;
+var Math_round = Math.round;
+var Math_min = Math.min;
+var Math_max = Math.max;
+var Math_clz32 = Math.clz32;
+var Math_trunc = Math.trunc;
+
+
+
+// A counter of dependencies for calling run(). If we need to
+// do asynchronous work before running, increment this and
+// decrement it. Incrementing must happen in a place like
+// Module.preRun (used by emcc to add file preloading).
+// Note that you can add dependencies in preRun, even though
+// it happens right before run - run will be postponed until
+// the dependencies are met.
+var runDependencies = 0;
+var runDependencyWatcher = null;
+var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled
+var runDependencyTracking = {};
+
+function getUniqueRunDependency(id) {
+  var orig = id;
+  while (1) {
+    if (!runDependencyTracking[id]) return id;
+    id = orig + Math.random();
+  }
+  return id;
+}
+
+function addRunDependency(id) {
+  runDependencies++;
+
+  if (Module['monitorRunDependencies']) {
+    Module['monitorRunDependencies'](runDependencies);
+  }
+
+  if (id) {
+    assert(!runDependencyTracking[id]);
+    runDependencyTracking[id] = 1;
+    if (runDependencyWatcher === null && typeof setInterval !== 'undefined') {
+      // Check for missing dependencies every few seconds
+      runDependencyWatcher = setInterval(function() {
+        if (ABORT) {
+          clearInterval(runDependencyWatcher);
+          runDependencyWatcher = null;
+          return;
+        }
+        var shown = false;
+        for (var dep in runDependencyTracking) {
+          if (!shown) {
+            shown = true;
+            err('still waiting on run dependencies:');
+          }
+          err('dependency: ' + dep);
+        }
+        if (shown) {
+          err('(end of list)');
+        }
+      }, 10000);
+    }
+  } else {
+    err('warning: run dependency added without ID');
+  }
+}
+
+function removeRunDependency(id) {
+  runDependencies--;
+
+  if (Module['monitorRunDependencies']) {
+    Module['monitorRunDependencies'](runDependencies);
+  }
+
+  if (id) {
+    assert(runDependencyTracking[id]);
+    delete runDependencyTracking[id];
+  } else {
+    err('warning: run dependency removed without ID');
+  }
+  if (runDependencies == 0) {
+    if (runDependencyWatcher !== null) {
+      clearInterval(runDependencyWatcher);
+      runDependencyWatcher = null;
+    }
+    if (dependenciesFulfilled) {
+      var callback = dependenciesFulfilled;
+      dependenciesFulfilled = null;
+      callback(); // can add another dependenciesFulfilled
+    }
+  }
+}
+
+Module["preloadedImages"] = {}; // maps url to image data
+Module["preloadedAudios"] = {}; // maps url to audio data
+
+
+function abort(what) {
+  if (Module['onAbort']) {
+    Module['onAbort'](what);
+  }
+
+  what += '';
+  out(what);
+  err(what);
+
+  ABORT = true;
+  EXITSTATUS = 1;
+
+  var extra = '';
+  var output = 'abort(' + what + ') at ' + stackTrace() + extra;
+  throw output;
+}
+
+
+var memoryInitializer = null;
+
+
+
+
+
+
+
+// Copyright 2017 The Emscripten Authors.  All rights reserved.
+// Emscripten is available under two separate licenses, the MIT license and the
+// University of Illinois/NCSA Open Source License.  Both these licenses can be
+// found in the LICENSE file.
+
+// Prefix of data URIs emitted by SINGLE_FILE and related options.
+var dataURIPrefix = 'data:application/octet-stream;base64,';
+
+// Indicates whether filename is a base64 data URI.
+function isDataURI(filename) {
+  return String.prototype.startsWith ?
+      filename.startsWith(dataURIPrefix) :
+      filename.indexOf(dataURIPrefix) === 0;
+}
+
+
+
+
+var wasmBinaryFile = 'rhino3dm.wasm';
+if (!isDataURI(wasmBinaryFile)) {
+  wasmBinaryFile = locateFile(wasmBinaryFile);
+}
+
+function getBinary() {
+  try {
+    if (wasmBinary) {
+      return new Uint8Array(wasmBinary);
+    }
+
+    if (readBinary) {
+      return readBinary(wasmBinaryFile);
+    } else {
+      throw "both async and sync fetching of the wasm failed";
+    }
+  }
+  catch (err) {
+    abort(err);
+  }
+}
+
+function getBinaryPromise() {
+  // if we don't have the binary yet, and have the Fetch api, use that
+  // in some environments, like Electron's render process, Fetch api may be present, but have a different context than expected, let's only use it on the Web
+  if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) && typeof fetch === 'function') {
+    return fetch(wasmBinaryFile, { credentials: 'same-origin' }).then(function(response) {
+      if (!response['ok']) {
+        throw "failed to load wasm binary file at '" + wasmBinaryFile + "'";
+      }
+      return response['arrayBuffer']();
+    }).catch(function () {
+      return getBinary();
+    });
+  }
+  // Otherwise, getBinary should be able to get it synchronously
+  return new Promise(function(resolve, reject) {
+    resolve(getBinary());
+  });
+}
+
+
+
+// Create the wasm instance.
+// Receives the wasm imports, returns the exports.
+function createWasm() {
+  // prepare imports
+  var info = {
+    'env': asmLibraryArg,
+    'wasi_unstable': asmLibraryArg
+    ,
+    'global': {
+      'NaN': NaN,
+      'Infinity': Infinity
+    },
+    'global.Math': Math,
+    'asm2wasm': asm2wasmImports
+  };
+  // Load the wasm module and create an instance of using native support in the JS engine.
+  // handle a generated wasm instance, receiving its exports and
+  // performing other necessary setup
+  function receiveInstance(instance, module) {
+    var exports = instance.exports;
+    Module['asm'] = exports;
+    removeRunDependency('wasm-instantiate');
+  }
+   // we can't run yet (except in a pthread, where we have a custom sync instantiator)
+  addRunDependency('wasm-instantiate');
+
+
+  // Async compilation can be confusing when an error on the page overwrites Module
+  // (for example, if the order of elements is wrong, and the one defining Module is
+  // later), so we save Module and check it later.
+  var trueModule = Module;
+  function receiveInstantiatedSource(output) {
+    // 'output' is a WebAssemblyInstantiatedSource object which has both the module and instance.
+    // receiveInstance() will swap in the exports (to Module.asm) so they can be called
+    assert(Module === trueModule, 'the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?');
+    trueModule = null;
+      // TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193, the above line no longer optimizes out down to the following line.
+      // When the regression is fixed, can restore the above USE_PTHREADS-enabled path.
+    receiveInstance(output['instance']);
+  }
+
+
+  function instantiateArrayBuffer(receiver) {
+    return getBinaryPromise().then(function(binary) {
+      return WebAssembly.instantiate(binary, info);
+    }).then(receiver, function(reason) {
+      err('failed to asynchronously prepare wasm: ' + reason);
+      abort(reason);
+    });
+  }
+
+  // Prefer streaming instantiation if available.
+  function instantiateAsync() {
+    if (!wasmBinary &&
+        typeof WebAssembly.instantiateStreaming === 'function' &&
+        !isDataURI(wasmBinaryFile) &&
+        typeof fetch === 'function') {
+      fetch(wasmBinaryFile, { credentials: 'same-origin' }).then(function (response) {
+        var result = WebAssembly.instantiateStreaming(response, info);
+        return result.then(receiveInstantiatedSource, function(reason) {
+            // We expect the most common failure cause to be a bad MIME type for the binary,
+            // in which case falling back to ArrayBuffer instantiation should work.
+            err('wasm streaming compile failed: ' + reason);
+            err('falling back to ArrayBuffer instantiation');
+            instantiateArrayBuffer(receiveInstantiatedSource);
+          });
+      });
+    } else {
+      return instantiateArrayBuffer(receiveInstantiatedSource);
+    }
+  }
+  // User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback
+  // to manually instantiate the Wasm module themselves. This allows pages to run the instantiation parallel
+  // to any other async startup actions they are performing.
+  if (Module['instantiateWasm']) {
+    try {
+      var exports = Module['instantiateWasm'](info, receiveInstance);
+      return exports;
+    } catch(e) {
+      err('Module.instantiateWasm callback failed with error: ' + e);
+      return false;
+    }
+  }
+
+  instantiateAsync();
+  return {}; // no exports yet; we'll fill them in later
+}
+
+Module['asm'] = createWasm;
+
+// Globals used by JS i64 conversions
+var tempDouble;
+var tempI64;
+
+// === Body ===
+
+var ASM_CONSTS = [];
+
+
+
+
+
+// STATICTOP = STATIC_BASE + 305680;
+/* global initializers */  __ATINIT__.push({ func: function() { globalCtors() } });
+
+
+
+
+
+
+
+
+/* no memory initializer */
+var tempDoublePtr = 306688
+assert(tempDoublePtr % 8 == 0);
+
+function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much
+  HEAP8[tempDoublePtr] = HEAP8[ptr];
+  HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];
+  HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];
+  HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];
+}
+
+function copyTempDouble(ptr) {
+  HEAP8[tempDoublePtr] = HEAP8[ptr];
+  HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];
+  HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];
+  HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];
+  HEAP8[tempDoublePtr+4] = HEAP8[ptr+4];
+  HEAP8[tempDoublePtr+5] = HEAP8[ptr+5];
+  HEAP8[tempDoublePtr+6] = HEAP8[ptr+6];
+  HEAP8[tempDoublePtr+7] = HEAP8[ptr+7];
+}
+
+// {{PRE_LIBRARY}}
+
+
+  function demangle(func) {
+      warnOnce('warning: build with  -s DEMANGLE_SUPPORT=1  to link in libcxxabi demangling');
+      return func;
+    }
+
+  function demangleAll(text) {
+      var regex =
+        /\b__Z[\w\d_]+/g;
+      return text.replace(regex,
+        function(x) {
+          var y = demangle(x);
+          return x === y ? x : (y + ' [' + x + ']');
+        });
+    }
+
+  function jsStackTrace() {
+      var err = new Error();
+      if (!err.stack) {
+        // IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown,
+        // so try that as a special-case.
+        try {
+          throw new Error(0);
+        } catch(e) {
+          err = e;
+        }
+        if (!err.stack) {
+          return '(no stack trace available)';
+        }
+      }
+      return err.stack.toString();
+    }
+
+  function stackTrace() {
+      var js = jsStackTrace();
+      if (Module['extraStackTrace']) js += '\n' + Module['extraStackTrace']();
+      return demangleAll(js);
+    }
+
+  
+   function ___atomic_fetch_add_8(ptr, vall, valh, memmodel) {
+      var l = HEAP32[((ptr)>>2)];
+      var h = HEAP32[(((ptr)+(4))>>2)];
+      HEAP32[((ptr)>>2)]=_i64Add(l, h, vall, valh);
+      HEAP32[(((ptr)+(4))>>2)]=getTempRet0();
+      return ((setTempRet0(h),l)|0);
+    }
+
+  
+  var ENV={};function ___buildEnvironment(environ) {
+      // WARNING: Arbitrary limit!
+      var MAX_ENV_VALUES = 64;
+      var TOTAL_ENV_SIZE = 1024;
+  
+      // Statically allocate memory for the environment.
+      var poolPtr;
+      var envPtr;
+      if (!___buildEnvironment.called) {
+        ___buildEnvironment.called = true;
+        // Set default values. Use string keys for Closure Compiler compatibility.
+        ENV['USER'] = 'web_user';
+        ENV['LOGNAME'] = 'web_user';
+        ENV['PATH'] = '/';
+        ENV['PWD'] = '/';
+        ENV['HOME'] = '/home/web_user';
+        // Browser language detection #8751
+        ENV['LANG'] = ((typeof navigator === 'object' && navigator.languages && navigator.languages[0]) || 'C').replace('-', '_') + '.UTF-8';
+        ENV['_'] = thisProgram;
+        // Allocate memory.
+        poolPtr = getMemory(TOTAL_ENV_SIZE);
+        envPtr = getMemory(MAX_ENV_VALUES * 4);
+        HEAP32[((envPtr)>>2)]=poolPtr;
+        HEAP32[((environ)>>2)]=envPtr;
+      } else {
+        envPtr = HEAP32[((environ)>>2)];
+        poolPtr = HEAP32[((envPtr)>>2)];
+      }
+  
+      // Collect key=value lines.
+      var strings = [];
+      var totalSize = 0;
+      for (var key in ENV) {
+        if (typeof ENV[key] === 'string') {
+          var line = key + '=' + ENV[key];
+          strings.push(line);
+          totalSize += line.length;
+        }
+      }
+      if (totalSize > TOTAL_ENV_SIZE) {
+        throw new Error('Environment size exceeded TOTAL_ENV_SIZE!');
+      }
+  
+      // Make new.
+      var ptrSize = 4;
+      for (var i = 0; i < strings.length; i++) {
+        var line = strings[i];
+        writeAsciiToMemory(line, poolPtr);
+        HEAP32[(((envPtr)+(i * ptrSize))>>2)]=poolPtr;
+        poolPtr += line.length + 1;
+      }
+      HEAP32[(((envPtr)+(strings.length * ptrSize))>>2)]=0;
+    }
+
+  function ___cxa_allocate_exception(size) {
+      return _malloc(size);
+    }
+
+  
+  var ___exception_infos={};
+  
+  var ___exception_caught= [];
+  
+  function ___exception_addRef(ptr) {
+      if (!ptr) return;
+      var info = ___exception_infos[ptr];
+      info.refcount++;
+    }
+  
+  function ___exception_deAdjust(adjusted) {
+      if (!adjusted || ___exception_infos[adjusted]) return adjusted;
+      for (var key in ___exception_infos) {
+        var ptr = +key; // the iteration key is a string, and if we throw this, it must be an integer as that is what we look for
+        var adj = ___exception_infos[ptr].adjusted;
+        var len = adj.length;
+        for (var i = 0; i < len; i++) {
+          if (adj[i] === adjusted) {
+            return ptr;
+          }
+        }
+      }
+      return adjusted;
+    }function ___cxa_begin_catch(ptr) {
+      var info = ___exception_infos[ptr];
+      if (info && !info.caught) {
+        info.caught = true;
+        __ZSt18uncaught_exceptionv.uncaught_exceptions--;
+      }
+      if (info) info.rethrown = false;
+      ___exception_caught.push(ptr);
+      ___exception_addRef(___exception_deAdjust(ptr));
+      return ptr;
+    }
+
+  
+  var ___exception_last=0;function ___cxa_throw(ptr, type, destructor) {
+      ___exception_infos[ptr] = {
+        ptr: ptr,
+        adjusted: [ptr],
+        type: type,
+        destructor: destructor,
+        refcount: 0,
+        caught: false,
+        rethrown: false
+      };
+      ___exception_last = ptr;
+      if (!("uncaught_exception" in __ZSt18uncaught_exceptionv)) {
+        __ZSt18uncaught_exceptionv.uncaught_exceptions = 1;
+      } else {
+        __ZSt18uncaught_exceptionv.uncaught_exceptions++;
+      }
+      throw ptr + " - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.";
+    }
+
+  function ___gxx_personality_v0() {
+    }
+
+  function ___lock() {}
+
+  
+  
+  var PATH={splitPath:function(filename) {
+        var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
+        return splitPathRe.exec(filename).slice(1);
+      },normalizeArray:function(parts, allowAboveRoot) {
+        // if the path tries to go above the root, `up` ends up > 0
+        var up = 0;
+        for (var i = parts.length - 1; i >= 0; i--) {
+          var last = parts[i];
+          if (last === '.') {
+            parts.splice(i, 1);
+          } else if (last === '..') {
+            parts.splice(i, 1);
+            up++;
+          } else if (up) {
+            parts.splice(i, 1);
+            up--;
+          }
+        }
+        // if the path is allowed to go above the root, restore leading ..s
+        if (allowAboveRoot) {
+          for (; up; up--) {
+            parts.unshift('..');
+          }
+        }
+        return parts;
+      },normalize:function(path) {
+        var isAbsolute = path.charAt(0) === '/',
+            trailingSlash = path.substr(-1) === '/';
+        // Normalize the path
+        path = PATH.normalizeArray(path.split('/').filter(function(p) {
+          return !!p;
+        }), !isAbsolute).join('/');
+        if (!path && !isAbsolute) {
+          path = '.';
+        }
+        if (path && trailingSlash) {
+          path += '/';
+        }
+        return (isAbsolute ? '/' : '') + path;
+      },dirname:function(path) {
+        var result = PATH.splitPath(path),
+            root = result[0],
+            dir = result[1];
+        if (!root && !dir) {
+          // No dirname whatsoever
+          return '.';
+        }
+        if (dir) {
+          // It has a dirname, strip trailing slash
+          dir = dir.substr(0, dir.length - 1);
+        }
+        return root + dir;
+      },basename:function(path) {
+        // EMSCRIPTEN return '/'' for '/', not an empty string
+        if (path === '/') return '/';
+        var lastSlash = path.lastIndexOf('/');
+        if (lastSlash === -1) return path;
+        return path.substr(lastSlash+1);
+      },extname:function(path) {
+        return PATH.splitPath(path)[3];
+      },join:function() {
+        var paths = Array.prototype.slice.call(arguments, 0);
+        return PATH.normalize(paths.join('/'));
+      },join2:function(l, r) {
+        return PATH.normalize(l + '/' + r);
+      }};
+  
+  
+  function ___setErrNo(value) {
+      if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value;
+      else err('failed to set errno from JS');
+      return value;
+    }
+  
+  var PATH_FS={resolve:function() {
+        var resolvedPath = '',
+          resolvedAbsolute = false;
+        for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
+          var path = (i >= 0) ? arguments[i] : FS.cwd();
+          // Skip empty and invalid entries
+          if (typeof path !== 'string') {
+            throw new TypeError('Arguments to path.resolve must be strings');
+          } else if (!path) {
+            return ''; // an invalid portion invalidates the whole thing
+          }
+          resolvedPath = path + '/' + resolvedPath;
+          resolvedAbsolute = path.charAt(0) === '/';
+        }
+        // At this point the path should be resolved to a full absolute path, but
+        // handle relative paths to be safe (might happen when process.cwd() fails)
+        resolvedPath = PATH.normalizeArray(resolvedPath.split('/').filter(function(p) {
+          return !!p;
+        }), !resolvedAbsolute).join('/');
+        return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
+      },relative:function(from, to) {
+        from = PATH_FS.resolve(from).substr(1);
+        to = PATH_FS.resolve(to).substr(1);
+        function trim(arr) {
+          var start = 0;
+          for (; start < arr.length; start++) {
+            if (arr[start] !== '') break;
+          }
+          var end = arr.length - 1;
+          for (; end >= 0; end--) {
+            if (arr[end] !== '') break;
+          }
+          if (start > end) return [];
+          return arr.slice(start, end - start + 1);
+        }
+        var fromParts = trim(from.split('/'));
+        var toParts = trim(to.split('/'));
+        var length = Math.min(fromParts.length, toParts.length);
+        var samePartsLength = length;
+        for (var i = 0; i < length; i++) {
+          if (fromParts[i] !== toParts[i]) {
+            samePartsLength = i;
+            break;
+          }
+        }
+        var outputParts = [];
+        for (var i = samePartsLength; i < fromParts.length; i++) {
+          outputParts.push('..');
+        }
+        outputParts = outputParts.concat(toParts.slice(samePartsLength));
+        return outputParts.join('/');
+      }};
+  
+  var TTY={ttys:[],init:function () {
+        // https://github.com/emscripten-core/emscripten/pull/1555
+        // if (ENVIRONMENT_IS_NODE) {
+        //   // currently, FS.init does not distinguish if process.stdin is a file or TTY
+        //   // device, it always assumes it's a TTY device. because of this, we're forcing
+        //   // process.stdin to UTF8 encoding to at least make stdin reading compatible
+        //   // with text files until FS.init can be refactored.
+        //   process['stdin']['setEncoding']('utf8');
+        // }
+      },shutdown:function() {
+        // https://github.com/emscripten-core/emscripten/pull/1555
+        // if (ENVIRONMENT_IS_NODE) {
+        //   // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)?
+        //   // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation
+        //   // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists?
+        //   // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle
+        //   // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call
+        //   process['stdin']['pause']();
+        // }
+      },register:function(dev, ops) {
+        TTY.ttys[dev] = { input: [], output: [], ops: ops };
+        FS.registerDevice(dev, TTY.stream_ops);
+      },stream_ops:{open:function(stream) {
+          var tty = TTY.ttys[stream.node.rdev];
+          if (!tty) {
+            throw new FS.ErrnoError(43);
+          }
+          stream.tty = tty;
+          stream.seekable = false;
+        },close:function(stream) {
+          // flush any pending line data
+          stream.tty.ops.flush(stream.tty);
+        },flush:function(stream) {
+          stream.tty.ops.flush(stream.tty);
+        },read:function(stream, buffer, offset, length, pos /* ignored */) {
+          if (!stream.tty || !stream.tty.ops.get_char) {
+            throw new FS.ErrnoError(60);
+          }
+          var bytesRead = 0;
+          for (var i = 0; i < length; i++) {
+            var result;
+            try {
+              result = stream.tty.ops.get_char(stream.tty);
+            } catch (e) {
+              throw new FS.ErrnoError(29);
+            }
+            if (result === undefined && bytesRead === 0) {
+              throw new FS.ErrnoError(6);
+            }
+            if (result === null || result === undefined) break;
+            bytesRead++;
+            buffer[offset+i] = result;
+          }
+          if (bytesRead) {
+            stream.node.timestamp = Date.now();
+          }
+          return bytesRead;
+        },write:function(stream, buffer, offset, length, pos) {
+          if (!stream.tty || !stream.tty.ops.put_char) {
+            throw new FS.ErrnoError(60);
+          }
+          try {
+            for (var i = 0; i < length; i++) {
+              stream.tty.ops.put_char(stream.tty, buffer[offset+i]);
+            }
+          } catch (e) {
+            throw new FS.ErrnoError(29);
+          }
+          if (length) {
+            stream.node.timestamp = Date.now();
+          }
+          return i;
+        }},default_tty_ops:{get_char:function(tty) {
+          if (!tty.input.length) {
+            var result = null;
+            if (ENVIRONMENT_IS_NODE) {
+              // we will read data by chunks of BUFSIZE
+              var BUFSIZE = 256;
+              var buf = Buffer.alloc ? Buffer.alloc(BUFSIZE) : new Buffer(BUFSIZE);
+              var bytesRead = 0;
+  
+              try {
+                bytesRead = fs.readSync(process.stdin.fd, buf, 0, BUFSIZE, null);
+              } catch(e) {
+                // Cross-platform differences: on Windows, reading EOF throws an exception, but on other OSes,
+                // reading EOF returns 0. Uniformize behavior by treating the EOF exception to return 0.
+                if (e.toString().indexOf('EOF') != -1) bytesRead = 0;
+                else throw e;
+              }
+  
+              if (bytesRead > 0) {
+                result = buf.slice(0, bytesRead).toString('utf-8');
+              } else {
+                result = null;
+              }
+            } else
+            if (typeof window != 'undefined' &&
+              typeof window.prompt == 'function') {
+              // Browser.
+              result = window.prompt('Input: ');  // returns null on cancel
+              if (result !== null) {
+                result += '\n';
+              }
+            } else if (typeof readline == 'function') {
+              // Command line.
+              result = readline();
+              if (result !== null) {
+                result += '\n';
+              }
+            }
+            if (!result) {
+              return null;
+            }
+            tty.input = intArrayFromString(result, true);
+          }
+          return tty.input.shift();
+        },put_char:function(tty, val) {
+          if (val === null || val === 10) {
+            out(UTF8ArrayToString(tty.output, 0));
+            tty.output = [];
+          } else {
+            if (val != 0) tty.output.push(val); // val == 0 would cut text output off in the middle.
+          }
+        },flush:function(tty) {
+          if (tty.output && tty.output.length > 0) {
+            out(UTF8ArrayToString(tty.output, 0));
+            tty.output = [];
+          }
+        }},default_tty1_ops:{put_char:function(tty, val) {
+          if (val === null || val === 10) {
+            err(UTF8ArrayToString(tty.output, 0));
+            tty.output = [];
+          } else {
+            if (val != 0) tty.output.push(val);
+          }
+        },flush:function(tty) {
+          if (tty.output && tty.output.length > 0) {
+            err(UTF8ArrayToString(tty.output, 0));
+            tty.output = [];
+          }
+        }}};
+  
+  var MEMFS={ops_table:null,mount:function(mount) {
+        return MEMFS.createNode(null, '/', 16384 | 511 /* 0777 */, 0);
+      },createNode:function(parent, name, mode, dev) {
+        if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {
+          // no supported
+          throw new FS.ErrnoError(63);
+        }
+        if (!MEMFS.ops_table) {
+          MEMFS.ops_table = {
+            dir: {
+              node: {
+                getattr: MEMFS.node_ops.getattr,
+                setattr: MEMFS.node_ops.setattr,
+                lookup: MEMFS.node_ops.lookup,
+                mknod: MEMFS.node_ops.mknod,
+                rename: MEMFS.node_ops.rename,
+                unlink: MEMFS.node_ops.unlink,
+                rmdir: MEMFS.node_ops.rmdir,
+                readdir: MEMFS.node_ops.readdir,
+                symlink: MEMFS.node_ops.symlink
+              },
+              stream: {
+                llseek: MEMFS.stream_ops.llseek
+              }
+            },
+            file: {
+              node: {
+                getattr: MEMFS.node_ops.getattr,
+                setattr: MEMFS.node_ops.setattr
+              },
+              stream: {
+                llseek: MEMFS.stream_ops.llseek,
+                read: MEMFS.stream_ops.read,
+                write: MEMFS.stream_ops.write,
+                allocate: MEMFS.stream_ops.allocate,
+                mmap: MEMFS.stream_ops.mmap,
+                msync: MEMFS.stream_ops.msync
+              }
+            },
+            link: {
+              node: {
+                getattr: MEMFS.node_ops.getattr,
+                setattr: MEMFS.node_ops.setattr,
+                readlink: MEMFS.node_ops.readlink
+              },
+              stream: {}
+            },
+            chrdev: {
+              node: {
+                getattr: MEMFS.node_ops.getattr,
+                setattr: MEMFS.node_ops.setattr
+              },
+              stream: FS.chrdev_stream_ops
+            }
+          };
+        }
+        var node = FS.createNode(parent, name, mode, dev);
+        if (FS.isDir(node.mode)) {
+          node.node_ops = MEMFS.ops_table.dir.node;
+          node.stream_ops = MEMFS.ops_table.dir.stream;
+          node.contents = {};
+        } else if (FS.isFile(node.mode)) {
+          node.node_ops = MEMFS.ops_table.file.node;
+          node.stream_ops = MEMFS.ops_table.file.stream;
+          node.usedBytes = 0; // The actual number of bytes used in the typed array, as opposed to contents.length which gives the whole capacity.
+          // When the byte data of the file is populated, this will point to either a typed array, or a normal JS array. Typed arrays are preferred
+          // for performance, and used by default. However, typed arrays are not resizable like normal JS arrays are, so there is a small disk size
+          // penalty involved for appending file writes that continuously grow a file similar to std::vector capacity vs used -scheme.
+          node.contents = null; 
+        } else if (FS.isLink(node.mode)) {
+          node.node_ops = MEMFS.ops_table.link.node;
+          node.stream_ops = MEMFS.ops_table.link.stream;
+        } else if (FS.isChrdev(node.mode)) {
+          node.node_ops = MEMFS.ops_table.chrdev.node;
+          node.stream_ops = MEMFS.ops_table.chrdev.stream;
+        }
+        node.timestamp = Date.now();
+        // add the new node to the parent
+        if (parent) {
+          parent.contents[name] = node;
+        }
+        return node;
+      },getFileDataAsRegularArray:function(node) {
+        if (node.contents && node.contents.subarray) {
+          var arr = [];
+          for (var i = 0; i < node.usedBytes; ++i) arr.push(node.contents[i]);
+          return arr; // Returns a copy of the original data.
+        }
+        return node.contents; // No-op, the file contents are already in a JS array. Return as-is.
+      },getFileDataAsTypedArray:function(node) {
+        if (!node.contents) return new Uint8Array;
+        if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); // Make sure to not return excess unused bytes.
+        return new Uint8Array(node.contents);
+      },expandFileStorage:function(node, newCapacity) {
+        var prevCapacity = node.contents ? node.contents.length : 0;
+        if (prevCapacity >= newCapacity) return; // No need to expand, the storage was already large enough.
+        // Don't expand strictly to the given requested limit if it's only a very small increase, but instead geometrically grow capacity.
+        // For small filesizes (<1MB), perform size*2 geometric increase, but for large sizes, do a much more conservative size*1.125 increase to
+        // avoid overshooting the allocation cap by a very large margin.
+        var CAPACITY_DOUBLING_MAX = 1024 * 1024;
+        newCapacity = Math.max(newCapacity, (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2.0 : 1.125)) | 0);
+        if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); // At minimum allocate 256b for each file when expanding.
+        var oldContents = node.contents;
+        node.contents = new Uint8Array(newCapacity); // Allocate new storage.
+        if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); // Copy old data over to the new storage.
+        return;
+      },resizeFileStorage:function(node, newSize) {
+        if (node.usedBytes == newSize) return;
+        if (newSize == 0) {
+          node.contents = null; // Fully decommit when requesting a resize to zero.
+          node.usedBytes = 0;
+          return;
+        }
+        if (!node.contents || node.contents.subarray) { // Resize a typed array if that is being used as the backing store.
+          var oldContents = node.contents;
+          node.contents = new Uint8Array(new ArrayBuffer(newSize)); // Allocate new storage.
+          if (oldContents) {
+            node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); // Copy old data over to the new storage.
+          }
+          node.usedBytes = newSize;
+          return;
+        }
+        // Backing with a JS array.
+        if (!node.contents) node.contents = [];
+        if (node.contents.length > newSize) node.contents.length = newSize;
+        else while (node.contents.length < newSize) node.contents.push(0);
+        node.usedBytes = newSize;
+      },node_ops:{getattr:function(node) {
+          var attr = {};
+          // device numbers reuse inode numbers.
+          attr.dev = FS.isChrdev(node.mode) ? node.id : 1;
+          attr.ino = node.id;
+          attr.mode = node.mode;
+          attr.nlink = 1;
+          attr.uid = 0;
+          attr.gid = 0;
+          attr.rdev = node.rdev;
+          if (FS.isDir(node.mode)) {
+            attr.size = 4096;
+          } else if (FS.isFile(node.mode)) {
+            attr.size = node.usedBytes;
+          } else if (FS.isLink(node.mode)) {
+            attr.size = node.link.length;
+          } else {
+            attr.size = 0;
+          }
+          attr.atime = new Date(node.timestamp);
+          attr.mtime = new Date(node.timestamp);
+          attr.ctime = new Date(node.timestamp);
+          // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize),
+          //       but this is not required by the standard.
+          attr.blksize = 4096;
+          attr.blocks = Math.ceil(attr.size / attr.blksize);
+          return attr;
+        },setattr:function(node, attr) {
+          if (attr.mode !== undefined) {
+            node.mode = attr.mode;
+          }
+          if (attr.timestamp !== undefined) {
+            node.timestamp = attr.timestamp;
+          }
+          if (attr.size !== undefined) {
+            MEMFS.resizeFileStorage(node, attr.size);
+          }
+        },lookup:function(parent, name) {
+          throw FS.genericErrors[44];
+        },mknod:function(parent, name, mode, dev) {
+          return MEMFS.createNode(parent, name, mode, dev);
+        },rename:function(old_node, new_dir, new_name) {
+          // if we're overwriting a directory at new_name, make sure it's empty.
+          if (FS.isDir(old_node.mode)) {
+            var new_node;
+            try {
+              new_node = FS.lookupNode(new_dir, new_name);
+            } catch (e) {
+            }
+            if (new_node) {
+              for (var i in new_node.contents) {
+                throw new FS.ErrnoError(55);
+              }
+            }
+          }
+          // do the internal rewiring
+          delete old_node.parent.contents[old_node.name];
+          old_node.name = new_name;
+          new_dir.contents[new_name] = old_node;
+          old_node.parent = new_dir;
+        },unlink:function(parent, name) {
+          delete parent.contents[name];
+        },rmdir:function(parent, name) {
+          var node = FS.lookupNode(parent, name);
+          for (var i in node.contents) {
+            throw new FS.ErrnoError(55);
+          }
+          delete parent.contents[name];
+        },readdir:function(node) {
+          var entries = ['.', '..'];
+          for (var key in node.contents) {
+            if (!node.contents.hasOwnProperty(key)) {
+              continue;
+            }
+            entries.push(key);
+          }
+          return entries;
+        },symlink:function(parent, newname, oldpath) {
+          var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0);
+          node.link = oldpath;
+          return node;
+        },readlink:function(node) {
+          if (!FS.isLink(node.mode)) {
+            throw new FS.ErrnoError(28);
+          }
+          return node.link;
+        }},stream_ops:{read:function(stream, buffer, offset, length, position) {
+          var contents = stream.node.contents;
+          if (position >= stream.node.usedBytes) return 0;
+          var size = Math.min(stream.node.usedBytes - position, length);
+          assert(size >= 0);
+          if (size > 8 && contents.subarray) { // non-trivial, and typed array
+            buffer.set(contents.subarray(position, position + size), offset);
+          } else {
+            for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i];
+          }
+          return size;
+        },write:function(stream, buffer, offset, length, position, canOwn) {
+          // If memory can grow, we don't want to hold on to references of
+          // the memory Buffer, as they may get invalidated. That means
+          // we need to do a copy here.
+          // FIXME: this is inefficient as the file packager may have
+          //        copied the data into memory already - we may want to
+          //        integrate more there and let the file packager loading
+          //        code be able to query if memory growth is on or off.
+          if (canOwn) {
+            warnOnce('file packager has copied file data into memory, but in memory growth we are forced to copy it again (see --no-heap-copy)');
+          }
+          canOwn = false;
+  
+          if (!length) return 0;
+          var node = stream.node;
+          node.timestamp = Date.now();
+  
+          if (buffer.subarray && (!node.contents || node.contents.subarray)) { // This write is from a typed array to a typed array?
+            if (canOwn) {
+              assert(position === 0, 'canOwn must imply no weird position inside the file');
+              node.contents = buffer.subarray(offset, offset + length);
+              node.usedBytes = length;
+              return length;
+            } else if (node.usedBytes === 0 && position === 0) { // If this is a simple first write to an empty file, do a fast set since we don't need to care about old data.
+              node.contents = new Uint8Array(buffer.subarray(offset, offset + length));
+              node.usedBytes = length;
+              return length;
+            } else if (position + length <= node.usedBytes) { // Writing to an already allocated and used subrange of the file?
+              node.contents.set(buffer.subarray(offset, offset + length), position);
+              return length;
+            }
+          }
+  
+          // Appending to an existing file and we need to reallocate, or source data did not come as a typed array.
+          MEMFS.expandFileStorage(node, position+length);
+          if (node.contents.subarray && buffer.subarray) node.contents.set(buffer.subarray(offset, offset + length), position); // Use typed array write if available.
+          else {
+            for (var i = 0; i < length; i++) {
+             node.contents[position + i] = buffer[offset + i]; // Or fall back to manual write if not.
+            }
+          }
+          node.usedBytes = Math.max(node.usedBytes, position+length);
+          return length;
+        },llseek:function(stream, offset, whence) {
+          var position = offset;
+          if (whence === 1) {
+            position += stream.position;
+          } else if (whence === 2) {
+            if (FS.isFile(stream.node.mode)) {
+              position += stream.node.usedBytes;
+            }
+          }
+          if (position < 0) {
+            throw new FS.ErrnoError(28);
+          }
+          return position;
+        },allocate:function(stream, offset, length) {
+          MEMFS.expandFileStorage(stream.node, offset + length);
+          stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length);
+        },mmap:function(stream, buffer, offset, length, position, prot, flags) {
+          if (!FS.isFile(stream.node.mode)) {
+            throw new FS.ErrnoError(43);
+          }
+          var ptr;
+          var allocated;
+          var contents = stream.node.contents;
+          // Only make a new copy when MAP_PRIVATE is specified.
+          if ( !(flags & 2) &&
+                (contents.buffer === buffer || contents.buffer === buffer.buffer) ) {
+            // We can't emulate MAP_SHARED when the file is not backed by the buffer
+            // we're mapping to (e.g. the HEAP buffer).
+            allocated = false;
+            ptr = contents.byteOffset;
+          } else {
+            // Try to avoid unnecessary slices.
+            if (position > 0 || position + length < stream.node.usedBytes) {
+              if (contents.subarray) {
+                contents = contents.subarray(position, position + length);
+              } else {
+                contents = Array.prototype.slice.call(contents, position, position + length);
+              }
+            }
+            allocated = true;
+            // malloc() can lead to growing the heap. If targeting the heap, we need to
+            // re-acquire the heap buffer object in case growth had occurred.
+            var fromHeap = (buffer.buffer == HEAP8.buffer);
+            ptr = _malloc(length);
+            if (!ptr) {
+              throw new FS.ErrnoError(48);
+            }
+            (fromHeap ? HEAP8 : buffer).set(contents, ptr);
+          }
+          return { ptr: ptr, allocated: allocated };
+        },msync:function(stream, buffer, offset, length, mmapFlags) {
+          if (!FS.isFile(stream.node.mode)) {
+            throw new FS.ErrnoError(43);
+          }
+          if (mmapFlags & 2) {
+            // MAP_PRIVATE calls need not to be synced back to underlying fs
+            return 0;
+          }
+  
+          var bytesWritten = MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false);
+          // should we check if bytesWritten and length are the same?
+          return 0;
+        }}};
+  
+  var IDBFS={dbs:{},indexedDB:function() {
+        if (typeof indexedDB !== 'undefined') return indexedDB;
+        var ret = null;
+        if (typeof window === 'object') ret = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
+        assert(ret, 'IDBFS used, but indexedDB not supported');
+        return ret;
+      },DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function(mount) {
+        // reuse all of the core MEMFS functionality
+        return MEMFS.mount.apply(null, arguments);
+      },syncfs:function(mount, populate, callback) {
+        IDBFS.getLocalSet(mount, function(err, local) {
+          if (err) return callback(err);
+  
+          IDBFS.getRemoteSet(mount, function(err, remote) {
+            if (err) return callback(err);
+  
+            var src = populate ? remote : local;
+            var dst = populate ? local : remote;
+  
+            IDBFS.reconcile(src, dst, callback);
+          });
+        });
+      },getDB:function(name, callback) {
+        // check the cache first
+        var db = IDBFS.dbs[name];
+        if (db) {
+          return callback(null, db);
+        }
+  
+        var req;
+        try {
+          req = IDBFS.indexedDB().open(name, IDBFS.DB_VERSION);
+        } catch (e) {
+          return callback(e);
+        }
+        if (!req) {
+          return callback("Unable to connect to IndexedDB");
+        }
+        req.onupgradeneeded = function(e) {
+          var db = e.target.result;
+          var transaction = e.target.transaction;
+  
+          var fileStore;
+  
+          if (db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)) {
+            fileStore = transaction.objectStore(IDBFS.DB_STORE_NAME);
+          } else {
+            fileStore = db.createObjectStore(IDBFS.DB_STORE_NAME);
+          }
+  
+          if (!fileStore.indexNames.contains('timestamp')) {
+            fileStore.createIndex('timestamp', 'timestamp', { unique: false });
+          }
+        };
+        req.onsuccess = function() {
+          db = req.result;
+  
+          // add to the cache
+          IDBFS.dbs[name] = db;
+          callback(null, db);
+        };
+        req.onerror = function(e) {
+          callback(this.error);
+          e.preventDefault();
+        };
+      },getLocalSet:function(mount, callback) {
+        var entries = {};
+  
+        function isRealDir(p) {
+          return p !== '.' && p !== '..';
+        };
+        function toAbsolute(root) {
+          return function(p) {
+            return PATH.join2(root, p);
+          }
+        };
+  
+        var check = FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));
+  
+        while (check.length) {
+          var path = check.pop();
+          var stat;
+  
+          try {
+            stat = FS.stat(path);
+          } catch (e) {
+            return callback(e);
+          }
+  
+          if (FS.isDir(stat.mode)) {
+            check.push.apply(check, FS.readdir(path).filter(isRealDir).map(toAbsolute(path)));
+          }
+  
+          entries[path] = { timestamp: stat.mtime };
+        }
+  
+        return callback(null, { type: 'local', entries: entries });
+      },getRemoteSet:function(mount, callback) {
+        var entries = {};
+  
+        IDBFS.getDB(mount.mountpoint, function(err, db) {
+          if (err) return callback(err);
+  
+          try {
+            var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readonly');
+            transaction.onerror = function(e) {
+              callback(this.error);
+              e.preventDefault();
+            };
+  
+            var store = transaction.objectStore(IDBFS.DB_STORE_NAME);
+            var index = store.index('timestamp');
+  
+            index.openKeyCursor().onsuccess = function(event) {
+              var cursor = event.target.result;
+  
+              if (!cursor) {
+                return callback(null, { type: 'remote', db: db, entries: entries });
+              }
+  
+              entries[cursor.primaryKey] = { timestamp: cursor.key };
+  
+              cursor.continue();
+            };
+          } catch (e) {
+            return callback(e);
+          }
+        });
+      },loadLocalEntry:function(path, callback) {
+        var stat, node;
+  
+        try {
+          var lookup = FS.lookupPath(path);
+          node = lookup.node;
+          stat = FS.stat(path);
+        } catch (e) {
+          return callback(e);
+        }
+  
+        if (FS.isDir(stat.mode)) {
+          return callback(null, { timestamp: stat.mtime, mode: stat.mode });
+        } else if (FS.isFile(stat.mode)) {
+          // Performance consideration: storing a normal JavaScript array to a IndexedDB is much slower than storing a typed array.
+          // Therefore always convert the file contents to a typed array first before writing the data to IndexedDB.
+          node.contents = MEMFS.getFileDataAsTypedArray(node);
+          return callback(null, { timestamp: stat.mtime, mode: stat.mode, contents: node.contents });
+        } else {
+          return callback(new Error('node type not supported'));
+        }
+      },storeLocalEntry:function(path, entry, callback) {
+        try {
+          if (FS.isDir(entry.mode)) {
+            FS.mkdir(path, entry.mode);
+          } else if (FS.isFile(entry.mode)) {
+            FS.writeFile(path, entry.contents, { canOwn: true });
+          } else {
+            return callback(new Error('node type not supported'));
+          }
+  
+          FS.chmod(path, entry.mode);
+          FS.utime(path, entry.timestamp, entry.timestamp);
+        } catch (e) {
+          return callback(e);
+        }
+  
+        callback(null);
+      },removeLocalEntry:function(path, callback) {
+        try {
+          var lookup = FS.lookupPath(path);
+          var stat = FS.stat(path);
+  
+          if (FS.isDir(stat.mode)) {
+            FS.rmdir(path);
+          } else if (FS.isFile(stat.mode)) {
+            FS.unlink(path);
+          }
+        } catch (e) {
+          return callback(e);
+        }
+  
+        callback(null);
+      },loadRemoteEntry:function(store, path, callback) {
+        var req = store.get(path);
+        req.onsuccess = function(event) { callback(null, event.target.result); };
+        req.onerror = function(e) {
+          callback(this.error);
+          e.preventDefault();
+        };
+      },storeRemoteEntry:function(store, path, entry, callback) {
+        var req = store.put(entry, path);
+        req.onsuccess = function() { callback(null); };
+        req.onerror = function(e) {
+          callback(this.error);
+          e.preventDefault();
+        };
+      },removeRemoteEntry:function(store, path, callback) {
+        var req = store.delete(path);
+        req.onsuccess = function() { callback(null); };
+        req.onerror = function(e) {
+          callback(this.error);
+          e.preventDefault();
+        };
+      },reconcile:function(src, dst, callback) {
+        var total = 0;
+  
+        var create = [];
+        Object.keys(src.entries).forEach(function (key) {
+          var e = src.entries[key];
+          var e2 = dst.entries[key];
+          if (!e2 || e.timestamp > e2.timestamp) {
+            create.push(key);
+            total++;
+          }
+        });
+  
+        var remove = [];
+        Object.keys(dst.entries).forEach(function (key) {
+          var e = dst.entries[key];
+          var e2 = src.entries[key];
+          if (!e2) {
+            remove.push(key);
+            total++;
+          }
+        });
+  
+        if (!total) {
+          return callback(null);
+        }
+  
+        var errored = false;
+        var db = src.type === 'remote' ? src.db : dst.db;
+        var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readwrite');
+        var store = transaction.objectStore(IDBFS.DB_STORE_NAME);
+  
+        function done(err) {
+          if (err && !errored) {
+            errored = true;
+            return callback(err);
+          }
+        };
+  
+        transaction.onerror = function(e) {
+          done(this.error);
+          e.preventDefault();
+        };
+  
+        transaction.oncomplete = function(e) {
+          if (!errored) {
+            callback(null);
+          }
+        };
+  
+        // sort paths in ascending order so directory entries are created
+        // before the files inside them
+        create.sort().forEach(function (path) {
+          if (dst.type === 'local') {
+            IDBFS.loadRemoteEntry(store, path, function (err, entry) {
+              if (err) return done(err);
+              IDBFS.storeLocalEntry(path, entry, done);
+            });
+          } else {
+            IDBFS.loadLocalEntry(path, function (err, entry) {
+              if (err) return done(err);
+              IDBFS.storeRemoteEntry(store, path, entry, done);
+            });
+          }
+        });
+  
+        // sort paths in descending order so files are deleted before their
+        // parent directories
+        remove.sort().reverse().forEach(function(path) {
+          if (dst.type === 'local') {
+            IDBFS.removeLocalEntry(path, done);
+          } else {
+            IDBFS.removeRemoteEntry(store, path, done);
+          }
+        });
+      }};
+  
+  
+  var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var NODEFS={isWindows:false,staticInit:function() {
+        NODEFS.isWindows = !!process.platform.match(/^win/);
+        var flags = process["binding"]("constants");
+        // Node.js 4 compatibility: it has no namespaces for constants
+        if (flags["fs"]) {
+          flags = flags["fs"];
+        }
+        NODEFS.flagsForNodeMap = {
+          "1024": flags["O_APPEND"],
+          "64": flags["O_CREAT"],
+          "128": flags["O_EXCL"],
+          "0": flags["O_RDONLY"],
+          "2": flags["O_RDWR"],
+          "4096": flags["O_SYNC"],
+          "512": flags["O_TRUNC"],
+          "1": flags["O_WRONLY"]
+        };
+      },bufferFrom:function (arrayBuffer) {
+        // Node.js < 4.5 compatibility: Buffer.from does not support ArrayBuffer
+        // Buffer.from before 4.5 was just a method inherited from Uint8Array
+        // Buffer.alloc has been added with Buffer.from together, so check it instead
+        return Buffer["alloc"] ? Buffer.from(arrayBuffer) : new Buffer(arrayBuffer);
+      },convertNodeCode:function(e) {
+        var code = e.code;
+        assert(code in ERRNO_CODES);
+        return ERRNO_CODES[code];
+      },mount:function (mount) {
+        assert(ENVIRONMENT_HAS_NODE);
+        return NODEFS.createNode(null, '/', NODEFS.getMode(mount.opts.root), 0);
+      },createNode:function (parent, name, mode, dev) {
+        if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) {
+          throw new FS.ErrnoError(28);
+        }
+        var node = FS.createNode(parent, name, mode);
+        node.node_ops = NODEFS.node_ops;
+        node.stream_ops = NODEFS.stream_ops;
+        return node;
+      },getMode:function (path) {
+        var stat;
+        try {
+          stat = fs.lstatSync(path);
+          if (NODEFS.isWindows) {
+            // Node.js on Windows never represents permission bit 'x', so
+            // propagate read bits to execute bits
+            stat.mode = stat.mode | ((stat.mode & 292) >> 2);
+          }
+        } catch (e) {
+          if (!e.code) throw e;
+          throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+        }
+        return stat.mode;
+      },realPath:function (node) {
+        var parts = [];
+        while (node.parent !== node) {
+          parts.push(node.name);
+          node = node.parent;
+        }
+        parts.push(node.mount.opts.root);
+        parts.reverse();
+        return PATH.join.apply(null, parts);
+      },flagsForNode:function(flags) {
+        flags &= ~0x200000 /*O_PATH*/; // Ignore this flag from musl, otherwise node.js fails to open the file.
+        flags &= ~0x800 /*O_NONBLOCK*/; // Ignore this flag from musl, otherwise node.js fails to open the file.
+        flags &= ~0x8000 /*O_LARGEFILE*/; // Ignore this flag from musl, otherwise node.js fails to open the file.
+        flags &= ~0x80000 /*O_CLOEXEC*/; // Some applications may pass it; it makes no sense for a single process.
+        var newFlags = 0;
+        for (var k in NODEFS.flagsForNodeMap) {
+          if (flags & k) {
+            newFlags |= NODEFS.flagsForNodeMap[k];
+            flags ^= k;
+          }
+        }
+  
+        if (!flags) {
+          return newFlags;
+        } else {
+          throw new FS.ErrnoError(28);
+        }
+      },node_ops:{getattr:function(node) {
+          var path = NODEFS.realPath(node);
+          var stat;
+          try {
+            stat = fs.lstatSync(path);
+          } catch (e) {
+            if (!e.code) throw e;
+            throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+          }
+          // node.js v0.10.20 doesn't report blksize and blocks on Windows. Fake them with default blksize of 4096.
+          // See http://support.microsoft.com/kb/140365
+          if (NODEFS.isWindows && !stat.blksize) {
+            stat.blksize = 4096;
+          }
+          if (NODEFS.isWindows && !stat.blocks) {
+            stat.blocks = (stat.size+stat.blksize-1)/stat.blksize|0;
+          }
+          return {
+            dev: stat.dev,
+            ino: stat.ino,
+            mode: stat.mode,
+            nlink: stat.nlink,
+            uid: stat.uid,
+            gid: stat.gid,
+            rdev: stat.rdev,
+            size: stat.size,
+            atime: stat.atime,
+            mtime: stat.mtime,
+            ctime: stat.ctime,
+            blksize: stat.blksize,
+            blocks: stat.blocks
+          };
+        },setattr:function(node, attr) {
+          var path = NODEFS.realPath(node);
+          try {
+            if (attr.mode !== undefined) {
+              fs.chmodSync(path, attr.mode);
+              // update the common node structure mode as well
+              node.mode = attr.mode;
+            }
+            if (attr.timestamp !== undefined) {
+              var date = new Date(attr.timestamp);
+              fs.utimesSync(path, date, date);
+            }
+            if (attr.size !== undefined) {
+              fs.truncateSync(path, attr.size);
+            }
+          } catch (e) {
+            if (!e.code) throw e;
+            throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+          }
+        },lookup:function (parent, name) {
+          var path = PATH.join2(NODEFS.realPath(parent), name);
+          var mode = NODEFS.getMode(path);
+          return NODEFS.createNode(parent, name, mode);
+        },mknod:function (parent, name, mode, dev) {
+          var node = NODEFS.createNode(parent, name, mode, dev);
+          // create the backing node for this in the fs root as well
+          var path = NODEFS.realPath(node);
+          try {
+            if (FS.isDir(node.mode)) {
+              fs.mkdirSync(path, node.mode);
+            } else {
+              fs.writeFileSync(path, '', { mode: node.mode });
+            }
+          } catch (e) {
+            if (!e.code) throw e;
+            throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+          }
+          return node;
+        },rename:function (oldNode, newDir, newName) {
+          var oldPath = NODEFS.realPath(oldNode);
+          var newPath = PATH.join2(NODEFS.realPath(newDir), newName);
+          try {
+            fs.renameSync(oldPath, newPath);
+          } catch (e) {
+            if (!e.code) throw e;
+            throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+          }
+        },unlink:function(parent, name) {
+          var path = PATH.join2(NODEFS.realPath(parent), name);
+          try {
+            fs.unlinkSync(path);
+          } catch (e) {
+            if (!e.code) throw e;
+            throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+          }
+        },rmdir:function(parent, name) {
+          var path = PATH.join2(NODEFS.realPath(parent), name);
+          try {
+            fs.rmdirSync(path);
+          } catch (e) {
+            if (!e.code) throw e;
+            throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+          }
+        },readdir:function(node) {
+          var path = NODEFS.realPath(node);
+          try {
+            return fs.readdirSync(path);
+          } catch (e) {
+            if (!e.code) throw e;
+            throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+          }
+        },symlink:function(parent, newName, oldPath) {
+          var newPath = PATH.join2(NODEFS.realPath(parent), newName);
+          try {
+            fs.symlinkSync(oldPath, newPath);
+          } catch (e) {
+            if (!e.code) throw e;
+            throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+          }
+        },readlink:function(node) {
+          var path = NODEFS.realPath(node);
+          try {
+            path = fs.readlinkSync(path);
+            path = NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root), path);
+            return path;
+          } catch (e) {
+            if (!e.code) throw e;
+            throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+          }
+        }},stream_ops:{open:function (stream) {
+          var path = NODEFS.realPath(stream.node);
+          try {
+            if (FS.isFile(stream.node.mode)) {
+              stream.nfd = fs.openSync(path, NODEFS.flagsForNode(stream.flags));
+            }
+          } catch (e) {
+            if (!e.code) throw e;
+            throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+          }
+        },close:function (stream) {
+          try {
+            if (FS.isFile(stream.node.mode) && stream.nfd) {
+              fs.closeSync(stream.nfd);
+            }
+          } catch (e) {
+            if (!e.code) throw e;
+            throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+          }
+        },read:function (stream, buffer, offset, length, position) {
+          // Node.js < 6 compatibility: node errors on 0 length reads
+          if (length === 0) return 0;
+          try {
+            return fs.readSync(stream.nfd, NODEFS.bufferFrom(buffer.buffer), offset, length, position);
+          } catch (e) {
+            throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+          }
+        },write:function (stream, buffer, offset, length, position) {
+          try {
+            return fs.writeSync(stream.nfd, NODEFS.bufferFrom(buffer.buffer), offset, length, position);
+          } catch (e) {
+            throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+          }
+        },llseek:function (stream, offset, whence) {
+          var position = offset;
+          if (whence === 1) {
+            position += stream.position;
+          } else if (whence === 2) {
+            if (FS.isFile(stream.node.mode)) {
+              try {
+                var stat = fs.fstatSync(stream.nfd);
+                position += stat.size;
+              } catch (e) {
+                throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+              }
+            }
+          }
+  
+          if (position < 0) {
+            throw new FS.ErrnoError(28);
+          }
+  
+          return position;
+        }}};
+  
+  var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:function (mount) {
+        assert(ENVIRONMENT_IS_WORKER);
+        if (!WORKERFS.reader) WORKERFS.reader = new FileReaderSync();
+        var root = WORKERFS.createNode(null, '/', WORKERFS.DIR_MODE, 0);
+        var createdParents = {};
+        function ensureParent(path) {
+          // return the parent node, creating subdirs as necessary
+          var parts = path.split('/');
+          var parent = root;
+          for (var i = 0; i < parts.length-1; i++) {
+            var curr = parts.slice(0, i+1).join('/');
+            // Issue 4254: Using curr as a node name will prevent the node
+            // from being found in FS.nameTable when FS.open is called on
+            // a path which holds a child of this node,
+            // given that all FS functions assume node names
+            // are just their corresponding parts within their given path,
+            // rather than incremental aggregates which include their parent's
+            // directories.
+            if (!createdParents[curr]) {
+              createdParents[curr] = WORKERFS.createNode(parent, parts[i], WORKERFS.DIR_MODE, 0);
+            }
+            parent = createdParents[curr];
+          }
+          return parent;
+        }
+        function base(path) {
+          var parts = path.split('/');
+          return parts[parts.length-1];
+        }
+        // We also accept FileList here, by using Array.prototype
+        Array.prototype.forEach.call(mount.opts["files"] || [], function(file) {
+          WORKERFS.createNode(ensureParent(file.name), base(file.name), WORKERFS.FILE_MODE, 0, file, file.lastModifiedDate);
+        });
+        (mount.opts["blobs"] || []).forEach(function(obj) {
+          WORKERFS.createNode(ensureParent(obj["name"]), base(obj["name"]), WORKERFS.FILE_MODE, 0, obj["data"]);
+        });
+        (mount.opts["packages"] || []).forEach(function(pack) {
+          pack['metadata'].files.forEach(function(file) {
+            var name = file.filename.substr(1); // remove initial slash
+            WORKERFS.createNode(ensureParent(name), base(name), WORKERFS.FILE_MODE, 0, pack['blob'].slice(file.start, file.end));
+          });
+        });
+        return root;
+      },createNode:function (parent, name, mode, dev, contents, mtime) {
+        var node = FS.createNode(parent, name, mode);
+        node.mode = mode;
+        node.node_ops = WORKERFS.node_ops;
+        node.stream_ops = WORKERFS.stream_ops;
+        node.timestamp = (mtime || new Date).getTime();
+        assert(WORKERFS.FILE_MODE !== WORKERFS.DIR_MODE);
+        if (mode === WORKERFS.FILE_MODE) {
+          node.size = contents.size;
+          node.contents = contents;
+        } else {
+          node.size = 4096;
+          node.contents = {};
+        }
+        if (parent) {
+          parent.contents[name] = node;
+        }
+        return node;
+      },node_ops:{getattr:function(node) {
+          return {
+            dev: 1,
+            ino: undefined,
+            mode: node.mode,
+            nlink: 1,
+            uid: 0,
+            gid: 0,
+            rdev: undefined,
+            size: node.size,
+            atime: new Date(node.timestamp),
+            mtime: new Date(node.timestamp),
+            ctime: new Date(node.timestamp),
+            blksize: 4096,
+            blocks: Math.ceil(node.size / 4096),
+          };
+        },setattr:function(node, attr) {
+          if (attr.mode !== undefined) {
+            node.mode = attr.mode;
+          }
+          if (attr.timestamp !== undefined) {
+            node.timestamp = attr.timestamp;
+          }
+        },lookup:function(parent, name) {
+          throw new FS.ErrnoError(44);
+        },mknod:function (parent, name, mode, dev) {
+          throw new FS.ErrnoError(63);
+        },rename:function (oldNode, newDir, newName) {
+          throw new FS.ErrnoError(63);
+        },unlink:function(parent, name) {
+          throw new FS.ErrnoError(63);
+        },rmdir:function(parent, name) {
+          throw new FS.ErrnoError(63);
+        },readdir:function(node) {
+          var entries = ['.', '..'];
+          for (var key in node.contents) {
+            if (!node.contents.hasOwnProperty(key)) {
+              continue;
+            }
+            entries.push(key);
+          }
+          return entries;
+        },symlink:function(parent, newName, oldPath) {
+          throw new FS.ErrnoError(63);
+        },readlink:function(node) {
+          throw new FS.ErrnoError(63);
+        }},stream_ops:{read:function (stream, buffer, offset, length, position) {
+          if (position >= stream.node.size) return 0;
+          var chunk = stream.node.contents.slice(position, position + length);
+          var ab = WORKERFS.reader.readAsArrayBuffer(chunk);
+          buffer.set(new Uint8Array(ab), offset);
+          return chunk.size;
+        },write:function (stream, buffer, offset, length, position) {
+          throw new FS.ErrnoError(29);
+        },llseek:function (stream, offset, whence) {
+          var position = offset;
+          if (whence === 1) {
+            position += stream.position;
+          } else if (whence === 2) {
+            if (FS.isFile(stream.node.mode)) {
+              position += stream.node.size;
+            }
+          }
+          if (position < 0) {
+            throw new FS.ErrnoError(28);
+          }
+          return position;
+        }}};
+  
+  var ERRNO_MESSAGES={0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can   access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(e) {
+        if (!(e instanceof FS.ErrnoError)) throw e + ' : ' + stackTrace();
+        return ___setErrNo(e.errno);
+      },lookupPath:function(path, opts) {
+        path = PATH_FS.resolve(FS.cwd(), path);
+        opts = opts || {};
+  
+        if (!path) return { path: '', node: null };
+  
+        var defaults = {
+          follow_mount: true,
+          recurse_count: 0
+        };
+        for (var key in defaults) {
+          if (opts[key] === undefined) {
+            opts[key] = defaults[key];
+          }
+        }
+  
+        if (opts.recurse_count > 8) {  // max recursive lookup of 8
+          throw new FS.ErrnoError(32);
+        }
+  
+        // split the path
+        var parts = PATH.normalizeArray(path.split('/').filter(function(p) {
+          return !!p;
+        }), false);
+  
+        // start at the root
+        var current = FS.root;
+        var current_path = '/';
+  
+        for (var i = 0; i < parts.length; i++) {
+          var islast = (i === parts.length-1);
+          if (islast && opts.parent) {
+            // stop resolving
+            break;
+          }
+  
+          current = FS.lookupNode(current, parts[i]);
+          current_path = PATH.join2(current_path, parts[i]);
+  
+          // jump to the mount's root node if this is a mountpoint
+          if (FS.isMountpoint(current)) {
+            if (!islast || (islast && opts.follow_mount)) {
+              current = current.mounted.root;
+            }
+          }
+  
+          // by default, lookupPath will not follow a symlink if it is the final path component.
+          // setting opts.follow = true will override this behavior.
+          if (!islast || opts.follow) {
+            var count = 0;
+            while (FS.isLink(current.mode)) {
+              var link = FS.readlink(current_path);
+              current_path = PATH_FS.resolve(PATH.dirname(current_path), link);
+  
+              var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count });
+              current = lookup.node;
+  
+              if (count++ > 40) {  // limit max consecutive symlinks to 40 (SYMLOOP_MAX).
+                throw new FS.ErrnoError(32);
+              }
+            }
+          }
+        }
+  
+        return { path: current_path, node: current };
+      },getPath:function(node) {
+        var path;
+        while (true) {
+          if (FS.isRoot(node)) {
+            var mount = node.mount.mountpoint;
+            if (!path) return mount;
+            return mount[mount.length-1] !== '/' ? mount + '/' + path : mount + path;
+          }
+          path = path ? node.name + '/' + path : node.name;
+          node = node.parent;
+        }
+      },hashName:function(parentid, name) {
+        var hash = 0;
+  
+  
+        for (var i = 0; i < name.length; i++) {
+          hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0;
+        }
+        return ((parentid + hash) >>> 0) % FS.nameTable.length;
+      },hashAddNode:function(node) {
+        var hash = FS.hashName(node.parent.id, node.name);
+        node.name_next = FS.nameTable[hash];
+        FS.nameTable[hash] = node;
+      },hashRemoveNode:function(node) {
+        var hash = FS.hashName(node.parent.id, node.name);
+        if (FS.nameTable[hash] === node) {
+          FS.nameTable[hash] = node.name_next;
+        } else {
+          var current = FS.nameTable[hash];
+          while (current) {
+            if (current.name_next === node) {
+              current.name_next = node.name_next;
+              break;
+            }
+            current = current.name_next;
+          }
+        }
+      },lookupNode:function(parent, name) {
+        var err = FS.mayLookup(parent);
+        if (err) {
+          throw new FS.ErrnoError(err, parent);
+        }
+        var hash = FS.hashName(parent.id, name);
+        for (var node = FS.nameTable[hash]; node; node = node.name_next) {
+          var nodeName = node.name;
+          if (node.parent.id === parent.id && nodeName === name) {
+            return node;
+          }
+        }
+        // if we failed to find it in the cache, call into the VFS
+        return FS.lookup(parent, name);
+      },createNode:function(parent, name, mode, rdev) {
+        if (!FS.FSNode) {
+          FS.FSNode = function(parent, name, mode, rdev) {
+            if (!parent) {
+              parent = this;  // root node sets parent to itself
+            }
+            this.parent = parent;
+            this.mount = parent.mount;
+            this.mounted = null;
+            this.id = FS.nextInode++;
+            this.name = name;
+            this.mode = mode;
+            this.node_ops = {};
+            this.stream_ops = {};
+            this.rdev = rdev;
+          };
+  
+          FS.FSNode.prototype = {};
+  
+          // compatibility
+          var readMode = 292 | 73;
+          var writeMode = 146;
+  
+          // NOTE we must use Object.defineProperties instead of individual calls to
+          // Object.defineProperty in order to make closure compiler happy
+          Object.defineProperties(FS.FSNode.prototype, {
+            read: {
+              get: function() { return (this.mode & readMode) === readMode; },
+              set: function(val) { val ? this.mode |= readMode : this.mode &= ~readMode; }
+            },
+            write: {
+              get: function() { return (this.mode & writeMode) === writeMode; },
+              set: function(val) { val ? this.mode |= writeMode : this.mode &= ~writeMode; }
+            },
+            isFolder: {
+              get: function() { return FS.isDir(this.mode); }
+            },
+            isDevice: {
+              get: function() { return FS.isChrdev(this.mode); }
+            }
+          });
+        }
+  
+        var node = new FS.FSNode(parent, name, mode, rdev);
+  
+        FS.hashAddNode(node);
+  
+        return node;
+      },destroyNode:function(node) {
+        FS.hashRemoveNode(node);
+      },isRoot:function(node) {
+        return node === node.parent;
+      },isMountpoint:function(node) {
+        return !!node.mounted;
+      },isFile:function(mode) {
+        return (mode & 61440) === 32768;
+      },isDir:function(mode) {
+        return (mode & 61440) === 16384;
+      },isLink:function(mode) {
+        return (mode & 61440) === 40960;
+      },isChrdev:function(mode) {
+        return (mode & 61440) === 8192;
+      },isBlkdev:function(mode) {
+        return (mode & 61440) === 24576;
+      },isFIFO:function(mode) {
+        return (mode & 61440) === 4096;
+      },isSocket:function(mode) {
+        return (mode & 49152) === 49152;
+      },flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(str) {
+        var flags = FS.flagModes[str];
+        if (typeof flags === 'undefined') {
+          throw new Error('Unknown file open mode: ' + str);
+        }
+        return flags;
+      },flagsToPermissionString:function(flag) {
+        var perms = ['r', 'w', 'rw'][flag & 3];
+        if ((flag & 512)) {
+          perms += 'w';
+        }
+        return perms;
+      },nodePermissions:function(node, perms) {
+        if (FS.ignorePermissions) {
+          return 0;
+        }
+        // return 0 if any user, group or owner bits are set.
+        if (perms.indexOf('r') !== -1 && !(node.mode & 292)) {
+          return 2;
+        } else if (perms.indexOf('w') !== -1 && !(node.mode & 146)) {
+          return 2;
+        } else if (perms.indexOf('x') !== -1 && !(node.mode & 73)) {
+          return 2;
+        }
+        return 0;
+      },mayLookup:function(dir) {
+        var err = FS.nodePermissions(dir, 'x');
+        if (err) return err;
+        if (!dir.node_ops.lookup) return 2;
+        return 0;
+      },mayCreate:function(dir, name) {
+        try {
+          var node = FS.lookupNode(dir, name);
+          return 20;
+        } catch (e) {
+        }
+        return FS.nodePermissions(dir, 'wx');
+      },mayDelete:function(dir, name, isdir) {
+        var node;
+        try {
+          node = FS.lookupNode(dir, name);
+        } catch (e) {
+          return e.errno;
+        }
+        var err = FS.nodePermissions(dir, 'wx');
+        if (err) {
+          return err;
+        }
+        if (isdir) {
+          if (!FS.isDir(node.mode)) {
+            return 54;
+          }
+          if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) {
+            return 10;
+          }
+        } else {
+          if (FS.isDir(node.mode)) {
+            return 31;
+          }
+        }
+        return 0;
+      },mayOpen:function(node, flags) {
+        if (!node) {
+          return 44;
+        }
+        if (FS.isLink(node.mode)) {
+          return 32;
+        } else if (FS.isDir(node.mode)) {
+          if (FS.flagsToPermissionString(flags) !== 'r' || // opening for write
+              (flags & 512)) { // TODO: check for O_SEARCH? (== search for dir only)
+            return 31;
+          }
+        }
+        return FS.nodePermissions(node, FS.flagsToPermissionString(flags));
+      },MAX_OPEN_FDS:4096,nextfd:function(fd_start, fd_end) {
+        fd_start = fd_start || 0;
+        fd_end = fd_end || FS.MAX_OPEN_FDS;
+        for (var fd = fd_start; fd <= fd_end; fd++) {
+          if (!FS.streams[fd]) {
+            return fd;
+          }
+        }
+        throw new FS.ErrnoError(33);
+      },getStream:function(fd) {
+        return FS.streams[fd];
+      },createStream:function(stream, fd_start, fd_end) {
+        if (!FS.FSStream) {
+          FS.FSStream = function(){};
+          FS.FSStream.prototype = {};
+          // compatibility
+          Object.defineProperties(FS.FSStream.prototype, {
+            object: {
+              get: function() { return this.node; },
+              set: function(val) { this.node = val; }
+            },
+            isRead: {
+              get: function() { return (this.flags & 2097155) !== 1; }
+            },
+            isWrite: {
+              get: function() { return (this.flags & 2097155) !== 0; }
+            },
+            isAppend: {
+              get: function() { return (this.flags & 1024); }
+            }
+          });
+        }
+        // clone it, so we can return an instance of FSStream
+        var newStream = new FS.FSStream();
+        for (var p in stream) {
+          newStream[p] = stream[p];
+        }
+        stream = newStream;
+        var fd = FS.nextfd(fd_start, fd_end);
+        stream.fd = fd;
+        FS.streams[fd] = stream;
+        return stream;
+      },closeStream:function(fd) {
+        FS.streams[fd] = null;
+      },chrdev_stream_ops:{open:function(stream) {
+          var device = FS.getDevice(stream.node.rdev);
+          // override node's stream ops with the device's
+          stream.stream_ops = device.stream_ops;
+          // forward the open call
+          if (stream.stream_ops.open) {
+            stream.stream_ops.open(stream);
+          }
+        },llseek:function() {
+          throw new FS.ErrnoError(70);
+        }},major:function(dev) {
+        return ((dev) >> 8);
+      },minor:function(dev) {
+        return ((dev) & 0xff);
+      },makedev:function(ma, mi) {
+        return ((ma) << 8 | (mi));
+      },registerDevice:function(dev, ops) {
+        FS.devices[dev] = { stream_ops: ops };
+      },getDevice:function(dev) {
+        return FS.devices[dev];
+      },getMounts:function(mount) {
+        var mounts = [];
+        var check = [mount];
+  
+        while (check.length) {
+          var m = check.pop();
+  
+          mounts.push(m);
+  
+          check.push.apply(check, m.mounts);
+        }
+  
+        return mounts;
+      },syncfs:function(populate, callback) {
+        if (typeof(populate) === 'function') {
+          callback = populate;
+          populate = false;
+        }
+  
+        FS.syncFSRequests++;
+  
+        if (FS.syncFSRequests > 1) {
+          console.log('warning: ' + FS.syncFSRequests + ' FS.syncfs operations in flight at once, probably just doing extra work');
+        }
+  
+        var mounts = FS.getMounts(FS.root.mount);
+        var completed = 0;
+  
+        function doCallback(err) {
+          assert(FS.syncFSRequests > 0);
+          FS.syncFSRequests--;
+          return callback(err);
+        }
+  
+        function done(err) {
+          if (err) {
+            if (!done.errored) {
+              done.errored = true;
+              return doCallback(err);
+            }
+            return;
+          }
+          if (++completed >= mounts.length) {
+            doCallback(null);
+          }
+        };
+  
+        // sync all mounts
+        mounts.forEach(function (mount) {
+          if (!mount.type.syncfs) {
+            return done(null);
+          }
+          mount.type.syncfs(mount, populate, done);
+        });
+      },mount:function(type, opts, mountpoint) {
+        var root = mountpoint === '/';
+        var pseudo = !mountpoint;
+        var node;
+  
+        if (root && FS.root) {
+          throw new FS.ErrnoError(10);
+        } else if (!root && !pseudo) {
+          var lookup = FS.lookupPath(mountpoint, { follow_mount: false });
+  
+          mountpoint = lookup.path;  // use the absolute path
+          node = lookup.node;
+  
+          if (FS.isMountpoint(node)) {
+            throw new FS.ErrnoError(10);
+          }
+  
+          if (!FS.isDir(node.mode)) {
+            throw new FS.ErrnoError(54);
+          }
+        }
+  
+        var mount = {
+          type: type,
+          opts: opts,
+          mountpoint: mountpoint,
+          mounts: []
+        };
+  
+        // create a root node for the fs
+        var mountRoot = type.mount(mount);
+        mountRoot.mount = mount;
+        mount.root = mountRoot;
+  
+        if (root) {
+          FS.root = mountRoot;
+        } else if (node) {
+          // set as a mountpoint
+          node.mounted = mount;
+  
+          // add the new mount to the current mount's children
+          if (node.mount) {
+            node.mount.mounts.push(mount);
+          }
+        }
+  
+        return mountRoot;
+      },unmount:function (mountpoint) {
+        var lookup = FS.lookupPath(mountpoint, { follow_mount: false });
+  
+        if (!FS.isMountpoint(lookup.node)) {
+          throw new FS.ErrnoError(28);
+        }
+  
+        // destroy the nodes for this mount, and all its child mounts
+        var node = lookup.node;
+        var mount = node.mounted;
+        var mounts = FS.getMounts(mount);
+  
+        Object.keys(FS.nameTable).forEach(function (hash) {
+          var current = FS.nameTable[hash];
+  
+          while (current) {
+            var next = current.name_next;
+  
+            if (mounts.indexOf(current.mount) !== -1) {
+              FS.destroyNode(current);
+            }
+  
+            current = next;
+          }
+        });
+  
+        // no longer a mountpoint
+        node.mounted = null;
+  
+        // remove this mount from the child mounts
+        var idx = node.mount.mounts.indexOf(mount);
+        assert(idx !== -1);
+        node.mount.mounts.splice(idx, 1);
+      },lookup:function(parent, name) {
+        return parent.node_ops.lookup(parent, name);
+      },mknod:function(path, mode, dev) {
+        var lookup = FS.lookupPath(path, { parent: true });
+        var parent = lookup.node;
+        var name = PATH.basename(path);
+        if (!name || name === '.' || name === '..') {
+          throw new FS.ErrnoError(28);
+        }
+        var err = FS.mayCreate(parent, name);
+        if (err) {
+          throw new FS.ErrnoError(err);
+        }
+        if (!parent.node_ops.mknod) {
+          throw new FS.ErrnoError(63);
+        }
+        return parent.node_ops.mknod(parent, name, mode, dev);
+      },create:function(path, mode) {
+        mode = mode !== undefined ? mode : 438 /* 0666 */;
+        mode &= 4095;
+        mode |= 32768;
+        return FS.mknod(path, mode, 0);
+      },mkdir:function(path, mode) {
+        mode = mode !== undefined ? mode : 511 /* 0777 */;
+        mode &= 511 | 512;
+        mode |= 16384;
+        return FS.mknod(path, mode, 0);
+      },mkdirTree:function(path, mode) {
+        var dirs = path.split('/');
+        var d = '';
+        for (var i = 0; i < dirs.length; ++i) {
+          if (!dirs[i]) continue;
+          d += '/' + dirs[i];
+          try {
+            FS.mkdir(d, mode);
+          } catch(e) {
+            if (e.errno != 20) throw e;
+          }
+        }
+      },mkdev:function(path, mode, dev) {
+        if (typeof(dev) === 'undefined') {
+          dev = mode;
+          mode = 438 /* 0666 */;
+        }
+        mode |= 8192;
+        return FS.mknod(path, mode, dev);
+      },symlink:function(oldpath, newpath) {
+        if (!PATH_FS.resolve(oldpath)) {
+          throw new FS.ErrnoError(44);
+        }
+        var lookup = FS.lookupPath(newpath, { parent: true });
+        var parent = lookup.node;
+        if (!parent) {
+          throw new FS.ErrnoError(44);
+        }
+        var newname = PATH.basename(newpath);
+        var err = FS.mayCreate(parent, newname);
+        if (err) {
+          throw new FS.ErrnoError(err);
+        }
+        if (!parent.node_ops.symlink) {
+          throw new FS.ErrnoError(63);
+        }
+        return parent.node_ops.symlink(parent, newname, oldpath);
+      },rename:function(old_path, new_path) {
+        var old_dirname = PATH.dirname(old_path);
+        var new_dirname = PATH.dirname(new_path);
+        var old_name = PATH.basename(old_path);
+        var new_name = PATH.basename(new_path);
+        // parents must exist
+        var lookup, old_dir, new_dir;
+        try {
+          lookup = FS.lookupPath(old_path, { parent: true });
+          old_dir = lookup.node;
+          lookup = FS.lookupPath(new_path, { parent: true });
+          new_dir = lookup.node;
+        } catch (e) {
+          throw new FS.ErrnoError(10);
+        }
+        if (!old_dir || !new_dir) throw new FS.ErrnoError(44);
+        // need to be part of the same mount
+        if (old_dir.mount !== new_dir.mount) {
+          throw new FS.ErrnoError(75);
+        }
+        // source must exist
+        var old_node = FS.lookupNode(old_dir, old_name);
+        // old path should not be an ancestor of the new path
+        var relative = PATH_FS.relative(old_path, new_dirname);
+        if (relative.charAt(0) !== '.') {
+          throw new FS.ErrnoError(28);
+        }
+        // new path should not be an ancestor of the old path
+        relative = PATH_FS.relative(new_path, old_dirname);
+        if (relative.charAt(0) !== '.') {
+          throw new FS.ErrnoError(55);
+        }
+        // see if the new path already exists
+        var new_node;
+        try {
+          new_node = FS.lookupNode(new_dir, new_name);
+        } catch (e) {
+          // not fatal
+        }
+        // early out if nothing needs to change
+        if (old_node === new_node) {
+          return;
+        }
+        // we'll need to delete the old entry
+        var isdir = FS.isDir(old_node.mode);
+        var err = FS.mayDelete(old_dir, old_name, isdir);
+        if (err) {
+          throw new FS.ErrnoError(err);
+        }
+        // need delete permissions if we'll be overwriting.
+        // need create permissions if new doesn't already exist.
+        err = new_node ?
+          FS.mayDelete(new_dir, new_name, isdir) :
+          FS.mayCreate(new_dir, new_name);
+        if (err) {
+          throw new FS.ErrnoError(err);
+        }
+        if (!old_dir.node_ops.rename) {
+          throw new FS.ErrnoError(63);
+        }
+        if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) {
+          throw new FS.ErrnoError(10);
+        }
+        // if we are going to change the parent, check write permissions
+        if (new_dir !== old_dir) {
+          err = FS.nodePermissions(old_dir, 'w');
+          if (err) {
+            throw new FS.ErrnoError(err);
+          }
+        }
+        try {
+          if (FS.trackingDelegate['willMovePath']) {
+            FS.trackingDelegate['willMovePath'](old_path, new_path);
+          }
+        } catch(e) {
+          console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message);
+        }
+        // remove the node from the lookup hash
+        FS.hashRemoveNode(old_node);
+        // do the underlying fs rename
+        try {
+          old_dir.node_ops.rename(old_node, new_dir, new_name);
+        } catch (e) {
+          throw e;
+        } finally {
+          // add the node back to the hash (in case node_ops.rename
+          // changed its name)
+          FS.hashAddNode(old_node);
+        }
+        try {
+          if (FS.trackingDelegate['onMovePath']) FS.trackingDelegate['onMovePath'](old_path, new_path);
+        } catch(e) {
+          console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message);
+        }
+      },rmdir:function(path) {
+        var lookup = FS.lookupPath(path, { parent: true });
+        var parent = lookup.node;
+        var name = PATH.basename(path);
+        var node = FS.lookupNode(parent, name);
+        var err = FS.mayDelete(parent, name, true);
+        if (err) {
+          throw new FS.ErrnoError(err);
+        }
+        if (!parent.node_ops.rmdir) {
+          throw new FS.ErrnoError(63);
+        }
+        if (FS.isMountpoint(node)) {
+          throw new FS.ErrnoError(10);
+        }
+        try {
+          if (FS.trackingDelegate['willDeletePath']) {
+            FS.trackingDelegate['willDeletePath'](path);
+          }
+        } catch(e) {
+          console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message);
+        }
+        parent.node_ops.rmdir(parent, name);
+        FS.destroyNode(node);
+        try {
+          if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path);
+        } catch(e) {
+          console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message);
+        }
+      },readdir:function(path) {
+        var lookup = FS.lookupPath(path, { follow: true });
+        var node = lookup.node;
+        if (!node.node_ops.readdir) {
+          throw new FS.ErrnoError(54);
+        }
+        return node.node_ops.readdir(node);
+      },unlink:function(path) {
+        var lookup = FS.lookupPath(path, { parent: true });
+        var parent = lookup.node;
+        var name = PATH.basename(path);
+        var node = FS.lookupNode(parent, name);
+        var err = FS.mayDelete(parent, name, false);
+        if (err) {
+          // According to POSIX, we should map EISDIR to EPERM, but
+          // we instead do what Linux does (and we must, as we use
+          // the musl linux libc).
+          throw new FS.ErrnoError(err);
+        }
+        if (!parent.node_ops.unlink) {
+          throw new FS.ErrnoError(63);
+        }
+        if (FS.isMountpoint(node)) {
+          throw new FS.ErrnoError(10);
+        }
+        try {
+          if (FS.trackingDelegate['willDeletePath']) {
+            FS.trackingDelegate['willDeletePath'](path);
+          }
+        } catch(e) {
+          console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message);
+        }
+        parent.node_ops.unlink(parent, name);
+        FS.destroyNode(node);
+        try {
+          if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path);
+        } catch(e) {
+          console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message);
+        }
+      },readlink:function(path) {
+        var lookup = FS.lookupPath(path);
+        var link = lookup.node;
+        if (!link) {
+          throw new FS.ErrnoError(44);
+        }
+        if (!link.node_ops.readlink) {
+          throw new FS.ErrnoError(28);
+        }
+        return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link));
+      },stat:function(path, dontFollow) {
+        var lookup = FS.lookupPath(path, { follow: !dontFollow });
+        var node = lookup.node;
+        if (!node) {
+          throw new FS.ErrnoError(44);
+        }
+        if (!node.node_ops.getattr) {
+          throw new FS.ErrnoError(63);
+        }
+        return node.node_ops.getattr(node);
+      },lstat:function(path) {
+        return FS.stat(path, true);
+      },chmod:function(path, mode, dontFollow) {
+        var node;
+        if (typeof path === 'string') {
+          var lookup = FS.lookupPath(path, { follow: !dontFollow });
+          node = lookup.node;
+        } else {
+          node = path;
+        }
+        if (!node.node_ops.setattr) {
+          throw new FS.ErrnoError(63);
+        }
+        node.node_ops.setattr(node, {
+          mode: (mode & 4095) | (node.mode & ~4095),
+          timestamp: Date.now()
+        });
+      },lchmod:function(path, mode) {
+        FS.chmod(path, mode, true);
+      },fchmod:function(fd, mode) {
+        var stream = FS.getStream(fd);
+        if (!stream) {
+          throw new FS.ErrnoError(8);
+        }
+        FS.chmod(stream.node, mode);
+      },chown:function(path, uid, gid, dontFollow) {
+        var node;
+        if (typeof path === 'string') {
+          var lookup = FS.lookupPath(path, { follow: !dontFollow });
+          node = lookup.node;
+        } else {
+          node = path;
+        }
+        if (!node.node_ops.setattr) {
+          throw new FS.ErrnoError(63);
+        }
+        node.node_ops.setattr(node, {
+          timestamp: Date.now()
+          // we ignore the uid / gid for now
+        });
+      },lchown:function(path, uid, gid) {
+        FS.chown(path, uid, gid, true);
+      },fchown:function(fd, uid, gid) {
+        var stream = FS.getStream(fd);
+        if (!stream) {
+          throw new FS.ErrnoError(8);
+        }
+        FS.chown(stream.node, uid, gid);
+      },truncate:function(path, len) {
+        if (len < 0) {
+          throw new FS.ErrnoError(28);
+        }
+        var node;
+        if (typeof path === 'string') {
+          var lookup = FS.lookupPath(path, { follow: true });
+          node = lookup.node;
+        } else {
+          node = path;
+        }
+        if (!node.node_ops.setattr) {
+          throw new FS.ErrnoError(63);
+        }
+        if (FS.isDir(node.mode)) {
+          throw new FS.ErrnoError(31);
+        }
+        if (!FS.isFile(node.mode)) {
+          throw new FS.ErrnoError(28);
+        }
+        var err = FS.nodePermissions(node, 'w');
+        if (err) {
+          throw new FS.ErrnoError(err);
+        }
+        node.node_ops.setattr(node, {
+          size: len,
+          timestamp: Date.now()
+        });
+      },ftruncate:function(fd, len) {
+        var stream = FS.getStream(fd);
+        if (!stream) {
+          throw new FS.ErrnoError(8);
+        }
+        if ((stream.flags & 2097155) === 0) {
+          throw new FS.ErrnoError(28);
+        }
+        FS.truncate(stream.node, len);
+      },utime:function(path, atime, mtime) {
+        var lookup = FS.lookupPath(path, { follow: true });
+        var node = lookup.node;
+        node.node_ops.setattr(node, {
+          timestamp: Math.max(atime, mtime)
+        });
+      },open:function(path, flags, mode, fd_start, fd_end) {
+        if (path === "") {
+          throw new FS.ErrnoError(44);
+        }
+        flags = typeof flags === 'string' ? FS.modeStringToFlags(flags) : flags;
+        mode = typeof mode === 'undefined' ? 438 /* 0666 */ : mode;
+        if ((flags & 64)) {
+          mode = (mode & 4095) | 32768;
+        } else {
+          mode = 0;
+        }
+        var node;
+        if (typeof path === 'object') {
+          node = path;
+        } else {
+          path = PATH.normalize(path);
+          try {
+            var lookup = FS.lookupPath(path, {
+              follow: !(flags & 131072)
+            });
+            node = lookup.node;
+          } catch (e) {
+            // ignore
+          }
+        }
+        // perhaps we need to create the node
+        var created = false;
+        if ((flags & 64)) {
+          if (node) {
+            // if O_CREAT and O_EXCL are set, error out if the node already exists
+            if ((flags & 128)) {
+              throw new FS.ErrnoError(20);
+            }
+          } else {
+            // node doesn't exist, try to create it
+            node = FS.mknod(path, mode, 0);
+            created = true;
+          }
+        }
+        if (!node) {
+          throw new FS.ErrnoError(44);
+        }
+        // can't truncate a device
+        if (FS.isChrdev(node.mode)) {
+          flags &= ~512;
+        }
+        // if asked only for a directory, then this must be one
+        if ((flags & 65536) && !FS.isDir(node.mode)) {
+          throw new FS.ErrnoError(54);
+        }
+        // check permissions, if this is not a file we just created now (it is ok to
+        // create and write to a file with read-only permissions; it is read-only
+        // for later use)
+        if (!created) {
+          var err = FS.mayOpen(node, flags);
+          if (err) {
+            throw new FS.ErrnoError(err);
+          }
+        }
+        // do truncation if necessary
+        if ((flags & 512)) {
+          FS.truncate(node, 0);
+        }
+        // we've already handled these, don't pass down to the underlying vfs
+        flags &= ~(128 | 512);
+  
+        // register the stream with the filesystem
+        var stream = FS.createStream({
+          node: node,
+          path: FS.getPath(node),  // we want the absolute path to the node
+          flags: flags,
+          seekable: true,
+          position: 0,
+          stream_ops: node.stream_ops,
+          // used by the file family libc calls (fopen, fwrite, ferror, etc.)
+          ungotten: [],
+          error: false
+        }, fd_start, fd_end);
+        // call the new stream's open function
+        if (stream.stream_ops.open) {
+          stream.stream_ops.open(stream);
+        }
+        if (Module['logReadFiles'] && !(flags & 1)) {
+          if (!FS.readFiles) FS.readFiles = {};
+          if (!(path in FS.readFiles)) {
+            FS.readFiles[path] = 1;
+            console.log("FS.trackingDelegate error on read file: " + path);
+          }
+        }
+        try {
+          if (FS.trackingDelegate['onOpenFile']) {
+            var trackingFlags = 0;
+            if ((flags & 2097155) !== 1) {
+              trackingFlags |= FS.tracking.openFlags.READ;
+            }
+            if ((flags & 2097155) !== 0) {
+              trackingFlags |= FS.tracking.openFlags.WRITE;
+            }
+            FS.trackingDelegate['onOpenFile'](path, trackingFlags);
+          }
+        } catch(e) {
+          console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: " + e.message);
+        }
+        return stream;
+      },close:function(stream) {
+        if (FS.isClosed(stream)) {
+          throw new FS.ErrnoError(8);
+        }
+        if (stream.getdents) stream.getdents = null; // free readdir state
+        try {
+          if (stream.stream_ops.close) {
+            stream.stream_ops.close(stream);
+          }
+        } catch (e) {
+          throw e;
+        } finally {
+          FS.closeStream(stream.fd);
+        }
+        stream.fd = null;
+      },isClosed:function(stream) {
+        return stream.fd === null;
+      },llseek:function(stream, offset, whence) {
+        if (FS.isClosed(stream)) {
+          throw new FS.ErrnoError(8);
+        }
+        if (!stream.seekable || !stream.stream_ops.llseek) {
+          throw new FS.ErrnoError(70);
+        }
+        if (whence != 0 && whence != 1 && whence != 2) {
+          throw new FS.ErrnoError(28);
+        }
+        stream.position = stream.stream_ops.llseek(stream, offset, whence);
+        stream.ungotten = [];
+        return stream.position;
+      },read:function(stream, buffer, offset, length, position) {
+        if (length < 0 || position < 0) {
+          throw new FS.ErrnoError(28);
+        }
+        if (FS.isClosed(stream)) {
+          throw new FS.ErrnoError(8);
+        }
+        if ((stream.flags & 2097155) === 1) {
+          throw new FS.ErrnoError(8);
+        }
+        if (FS.isDir(stream.node.mode)) {
+          throw new FS.ErrnoError(31);
+        }
+        if (!stream.stream_ops.read) {
+          throw new FS.ErrnoError(28);
+        }
+        var seeking = typeof position !== 'undefined';
+        if (!seeking) {
+          position = stream.position;
+        } else if (!stream.seekable) {
+          throw new FS.ErrnoError(70);
+        }
+        var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position);
+        if (!seeking) stream.position += bytesRead;
+        return bytesRead;
+      },write:function(stream, buffer, offset, length, position, canOwn) {
+        if (length < 0 || position < 0) {
+          throw new FS.ErrnoError(28);
+        }
+        if (FS.isClosed(stream)) {
+          throw new FS.ErrnoError(8);
+        }
+        if ((stream.flags & 2097155) === 0) {
+          throw new FS.ErrnoError(8);
+        }
+        if (FS.isDir(stream.node.mode)) {
+          throw new FS.ErrnoError(31);
+        }
+        if (!stream.stream_ops.write) {
+          throw new FS.ErrnoError(28);
+        }
+        if (stream.flags & 1024) {
+          // seek to the end before writing in append mode
+          FS.llseek(stream, 0, 2);
+        }
+        var seeking = typeof position !== 'undefined';
+        if (!seeking) {
+          position = stream.position;
+        } else if (!stream.seekable) {
+          throw new FS.ErrnoError(70);
+        }
+        var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn);
+        if (!seeking) stream.position += bytesWritten;
+        try {
+          if (stream.path && FS.trackingDelegate['onWriteToFile']) FS.trackingDelegate['onWriteToFile'](stream.path);
+        } catch(e) {
+          console.log("FS.trackingDelegate['onWriteToFile']('"+stream.path+"') threw an exception: " + e.message);
+        }
+        return bytesWritten;
+      },allocate:function(stream, offset, length) {
+        if (FS.isClosed(stream)) {
+          throw new FS.ErrnoError(8);
+        }
+        if (offset < 0 || length <= 0) {
+          throw new FS.ErrnoError(28);
+        }
+        if ((stream.flags & 2097155) === 0) {
+          throw new FS.ErrnoError(8);
+        }
+        if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) {
+          throw new FS.ErrnoError(43);
+        }
+        if (!stream.stream_ops.allocate) {
+          throw new FS.ErrnoError(138);
+        }
+        stream.stream_ops.allocate(stream, offset, length);
+      },mmap:function(stream, buffer, offset, length, position, prot, flags) {
+        // User requests writing to file (prot & PROT_WRITE != 0).
+        // Checking if we have permissions to write to the file unless
+        // MAP_PRIVATE flag is set. According to POSIX spec it is possible
+        // to write to file opened in read-only mode with MAP_PRIVATE flag,
+        // as all modifications will be visible only in the memory of
+        // the current process.
+        if ((prot & 2) !== 0
+            && (flags & 2) === 0
+            && (stream.flags & 2097155) !== 2) {
+          throw new FS.ErrnoError(2);
+        }
+        if ((stream.flags & 2097155) === 1) {
+          throw new FS.ErrnoError(2);
+        }
+        if (!stream.stream_ops.mmap) {
+          throw new FS.ErrnoError(43);
+        }
+        return stream.stream_ops.mmap(stream, buffer, offset, length, position, prot, flags);
+      },msync:function(stream, buffer, offset, length, mmapFlags) {
+        if (!stream || !stream.stream_ops.msync) {
+          return 0;
+        }
+        return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags);
+      },munmap:function(stream) {
+        return 0;
+      },ioctl:function(stream, cmd, arg) {
+        if (!stream.stream_ops.ioctl) {
+          throw new FS.ErrnoError(59);
+        }
+        return stream.stream_ops.ioctl(stream, cmd, arg);
+      },readFile:function(path, opts) {
+        opts = opts || {};
+        opts.flags = opts.flags || 'r';
+        opts.encoding = opts.encoding || 'binary';
+        if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') {
+          throw new Error('Invalid encoding type "' + opts.encoding + '"');
+        }
+        var ret;
+        var stream = FS.open(path, opts.flags);
+        var stat = FS.stat(path);
+        var length = stat.size;
+        var buf = new Uint8Array(length);
+        FS.read(stream, buf, 0, length, 0);
+        if (opts.encoding === 'utf8') {
+          ret = UTF8ArrayToString(buf, 0);
+        } else if (opts.encoding === 'binary') {
+          ret = buf;
+        }
+        FS.close(stream);
+        return ret;
+      },writeFile:function(path, data, opts) {
+        opts = opts || {};
+        opts.flags = opts.flags || 'w';
+        var stream = FS.open(path, opts.flags, opts.mode);
+        if (typeof data === 'string') {
+          var buf = new Uint8Array(lengthBytesUTF8(data)+1);
+          var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length);
+          FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn);
+        } else if (ArrayBuffer.isView(data)) {
+          FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn);
+        } else {
+          throw new Error('Unsupported data type');
+        }
+        FS.close(stream);
+      },cwd:function() {
+        return FS.currentPath;
+      },chdir:function(path) {
+        var lookup = FS.lookupPath(path, { follow: true });
+        if (lookup.node === null) {
+          throw new FS.ErrnoError(44);
+        }
+        if (!FS.isDir(lookup.node.mode)) {
+          throw new FS.ErrnoError(54);
+        }
+        var err = FS.nodePermissions(lookup.node, 'x');
+        if (err) {
+          throw new FS.ErrnoError(err);
+        }
+        FS.currentPath = lookup.path;
+      },createDefaultDirectories:function() {
+        FS.mkdir('/tmp');
+        FS.mkdir('/home');
+        FS.mkdir('/home/web_user');
+      },createDefaultDevices:function() {
+        // create /dev
+        FS.mkdir('/dev');
+        // setup /dev/null
+        FS.registerDevice(FS.makedev(1, 3), {
+          read: function() { return 0; },
+          write: function(stream, buffer, offset, length, pos) { return length; }
+        });
+        FS.mkdev('/dev/null', FS.makedev(1, 3));
+        // setup /dev/tty and /dev/tty1
+        // stderr needs to print output using Module['printErr']
+        // so we register a second tty just for it.
+        TTY.register(FS.makedev(5, 0), TTY.default_tty_ops);
+        TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops);
+        FS.mkdev('/dev/tty', FS.makedev(5, 0));
+        FS.mkdev('/dev/tty1', FS.makedev(6, 0));
+        // setup /dev/[u]random
+        var random_device;
+        if (typeof crypto === 'object' && typeof crypto['getRandomValues'] === 'function') {
+          // for modern web browsers
+          var randomBuffer = new Uint8Array(1);
+          random_device = function() { crypto.getRandomValues(randomBuffer); return randomBuffer[0]; };
+        } else
+        if (ENVIRONMENT_IS_NODE) {
+          // for nodejs with or without crypto support included
+          try {
+            var crypto_module = require('crypto');
+            // nodejs has crypto support
+            random_device = function() { return crypto_module['randomBytes'](1)[0]; };
+          } catch (e) {
+            // nodejs doesn't have crypto support
+          }
+        } else
+        {}
+        if (!random_device) {
+          // we couldn't find a proper implementation, as Math.random() is not suitable for /dev/random, see emscripten-core/emscripten/pull/7096
+          random_device = function() { abort("no cryptographic support found for random_device. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };"); };
+        }
+        FS.createDevice('/dev', 'random', random_device);
+        FS.createDevice('/dev', 'urandom', random_device);
+        // we're not going to emulate the actual shm device,
+        // just create the tmp dirs that reside in it commonly
+        FS.mkdir('/dev/shm');
+        FS.mkdir('/dev/shm/tmp');
+      },createSpecialDirectories:function() {
+        // create /proc/self/fd which allows /proc/self/fd/6 => readlink gives the name of the stream for fd 6 (see test_unistd_ttyname)
+        FS.mkdir('/proc');
+        FS.mkdir('/proc/self');
+        FS.mkdir('/proc/self/fd');
+        FS.mount({
+          mount: function() {
+            var node = FS.createNode('/proc/self', 'fd', 16384 | 511 /* 0777 */, 73);
+            node.node_ops = {
+              lookup: function(parent, name) {
+                var fd = +name;
+                var stream = FS.getStream(fd);
+                if (!stream) throw new FS.ErrnoError(8);
+                var ret = {
+                  parent: null,
+                  mount: { mountpoint: 'fake' },
+                  node_ops: { readlink: function() { return stream.path } }
+                };
+                ret.parent = ret; // make it look like a simple root node
+                return ret;
+              }
+            };
+            return node;
+          }
+        }, {}, '/proc/self/fd');
+      },createStandardStreams:function() {
+        // TODO deprecate the old functionality of a single
+        // input / output callback and that utilizes FS.createDevice
+        // and instead require a unique set of stream ops
+  
+        // by default, we symlink the standard streams to the
+        // default tty devices. however, if the standard streams
+        // have been overwritten we create a unique device for
+        // them instead.
+        if (Module['stdin']) {
+          FS.createDevice('/dev', 'stdin', Module['stdin']);
+        } else {
+          FS.symlink('/dev/tty', '/dev/stdin');
+        }
+        if (Module['stdout']) {
+          FS.createDevice('/dev', 'stdout', null, Module['stdout']);
+        } else {
+          FS.symlink('/dev/tty', '/dev/stdout');
+        }
+        if (Module['stderr']) {
+          FS.createDevice('/dev', 'stderr', null, Module['stderr']);
+        } else {
+          FS.symlink('/dev/tty1', '/dev/stderr');
+        }
+  
+        // open default streams for the stdin, stdout and stderr devices
+        var stdin = FS.open('/dev/stdin', 'r');
+        var stdout = FS.open('/dev/stdout', 'w');
+        var stderr = FS.open('/dev/stderr', 'w');
+        assert(stdin.fd === 0, 'invalid handle for stdin (' + stdin.fd + ')');
+        assert(stdout.fd === 1, 'invalid handle for stdout (' + stdout.fd + ')');
+        assert(stderr.fd === 2, 'invalid handle for stderr (' + stderr.fd + ')');
+      },ensureErrnoError:function() {
+        if (FS.ErrnoError) return;
+        FS.ErrnoError = function ErrnoError(errno, node) {
+          this.node = node;
+          this.setErrno = function(errno) {
+            this.errno = errno;
+            for (var key in ERRNO_CODES) {
+              if (ERRNO_CODES[key] === errno) {
+                this.code = key;
+                break;
+              }
+            }
+          };
+          this.setErrno(errno);
+          this.message = ERRNO_MESSAGES[errno];
+  
+          // Try to get a maximally helpful stack trace. On Node.js, getting Error.stack
+          // now ensures it shows what we want.
+          if (this.stack) {
+            // Define the stack property for Node.js 4, which otherwise errors on the next line.
+            Object.defineProperty(this, "stack", { value: (new Error).stack, writable: true });
+            this.stack = demangleAll(this.stack);
+          }
+        };
+        FS.ErrnoError.prototype = new Error();
+        FS.ErrnoError.prototype.constructor = FS.ErrnoError;
+        // Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info)
+        [44].forEach(function(code) {
+          FS.genericErrors[code] = new FS.ErrnoError(code);
+          FS.genericErrors[code].stack = '<generic error, no stack>';
+        });
+      },staticInit:function() {
+        FS.ensureErrnoError();
+  
+        FS.nameTable = new Array(4096);
+  
+        FS.mount(MEMFS, {}, '/');
+  
+        FS.createDefaultDirectories();
+        FS.createDefaultDevices();
+        FS.createSpecialDirectories();
+  
+        FS.filesystems = {
+          'MEMFS': MEMFS,
+          'IDBFS': IDBFS,
+          'NODEFS': NODEFS,
+          'WORKERFS': WORKERFS,
+        };
+      },init:function(input, output, error) {
+        assert(!FS.init.initialized, 'FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)');
+        FS.init.initialized = true;
+  
+        FS.ensureErrnoError();
+  
+        // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here
+        Module['stdin'] = input || Module['stdin'];
+        Module['stdout'] = output || Module['stdout'];
+        Module['stderr'] = error || Module['stderr'];
+  
+        FS.createStandardStreams();
+      },quit:function() {
+        FS.init.initialized = false;
+        // force-flush all streams, so we get musl std streams printed out
+        var fflush = Module['_fflush'];
+        if (fflush) fflush(0);
+        // close all of our streams
+        for (var i = 0; i < FS.streams.length; i++) {
+          var stream = FS.streams[i];
+          if (!stream) {
+            continue;
+          }
+          FS.close(stream);
+        }
+      },getMode:function(canRead, canWrite) {
+        var mode = 0;
+        if (canRead) mode |= 292 | 73;
+        if (canWrite) mode |= 146;
+        return mode;
+      },joinPath:function(parts, forceRelative) {
+        var path = PATH.join.apply(null, parts);
+        if (forceRelative && path[0] == '/') path = path.substr(1);
+        return path;
+      },absolutePath:function(relative, base) {
+        return PATH_FS.resolve(base, relative);
+      },standardizePath:function(path) {
+        return PATH.normalize(path);
+      },findObject:function(path, dontResolveLastLink) {
+        var ret = FS.analyzePath(path, dontResolveLastLink);
+        if (ret.exists) {
+          return ret.object;
+        } else {
+          ___setErrNo(ret.error);
+          return null;
+        }
+      },analyzePath:function(path, dontResolveLastLink) {
+        // operate from within the context of the symlink's target
+        try {
+          var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
+          path = lookup.path;
+        } catch (e) {
+        }
+        var ret = {
+          isRoot: false, exists: false, error: 0, name: null, path: null, object: null,
+          parentExists: false, parentPath: null, parentObject: null
+        };
+        try {
+          var lookup = FS.lookupPath(path, { parent: true });
+          ret.parentExists = true;
+          ret.parentPath = lookup.path;
+          ret.parentObject = lookup.node;
+          ret.name = PATH.basename(path);
+          lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
+          ret.exists = true;
+          ret.path = lookup.path;
+          ret.object = lookup.node;
+          ret.name = lookup.node.name;
+          ret.isRoot = lookup.path === '/';
+        } catch (e) {
+          ret.error = e.errno;
+        };
+        return ret;
+      },createFolder:function(parent, name, canRead, canWrite) {
+        var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);
+        var mode = FS.getMode(canRead, canWrite);
+        return FS.mkdir(path, mode);
+      },createPath:function(parent, path, canRead, canWrite) {
+        parent = typeof parent === 'string' ? parent : FS.getPath(parent);
+        var parts = path.split('/').reverse();
+        while (parts.length) {
+          var part = parts.pop();
+          if (!part) continue;
+          var current = PATH.join2(parent, part);
+          try {
+            FS.mkdir(current);
+          } catch (e) {
+            // ignore EEXIST
+          }
+          parent = current;
+        }
+        return current;
+      },createFile:function(parent, name, properties, canRead, canWrite) {
+        var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);
+        var mode = FS.getMode(canRead, canWrite);
+        return FS.create(path, mode);
+      },createDataFile:function(parent, name, data, canRead, canWrite, canOwn) {
+        var path = name ? PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name) : parent;
+        var mode = FS.getMode(canRead, canWrite);
+        var node = FS.create(path, mode);
+        if (data) {
+          if (typeof data === 'string') {
+            var arr = new Array(data.length);
+            for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i);
+            data = arr;
+          }
+          // make sure we can write to the file
+          FS.chmod(node, mode | 146);
+          var stream = FS.open(node, 'w');
+          FS.write(stream, data, 0, data.length, 0, canOwn);
+          FS.close(stream);
+          FS.chmod(node, mode);
+        }
+        return node;
+      },createDevice:function(parent, name, input, output) {
+        var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);
+        var mode = FS.getMode(!!input, !!output);
+        if (!FS.createDevice.major) FS.createDevice.major = 64;
+        var dev = FS.makedev(FS.createDevice.major++, 0);
+        // Create a fake device that a set of stream ops to emulate
+        // the old behavior.
+        FS.registerDevice(dev, {
+          open: function(stream) {
+            stream.seekable = false;
+          },
+          close: function(stream) {
+            // flush any pending line data
+            if (output && output.buffer && output.buffer.length) {
+              output(10);
+            }
+          },
+          read: function(stream, buffer, offset, length, pos /* ignored */) {
+            var bytesRead = 0;
+            for (var i = 0; i < length; i++) {
+              var result;
+              try {
+                result = input();
+              } catch (e) {
+                throw new FS.ErrnoError(29);
+              }
+              if (result === undefined && bytesRead === 0) {
+                throw new FS.ErrnoError(6);
+              }
+              if (result === null || result === undefined) break;
+              bytesRead++;
+              buffer[offset+i] = result;
+            }
+            if (bytesRead) {
+              stream.node.timestamp = Date.now();
+            }
+            return bytesRead;
+          },
+          write: function(stream, buffer, offset, length, pos) {
+            for (var i = 0; i < length; i++) {
+              try {
+                output(buffer[offset+i]);
+              } catch (e) {
+                throw new FS.ErrnoError(29);
+              }
+            }
+            if (length) {
+              stream.node.timestamp = Date.now();
+            }
+            return i;
+          }
+        });
+        return FS.mkdev(path, mode, dev);
+      },createLink:function(parent, name, target, canRead, canWrite) {
+        var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);
+        return FS.symlink(target, path);
+      },forceLoadFile:function(obj) {
+        if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true;
+        var success = true;
+        if (typeof XMLHttpRequest !== 'undefined') {
+          throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");
+        } else if (read_) {
+          // Command-line.
+          try {
+            // WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as
+            //          read() will try to parse UTF8.
+            obj.contents = intArrayFromString(read_(obj.url), true);
+            obj.usedBytes = obj.contents.length;
+          } catch (e) {
+            success = false;
+          }
+        } else {
+          throw new Error('Cannot load without read() or XMLHttpRequest.');
+        }
+        if (!success) ___setErrNo(29);
+        return success;
+      },createLazyFile:function(parent, name, url, canRead, canWrite) {
+        // Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse.
+        function LazyUint8Array() {
+          this.lengthKnown = false;
+          this.chunks = []; // Loaded chunks. Index is the chunk number
+        }
+        LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) {
+          if (idx > this.length-1 || idx < 0) {
+            return undefined;
+          }
+          var chunkOffset = idx % this.chunkSize;
+          var chunkNum = (idx / this.chunkSize)|0;
+          return this.getter(chunkNum)[chunkOffset];
+        };
+        LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) {
+          this.getter = getter;
+        };
+        LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() {
+          // Find length
+          var xhr = new XMLHttpRequest();
+          xhr.open('HEAD', url, false);
+          xhr.send(null);
+          if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
+          var datalength = Number(xhr.getResponseHeader("Content-length"));
+          var header;
+          var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes";
+          var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip";
+  
+          var chunkSize = 1024*1024; // Chunk size in bytes
+  
+          if (!hasByteServing) chunkSize = datalength;
+  
+          // Function to get a range from the remote URL.
+          var doXHR = (function(from, to) {
+            if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!");
+            if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!");
+  
+            // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available.
+            var xhr = new XMLHttpRequest();
+            xhr.open('GET', url, false);
+            if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to);
+  
+            // Some hints to the browser that we want binary data.
+            if (typeof Uint8Array != 'undefined') xhr.responseType = 'arraybuffer';
+            if (xhr.overrideMimeType) {
+              xhr.overrideMimeType('text/plain; charset=x-user-defined');
+            }
+  
+            xhr.send(null);
+            if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
+            if (xhr.response !== undefined) {
+              return new Uint8Array(xhr.response || []);
+            } else {
+              return intArrayFromString(xhr.responseText || '', true);
+            }
+          });
+          var lazyArray = this;
+          lazyArray.setDataGetter(function(chunkNum) {
+            var start = chunkNum * chunkSize;
+            var end = (chunkNum+1) * chunkSize - 1; // including this byte
+            end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block
+            if (typeof(lazyArray.chunks[chunkNum]) === "undefined") {
+              lazyArray.chunks[chunkNum] = doXHR(start, end);
+            }
+            if (typeof(lazyArray.chunks[chunkNum]) === "undefined") throw new Error("doXHR failed!");
+            return lazyArray.chunks[chunkNum];
+          });
+  
+          if (usesGzip || !datalength) {
+            // if the server uses gzip or doesn't supply the length, we have to download the whole file to get the (uncompressed) length
+            chunkSize = datalength = 1; // this will force getter(0)/doXHR do download the whole file
+            datalength = this.getter(0).length;
+            chunkSize = datalength;
+            console.log("LazyFiles on gzip forces download of the whole file when length is accessed");
+          }
+  
+          this._length = datalength;
+          this._chunkSize = chunkSize;
+          this.lengthKnown = true;
+        };
+        if (typeof XMLHttpRequest !== 'undefined') {
+          if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc';
+          var lazyArray = new LazyUint8Array();
+          Object.defineProperties(lazyArray, {
+            length: {
+              get: function() {
+                if(!this.lengthKnown) {
+                  this.cacheLength();
+                }
+                return this._length;
+              }
+            },
+            chunkSize: {
+              get: function() {
+                if(!this.lengthKnown) {
+                  this.cacheLength();
+                }
+                return this._chunkSize;
+              }
+            }
+          });
+  
+          var properties = { isDevice: false, contents: lazyArray };
+        } else {
+          var properties = { isDevice: false, url: url };
+        }
+  
+        var node = FS.createFile(parent, name, properties, canRead, canWrite);
+        // This is a total hack, but I want to get this lazy file code out of the
+        // core of MEMFS. If we want to keep this lazy file concept I feel it should
+        // be its own thin LAZYFS proxying calls to MEMFS.
+        if (properties.contents) {
+          node.contents = properties.contents;
+        } else if (properties.url) {
+          node.contents = null;
+          node.url = properties.url;
+        }
+        // Add a function that defers querying the file size until it is asked the first time.
+        Object.defineProperties(node, {
+          usedBytes: {
+            get: function() { return this.contents.length; }
+          }
+        });
+        // override each stream op with one that tries to force load the lazy file first
+        var stream_ops = {};
+        var keys = Object.keys(node.stream_ops);
+        keys.forEach(function(key) {
+          var fn = node.stream_ops[key];
+          stream_ops[key] = function forceLoadLazyFile() {
+            if (!FS.forceLoadFile(node)) {
+              throw new FS.ErrnoError(29);
+            }
+            return fn.apply(null, arguments);
+          };
+        });
+        // use a custom read function
+        stream_ops.read = function stream_ops_read(stream, buffer, offset, length, position) {
+          if (!FS.forceLoadFile(node)) {
+            throw new FS.ErrnoError(29);
+          }
+          var contents = stream.node.contents;
+          if (position >= contents.length)
+            return 0;
+          var size = Math.min(contents.length - position, length);
+          assert(size >= 0);
+          if (contents.slice) { // normal array
+            for (var i = 0; i < size; i++) {
+              buffer[offset + i] = contents[position + i];
+            }
+          } else {
+            for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR
+              buffer[offset + i] = contents.get(position + i);
+            }
+          }
+          return size;
+        };
+        node.stream_ops = stream_ops;
+        return node;
+      },createPreloadedFile:function(parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) {
+        Browser.init(); // XXX perhaps this method should move onto Browser?
+        // TODO we should allow people to just pass in a complete filename instead
+        // of parent and name being that we just join them anyways
+        var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent;
+        var dep = getUniqueRunDependency('cp ' + fullname); // might have several active requests for the same fullname
+        function processData(byteArray) {
+          function finish(byteArray) {
+            if (preFinish) preFinish();
+            if (!dontCreateFile) {
+              FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn);
+            }
+            if (onload) onload();
+            removeRunDependency(dep);
+          }
+          var handled = false;
+          Module['preloadPlugins'].forEach(function(plugin) {
+            if (handled) return;
+            if (plugin['canHandle'](fullname)) {
+              plugin['handle'](byteArray, fullname, finish, function() {
+                if (onerror) onerror();
+                removeRunDependency(dep);
+              });
+              handled = true;
+            }
+          });
+          if (!handled) finish(byteArray);
+        }
+        addRunDependency(dep);
+        if (typeof url == 'string') {
+          Browser.asyncLoad(url, function(byteArray) {
+            processData(byteArray);
+          }, onerror);
+        } else {
+          processData(url);
+        }
+      },indexedDB:function() {
+        return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
+      },DB_NAME:function() {
+        return 'EM_FS_' + window.location.pathname;
+      },DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(paths, onload, onerror) {
+        onload = onload || function(){};
+        onerror = onerror || function(){};
+        var indexedDB = FS.indexedDB();
+        try {
+          var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);
+        } catch (e) {
+          return onerror(e);
+        }
+        openRequest.onupgradeneeded = function openRequest_onupgradeneeded() {
+          console.log('creating db');
+          var db = openRequest.result;
+          db.createObjectStore(FS.DB_STORE_NAME);
+        };
+        openRequest.onsuccess = function openRequest_onsuccess() {
+          var db = openRequest.result;
+          var transaction = db.transaction([FS.DB_STORE_NAME], 'readwrite');
+          var files = transaction.objectStore(FS.DB_STORE_NAME);
+          var ok = 0, fail = 0, total = paths.length;
+          function finish() {
+            if (fail == 0) onload(); else onerror();
+          }
+          paths.forEach(function(path) {
+            var putRequest = files.put(FS.analyzePath(path).object.contents, path);
+            putRequest.onsuccess = function putRequest_onsuccess() { ok++; if (ok + fail == total) finish() };
+            putRequest.onerror = function putRequest_onerror() { fail++; if (ok + fail == total) finish() };
+          });
+          transaction.onerror = onerror;
+        };
+        openRequest.onerror = onerror;
+      },loadFilesFromDB:function(paths, onload, onerror) {
+        onload = onload || function(){};
+        onerror = onerror || function(){};
+        var indexedDB = FS.indexedDB();
+        try {
+          var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);
+        } catch (e) {
+          return onerror(e);
+        }
+        openRequest.onupgradeneeded = onerror; // no database to load from
+        openRequest.onsuccess = function openRequest_onsuccess() {
+          var db = openRequest.result;
+          try {
+            var transaction = db.transaction([FS.DB_STORE_NAME], 'readonly');
+          } catch(e) {
+            onerror(e);
+            return;
+          }
+          var files = transaction.objectStore(FS.DB_STORE_NAME);
+          var ok = 0, fail = 0, total = paths.length;
+          function finish() {
+            if (fail == 0) onload(); else onerror();
+          }
+          paths.forEach(function(path) {
+            var getRequest = files.get(path);
+            getRequest.onsuccess = function getRequest_onsuccess() {
+              if (FS.analyzePath(path).exists) {
+                FS.unlink(path);
+              }
+              FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true);
+              ok++;
+              if (ok + fail == total) finish();
+            };
+            getRequest.onerror = function getRequest_onerror() { fail++; if (ok + fail == total) finish() };
+          });
+          transaction.onerror = onerror;
+        };
+        openRequest.onerror = onerror;
+      }};var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:function(dirfd, path) {
+        if (path[0] !== '/') {
+          // relative path
+          var dir;
+          if (dirfd === -100) {
+            dir = FS.cwd();
+          } else {
+            var dirstream = FS.getStream(dirfd);
+            if (!dirstream) throw new FS.ErrnoError(8);
+            dir = dirstream.path;
+          }
+          path = PATH.join2(dir, path);
+        }
+        return path;
+      },doStat:function(func, path, buf) {
+        try {
+          var stat = func(path);
+        } catch (e) {
+          if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) {
+            // an error occurred while trying to look up the path; we should just report ENOTDIR
+            return -54;
+          }
+          throw e;
+        }
+        HEAP32[((buf)>>2)]=stat.dev;
+        HEAP32[(((buf)+(4))>>2)]=0;
+        HEAP32[(((buf)+(8))>>2)]=stat.ino;
+        HEAP32[(((buf)+(12))>>2)]=stat.mode;
+        HEAP32[(((buf)+(16))>>2)]=stat.nlink;
+        HEAP32[(((buf)+(20))>>2)]=stat.uid;
+        HEAP32[(((buf)+(24))>>2)]=stat.gid;
+        HEAP32[(((buf)+(28))>>2)]=stat.rdev;
+        HEAP32[(((buf)+(32))>>2)]=0;
+        (tempI64 = [stat.size>>>0,(tempDouble=stat.size,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((buf)+(40))>>2)]=tempI64[0],HEAP32[(((buf)+(44))>>2)]=tempI64[1]);
+        HEAP32[(((buf)+(48))>>2)]=4096;
+        HEAP32[(((buf)+(52))>>2)]=stat.blocks;
+        HEAP32[(((buf)+(56))>>2)]=(stat.atime.getTime() / 1000)|0;
+        HEAP32[(((buf)+(60))>>2)]=0;
+        HEAP32[(((buf)+(64))>>2)]=(stat.mtime.getTime() / 1000)|0;
+        HEAP32[(((buf)+(68))>>2)]=0;
+        HEAP32[(((buf)+(72))>>2)]=(stat.ctime.getTime() / 1000)|0;
+        HEAP32[(((buf)+(76))>>2)]=0;
+        (tempI64 = [stat.ino>>>0,(tempDouble=stat.ino,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((buf)+(80))>>2)]=tempI64[0],HEAP32[(((buf)+(84))>>2)]=tempI64[1]);
+        return 0;
+      },doMsync:function(addr, stream, len, flags) {
+        var buffer = new Uint8Array(HEAPU8.subarray(addr, addr + len));
+        FS.msync(stream, buffer, 0, len, flags);
+      },doMkdir:function(path, mode) {
+        // remove a trailing slash, if one - /a/b/ has basename of '', but
+        // we want to create b in the context of this function
+        path = PATH.normalize(path);
+        if (path[path.length-1] === '/') path = path.substr(0, path.length-1);
+        FS.mkdir(path, mode, 0);
+        return 0;
+      },doMknod:function(path, mode, dev) {
+        // we don't want this in the JS API as it uses mknod to create all nodes.
+        switch (mode & 61440) {
+          case 32768:
+          case 8192:
+          case 24576:
+          case 4096:
+          case 49152:
+            break;
+          default: return -28;
+        }
+        FS.mknod(path, mode, dev);
+        return 0;
+      },doReadlink:function(path, buf, bufsize) {
+        if (bufsize <= 0) return -28;
+        var ret = FS.readlink(path);
+  
+        var len = Math.min(bufsize, lengthBytesUTF8(ret));
+        var endChar = HEAP8[buf+len];
+        stringToUTF8(ret, buf, bufsize+1);
+        // readlink is one of the rare functions that write out a C string, but does never append a null to the output buffer(!)
+        // stringToUTF8() always appends a null byte, so restore the character under the null byte after the write.
+        HEAP8[buf+len] = endChar;
+  
+        return len;
+      },doAccess:function(path, amode) {
+        if (amode & ~7) {
+          // need a valid mode
+          return -28;
+        }
+        var node;
+        var lookup = FS.lookupPath(path, { follow: true });
+        node = lookup.node;
+        if (!node) {
+          return -44;
+        }
+        var perms = '';
+        if (amode & 4) perms += 'r';
+        if (amode & 2) perms += 'w';
+        if (amode & 1) perms += 'x';
+        if (perms /* otherwise, they've just passed F_OK */ && FS.nodePermissions(node, perms)) {
+          return -2;
+        }
+        return 0;
+      },doDup:function(path, flags, suggestFD) {
+        var suggest = FS.getStream(suggestFD);
+        if (suggest) FS.close(suggest);
+        return FS.open(path, flags, 0, suggestFD, suggestFD).fd;
+      },doReadv:function(stream, iov, iovcnt, offset) {
+        var ret = 0;
+        for (var i = 0; i < iovcnt; i++) {
+          var ptr = HEAP32[(((iov)+(i*8))>>2)];
+          var len = HEAP32[(((iov)+(i*8 + 4))>>2)];
+          var curr = FS.read(stream, HEAP8,ptr, len, offset);
+          if (curr < 0) return -1;
+          ret += curr;
+          if (curr < len) break; // nothing more to read
+        }
+        return ret;
+      },doWritev:function(stream, iov, iovcnt, offset) {
+        var ret = 0;
+        for (var i = 0; i < iovcnt; i++) {
+          var ptr = HEAP32[(((iov)+(i*8))>>2)];
+          var len = HEAP32[(((iov)+(i*8 + 4))>>2)];
+          var curr = FS.write(stream, HEAP8,ptr, len, offset);
+          if (curr < 0) return -1;
+          ret += curr;
+        }
+        return ret;
+      },varargs:0,get:function(varargs) {
+        SYSCALLS.varargs += 4;
+        var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)];
+        return ret;
+      },getStr:function() {
+        var ret = UTF8ToString(SYSCALLS.get());
+        return ret;
+      },getStreamFromFD:function(fd) {
+        // TODO: when all syscalls use wasi, can remove the next line
+        if (fd === undefined) fd = SYSCALLS.get();
+        var stream = FS.getStream(fd);
+        if (!stream) throw new FS.ErrnoError(8);
+        return stream;
+      },get64:function() {
+        var low = SYSCALLS.get(), high = SYSCALLS.get();
+        if (low >= 0) assert(high === 0);
+        else assert(high === -1);
+        return low;
+      },getZero:function() {
+        assert(SYSCALLS.get() === 0);
+      }};function ___syscall195(which, varargs) {SYSCALLS.varargs = varargs;
+  try {
+   // SYS_stat64
+      var path = SYSCALLS.getStr(), buf = SYSCALLS.get();
+      return SYSCALLS.doStat(FS.stat, path, buf);
+    } catch (e) {
+    if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
+    return -e.errno;
+  }
+  }
+
+  function ___syscall197(which, varargs) {SYSCALLS.varargs = varargs;
+  try {
+   // SYS_fstat64
+      var stream = SYSCALLS.getStreamFromFD(), buf = SYSCALLS.get();
+      return SYSCALLS.doStat(FS.stat, stream.path, buf);
+    } catch (e) {
+    if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
+    return -e.errno;
+  }
+  }
+
+  function ___syscall221(which, varargs) {SYSCALLS.varargs = varargs;
+  try {
+   // fcntl64
+      var stream = SYSCALLS.getStreamFromFD(), cmd = SYSCALLS.get();
+      switch (cmd) {
+        case 0: {
+          var arg = SYSCALLS.get();
+          if (arg < 0) {
+            return -28;
+          }
+          var newStream;
+          newStream = FS.open(stream.path, stream.flags, 0, arg);
+          return newStream.fd;
+        }
+        case 1:
+        case 2:
+          return 0;  // FD_CLOEXEC makes no sense for a single process.
+        case 3:
+          return stream.flags;
+        case 4: {
+          var arg = SYSCALLS.get();
+          stream.flags |= arg;
+          return 0;
+        }
+        case 12:
+        /* case 12: Currently in musl F_GETLK64 has same value as F_GETLK, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ {
+          
+          var arg = SYSCALLS.get();
+          var offset = 0;
+          // We're always unlocked.
+          HEAP16[(((arg)+(offset))>>1)]=2;
+          return 0;
+        }
+        case 13:
+        case 14:
+        /* case 13: Currently in musl F_SETLK64 has same value as F_SETLK, so omitted to avoid duplicate case blocks. If that changes, uncomment this */
+        /* case 14: Currently in musl F_SETLKW64 has same value as F_SETLKW, so omitted to avoid duplicate case blocks. If that changes, uncomment this */
+          
+          
+          return 0; // Pretend that the locking is successful.
+        case 16:
+        case 8:
+          return -28; // These are for sockets. We don't have them fully implemented yet.
+        case 9:
+          // musl trusts getown return values, due to a bug where they must be, as they overlap with errors. just return -1 here, so fnctl() returns that, and we set errno ourselves.
+          ___setErrNo(28);
+          return -1;
+        default: {
+          return -28;
+        }
+      }
+    } catch (e) {
+    if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
+    return -e.errno;
+  }
+  }
+
+  function ___syscall5(which, varargs) {SYSCALLS.varargs = varargs;
+  try {
+   // open
+      var pathname = SYSCALLS.getStr(), flags = SYSCALLS.get(), mode = SYSCALLS.get(); // optional TODO
+      var stream = FS.open(pathname, flags, mode);
+      return stream.fd;
+    } catch (e) {
+    if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
+    return -e.errno;
+  }
+  }
+
+  function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs;
+  try {
+   // ioctl
+      var stream = SYSCALLS.getStreamFromFD(), op = SYSCALLS.get();
+      switch (op) {
+        case 21509:
+        case 21505: {
+          if (!stream.tty) return -59;
+          return 0;
+        }
+        case 21510:
+        case 21511:
+        case 21512:
+        case 21506:
+        case 21507:
+        case 21508: {
+          if (!stream.tty) return -59;
+          return 0; // no-op, not actually adjusting terminal settings
+        }
+        case 21519: {
+          if (!stream.tty) return -59;
+          var argp = SYSCALLS.get();
+          HEAP32[((argp)>>2)]=0;
+          return 0;
+        }
+        case 21520: {
+          if (!stream.tty) return -59;
+          return -28; // not supported
+        }
+        case 21531: {
+          var argp = SYSCALLS.get();
+          return FS.ioctl(stream, op, argp);
+        }
+        case 21523: {
+          // TODO: in theory we should write to the winsize struct that gets
+          // passed in, but for now musl doesn't read anything on it
+          if (!stream.tty) return -59;
+          return 0;
+        }
+        case 21524: {
+          // TODO: technically, this ioctl call should change the window size.
+          // but, since emscripten doesn't have any concept of a terminal window
+          // yet, we'll just silently throw it away as we do TIOCGWINSZ
+          if (!stream.tty) return -59;
+          return 0;
+        }
+        default: abort('bad ioctl syscall ' + op);
+      }
+    } catch (e) {
+    if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
+    return -e.errno;
+  }
+  }
+
+  function ___unlock() {}
+
+  
+  function _fd_close(fd) {try {
+  
+      var stream = SYSCALLS.getStreamFromFD(fd);
+      FS.close(stream);
+      return 0;
+    } catch (e) {
+    if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
+    return e.errno;
+  }
+  }function ___wasi_fd_close(
+  ) {
+  return _fd_close.apply(null, arguments)
+  }
+
+  
+  function _fd_fdstat_get(fd, pbuf) {try {
+  
+      var stream = SYSCALLS.getStreamFromFD(fd);
+      // All character devices are terminals (other things a Linux system would
+      // assume is a character device, like the mouse, we have special APIs for).
+      var type = stream.tty ? 2 :
+                 FS.isDir(stream.mode) ? 3 :
+                 FS.isLink(stream.mode) ? 7 :
+                 4;
+      HEAP8[((pbuf)>>0)]=type;
+      // TODO HEAP16[(((pbuf)+(2))>>1)]=?;
+      // TODO (tempI64 = [?>>>0,(tempDouble=?,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((pbuf)+(8))>>2)]=tempI64[0],HEAP32[(((pbuf)+(12))>>2)]=tempI64[1]);
+      // TODO (tempI64 = [?>>>0,(tempDouble=?,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((pbuf)+(16))>>2)]=tempI64[0],HEAP32[(((pbuf)+(20))>>2)]=tempI64[1]);
+      return 0;
+    } catch (e) {
+    if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
+    return e.errno;
+  }
+  }function ___wasi_fd_fdstat_get(
+  ) {
+  return _fd_fdstat_get.apply(null, arguments)
+  }
+
+  
+  function _fd_read(fd, iov, iovcnt, pnum) {try {
+  
+      var stream = SYSCALLS.getStreamFromFD(fd);
+      var num = SYSCALLS.doReadv(stream, iov, iovcnt);
+      HEAP32[((pnum)>>2)]=num
+      return 0;
+    } catch (e) {
+    if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
+    return e.errno;
+  }
+  }function ___wasi_fd_read(
+  ) {
+  return _fd_read.apply(null, arguments)
+  }
+
+  
+  function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {try {
+  
+      var stream = SYSCALLS.getStreamFromFD(fd);
+      var HIGH_OFFSET = 0x100000000; // 2^32
+      // use an unsigned operator on low and shift high by 32-bits
+      var offset = offset_high * HIGH_OFFSET + (offset_low >>> 0);
+  
+      var DOUBLE_LIMIT = 0x20000000000000; // 2^53
+      // we also check for equality since DOUBLE_LIMIT + 1 == DOUBLE_LIMIT
+      if (offset <= -DOUBLE_LIMIT || offset >= DOUBLE_LIMIT) {
+        return -61;
+      }
+  
+      FS.llseek(stream, offset, whence);
+      (tempI64 = [stream.position>>>0,(tempDouble=stream.position,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((newOffset)>>2)]=tempI64[0],HEAP32[(((newOffset)+(4))>>2)]=tempI64[1]);
+      if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state
+      return 0;
+    } catch (e) {
+    if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
+    return e.errno;
+  }
+  }function ___wasi_fd_seek(
+  ) {
+  return _fd_seek.apply(null, arguments)
+  }
+
+  
+  function _fd_write(fd, iov, iovcnt, pnum) {try {
+  
+      var stream = SYSCALLS.getStreamFromFD(fd);
+      var num = SYSCALLS.doWritev(stream, iov, iovcnt);
+      HEAP32[((pnum)>>2)]=num
+      return 0;
+    } catch (e) {
+    if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
+    return e.errno;
+  }
+  }function ___wasi_fd_write(
+  ) {
+  return _fd_write.apply(null, arguments)
+  }
+
+  
+  var tupleRegistrations={};
+  
+  function runDestructors(destructors) {
+      while (destructors.length) {
+          var ptr = destructors.pop();
+          var del = destructors.pop();
+          del(ptr);
+      }
+    }
+  
+  function simpleReadValueFromPointer(pointer) {
+      return this['fromWireType'](HEAPU32[pointer >> 2]);
+    }
+  
+  
+  var awaitingDependencies={};
+  
+  var registeredTypes={};
+  
+  var typeDependencies={};
+  
+  
+  
+  
+  
+  
+  var char_0=48;
+  
+  var char_9=57;function makeLegalFunctionName(name) {
+      if (undefined === name) {
+          return '_unknown';
+      }
+      name = name.replace(/[^a-zA-Z0-9_]/g, '$');
+      var f = name.charCodeAt(0);
+      if (f >= char_0 && f <= char_9) {
+          return '_' + name;
+      } else {
+          return name;
+      }
+    }function createNamedFunction(name, body) {
+      name = makeLegalFunctionName(name);
+      /*jshint evil:true*/
+      return new Function(
+          "body",
+          "return function " + name + "() {\n" +
+          "    \"use strict\";" +
+          "    return body.apply(this, arguments);\n" +
+          "};\n"
+      )(body);
+    }function extendError(baseErrorType, errorName) {
+      var errorClass = createNamedFunction(errorName, function(message) {
+          this.name = errorName;
+          this.message = message;
+  
+          var stack = (new Error(message)).stack;
+          if (stack !== undefined) {
+              this.stack = this.toString() + '\n' +
+                  stack.replace(/^Error(:[^\n]*)?\n/, '');
+          }
+      });
+      errorClass.prototype = Object.create(baseErrorType.prototype);
+      errorClass.prototype.constructor = errorClass;
+      errorClass.prototype.toString = function() {
+          if (this.message === undefined) {
+              return this.name;
+          } else {
+              return this.name + ': ' + this.message;
+          }
+      };
+  
+      return errorClass;
+    }var InternalError=undefined;function throwInternalError(message) {
+      throw new InternalError(message);
+    }function whenDependentTypesAreResolved(myTypes, dependentTypes, getTypeConverters) {
+      myTypes.forEach(function(type) {
+          typeDependencies[type] = dependentTypes;
+      });
+  
+      function onComplete(typeConverters) {
+          var myTypeConverters = getTypeConverters(typeConverters);
+          if (myTypeConverters.length !== myTypes.length) {
+              throwInternalError('Mismatched type converter count');
+          }
+          for (var i = 0; i < myTypes.length; ++i) {
+              registerType(myTypes[i], myTypeConverters[i]);
+          }
+      }
+  
+      var typeConverters = new Array(dependentTypes.length);
+      var unregisteredTypes = [];
+      var registered = 0;
+      dependentTypes.forEach(function(dt, i) {
+          if (registeredTypes.hasOwnProperty(dt)) {
+              typeConverters[i] = registeredTypes[dt];
+          } else {
+              unregisteredTypes.push(dt);
+              if (!awaitingDependencies.hasOwnProperty(dt)) {
+                  awaitingDependencies[dt] = [];
+              }
+              awaitingDependencies[dt].push(function() {
+                  typeConverters[i] = registeredTypes[dt];
+                  ++registered;
+                  if (registered === unregisteredTypes.length) {
+                      onComplete(typeConverters);
+                  }
+              });
+          }
+      });
+      if (0 === unregisteredTypes.length) {
+          onComplete(typeConverters);
+      }
+    }function __embind_finalize_value_array(rawTupleType) {
+      var reg = tupleRegistrations[rawTupleType];
+      delete tupleRegistrations[rawTupleType];
+      var elements = reg.elements;
+      var elementsLength = elements.length;
+      var elementTypes = elements.map(function(elt) { return elt.getterReturnType; }).
+                  concat(elements.map(function(elt) { return elt.setterArgumentType; }));
+  
+      var rawConstructor = reg.rawConstructor;
+      var rawDestructor = reg.rawDestructor;
+  
+      whenDependentTypesAreResolved([rawTupleType], elementTypes, function(elementTypes) {
+          elements.forEach(function(elt, i) {
+              var getterReturnType = elementTypes[i];
+              var getter = elt.getter;
+              var getterContext = elt.getterContext;
+              var setterArgumentType = elementTypes[i + elementsLength];
+              var setter = elt.setter;
+              var setterContext = elt.setterContext;
+              elt.read = function(ptr) {
+                  return getterReturnType['fromWireType'](getter(getterContext, ptr));
+              };
+              elt.write = function(ptr, o) {
+                  var destructors = [];
+                  setter(setterContext, ptr, setterArgumentType['toWireType'](destructors, o));
+                  runDestructors(destructors);
+              };
+          });
+  
+          return [{
+              name: reg.name,
+              'fromWireType': function(ptr) {
+                  var rv = new Array(elementsLength);
+                  for (var i = 0; i < elementsLength; ++i) {
+                      rv[i] = elements[i].read(ptr);
+                  }
+                  rawDestructor(ptr);
+                  return rv;
+              },
+              'toWireType': function(destructors, o) {
+                  if (elementsLength !== o.length) {
+                      throw new TypeError("Incorrect number of tuple elements for " + reg.name + ": expected=" + elementsLength + ", actual=" + o.length);
+                  }
+                  var ptr = rawConstructor();
+                  for (var i = 0; i < elementsLength; ++i) {
+                      elements[i].write(ptr, o[i]);
+                  }
+                  if (destructors !== null) {
+                      destructors.push(rawDestructor, ptr);
+                  }
+                  return ptr;
+              },
+              'argPackAdvance': 8,
+              'readValueFromPointer': simpleReadValueFromPointer,
+              destructorFunction: rawDestructor,
+          }];
+      });
+    }
+
+  
+  var structRegistrations={};function __embind_finalize_value_object(structType) {
+      var reg = structRegistrations[structType];
+      delete structRegistrations[structType];
+  
+      var rawConstructor = reg.rawConstructor;
+      var rawDestructor = reg.rawDestructor;
+      var fieldRecords = reg.fields;
+      var fieldTypes = fieldRecords.map(function(field) { return field.getterReturnType; }).
+                concat(fieldRecords.map(function(field) { return field.setterArgumentType; }));
+      whenDependentTypesAreResolved([structType], fieldTypes, function(fieldTypes) {
+          var fields = {};
+          fieldRecords.forEach(function(field, i) {
+              var fieldName = field.fieldName;
+              var getterReturnType = fieldTypes[i];
+              var getter = field.getter;
+              var getterContext = field.getterContext;
+              var setterArgumentType = fieldTypes[i + fieldRecords.length];
+              var setter = field.setter;
+              var setterContext = field.setterContext;
+              fields[fieldName] = {
+                  read: function(ptr) {
+                      return getterReturnType['fromWireType'](
+                          getter(getterContext, ptr));
+                  },
+                  write: function(ptr, o) {
+                      var destructors = [];
+                      setter(setterContext, ptr, setterArgumentType['toWireType'](destructors, o));
+                      runDestructors(destructors);
+                  }
+              };
+          });
+  
+          return [{
+              name: reg.name,
+              'fromWireType': function(ptr) {
+                  var rv = {};
+                  for (var i in fields) {
+                      rv[i] = fields[i].read(ptr);
+                  }
+                  rawDestructor(ptr);
+                  return rv;
+              },
+              'toWireType': function(destructors, o) {
+                  // todo: Here we have an opportunity for -O3 level "unsafe" optimizations:
+                  // assume all fields are present without checking.
+                  for (var fieldName in fields) {
+                      if (!(fieldName in o)) {
+                          throw new TypeError('Missing field');
+                      }
+                  }
+                  var ptr = rawConstructor();
+                  for (fieldName in fields) {
+                      fields[fieldName].write(ptr, o[fieldName]);
+                  }
+                  if (destructors !== null) {
+                      destructors.push(rawDestructor, ptr);
+                  }
+                  return ptr;
+              },
+              'argPackAdvance': 8,
+              'readValueFromPointer': simpleReadValueFromPointer,
+              destructorFunction: rawDestructor,
+          }];
+      });
+    }
+
+  
+  function getShiftFromSize(size) {
+      switch (size) {
+          case 1: return 0;
+          case 2: return 1;
+          case 4: return 2;
+          case 8: return 3;
+          default:
+              throw new TypeError('Unknown type size: ' + size);
+      }
+    }
+  
+  
+  
+  function embind_init_charCodes() {
+      var codes = new Array(256);
+      for (var i = 0; i < 256; ++i) {
+          codes[i] = String.fromCharCode(i);
+      }
+      embind_charCodes = codes;
+    }var embind_charCodes=undefined;function readLatin1String(ptr) {
+      var ret = "";
+      var c = ptr;
+      while (HEAPU8[c]) {
+          ret += embind_charCodes[HEAPU8[c++]];
+      }
+      return ret;
+    }
+  
+  
+  
+  var BindingError=undefined;function throwBindingError(message) {
+      throw new BindingError(message);
+    }function registerType(rawType, registeredInstance, options) {
+      options = options || {};
+  
+      if (!('argPackAdvance' in registeredInstance)) {
+          throw new TypeError('registerType registeredInstance requires argPackAdvance');
+      }
+  
+      var name = registeredInstance.name;
+      if (!rawType) {
+          throwBindingError('type "' + name + '" must have a positive integer typeid pointer');
+      }
+      if (registeredTypes.hasOwnProperty(rawType)) {
+          if (options.ignoreDuplicateRegistrations) {
+              return;
+          } else {
+              throwBindingError("Cannot register type '" + name + "' twice");
+          }
+      }
+  
+      registeredTypes[rawType] = registeredInstance;
+      delete typeDependencies[rawType];
+  
+      if (awaitingDependencies.hasOwnProperty(rawType)) {
+          var callbacks = awaitingDependencies[rawType];
+          delete awaitingDependencies[rawType];
+          callbacks.forEach(function(cb) {
+              cb();
+          });
+      }
+    }function __embind_register_bool(rawType, name, size, trueValue, falseValue) {
+      var shift = getShiftFromSize(size);
+  
+      name = readLatin1String(name);
+      registerType(rawType, {
+          name: name,
+          'fromWireType': function(wt) {
+              // ambiguous emscripten ABI: sometimes return values are
+              // true or false, and sometimes integers (0 or 1)
+              return !!wt;
+          },
+          'toWireType': function(destructors, o) {
+              return o ? trueValue : falseValue;
+          },
+          'argPackAdvance': 8,
+          'readValueFromPointer': function(pointer) {
+              // TODO: if heap is fixed (like in asm.js) this could be executed outside
+              var heap;
+              if (size === 1) {
+                  heap = HEAP8;
+              } else if (size === 2) {
+                  heap = HEAP16;
+              } else if (size === 4) {
+                  heap = HEAP32;
+              } else {
+                  throw new TypeError("Unknown boolean type size: " + name);
+              }
+              return this['fromWireType'](heap[pointer >> shift]);
+          },
+          destructorFunction: null, // This type does not need a destructor
+      });
+    }
+
+  
+  
+  
+  function ClassHandle_isAliasOf(other) {
+      if (!(this instanceof ClassHandle)) {
+          return false;
+      }
+      if (!(other instanceof ClassHandle)) {
+          return false;
+      }
+  
+      var leftClass = this.$$.ptrType.registeredClass;
+      var left = this.$$.ptr;
+      var rightClass = other.$$.ptrType.registeredClass;
+      var right = other.$$.ptr;
+  
+      while (leftClass.baseClass) {
+          left = leftClass.upcast(left);
+          leftClass = leftClass.baseClass;
+      }
+  
+      while (rightClass.baseClass) {
+          right = rightClass.upcast(right);
+          rightClass = rightClass.baseClass;
+      }
+  
+      return leftClass === rightClass && left === right;
+    }
+  
+  
+  function shallowCopyInternalPointer(o) {
+      return {
+          count: o.count,
+          deleteScheduled: o.deleteScheduled,
+          preservePointerOnDelete: o.preservePointerOnDelete,
+          ptr: o.ptr,
+          ptrType: o.ptrType,
+          smartPtr: o.smartPtr,
+          smartPtrType: o.smartPtrType,
+      };
+    }
+  
+  function throwInstanceAlreadyDeleted(obj) {
+      function getInstanceTypeName(handle) {
+        return handle.$$.ptrType.registeredClass.name;
+      }
+      throwBindingError(getInstanceTypeName(obj) + ' instance already deleted');
+    }
+  
+  
+  var finalizationGroup=false;
+  
+  function detachFinalizer(handle) {}
+  
+  
+  function runDestructor($$) {
+      if ($$.smartPtr) {
+          $$.smartPtrType.rawDestructor($$.smartPtr);
+      } else {
+          $$.ptrType.registeredClass.rawDestructor($$.ptr);
+      }
+    }function releaseClassHandle($$) {
+      $$.count.value -= 1;
+      var toDelete = 0 === $$.count.value;
+      if (toDelete) {
+          runDestructor($$);
+      }
+    }function attachFinalizer(handle) {
+      if ('undefined' === typeof FinalizationGroup) {
+          attachFinalizer = function (handle) { return handle; };
+          return handle;
+      }
+      // If the running environment has a FinalizationGroup (see
+      // https://github.com/tc39/proposal-weakrefs), then attach finalizers
+      // for class handles.  We check for the presence of FinalizationGroup
+      // at run-time, not build-time.
+      finalizationGroup = new FinalizationGroup(function (iter) {
+          for (var result = iter.next(); !result.done; result = iter.next()) {
+              var $$ = result.value;
+              if (!$$.ptr) {
+                  console.warn('object already deleted: ' + $$.ptr);
+              } else {
+                  releaseClassHandle($$);
+              }
+          }
+      });
+      attachFinalizer = function(handle) {
+          finalizationGroup.register(handle, handle.$$, handle.$$);
+          return handle;
+      };
+      detachFinalizer = function(handle) {
+          finalizationGroup.unregister(handle.$$);
+      };
+      return attachFinalizer(handle);
+    }function ClassHandle_clone() {
+      if (!this.$$.ptr) {
+          throwInstanceAlreadyDeleted(this);
+      }
+  
+      if (this.$$.preservePointerOnDelete) {
+          this.$$.count.value += 1;
+          return this;
+      } else {
+          var clone = attachFinalizer(Object.create(Object.getPrototypeOf(this), {
+              $$: {
+                  value: shallowCopyInternalPointer(this.$$),
+              }
+          }));
+  
+          clone.$$.count.value += 1;
+          clone.$$.deleteScheduled = false;
+          return clone;
+      }
+    }
+  
+  function ClassHandle_delete() {
+      if (!this.$$.ptr) {
+          throwInstanceAlreadyDeleted(this);
+      }
+  
+      if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) {
+          throwBindingError('Object already scheduled for deletion');
+      }
+  
+      detachFinalizer(this);
+      releaseClassHandle(this.$$);
+  
+      if (!this.$$.preservePointerOnDelete) {
+          this.$$.smartPtr = undefined;
+          this.$$.ptr = undefined;
+      }
+    }
+  
+  function ClassHandle_isDeleted() {
+      return !this.$$.ptr;
+    }
+  
+  
+  var delayFunction=undefined;
+  
+  var deletionQueue=[];
+  
+  function flushPendingDeletes() {
+      while (deletionQueue.length) {
+          var obj = deletionQueue.pop();
+          obj.$$.deleteScheduled = false;
+          obj['delete']();
+      }
+    }function ClassHandle_deleteLater() {
+      if (!this.$$.ptr) {
+          throwInstanceAlreadyDeleted(this);
+      }
+      if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) {
+          throwBindingError('Object already scheduled for deletion');
+      }
+      deletionQueue.push(this);
+      if (deletionQueue.length === 1 && delayFunction) {
+          delayFunction(flushPendingDeletes);
+      }
+      this.$$.deleteScheduled = true;
+      return this;
+    }function init_ClassHandle() {
+      ClassHandle.prototype['isAliasOf'] = ClassHandle_isAliasOf;
+      ClassHandle.prototype['clone'] = ClassHandle_clone;
+      ClassHandle.prototype['delete'] = ClassHandle_delete;
+      ClassHandle.prototype['isDeleted'] = ClassHandle_isDeleted;
+      ClassHandle.prototype['deleteLater'] = ClassHandle_deleteLater;
+    }function ClassHandle() {
+    }
+  
+  var registeredPointers={};
+  
+  
+  function ensureOverloadTable(proto, methodName, humanName) {
+      if (undefined === proto[methodName].overloadTable) {
+          var prevFunc = proto[methodName];
+          // Inject an overload resolver function that routes to the appropriate overload based on the number of arguments.
+          proto[methodName] = function() {
+              // TODO This check can be removed in -O3 level "unsafe" optimizations.
+              if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) {
+                  throwBindingError("Function '" + humanName + "' called with an invalid number of arguments (" + arguments.length + ") - expects one of (" + proto[methodName].overloadTable + ")!");
+              }
+              return proto[methodName].overloadTable[arguments.length].apply(this, arguments);
+          };
+          // Move the previous function into the overload table.
+          proto[methodName].overloadTable = [];
+          proto[methodName].overloadTable[prevFunc.argCount] = prevFunc;
+      }
+    }function exposePublicSymbol(name, value, numArguments) {
+      if (Module.hasOwnProperty(name)) {
+          if (undefined === numArguments || (undefined !== Module[name].overloadTable && undefined !== Module[name].overloadTable[numArguments])) {
+              throwBindingError("Cannot register public name '" + name + "' twice");
+          }
+  
+          // We are exposing a function with the same name as an existing function. Create an overload table and a function selector
+          // that routes between the two.
+          ensureOverloadTable(Module, name, name);
+          if (Module.hasOwnProperty(numArguments)) {
+              throwBindingError("Cannot register multiple overloads of a function with the same number of arguments (" + numArguments + ")!");
+          }
+          // Add the new function into the overload table.
+          Module[name].overloadTable[numArguments] = value;
+      }
+      else {
+          Module[name] = value;
+          if (undefined !== numArguments) {
+              Module[name].numArguments = numArguments;
+          }
+      }
+    }
+  
+  function RegisteredClass(
+      name,
+      constructor,
+      instancePrototype,
+      rawDestructor,
+      baseClass,
+      getActualType,
+      upcast,
+      downcast
+    ) {
+      this.name = name;
+      this.constructor = constructor;
+      this.instancePrototype = instancePrototype;
+      this.rawDestructor = rawDestructor;
+      this.baseClass = baseClass;
+      this.getActualType = getActualType;
+      this.upcast = upcast;
+      this.downcast = downcast;
+      this.pureVirtualFunctions = [];
+    }
+  
+  
+  
+  function upcastPointer(ptr, ptrClass, desiredClass) {
+      while (ptrClass !== desiredClass) {
+          if (!ptrClass.upcast) {
+              throwBindingError("Expected null or instance of " + desiredClass.name + ", got an instance of " + ptrClass.name);
+          }
+          ptr = ptrClass.upcast(ptr);
+          ptrClass = ptrClass.baseClass;
+      }
+      return ptr;
+    }function constNoSmartPtrRawPointerToWireType(destructors, handle) {
+      if (handle === null) {
+          if (this.isReference) {
+              throwBindingError('null is not a valid ' + this.name);
+          }
+          return 0;
+      }
+  
+      if (!handle.$$) {
+          throwBindingError('Cannot pass "' + _embind_repr(handle) + '" as a ' + this.name);
+      }
+      if (!handle.$$.ptr) {
+          throwBindingError('Cannot pass deleted object as a pointer of type ' + this.name);
+      }
+      var handleClass = handle.$$.ptrType.registeredClass;
+      var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);
+      return ptr;
+    }
+  
+  function genericPointerToWireType(destructors, handle) {
+      var ptr;
+      if (handle === null) {
+          if (this.isReference) {
+              throwBindingError('null is not a valid ' + this.name);
+          }
+  
+          if (this.isSmartPointer) {
+              ptr = this.rawConstructor();
+              if (destructors !== null) {
+                  destructors.push(this.rawDestructor, ptr);
+              }
+              return ptr;
+          } else {
+              return 0;
+          }
+      }
+  
+      if (!handle.$$) {
+          throwBindingError('Cannot pass "' + _embind_repr(handle) + '" as a ' + this.name);
+      }
+      if (!handle.$$.ptr) {
+          throwBindingError('Cannot pass deleted object as a pointer of type ' + this.name);
+      }
+      if (!this.isConst && handle.$$.ptrType.isConst) {
+          throwBindingError('Cannot convert argument of type ' + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + ' to parameter type ' + this.name);
+      }
+      var handleClass = handle.$$.ptrType.registeredClass;
+      ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);
+  
+      if (this.isSmartPointer) {
+          // TODO: this is not strictly true
+          // We could support BY_EMVAL conversions from raw pointers to smart pointers
+          // because the smart pointer can hold a reference to the handle
+          if (undefined === handle.$$.smartPtr) {
+              throwBindingError('Passing raw pointer to smart pointer is illegal');
+          }
+  
+          switch (this.sharingPolicy) {
+              case 0: // NONE
+                  // no upcasting
+                  if (handle.$$.smartPtrType === this) {
+                      ptr = handle.$$.smartPtr;
+                  } else {
+                      throwBindingError('Cannot convert argument of type ' + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + ' to parameter type ' + this.name);
+                  }
+                  break;
+  
+              case 1: // INTRUSIVE
+                  ptr = handle.$$.smartPtr;
+                  break;
+  
+              case 2: // BY_EMVAL
+                  if (handle.$$.smartPtrType === this) {
+                      ptr = handle.$$.smartPtr;
+                  } else {
+                      var clonedHandle = handle['clone']();
+                      ptr = this.rawShare(
+                          ptr,
+                          __emval_register(function() {
+                              clonedHandle['delete']();
+                          })
+                      );
+                      if (destructors !== null) {
+                          destructors.push(this.rawDestructor, ptr);
+                      }
+                  }
+                  break;
+  
+              default:
+                  throwBindingError('Unsupporting sharing policy');
+          }
+      }
+      return ptr;
+    }
+  
+  function nonConstNoSmartPtrRawPointerToWireType(destructors, handle) {
+      if (handle === null) {
+          if (this.isReference) {
+              throwBindingError('null is not a valid ' + this.name);
+          }
+          return 0;
+      }
+  
+      if (!handle.$$) {
+          throwBindingError('Cannot pass "' + _embind_repr(handle) + '" as a ' + this.name);
+      }
+      if (!handle.$$.ptr) {
+          throwBindingError('Cannot pass deleted object as a pointer of type ' + this.name);
+      }
+      if (handle.$$.ptrType.isConst) {
+          throwBindingError('Cannot convert argument of type ' + handle.$$.ptrType.name + ' to parameter type ' + this.name);
+      }
+      var handleClass = handle.$$.ptrType.registeredClass;
+      var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);
+      return ptr;
+    }
+  
+  
+  function RegisteredPointer_getPointee(ptr) {
+      if (this.rawGetPointee) {
+          ptr = this.rawGetPointee(ptr);
+      }
+      return ptr;
+    }
+  
+  function RegisteredPointer_destructor(ptr) {
+      if (this.rawDestructor) {
+          this.rawDestructor(ptr);
+      }
+    }
+  
+  function RegisteredPointer_deleteObject(handle) {
+      if (handle !== null) {
+          handle['delete']();
+      }
+    }
+  
+  
+  function downcastPointer(ptr, ptrClass, desiredClass) {
+      if (ptrClass === desiredClass) {
+          return ptr;
+      }
+      if (undefined === desiredClass.baseClass) {
+          return null; // no conversion
+      }
+  
+      var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass);
+      if (rv === null) {
+          return null;
+      }
+      return desiredClass.downcast(rv);
+    }
+  
+  
+  
+  
+  function getInheritedInstanceCount() {
+      return Object.keys(registeredInstances).length;
+    }
+  
+  function getLiveInheritedInstances() {
+      var rv = [];
+      for (var k in registeredInstances) {
+          if (registeredInstances.hasOwnProperty(k)) {
+              rv.push(registeredInstances[k]);
+          }
+      }
+      return rv;
+    }
+  
+  function setDelayFunction(fn) {
+      delayFunction = fn;
+      if (deletionQueue.length && delayFunction) {
+          delayFunction(flushPendingDeletes);
+      }
+    }function init_embind() {
+      Module['getInheritedInstanceCount'] = getInheritedInstanceCount;
+      Module['getLiveInheritedInstances'] = getLiveInheritedInstances;
+      Module['flushPendingDeletes'] = flushPendingDeletes;
+      Module['setDelayFunction'] = setDelayFunction;
+    }var registeredInstances={};
+  
+  function getBasestPointer(class_, ptr) {
+      if (ptr === undefined) {
+          throwBindingError('ptr should not be undefined');
+      }
+      while (class_.baseClass) {
+          ptr = class_.upcast(ptr);
+          class_ = class_.baseClass;
+      }
+      return ptr;
+    }function getInheritedInstance(class_, ptr) {
+      ptr = getBasestPointer(class_, ptr);
+      return registeredInstances[ptr];
+    }
+  
+  function makeClassHandle(prototype, record) {
+      if (!record.ptrType || !record.ptr) {
+          throwInternalError('makeClassHandle requires ptr and ptrType');
+      }
+      var hasSmartPtrType = !!record.smartPtrType;
+      var hasSmartPtr = !!record.smartPtr;
+      if (hasSmartPtrType !== hasSmartPtr) {
+          throwInternalError('Both smartPtrType and smartPtr must be specified');
+      }
+      record.count = { value: 1 };
+      return attachFinalizer(Object.create(prototype, {
+          $$: {
+              value: record,
+          },
+      }));
+    }function RegisteredPointer_fromWireType(ptr) {
+      // ptr is a raw pointer (or a raw smartpointer)
+  
+      // rawPointer is a maybe-null raw pointer
+      var rawPointer = this.getPointee(ptr);
+      if (!rawPointer) {
+          this.destructor(ptr);
+          return null;
+      }
+  
+      var registeredInstance = getInheritedInstance(this.registeredClass, rawPointer);
+      if (undefined !== registeredInstance) {
+          // JS object has been neutered, time to repopulate it
+          if (0 === registeredInstance.$$.count.value) {
+              registeredInstance.$$.ptr = rawPointer;
+              registeredInstance.$$.smartPtr = ptr;
+              return registeredInstance['clone']();
+          } else {
+              // else, just increment reference count on existing object
+              // it already has a reference to the smart pointer
+              var rv = registeredInstance['clone']();
+              this.destructor(ptr);
+              return rv;
+          }
+      }
+  
+      function makeDefaultHandle() {
+          if (this.isSmartPointer) {
+              return makeClassHandle(this.registeredClass.instancePrototype, {
+                  ptrType: this.pointeeType,
+                  ptr: rawPointer,
+                  smartPtrType: this,
+                  smartPtr: ptr,
+              });
+          } else {
+              return makeClassHandle(this.registeredClass.instancePrototype, {
+                  ptrType: this,
+                  ptr: ptr,
+              });
+          }
+      }
+  
+      var actualType = this.registeredClass.getActualType(rawPointer);
+      var registeredPointerRecord = registeredPointers[actualType];
+      if (!registeredPointerRecord) {
+          return makeDefaultHandle.call(this);
+      }
+  
+      var toType;
+      if (this.isConst) {
+          toType = registeredPointerRecord.constPointerType;
+      } else {
+          toType = registeredPointerRecord.pointerType;
+      }
+      var dp = downcastPointer(
+          rawPointer,
+          this.registeredClass,
+          toType.registeredClass);
+      if (dp === null) {
+          return makeDefaultHandle.call(this);
+      }
+      if (this.isSmartPointer) {
+          return makeClassHandle(toType.registeredClass.instancePrototype, {
+              ptrType: toType,
+              ptr: dp,
+              smartPtrType: this,
+              smartPtr: ptr,
+          });
+      } else {
+          return makeClassHandle(toType.registeredClass.instancePrototype, {
+              ptrType: toType,
+              ptr: dp,
+          });
+      }
+    }function init_RegisteredPointer() {
+      RegisteredPointer.prototype.getPointee = RegisteredPointer_getPointee;
+      RegisteredPointer.prototype.destructor = RegisteredPointer_destructor;
+      RegisteredPointer.prototype['argPackAdvance'] = 8;
+      RegisteredPointer.prototype['readValueFromPointer'] = simpleReadValueFromPointer;
+      RegisteredPointer.prototype['deleteObject'] = RegisteredPointer_deleteObject;
+      RegisteredPointer.prototype['fromWireType'] = RegisteredPointer_fromWireType;
+    }function RegisteredPointer(
+      name,
+      registeredClass,
+      isReference,
+      isConst,
+  
+      // smart pointer properties
+      isSmartPointer,
+      pointeeType,
+      sharingPolicy,
+      rawGetPointee,
+      rawConstructor,
+      rawShare,
+      rawDestructor
+    ) {
+      this.name = name;
+      this.registeredClass = registeredClass;
+      this.isReference = isReference;
+      this.isConst = isConst;
+  
+      // smart pointer properties
+      this.isSmartPointer = isSmartPointer;
+      this.pointeeType = pointeeType;
+      this.sharingPolicy = sharingPolicy;
+      this.rawGetPointee = rawGetPointee;
+      this.rawConstructor = rawConstructor;
+      this.rawShare = rawShare;
+      this.rawDestructor = rawDestructor;
+  
+      if (!isSmartPointer && registeredClass.baseClass === undefined) {
+          if (isConst) {
+              this['toWireType'] = constNoSmartPtrRawPointerToWireType;
+              this.destructorFunction = null;
+          } else {
+              this['toWireType'] = nonConstNoSmartPtrRawPointerToWireType;
+              this.destructorFunction = null;
+          }
+      } else {
+          this['toWireType'] = genericPointerToWireType;
+          // Here we must leave this.destructorFunction undefined, since whether genericPointerToWireType returns
+          // a pointer that needs to be freed up is runtime-dependent, and cannot be evaluated at registration time.
+          // TODO: Create an alternative mechanism that allows removing the use of var destructors = []; array in
+          //       craftInvokerFunction altogether.
+      }
+    }
+  
+  function replacePublicSymbol(name, value, numArguments) {
+      if (!Module.hasOwnProperty(name)) {
+          throwInternalError('Replacing nonexistant public symbol');
+      }
+      // If there's an overload table for this symbol, replace the symbol in the overload table instead.
+      if (undefined !== Module[name].overloadTable && undefined !== numArguments) {
+          Module[name].overloadTable[numArguments] = value;
+      }
+      else {
+          Module[name] = value;
+          Module[name].argCount = numArguments;
+      }
+    }
+  
+  function embind__requireFunction(signature, rawFunction) {
+      signature = readLatin1String(signature);
+  
+      function makeDynCaller(dynCall) {
+          var args = [];
+          for (var i = 1; i < signature.length; ++i) {
+              args.push('a' + i);
+          }
+  
+          var name = 'dynCall_' + signature + '_' + rawFunction;
+          var body = 'return function ' + name + '(' + args.join(', ') + ') {\n';
+          body    += '    return dynCall(rawFunction' + (args.length ? ', ' : '') + args.join(', ') + ');\n';
+          body    += '};\n';
+  
+          return (new Function('dynCall', 'rawFunction', body))(dynCall, rawFunction);
+      }
+  
+      var fp;
+      if (Module['FUNCTION_TABLE_' + signature] !== undefined) {
+          fp = Module['FUNCTION_TABLE_' + signature][rawFunction];
+      } else if (typeof FUNCTION_TABLE !== "undefined") {
+          fp = FUNCTION_TABLE[rawFunction];
+      } else {
+          // asm.js does not give direct access to the function tables,
+          // and thus we must go through the dynCall interface which allows
+          // calling into a signature's function table by pointer value.
+          //
+          // https://github.com/dherman/asm.js/issues/83
+          //
+          // This has three main penalties:
+          // - dynCall is another function call in the path from JavaScript to C++.
+          // - JITs may not predict through the function table indirection at runtime.
+          var dc = Module['dynCall_' + signature];
+          if (dc === undefined) {
+              // We will always enter this branch if the signature
+              // contains 'f' and PRECISE_F32 is not enabled.
+              //
+              // Try again, replacing 'f' with 'd'.
+              dc = Module['dynCall_' + signature.replace(/f/g, 'd')];
+              if (dc === undefined) {
+                  throwBindingError("No dynCall invoker for signature: " + signature);
+              }
+          }
+          fp = makeDynCaller(dc);
+      }
+  
+      if (typeof fp !== "function") {
+          throwBindingError("unknown function pointer with signature " + signature + ": " + rawFunction);
+      }
+      return fp;
+    }
+  
+  
+  var UnboundTypeError=undefined;
+  
+  function getTypeName(type) {
+      var ptr = ___getTypeName(type);
+      var rv = readLatin1String(ptr);
+      _free(ptr);
+      return rv;
+    }function throwUnboundTypeError(message, types) {
+      var unboundTypes = [];
+      var seen = {};
+      function visit(type) {
+          if (seen[type]) {
+              return;
+          }
+          if (registeredTypes[type]) {
+              return;
+          }
+          if (typeDependencies[type]) {
+              typeDependencies[type].forEach(visit);
+              return;
+          }
+          unboundTypes.push(type);
+          seen[type] = true;
+      }
+      types.forEach(visit);
+  
+      throw new UnboundTypeError(message + ': ' + unboundTypes.map(getTypeName).join([', ']));
+    }function __embind_register_class(
+      rawType,
+      rawPointerType,
+      rawConstPointerType,
+      baseClassRawType,
+      getActualTypeSignature,
+      getActualType,
+      upcastSignature,
+      upcast,
+      downcastSignature,
+      downcast,
+      name,
+      destructorSignature,
+      rawDestructor
+    ) {
+      name = readLatin1String(name);
+      getActualType = embind__requireFunction(getActualTypeSignature, getActualType);
+      if (upcast) {
+          upcast = embind__requireFunction(upcastSignature, upcast);
+      }
+      if (downcast) {
+          downcast = embind__requireFunction(downcastSignature, downcast);
+      }
+      rawDestructor = embind__requireFunction(destructorSignature, rawDestructor);
+      var legalFunctionName = makeLegalFunctionName(name);
+  
+      exposePublicSymbol(legalFunctionName, function() {
+          // this code cannot run if baseClassRawType is zero
+          throwUnboundTypeError('Cannot construct ' + name + ' due to unbound types', [baseClassRawType]);
+      });
+  
+      whenDependentTypesAreResolved(
+          [rawType, rawPointerType, rawConstPointerType],
+          baseClassRawType ? [baseClassRawType] : [],
+          function(base) {
+              base = base[0];
+  
+              var baseClass;
+              var basePrototype;
+              if (baseClassRawType) {
+                  baseClass = base.registeredClass;
+                  basePrototype = baseClass.instancePrototype;
+              } else {
+                  basePrototype = ClassHandle.prototype;
+              }
+  
+              var constructor = createNamedFunction(legalFunctionName, function() {
+                  if (Object.getPrototypeOf(this) !== instancePrototype) {
+                      throw new BindingError("Use 'new' to construct " + name);
+                  }
+                  if (undefined === registeredClass.constructor_body) {
+                      throw new BindingError(name + " has no accessible constructor");
+                  }
+                  var body = registeredClass.constructor_body[arguments.length];
+                  if (undefined === body) {
+                      throw new BindingError("Tried to invoke ctor of " + name + " with invalid number of parameters (" + arguments.length + ") - expected (" + Object.keys(registeredClass.constructor_body).toString() + ") parameters instead!");
+                  }
+                  return body.apply(this, arguments);
+              });
+  
+              var instancePrototype = Object.create(basePrototype, {
+                  constructor: { value: constructor },
+              });
+  
+              constructor.prototype = instancePrototype;
+  
+              var registeredClass = new RegisteredClass(
+                  name,
+                  constructor,
+                  instancePrototype,
+                  rawDestructor,
+                  baseClass,
+                  getActualType,
+                  upcast,
+                  downcast);
+  
+              var referenceConverter = new RegisteredPointer(
+                  name,
+                  registeredClass,
+                  true,
+                  false,
+                  false);
+  
+              var pointerConverter = new RegisteredPointer(
+                  name + '*',
+                  registeredClass,
+                  false,
+                  false,
+                  false);
+  
+              var constPointerConverter = new RegisteredPointer(
+                  name + ' const*',
+                  registeredClass,
+                  false,
+                  true,
+                  false);
+  
+              registeredPointers[rawType] = {
+                  pointerType: pointerConverter,
+                  constPointerType: constPointerConverter
+              };
+  
+              replacePublicSymbol(legalFunctionName, constructor);
+  
+              return [referenceConverter, pointerConverter, constPointerConverter];
+          }
+      );
+    }
+
+  
+  
+  function new_(constructor, argumentList) {
+      if (!(constructor instanceof Function)) {
+          throw new TypeError('new_ called with constructor type ' + typeof(constructor) + " which is not a function");
+      }
+  
+      /*
+       * Previously, the following line was just:
+  
+       function dummy() {};
+  
+       * Unfortunately, Chrome was preserving 'dummy' as the object's name, even though at creation, the 'dummy' has the
+       * correct constructor name.  Thus, objects created with IMVU.new would show up in the debugger as 'dummy', which
+       * isn't very helpful.  Using IMVU.createNamedFunction addresses the issue.  Doublely-unfortunately, there's no way
+       * to write a test for this behavior.  -NRD 2013.02.22
+       */
+      var dummy = createNamedFunction(constructor.name || 'unknownFunctionName', function(){});
+      dummy.prototype = constructor.prototype;
+      var obj = new dummy;
+  
+      var r = constructor.apply(obj, argumentList);
+      return (r instanceof Object) ? r : obj;
+    }function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc) {
+      // humanName: a human-readable string name for the function to be generated.
+      // argTypes: An array that contains the embind type objects for all types in the function signature.
+      //    argTypes[0] is the type object for the function return value.
+      //    argTypes[1] is the type object for function this object/class type, or null if not crafting an invoker for a class method.
+      //    argTypes[2...] are the actual function parameters.
+      // classType: The embind type object for the class to be bound, or null if this is not a method of a class.
+      // cppInvokerFunc: JS Function object to the C++-side function that interops into C++ code.
+      // cppTargetFunc: Function pointer (an integer to FUNCTION_TABLE) to the target C++ function the cppInvokerFunc will end up calling.
+      var argCount = argTypes.length;
+  
+      if (argCount < 2) {
+          throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!");
+      }
+  
+      var isClassMethodFunc = (argTypes[1] !== null && classType !== null);
+  
+      // Free functions with signature "void function()" do not need an invoker that marshalls between wire types.
+  // TODO: This omits argument count check - enable only at -O3 or similar.
+  //    if (ENABLE_UNSAFE_OPTS && argCount == 2 && argTypes[0].name == "void" && !isClassMethodFunc) {
+  //       return FUNCTION_TABLE[fn];
+  //    }
+  
+  
+      // Determine if we need to use a dynamic stack to store the destructors for the function parameters.
+      // TODO: Remove this completely once all function invokers are being dynamically generated.
+      var needsDestructorStack = false;
+  
+      for(var i = 1; i < argTypes.length; ++i) { // Skip return value at index 0 - it's not deleted here.
+          if (argTypes[i] !== null && argTypes[i].destructorFunction === undefined) { // The type does not define a destructor function - must use dynamic stack
+              needsDestructorStack = true;
+              break;
+          }
+      }
+  
+      var returns = (argTypes[0].name !== "void");
+  
+      var argsList = "";
+      var argsListWired = "";
+      for(var i = 0; i < argCount - 2; ++i) {
+          argsList += (i!==0?", ":"")+"arg"+i;
+          argsListWired += (i!==0?", ":"")+"arg"+i+"Wired";
+      }
+  
+      var invokerFnBody =
+          "return function "+makeLegalFunctionName(humanName)+"("+argsList+") {\n" +
+          "if (arguments.length !== "+(argCount - 2)+") {\n" +
+              "throwBindingError('function "+humanName+" called with ' + arguments.length + ' arguments, expected "+(argCount - 2)+" args!');\n" +
+          "}\n";
+  
+  
+      if (needsDestructorStack) {
+          invokerFnBody +=
+              "var destructors = [];\n";
+      }
+  
+      var dtorStack = needsDestructorStack ? "destructors" : "null";
+      var args1 = ["throwBindingError", "invoker", "fn", "runDestructors", "retType", "classParam"];
+      var args2 = [throwBindingError, cppInvokerFunc, cppTargetFunc, runDestructors, argTypes[0], argTypes[1]];
+  
+  
+      if (isClassMethodFunc) {
+          invokerFnBody += "var thisWired = classParam.toWireType("+dtorStack+", this);\n";
+      }
+  
+      for(var i = 0; i < argCount - 2; ++i) {
+          invokerFnBody += "var arg"+i+"Wired = argType"+i+".toWireType("+dtorStack+", arg"+i+"); // "+argTypes[i+2].name+"\n";
+          args1.push("argType"+i);
+          args2.push(argTypes[i+2]);
+      }
+  
+      if (isClassMethodFunc) {
+          argsListWired = "thisWired" + (argsListWired.length > 0 ? ", " : "") + argsListWired;
+      }
+  
+      invokerFnBody +=
+          (returns?"var rv = ":"") + "invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";
+  
+      if (needsDestructorStack) {
+          invokerFnBody += "runDestructors(destructors);\n";
+      } else {
+          for(var i = isClassMethodFunc?1:2; i < argTypes.length; ++i) { // Skip return value at index 0 - it's not deleted here. Also skip class type if not a method.
+              var paramName = (i === 1 ? "thisWired" : ("arg"+(i - 2)+"Wired"));
+              if (argTypes[i].destructorFunction !== null) {
+                  invokerFnBody += paramName+"_dtor("+paramName+"); // "+argTypes[i].name+"\n";
+                  args1.push(paramName+"_dtor");
+                  args2.push(argTypes[i].destructorFunction);
+              }
+          }
+      }
+  
+      if (returns) {
+          invokerFnBody += "var ret = retType.fromWireType(rv);\n" +
+                           "return ret;\n";
+      } else {
+      }
+      invokerFnBody += "}\n";
+  
+      args1.push(invokerFnBody);
+  
+      var invokerFunction = new_(Function, args1).apply(null, args2);
+      return invokerFunction;
+    }
+  
+  function heap32VectorToArray(count, firstElement) {
+      var array = [];
+      for (var i = 0; i < count; i++) {
+          array.push(HEAP32[(firstElement >> 2) + i]);
+      }
+      return array;
+    }function __embind_register_class_class_function(
+      rawClassType,
+      methodName,
+      argCount,
+      rawArgTypesAddr,
+      invokerSignature,
+      rawInvoker,
+      fn
+    ) {
+      var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
+      methodName = readLatin1String(methodName);
+      rawInvoker = embind__requireFunction(invokerSignature, rawInvoker);
+      whenDependentTypesAreResolved([], [rawClassType], function(classType) {
+          classType = classType[0];
+          var humanName = classType.name + '.' + methodName;
+  
+          function unboundTypesHandler() {
+              throwUnboundTypeError('Cannot call ' + humanName + ' due to unbound types', rawArgTypes);
+          }
+  
+          var proto = classType.registeredClass.constructor;
+          if (undefined === proto[methodName]) {
+              // This is the first function to be registered with this name.
+              unboundTypesHandler.argCount = argCount-1;
+              proto[methodName] = unboundTypesHandler;
+          } else {
+              // There was an existing function with the same name registered. Set up a function overload routing table.
+              ensureOverloadTable(proto, methodName, humanName);
+              proto[methodName].overloadTable[argCount-1] = unboundTypesHandler;
+          }
+  
+          whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) {
+              // Replace the initial unbound-types-handler stub with the proper function. If multiple overloads are registered,
+              // the function handlers go into an overload table.
+              var invokerArgsArray = [argTypes[0] /* return value */, null /* no class 'this'*/].concat(argTypes.slice(1) /* actual params */);
+              var func = craftInvokerFunction(humanName, invokerArgsArray, null /* no class 'this'*/, rawInvoker, fn);
+              if (undefined === proto[methodName].overloadTable) {
+                  func.argCount = argCount-1;
+                  proto[methodName] = func;
+              } else {
+                  proto[methodName].overloadTable[argCount-1] = func;
+              }
+              return [];
+          });
+          return [];
+      });
+    }
+
+  function __embind_register_class_constructor(
+      rawClassType,
+      argCount,
+      rawArgTypesAddr,
+      invokerSignature,
+      invoker,
+      rawConstructor
+    ) {
+      var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
+      invoker = embind__requireFunction(invokerSignature, invoker);
+  
+      whenDependentTypesAreResolved([], [rawClassType], function(classType) {
+          classType = classType[0];
+          var humanName = 'constructor ' + classType.name;
+  
+          if (undefined === classType.registeredClass.constructor_body) {
+              classType.registeredClass.constructor_body = [];
+          }
+          if (undefined !== classType.registeredClass.constructor_body[argCount - 1]) {
+              throw new BindingError("Cannot register multiple constructors with identical number of parameters (" + (argCount-1) + ") for class '" + classType.name + "'! Overload resolution is currently only performed using the parameter count, not actual type info!");
+          }
+          classType.registeredClass.constructor_body[argCount - 1] = function unboundTypeHandler() {
+              throwUnboundTypeError('Cannot construct ' + classType.name + ' due to unbound types', rawArgTypes);
+          };
+  
+          whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) {
+              classType.registeredClass.constructor_body[argCount - 1] = function constructor_body() {
+                  if (arguments.length !== argCount - 1) {
+                      throwBindingError(humanName + ' called with ' + arguments.length + ' arguments, expected ' + (argCount-1));
+                  }
+                  var destructors = [];
+                  var args = new Array(argCount);
+                  args[0] = rawConstructor;
+                  for (var i = 1; i < argCount; ++i) {
+                      args[i] = argTypes[i]['toWireType'](destructors, arguments[i - 1]);
+                  }
+  
+                  var ptr = invoker.apply(null, args);
+                  runDestructors(destructors);
+  
+                  return argTypes[0]['fromWireType'](ptr);
+              };
+              return [];
+          });
+          return [];
+      });
+    }
+
+  function __embind_register_class_function(
+      rawClassType,
+      methodName,
+      argCount,
+      rawArgTypesAddr, // [ReturnType, ThisType, Args...]
+      invokerSignature,
+      rawInvoker,
+      context,
+      isPureVirtual
+    ) {
+      var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
+      methodName = readLatin1String(methodName);
+      rawInvoker = embind__requireFunction(invokerSignature, rawInvoker);
+  
+      whenDependentTypesAreResolved([], [rawClassType], function(classType) {
+          classType = classType[0];
+          var humanName = classType.name + '.' + methodName;
+  
+          if (isPureVirtual) {
+              classType.registeredClass.pureVirtualFunctions.push(methodName);
+          }
+  
+          function unboundTypesHandler() {
+              throwUnboundTypeError('Cannot call ' + humanName + ' due to unbound types', rawArgTypes);
+          }
+  
+          var proto = classType.registeredClass.instancePrototype;
+          var method = proto[methodName];
+          if (undefined === method || (undefined === method.overloadTable && method.className !== classType.name && method.argCount === argCount - 2)) {
+              // This is the first overload to be registered, OR we are replacing a function in the base class with a function in the derived class.
+              unboundTypesHandler.argCount = argCount - 2;
+              unboundTypesHandler.className = classType.name;
+              proto[methodName] = unboundTypesHandler;
+          } else {
+              // There was an existing function with the same name registered. Set up a function overload routing table.
+              ensureOverloadTable(proto, methodName, humanName);
+              proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler;
+          }
+  
+          whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) {
+  
+              var memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context);
+  
+              // Replace the initial unbound-handler-stub function with the appropriate member function, now that all types
+              // are resolved. If multiple overloads are registered for this function, the function goes into an overload table.
+              if (undefined === proto[methodName].overloadTable) {
+                  // Set argCount in case an overload is registered later
+                  memberFunction.argCount = argCount - 2;
+                  proto[methodName] = memberFunction;
+              } else {
+                  proto[methodName].overloadTable[argCount - 2] = memberFunction;
+              }
+  
+              return [];
+          });
+          return [];
+      });
+    }
+
+  
+  function validateThis(this_, classType, humanName) {
+      if (!(this_ instanceof Object)) {
+          throwBindingError(humanName + ' with invalid "this": ' + this_);
+      }
+      if (!(this_ instanceof classType.registeredClass.constructor)) {
+          throwBindingError(humanName + ' incompatible with "this" of type ' + this_.constructor.name);
+      }
+      if (!this_.$$.ptr) {
+          throwBindingError('cannot call emscripten binding method ' + humanName + ' on deleted object');
+      }
+  
+      // todo: kill this
+      return upcastPointer(
+          this_.$$.ptr,
+          this_.$$.ptrType.registeredClass,
+          classType.registeredClass);
+    }function __embind_register_class_property(
+      classType,
+      fieldName,
+      getterReturnType,
+      getterSignature,
+      getter,
+      getterContext,
+      setterArgumentType,
+      setterSignature,
+      setter,
+      setterContext
+    ) {
+      fieldName = readLatin1String(fieldName);
+      getter = embind__requireFunction(getterSignature, getter);
+  
+      whenDependentTypesAreResolved([], [classType], function(classType) {
+          classType = classType[0];
+          var humanName = classType.name + '.' + fieldName;
+          var desc = {
+              get: function() {
+                  throwUnboundTypeError('Cannot access ' + humanName + ' due to unbound types', [getterReturnType, setterArgumentType]);
+              },
+              enumerable: true,
+              configurable: true
+          };
+          if (setter) {
+              desc.set = function() {
+                  throwUnboundTypeError('Cannot access ' + humanName + ' due to unbound types', [getterReturnType, setterArgumentType]);
+              };
+          } else {
+              desc.set = function(v) {
+                  throwBindingError(humanName + ' is a read-only property');
+              };
+          }
+  
+          Object.defineProperty(classType.registeredClass.instancePrototype, fieldName, desc);
+  
+          whenDependentTypesAreResolved(
+              [],
+              (setter ? [getterReturnType, setterArgumentType] : [getterReturnType]),
+          function(types) {
+              var getterReturnType = types[0];
+              var desc = {
+                  get: function() {
+                      var ptr = validateThis(this, classType, humanName + ' getter');
+                      return getterReturnType['fromWireType'](getter(getterContext, ptr));
+                  },
+                  enumerable: true
+              };
+  
+              if (setter) {
+                  setter = embind__requireFunction(setterSignature, setter);
+                  var setterArgumentType = types[1];
+                  desc.set = function(v) {
+                      var ptr = validateThis(this, classType, humanName + ' setter');
+                      var destructors = [];
+                      setter(setterContext, ptr, setterArgumentType['toWireType'](destructors, v));
+                      runDestructors(destructors);
+                  };
+              }
+  
+              Object.defineProperty(classType.registeredClass.instancePrototype, fieldName, desc);
+              return [];
+          });
+  
+          return [];
+      });
+    }
+
+  
+  
+  var emval_free_list=[];
+  
+  var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle) {
+      if (handle > 4 && 0 === --emval_handle_array[handle].refcount) {
+          emval_handle_array[handle] = undefined;
+          emval_free_list.push(handle);
+      }
+    }
+  
+  
+  
+  function count_emval_handles() {
+      var count = 0;
+      for (var i = 5; i < emval_handle_array.length; ++i) {
+          if (emval_handle_array[i] !== undefined) {
+              ++count;
+          }
+      }
+      return count;
+    }
+  
+  function get_first_emval() {
+      for (var i = 5; i < emval_handle_array.length; ++i) {
+          if (emval_handle_array[i] !== undefined) {
+              return emval_handle_array[i];
+          }
+      }
+      return null;
+    }function init_emval() {
+      Module['count_emval_handles'] = count_emval_handles;
+      Module['get_first_emval'] = get_first_emval;
+    }function __emval_register(value) {
+  
+      switch(value){
+        case undefined :{ return 1; }
+        case null :{ return 2; }
+        case true :{ return 3; }
+        case false :{ return 4; }
+        default:{
+          var handle = emval_free_list.length ?
+              emval_free_list.pop() :
+              emval_handle_array.length;
+  
+          emval_handle_array[handle] = {refcount: 1, value: value};
+          return handle;
+          }
+        }
+    }function __embind_register_emval(rawType, name) {
+      name = readLatin1String(name);
+      registerType(rawType, {
+          name: name,
+          'fromWireType': function(handle) {
+              var rv = emval_handle_array[handle].value;
+              __emval_decref(handle);
+              return rv;
+          },
+          'toWireType': function(destructors, value) {
+              return __emval_register(value);
+          },
+          'argPackAdvance': 8,
+          'readValueFromPointer': simpleReadValueFromPointer,
+          destructorFunction: null, // This type does not need a destructor
+  
+          // TODO: do we need a deleteObject here?  write a test where
+          // emval is passed into JS via an interface
+      });
+    }
+
+  
+  function enumReadValueFromPointer(name, shift, signed) {
+      switch (shift) {
+          case 0: return function(pointer) {
+              var heap = signed ? HEAP8 : HEAPU8;
+              return this['fromWireType'](heap[pointer]);
+          };
+          case 1: return function(pointer) {
+              var heap = signed ? HEAP16 : HEAPU16;
+              return this['fromWireType'](heap[pointer >> 1]);
+          };
+          case 2: return function(pointer) {
+              var heap = signed ? HEAP32 : HEAPU32;
+              return this['fromWireType'](heap[pointer >> 2]);
+          };
+          default:
+              throw new TypeError("Unknown integer type: " + name);
+      }
+    }function __embind_register_enum(
+      rawType,
+      name,
+      size,
+      isSigned
+    ) {
+      var shift = getShiftFromSize(size);
+      name = readLatin1String(name);
+  
+      function ctor() {
+      }
+      ctor.values = {};
+  
+      registerType(rawType, {
+          name: name,
+          constructor: ctor,
+          'fromWireType': function(c) {
+              return this.constructor.values[c];
+          },
+          'toWireType': function(destructors, c) {
+              return c.value;
+          },
+          'argPackAdvance': 8,
+          'readValueFromPointer': enumReadValueFromPointer(name, shift, isSigned),
+          destructorFunction: null,
+      });
+      exposePublicSymbol(name, ctor);
+    }
+
+  
+  function requireRegisteredType(rawType, humanName) {
+      var impl = registeredTypes[rawType];
+      if (undefined === impl) {
+          throwBindingError(humanName + " has unknown type " + getTypeName(rawType));
+      }
+      return impl;
+    }function __embind_register_enum_value(
+      rawEnumType,
+      name,
+      enumValue
+    ) {
+      var enumType = requireRegisteredType(rawEnumType, 'enum');
+      name = readLatin1String(name);
+  
+      var Enum = enumType.constructor;
+  
+      var Value = Object.create(enumType.constructor.prototype, {
+          value: {value: enumValue},
+          constructor: {value: createNamedFunction(enumType.name + '_' + name, function() {})},
+      });
+      Enum.values[enumValue] = Value;
+      Enum[name] = Value;
+    }
+
+  
+  function _embind_repr(v) {
+      if (v === null) {
+          return 'null';
+      }
+      var t = typeof v;
+      if (t === 'object' || t === 'array' || t === 'function') {
+          return v.toString();
+      } else {
+          return '' + v;
+      }
+    }
+  
+  function floatReadValueFromPointer(name, shift) {
+      switch (shift) {
+          case 2: return function(pointer) {
+              return this['fromWireType'](HEAPF32[pointer >> 2]);
+          };
+          case 3: return function(pointer) {
+              return this['fromWireType'](HEAPF64[pointer >> 3]);
+          };
+          default:
+              throw new TypeError("Unknown float type: " + name);
+      }
+    }function __embind_register_float(rawType, name, size) {
+      var shift = getShiftFromSize(size);
+      name = readLatin1String(name);
+      registerType(rawType, {
+          name: name,
+          'fromWireType': function(value) {
+              return value;
+          },
+          'toWireType': function(destructors, value) {
+              // todo: Here we have an opportunity for -O3 level "unsafe" optimizations: we could
+              // avoid the following if() and assume value is of proper type.
+              if (typeof value !== "number" && typeof value !== "boolean") {
+                  throw new TypeError('Cannot convert "' + _embind_repr(value) + '" to ' + this.name);
+              }
+              return value;
+          },
+          'argPackAdvance': 8,
+          'readValueFromPointer': floatReadValueFromPointer(name, shift),
+          destructorFunction: null, // This type does not need a destructor
+      });
+    }
+
+  
+  function integerReadValueFromPointer(name, shift, signed) {
+      // integers are quite common, so generate very specialized functions
+      switch (shift) {
+          case 0: return signed ?
+              function readS8FromPointer(pointer) { return HEAP8[pointer]; } :
+              function readU8FromPointer(pointer) { return HEAPU8[pointer]; };
+          case 1: return signed ?
+              function readS16FromPointer(pointer) { return HEAP16[pointer >> 1]; } :
+              function readU16FromPointer(pointer) { return HEAPU16[pointer >> 1]; };
+          case 2: return signed ?
+              function readS32FromPointer(pointer) { return HEAP32[pointer >> 2]; } :
+              function readU32FromPointer(pointer) { return HEAPU32[pointer >> 2]; };
+          default:
+              throw new TypeError("Unknown integer type: " + name);
+      }
+    }function __embind_register_integer(primitiveType, name, size, minRange, maxRange) {
+      name = readLatin1String(name);
+      if (maxRange === -1) { // LLVM doesn't have signed and unsigned 32-bit types, so u32 literals come out as 'i32 -1'. Always treat those as max u32.
+          maxRange = 4294967295;
+      }
+  
+      var shift = getShiftFromSize(size);
+  
+      var fromWireType = function(value) {
+          return value;
+      };
+  
+      if (minRange === 0) {
+          var bitshift = 32 - 8*size;
+          fromWireType = function(value) {
+              return (value << bitshift) >>> bitshift;
+          };
+      }
+  
+      var isUnsignedType = (name.indexOf('unsigned') != -1);
+  
+      registerType(primitiveType, {
+          name: name,
+          'fromWireType': fromWireType,
+          'toWireType': function(destructors, value) {
+              // todo: Here we have an opportunity for -O3 level "unsafe" optimizations: we could
+              // avoid the following two if()s and assume value is of proper type.
+              if (typeof value !== "number" && typeof value !== "boolean") {
+                  throw new TypeError('Cannot convert "' + _embind_repr(value) + '" to ' + this.name);
+              }
+              if (value < minRange || value > maxRange) {
+                  throw new TypeError('Passing a number "' + _embind_repr(value) + '" from JS side to C/C++ side to an argument of type "' + name + '", which is outside the valid range [' + minRange + ', ' + maxRange + ']!');
+              }
+              return isUnsignedType ? (value >>> 0) : (value | 0);
+          },
+          'argPackAdvance': 8,
+          'readValueFromPointer': integerReadValueFromPointer(name, shift, minRange !== 0),
+          destructorFunction: null, // This type does not need a destructor
+      });
+    }
+
+  function __embind_register_memory_view(rawType, dataTypeIndex, name) {
+      var typeMapping = [
+          Int8Array,
+          Uint8Array,
+          Int16Array,
+          Uint16Array,
+          Int32Array,
+          Uint32Array,
+          Float32Array,
+          Float64Array,
+      ];
+  
+      var TA = typeMapping[dataTypeIndex];
+  
+      function decodeMemoryView(handle) {
+          handle = handle >> 2;
+          var heap = HEAPU32;
+          var size = heap[handle]; // in elements
+          var data = heap[handle + 1]; // byte offset into emscripten heap
+          return new TA(heap['buffer'], data, size);
+      }
+  
+      name = readLatin1String(name);
+      registerType(rawType, {
+          name: name,
+          'fromWireType': decodeMemoryView,
+          'argPackAdvance': 8,
+          'readValueFromPointer': decodeMemoryView,
+      }, {
+          ignoreDuplicateRegistrations: true,
+      });
+    }
+
+  function __embind_register_std_string(rawType, name) {
+      name = readLatin1String(name);
+      var stdStringIsUTF8
+      //process only std::string bindings with UTF8 support, in contrast to e.g. std::basic_string<unsigned char>
+      = (name === "std::string");
+  
+      registerType(rawType, {
+          name: name,
+          'fromWireType': function(value) {
+              var length = HEAPU32[value >> 2];
+  
+              var str;
+              if(stdStringIsUTF8) {
+                  //ensure null termination at one-past-end byte if not present yet
+                  var endChar = HEAPU8[value + 4 + length];
+                  var endCharSwap = 0;
+                  if(endChar != 0)
+                  {
+                    endCharSwap = endChar;
+                    HEAPU8[value + 4 + length] = 0;
+                  }
+  
+                  var decodeStartPtr = value + 4;
+                  //looping here to support possible embedded '0' bytes
+                  for (var i = 0; i <= length; ++i) {
+                    var currentBytePtr = value + 4 + i;
+                    if(HEAPU8[currentBytePtr] == 0)
+                    {
+                      var stringSegment = UTF8ToString(decodeStartPtr);
+                      if(str === undefined)
+                        str = stringSegment;
+                      else
+                      {
+                        str += String.fromCharCode(0);
+                        str += stringSegment;
+                      }
+                      decodeStartPtr = currentBytePtr + 1;
+                    }
+                  }
+  
+                  if(endCharSwap != 0)
+                    HEAPU8[value + 4 + length] = endCharSwap;
+              } else {
+                  var a = new Array(length);
+                  for (var i = 0; i < length; ++i) {
+                      a[i] = String.fromCharCode(HEAPU8[value + 4 + i]);
+                  }
+                  str = a.join('');
+              }
+  
+              _free(value);
+              
+              return str;
+          },
+          'toWireType': function(destructors, value) {
+              if (value instanceof ArrayBuffer) {
+                  value = new Uint8Array(value);
+              }
+              
+              var getLength;
+              var valueIsOfTypeString = (typeof value === 'string');
+  
+              if (!(valueIsOfTypeString || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Int8Array)) {
+                  throwBindingError('Cannot pass non-string to std::string');
+              }
+              if (stdStringIsUTF8 && valueIsOfTypeString) {
+                  getLength = function() {return lengthBytesUTF8(value);};
+              } else {
+                  getLength = function() {return value.length;};
+              }
+              
+              // assumes 4-byte alignment
+              var length = getLength();
+              var ptr = _malloc(4 + length + 1);
+              HEAPU32[ptr >> 2] = length;
+  
+              if (stdStringIsUTF8 && valueIsOfTypeString) {
+                  stringToUTF8(value, ptr + 4, length + 1);
+              } else {
+                  if(valueIsOfTypeString) {
+                      for (var i = 0; i < length; ++i) {
+                          var charCode = value.charCodeAt(i);
+                          if (charCode > 255) {
+                              _free(ptr);
+                              throwBindingError('String has UTF-16 code units that do not fit in 8 bits');
+                          }
+                          HEAPU8[ptr + 4 + i] = charCode;
+                      }
+                  } else {
+                      for (var i = 0; i < length; ++i) {
+                          HEAPU8[ptr + 4 + i] = value[i];
+                      }
+                  }
+              }
+  
+              if (destructors !== null) {
+                  destructors.push(_free, ptr);
+              }
+              return ptr;
+          },
+          'argPackAdvance': 8,
+          'readValueFromPointer': simpleReadValueFromPointer,
+          destructorFunction: function(ptr) { _free(ptr); },
+      });
+    }
+
+  function __embind_register_std_wstring(rawType, charSize, name) {
+      // nb. do not cache HEAPU16 and HEAPU32, they may be destroyed by emscripten_resize_heap().
+      name = readLatin1String(name);
+      var getHeap, shift;
+      if (charSize === 2) {
+          getHeap = function() { return HEAPU16; };
+          shift = 1;
+      } else if (charSize === 4) {
+          getHeap = function() { return HEAPU32; };
+          shift = 2;
+      }
+      registerType(rawType, {
+          name: name,
+          'fromWireType': function(value) {
+              var HEAP = getHeap();
+              var length = HEAPU32[value >> 2];
+              var a = new Array(length);
+              var start = (value + 4) >> shift;
+              for (var i = 0; i < length; ++i) {
+                  a[i] = String.fromCharCode(HEAP[start + i]);
+              }
+              _free(value);
+              return a.join('');
+          },
+          'toWireType': function(destructors, value) {
+              // assumes 4-byte alignment
+              var length = value.length;
+              var ptr = _malloc(4 + length * charSize);
+              var HEAP = getHeap();
+              HEAPU32[ptr >> 2] = length;
+              var start = (ptr + 4) >> shift;
+              for (var i = 0; i < length; ++i) {
+                  HEAP[start + i] = value.charCodeAt(i);
+              }
+              if (destructors !== null) {
+                  destructors.push(_free, ptr);
+              }
+              return ptr;
+          },
+          'argPackAdvance': 8,
+          'readValueFromPointer': simpleReadValueFromPointer,
+          destructorFunction: function(ptr) { _free(ptr); },
+      });
+    }
+
+  function __embind_register_value_array(
+      rawType,
+      name,
+      constructorSignature,
+      rawConstructor,
+      destructorSignature,
+      rawDestructor
+    ) {
+      tupleRegistrations[rawType] = {
+          name: readLatin1String(name),
+          rawConstructor: embind__requireFunction(constructorSignature, rawConstructor),
+          rawDestructor: embind__requireFunction(destructorSignature, rawDestructor),
+          elements: [],
+      };
+    }
+
+  function __embind_register_value_array_element(
+      rawTupleType,
+      getterReturnType,
+      getterSignature,
+      getter,
+      getterContext,
+      setterArgumentType,
+      setterSignature,
+      setter,
+      setterContext
+    ) {
+      tupleRegistrations[rawTupleType].elements.push({
+          getterReturnType: getterReturnType,
+          getter: embind__requireFunction(getterSignature, getter),
+          getterContext: getterContext,
+          setterArgumentType: setterArgumentType,
+          setter: embind__requireFunction(setterSignature, setter),
+          setterContext: setterContext,
+      });
+    }
+
+  function __embind_register_value_object(
+      rawType,
+      name,
+      constructorSignature,
+      rawConstructor,
+      destructorSignature,
+      rawDestructor
+    ) {
+      structRegistrations[rawType] = {
+          name: readLatin1String(name),
+          rawConstructor: embind__requireFunction(constructorSignature, rawConstructor),
+          rawDestructor: embind__requireFunction(destructorSignature, rawDestructor),
+          fields: [],
+      };
+    }
+
+  function __embind_register_value_object_field(
+      structType,
+      fieldName,
+      getterReturnType,
+      getterSignature,
+      getter,
+      getterContext,
+      setterArgumentType,
+      setterSignature,
+      setter,
+      setterContext
+    ) {
+      structRegistrations[structType].fields.push({
+          fieldName: readLatin1String(fieldName),
+          getterReturnType: getterReturnType,
+          getter: embind__requireFunction(getterSignature, getter),
+          getterContext: getterContext,
+          setterArgumentType: setterArgumentType,
+          setter: embind__requireFunction(setterSignature, setter),
+          setterContext: setterContext,
+      });
+    }
+
+  function __embind_register_void(rawType, name) {
+      name = readLatin1String(name);
+      registerType(rawType, {
+          isVoid: true, // void return values can be optimized out sometimes
+          name: name,
+          'argPackAdvance': 0,
+          'fromWireType': function() {
+              return undefined;
+          },
+          'toWireType': function(destructors, o) {
+              // TODO: assert if anything else is given?
+              return undefined;
+          },
+      });
+    }
+
+  
+  function requireHandle(handle) {
+      if (!handle) {
+          throwBindingError('Cannot use deleted val. handle = ' + handle);
+      }
+      return emval_handle_array[handle].value;
+    }function __emval_as(handle, returnType, destructorsRef) {
+      handle = requireHandle(handle);
+      returnType = requireRegisteredType(returnType, 'emval::as');
+      var destructors = [];
+      var rd = __emval_register(destructors);
+      HEAP32[destructorsRef >> 2] = rd;
+      return returnType['toWireType'](destructors, handle);
+    }
+
+  
+  function __emval_allocateDestructors(destructorsRef) {
+      var destructors = [];
+      HEAP32[destructorsRef >> 2] = __emval_register(destructors);
+      return destructors;
+    }
+  
+  
+  var emval_symbols={};function getStringOrSymbol(address) {
+      var symbol = emval_symbols[address];
+      if (symbol === undefined) {
+          return readLatin1String(address);
+      } else {
+          return symbol;
+      }
+    }
+  
+  var emval_methodCallers=[];function __emval_call_method(caller, handle, methodName, destructorsRef, args) {
+      caller = emval_methodCallers[caller];
+      handle = requireHandle(handle);
+      methodName = getStringOrSymbol(methodName);
+      return caller(handle, methodName, __emval_allocateDestructors(destructorsRef), args);
+    }
+
+  function __emval_call_void_method(caller, handle, methodName, args) {
+      caller = emval_methodCallers[caller];
+      handle = requireHandle(handle);
+      methodName = getStringOrSymbol(methodName);
+      caller(handle, methodName, null, args);
+    }
+
+
+  function __emval_equals(first, second) {
+      first = requireHandle(first);
+      second = requireHandle(second);
+      return first == second;
+    }
+
+  
+  function emval_get_global() {
+      if (typeof globalThis === 'object') {
+        return globalThis;
+      }
+      return (function(){
+        return Function;
+      })()('return this')();
+    }function __emval_get_global(name) {
+      if(name===0){
+        return __emval_register(emval_get_global());
+      } else {
+        name = getStringOrSymbol(name);
+        return __emval_register(emval_get_global()[name]);
+      }
+    }
+
+  
+  function __emval_addMethodCaller(caller) {
+      var id = emval_methodCallers.length;
+      emval_methodCallers.push(caller);
+      return id;
+    }
+  
+  function __emval_lookupTypes(argCount, argTypes, argWireTypes) {
+      var a = new Array(argCount);
+      for (var i = 0; i < argCount; ++i) {
+          a[i] = requireRegisteredType(
+              HEAP32[(argTypes >> 2) + i],
+              "parameter " + i);
+      }
+      return a;
+    }function __emval_get_method_caller(argCount, argTypes) {
+      var types = __emval_lookupTypes(argCount, argTypes);
+  
+      var retType = types[0];
+      var signatureName = retType.name + "_$" + types.slice(1).map(function (t) { return t.name; }).join("_") + "$";
+  
+      var params = ["retType"];
+      var args = [retType];
+  
+      var argsList = ""; // 'arg0, arg1, arg2, ... , argN'
+      for (var i = 0; i < argCount - 1; ++i) {
+          argsList += (i !== 0 ? ", " : "") + "arg" + i;
+          params.push("argType" + i);
+          args.push(types[1 + i]);
+      }
+  
+      var functionName = makeLegalFunctionName("methodCaller_" + signatureName);
+      var functionBody =
+          "return function " + functionName + "(handle, name, destructors, args) {\n";
+  
+      var offset = 0;
+      for (var i = 0; i < argCount - 1; ++i) {
+          functionBody +=
+          "    var arg" + i + " = argType" + i + ".readValueFromPointer(args" + (offset ? ("+"+offset) : "") + ");\n";
+          offset += types[i + 1]['argPackAdvance'];
+      }
+      functionBody +=
+          "    var rv = handle[name](" + argsList + ");\n";
+      for (var i = 0; i < argCount - 1; ++i) {
+          if (types[i + 1]['deleteObject']) {
+              functionBody +=
+              "    argType" + i + ".deleteObject(arg" + i + ");\n";
+          }
+      }
+      if (!retType.isVoid) {
+          functionBody +=
+          "    return retType.toWireType(destructors, rv);\n";
+      }
+      functionBody +=
+          "};\n";
+  
+      params.push(functionBody);
+      var invokerFunction = new_(Function, params).apply(null, args);
+      return __emval_addMethodCaller(invokerFunction);
+    }
+
+  function __emval_get_module_property(name) {
+      name = getStringOrSymbol(name);
+      return __emval_register(Module[name]);
+    }
+
+  function __emval_get_property(handle, key) {
+      handle = requireHandle(handle);
+      key = requireHandle(key);
+      return __emval_register(handle[key]);
+    }
+
+  function __emval_incref(handle) {
+      if (handle > 4) {
+          emval_handle_array[handle].refcount += 1;
+      }
+    }
+
+  function __emval_instanceof(object, constructor) {
+      object = requireHandle(object);
+      constructor = requireHandle(constructor);
+      return object instanceof constructor;
+    }
+
+  function __emval_is_number(handle) {
+      handle = requireHandle(handle);
+      return typeof handle === 'number';
+    }
+
+  function __emval_is_string(handle) {
+      handle = requireHandle(handle);
+      return typeof handle === 'string';
+    }
+
+  
+  function craftEmvalAllocator(argCount) {
+      /*This function returns a new function that looks like this:
+      function emval_allocator_3(constructor, argTypes, args) {
+          var argType0 = requireRegisteredType(HEAP32[(argTypes >> 2)], "parameter 0");
+          var arg0 = argType0.readValueFromPointer(args);
+          var argType1 = requireRegisteredType(HEAP32[(argTypes >> 2) + 1], "parameter 1");
+          var arg1 = argType1.readValueFromPointer(args + 8);
+          var argType2 = requireRegisteredType(HEAP32[(argTypes >> 2) + 2], "parameter 2");
+          var arg2 = argType2.readValueFromPointer(args + 16);
+          var obj = new constructor(arg0, arg1, arg2);
+          return __emval_register(obj);
+      } */
+      var argsList = "";
+      for(var i = 0; i < argCount; ++i) {
+          argsList += (i!==0?", ":"")+"arg"+i; // 'arg0, arg1, ..., argn'
+      }
+  
+      var functionBody =
+          "return function emval_allocator_"+argCount+"(constructor, argTypes, args) {\n";
+  
+      for(var i = 0; i < argCount; ++i) {
+          functionBody +=
+              "var argType"+i+" = requireRegisteredType(Module['HEAP32'][(argTypes >> 2) + "+i+"], \"parameter "+i+"\");\n" +
+              "var arg"+i+" = argType"+i+".readValueFromPointer(args);\n" +
+              "args += argType"+i+"['argPackAdvance'];\n";
+      }
+      functionBody +=
+          "var obj = new constructor("+argsList+");\n" +
+          "return __emval_register(obj);\n" +
+          "}\n";
+  
+      /*jshint evil:true*/
+      return (new Function("requireRegisteredType", "Module", "__emval_register", functionBody))(
+          requireRegisteredType, Module, __emval_register);
+    }
+  
+  var emval_newers={};function __emval_new(handle, argCount, argTypes, args) {
+      handle = requireHandle(handle);
+  
+      var newer = emval_newers[argCount];
+      if (!newer) {
+          newer = craftEmvalAllocator(argCount);
+          emval_newers[argCount] = newer;
+      }
+  
+      return newer(handle, argTypes, args);
+    }
+
+  function __emval_new_array() {
+      return __emval_register([]);
+    }
+
+  function __emval_new_cstring(v) {
+      return __emval_register(getStringOrSymbol(v));
+    }
+
+  function __emval_new_object() {
+      return __emval_register({});
+    }
+
+  function __emval_run_destructors(handle) {
+      var destructors = emval_handle_array[handle].value;
+      runDestructors(destructors);
+      __emval_decref(handle);
+    }
+
+  function __emval_set_property(handle, key, value) {
+      handle = requireHandle(handle);
+      key = requireHandle(key);
+      value = requireHandle(value);
+      handle[key] = value;
+    }
+
+  function __emval_take_value(type, argv) {
+      type = requireRegisteredType(type, '_emval_take_value');
+      var v = type['readValueFromPointer'](argv);
+      return __emval_register(v);
+    }
+
+  function _abort() {
+      abort();
+    }
+
+  function _emscripten_get_heap_size() {
+      return HEAP8.length;
+    }
+
+   
+
+  
+  function abortOnCannotGrowMemory(requestedSize) {
+      abort('Cannot enlarge memory arrays to size ' + requestedSize + ' bytes (OOM). Either (1) compile with  -s TOTAL_MEMORY=X  with X higher than the current value ' + HEAP8.length + ', (2) compile with  -s ALLOW_MEMORY_GROWTH=1  which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with  -s ABORTING_MALLOC=0 ');
+    }
+  
+  function emscripten_realloc_buffer(size) {
+      try {
+        // round size grow request up to wasm page size (fixed 64KB per spec)
+        wasmMemory.grow((size - buffer.byteLength + 65535) >> 16); // .grow() takes a delta compared to the previous size
+        updateGlobalBufferAndViews(wasmMemory.buffer);
+        return 1 /*success*/;
+      } catch(e) {
+        console.error('emscripten_realloc_buffer: Attempted to grow heap from ' + buffer.byteLength  + ' bytes to ' + size + ' bytes, but got error: ' + e);
+      }
+    }function _emscripten_resize_heap(requestedSize) {
+      var oldSize = _emscripten_get_heap_size();
+      // With pthreads, races can happen (another thread might increase the size in between), so return a failure, and let the caller retry.
+      assert(requestedSize > oldSize);
+  
+  
+      var PAGE_MULTIPLE = 65536;
+      var LIMIT = 2147483648 - PAGE_MULTIPLE; // We can do one page short of 2GB as theoretical maximum.
+  
+      if (requestedSize > LIMIT) {
+        err('Cannot enlarge memory, asked to go up to ' + requestedSize + ' bytes, but the limit is ' + LIMIT + ' bytes!');
+        return false;
+      }
+  
+      var MIN_TOTAL_MEMORY = 16777216;
+      var newSize = Math.max(oldSize, MIN_TOTAL_MEMORY); // So the loop below will not be infinite, and minimum asm.js memory size is 16MB.
+  
+      // TODO: see realloc_buffer - for PTHREADS we may want to decrease these jumps
+      while (newSize < requestedSize) { // Keep incrementing the heap size as long as it's less than what is requested.
+        if (newSize <= 536870912) {
+          newSize = alignUp(2 * newSize, PAGE_MULTIPLE); // Simple heuristic: double until 1GB...
+        } else {
+          // ..., but after that, add smaller increments towards 2GB, which we cannot reach
+          newSize = Math.min(alignUp((3 * newSize + 2147483648) / 4, PAGE_MULTIPLE), LIMIT);
+        }
+  
+        if (newSize === oldSize) {
+          warnOnce('Cannot ask for more memory since we reached the practical limit in browsers (which is just below 2GB), so the request would have failed. Requesting only ' + HEAP8.length);
+        }
+      }
+  
+  
+  
+      var replacement = emscripten_realloc_buffer(newSize);
+      if (!replacement) {
+        err('Failed to grow the heap from ' + oldSize + ' bytes to ' + newSize + ' bytes, not enough memory!');
+        return false;
+      }
+  
+  
+  
+      return true;
+    }
+
+  function _getenv(name) {
+      // char *getenv(const char *name);
+      // http://pubs.opengroup.org/onlinepubs/009695399/functions/getenv.html
+      if (name === 0) return 0;
+      name = UTF8ToString(name);
+      if (!ENV.hasOwnProperty(name)) return 0;
+  
+      if (_getenv.ret) _free(_getenv.ret);
+      _getenv.ret = allocateUTF8(ENV[name]);
+      return _getenv.ret;
+    }
+
+  
+  var ___tm_current=306544;
+  
+  
+  var ___tm_timezone=(stringToUTF8("GMT", 306592, 4), 306592);function _gmtime_r(time, tmPtr) {
+      var date = new Date(HEAP32[((time)>>2)]*1000);
+      HEAP32[((tmPtr)>>2)]=date.getUTCSeconds();
+      HEAP32[(((tmPtr)+(4))>>2)]=date.getUTCMinutes();
+      HEAP32[(((tmPtr)+(8))>>2)]=date.getUTCHours();
+      HEAP32[(((tmPtr)+(12))>>2)]=date.getUTCDate();
+      HEAP32[(((tmPtr)+(16))>>2)]=date.getUTCMonth();
+      HEAP32[(((tmPtr)+(20))>>2)]=date.getUTCFullYear()-1900;
+      HEAP32[(((tmPtr)+(24))>>2)]=date.getUTCDay();
+      HEAP32[(((tmPtr)+(36))>>2)]=0;
+      HEAP32[(((tmPtr)+(32))>>2)]=0;
+      var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0);
+      var yday = ((date.getTime() - start) / (1000 * 60 * 60 * 24))|0;
+      HEAP32[(((tmPtr)+(28))>>2)]=yday;
+      HEAP32[(((tmPtr)+(40))>>2)]=___tm_timezone;
+  
+      return tmPtr;
+    }function _gmtime(time) {
+      return _gmtime_r(time, ___tm_current);
+    }
+
+   
+
+  var _llvm_cos_f64=Math_cos;
+
+  
+  function _llvm_log2_f32(x) {
+      return Math.log(x) / Math.LN2; // TODO: Math.log2, when browser support is there
+    }function _llvm_log2_f64(a0
+  ) {
+  return _llvm_log2_f32(a0);
+  }
+
+  var _llvm_sin_f64=Math_sin;
+
+  function _llvm_trap() {
+      abort('trap!');
+    }
+
+  
+  function _emscripten_memcpy_big(dest, src, num) {
+      HEAPU8.set(HEAPU8.subarray(src, src+num), dest);
+    }
+  
+   
+
+   
+
+   
+
+  
+  function _usleep(useconds) {
+      // int usleep(useconds_t useconds);
+      // http://pubs.opengroup.org/onlinepubs/000095399/functions/usleep.html
+      // We're single-threaded, so use a busy loop. Super-ugly.
+      var msec = useconds / 1000;
+      if ((ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) && self['performance'] && self['performance']['now']) {
+        var start = self['performance']['now']();
+        while (self['performance']['now']() - start < msec) {
+          // Do nothing.
+        }
+      } else {
+        var start = Date.now();
+        while (Date.now() - start < msec) {
+          // Do nothing.
+        }
+      }
+      return 0;
+    }function _nanosleep(rqtp, rmtp) {
+      // int nanosleep(const struct timespec  *rqtp, struct timespec *rmtp);
+      if (rqtp === 0) {
+        ___setErrNo(28);
+        return -1;
+      }
+      var seconds = HEAP32[((rqtp)>>2)];
+      var nanoseconds = HEAP32[(((rqtp)+(4))>>2)];
+      if (nanoseconds < 0 || nanoseconds > 999999999 || seconds < 0) {
+        ___setErrNo(28);
+        return -1;
+      }
+      if (rmtp !== 0) {
+        HEAP32[((rmtp)>>2)]=0;
+        HEAP32[(((rmtp)+(4))>>2)]=0;
+      }
+      return _usleep((seconds * 1e6) + (nanoseconds / 1000));
+    }
+
+  function _time(ptr) {
+      var ret = (Date.now()/1000)|0;
+      if (ptr) {
+        HEAP32[((ptr)>>2)]=ret;
+      }
+      return ret;
+    }
+
+  function _uuid_generate(out) {
+      // void uuid_generate(uuid_t out);
+      var uuid = null;
+  
+      if (ENVIRONMENT_IS_NODE) {
+        // If Node.js try to use crypto.randomBytes
+        try {
+          var rb = require('crypto')['randomBytes'];
+          uuid = rb(16);
+        } catch(e) {}
+      } else if (ENVIRONMENT_IS_WEB &&
+                 typeof(window.crypto) !== 'undefined' &&
+                 typeof(window.crypto.getRandomValues) !== 'undefined') {
+        // If crypto.getRandomValues is available try to use it.
+        uuid = new Uint8Array(16);
+        window.crypto.getRandomValues(uuid);
+      }
+  
+      // Fall back to Math.random if a higher quality random number generator is not available.
+      if (!uuid) {
+        uuid = new Array(16);
+        var d = new Date().getTime();
+        for (var i = 0; i < 16; i++) {
+          var r = ((d + Math.random() * 256) % 256)|0;
+          d = (d / 256)|0;
+          uuid[i] = r;
+        }
+      }
+  
+      uuid[6] = (uuid[6] & 0x0F) | 0x40;
+      uuid[8] = (uuid[8] & 0x7F) | 0x80;
+      writeArrayToMemory(uuid, out);
+    }
+FS.staticInit();;
+if (ENVIRONMENT_HAS_NODE) { var fs = require("fs"); var NODEJS_PATH = require("path"); NODEFS.staticInit(); };
+InternalError = Module['InternalError'] = extendError(Error, 'InternalError');;
+embind_init_charCodes();
+BindingError = Module['BindingError'] = extendError(Error, 'BindingError');;
+init_ClassHandle();
+init_RegisteredPointer();
+init_embind();;
+UnboundTypeError = Module['UnboundTypeError'] = extendError(Error, 'UnboundTypeError');;
+init_emval();;
+var ASSERTIONS = true;
+
+// Copyright 2017 The Emscripten Authors.  All rights reserved.
+// Emscripten is available under two separate licenses, the MIT license and the
+// University of Illinois/NCSA Open Source License.  Both these licenses can be
+// found in the LICENSE file.
+
+/** @type {function(string, boolean=, number=)} */
+function intArrayFromString(stringy, dontAddNull, length) {
+  var len = length > 0 ? length : lengthBytesUTF8(stringy)+1;
+  var u8array = new Array(len);
+  var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);
+  if (dontAddNull) u8array.length = numBytesWritten;
+  return u8array;
+}
+
+function intArrayToString(array) {
+  var ret = [];
+  for (var i = 0; i < array.length; i++) {
+    var chr = array[i];
+    if (chr > 0xFF) {
+      if (ASSERTIONS) {
+        assert(false, 'Character code ' + chr + ' (' + String.fromCharCode(chr) + ')  at offset ' + i + ' not in 0x00-0xFF.');
+      }
+      chr &= 0xFF;
+    }
+    ret.push(String.fromCharCode(chr));
+  }
+  return ret.join('');
+}
+
+
+// ASM_LIBRARY EXTERN PRIMITIVES: Int8Array,Int32Array
+
+function nullFunc_di(x) { abortFnPtrError(x, 'di'); }
+function nullFunc_did(x) { abortFnPtrError(x, 'did'); }
+function nullFunc_dii(x) { abortFnPtrError(x, 'dii'); }
+function nullFunc_diid(x) { abortFnPtrError(x, 'diid'); }
+function nullFunc_diii(x) { abortFnPtrError(x, 'diii'); }
+function nullFunc_diiid(x) { abortFnPtrError(x, 'diiid'); }
+function nullFunc_fii(x) { abortFnPtrError(x, 'fii'); }
+function nullFunc_i(x) { abortFnPtrError(x, 'i'); }
+function nullFunc_ii(x) { abortFnPtrError(x, 'ii'); }
+function nullFunc_iid(x) { abortFnPtrError(x, 'iid'); }
+function nullFunc_iidd(x) { abortFnPtrError(x, 'iidd'); }
+function nullFunc_iiddd(x) { abortFnPtrError(x, 'iiddd'); }
+function nullFunc_iidddddd(x) { abortFnPtrError(x, 'iidddddd'); }
+function nullFunc_iiddi(x) { abortFnPtrError(x, 'iiddi'); }
+function nullFunc_iiddii(x) { abortFnPtrError(x, 'iiddii'); }
+function nullFunc_iiddiiiii(x) { abortFnPtrError(x, 'iiddiiiii'); }
+function nullFunc_iidi(x) { abortFnPtrError(x, 'iidi'); }
+function nullFunc_iidid(x) { abortFnPtrError(x, 'iidid'); }
+function nullFunc_iididii(x) { abortFnPtrError(x, 'iididii'); }
+function nullFunc_iidii(x) { abortFnPtrError(x, 'iidii'); }
+function nullFunc_iidiii(x) { abortFnPtrError(x, 'iidiii'); }
+function nullFunc_iidiiii(x) { abortFnPtrError(x, 'iidiiii'); }
+function nullFunc_iidiiiii(x) { abortFnPtrError(x, 'iidiiiii'); }
+function nullFunc_iifff(x) { abortFnPtrError(x, 'iifff'); }
+function nullFunc_iii(x) { abortFnPtrError(x, 'iii'); }
+function nullFunc_iiid(x) { abortFnPtrError(x, 'iiid'); }
+function nullFunc_iiidd(x) { abortFnPtrError(x, 'iiidd'); }
+function nullFunc_iiiddd(x) { abortFnPtrError(x, 'iiiddd'); }
+function nullFunc_iiidddddd(x) { abortFnPtrError(x, 'iiidddddd'); }
+function nullFunc_iiiddi(x) { abortFnPtrError(x, 'iiiddi'); }
+function nullFunc_iiiddiddddd(x) { abortFnPtrError(x, 'iiiddiddddd'); }
+function nullFunc_iiiddiiidd(x) { abortFnPtrError(x, 'iiiddiiidd'); }
+function nullFunc_iiidi(x) { abortFnPtrError(x, 'iiidi'); }
+function nullFunc_iiidid(x) { abortFnPtrError(x, 'iiidid'); }
+function nullFunc_iiididdddd(x) { abortFnPtrError(x, 'iiididdddd'); }
+function nullFunc_iiidii(x) { abortFnPtrError(x, 'iiidii'); }
+function nullFunc_iiidiii(x) { abortFnPtrError(x, 'iiidiii'); }
+function nullFunc_iiifff(x) { abortFnPtrError(x, 'iiifff'); }
+function nullFunc_iiii(x) { abortFnPtrError(x, 'iiii'); }
+function nullFunc_iiiid(x) { abortFnPtrError(x, 'iiiid'); }
+function nullFunc_iiiidd(x) { abortFnPtrError(x, 'iiiidd'); }
+function nullFunc_iiiiddiiidd(x) { abortFnPtrError(x, 'iiiiddiiidd'); }
+function nullFunc_iiiidi(x) { abortFnPtrError(x, 'iiiidi'); }
+function nullFunc_iiiidiii(x) { abortFnPtrError(x, 'iiiidiii'); }
+function nullFunc_iiiii(x) { abortFnPtrError(x, 'iiiii'); }
+function nullFunc_iiiiii(x) { abortFnPtrError(x, 'iiiiii'); }
+function nullFunc_iiiiiii(x) { abortFnPtrError(x, 'iiiiiii'); }
+function nullFunc_iiiiiiii(x) { abortFnPtrError(x, 'iiiiiiii'); }
+function nullFunc_ji(x) { abortFnPtrError(x, 'ji'); }
+function nullFunc_jiji(x) { abortFnPtrError(x, 'jiji'); }
+function nullFunc_v(x) { abortFnPtrError(x, 'v'); }
+function nullFunc_vi(x) { abortFnPtrError(x, 'vi'); }
+function nullFunc_vid(x) { abortFnPtrError(x, 'vid'); }
+function nullFunc_viddd(x) { abortFnPtrError(x, 'viddd'); }
+function nullFunc_vidii(x) { abortFnPtrError(x, 'vidii'); }
+function nullFunc_vii(x) { abortFnPtrError(x, 'vii'); }
+function nullFunc_viid(x) { abortFnPtrError(x, 'viid'); }
+function nullFunc_viidd(x) { abortFnPtrError(x, 'viidd'); }
+function nullFunc_viiddd(x) { abortFnPtrError(x, 'viiddd'); }
+function nullFunc_viif(x) { abortFnPtrError(x, 'viif'); }
+function nullFunc_viii(x) { abortFnPtrError(x, 'viii'); }
+function nullFunc_viiid(x) { abortFnPtrError(x, 'viiid'); }
+function nullFunc_viiidi(x) { abortFnPtrError(x, 'viiidi'); }
+function nullFunc_viiii(x) { abortFnPtrError(x, 'viiii'); }
+function nullFunc_viiiii(x) { abortFnPtrError(x, 'viiiii'); }
+function nullFunc_viiiiii(x) { abortFnPtrError(x, 'viiiiii'); }
+
+var asmGlobalArg = {};
+
+var asmLibraryArg = { "ClassHandle": ClassHandle, "ClassHandle_clone": ClassHandle_clone, "ClassHandle_delete": ClassHandle_delete, "ClassHandle_deleteLater": ClassHandle_deleteLater, "ClassHandle_isAliasOf": ClassHandle_isAliasOf, "ClassHandle_isDeleted": ClassHandle_isDeleted, "RegisteredClass": RegisteredClass, "RegisteredPointer": RegisteredPointer, "RegisteredPointer_deleteObject": RegisteredPointer_deleteObject, "RegisteredPointer_destructor": RegisteredPointer_destructor, "RegisteredPointer_fromWireType": RegisteredPointer_fromWireType, "RegisteredPointer_getPointee": RegisteredPointer_getPointee, "___atomic_fetch_add_8": ___atomic_fetch_add_8, "___buildEnvironment": ___buildEnvironment, "___cxa_allocate_exception": ___cxa_allocate_exception, "___cxa_begin_catch": ___cxa_begin_catch, "___cxa_throw": ___cxa_throw, "___exception_addRef": ___exception_addRef, "___exception_deAdjust": ___exception_deAdjust, "___gxx_personality_v0": ___gxx_personality_v0, "___lock": ___lock, "___setErrNo": ___setErrNo, "___syscall195": ___syscall195, "___syscall197": ___syscall197, "___syscall221": ___syscall221, "___syscall5": ___syscall5, "___syscall54": ___syscall54, "___unlock": ___unlock, "___wasi_fd_close": ___wasi_fd_close, "___wasi_fd_fdstat_get": ___wasi_fd_fdstat_get, "___wasi_fd_read": ___wasi_fd_read, "___wasi_fd_seek": ___wasi_fd_seek, "___wasi_fd_write": ___wasi_fd_write, "__embind_finalize_value_array": __embind_finalize_value_array, "__embind_finalize_value_object": __embind_finalize_value_object, "__embind_register_bool": __embind_register_bool, "__embind_register_class": __embind_register_class, "__embind_register_class_class_function": __embind_register_class_class_function, "__embind_register_class_constructor": __embind_register_class_constructor, "__embind_register_class_function": __embind_register_class_function, "__embind_register_class_property": __embind_register_class_property, "__embind_register_emval": __embind_register_emval, "__embind_register_enum": __embind_register_enum, "__embind_register_enum_value": __embind_register_enum_value, "__embind_register_float": __embind_register_float, "__embind_register_integer": __embind_register_integer, "__embind_register_memory_view": __embind_register_memory_view, "__embind_register_std_string": __embind_register_std_string, "__embind_register_std_wstring": __embind_register_std_wstring, "__embind_register_value_array": __embind_register_value_array, "__embind_register_value_array_element": __embind_register_value_array_element, "__embind_register_value_object": __embind_register_value_object, "__embind_register_value_object_field": __embind_register_value_object_field, "__embind_register_void": __embind_register_void, "__emval_addMethodCaller": __emval_addMethodCaller, "__emval_allocateDestructors": __emval_allocateDestructors, "__emval_as": __emval_as, "__emval_call_method": __emval_call_method, "__emval_call_void_method": __emval_call_void_method, "__emval_decref": __emval_decref, "__emval_equals": __emval_equals, "__emval_get_global": __emval_get_global, "__emval_get_method_caller": __emval_get_method_caller, "__emval_get_module_property": __emval_get_module_property, "__emval_get_property": __emval_get_property, "__emval_incref": __emval_incref, "__emval_instanceof": __emval_instanceof, "__emval_is_number": __emval_is_number, "__emval_is_string": __emval_is_string, "__emval_lookupTypes": __emval_lookupTypes, "__emval_new": __emval_new, "__emval_new_array": __emval_new_array, "__emval_new_cstring": __emval_new_cstring, "__emval_new_object": __emval_new_object, "__emval_register": __emval_register, "__emval_run_destructors": __emval_run_destructors, "__emval_set_property": __emval_set_property, "__emval_take_value": __emval_take_value, "__memory_base": 1024, "__table_base": 0, "_abort": _abort, "_embind_repr": _embind_repr, "_emscripten_get_heap_size": _emscripten_get_heap_size, "_emscripten_memcpy_big": _emscripten_memcpy_big, "_emscripten_resize_heap": _emscripten_resize_heap, "_fd_close": _fd_close, "_fd_fdstat_get": _fd_fdstat_get, "_fd_read": _fd_read, "_fd_seek": _fd_seek, "_fd_write": _fd_write, "_getenv": _getenv, "_gmtime": _gmtime, "_gmtime_r": _gmtime_r, "_llvm_cos_f64": _llvm_cos_f64, "_llvm_log2_f32": _llvm_log2_f32, "_llvm_log2_f64": _llvm_log2_f64, "_llvm_sin_f64": _llvm_sin_f64, "_llvm_trap": _llvm_trap, "_nanosleep": _nanosleep, "_time": _time, "_usleep": _usleep, "_uuid_generate": _uuid_generate, "abort": abort, "abortOnCannotGrowMemory": abortOnCannotGrowMemory, "abortStackOverflow": abortStackOverflow, "attachFinalizer": attachFinalizer, "constNoSmartPtrRawPointerToWireType": constNoSmartPtrRawPointerToWireType, "count_emval_handles": count_emval_handles, "craftEmvalAllocator": craftEmvalAllocator, "craftInvokerFunction": craftInvokerFunction, "createNamedFunction": createNamedFunction, "demangle": demangle, "demangleAll": demangleAll, "detachFinalizer": detachFinalizer, "downcastPointer": downcastPointer, "embind__requireFunction": embind__requireFunction, "embind_init_charCodes": embind_init_charCodes, "emscripten_realloc_buffer": emscripten_realloc_buffer, "emval_get_global": emval_get_global, "ensureOverloadTable": ensureOverloadTable, "enumReadValueFromPointer": enumReadValueFromPointer, "exposePublicSymbol": exposePublicSymbol, "extendError": extendError, "floatReadValueFromPointer": floatReadValueFromPointer, "flushPendingDeletes": flushPendingDeletes, "genericPointerToWireType": genericPointerToWireType, "getBasestPointer": getBasestPointer, "getInheritedInstance": getInheritedInstance, "getInheritedInstanceCount": getInheritedInstanceCount, "getLiveInheritedInstances": getLiveInheritedInstances, "getShiftFromSize": getShiftFromSize, "getStringOrSymbol": getStringOrSymbol, "getTempRet0": getTempRet0, "getTypeName": getTypeName, "get_first_emval": get_first_emval, "heap32VectorToArray": heap32VectorToArray, "init_ClassHandle": init_ClassHandle, "init_RegisteredPointer": init_RegisteredPointer, "init_embind": init_embind, "init_emval": init_emval, "integerReadValueFromPointer": integerReadValueFromPointer, "jsStackTrace": jsStackTrace, "makeClassHandle": makeClassHandle, "makeLegalFunctionName": makeLegalFunctionName, "memory": wasmMemory, "new_": new_, "nonConstNoSmartPtrRawPointerToWireType": nonConstNoSmartPtrRawPointerToWireType, "nullFunc_di": nullFunc_di, "nullFunc_did": nullFunc_did, "nullFunc_dii": nullFunc_dii, "nullFunc_diid": nullFunc_diid, "nullFunc_diii": nullFunc_diii, "nullFunc_diiid": nullFunc_diiid, "nullFunc_fii": nullFunc_fii, "nullFunc_i": nullFunc_i, "nullFunc_ii": nullFunc_ii, "nullFunc_iid": nullFunc_iid, "nullFunc_iidd": nullFunc_iidd, "nullFunc_iiddd": nullFunc_iiddd, "nullFunc_iidddddd": nullFunc_iidddddd, "nullFunc_iiddi": nullFunc_iiddi, "nullFunc_iiddii": nullFunc_iiddii, "nullFunc_iiddiiiii": nullFunc_iiddiiiii, "nullFunc_iidi": nullFunc_iidi, "nullFunc_iidid": nullFunc_iidid, "nullFunc_iididii": nullFunc_iididii, "nullFunc_iidii": nullFunc_iidii, "nullFunc_iidiii": nullFunc_iidiii, "nullFunc_iidiiii": nullFunc_iidiiii, "nullFunc_iidiiiii": nullFunc_iidiiiii, "nullFunc_iifff": nullFunc_iifff, "nullFunc_iii": nullFunc_iii, "nullFunc_iiid": nullFunc_iiid, "nullFunc_iiidd": nullFunc_iiidd, "nullFunc_iiiddd": nullFunc_iiiddd, "nullFunc_iiidddddd": nullFunc_iiidddddd, "nullFunc_iiiddi": nullFunc_iiiddi, "nullFunc_iiiddiddddd": nullFunc_iiiddiddddd, "nullFunc_iiiddiiidd": nullFunc_iiiddiiidd, "nullFunc_iiidi": nullFunc_iiidi, "nullFunc_iiidid": nullFunc_iiidid, "nullFunc_iiididdddd": nullFunc_iiididdddd, "nullFunc_iiidii": nullFunc_iiidii, "nullFunc_iiidiii": nullFunc_iiidiii, "nullFunc_iiifff": nullFunc_iiifff, "nullFunc_iiii": nullFunc_iiii, "nullFunc_iiiid": nullFunc_iiiid, "nullFunc_iiiidd": nullFunc_iiiidd, "nullFunc_iiiiddiiidd": nullFunc_iiiiddiiidd, "nullFunc_iiiidi": nullFunc_iiiidi, "nullFunc_iiiidiii": nullFunc_iiiidiii, "nullFunc_iiiii": nullFunc_iiiii, "nullFunc_iiiiii": nullFunc_iiiiii, "nullFunc_iiiiiii": nullFunc_iiiiiii, "nullFunc_iiiiiiii": nullFunc_iiiiiiii, "nullFunc_ji": nullFunc_ji, "nullFunc_jiji": nullFunc_jiji, "nullFunc_v": nullFunc_v, "nullFunc_vi": nullFunc_vi, "nullFunc_vid": nullFunc_vid, "nullFunc_viddd": nullFunc_viddd, "nullFunc_vidii": nullFunc_vidii, "nullFunc_vii": nullFunc_vii, "nullFunc_viid": nullFunc_viid, "nullFunc_viidd": nullFunc_viidd, "nullFunc_viiddd": nullFunc_viiddd, "nullFunc_viif": nullFunc_viif, "nullFunc_viii": nullFunc_viii, "nullFunc_viiid": nullFunc_viiid, "nullFunc_viiidi": nullFunc_viiidi, "nullFunc_viiii": nullFunc_viiii, "nullFunc_viiiii": nullFunc_viiiii, "nullFunc_viiiiii": nullFunc_viiiiii, "readLatin1String": readLatin1String, "registerType": registerType, "releaseClassHandle": releaseClassHandle, "replacePublicSymbol": replacePublicSymbol, "requireHandle": requireHandle, "requireRegisteredType": requireRegisteredType, "runDestructor": runDestructor, "runDestructors": runDestructors, "setDelayFunction": setDelayFunction, "setTempRet0": setTempRet0, "shallowCopyInternalPointer": shallowCopyInternalPointer, "simpleReadValueFromPointer": simpleReadValueFromPointer, "stackTrace": stackTrace, "table": wasmTable, "tempDoublePtr": tempDoublePtr, "throwBindingError": throwBindingError, "throwInstanceAlreadyDeleted": throwInstanceAlreadyDeleted, "throwInternalError": throwInternalError, "throwUnboundTypeError": throwUnboundTypeError, "upcastPointer": upcastPointer, "validateThis": validateThis, "whenDependentTypesAreResolved": whenDependentTypesAreResolved };
+// EMSCRIPTEN_START_ASM
+var asm =Module["asm"]// EMSCRIPTEN_END_ASM
+(asmGlobalArg, asmLibraryArg, buffer);
+
+Module["asm"] = asm;
+var __ZSt18uncaught_exceptionv = Module["__ZSt18uncaught_exceptionv"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["__ZSt18uncaught_exceptionv"].apply(null, arguments)
+};
+
+var ___cxa_can_catch = Module["___cxa_can_catch"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["___cxa_can_catch"].apply(null, arguments)
+};
+
+var ___cxa_is_pointer_type = Module["___cxa_is_pointer_type"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["___cxa_is_pointer_type"].apply(null, arguments)
+};
+
+var ___embind_register_native_and_builtin_types = Module["___embind_register_native_and_builtin_types"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["___embind_register_native_and_builtin_types"].apply(null, arguments)
+};
+
+var ___errno_location = Module["___errno_location"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["___errno_location"].apply(null, arguments)
+};
+
+var ___getTypeName = Module["___getTypeName"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["___getTypeName"].apply(null, arguments)
+};
+
+var __get_environ = Module["__get_environ"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["__get_environ"].apply(null, arguments)
+};
+
+var _emscripten_get_sbrk_ptr = Module["_emscripten_get_sbrk_ptr"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["_emscripten_get_sbrk_ptr"].apply(null, arguments)
+};
+
+var _emscripten_replace_memory = Module["_emscripten_replace_memory"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["_emscripten_replace_memory"].apply(null, arguments)
+};
+
+var _fflush = Module["_fflush"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["_fflush"].apply(null, arguments)
+};
+
+var _free = Module["_free"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["_free"].apply(null, arguments)
+};
+
+var _i64Add = Module["_i64Add"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["_i64Add"].apply(null, arguments)
+};
+
+var _llvm_bswap_i32 = Module["_llvm_bswap_i32"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["_llvm_bswap_i32"].apply(null, arguments)
+};
+
+var _malloc = Module["_malloc"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["_malloc"].apply(null, arguments)
+};
+
+var _memcpy = Module["_memcpy"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["_memcpy"].apply(null, arguments)
+};
+
+var _memmove = Module["_memmove"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["_memmove"].apply(null, arguments)
+};
+
+var _memset = Module["_memset"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["_memset"].apply(null, arguments)
+};
+
+var establishStackSpace = Module["establishStackSpace"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["establishStackSpace"].apply(null, arguments)
+};
+
+var globalCtors = Module["globalCtors"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["globalCtors"].apply(null, arguments)
+};
+
+var stackAlloc = Module["stackAlloc"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["stackAlloc"].apply(null, arguments)
+};
+
+var stackRestore = Module["stackRestore"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["stackRestore"].apply(null, arguments)
+};
+
+var stackSave = Module["stackSave"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["stackSave"].apply(null, arguments)
+};
+
+var dynCall_di = Module["dynCall_di"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_di"].apply(null, arguments)
+};
+
+var dynCall_did = Module["dynCall_did"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_did"].apply(null, arguments)
+};
+
+var dynCall_dii = Module["dynCall_dii"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_dii"].apply(null, arguments)
+};
+
+var dynCall_diid = Module["dynCall_diid"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_diid"].apply(null, arguments)
+};
+
+var dynCall_diii = Module["dynCall_diii"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_diii"].apply(null, arguments)
+};
+
+var dynCall_diiid = Module["dynCall_diiid"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_diiid"].apply(null, arguments)
+};
+
+var dynCall_fii = Module["dynCall_fii"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_fii"].apply(null, arguments)
+};
+
+var dynCall_i = Module["dynCall_i"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_i"].apply(null, arguments)
+};
+
+var dynCall_ii = Module["dynCall_ii"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_ii"].apply(null, arguments)
+};
+
+var dynCall_iid = Module["dynCall_iid"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iid"].apply(null, arguments)
+};
+
+var dynCall_iidd = Module["dynCall_iidd"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iidd"].apply(null, arguments)
+};
+
+var dynCall_iiddd = Module["dynCall_iiddd"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iiddd"].apply(null, arguments)
+};
+
+var dynCall_iidddddd = Module["dynCall_iidddddd"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iidddddd"].apply(null, arguments)
+};
+
+var dynCall_iiddi = Module["dynCall_iiddi"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iiddi"].apply(null, arguments)
+};
+
+var dynCall_iiddii = Module["dynCall_iiddii"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iiddii"].apply(null, arguments)
+};
+
+var dynCall_iiddiiiii = Module["dynCall_iiddiiiii"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iiddiiiii"].apply(null, arguments)
+};
+
+var dynCall_iidi = Module["dynCall_iidi"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iidi"].apply(null, arguments)
+};
+
+var dynCall_iidid = Module["dynCall_iidid"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iidid"].apply(null, arguments)
+};
+
+var dynCall_iididii = Module["dynCall_iididii"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iididii"].apply(null, arguments)
+};
+
+var dynCall_iidii = Module["dynCall_iidii"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iidii"].apply(null, arguments)
+};
+
+var dynCall_iidiii = Module["dynCall_iidiii"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iidiii"].apply(null, arguments)
+};
+
+var dynCall_iidiiii = Module["dynCall_iidiiii"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iidiiii"].apply(null, arguments)
+};
+
+var dynCall_iidiiiii = Module["dynCall_iidiiiii"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iidiiiii"].apply(null, arguments)
+};
+
+var dynCall_iifff = Module["dynCall_iifff"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iifff"].apply(null, arguments)
+};
+
+var dynCall_iii = Module["dynCall_iii"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iii"].apply(null, arguments)
+};
+
+var dynCall_iiid = Module["dynCall_iiid"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iiid"].apply(null, arguments)
+};
+
+var dynCall_iiidd = Module["dynCall_iiidd"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iiidd"].apply(null, arguments)
+};
+
+var dynCall_iiiddd = Module["dynCall_iiiddd"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iiiddd"].apply(null, arguments)
+};
+
+var dynCall_iiidddddd = Module["dynCall_iiidddddd"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iiidddddd"].apply(null, arguments)
+};
+
+var dynCall_iiiddi = Module["dynCall_iiiddi"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iiiddi"].apply(null, arguments)
+};
+
+var dynCall_iiiddiddddd = Module["dynCall_iiiddiddddd"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iiiddiddddd"].apply(null, arguments)
+};
+
+var dynCall_iiiddiiidd = Module["dynCall_iiiddiiidd"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iiiddiiidd"].apply(null, arguments)
+};
+
+var dynCall_iiidi = Module["dynCall_iiidi"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iiidi"].apply(null, arguments)
+};
+
+var dynCall_iiidid = Module["dynCall_iiidid"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iiidid"].apply(null, arguments)
+};
+
+var dynCall_iiididdddd = Module["dynCall_iiididdddd"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iiididdddd"].apply(null, arguments)
+};
+
+var dynCall_iiidii = Module["dynCall_iiidii"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iiidii"].apply(null, arguments)
+};
+
+var dynCall_iiidiii = Module["dynCall_iiidiii"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iiidiii"].apply(null, arguments)
+};
+
+var dynCall_iiifff = Module["dynCall_iiifff"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iiifff"].apply(null, arguments)
+};
+
+var dynCall_iiii = Module["dynCall_iiii"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iiii"].apply(null, arguments)
+};
+
+var dynCall_iiiid = Module["dynCall_iiiid"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iiiid"].apply(null, arguments)
+};
+
+var dynCall_iiiidd = Module["dynCall_iiiidd"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iiiidd"].apply(null, arguments)
+};
+
+var dynCall_iiiiddiiidd = Module["dynCall_iiiiddiiidd"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iiiiddiiidd"].apply(null, arguments)
+};
+
+var dynCall_iiiidi = Module["dynCall_iiiidi"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iiiidi"].apply(null, arguments)
+};
+
+var dynCall_iiiidiii = Module["dynCall_iiiidiii"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iiiidiii"].apply(null, arguments)
+};
+
+var dynCall_iiiii = Module["dynCall_iiiii"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iiiii"].apply(null, arguments)
+};
+
+var dynCall_iiiiii = Module["dynCall_iiiiii"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iiiiii"].apply(null, arguments)
+};
+
+var dynCall_iiiiiii = Module["dynCall_iiiiiii"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iiiiiii"].apply(null, arguments)
+};
+
+var dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_iiiiiiii"].apply(null, arguments)
+};
+
+var dynCall_ji = Module["dynCall_ji"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_ji"].apply(null, arguments)
+};
+
+var dynCall_jiji = Module["dynCall_jiji"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_jiji"].apply(null, arguments)
+};
+
+var dynCall_v = Module["dynCall_v"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_v"].apply(null, arguments)
+};
+
+var dynCall_vi = Module["dynCall_vi"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_vi"].apply(null, arguments)
+};
+
+var dynCall_vid = Module["dynCall_vid"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_vid"].apply(null, arguments)
+};
+
+var dynCall_viddd = Module["dynCall_viddd"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_viddd"].apply(null, arguments)
+};
+
+var dynCall_vidii = Module["dynCall_vidii"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_vidii"].apply(null, arguments)
+};
+
+var dynCall_vii = Module["dynCall_vii"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_vii"].apply(null, arguments)
+};
+
+var dynCall_viid = Module["dynCall_viid"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_viid"].apply(null, arguments)
+};
+
+var dynCall_viidd = Module["dynCall_viidd"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_viidd"].apply(null, arguments)
+};
+
+var dynCall_viiddd = Module["dynCall_viiddd"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_viiddd"].apply(null, arguments)
+};
+
+var dynCall_viif = Module["dynCall_viif"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_viif"].apply(null, arguments)
+};
+
+var dynCall_viii = Module["dynCall_viii"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_viii"].apply(null, arguments)
+};
+
+var dynCall_viiid = Module["dynCall_viiid"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_viiid"].apply(null, arguments)
+};
+
+var dynCall_viiidi = Module["dynCall_viiidi"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_viiidi"].apply(null, arguments)
+};
+
+var dynCall_viiii = Module["dynCall_viiii"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_viiii"].apply(null, arguments)
+};
+
+var dynCall_viiiii = Module["dynCall_viiiii"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_viiiii"].apply(null, arguments)
+};
+
+var dynCall_viiiiii = Module["dynCall_viiiiii"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+  return Module["asm"]["dynCall_viiiiii"].apply(null, arguments)
+};
+;
+
+
+
+// === Auto-generated postamble setup entry stuff ===
+
+Module['asm'] = asm;
+
+if (!Object.getOwnPropertyDescriptor(Module, "intArrayFromString")) Module["intArrayFromString"] = function() { abort("'intArrayFromString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "intArrayToString")) Module["intArrayToString"] = function() { abort("'intArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "ccall")) Module["ccall"] = function() { abort("'ccall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "cwrap")) Module["cwrap"] = function() { abort("'cwrap' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "setValue")) Module["setValue"] = function() { abort("'setValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "getValue")) Module["getValue"] = function() { abort("'getValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "allocate")) Module["allocate"] = function() { abort("'allocate' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "getMemory")) Module["getMemory"] = function() { abort("'getMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
+if (!Object.getOwnPropertyDescriptor(Module, "AsciiToString")) Module["AsciiToString"] = function() { abort("'AsciiToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "stringToAscii")) Module["stringToAscii"] = function() { abort("'stringToAscii' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "UTF8ArrayToString")) Module["UTF8ArrayToString"] = function() { abort("'UTF8ArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "UTF8ToString")) Module["UTF8ToString"] = function() { abort("'UTF8ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "stringToUTF8Array")) Module["stringToUTF8Array"] = function() { abort("'stringToUTF8Array' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "stringToUTF8")) Module["stringToUTF8"] = function() { abort("'stringToUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "lengthBytesUTF8")) Module["lengthBytesUTF8"] = function() { abort("'lengthBytesUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "UTF16ToString")) Module["UTF16ToString"] = function() { abort("'UTF16ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "stringToUTF16")) Module["stringToUTF16"] = function() { abort("'stringToUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "lengthBytesUTF16")) Module["lengthBytesUTF16"] = function() { abort("'lengthBytesUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "UTF32ToString")) Module["UTF32ToString"] = function() { abort("'UTF32ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "stringToUTF32")) Module["stringToUTF32"] = function() { abort("'stringToUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "lengthBytesUTF32")) Module["lengthBytesUTF32"] = function() { abort("'lengthBytesUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "allocateUTF8")) Module["allocateUTF8"] = function() { abort("'allocateUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "stackTrace")) Module["stackTrace"] = function() { abort("'stackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "addOnPreRun")) Module["addOnPreRun"] = function() { abort("'addOnPreRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "addOnInit")) Module["addOnInit"] = function() { abort("'addOnInit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "addOnPreMain")) Module["addOnPreMain"] = function() { abort("'addOnPreMain' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "addOnExit")) Module["addOnExit"] = function() { abort("'addOnExit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "addOnPostRun")) Module["addOnPostRun"] = function() { abort("'addOnPostRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "writeStringToMemory")) Module["writeStringToMemory"] = function() { abort("'writeStringToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "writeArrayToMemory")) Module["writeArrayToMemory"] = function() { abort("'writeArrayToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "writeAsciiToMemory")) Module["writeAsciiToMemory"] = function() { abort("'writeAsciiToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "addRunDependency")) Module["addRunDependency"] = function() { abort("'addRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
+if (!Object.getOwnPropertyDescriptor(Module, "removeRunDependency")) Module["removeRunDependency"] = function() { abort("'removeRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
+if (!Object.getOwnPropertyDescriptor(Module, "ENV")) Module["ENV"] = function() { abort("'ENV' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "FS")) Module["FS"] = function() { abort("'FS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "FS_createFolder")) Module["FS_createFolder"] = function() { abort("'FS_createFolder' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
+if (!Object.getOwnPropertyDescriptor(Module, "FS_createPath")) Module["FS_createPath"] = function() { abort("'FS_createPath' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
+if (!Object.getOwnPropertyDescriptor(Module, "FS_createDataFile")) Module["FS_createDataFile"] = function() { abort("'FS_createDataFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
+if (!Object.getOwnPropertyDescriptor(Module, "FS_createPreloadedFile")) Module["FS_createPreloadedFile"] = function() { abort("'FS_createPreloadedFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
+if (!Object.getOwnPropertyDescriptor(Module, "FS_createLazyFile")) Module["FS_createLazyFile"] = function() { abort("'FS_createLazyFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
+if (!Object.getOwnPropertyDescriptor(Module, "FS_createLink")) Module["FS_createLink"] = function() { abort("'FS_createLink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
+if (!Object.getOwnPropertyDescriptor(Module, "FS_createDevice")) Module["FS_createDevice"] = function() { abort("'FS_createDevice' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
+if (!Object.getOwnPropertyDescriptor(Module, "FS_unlink")) Module["FS_unlink"] = function() { abort("'FS_unlink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
+if (!Object.getOwnPropertyDescriptor(Module, "GL")) Module["GL"] = function() { abort("'GL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "dynamicAlloc")) Module["dynamicAlloc"] = function() { abort("'dynamicAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "loadDynamicLibrary")) Module["loadDynamicLibrary"] = function() { abort("'loadDynamicLibrary' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "loadWebAssemblyModule")) Module["loadWebAssemblyModule"] = function() { abort("'loadWebAssemblyModule' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "getLEB")) Module["getLEB"] = function() { abort("'getLEB' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "getFunctionTables")) Module["getFunctionTables"] = function() { abort("'getFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "alignFunctionTables")) Module["alignFunctionTables"] = function() { abort("'alignFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "registerFunctions")) Module["registerFunctions"] = function() { abort("'registerFunctions' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "addFunction")) Module["addFunction"] = function() { abort("'addFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "removeFunction")) Module["removeFunction"] = function() { abort("'removeFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "getFuncWrapper")) Module["getFuncWrapper"] = function() { abort("'getFuncWrapper' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "prettyPrint")) Module["prettyPrint"] = function() { abort("'prettyPrint' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "makeBigInt")) Module["makeBigInt"] = function() { abort("'makeBigInt' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "dynCall")) Module["dynCall"] = function() { abort("'dynCall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "getCompilerSetting")) Module["getCompilerSetting"] = function() { abort("'getCompilerSetting' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "stackSave")) Module["stackSave"] = function() { abort("'stackSave' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "stackRestore")) Module["stackRestore"] = function() { abort("'stackRestore' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "stackAlloc")) Module["stackAlloc"] = function() { abort("'stackAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "establishStackSpace")) Module["establishStackSpace"] = function() { abort("'establishStackSpace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "print")) Module["print"] = function() { abort("'print' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "printErr")) Module["printErr"] = function() { abort("'printErr' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "getTempRet0")) Module["getTempRet0"] = function() { abort("'getTempRet0' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "setTempRet0")) Module["setTempRet0"] = function() { abort("'setTempRet0' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "callMain")) Module["callMain"] = function() { abort("'callMain' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "abort")) Module["abort"] = function() { abort("'abort' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "Pointer_stringify")) Module["Pointer_stringify"] = function() { abort("'Pointer_stringify' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Object.getOwnPropertyDescriptor(Module, "warnOnce")) Module["warnOnce"] = function() { abort("'warnOnce' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+Module["writeStackCookie"] = writeStackCookie;
+Module["checkStackCookie"] = checkStackCookie;
+Module["abortStackOverflow"] = abortStackOverflow;if (!Object.getOwnPropertyDescriptor(Module, "ALLOC_NORMAL")) Object.defineProperty(Module, "ALLOC_NORMAL", { configurable: true, get: function() { abort("'ALLOC_NORMAL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } });
+if (!Object.getOwnPropertyDescriptor(Module, "ALLOC_STACK")) Object.defineProperty(Module, "ALLOC_STACK", { configurable: true, get: function() { abort("'ALLOC_STACK' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } });
+if (!Object.getOwnPropertyDescriptor(Module, "ALLOC_DYNAMIC")) Object.defineProperty(Module, "ALLOC_DYNAMIC", { configurable: true, get: function() { abort("'ALLOC_DYNAMIC' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } });
+if (!Object.getOwnPropertyDescriptor(Module, "ALLOC_NONE")) Object.defineProperty(Module, "ALLOC_NONE", { configurable: true, get: function() { abort("'ALLOC_NONE' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } });
+if (!Object.getOwnPropertyDescriptor(Module, "calledRun")) Object.defineProperty(Module, "calledRun", { configurable: true, get: function() { abort("'calledRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") } });
+
+
+
+var calledRun;
+
+// Modularize mode returns a function, which can be called to
+// create instances. The instances provide a then() method,
+// must like a Promise, that receives a callback. The callback
+// is called when the module is ready to run, with the module
+// as a parameter. (Like a Promise, it also returns the module
+// so you can use the output of .then(..)).
+Module['then'] = function(func) {
+  // We may already be ready to run code at this time. if
+  // so, just queue a call to the callback.
+  if (calledRun) {
+    func(Module);
+  } else {
+    // we are not ready to call then() yet. we must call it
+    // at the same time we would call onRuntimeInitialized.
+    var old = Module['onRuntimeInitialized'];
+    Module['onRuntimeInitialized'] = function() {
+      if (old) old();
+      func(Module);
+    };
+  }
+  return Module;
+};
+
+/**
+ * @constructor
+ * @this {ExitStatus}
+ */
+function ExitStatus(status) {
+  this.name = "ExitStatus";
+  this.message = "Program terminated with exit(" + status + ")";
+  this.status = status;
+}
+
+var calledMain = false;
+
+
+dependenciesFulfilled = function runCaller() {
+  // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false)
+  if (!calledRun) run();
+  if (!calledRun) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled
+};
+
+
+
+
+
+/** @type {function(Array=)} */
+function run(args) {
+  args = args || arguments_;
+
+  if (runDependencies > 0) {
+    return;
+  }
+
+  writeStackCookie();
+
+  preRun();
+
+  if (runDependencies > 0) return; // a preRun added a dependency, run will be called later
+
+  function doRun() {
+    // run may have just been called through dependencies being fulfilled just in this very frame,
+    // or while the async setStatus time below was happening
+    if (calledRun) return;
+    calledRun = true;
+
+    if (ABORT) return;
+
+    initRuntime();
+
+    preMain();
+
+    if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized']();
+
+    assert(!Module['_main'], 'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]');
+
+    postRun();
+  }
+
+  if (Module['setStatus']) {
+    Module['setStatus']('Running...');
+    setTimeout(function() {
+      setTimeout(function() {
+        Module['setStatus']('');
+      }, 1);
+      doRun();
+    }, 1);
+  } else
+  {
+    doRun();
+  }
+  checkStackCookie();
+}
+Module['run'] = run;
+
+function checkUnflushedContent() {
+  // Compiler settings do not allow exiting the runtime, so flushing
+  // the streams is not possible. but in ASSERTIONS mode we check
+  // if there was something to flush, and if so tell the user they
+  // should request that the runtime be exitable.
+  // Normally we would not even include flush() at all, but in ASSERTIONS
+  // builds we do so just for this check, and here we see if there is any
+  // content to flush, that is, we check if there would have been
+  // something a non-ASSERTIONS build would have not seen.
+  // How we flush the streams depends on whether we are in SYSCALLS_REQUIRE_FILESYSTEM=0
+  // mode (which has its own special function for this; otherwise, all
+  // the code is inside libc)
+  var print = out;
+  var printErr = err;
+  var has = false;
+  out = err = function(x) {
+    has = true;
+  }
+  try { // it doesn't matter if it fails
+    var flush = Module['_fflush'];
+    if (flush) flush(0);
+    // also flush in the JS FS layer
+    ['stdout', 'stderr'].forEach(function(name) {
+      var info = FS.analyzePath('/dev/' + name);
+      if (!info) return;
+      var stream = info.object;
+      var rdev = stream.rdev;
+      var tty = TTY.ttys[rdev];
+      if (tty && tty.output && tty.output.length) {
+        has = true;
+      }
+    });
+  } catch(e) {}
+  out = print;
+  err = printErr;
+  if (has) {
+    warnOnce('stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.');
+  }
+}
+
+function exit(status, implicit) {
+  checkUnflushedContent();
+
+  // if this is just main exit-ing implicitly, and the status is 0, then we
+  // don't need to do anything here and can just leave. if the status is
+  // non-zero, though, then we need to report it.
+  // (we may have warned about this earlier, if a situation justifies doing so)
+  if (implicit && noExitRuntime && status === 0) {
+    return;
+  }
+
+  if (noExitRuntime) {
+    // if exit() was called, we may warn the user if the runtime isn't actually being shut down
+    if (!implicit) {
+      err('program exited (with status: ' + status + '), but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)');
+    }
+  } else {
+
+    ABORT = true;
+    EXITSTATUS = status;
+
+    exitRuntime();
+
+    if (Module['onExit']) Module['onExit'](status);
+  }
+
+  quit_(status, new ExitStatus(status));
+}
+
+if (Module['preInit']) {
+  if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']];
+  while (Module['preInit'].length > 0) {
+    Module['preInit'].pop()();
+  }
+}
+
+
+  noExitRuntime = true;
+
+run();
+
+
+
+
+
+// {{MODULE_ADDITIONS}}
+
+
+
+
+
+  return rhino3dm
+}
+);
+})();
+if (typeof exports === 'object' && typeof module === 'object')
+      module.exports = rhino3dm;
+    else if (typeof define === 'function' && define['amd'])
+      define([], function() { return rhino3dm; });
+    else if (typeof exports === 'object')
+      exports["rhino3dm"] = rhino3dm;
+    
\ No newline at end of file
diff --git a/01_Code/physical_computing_interface/simulation/lib/rhino3dm.wasm b/01_Code/physical_computing_interface/simulation/lib/rhino3dm.wasm
new file mode 100644
index 0000000000000000000000000000000000000000..93793a23fb7e4cdf5adc7a31ce8d6faea04284b7
Binary files /dev/null and b/01_Code/physical_computing_interface/simulation/lib/rhino3dm.wasm differ
diff --git a/01_Code/physical_computing_interface/simulation/lib/stats.js b/01_Code/physical_computing_interface/simulation/lib/stats.js
new file mode 100644
index 0000000000000000000000000000000000000000..4875f72ab6355bb339dfe46e58187b2a36740b50
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/lib/stats.js
@@ -0,0 +1,179 @@
+(function (global, factory) {
+	typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
+	typeof define === 'function' && define.amd ? define(factory) :
+	(global.Stats = factory());
+}(this, (function () { 'use strict';
+
+/**
+ * @author mrdoob / http://mrdoob.com/
+ */
+
+var Stats = function () {
+
+	var mode = 0;
+
+	var container = document.createElement( 'div' );
+	container.style.cssText = 'position:fixed;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000';
+	container.addEventListener( 'click', function ( event ) {
+
+		event.preventDefault();
+		showPanel( ++ mode % container.children.length );
+
+	}, false );
+
+	//
+
+	function addPanel( panel ) {
+
+		container.appendChild( panel.dom );
+		return panel;
+
+	}
+
+	function showPanel( id ) {
+
+		for ( var i = 0; i < container.children.length; i ++ ) {
+
+			container.children[ i ].style.display = i === id ? 'block' : 'none';
+
+		}
+
+		mode = id;
+
+	}
+
+	//
+
+	var beginTime = ( performance || Date ).now(), prevTime = beginTime, frames = 0;
+
+	var fpsPanel = addPanel( new Stats.Panel( 'FPS', '#0ff', '#002' ) );
+	var msPanel = addPanel( new Stats.Panel( 'MS', '#0f0', '#020' ) );
+
+	if ( self.performance && self.performance.memory ) {
+
+		var memPanel = addPanel( new Stats.Panel( 'MB', '#f08', '#201' ) );
+
+	}
+
+	showPanel( 0 );
+
+	return {
+
+		REVISION: 16,
+
+		dom: container,
+
+		addPanel: addPanel,
+		showPanel: showPanel,
+
+		begin: function () {
+
+			beginTime = ( performance || Date ).now();
+
+		},
+
+		end: function () {
+
+			frames ++;
+
+			var time = ( performance || Date ).now();
+
+			msPanel.update( time - beginTime, 200 );
+
+			if ( time >= prevTime + 1000 ) {
+
+				fpsPanel.update( ( frames * 1000 ) / ( time - prevTime ), 100 );
+
+				prevTime = time;
+				frames = 0;
+
+				if ( memPanel ) {
+
+					var memory = performance.memory;
+					memPanel.update( memory.usedJSHeapSize / 1048576, memory.jsHeapSizeLimit / 1048576 );
+
+				}
+
+			}
+
+			return time;
+
+		},
+
+		update: function () {
+
+			beginTime = this.end();
+
+		},
+
+		// Backwards Compatibility
+
+		domElement: container,
+		setMode: showPanel
+
+	};
+
+};
+
+Stats.Panel = function ( name, fg, bg ) {
+
+	var min = Infinity, max = 0, round = Math.round;
+	var PR = round( window.devicePixelRatio || 1 );
+
+	var WIDTH = 80 * PR, HEIGHT = 48 * PR,
+			TEXT_X = 3 * PR, TEXT_Y = 2 * PR,
+			GRAPH_X = 3 * PR, GRAPH_Y = 15 * PR,
+			GRAPH_WIDTH = 74 * PR, GRAPH_HEIGHT = 30 * PR;
+
+	var canvas = document.createElement( 'canvas' );
+	canvas.width = WIDTH;
+	canvas.height = HEIGHT;
+	canvas.style.cssText = 'width:80px;height:48px';
+
+	var context = canvas.getContext( '2d' );
+	context.font = 'bold ' + ( 9 * PR ) + 'px Helvetica,Arial,sans-serif';
+	context.textBaseline = 'top';
+
+	context.fillStyle = bg;
+	context.fillRect( 0, 0, WIDTH, HEIGHT );
+
+	context.fillStyle = fg;
+	context.fillText( name, TEXT_X, TEXT_Y );
+	context.fillRect( GRAPH_X, GRAPH_Y, GRAPH_WIDTH, GRAPH_HEIGHT );
+
+	context.fillStyle = bg;
+	context.globalAlpha = 0.9;
+	context.fillRect( GRAPH_X, GRAPH_Y, GRAPH_WIDTH, GRAPH_HEIGHT );
+
+	return {
+
+		dom: canvas,
+
+		update: function ( value, maxValue ) {
+
+			min = Math.min( min, value );
+			max = Math.max( max, value );
+
+			context.fillStyle = bg;
+			context.globalAlpha = 1;
+			context.fillRect( 0, 0, WIDTH, GRAPH_Y );
+			context.fillStyle = fg;
+			context.fillText( round( value ) + ' ' + name + ' (' + round( min ) + '-' + round( max ) + ')', TEXT_X, TEXT_Y );
+
+			context.drawImage( canvas, GRAPH_X + PR, GRAPH_Y, GRAPH_WIDTH - PR, GRAPH_HEIGHT, GRAPH_X, GRAPH_Y, GRAPH_WIDTH - PR, GRAPH_HEIGHT );
+
+			context.fillRect( GRAPH_X + GRAPH_WIDTH - PR, GRAPH_Y, PR, GRAPH_HEIGHT );
+
+			context.fillStyle = bg;
+			context.globalAlpha = 0.9;
+			context.fillRect( GRAPH_X + GRAPH_WIDTH - PR, GRAPH_Y, PR, round( ( 1 - ( value / maxValue ) ) * GRAPH_HEIGHT ) );
+
+		}
+
+	};
+
+};
+
+return Stats;
+
+})));
diff --git a/01_Code/physical_computing_interface/simulation/lib/stats.module.js b/01_Code/physical_computing_interface/simulation/lib/stats.module.js
new file mode 100644
index 0000000000000000000000000000000000000000..8a3edfd40ae71d144dc0e879b2649133e9472856
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/lib/stats.module.js
@@ -0,0 +1,171 @@
+/**
+ * @author mrdoob / http://mrdoob.com/
+ */
+
+var Stats = function () {
+
+	var mode = 0;
+
+	var container = document.createElement( 'div' );
+	container.style.cssText = 'position:fixed;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000';
+	container.addEventListener( 'click', function ( event ) {
+
+		event.preventDefault();
+		showPanel( ++ mode % container.children.length );
+
+	}, false );
+
+	//
+
+	function addPanel( panel ) {
+
+		container.appendChild( panel.dom );
+		return panel;
+
+	}
+
+	function showPanel( id ) {
+
+		for ( var i = 0; i < container.children.length; i ++ ) {
+
+			container.children[ i ].style.display = i === id ? 'block' : 'none';
+
+		}
+
+		mode = id;
+
+	}
+
+	//
+
+	var beginTime = ( performance || Date ).now(), prevTime = beginTime, frames = 0;
+
+	var fpsPanel = addPanel( new Stats.Panel( 'FPS', '#0ff', '#002' ) );
+	var msPanel = addPanel( new Stats.Panel( 'MS', '#0f0', '#020' ) );
+
+	if ( self.performance && self.performance.memory ) {
+
+		var memPanel = addPanel( new Stats.Panel( 'MB', '#f08', '#201' ) );
+
+	}
+
+	showPanel( 0 );
+
+	return {
+
+		REVISION: 16,
+
+		dom: container,
+
+		addPanel: addPanel,
+		showPanel: showPanel,
+
+		begin: function () {
+
+			beginTime = ( performance || Date ).now();
+
+		},
+
+		end: function () {
+
+			frames ++;
+
+			var time = ( performance || Date ).now();
+
+			msPanel.update( time - beginTime, 200 );
+
+			if ( time >= prevTime + 1000 ) {
+
+				fpsPanel.update( ( frames * 1000 ) / ( time - prevTime ), 100 );
+
+				prevTime = time;
+				frames = 0;
+
+				if ( memPanel ) {
+
+					var memory = performance.memory;
+					memPanel.update( memory.usedJSHeapSize / 1048576, memory.jsHeapSizeLimit / 1048576 );
+
+				}
+
+			}
+
+			return time;
+
+		},
+
+		update: function () {
+
+			beginTime = this.end();
+
+		},
+
+		// Backwards Compatibility
+
+		domElement: container,
+		setMode: showPanel
+
+	};
+
+};
+
+Stats.Panel = function ( name, fg, bg ) {
+
+	var min = Infinity, max = 0, round = Math.round;
+	var PR = round( window.devicePixelRatio || 1 );
+
+	var WIDTH = 80 * PR, HEIGHT = 48 * PR,
+			TEXT_X = 3 * PR, TEXT_Y = 2 * PR,
+			GRAPH_X = 3 * PR, GRAPH_Y = 15 * PR,
+			GRAPH_WIDTH = 74 * PR, GRAPH_HEIGHT = 30 * PR;
+
+	var canvas = document.createElement( 'canvas' );
+	canvas.width = WIDTH;
+	canvas.height = HEIGHT;
+	canvas.style.cssText = 'width:80px;height:48px';
+
+	var context = canvas.getContext( '2d' );
+	context.font = 'bold ' + ( 9 * PR ) + 'px Helvetica,Arial,sans-serif';
+	context.textBaseline = 'top';
+
+	context.fillStyle = bg;
+	context.fillRect( 0, 0, WIDTH, HEIGHT );
+
+	context.fillStyle = fg;
+	context.fillText( name, TEXT_X, TEXT_Y );
+	context.fillRect( GRAPH_X, GRAPH_Y, GRAPH_WIDTH, GRAPH_HEIGHT );
+
+	context.fillStyle = bg;
+	context.globalAlpha = 0.9;
+	context.fillRect( GRAPH_X, GRAPH_Y, GRAPH_WIDTH, GRAPH_HEIGHT );
+
+	return {
+
+		dom: canvas,
+
+		update: function ( value, maxValue ) {
+
+			min = Math.min( min, value );
+			max = Math.max( max, value );
+
+			context.fillStyle = bg;
+			context.globalAlpha = 1;
+			context.fillRect( 0, 0, WIDTH, GRAPH_Y );
+			context.fillStyle = fg;
+			context.fillText( round( value ) + ' ' + name + ' (' + round( min ) + '-' + round( max ) + ')', TEXT_X, TEXT_Y );
+
+			context.drawImage( canvas, GRAPH_X + PR, GRAPH_Y, GRAPH_WIDTH - PR, GRAPH_HEIGHT, GRAPH_X, GRAPH_Y, GRAPH_WIDTH - PR, GRAPH_HEIGHT );
+
+			context.fillRect( GRAPH_X + GRAPH_WIDTH - PR, GRAPH_Y, PR, GRAPH_HEIGHT );
+
+			context.fillStyle = bg;
+			context.globalAlpha = 0.9;
+			context.fillRect( GRAPH_X + GRAPH_WIDTH - PR, GRAPH_Y, PR, round( ( 1 - ( value / maxValue ) ) * GRAPH_HEIGHT ) );
+
+		}
+
+	};
+
+};
+
+export default Stats;
diff --git a/01_Code/physical_computing_interface/simulation/lib/tf.min.js b/01_Code/physical_computing_interface/simulation/lib/tf.min.js
new file mode 100644
index 0000000000000000000000000000000000000000..68f247305766aef321c766e40905e9ccac29fda2
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/lib/tf.min.js
@@ -0,0 +1,3 @@
+// @tensorflow/tfjs Copyright 2019 Google
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(t.tf=t.tf||{})}(this,function(t){"use strict";var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,n)};function n(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}var r=function(){return(r=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var i in e=arguments[n])Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t}).apply(this,arguments)};function i(t,e,n,r){return new(n||(n=Promise))(function(i,o){function a(t){try{u(r.next(t))}catch(t){o(t)}}function s(t){try{u(r.throw(t))}catch(t){o(t)}}function u(t){t.done?i(t.value):new n(function(e){e(t.value)}).then(a,s)}u((r=r.apply(t,e||[])).next())})}function o(t,e){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=(i=a.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){a.label=o[1];break}if(6===o[0]&&a.label<i[1]){a.label=i[1],i=o;break}if(i&&a.label<i[2]){a.label=i[2],a.ops.push(o);break}i[2]&&a.ops.pop(),a.trys.pop();continue}o=e.call(t,a)}catch(t){o=[6,t],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}}var a={},s={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function u(t){t in a||(a[t]=function(t){if(1!==t&&2!==t)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");var e=document.createElement("canvas");return e.addEventListener("webglcontextlost",function(e){e.preventDefault(),delete a[t]},!1),1===t?e.getContext("webgl",s)||e.getContext("experimental-webgl",s):e.getContext("webgl2",s)}(t));var e=a[t];return e.isContextLost()?(delete a[t],u(t)):(e.disable(e.DEPTH_TEST),e.disable(e.STENCIL_TEST),e.disable(e.BLEND),e.disable(e.DITHER),e.disable(e.POLYGON_OFFSET_FILL),e.disable(e.SAMPLE_COVERAGE),e.enable(e.SCISSOR_TEST),e.enable(e.CULL_FACE),e.cullFace(e.BACK),a[t])}function l(t){for(var e=t.length,n=0,r=0;e>0;)r=Math.random()*e|0,n=t[--e],t[e]=t[r],t[r]=n}function c(t,e,n){return Math.max(t,Math.min(e,n))}function p(t){return t%2==0?t:t+1}function h(t){for(var e=0,n=0;n<t.length;n++)e+=t[n];return e}function f(t,e){var n=Math.random();return e*n+(1-n)*t}function d(t,e){if(!t)throw new Error("string"==typeof e?e:e())}function m(t,e,n){void 0===n&&(n=""),d(b(t,e),function(){return n+" Shapes "+t+" and "+e+" must match"})}function g(t){d(null!=t,function(){return"The input to the tensor constructor must be a non-null value."})}function y(t,e){if(void 0===e&&(e=[]),null==e&&(e=[]),Array.isArray(t)||_(t))for(var n=0;n<t.length;++n)y(t[n],e);else e.push(t);return e}function v(t){if(0===t.length)return 1;for(var e=t[0],n=1;n<t.length;n++)e*=t[n];return e}function b(t,e){if(t===e)return!0;if(null==t||null==e)return!1;if(t.length!==e.length)return!1;for(var n=0;n<t.length;n++)if(t[n]!==e[n])return!1;return!0}function w(t){return t%1==0}function x(t){if(null!=Math.tanh)return Math.tanh(t);if(t===1/0)return 1;if(t===-1/0)return-1;var e=Math.exp(2*t);return(e-1)/(e+1)}function N(t){var e=Math.ceil(Math.sqrt(t));return[e,Math.ceil(t/e)]}function S(t,e){return e<=t.length?t:t+" ".repeat(e-t.length)}function C(t,e,n){return void 0===e&&(e=function(t){return 0}),new Promise(function(r,i){var o=0,a=function(){if(t())r();else{var s=e(++o);null!=n&&o>=n?i():setTimeout(a,s)}};a()})}function E(t,e){for(var n=1,r=-1,i=0;i<t.length;++i)if(t[i]>=0)n*=t[i];else if(-1===t[i]){if(-1!==r)throw Error("Shapes can only have 1 implicit size. Found -1 at dim "+r+" and dim "+i);r=i}else if(t[i]<0)throw Error("Shapes can not be < 0. Found "+t[i]+" at dim "+i);if(-1===r){if(e>0&&e!==n)throw Error("Size("+e+") must match the product of shape "+t);return t}if(0===n)throw Error("Cannot infer the missing size in ["+t+"] when there are 0 elements");if(e%n!=0)throw Error("The implicit shape can't be a fractional number. Got "+e+" / "+n);var o=t.slice();return o[r]=e/n,o}function I(t,e){var n=e.length;return d((t=null==t?e.map(function(t,e){return e}):[].concat(t)).every(function(t){return t>=-n&&t<n}),function(){return"All values in axis param must be in range [-"+n+", "+n+") but got axis "+t}),d(t.every(function(t){return w(t)}),function(){return"All values in axis param must be integers but got axis "+t}),t.map(function(t){return t<0?n+t:t})}function k(t,e){for(var n=[],r=[],i=null==e?null:I(e,t).sort(),o=0,a=0;a<t.length;++a){if(null!=i){if(i[o]===a&&1!==t[a])throw new Error("Can't squeeze axis "+a+" since its dim '"+t[a]+"' is not 1");(null==i[o]||i[o]>a)&&1===t[a]&&(n.push(t[a]),r.push(a)),i[o]<=a&&o++}1!==t[a]&&(n.push(t[a]),r.push(a))}return{newShape:n,keptDims:r}}function A(t,e){var n=null;if(null==t||"float32"===t)n=new Float32Array(e);else if("int32"===t)n=new Int32Array(e);else{if("bool"!==t)throw new Error("Unknown data type "+t);n=new Uint8Array(e)}return n}function T(t,e){var n=null;if(null==t||"float32"===t)n=new Float32Array(e);else if("int32"===t)n=new Int32Array(e);else if("bool"===t)n=new Uint8Array(e);else{if("string"!==t)throw new Error("Unknown data type "+t);n=new Array(e)}return n}function R(t,e,n){if("float32"===e)for(var r=0;r<t.length;r++){var i=t[r];if(isNaN(i)||!isFinite(i))throw Error("The result of the '"+n+"' is "+i+".")}}function D(t,e){for(var n=0;n<t.length;n++){var r=t[n];if(isNaN(r)||!isFinite(r))throw Error("A tensor of type "+e+" being uploaded contains "+r+".")}}function O(t,e){return!("complex64"===e||"float32"===e&&"complex64"!==t||"int32"===e&&"float32"!==t&&"complex64"!==t||"bool"===e&&"bool"===t)}function _(t){return t instanceof Float32Array||t instanceof Int32Array||t instanceof Uint8Array}function M(t){if("float32"===t||"int32"===t)return 4;if("complex64"===t)return 8;if("bool"===t)return 1;throw new Error("Unknown dtype "+t)}function L(t){if(null==t)return 0;var e=0;return t.forEach(function(t){return e+=2*t.length}),e}function F(t){return"string"==typeof t||t instanceof String}function z(t){return"boolean"==typeof t}function P(t){return"number"==typeof t}function B(t){return Array.isArray(t)?B(t[0]):t instanceof Float32Array?"float32":t instanceof Int32Array||t instanceof Uint8Array?"int32":P(t)?"float32":F(t)?"string":z(t)?"bool":"float32"}function U(t){return!!(t&&t.constructor&&t.call&&t.apply)}function W(t,e){for(var n=e;n<t;++n)if(t%n==0)return n;return t}function V(t){var e=t.length;if(e<2)return[];var n=new Array(e-1);n[e-2]=t[e-1];for(var r=e-3;r>=0;--r)n[r]=n[r+1]*t[r+1];return n}function j(t,e,n){if("string"===e)throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(t)&&(t=y(t)),n&&D(t,e),function(t,e){return t instanceof Float32Array&&"float32"===e||t instanceof Int32Array&&"int32"===e||t instanceof Uint8Array&&"bool"===e}(t,e))return t;if(null==e||"float32"===e||"complex64"===e)return new Float32Array(t);if("int32"===e)return new Int32Array(t);if("bool"===e){for(var r=new Uint8Array(t.length),i=0;i<r.length;++i)0!==Math.round(t[i])&&(r[i]=1);return r}throw new Error("Unknown data type "+e)}function q(t,e){if(0===t.length)return e[0];var n=t.reduce(function(t,e){return t*e});if(0===n)return[];if(n!==e.length)throw new Error("["+t+"] does not match the input size.");return function t(e,n,r){var i=new Array;if(1===n.length)for(var o=n[0],a=0;a<o;a++)i[a]=r[e+a];else{o=n[0];var s=n.slice(1),u=s.reduce(function(t,e){return t*e});for(a=0;a<o;a++)i[a]=t(e+a*u,s,r)}return i}(0,t,e)}function G(t,e){for(var n=H(t,e),r=0;r<n.length;r++)n[r]=1;return n}function H(t,e){if(null==e||"float32"===e||"complex64"===e)return new Float32Array(t);if("int32"===e)return new Int32Array(t);if("bool"===e)return new Uint8Array(t);throw new Error("Unknown data type "+e)}function K(){if("undefined"!=typeof performance)return performance.now();if("undefined"!=typeof process){var t=process.hrtime();return 1e3*t[0]+t[1]/1e6}throw new Error("Cannot measure time in this environment. You should run tf.js in the browser or in Node.js")}function $(t){t.forEach(function(e){d(Number.isInteger(e)&&e>=0,function(){return"Tensor must have a shape comprised of positive integers but got shape ["+t+"]."})})}var X=Object.freeze({shuffle:l,clamp:c,nearestLargerEven:p,sum:h,randUniform:f,distSquared:function(t,e){for(var n=0,r=0;r<t.length;r++){var i=Number(t[r])-Number(e[r]);n+=i*i}return n},assert:d,assertShapesMatch:m,assertNonNull:g,flatten:y,sizeFromShape:v,isScalarShape:function(t){return 0===t.length},arraysEqual:b,isInt:w,tanh:x,sizeToSquarishShape:N,createShuffledIndices:function(t){for(var e=new Uint32Array(t),n=0;n<t;++n)e[n]=n;return l(e),e},rightPad:S,repeatedTry:C,inferFromImplicitShape:E,parseAxisParam:I,squeezeShape:k,getTypedArrayFromDType:A,getArrayFromDType:T,checkComputationForErrors:R,checkConversionForErrors:D,hasEncodingLoss:O,isTypedArray:_,bytesPerElement:M,bytesFromStringArray:L,isString:F,isBoolean:z,isNumber:P,inferDtype:B,isFunction:U,nearestDivisor:W,computeStrides:V,toTypedArray:j,toNestedArray:q,makeOnesTypedArray:G,makeZerosTypedArray:H,now:K,assertNonNegativeIntegerDimensions:$}),Y=function(){function t(t,e){this.backendTimer=t,this.logger=e,null==e&&(this.logger=new J)}return t.prototype.profileKernel=function(t,e){var n,r=this,i=this.backendTimer.time(function(){n=e()});return(Array.isArray(n)?n:[n]).forEach(function(e){var n=e.dataSync();R(n,e.dtype,t),i.then(function(i){var o="";null!=i.getExtraProfileInfo&&(o=i.getExtraProfileInfo()),r.logger.logKernelProfile(t,e,n,i.kernelMs,o)})}),n},t}(),J=function(){function t(){}return t.prototype.logKernelProfile=function(t,e,n,r,i){var o=S(r+"ms",9),a=S(t,25),s=e.rank,u=e.size,l=S(e.shape.toString(),14);console.log("%c"+a+"\t%c"+o+"\t%c"+s+"D "+l+"\t%c"+u+"\t%c"+i,"font-weight:bold","color:red","color:blue","color: orange","color: green")},t}(),Z=20,Q=3,tt=7;function et(t,e,n,r){var i=V(e),o=function(t,e,n,r){var i=v(e),o=r[r.length-1],a=new Array(o).fill(0),s=e.length,u="complex64"===n?rt(t):t;if(s>1)for(var l=0;l<i/o;l++)for(var c=l*o,p=0;p<o;p++)a[p]=Math.max(a[p],nt(u[c+p],0).length);return a}(t,e,n,i),a=e.length,s=function t(e,n,r,i,o,a){void 0===a&&(a=!0);var s="complex64"===r?2:1,u=n[0],l=n.length;if(0===l)return"complex64"===r?[nt(rt(e)[0],0)]:[e[0].toString()];if(1===l){if(u>Z){var c=Q*s,p=Array.from(e.slice(0,c)),h=Array.from(e.slice(u-Q*s,u));return"complex64"===r&&(p=rt(p),h=rt(h)),["["+p.map(function(t,e){return nt(t,o[e])}).join(", ")+", ..., "+h.map(function(t,e){return nt(t,o[u-Q+e])}).join(", ")+"]"]}return["["+("complex64"===r?rt(e):Array.from(e)).map(function(t,e){return nt(t,o[e])}).join(", ")+"]"]}var f=n.slice(1),d=i.slice(1),m=i[0]*s,g=[];if(u>Z){for(var y=0;y<Q;y++){var v=(b=y*m)+m;g.push.apply(g,t(e.slice(b,v),f,r,d,o,!1))}for(g.push("..."),y=u-Q;y<u;y++)v=(b=y*m)+m,g.push.apply(g,t(e.slice(b,v),f,r,d,o,y===u-1))}else for(y=0;y<u;y++){var b;v=(b=y*m)+m,g.push.apply(g,t(e.slice(b,v),f,r,d,o,y===u-1))}var w=2===l?",":"";g[0]="["+g[0]+w;for(y=1;y<g.length-1;y++)g[y]=" "+g[y]+w;var x=",\n";for(y=2;y<l;y++)x+="\n";return g[g.length-1]=" "+g[g.length-1]+"]"+(a?"":x),g}(t,e,n,i,o),u=["Tensor"];return r&&(u.push("  dtype: "+n),u.push("  rank: "+a),u.push("  shape: ["+e+"]"),u.push("  values:")),u.push(s.map(function(t){return"    "+t}).join("\n")),u.join("\n")}function nt(t,e){return S(Array.isArray(t)?parseFloat(t[0].toFixed(tt))+" + "+parseFloat(t[1].toFixed(tt))+"j":F(t)?"'"+t+"'":parseFloat(t.toFixed(tt)).toString(),e)}function rt(t){for(var e=[],n=0;n<t.length;n+=2)e.push([t[n],t[n+1]]);return e}var it=function(){function t(t,e,n){var r=this;if(this.dtype=e,this.shape=t.slice(),this.size=v(t),null!=n){var i=n.length;d(i===this.size,function(){return"Length of values '"+i+"' does not match the size inferred by the shape '"+r.size+"'."})}if("complex64"===e)throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=n||T(e,v(this.shape)),this.strides=V(t)}return t.prototype.set=function(t){for(var e=this,n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];0===n.length&&(n=[0]),d(n.length===this.rank,function(){return"The number of provided coordinates ("+n.length+") must match the rank ("+e.rank+")"});var i=this.locToIndex(n);this.values[i]=t},t.prototype.get=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];0===t.length&&(t=[0]);for(var n=t[t.length-1],r=0;r<t.length-1;++r)n+=this.strides[r]*t[r];return this.values[n]},t.prototype.locToIndex=function(t){if(0===this.rank)return 0;if(1===this.rank)return t[0];for(var e=t[t.length-1],n=0;n<t.length-1;++n)e+=this.strides[n]*t[n];return e},t.prototype.indexToLoc=function(t){if(0===this.rank)return[];if(1===this.rank)return[t];for(var e=new Array(this.shape.length),n=0;n<e.length-1;++n)e[n]=Math.floor(t/this.strides[n]),t-=e[n]*this.strides[n];return e[e.length-1]=t,e},Object.defineProperty(t.prototype,"rank",{get:function(){return this.shape.length},enumerable:!0,configurable:!0}),t.prototype.toTensor=function(){return ut.make(this.shape,{values:this.values},this.dtype)},t}(),ot=null,at=null,st=null;var ut=function(){function t(t,e,n,r,i){this.isDisposedInternal=!1,this.shape=t.slice(),this.dtype=e||"float32",this.size=v(t),this.strides=V(t),this.dataId=null!=r?r:{},this.id=ot().nextTensorId(),this.rankType=this.rank<5?this.rank.toString():"higher",ot().registerTensor(this,i),null!=n&&ot().write(this.dataId,n)}return t.make=function(e,n,r,i){return new t(e,r,n.values,n.dataId,i)},t.prototype.flatten=function(){return this.throwIfDisposed(),this.as1D()},t.prototype.asScalar=function(){return this.throwIfDisposed(),d(1===this.size,function(){return"The array must have only 1 element."}),this.reshape([])},t.prototype.as1D=function(){return this.throwIfDisposed(),this.reshape([this.size])},t.prototype.as2D=function(t,e){return this.throwIfDisposed(),this.reshape([t,e])},t.prototype.as3D=function(t,e,n){return this.throwIfDisposed(),this.reshape([t,e,n])},t.prototype.as4D=function(t,e,n,r){return this.throwIfDisposed(),this.reshape([t,e,n,r])},t.prototype.as5D=function(t,e,n,r,i){return this.throwIfDisposed(),this.reshape([t,e,n,r,i])},t.prototype.asType=function(t){return this.throwIfDisposed(),at.cast(this,t)},Object.defineProperty(t.prototype,"rank",{get:function(){return this.shape.length},enumerable:!0,configurable:!0}),t.prototype.buffer=function(){return i(this,void 0,void 0,function(){var t;return o(this,function(e){switch(e.label){case 0:return[4,this.data()];case 1:return t=e.sent(),[2,at.buffer(this.shape,this.dtype,t)]}})})},t.prototype.bufferSync=function(){return at.buffer(this.shape,this.dtype,this.dataSync())},t.prototype.array=function(){return i(this,void 0,void 0,function(){var t;return o(this,function(e){switch(e.label){case 0:return[4,this.data()];case 1:return t=e.sent(),[2,q(this.shape,t)]}})})},t.prototype.arraySync=function(){return q(this.shape,this.dataSync())},t.prototype.data=function(){return i(this,void 0,void 0,function(){return o(this,function(t){return this.throwIfDisposed(),[2,ot().read(this.dataId)]})})},t.prototype.dataSync=function(){return this.throwIfDisposed(),ot().readSync(this.dataId)},t.prototype.dispose=function(){this.isDisposed||(ot().disposeTensor(this),this.isDisposedInternal=!0)},Object.defineProperty(t.prototype,"isDisposed",{get:function(){return this.isDisposedInternal},enumerable:!0,configurable:!0}),t.prototype.throwIfDisposed=function(){if(this.isDisposed)throw new Error("Tensor is disposed.")},t.prototype.toFloat=function(){return this.asType("float32")},t.prototype.toInt=function(){return this.asType("int32")},t.prototype.toBool=function(){return this.asType("bool")},t.prototype.print=function(t){return void 0===t&&(t=!1),at.print(this,t)},t.prototype.reshape=function(t){return this.throwIfDisposed(),at.reshape(this,t)},t.prototype.reshapeAs=function(t){return this.throwIfDisposed(),this.reshape(t.shape)},t.prototype.expandDims=function(t){return void 0===t&&(t=0),at.expandDims(this,t)},t.prototype.cumsum=function(t,e,n){return void 0===t&&(t=0),void 0===e&&(e=!1),void 0===n&&(n=!1),at.cumsum(this,t,e,n)},t.prototype.squeeze=function(t){return this.throwIfDisposed(),at.squeeze(this,t)},t.prototype.clone=function(){return this.throwIfDisposed(),at.clone(this)},t.prototype.oneHot=function(t,e,n){return this.throwIfDisposed(),at.oneHot(this,t,e,n)},t.prototype.toString=function(t){return void 0===t&&(t=!1),et(this.dataSync(),this.shape,this.dtype,t)},t.prototype.tile=function(t){return this.throwIfDisposed(),at.tile(this,t)},t.prototype.gather=function(t,e){return void 0===e&&(e=0),this.throwIfDisposed(),at.gather(this,t,e)},t.prototype.matMul=function(t,e,n){return void 0===e&&(e=!1),void 0===n&&(n=!1),this.throwIfDisposed(),at.matMul(this,t,e,n)},t.prototype.dot=function(t){return this.throwIfDisposed(),at.dot(this,t)},t.prototype.norm=function(t,e,n){return void 0===t&&(t="euclidean"),void 0===e&&(e=null),void 0===n&&(n=!1),this.throwIfDisposed(),at.norm(this,t,e,n)},t.prototype.slice=function(t,e){return this.throwIfDisposed(),at.slice(this,t,e)},t.prototype.reverse=function(t){return this.throwIfDisposed(),at.reverse(this,t)},t.prototype.concat=function(e,n){return void 0===n&&(n=0),this.throwIfDisposed(),e instanceof t&&(e=[e]),at.concat([this].concat(e),n)},t.prototype.split=function(t,e){return void 0===e&&(e=0),this.throwIfDisposed(),at.split(this,t,e)},t.prototype.stack=function(t,e){return void 0===e&&(e=0),at.stack([this,t],e)},t.prototype.unstack=function(t){return void 0===t&&(t=0),at.unstack(this,t)},t.prototype.pad=function(t,e){return void 0===e&&(e=0),at.pad(this,t,e)},t.prototype.batchNormalization=function(t,e,n,r,i){return void 0===n&&(n=.001),st("tf.batchNormalization() is going away. Use tf.batchNorm() instead, and note the positional argument change of scale, offset, and varianceEpsilon"),this.batchNorm(t,e,i,r,n)},t.prototype.batchNorm=function(t,e,n,r,i){return void 0===i&&(i=.001),this.throwIfDisposed(),at.batchNorm(this,t,e,n,r,i)},t.prototype.all=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),at.all(this,t,e)},t.prototype.any=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),at.any(this,t,e)},t.prototype.logSumExp=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),at.logSumExp(this,t,e)},t.prototype.sum=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),at.sum(this,t,e)},t.prototype.prod=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),at.prod(this,t,e)},t.prototype.mean=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),at.mean(this,t,e)},t.prototype.min=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),at.min(this,t,e)},t.prototype.max=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),at.max(this,t,e)},t.prototype.argMin=function(t){return void 0===t&&(t=null),this.throwIfDisposed(),at.argMin(this,t)},t.prototype.argMax=function(t){return void 0===t&&(t=null),this.throwIfDisposed(),at.argMax(this,t)},t.prototype.cast=function(t){return this.throwIfDisposed(),at.cast(this,t)},t.prototype.add=function(t){return this.throwIfDisposed(),at.add(this,t)},t.prototype.addStrict=function(t){return this.throwIfDisposed(),at.addStrict(this,t)},t.prototype.atan2=function(t){return this.throwIfDisposed(),at.atan2(this,t)},t.prototype.sub=function(t){return this.throwIfDisposed(),at.sub(this,t)},t.prototype.subStrict=function(t){return this.throwIfDisposed(),at.subStrict(this,t)},t.prototype.pow=function(t){return this.throwIfDisposed(),at.pow(this,t)},t.prototype.powStrict=function(t){return this.throwIfDisposed(),at.powStrict(this,t)},t.prototype.mul=function(t){return this.throwIfDisposed(),at.mul(this,t)},t.prototype.mulStrict=function(t){return this.throwIfDisposed(),at.mulStrict(this,t)},t.prototype.div=function(t){return this.throwIfDisposed(),at.div(this,t)},t.prototype.floorDiv=function(t){return this.throwIfDisposed(),at.floorDiv(this,t)},t.prototype.divStrict=function(t){return this.throwIfDisposed(),at.divStrict(this,t)},t.prototype.minimum=function(t){return this.throwIfDisposed(),at.minimum(this,t)},t.prototype.minimumStrict=function(t){return this.throwIfDisposed(),at.minimumStrict(this,t)},t.prototype.maximum=function(t){return this.throwIfDisposed(),at.maximum(this,t)},t.prototype.maximumStrict=function(t){return this.throwIfDisposed(),at.maximumStrict(this,t)},t.prototype.mod=function(t){return this.throwIfDisposed(),at.mod(this,t)},t.prototype.modStrict=function(t){return this.throwIfDisposed(),at.modStrict(this,t)},t.prototype.squaredDifference=function(t){return this.throwIfDisposed(),at.squaredDifference(this,t)},t.prototype.squaredDifferenceStrict=function(t){return this.throwIfDisposed(),at.squaredDifferenceStrict(this,t)},t.prototype.transpose=function(t){return this.throwIfDisposed(),at.transpose(this,t)},t.prototype.notEqual=function(t){return this.throwIfDisposed(),at.notEqual(this,t)},t.prototype.notEqualStrict=function(t){return this.throwIfDisposed(),at.notEqualStrict(this,t)},t.prototype.less=function(t){return this.throwIfDisposed(),at.less(this,t)},t.prototype.lessStrict=function(t){return this.throwIfDisposed(),at.lessStrict(this,t)},t.prototype.equal=function(t){return this.throwIfDisposed(),at.equal(this,t)},t.prototype.equalStrict=function(t){return this.throwIfDisposed(),at.equalStrict(this,t)},t.prototype.lessEqual=function(t){return this.throwIfDisposed(),at.lessEqual(this,t)},t.prototype.lessEqualStrict=function(t){return this.throwIfDisposed(),at.lessEqualStrict(this,t)},t.prototype.greater=function(t){return this.throwIfDisposed(),at.greater(this,t)},t.prototype.greaterStrict=function(t){return this.throwIfDisposed(),at.greaterStrict(this,t)},t.prototype.greaterEqual=function(t){return this.throwIfDisposed(),at.greaterEqual(this,t)},t.prototype.greaterEqualStrict=function(t){return this.throwIfDisposed(),at.greaterEqualStrict(this,t)},t.prototype.logicalAnd=function(t){return this.throwIfDisposed(),at.logicalAnd(this,t)},t.prototype.logicalOr=function(t){return this.throwIfDisposed(),at.logicalOr(this,t)},t.prototype.logicalNot=function(){return this.throwIfDisposed(),at.logicalNot(this)},t.prototype.logicalXor=function(t){return this.throwIfDisposed(),at.logicalXor(this,t)},t.prototype.where=function(t,e){return this.throwIfDisposed(),at.where(t,this,e)},t.prototype.neg=function(){return this.throwIfDisposed(),at.neg(this)},t.prototype.ceil=function(){return this.throwIfDisposed(),at.ceil(this)},t.prototype.floor=function(){return this.throwIfDisposed(),at.floor(this)},t.prototype.sign=function(){return this.throwIfDisposed(),at.sign(this)},t.prototype.exp=function(){return this.throwIfDisposed(),at.exp(this)},t.prototype.expm1=function(){return this.throwIfDisposed(),at.expm1(this)},t.prototype.log=function(){return this.throwIfDisposed(),at.log(this)},t.prototype.log1p=function(){return this.throwIfDisposed(),at.log1p(this)},t.prototype.sqrt=function(){return this.throwIfDisposed(),at.sqrt(this)},t.prototype.rsqrt=function(){return this.throwIfDisposed(),at.rsqrt(this)},t.prototype.square=function(){return this.throwIfDisposed(),at.square(this)},t.prototype.reciprocal=function(){return this.throwIfDisposed(),at.reciprocal(this)},t.prototype.abs=function(){return this.throwIfDisposed(),at.abs(this)},t.prototype.clipByValue=function(t,e){return this.throwIfDisposed(),at.clipByValue(this,t,e)},t.prototype.relu=function(){return this.throwIfDisposed(),at.relu(this)},t.prototype.elu=function(){return this.throwIfDisposed(),at.elu(this)},t.prototype.selu=function(){return this.throwIfDisposed(),at.selu(this)},t.prototype.leakyRelu=function(t){return void 0===t&&(t=.2),this.throwIfDisposed(),at.leakyRelu(this,t)},t.prototype.prelu=function(t){return this.throwIfDisposed(),at.prelu(this,t)},t.prototype.sigmoid=function(){return this.throwIfDisposed(),at.sigmoid(this)},t.prototype.logSigmoid=function(){return this.throwIfDisposed(),at.logSigmoid(this)},t.prototype.softplus=function(){return this.throwIfDisposed(),at.softplus(this)},t.prototype.zerosLike=function(){return this.throwIfDisposed(),at.zerosLike(this)},t.prototype.onesLike=function(){return this.throwIfDisposed(),at.onesLike(this)},t.prototype.sin=function(){return this.throwIfDisposed(),at.sin(this)},t.prototype.cos=function(){return this.throwIfDisposed(),at.cos(this)},t.prototype.tan=function(){return this.throwIfDisposed(),at.tan(this)},t.prototype.asin=function(){return this.throwIfDisposed(),at.asin(this)},t.prototype.acos=function(){return this.throwIfDisposed(),at.acos(this)},t.prototype.atan=function(){return this.throwIfDisposed(),at.atan(this)},t.prototype.sinh=function(){return this.throwIfDisposed(),at.sinh(this)},t.prototype.cosh=function(){return this.throwIfDisposed(),at.cosh(this)},t.prototype.tanh=function(){return this.throwIfDisposed(),at.tanh(this)},t.prototype.asinh=function(){return this.throwIfDisposed(),at.asinh(this)},t.prototype.acosh=function(){return this.throwIfDisposed(),at.acosh(this)},t.prototype.atanh=function(){return this.throwIfDisposed(),at.atanh(this)},t.prototype.erf=function(){return this.throwIfDisposed(),at.erf(this)},t.prototype.round=function(){return this.throwIfDisposed(),at.round(this)},t.prototype.step=function(t){return void 0===t&&(t=0),this.throwIfDisposed(),at.step(this,t)},t.prototype.softmax=function(t){return void 0===t&&(t=-1),this.throwIfDisposed(),at.softmax(this,t)},t.prototype.logSoftmax=function(t){return void 0===t&&(t=-1),this.throwIfDisposed(),at.logSoftmax(this,t)},t.prototype.resizeBilinear=function(t,e){return void 0===e&&(e=!1),this.throwIfDisposed(),at.image.resizeBilinear(this,t,e)},t.prototype.resizeNearestNeighbor=function(t,e){return void 0===e&&(e=!1),this.throwIfDisposed(),at.image.resizeNearestNeighbor(this,t,e)},t.prototype.conv1d=function(t,e,n,r,i,o){return void 0===r&&(r="NWC"),void 0===i&&(i=1),this.throwIfDisposed(),at.conv1d(this,t,e,n,r,i,o)},t.prototype.conv2d=function(t,e,n,r,i,o){return void 0===r&&(r="NHWC"),void 0===i&&(i=[1,1]),this.throwIfDisposed(),at.conv2d(this,t,e,n,r,i,o)},t.prototype.conv2dTranspose=function(t,e,n,r,i){return this.throwIfDisposed(),at.conv2dTranspose(this,t,e,n,r,i)},t.prototype.depthwiseConv2D=function(t,e,n,r,i,o){return void 0===r&&(r="NHWC"),void 0===i&&(i=[1,1]),this.throwIfDisposed(),at.depthwiseConv2d(this,t,e,n,r,i,o)},t.prototype.separableConv2d=function(t,e,n,r,i,o){return void 0===i&&(i=[1,1]),void 0===o&&(o="NHWC"),this.throwIfDisposed(),at.separableConv2d(this,t,e,n,r,i,o)},t.prototype.avgPool=function(t,e,n,r){return this.throwIfDisposed(),at.avgPool(this,t,e,n,r)},t.prototype.maxPool=function(t,e,n,r){return this.throwIfDisposed(),at.maxPool(this,t,e,n,r)},t.prototype.localResponseNormalization=function(t,e,n,r){return void 0===t&&(t=5),void 0===e&&(e=1),void 0===n&&(n=1),void 0===r&&(r=.5),at.localResponseNormalization(this,t,e,n,r)},t.prototype.pool=function(t,e,n,r,i){return this.throwIfDisposed(),at.pool(this,t,e,n,r,i)},t.prototype.variable=function(t,e,n){return void 0===t&&(t=!0),this.throwIfDisposed(),lt.variable(this,t,e,n)},t.prototype.unsortedSegmentSum=function(t,e){return this.throwIfDisposed(),at.unsortedSegmentSum(this,t,e)},t.prototype.batchToSpaceND=function(t,e){return this.throwIfDisposed(),at.batchToSpaceND(this,t,e)},t.prototype.spaceToBatchND=function(t,e){return this.throwIfDisposed(),at.spaceToBatchND(this,t,e)},t.prototype.topk=function(t,e){return void 0===t&&(t=1),void 0===e&&(e=!0),this.throwIfDisposed(),at.topk(this,t,e)},t.prototype.stridedSlice=function(t,e,n,r,i,o,a,s){return void 0===r&&(r=0),void 0===i&&(i=0),void 0===o&&(o=0),void 0===a&&(a=0),void 0===s&&(s=0),this.throwIfDisposed(),at.stridedSlice(this,t,e,n,r,i,o,a,s)},t.prototype.depthToSpace=function(t,e){return this.throwIfDisposed(),at.depthToSpace(this,t,e)},t.prototype.fft=function(){return this.throwIfDisposed(),at.spectral.fft(this)},t.prototype.ifft=function(){return this.throwIfDisposed(),at.spectral.ifft(this)},t.prototype.rfft=function(){return this.throwIfDisposed(),at.spectral.rfft(this)},t.prototype.irfft=function(){return this.throwIfDisposed(),at.spectral.irfft(this)},t}();Object.defineProperty(ut,Symbol.hasInstance,{value:function(t){return!!t&&null!=t.dataId&&null!=t.shape&&null!=t.dtype}});var lt=function(t){function e(e,n,r){void 0===n&&(n=!0);var i=t.call(this,e.shape,e.dtype,null,e.dataId)||this;i.trainable=n,i.name=r,null==i.name&&(i.name=ot().nextVariableId().toString());try{ot().registerVariable(i)}catch(t){throw ot().disposeTensor(i),t}return i}return n(e,t),e.variable=function(t,n,r,i){return void 0===n&&(n=!0),null!=i&&i!==t.dtype&&(t=t.asType(i)),new e(t,n,r)},e.prototype.assign=function(t){if(t.dtype!==this.dtype)throw new Error("dtype of the new value ("+t.dtype+") and previous value ("+this.dtype+") must match");if(!b(t.shape,this.shape))throw new Error("shape of the new value ("+t.shape+") and previous value ("+this.shape+") must match");ot().disposeTensor(this),this.dataId=t.dataId,ot().registerTensor(this)},e}(ut);Object.defineProperty(lt,Symbol.hasInstance,{value:function(t){return t instanceof ut&&null!=t.assign&&t.assign instanceof Function}});var ct,pt,ht,ft,dt,mt=lt.variable;(dt=t.Rank||(t.Rank={})).R0="R0",dt.R1="R1",dt.R2="R2",dt.R3="R3",dt.R4="R4",dt.R5="R5",dt.R6="R6",function(t){t.float32="float32",t.int32="int32",t.bool="int32",t.complex64="complex64"}(ct||(ct={})),function(t){t.float32="float32",t.int32="int32",t.bool="bool",t.complex64="complex64"}(pt||(pt={})),function(t){t.float32="float32",t.int32="float32",t.bool="float32",t.complex64="complex64"}(ht||(ht={})),function(t){t.float32="complex64",t.int32="complex64",t.bool="complex64",t.complex64="complex64"}(ft||(ft={}));var gt={float32:ht,int32:ct,bool:pt,complex64:ft};function yt(t,e){if("string"===t||"string"===e){if("string"===t&&"string"===e)return"string";throw new Error("Can not upcast "+t+" with "+e)}return gt[t][e]}function vt(t){return yt(t,"int32")}function bt(t,e){if(t.dtype===e.dtype)return[t,e];var n=yt(t.dtype,e.dtype);return[t.cast(n),e.cast(n)]}function wt(t){var e=[];return function t(e,n,r){if(null!=e)if(e instanceof ut)n.push(e);else if(function(t){return Array.isArray(t)||"object"==typeof t}(e)){var i=e;for(var o in i){var a=i[o];r.has(a)||(r.add(a),t(a,n,r))}}}(t,e,new Set),e}var xt,Nt=function(){function t(t,e,n){this.backend=t,this.safeMode=e,this.debugMode=n,this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.profiling=!1,this.gradientScopeCount=0,this.customGradientDepth=0,this.scopeStack=[],this.keepTensors=new Set,this.tensorInfo=new WeakMap,this.profiler=new Y(t),this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null}}return t.prototype.moveData=function(t){this.write(t,this.readSync(t))},t.prototype.tidy=function(t,e,n){var r=this;void 0===n&&(n=!1);var i,o=null;if(null==e){if("function"!=typeof t)throw new Error("Please provide a function to tidy()");e=t}else{if("string"!=typeof t&&!(t instanceof String))throw new Error("When calling with two arguments, the first argument to tidy() must be a string");if("function"!=typeof e)throw new Error("When calling with two arguments, the 2nd argument to tidy() must be a function");o=t}return this.scopedRun(function(){return r.startScope(o,n)},function(){return r.endScope(i,n)},function(){return(i=e())instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),i})},t.prototype.scopedRun=function(t,e,n){t();try{var r=n();return e(),r}catch(t){throw e(),t}},t.prototype.nextTensorId=function(){return t.nextTensorId++},t.prototype.nextVariableId=function(){return t.nextVariableId++},t.prototype.runKernel=function(t,e,n){var r,i=this,o=[],a=function(t){return o.push(t),t},s=null!=this.activeScope?this.activeScope.name:"",u=this.numBytes,l=this.numTensors;if(this.scopedRun(function(){return i.customGradientDepth++},function(){return i.customGradientDepth--},function(){r=i.debugMode()?i.profiler.profileKernel(s,function(){return t(i.backend,a)}):t(i.backend,a)}),this.shouldRecord()){var c={id:this.nextTapeNodeId++,name:s,inputs:e,outputs:Array.isArray(r)?r:[r]};null!=n&&(c.gradient=function(t){return n(t,o)}),this.activeTape.push(c)}return this.profiling&&this.activeProfile.kernels.push({name:s,bytesAdded:this.numBytes-u,totalBytesSnapshot:this.numBytes,tensorsAdded:this.numTensors-l,totalTensorsSnapshot:this.numTensors,inputShapes:Object.keys(e).map(function(t){return e[t].shape}),outputShape:Array.isArray(r)?r.map(function(t){return t.shape}):r.shape}),r},t.prototype.registerTensor=function(t,e){var n=this.tensorInfo.has(t.dataId)?this.tensorInfo.get(t.dataId).refCount:0;if(this.numTensors++,"string"===t.dtype&&this.numStringTensors++,0===n){this.numDataBuffers++;var r=0;"complex64"!==t.dtype&&"string"!==t.dtype&&(r=v(t.shape)*M(t.dtype)),this.tensorInfo.set(t.dataId,{backend:null!=e?e:this.backend,dtype:t.dtype,shape:t.shape,bytes:r,refCount:0}),this.numBytes+=r,null!=e?e.register(t.dataId,t.shape,t.dtype):this.backend.register(t.dataId,t.shape,t.dtype)}this.tensorInfo.get(t.dataId).refCount++,t instanceof lt||this.track(t)},t.prototype.registerVariable=function(t){if(null!=this.registeredVariables[t.name])throw new Error("Variable with name "+t.name+" was already registered");this.registeredVariables[t.name]=t},t.prototype.disposeTensor=function(t){if(this.tensorInfo.has(t.dataId)){this.keepTensors.has(t.id)&&this.keepTensors.delete(t.id),this.numTensors--,"string"===t.dtype&&this.numStringTensors--;var e=this.tensorInfo.get(t.dataId);e.refCount<=1?("complex64"!==t.dtype&&(this.numBytes-=e.bytes),this.numDataBuffers--,e.backend.disposeData(t.dataId),this.tensorInfo.delete(t.dataId)):this.tensorInfo.get(t.dataId).refCount--}},t.prototype.disposeVariables=function(){for(var t in this.registeredVariables){var e=this.registeredVariables[t];this.disposeTensor(e),delete this.registeredVariables[t]}},t.prototype.memory=function(){var t=this.backend.memory();return t.numTensors=this.numTensors,t.numDataBuffers=this.numDataBuffers,t.numBytes=this.numBytes,this.numStringTensors>0&&(t.unreliable=!0,null==t.reasons&&(t.reasons=[]),t.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),t},t.prototype.profile=function(t){return i(this,void 0,void 0,function(){var e,n;return o(this,function(r){return this.profiling=!0,e=this.numBytes,n=this.numTensors,this.activeProfile.kernels=[],this.activeProfile.result=t(),this.profiling=!1,this.activeProfile.peakBytes=Math.max.apply(Math,this.activeProfile.kernels.map(function(t){return t.totalBytesSnapshot})),this.activeProfile.newBytes=this.numBytes-e,this.activeProfile.newTensors=this.numTensors-n,[2,this.activeProfile]})})},t.prototype.shouldRecord=function(){return null!=this.activeTape&&0===this.customGradientDepth},t.prototype.addTapeNode=function(t,e,n){var r={};t.forEach(function(t,e){r[e]=t});var i={id:this.nextTapeNodeId++,name:this.activeScope.name,inputs:r,outputs:[e],gradient:function(t){var e={};return n(t).forEach(function(t,n){e[n]=function(){return t}}),e}};this.activeTape.push(i)},t.prototype.keep=function(t){if(1===this.scopeStack.length&&this.safeMode)throw new Error("Safe mode is ON. Enclose all tensor operations inside tf.tidy(): tf.tidy(() => {...}) to avoid memory leaks.");return this.keepTensors.add(t.id),t},t.prototype.startScope=function(t,e){void 0===e&&(e=!1),e&&0===this.gradientScopeCount&&(this.activeTape=[]),e&&this.gradientScopeCount++;var n={track:[],name:"unnamed scope"};t&&(n.name=t),this.scopeStack.push(n),this.activeScope=n},t.prototype.endScope=function(t,e){var n=this;void 0===e&&(e=!1),e&&(this.gradientScopeCount--,0===this.gradientScopeCount&&(this.activeTape=null));var r=new Set(this.keepTensors),i=wt(t);i.forEach(function(t){return r.add(t.id)});for(var o=0;o<this.activeScope.track.length;o++){var a=this.activeScope.track[o];r.has(a.id)||(null!=this.activeTape?i.push(a):a.dispose())}var s=this.scopeStack.pop();this.activeScope=0===this.scopeStack.length?null:this.scopeStack[this.scopeStack.length-1],i.forEach(function(t){!n.keepTensors.has(t.id)&&function(t,e){for(var n=0;n<e.length;n++)if(e[n].id===t.id)return!0;return!1}(t,s.track)&&n.track(t)})},t.prototype.gradients=function(t,e,n,r){var i=this;if(void 0===r&&(r=!1),d(e.length>0,function(){return"gradients() received an empty list of xs."}),null!=n&&"float32"!==n.dtype)throw new Error("dy must have 'float32' dtype, but has '"+n.dtype+"'");return this.tidy("gradients",function(){var o=t();d(o instanceof ut,function(){return"The result y returned by f() must be a tensor."});var a=function(t,e,n){for(var r={},i={},o=0;o<e.length;o++)r[e[o].id]=!0;for(o=0;o<t.length;o++){var a=(d=t[o]).inputs;for(var s in a){for(var u=a[s],l=!1,c=0;c<e.length;c++)if(r[u.id]){d.outputs.forEach(function(t){return r[t.id]=!0}),l=!0,i[d.id]=!0;break}if(l)break}}var p={};p[n.id]=!0;var h={};for(o=t.length-1;o>=0;o--)for(a=(d=t[o]).inputs,c=0;c<d.outputs.length;c++)if(p[d.outputs[c].id]){for(var s in a)p[a[s].id]=!0,h[d.id]=!0;break}var f=[];for(o=0;o<t.length;o++){var d;if(i[(d=t[o]).id]&&h[d.id]){var m={};for(var s in d.inputs){var g=d.inputs[s];r[g.id]&&(m[s]=g)}var y=Object.assign({},d);y.inputs=m,y.outputs=d.outputs,f.push(y)}}return f}(i.activeTape,e,o);if(!r&&0===a.length&&e.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");var s={};return s[o.id]=null==n?function(t){var e=G(v(t),"float32");return ut.make(t,{values:e})}(o.shape):n,function(t,e){for(var n=function(n){var r=e[n],i=[];if(r.outputs.forEach(function(e){var n=t[e.id];if(null!=n)i.push(n);else{var r=ut.make(e.shape,{values:H(e.size,e.dtype)},e.dtype);i.push(r)}}),null==r.gradient)throw new Error("Cannot compute gradient: gradient function not found for "+r.name+".");var o=r.gradient(1===r.outputs.length?i[0]:i);for(var a in r.inputs){if(!(a in o))throw new Error("Cannot backprop through input "+a+". Available gradients found: "+Object.keys(o)+".");var s=o[a]();if("float32"!==s.dtype)throw new Error("Error in gradient for op "+r.name+". The gradient of input "+a+" must have 'float32' dtype, but has '"+s.dtype+"'");var u=r.inputs[a];if(!b(s.shape,u.shape))throw new Error("Error in gradient for op "+r.name+". The gradient of input '"+a+"' has shape '"+s.shape+"', which does not match the shape of the input '"+u.shape+"'");if(null==t[u.id])t[u.id]=s;else{var l=t[u.id];t[u.id]=l.add(s),l.dispose()}}},r=e.length-1;r>=0;r--)n(r)}(s,a),{value:o,grads:e.map(function(t){return s[t.id]})}},!0)},t.prototype.customGrad=function(t){var e=this;return d(U(t),function(){return"The f passed in customGrad(f) must be a function."}),function(){for(var n,r,i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];return d(i.every(function(t){return t instanceof ut}),function(){return"The args passed in customGrad(f)(x1, x2,...) must all be tensors"}),e.scopedRun(function(){return e.customGradientDepth++},function(){return e.customGradientDepth--},function(){r=e.tidy(t.name,function(){var e=t.apply(void 0,i),r=e.value,o=e.gradFunc;return d(r instanceof ut,function(){return"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"}),d(U(o),function(){return"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."}),n=o,r},!0)}),e.shouldRecord()&&e.addTapeNode(i,r,function(t){var e=n(t),r=Array.isArray(e)?e:[e];return d(r.length===i.length,function(){return"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."}),d(r.every(function(t){return t instanceof ut}),function(){return"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors."}),r}),r}},t.prototype.write=function(t,e){var n=this.tensorInfo.get(t);if("string"===n.dtype){var r=L(e);this.numBytes+=r-n.bytes,n.bytes=r}this.backend!==n.backend&&(n.backend.disposeData(t),n.backend=this.backend,this.backend.register(t,n.shape,n.dtype)),this.backend.write(t,e)},t.prototype.readSync=function(t){return this.tensorInfo.get(t).backend.readSync(t)},t.prototype.read=function(t){return this.tensorInfo.get(t).backend.read(t)},t.prototype.fromPixels=function(t,e){return this.backend.fromPixels(t,e)},t.prototype.time=function(t){return i(this,void 0,void 0,function(){var e,n;return o(this,function(r){switch(r.label){case 0:return e=K(),[4,this.backend.time(t)];case 1:return(n=r.sent()).wallMs=K()-e,[2,n]}})})},t.prototype.track=function(t){if(1===this.scopeStack.length&&this.safeMode)throw new Error("Safe mode is ON. Enclose all tensor operations inside tf.tidy(): tf.tidy(() => {op();...}); to avoid memory leaks.");return null!=this.activeScope&&this.activeScope.track.push(t),t},t.nextTensorId=0,t.nextVariableId=0,t}();!function(t){t[t.NUMBER=0]="NUMBER",t[t.BOOLEAN=1]="BOOLEAN",t[t.STRING=2]="STRING"}(xt||(xt={}));var St,Ct,Et=[{name:"DEBUG",type:xt.BOOLEAN},{name:"IS_BROWSER",type:xt.BOOLEAN},{name:"WEBGL_LAZILY_UNPACK",type:xt.BOOLEAN},{name:"WEBGL_CPU_FORWARD",type:xt.BOOLEAN},{name:"WEBGL_PACK",type:xt.BOOLEAN},{name:"WEBGL_PACK_BATCHNORMALIZATION",type:xt.BOOLEAN},{name:"WEBGL_PACK_CLIP",type:xt.BOOLEAN},{name:"WEBGL_PACK_DEPTHWISECONV",type:xt.BOOLEAN},{name:"WEBGL_PACK_BINARY_OPERATIONS",type:xt.BOOLEAN},{name:"WEBGL_PACK_ARRAY_OPERATIONS",type:xt.BOOLEAN},{name:"WEBGL_PACK_IMAGE_OPERATIONS",type:xt.BOOLEAN},{name:"WEBGL_PACK_REDUCE",type:xt.BOOLEAN},{name:"WEBGL_CONV_IM2COL",type:xt.BOOLEAN},{name:"WEBGL_MAX_TEXTURE_SIZE",type:xt.NUMBER},{name:"WEBGL_NUM_MB_BEFORE_PAGING",type:xt.NUMBER},{name:"WEBGL_MAX_TEXTURES_IN_SHADER",type:xt.NUMBER},{name:"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",type:xt.NUMBER},{name:"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",type:xt.BOOLEAN},{name:"WEBGL_VERSION",type:xt.NUMBER},{name:"WEBGL_RENDER_FLOAT32_ENABLED",type:xt.BOOLEAN},{name:"WEBGL_DOWNLOAD_FLOAT_ENABLED",type:xt.BOOLEAN},{name:"WEBGL_FENCE_API_ENABLED",type:xt.BOOLEAN},{name:"WEBGL_SIZE_UPLOAD_UNIFORM",type:xt.NUMBER},{name:"BACKEND",type:xt.STRING},{name:"EPSILON",type:xt.NUMBER},{name:"PROD",type:xt.BOOLEAN},{name:"TENSORLIKE_CHECK_SHAPE_CONSISTENCY",type:xt.BOOLEAN},{name:"DEPRECATION_WARNINGS_ENABLED",type:xt.BOOLEAN}];function It(t){try{if(null!=u(t))return!0}catch(t){return!1}return!1}var kt="tfjsflags";function At(){var t={};if("undefined"==typeof window||void 0===window.location||void 0===window.location.search)return t;var e=function(t){var e={};return t.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,function(t){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];return function(t,e,n){t[decodeURIComponent(e)]=decodeURIComponent(n||"")}(e,n[0],n[1]),n.join("=")}),e}(window.location.search);if(kt in e){var n={};e[kt].split(",").forEach(function(t){var e=t.split(":"),r=e[0],i=e[1];n[r]=i}),Et.forEach(function(e){e.name in n&&(console.log("Setting feature override from URL "+e.name+": "+n[e.name]),e.type===xt.NUMBER?t[e.name]=+n[e.name]:e.type===xt.BOOLEAN?t[e.name]="true"===n[e.name]:e.type===xt.STRING?t[e.name]=n[e.name]:console.warn("Unknown URL param: "+e.name+"."))})}return t}function Tt(t,e){return null!=t.getExtension(e)}function Rt(t,e){var n=t.createFramebuffer(),r=t.createTexture();t.bindTexture(t.TEXTURE_2D,r);var i=2===e?t.RGBA32F:t.RGBA;t.texImage2D(t.TEXTURE_2D,0,i,1,1,0,t.RGBA,t.FLOAT,null),t.bindFramebuffer(t.FRAMEBUFFER,n),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,r,0);var o=t.checkFramebufferStatus(t.FRAMEBUFFER)===t.FRAMEBUFFER_COMPLETE;return t.bindTexture(t.TEXTURE_2D,null),t.bindFramebuffer(t.FRAMEBUFFER,null),t.deleteTexture(r),t.deleteFramebuffer(n),o}var Dt=600;var Ot,_t=function(){function t(t){this.features={},this.registry={},null!=t&&(this.features=t),this.get("DEBUG")&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")}return t.setBackend=function(t,e){if(void 0===e&&(e=!1),!(t in Bt.registry))throw new Error("Backend name '"+t+"' not found in registry");Bt.engine.backend=Bt.findBackend(t),Bt.backendName=t},t.getBackend=function(){return Bt.initEngine(),Bt.backendName},t.disposeVariables=function(){Bt.engine.disposeVariables()},t.memory=function(){return Bt.engine.memory()},t.profile=function(t){return Bt.engine.profile(t)},t.tidy=function(t,e){return Bt.engine.tidy(t,e)},t.dispose=function(t){wt(t).forEach(function(t){return t.dispose()})},t.keep=function(t){return Bt.engine.keep(t)},t.time=function(t){return Bt.engine.time(t)},t.prototype.get=function(t){return t in this.features?this.features[t]:(this.features[t]=this.evaluateFeature(t),this.features[t])},t.prototype.getFeatures=function(){return this.features},t.prototype.set=function(t,e){this.features[t]=e},t.prototype.getBestBackendName=function(){var t=this;if(0===Object.keys(this.registry).length)throw new Error("No backend found in registry.");return Object.keys(this.registry).map(function(e){return{name:e,entry:t.registry[e]}}).sort(function(t,e){return e.entry.priority-t.entry.priority})[0].name},t.prototype.evaluateFeature=function(t){if("DEBUG"===t)return!1;if("IS_BROWSER"===t)return"undefined"!=typeof window;if("IS_NODE"===t)return"undefined"!=typeof process&&void 0!==process.versions&&void 0!==process.versions.node;if("IS_CHROME"===t)return"undefined"!=typeof navigator&&null!=navigator&&null!=navigator.userAgent&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor);if("WEBGL_CPU_FORWARD"===t)return!0;if("WEBGL_PACK"===t)return 0!==this.get("WEBGL_VERSION");if("WEBGL_PACK_BATCHNORMALIZATION"===t)return this.get("WEBGL_PACK");if("WEBGL_PACK_CLIP"===t)return this.get("WEBGL_PACK");if("WEBGL_PACK_DEPTHWISECONV"===t)return this.get("WEBGL_PACK");if("WEBGL_PACK_BINARY_OPERATIONS"===t)return this.get("WEBGL_PACK");if("WEBGL_PACK_ARRAY_OPERATIONS"===t)return this.get("WEBGL_PACK");if("WEBGL_PACK_IMAGE_OPERATIONS"===t)return this.get("WEBGL_PACK");if("WEBGL_PACK_REDUCE"===t)return this.get("WEBGL_PACK");if("WEBGL_LAZILY_UNPACK"===t)return this.get("WEBGL_PACK");if("WEBGL_CONV_IM2COL"===t)return this.get("WEBGL_PACK");if("WEBGL_NUM_MB_BEFORE_PAGING"===t)return this.get("PROD")||!this.get("IS_BROWSER")?Number.POSITIVE_INFINITY:window.screen.height*window.screen.width*window.devicePixelRatio*Dt/1024;if("WEBGL_MAX_TEXTURE_SIZE"===t)return function(t){if(null==St){var e=u(t);St=e.getParameter(e.MAX_TEXTURE_SIZE)}return St}(this.get("WEBGL_VERSION"));if("WEBGL_MAX_TEXTURES_IN_SHADER"===t)return function(t){if(null==Ct){var e=u(t);Ct=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Ct)}(this.get("WEBGL_VERSION"));if("IS_TEST"===t)return!1;if("BACKEND"===t)return this.getBestBackendName();if("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"===t){var e=this.get("WEBGL_VERSION");return 0===e?0:function(t){if(0===t)return 0;var e=u(t);return Tt(e,"EXT_disjoint_timer_query_webgl2")&&2===t?2:Tt(e,"EXT_disjoint_timer_query")?1:0}(e)}if("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE"===t)return this.get("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!function(){var t=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4))}();if("HAS_WEBGL"===t)return this.get("WEBGL_VERSION")>0;if("WEBGL_VERSION"===t)return It(2)?2:It(1)?1:0;if("WEBGL_RENDER_FLOAT32_ENABLED"===t)return function(t){if(0===t)return!1;var e=u(t);if(1===t){if(!Tt(e,"OES_texture_float"))return!1}else if(!Tt(e,"EXT_color_buffer_float"))return!1;return Rt(e,t)}(this.get("WEBGL_VERSION"));if("WEBGL_DOWNLOAD_FLOAT_ENABLED"===t)return function(t){if(0===t)return!1;var e=u(t);if(1===t){if(!Tt(e,"OES_texture_float"))return!1;if(!Tt(e,"WEBGL_color_buffer_float"))return!1}else if(!Tt(e,"EXT_color_buffer_float"))return!1;return Rt(e,t)}(this.get("WEBGL_VERSION"));if("WEBGL_FENCE_API_ENABLED"===t)return function(t){return 2===t&&null!=u(t).fenceSync}(this.get("WEBGL_VERSION"));if("WEBGL_SIZE_UPLOAD_UNIFORM"===t)return this.get("WEBGL_RENDER_FLOAT32_ENABLED")?4:0;if("TEST_EPSILON"===t)return 32===this.backend.floatPrecision()?.001:.1;if("EPSILON"===t)return 32===this.backend.floatPrecision()?1e-7:1e-4;if("PROD"===t)return!1;if("TENSORLIKE_CHECK_SHAPE_CONSISTENCY"===t)return!this.get("PROD");if("DEPRECATION_WARNINGS_ENABLED"===t)return!0;throw new Error("Unknown feature "+t+".")},t.prototype.setFeatures=function(t){this.features=Object.assign({},t)},t.prototype.reset=function(){this.features=At(),null!=this.globalEngine&&(this.globalEngine=null)},Object.defineProperty(t.prototype,"backend",{get:function(){return this.engine.backend},enumerable:!0,configurable:!0}),t.prototype.findBackend=function(t){return t in this.registry?this.registry[t].backend:null},t.prototype.registerBackend=function(t,e,n){var r=this;if(void 0===n&&(n=1),t in this.registry)return console.warn(t+" backend was already registered. Reusing existing backend"),!1;try{var i=e();return i.setDataMover({moveData:function(t){return r.engine.moveData(t)}}),this.registry[t]={backend:i,priority:n},!0}catch(e){return console.warn("Registration of backend "+t+" failed"),console.warn(e.stack||e.message),!1}},t.prototype.removeBackend=function(t){if(!(t in this.registry))throw new Error(t+" backend not found in registry");this.registry[t].backend.dispose(),delete this.registry[t]},Object.defineProperty(t.prototype,"engine",{get:function(){return this.initEngine(),this.globalEngine},enumerable:!0,configurable:!0}),t.prototype.initEngine=function(){var t=this;if(null==this.globalEngine){this.backendName=this.get("BACKEND");var e=this.findBackend(this.backendName);this.globalEngine=new Nt(e,!1,function(){return t.get("DEBUG")})}},Object.defineProperty(t.prototype,"global",{get:function(){return Mt()},enumerable:!0,configurable:!0}),t}();function Mt(){if(null==Ot){var t=void 0;if("undefined"!=typeof window)t=window;else if("undefined"!=typeof global)t=global;else{if("undefined"==typeof process)throw new Error("Could not find a global object");t=process}Ot=t}return Ot}function Lt(){Bt.set("PROD",!0)}function Ft(){Bt.set("DEBUG",!0)}function zt(){Bt.set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function Pt(t){Bt.get("DEPRECATION_WARNINGS_ENABLED")&&console.warn(t+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}!function(t){st=t}(Pt);var Bt=function(){var t=Mt();return null==t.ENV&&(t.ENV=new _t(At())),function(t){ot=t}(function(){return t.ENV.engine}),t.ENV}(),Ut=Object.freeze({EPSILON_FLOAT16:1e-4,EPSILON_FLOAT32:1e-7,Environment:_t,enableProdMode:Lt,enableDebugMode:Ft,disableDeprecationWarnings:zt,deprecationWarn:Pt,ENV:Bt});function Wt(t,e){if(d(U(t),function(){return"The f passed in variableGrads(f) must be a function"}),d(null==e||Array.isArray(e)&&e.every(function(t){return t instanceof lt}),function(){return"The varList passed in variableGrads(f, varList) must be an array of variables"}),null==e)for(var n in e=[],Bt.engine.registeredVariables)e.push(Bt.engine.registeredVariables[n]);var r=e.length;d((e=e.filter(function(t){return t.trainable})).length>0,function(){return"variableGrads() expects at least one of the input variables to be trainable, but none of the "+r+" variables is trainable."});var i=Bt.engine.gradients(t,e,null,!0),o=i.value,a=i.grads;d(a.some(function(t){return null!=t}),function(){return"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."}),d(0===o.rank,function(){return"The f passed in variableGrads(f) must return a scalar, but it returned a rank-"+o.rank+" tensor"});var s={};return e.forEach(function(t,e){null!=a[e]&&(s[t.name]=a[e])}),{value:o,grads:s}}function Vt(t){return Bt.engine.customGrad(t)}function jt(t){if(t.filter(function(t){return null==t}).length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that\n    the f you passed encloses all operations that lead from x to y.")}var qt=_t.tidy,Gt=_t.keep,Ht=_t.dispose,Kt=_t.time,$t=_t.profile;function Xt(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];Bt.get("IS_TEST")||console.warn.apply(console,t)}function Yt(t,e,n,r){void 0===r&&(r=!0);var i=[];if(r)(i=i.concat(e.slice(0))).push(t[0]/n),i=i.concat(t.slice(1));else{i=i.concat(t[0]);for(var o=e.length,a=0;a<o;++a)i=i.concat([t[a+1]/e[a],e[a]]);i=i.concat(t.slice(o+1))}return i}function Jt(t,e,n){void 0===n&&(n=!0);var r=[];if(n){r.push(e);for(var i=e+1;i<t;++i)i<=2*e?(r.push(i),r.push(i-(e+1))):r.push(i)}else{var o=[],a=[];for(i=1;i<t;++i)i>=2*e+1||i%2==1?a.push(i):o.push(i);r.push.apply(r,o),r.push(0),r.push.apply(r,a)}return r}function Zt(t,e,n,r){void 0===r&&(r=!0);var i=[];r?i.push(t[0]/n):i.push(t[0]*n);for(var o=1;o<t.length;++o)o<=e.length?r?i.push(e[o-1]*t[o]):i.push(t[o]/e[o-1]):i.push(t[o]);return i}function Qt(t,e){for(var n=[0],r=0;r<e;++r)n.push(t[r][0]);return n}function te(t,e,n){for(var r=t.slice(0,1),i=0;i<n;++i)r.push(t[i+1]-e[i][0]-e[i][1]);return r}function ee(t,e){for(var n=0;n<t.length;++n)if(t[t.length-n-1]!==e-1-n)return!1;return!0}function ne(t,e){for(var n=[],r=t.length,i=0;i<r;i++)-1===e.indexOf(i)&&n.push(t[i]);return[n,e.map(function(e){return t[e]})]}function re(t,e){return function(t,e,n){for(var r=t.length+e.length,i=[],o=0,a=0,s=0;s<r;s++)-1===n.indexOf(s)?i.push(t[o++]):i.push(e[a++]);return i}(t,e.map(function(t){return 1}),e)}function ie(t,e,n){d(ee(e,n),function(){return t+" supports only inner-most axes for now. Got axes "+e+" and rank-"+n+" input."})}function oe(t,e){if(ee(t,e))return null;for(var n=[],r=0;r<e;++r)-1===t.indexOf(r)&&n.push(r);return t.forEach(function(t){return n.push(t)}),n}function ae(t){return t.map(function(t,e){return[e,t]}).sort(function(t,e){return t[1]-e[1]}).map(function(t){return t[0]})}function se(t,e){for(var n=[],r=e-t;r<e;++r)n.push(r);return n}function ue(t,e){for(var n=t[0].slice(),r=1;r<t.length;r++)n[e]+=t[r][e];return n}function le(t,e){if(t.rank<1)throw new Error("tf.gatherND() expects the input to be rank 1 or higher, but the rank was "+t.rank+".");if(e.rank<1)throw new Error("tf.gatherND() expects the indices to be rank 1 or higher, but the rank was "+e.rank+".");if("int32"!==e.dtype)throw new Error("tf.gatherND() expects the indices to be int32 type, but the dtype was "+e.dtype+".");if(e.shape[e.rank-1]>t.rank)throw new Error("index innermost dimension length must be <= tensor rank; saw: "+e.shape[e.rank-1]+" vs. "+t.rank);if(0===t.size)throw new Error("Requested more than 0 entries, but input is empty. Input shape: "+t.shape+".");for(var n=e.shape,r=n[n.length-1],i=1,o=0;o<n.length-1;++o)i*=n[o];var a=t.shape,s=n.slice();s.pop();var u=1;for(o=r;o<t.rank;++o)u*=a[o],s.push(a[o]);var l=V(t.shape).map(function(t){return t/u}).concat([1]).slice(0,r);return[s,i,u,l]}var ce=30;function pe(t){return t<=ce?t:W(t,Math.floor(Math.sqrt(t)))}function he(t,e,n){if(e.rank<1)throw new Error("tf.scatterND() expects the indices to be rank 1 or higher, but the rank was "+e.rank+".");if(t.rank<1)throw new Error("tf.scatterND() expects the updates to be rank 1 or higher, but the rank was "+t.rank+".");if("int32"!==e.dtype)throw new Error("The dtype of 'indices' should be int32, but got dtype: "+e.dtype);if(n.length<1)throw new Error("Output rank must be greater or equal to 1, but got shape: "+n);if(0===n.length){if(0===e.size)throw new Error("Indices specified for empty output. indices shape: "+e.shape);if(0===t.size)throw new Error("Updates specified for empty output. updates shape: "+t.shape)}!function(t,e,n){var r=e.rank>1?e.shape[e.rank-1]:1,i=e.rank>1?e.rank-1:1,o="Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: "+n.shape+", indices.shape: "+e.shape+", shape: "+t+", sliceDim: "+r+", and batchDim: "+i+".";if(n.rank<i)throw new Error(o+" update.rank < "+i+". ");if(t.length<r+(n.rank-i))throw new Error(o+" Output shape length < "+(r+(n.rank-i)));if(n.rank!==i+t.length-r)throw new Error(o+" update.rank != "+(i+t.length-r));for(var a=0;a<i;++a)if(n.shape[a]!==e.shape[a])throw new Error(o+" updates.shape["+a+"] ("+n.shape[a]+") != indices.shape["+a+"] ("+e.shape[a]+").");for(a=0;a<n.rank-i;++a)if(n.shape[a+i]!==t[a+r])throw new Error(o+" updates.shape["+(a+i)+"] ("+n.shape[a+i]+") != shape["+(a+i)+"] ("+t[a+i]+")")}(n,e,t)}function fe(t,e,n){for(var r=e.rank>1?e.shape[e.rank-1]:1,i=n.length,o=1,a=r;a<i;++a)o*=n[a];var s=r<1?1:r;return{sliceRank:r,numUpdates:e.size/s,sliceSize:o,strides:V(n.slice(0,r)).concat([1]),outputSize:v(n)}}function de(t,e,n,r,i,o,a,s,u){if(void 0===i&&(i=0),void 0===o&&(o=0),void 0===a&&(a=0),void 0===s&&(s=0),void 0===u&&(u=0),0!==a)throw new Error("ellipsis mask is not yet supported");if(0!==s)throw new Error("new axis mask is not yet supported");for(var l=[],c=[],p=[],h=0;h<t.length;h++)l[h]=me(i,e,r,t,h),c[h]=ge(o,n,r,t,h),u&1<<h&&(c[h]=l[h]+1,p.push(h));var f=new Array(t.length).fill(0);return f=f.map(function(t,e){for(var n=0,i=l[e];!(r[e]>0?i>=c[e]:i<=c[e]);i+=r[e])n+=1;return n}),[l,f,p]}function me(t,e,n,r,i){var o=e[i];t&1<<i&&(o=n[i]>0?Number.MIN_SAFE_INTEGER:Number.MAX_SAFE_INTEGER);var a=r[i];return o<0&&(o+=a),c(0,o,a-1)}function ge(t,e,n,r,i){var o=e[i];t&1<<i&&(o=n[i]>0?Number.MAX_SAFE_INTEGER:Number.MIN_SAFE_INTEGER);var a=r[i];return o<0&&(o+=a),n[i]>0?c(0,o,a):c(-1,o,a-1)}function ye(t,e,n){for(var r=n.length,i=0;i<n.length;i++)if(n[i]>1){r=i;break}for(i=r+1;i<n.length;i++)if(e[i]>0||n[i]!==t[i])return!1;return!0}function ve(t,e){for(var n=t.length>0?t[t.length-1]:1,r=0;r<t.length-1;r++)n+=t[r]*e[r];return n}function be(t){var e=t;if(_(t))return[t.length];if(!Array.isArray(t))return[];for(var n=[];Array.isArray(e)||_(e);)n.push(e.length),e=e[0];return Array.isArray(t)&&Bt.get("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&function t(e,n,r){if(r=r||[],Array.isArray(e)||_(e)){d(n.length>0,function(){return"Element arr["+r.join("][")+"] should be a primitive, but is an array of "+e.length+" elements"}),d(e.length===n[0],function(){return"Element arr["+r.join("][")+"] should have "+n[0]+" elements, but has "+e.length+" elements"});for(var i=n.slice(1),o=0;o<e.length;++o)t(e[o],i,r.concat(o))}else d(0===n.length,function(){return"Element arr["+r.join("][")+"] is a primitive, but should be an array/TypedArray of "+n[0]+" elements"})}(t,n,[]),n}function we(t,e,n,r){if(null!=t&&("numeric"!==t&&t!==e||"numeric"===t&&"string"===e))throw new Error("Argument '"+n+"' passed to '"+r+"' must be "+t+" tensor, but got "+e+" tensor")}function xe(t,e,n,r){if(void 0===r&&(r="numeric"),t instanceof ut)return we(r,t.dtype,e,n),t;var i=B(t);if("string"!==i&&["bool","int32","float32"].indexOf(r)>=0&&(i=r),we(r,i,e,n),!_(t)&&!Array.isArray(t)&&"number"!=typeof t&&"boolean"!=typeof t&&"string"!=typeof t)throw new Error("Argument '"+e+"' passed to '"+n+"' must be a Tensor or TensorLike, but got '"+t.constructor.name+"'");var o=be(t);_(t)||Array.isArray(t)||(t=[t]);var a="string"!==i?j(t,i,Bt.get("DEBUG")):y(t);return ut.make(o,{values:a},i)}function Ne(t,e,n){if(!Array.isArray(t))throw new Error("Argument "+e+" passed to "+n+" must be a `Tensor[]` or `TensorLike[]`");return t.map(function(t,r){return xe(t,e+"["+r+"]",n)})}function Se(t){var e=Object.keys(t);if(1!==e.length)throw new Error("Please provide an object with a single key (operation name) mapping to a function. Got an object with "+e.length+" keys.");var n=e[0],r=t[n];n.endsWith("_")&&(n=n.substring(0,n.length-1));var i=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];Bt.engine.startScope(n);try{var i=r.apply(void 0,t);return i instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),Bt.engine.endScope(i),i}catch(t){throw Bt.engine.endScope(null),t}};return Object.defineProperty(i,"name",{value:n,configurable:!0}),i}var Ce=Se({softmax_:function(t,e){void 0===e&&(e=-1);var n=xe(t,"logits","softmax");if(-1===e&&(e=n.rank-1),e!==n.rank-1)throw Error("Softmax along a non-last dimension is not yet supported. Logits was rank "+n.rank+" and dim was "+e);return Vt(function(t){var n=t.logSumExp([e],!0),r=t.toFloat().sub(n).exp();return{value:r,gradFunc:function(t){var n=t.mul(r);return n.sub(n.sum([e],!0).mul(r))}}})(n)}}),Ee=Se({logSoftmax_:function(t,e){void 0===e&&(e=-1);var n=xe(t,"logits","logSoftmax");if(-1===e&&(e=n.rank-1),e!==n.rank-1)throw Error("Log Softmax along a non-last dimension is not yet supported. Logits was rank "+n.rank+" and axis was "+e);return Vt(function(t){var n=t.max(e,!0),r=t.sub(n),i=r.toFloat().sub(r.exp().sum(e,!0).log());return{value:i,gradFunc:function(t){var n=i.exp();return t.sub(t.sum(e,!0).mul(n))}}})(n)}});var Ie=Se({complex_:function(t,e){var n=xe(t,"real","complex"),r=xe(e,"imag","complex");return m(n.shape,r.shape,"real and imag shapes, "+n.shape+" and "+r.shape+", must match in call to tf.complex()."),Bt.engine.runKernel(function(t){return t.complex(n,r)},{$real:n,$imag:r})}}),ke=Se({real_:function(t){var e=xe(t,"input","real");return Bt.engine.runKernel(function(t){return t.real(e)},{$input:e})}}),Ae=Se({imag_:function(t){var e=xe(t,"input","imag");return Bt.engine.runKernel(function(t){return t.imag(e)},{$input:e})}});function Te(t,e,n){if(null==n&&(n=B(t)),"complex64"===n)throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!_(t)&&!Array.isArray(t)&&"number"!=typeof t&&"boolean"!=typeof t&&"string"!=typeof t)throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");var r=be(t);if(null!=e){$(e);var i=v(e),o=v(r);d(i===o,function(){return"Based on the provided shape, ["+e+"], the tensor should have "+i+" values but has "+o});for(var a=0;a<r.length;++a){var s=r[a],u=a!==r.length-1||s!==v(e.slice(a));d(r[a]===e[a]||!u,function(){return"Error creating a new Tensor. Inferred shape ("+r+") does not match the provided shape ("+e+"). "})}}return _(t)||Array.isArray(t)||(t=[t]),e=e||r,t="string"!==n?j(t,n,Bt.get("DEBUG")):y(t),ut.make(e,{values:t},n)}function Re(t,e){if((_(t)||Array.isArray(t))&&"complex64"!==e)throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");return Te(t,[],e)}function De(t,e){g(t);var n=be(t);if(1!==n.length)throw new Error("tensor1d() requires values to be a flat/TypedArray");return Te(t,n,e)}function Oe(t,e,n){if(g(t),null!=e&&2!==e.length)throw new Error("tensor2d() requires shape to have two numbers");var r=be(t);if(2!==r.length&&1!==r.length)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(1===r.length&&null==e)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return Te(t,e=e||r,n)}function _e(t,e,n){if(g(t),null!=e&&3!==e.length)throw new Error("tensor3d() requires shape to have three numbers");var r=be(t);if(3!==r.length&&1!==r.length)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(1===r.length&&null==e)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return Te(t,e=e||r,n)}function Me(t,e,n){if(g(t),null!=e&&4!==e.length)throw new Error("tensor4d() requires shape to have four numbers");var r=be(t);if(4!==r.length&&1!==r.length)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(1===r.length&&null==e)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return Te(t,e=e||r,n)}function Le(t,e,n){if(g(t),null!=e&&5!==e.length)throw new Error("tensor5d() requires shape to have five numbers");var r=be(t);if(5!==r.length&&1!==r.length)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(1===r.length&&null==e)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return Te(t,e=e||r,n)}function Fe(t,e,n){if(g(t),null!=e&&6!==e.length)throw new Error("tensor6d() requires shape to have six numbers");var r=be(t);if(6!==r.length&&1!==r.length)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(1===r.length&&null==e)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return Te(t,e=e||r,n)}function ze(t,e){if(void 0===e&&(e="float32"),"complex64"===e){var n=ze(t,"float32"),r=ze(t,"float32");return Ie(n,r)}var i=G(v(t),e);return ut.make(t,{values:i},e)}function Pe(t,e){if(void 0===e&&(e="float32"),"complex64"===e){var n=Pe(t,"float32"),r=Pe(t,"float32");return Ie(n,r)}var i=H(v(t),e);return ut.make(t,{values:i},e)}function Be(t,e,n){return Bt.engine.runKernel(function(r){return r.fill(t,e,n)},{})}function Ue(t,e,n){if(0===n)throw new Error("Cannot request zero samples");var r=(e-t)/(n-1),i=H(n,"float32");i[0]=t;for(var o=1;o<i.length;o++)i[o]=i[o-1]+r;return De(i,"float32")}function We(t,e,n,r){if(void 0===n&&(n=1),void 0===r&&(r="float32"),0===n)throw new Error("Cannot have a step of zero");if(t===e||t<e&&n<0||e<t&&n>1)return Pe([0],r);var i=H(Math.abs(Math.ceil((e-t)/n)),r);e<t&&1===n&&(n=-1),i[0]=t;for(var o=1;o<i.length;o++)i[o]=i[o-1]+n;return De(i,r)}var Ve=Se({onesLike_:function(t){var e=xe(t,"x","onesLike");return Bt.engine.runKernel(function(t){return t.onesLike(e)},{$x:e},null)}}),je=Se({zerosLike_:function(t){var e=xe(t,"x","zerosLike");return Bt.engine.runKernel(function(t){return t.zerosLike(e)},{$x:e},null)}}),qe=function(){function t(t){this.dataMover=t,this.data=new WeakMap}return t.prototype.get=function(t){return this.data.has(t)||this.dataMover.moveData(t),this.data.get(t)},t.prototype.set=function(t,e){this.data.set(t,e)},t.prototype.has=function(t){return this.data.has(t)},t.prototype.delete=function(t){return this.data.delete(t)},t}(),Ge=function(){function t(){}return t.prototype.time=function(t){throw new Error("Not yet implemented.")},t.prototype.read=function(t){throw new Error("Not yet implemented.")},t.prototype.readSync=function(t){throw new Error("Not yet implemented.")},t.prototype.disposeData=function(t){throw new Error("Not yet implemented.")},t.prototype.write=function(t,e){throw new Error("Not yet implemented.")},t.prototype.fromPixels=function(t,e){throw new Error("Not yet implemented.")},t.prototype.register=function(t,e,n){throw new Error("Not yet implemented.")},t.prototype.memory=function(){throw new Error("Not yet implemented.")},t.prototype.floatPrecision=function(){throw new Error("Not yet implemented")},t.prototype.batchMatMul=function(t,e,n,r){throw new Error("Not yet implemented")},t.prototype.fusedBatchMatMul=function(t,e,n,r,i,o){throw new Error("Not yet implemented")},t.prototype.slice=function(t,e,n){throw new Error("Not yet implemented")},t.prototype.stridedSlice=function(t,e,n,r,i,o,a,s,u){throw new Error("Not yet implemented")},t.prototype.unstack=function(t,e){throw new Error("Not yet implemented")},t.prototype.reverse=function(t,e){throw new Error("Not yet implemented")},t.prototype.concat=function(t,e){throw new Error("Not yet implemented")},t.prototype.neg=function(t){throw new Error("Not yet implemented")},t.prototype.add=function(t,e){throw new Error("Not yet implemented")},t.prototype.addN=function(t){throw new Error("Not yet implemented")},t.prototype.subtract=function(t,e){throw new Error("Not yet implemented")},t.prototype.multiply=function(t,e){throw new Error("Not yet implemented")},t.prototype.realDivide=function(t,e){throw new Error("Not yet implemented")},t.prototype.floorDiv=function(t,e){throw new Error("Not yet implemented")},t.prototype.sum=function(t,e){throw new Error("Not yet implemented")},t.prototype.prod=function(t,e){throw new Error("Not yet implemented")},t.prototype.unsortedSegmentSum=function(t,e,n){throw new Error("Not yet implemented")},t.prototype.argMin=function(t,e){throw new Error("Not yet implemented")},t.prototype.argMax=function(t,e){throw new Error("Not yet implemented")},t.prototype.equal=function(t,e){throw new Error("Not yet implemented")},t.prototype.notEqual=function(t,e){throw new Error("Not yet implemented")},t.prototype.less=function(t,e){throw new Error("Not yet implemented")},t.prototype.lessEqual=function(t,e){throw new Error("Not yet implemented")},t.prototype.greater=function(t,e){throw new Error("Not yet implemented")},t.prototype.greaterEqual=function(t,e){throw new Error("Not yet implemented")},t.prototype.logicalNot=function(t){throw new Error("Not yet implemented")},t.prototype.logicalAnd=function(t,e){throw new Error("Not yet implemented")},t.prototype.logicalOr=function(t,e){throw new Error("Not yet implemented")},t.prototype.where=function(t){throw new Error("Not yet implemented")},t.prototype.select=function(t,e,n){throw new Error("Not yet implemented")},t.prototype.topk=function(t,e,n){throw new Error("Not yet implemented")},t.prototype.min=function(t,e){throw new Error("Not yet implemented")},t.prototype.minimum=function(t,e){throw new Error("Not yet implemented")},t.prototype.mod=function(t,e){throw new Error("Not yet implemented")},t.prototype.max=function(t,e){throw new Error("Not yet implemented")},t.prototype.maximum=function(t,e){throw new Error("Not yet implemented")},t.prototype.all=function(t,e){throw new Error("Not yet implemented")},t.prototype.any=function(t,e){throw new Error("Not yet implemented")},t.prototype.squaredDifference=function(t,e){throw new Error("Not yet implemented")},t.prototype.ceil=function(t){throw new Error("Not yet implemented")},t.prototype.floor=function(t){throw new Error("Not yet implemented")},t.prototype.round=function(t){throw new Error("Not yet implemented")},t.prototype.sign=function(t){throw new Error("Not yet implemented")},t.prototype.pow=function(t,e){throw new Error("Not yet implemented")},t.prototype.exp=function(t){throw new Error("Not yet implemented")},t.prototype.expm1=function(t){throw new Error("Not yet implemented")},t.prototype.log=function(t){throw new Error("Not yet implemented")},t.prototype.log1p=function(t){throw new Error("Not yet implemented")},t.prototype.sqrt=function(t){throw new Error("Not yet implemented")},t.prototype.rsqrt=function(t){throw new Error("Not yet implemented")},t.prototype.square=function(t){throw new Error("Not yet implemented")},t.prototype.reciprocal=function(t){throw new Error("Not yet implemented")},t.prototype.relu=function(t){throw new Error("Not yet implemented")},t.prototype.prelu=function(t,e){throw new Error("Not yet implemented")},t.prototype.elu=function(t){throw new Error("Not yet implemented")},t.prototype.eluDer=function(t,e){throw new Error("Not yet implemented")},t.prototype.selu=function(t){throw new Error("Not yet implemented")},t.prototype.int=function(t){throw new Error("Not yet implemented")},t.prototype.clip=function(t,e,n){throw new Error("Not yet implemented")},t.prototype.abs=function(t){throw new Error("Not yet implemented")},t.prototype.complexAbs=function(t){throw new Error("Not yet implemented")},t.prototype.sigmoid=function(t){throw new Error("Not yet implemented")},t.prototype.softplus=function(t){throw new Error("Not yet implemented")},t.prototype.sin=function(t){throw new Error("Not yet implemented")},t.prototype.cos=function(t){throw new Error("Not yet implemented")},t.prototype.tan=function(t){throw new Error("Not yet implemented")},t.prototype.asin=function(t){throw new Error("Not yet implemented")},t.prototype.acos=function(t){throw new Error("Not yet implemented")},t.prototype.atan=function(t){throw new Error("Not yet implemented")},t.prototype.atan2=function(t,e){throw new Error("Not yet implemented")},t.prototype.sinh=function(t){throw new Error("Not yet implemented")},t.prototype.cosh=function(t){throw new Error("Not yet implemented")},t.prototype.tanh=function(t){throw new Error("Not yet implemented")},t.prototype.asinh=function(t){throw new Error("Not yet implemented")},t.prototype.acosh=function(t){throw new Error("Not yet implemented")},t.prototype.atanh=function(t){throw new Error("Not yet implemented")},t.prototype.erf=function(t){throw new Error("Not yet implemented")},t.prototype.step=function(t,e){throw new Error("Not yet implemented")},t.prototype.conv2d=function(t,e,n){throw new Error("Not yet implemented")},t.prototype.conv2dDerInput=function(t,e,n){throw new Error("Not yet implemented")},t.prototype.conv2dDerFilter=function(t,e,n){throw new Error("Not yet implemented")},t.prototype.depthwiseConv2D=function(t,e,n){throw new Error("Not yet implemented")},t.prototype.depthwiseConv2DDerInput=function(t,e,n){throw new Error("Not yet implemented")},t.prototype.depthwiseConv2DDerFilter=function(t,e,n){throw new Error("Not yet implemented")},t.prototype.conv3d=function(t,e,n){throw new Error("Not yet implemented")},t.prototype.conv3dDerInput=function(t,e,n){throw new Error("Not yet implemented")},t.prototype.conv3dDerFilter=function(t,e,n){throw new Error("Not yet implemented")},t.prototype.maxPool=function(t,e){throw new Error("Not yet implemented")},t.prototype.maxPoolBackprop=function(t,e,n,r){throw new Error("Not yet implemented")},t.prototype.avgPool=function(t,e){throw new Error("Not yet implemented")},t.prototype.avgPoolBackprop=function(t,e,n){throw new Error("Not yet implemented")},t.prototype.reshape=function(t,e){throw new Error("Not yet implemented")},t.prototype.cast=function(t,e){throw new Error("Not yet implemented")},t.prototype.tile=function(t,e){throw new Error("Not yet implemented")},t.prototype.pad=function(t,e,n){throw new Error("Not yet implemented")},t.prototype.transpose=function(t,e){throw new Error("Not yet implemented")},t.prototype.gather=function(t,e,n){throw new Error("Not yet implemented")},t.prototype.gatherND=function(t,e){throw new Error("Not yet implemented")},t.prototype.scatterND=function(t,e,n){throw new Error("Not yet implemented")},t.prototype.batchToSpaceND=function(t,e,n){throw new Error("Not yet implemented")},t.prototype.spaceToBatchND=function(t,e,n){throw new Error("Not yet implemented")},t.prototype.resizeBilinear=function(t,e,n,r){throw new Error("Not yet implemented")},t.prototype.resizeBilinearBackprop=function(t,e,n){throw new Error("Not yet implemented")},t.prototype.resizeNearestNeighbor=function(t,e,n,r){throw new Error("Not yet implemented")},t.prototype.resizeNearestNeighborBackprop=function(t,e,n){throw new Error("Not yet implemented")},t.prototype.batchNormalization=function(t,e,n,r,i,o){throw new Error("Not yet implemented")},t.prototype.localResponseNormalization4D=function(t,e,n,r,i){throw new Error("Not yet implemented")},t.prototype.LRNGrad=function(t,e,n,r,i,o,a){throw new Error("Not yet implemented")},t.prototype.multinomial=function(t,e,n,r){throw new Error("Not yet implemented")},t.prototype.oneHot=function(t,e,n,r){throw new Error("Not yet implemented")},t.prototype.cumsum=function(t,e,n,r){throw new Error("Not yet implemented")},t.prototype.nonMaxSuppression=function(t,e,n,r,i){throw new Error("Not yet implemented")},t.prototype.fft=function(t){throw new Error("Not yet implemented")},t.prototype.ifft=function(t){throw new Error("Not yet implemented")},t.prototype.complex=function(t,e){throw new Error("Not yet implemented")},t.prototype.real=function(t){throw new Error("Not yet implemented")},t.prototype.imag=function(t){throw new Error("Not yet implemented")},t.prototype.cropAndResize=function(t,e,n,r,i,o){throw new Error("Not yet implemented")},t.prototype.depthToSpace=function(t,e,n){throw new Error("Not yet implemented")},t.prototype.split=function(t,e,n){throw new Error("Not yet implemented")},t.prototype.sparseToDense=function(t,e,n,r){throw new Error("Not yet implemented")},t.prototype.fill=function(t,e,n){throw new Error("Not yet implemented.")},t.prototype.onesLike=function(t){throw new Error("Not yet implemented")},t.prototype.zerosLike=function(t){throw new Error("Not yet implemented")},t.prototype.setDataMover=function(t){throw new Error("Not yet implemented")},t.prototype.dispose=function(){throw new Error("Not yet implemented")},t}();function He(t,e,n){if("complex64"===e){if("complex64"===t.dtype)return t.clone();var r=Pe(t.shape),i=t.toFloat(),o=n.complex(i,r);return r.dispose(),i.dispose(),o}if(!O(t.dtype,e))return ut.make(t.shape,{dataId:t.dataId},e);if("complex64"===t.dtype){var a=n.real(t);return o=a.cast(e),a.dispose(),o}if("int32"===e)return n.int(t);if("bool"===e){var s=Re(0,t.dtype);return o=n.notEqual(t,s),s.dispose(),o}throw new Error("Error in Cast: unknown dtype argument ("+e+")")}function Ke(t,e){return ut.make(e,{dataId:t.dataId},t.dtype)}function $e(t,e){if(t.length!==e.length)throw new Error("Cannot merge real and imag arrays of different lengths. real:"+t.length+", imag: "+e.length+".");for(var n=new Float32Array(2*t.length),r=0;r<n.length;r+=2)n[r]=t[r/2],n[r+1]=e[r/2];return n}function Xe(t,e){return{real:t[2*e],imag:t[2*e+1]}}function Ye(t,e,n,r){t[2*r]=e,t[2*r+1]=n}function Je(t,e,n){var r=(n?2:-2)*Math.PI*(t/e);return{real:Math.cos(r),imag:Math.sin(r)}}function Ze(t,e,n,r,i){for(var o=Array.from(e).map(function(t,e){return{score:t,boxIndex:e}}).filter(function(t){return t.score>i}).sort(function(t,e){return e.score-t.score}),a=[],s=0;s<o.length;s++){var u=o[s],l=u.score,c=u.boxIndex;if(l<i)break;for(var p=!1,h=a.length-1;h>=0;--h)if(Qe(t,c,a[h])>=r){p=!0;break}if(!p&&(a.push(c),a.length>=n))break}return De(a,"int32")}function Qe(t,e,n){var r=t.subarray(4*e,4*e+4),i=t.subarray(4*n,4*n+4),o=Math.min(r[0],r[2]),a=Math.min(r[1],r[3]),s=Math.max(r[0],r[2]),u=Math.max(r[1],r[3]),l=Math.min(i[0],i[2]),c=Math.min(i[1],i[3]),p=Math.max(i[0],i[2]),h=Math.max(i[1],i[3]),f=(s-o)*(u-a),d=(p-l)*(h-c);if(f<=0||d<=0)return 0;var m=Math.max(o,l),g=Math.max(a,c),y=Math.min(s,p),v=Math.min(u,h),b=Math.max(y-m,0)*Math.max(v-g,0);return b/(f+d-b)}function tn(t,e,n){var r=new Array(t.rank).fill(0),i=t.shape.slice();return e.map(function(e){i[n]=e;var o=t.slice(r,i);return r[n]+=e,o})}function en(t,e,n,r,i){for(var o=e[e.length-1],a=[t.length/o,o],s=a[0],u=a[1],l=A(n,s*r),c=A("int32",s*r),p=0;p<s;p++){for(var h=p*u,f=t.subarray(h,h+u),d=[],m=0;m<f.length;m++)d.push({value:f[m],index:m});d.sort(function(t,e){return e.value-t.value});var g=p*r,y=l.subarray(g,g+r),v=c.subarray(g,g+r);for(m=0;m<r;m++)y[m]=d[m].value,v[m]=d[m].index}var b=e.slice();return b[b.length-1]=r,[Te(l,b,n),Te(c,b,"int32")]}var nn=function(t,e,n){this.variableNames=["A"];var r=t.windowSize,i=t.batchSize,o=t.inSize,a=Math.ceil(o/r);n||this.variableNames.push("bestIndicesA"),this.outputShape=[i,a];var s="max"===e?">":"<",u=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode="\n      void main() {\n        ivec2 coords = getOutputCoords();\n        int batch = coords[0];\n        int outIdx = coords[1];\n        int inOffset = outIdx * "+r+";\n\n        int bestIndex = inOffset;\n        float bestValue = getA(batch, bestIndex);\n\n        for (int i = 0; i < "+r+"; i++) {\n          int inIdx = "+u+";\n          float candidate = getA(batch, inIdx);\n          if (candidate "+s+" bestValue) {\n            bestValue = candidate;\n            bestIndex = inIdx;\n          }\n        }\n        setOutput(float(bestIndex));\n      }\n    "};function rn(t,e){return["x","y","z","w","u","v"].slice(0,e).map(function(e){return t+"."+e})}function on(t,e){return 1===e?[t]:rn(t,e)}function an(t,e){for(var n=t.length,r=[],i=0;i<n;i++){var o=n-1-i,a=t[o]||1;(e[e.length-1-i]||1)>1&&1===a&&r.unshift(o)}return r}function sn(t,e){for(var n=[],r=0;r<e.length;r++){var i=t[t.length-r-1],o=e.length-r-1,a=e[o];(null==i||1===i&&a>1)&&n.unshift(o)}return n}function un(t,e){for(var n=[],r=Math.max(t.length,e.length),i=0;i<r;i++){var o=t[t.length-i-1];null==o&&(o=1);var a=e[e.length-i-1];if(null==a&&(a=1),1===o)n.unshift(a);else if(1===a)n.unshift(o);else{if(o!==a)throw Error("Operands could not be broadcast together with shapes "+t+" and "+e+".");n.unshift(o)}}return n}function ln(){var t,e,n,r,i,o,a,s;return 2===Bt.get("WEBGL_VERSION")?(t="#version 300 es",e="in",n="out",r="in",i="texture",o="outputColor",a="out vec4 outputColor;",s="\n      #define round(value) newRound(value)\n      int newRound(float value) {\n        return int(floor(value + 0.5));\n      }\n\n      ivec4 newRound(vec4 value) {\n        return ivec4(floor(value + vec4(0.5)));\n      }\n    "):(t="",e="attribute",n="varying",r="varying",i="texture2D",o="gl_FragColor",a="",s="\n      int round(float value) {\n        return int(floor(value + 0.5));\n      }\n\n      ivec4 round(vec4 value) {\n        return ivec4(floor(value + vec4(0.5)));\n      }\n    "),{version:t,attribute:e,varyingVs:n,varyingFs:r,texture2D:i,output:o,defineOutput:a,defineRound:s}}function cn(t,e,n){void 0===n&&(n="index");var r=V(e);return r.map(function(e,i){return"int "+t[i]+" = "+n+" / "+e+"; "+(i===r.length-1?"int "+t[i+1]+" = "+n+" - "+t[i]+" * "+e:"index -= "+t[i]+" * "+e)+";"}).join("")}function pn(t){return 1===t.length?""+t[0]:"vec"+t.length+"("+t.join(",")+")"}function hn(t,e,n,r){var i=[];t.forEach(function(t){var e=v(t.shapeInfo.logicalShape);t.shapeInfo.isUniform?i.push("uniform float "+t.name+(e>1?"["+e+"]":"")+";"):(i.push("uniform sampler2D "+t.name+";"),i.push("uniform int offset"+t.name+";"))});var o,a,s=i.join("\n"),u=t.map(function(t){return function(t,e,n){void 0===n&&(n=!1);var r="";r+=n?dn(t):fn(t);var i=t.shapeInfo.logicalShape,o=e.logicalShape;return i.length<=o.length&&(r+=n?function(t,e){var n,r=t.name,i=r.charAt(0).toUpperCase()+r.slice(1),o="get"+i+"AtOutCoords",a=t.shapeInfo.logicalShape.length,s=e.logicalShape.length,u=an(t.shapeInfo.logicalShape,e.logicalShape),l=xn(s),c=s-a,p=["x","y","z","w","u","v"];n=0===a?"":s<2&&u.length>=1?"coords = 0;":u.map(function(t){return"coords."+p[t+c]+" = 0;"}).join("\n");var h="";h=s<2&&a>0?"coords":t.shapeInfo.logicalShape.map(function(t,e){return"coords."+p[e+c]}).join(", ");var f="return outputValue;";if(1===a&&s>1)f="\n      return vec4(outputValue.xy, outputValue.xy);\n    ";else if(0===a&&s>0)f=1===s?"\n        return vec4(outputValue.x, outputValue.x, 0., 0.);\n      ":"\n        return vec4(outputValue.x);\n      ";else if(u.length){var d=a-2,m=a-1;u.indexOf(d)>-1&&u.indexOf(m)>-1?f="return vec4(outputValue.x);":u.indexOf(d)>-1?f="return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);":u.indexOf(m)>-1&&(f="return vec4(outputValue.xx, outputValue.zz);")}return"\n    vec4 "+o+"() {\n      "+l+" coords = getOutputCoords();\n      "+n+"\n      vec4 outputValue = get"+i+"("+h+");\n      "+f+"\n    }\n  "}(t,e):function(t,e){var n=t.name,r=n.charAt(0).toUpperCase()+n.slice(1),i="get"+r+"AtOutCoords",o=e.texShape,a=t.shapeInfo.texShape,s=t.shapeInfo.logicalShape.length,u=e.logicalShape.length;if(!t.shapeInfo.isUniform&&s===u&&null==t.shapeInfo.flatOffset&&b(a,o))return"\n      float "+i+"() {\n        return sampleTexture("+n+", resultUV);\n      }\n    ";var l=xn(u),c=an(t.shapeInfo.logicalShape,e.logicalShape),p=u-s,h=["x","y","z","w","u","v"];return"\n    float "+i+"() {\n      "+l+" coords = getOutputCoords();\n      "+(0===s?"":u<2&&c.length>=1?"coords = 0;":c.map(function(t){return"coords."+h[t+p]+" = 0;"}).join("\n"))+"\n      return get"+r+"("+(u<2&&s>0?"coords":t.shapeInfo.logicalShape.map(function(t,e){return"coords."+h[e+p]}).join(", "))+");\n    }\n  "}(t,e)),r}(t,e,r)}).join("\n"),l=e.texShape,c=ln(),p=function(t){return"\n    float sampleTexture(sampler2D textureSampler, vec2 uv) {\n      return "+t.texture2D+"(textureSampler, uv).r;\n    }\n  "}(c),h=function(t){var e="";return e=Bt.get("PROD")?"\n      bool isNaN(float val) {\n        return false;\n      }\n\n      bool hasNaN(vec4 values) {\n        return false;\n      }\n    ":"\n      bool isNaN(float val) {\n        return (val < 1.0 || 0.0 < val || val == 0.0) ? false : true;\n      }\n\n      bvec4 isNaN(vec4 val) {\n        return bvec4(\n          isNaN(val.x),\n          isNaN(val.y),\n          isNaN(val.z),\n          isNaN(val.w)\n        );\n      }\n\n      bool hasNaN(vec4 values) {\n        return any(bvec4(\n          isNaN(values.x),\n          isNaN(values.y),\n          isNaN(values.z),\n          isNaN(values.w)\n        ));\n      }\n    ",t.version+"\n    precision highp float;\n    precision highp int;\n    precision highp sampler2D;\n    "+t.varyingFs+" vec2 resultUV;\n    "+t.defineOutput+"\n    const vec2 halfCR = vec2(0.5, 0.5);\n\n    struct ivec5\n    {\n      int x;\n      int y;\n      int z;\n      int w;\n      int u;\n    };\n\n    struct ivec6\n    {\n      int x;\n      int y;\n      int z;\n      int w;\n      int u;\n      int v;\n    };\n\n    "+e+"\n\n    float getNaN(vec4 values) {\n      return dot(vec4(1), values);\n    }\n\n    "+t.defineRound+"\n\n    int imod(int x, int y) {\n      return x - y * (x / y);\n    }\n\n    //Based on the work of Dave Hoskins\n    //https://www.shadertoy.com/view/4djSRW\n    #define HASHSCALE1 443.8975\n    float random(float seed){\n      vec2 p = resultUV * seed;\n      vec3 p3  = fract(vec3(p.xyx) * HASHSCALE1);\n      p3 += dot(p3, p3.yzx + 19.19);\n      return fract((p3.x + p3.y) * p3.z);\n    }\n\n    "+mn+"\n    "+gn+"\n    "+yn+"\n  "}(c);return e.isPacked?(o=function(t,e){switch(t.length){case 0:return"\n    int getOutputCoords() {\n      return 0;\n    }\n  ";case 1:return function(t,e){var n=[Math.ceil(e[0]/2),Math.ceil(e[1]/2)];return 1===n[0]?"\n      int getOutputCoords() {\n        return 2 * int(resultUV.x * "+n[1]+".0);\n      }\n    ":1===n[1]?"\n      int getOutputCoords() {\n        return 2 * int(resultUV.y * "+n[0]+".0);\n      }\n    ":"\n    int getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx *\n                             vec2("+n[0]+", "+n[1]+"));\n      return resTexRC.x * "+n[1]+" + resTexRC.y;\n    }\n  "}(0,e);case 2:return function(t,e){var n=[Math.ceil(e[0]/2),Math.ceil(e[1]/2)];if(b(t,e))return"\n      ivec2 getOutputCoords() {\n        return 2 * ivec2(resultUV.yx * vec2("+n[0]+", "+n[1]+"));\n      }\n    ";var r=Math.ceil(t[1]/2);return"\n    ivec2 getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx *\n                             vec2("+n[0]+", "+n[1]+"));\n\n      int index = resTexRC.x * "+n[1]+" + resTexRC.y;\n      int r = 2 * (index / "+r+");\n      int c = imod(index, "+r+") * 2;\n\n      return ivec2(r, c);\n    }\n  "}(t,e);case 3:return function(t,e){var n=[Math.ceil(e[0]/2),Math.ceil(e[1]/2)],r=Math.ceil(t[2]/2),i=r*Math.ceil(t[1]/2);return"\n    ivec3 getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx *\n                             vec2("+n[0]+", "+n[1]+"));\n      int index = resTexRC.x * "+n[1]+" + resTexRC.y;\n\n      int b = index / "+i+";\n      index -= b * "+i+";\n\n      int r = 2 * (index / "+r+");\n      int c = imod(index, "+r+") * 2;\n\n      return ivec3(b, r, c);\n    }\n  "}(t,e);default:return function(t,e){for(var n=[Math.ceil(e[0]/2),Math.ceil(e[1]/2)],r=Math.ceil(t[t.length-1]/2),i=r*Math.ceil(t[t.length-2]/2),o=i,a="",s="b, r, c",u=2;u<t.length-1;u++)a="\n      int b"+u+" = index / "+(o*=t[t.length-u-1])+";\n      index -= b"+u+" * "+o+";\n    "+a,s="b"+u+", "+s;return"\n    ivec"+t.length+" getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx *\n                             vec2("+n[0]+", "+n[1]+"));\n      int index = resTexRC.x * "+n[1]+" + resTexRC.y;\n\n      "+a+"\n\n      int b = index / "+i+";\n      index -= b * "+i+";\n\n      int r = 2 * (index / "+r+");\n      int c = imod(index, "+r+") * 2;\n\n      return ivec"+t.length+"("+s+");\n    }\n  "}(t,e)}}(e.logicalShape,l),a=function(t){return"\n    void setOutput(vec4 val) {\n      "+t.output+" = val;\n    }\n  "}(c)):(o=function(t,e){switch(t.length){case 0:return"\n    int getOutputCoords() {\n      return 0;\n    }\n  ";case 1:return function(t,e){return 1===e[0]?"\n      int getOutputCoords() {\n        return int(resultUV.x * "+e[1]+".0);\n      }\n    ":1===e[1]?"\n      int getOutputCoords() {\n        return int(resultUV.y * "+e[0]+".0);\n      }\n    ":"\n    int getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx *\n                             vec2("+e[0]+", "+e[1]+"));\n      return resTexRC.x * "+e[1]+" + resTexRC.y;\n    }\n  "}(0,e);case 2:return function(t,e){return b(t,e)?"\n      ivec2 getOutputCoords() {\n        return ivec2(resultUV.yx * vec2("+e[0]+", "+e[1]+"));\n      }\n    ":1===t[1]?"\n      ivec2 getOutputCoords() {\n        ivec2 resTexRC = ivec2(resultUV.yx *\n                               vec2("+e[0]+", "+e[1]+"));\n        int index = resTexRC.x * "+e[1]+" + resTexRC.y;\n        return ivec2(index, 0);\n      }\n    ":1===t[0]?"\n      ivec2 getOutputCoords() {\n        ivec2 resTexRC = ivec2(resultUV.yx *\n                               vec2("+e[0]+", "+e[1]+"));\n        int index = resTexRC.x * "+e[1]+" + resTexRC.y;\n        return ivec2(0, index);\n      }\n    ":"\n    ivec2 getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx *\n                             vec2("+e[0]+", "+e[1]+"));\n      int index = resTexRC.x * "+e[1]+" + resTexRC.y;\n      int r = index / "+t[1]+";\n      int c = index - r * "+t[1]+";\n      return ivec2(r, c);\n    }\n  "}(t,e);case 3:return function(t,e){var n=cn(["r","c","d"],t);return"\n    ivec3 getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx *\n                             vec2("+e[0]+", "+e[1]+"));\n      int index = resTexRC.x * "+e[1]+" + resTexRC.y;\n      "+n+"\n      return ivec3(r, c, d);\n    }\n  "}(t,e);case 4:return function(t,e){var n=cn(["r","c","d","d2"],t);return"\n    ivec4 getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx *\n        vec2("+e[0]+", "+e[1]+"));\n      int index = resTexRC.x * "+e[1]+" + resTexRC.y;\n      "+n+"\n      return ivec4(r, c, d, d2);\n    }\n  "}(t,e);case 5:return function(t,e){var n=cn(["r","c","d","d2","d3"],t);return"\n    ivec5 getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx * vec2("+e[0]+",\n                             "+e[1]+"));\n\n      int index = resTexRC.x * "+e[1]+" + resTexRC.y;\n\n      "+n+"\n\n      ivec5 outShape = ivec5(r, c, d, d2, d3);\n      return outShape;\n    }\n  "}(t,e);case 6:return function(t,e){var n=cn(["r","c","d","d2","d3","d4"],t);return"\n    ivec6 getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx *\n        vec2("+e[0]+", "+e[1]+"));\n      int index = resTexRC.x * "+e[1]+" + resTexRC.y;\n\n      "+n+"\n\n      ivec6 result = ivec6(r, c, d, d2, d3, d4);\n      return result;\n    }\n  "}(t,e);default:throw new Error(t.length+"-D output sampling is not yet supported")}}(e.logicalShape,l),a=function(t){return"\n    void setOutput(float val) {\n      "+t.output+" = vec4(val, 0, 0, 0);\n    }\n  "}(c)),r&&(h+=vn),[h,p,a,s,o,u,n].join("\n")}function fn(t){var e=t.shapeInfo.logicalShape;switch(e.length){case 0:return function(t){var e=t.name,n="get"+e.charAt(0).toUpperCase()+e.slice(1);if(t.shapeInfo.isUniform)return"float "+n+"() {return "+e+";}";var r=t.shapeInfo.texShape,i=r[0],o=r[1];if(1===i&&1===o)return"\n      float "+n+"() {\n        return sampleTexture("+e+", halfCR);\n      }\n    ";var a=t.shapeInfo.texShape;return"\n    float "+n+"() {\n      vec2 uv = uvFromFlat("+a[0]+", "+a[1]+", "+bn(e)+");\n      return sampleTexture("+e+", uv);\n    }\n  "}(t);case 1:return function(t){var e=t.name,n="get"+e.charAt(0).toUpperCase()+e.slice(1);if(t.shapeInfo.isUniform)return"\n      float "+n+"(int index) {\n        "+wn(t)+"\n      }\n    ";var r=t.shapeInfo.texShape,i=r[0],o=r[1];if(1===o&&1===i)return"\n      float "+n+"(int index) {\n        return sampleTexture("+e+", halfCR);\n      }\n    ";var a=bn(e);return 1===o?"\n      float "+n+"(int index) {\n        vec2 uv = vec2(0.5, (float(index + "+a+") + 0.5) / "+i+".0);\n        return sampleTexture("+e+", uv);\n      }\n    ":1===i?"\n      float "+n+"(int index) {\n        vec2 uv = vec2((float(index + "+a+") + 0.5) / "+o+".0, 0.5);\n        return sampleTexture("+e+", uv);\n      }\n    ":"\n    float "+n+"(int index) {\n      vec2 uv = uvFromFlat("+i+", "+o+", index + "+a+");\n      return sampleTexture("+e+", uv);\n    }\n  "}(t);case 2:return function(t){var e=t.shapeInfo.logicalShape,n=t.name,r="get"+n.charAt(0).toUpperCase()+n.slice(1),i=t.shapeInfo.texShape;if(null!=i&&b(e,i)){var o=i[0];return"\n    float "+r+"(int row, int col) {\n      vec2 uv = (vec2(col, row) + halfCR) / vec2("+i[1]+".0, "+o+".0);\n      return sampleTexture("+n+", uv);\n    }\n  "}var a=k(e),s=a.newShape,u=a.keptDims,l=s;if(l.length<e.length)return"\n      "+fn(Nn(t,l))+"\n      float "+r+"(int row, int col) {\n        return "+r+"("+Sn(["row","col"],u)+");\n      }\n    ";if(t.shapeInfo.isUniform)return"\n      float "+r+"(int row, int col) {\n        int index = round(dot(vec2(row, col), vec2("+e[1]+", 1)));\n        "+wn(t)+"\n      }\n    ";var c=i[0],p=i[1],h=bn(n);return 1===p?"\n    float "+r+"(int row, int col) {\n      float index = dot(vec3(row, col, "+h+"), vec3("+e[1]+", 1, 1));\n      vec2 uv = vec2(0.5, (index + 0.5) / "+c+".0);\n      return sampleTexture("+n+", uv);\n    }\n  ":1===c?"\n    float "+r+"(int row, int col) {\n      float index = dot(vec3(row, col, "+h+"), vec3("+e[1]+", 1, 1));\n      vec2 uv = vec2((index + 0.5) / "+p+".0, 0.5);\n      return sampleTexture("+n+", uv);\n    }\n  ":"\n  float "+r+"(int row, int col) {\n    // Explicitly use integer operations as dot() only works on floats.\n    int index = row * "+e[1]+" + col + "+h+";\n    vec2 uv = uvFromFlat("+c+", "+p+", index);\n    return sampleTexture("+n+", uv);\n  }\n"}(t);case 3:return function(t){var e=t.shapeInfo.logicalShape,n=t.name,r="get"+n.charAt(0).toUpperCase()+n.slice(1),i=e[1]*e[2],o=e[2],a=k(e),s=a.newShape,u=a.keptDims,l=s;if(l.length<e.length)return"\n        "+fn(Nn(t,l))+"\n        float "+r+"(int row, int col, int depth) {\n          return "+r+"("+Sn(["row","col","depth"],u)+");\n        }\n      ";if(t.shapeInfo.isUniform)return"\n      float "+r+"(int row, int col, int depth) {\n        int index = round(dot(vec3(row, col, depth),\n                          vec3("+i+", "+o+", 1)));\n        "+wn(t)+"\n      }\n    ";var c=t.shapeInfo.texShape,p=c[0],h=c[1],f=t.shapeInfo.flatOffset;return h===i&&null==f?"\n        float "+r+"(int row, int col, int depth) {\n          float texR = float(row);\n          float texC = dot(vec2(col, depth), vec2("+o+", 1));\n          vec2 uv = (vec2(texC, texR) + halfCR) /\n                     vec2("+h+".0, "+p+".0);\n          return sampleTexture("+n+", uv);\n        }\n      ":h===o&&null==f?"\n    float "+r+"(int row, int col, int depth) {\n      float texR = dot(vec2(row, col), vec2("+e[1]+", 1));\n      float texC = float(depth);\n      vec2 uv = (vec2(texC, texR) + halfCR) / vec2("+h+".0, "+p+".0);\n      return sampleTexture("+n+", uv);\n    }\n  ":"\n      float "+r+"(int row, int col, int depth) {\n        // Explicitly use integer operations as dot() only works on floats.\n        int index = row * "+i+" + col * "+o+" + depth + "+bn(n)+";\n        vec2 uv = uvFromFlat("+p+", "+h+", index);\n        return sampleTexture("+n+", uv);\n      }\n  "}(t);case 4:return function(t){var e=t.shapeInfo.logicalShape,n=t.name,r="get"+n.charAt(0).toUpperCase()+n.slice(1),i=e[3],o=e[2]*i,a=e[1]*o,s=k(e),u=s.newShape,l=s.keptDims;if(u.length<e.length)return"\n      "+fn(Nn(t,u))+"\n      float "+r+"(int row, int col, int depth, int depth2) {\n        return "+r+"("+Sn(["row","col","depth","depth2"],l)+");\n      }\n    ";if(t.shapeInfo.isUniform)return"\n      float "+r+"(int row, int col, int depth, int depth2) {\n        int index = round(dot(vec4(row, col, depth, depth2),\n                          vec4("+a+", "+o+", "+i+", 1)));\n        "+wn(t)+"\n      }\n    ";var c=t.shapeInfo.flatOffset,p=t.shapeInfo.texShape,h=p[0],f=p[1];return f===a&&null==c?"\n      float "+r+"(int row, int col, int depth, int depth2) {\n        float texR = float(row);\n        float texC =\n            dot(vec3(col, depth, depth2),\n                vec3("+o+", "+i+", 1));\n        vec2 uv = (vec2(texC, texR) + halfCR) /\n                   vec2("+f+".0, "+h+".0);\n        return sampleTexture("+n+", uv);\n      }\n    ":f===i&&null==c?"\n      float "+r+"(int row, int col, int depth, int depth2) {\n        float texR = dot(vec3(row, col, depth),\n                         vec3("+e[1]*e[2]+", "+e[2]+", 1));\n        float texC = float(depth2);\n        vec2 uv = (vec2(texC, texR) + halfCR) /\n                  vec2("+f+".0, "+h+".0);\n        return sampleTexture("+n+", uv);\n      }\n    ":"\n    float "+r+"(int row, int col, int depth, int depth2) {\n      // Explicitly use integer operations as dot() only works on floats.\n      int index = row * "+a+" + col * "+o+" +\n          depth * "+i+" + depth2;\n      vec2 uv = uvFromFlat("+h+", "+f+", index + "+bn(n)+");\n      return sampleTexture("+n+", uv);\n    }\n  "}(t);case 5:return function(t){var e=t.shapeInfo.logicalShape,n=t.name,r="get"+n.charAt(0).toUpperCase()+n.slice(1),i=e[4],o=e[3]*i,a=e[2]*o,s=e[1]*a,u=k(e),l=u.newShape,c=u.keptDims;if(l.length<e.length)return"\n      "+fn(Nn(t,l))+"\n      float "+r+"(int row, int col, int depth, int depth2, int depth3) {\n        return "+r+"("+Sn(["row","col","depth","depth2","depth3"],c)+");\n      }\n    ";if(t.shapeInfo.isUniform)return"\n      float "+r+"(int row, int col, int depth, int depth2, int depth3) {\n        float index = dot(\n          vec4(row, col, depth, depth2),\n          vec4("+s+", "+a+", "+o+", "+i+")) +\n          depth3;\n        "+wn(t)+"\n      }\n    ";var p=t.shapeInfo.flatOffset,h=t.shapeInfo.texShape,f=h[0],d=h[1];return d===s&&null==p?"\n      float "+r+"(int row, int col, int depth, int depth2, int depth3) {\n        int texR = row;\n        float texC = dot(vec4(col, depth, depth2, depth3),\n                         vec4("+a+", "+o+", "+i+", 1));\n        vec2 uv = (vec2(texC, texR) + halfCR) /\n                   vec2("+d+".0, "+f+".0);\n        return sampleTexture("+n+", uv);\n      }\n    ":d===i&&null==p?"\n      float "+r+"(int row, int col, int depth, int depth2, int depth3) {\n        float texR = dot(\n          vec4(row, col, depth, depth2),\n          vec4("+e[1]*e[2]*e[3]+",\n               "+e[2]*e[3]+", "+e[3]+", 1));\n        int texC = depth3;\n        vec2 uv = (vec2(texC, texR) + halfCR) /\n                  vec2("+d+".0, "+f+".0);\n        return sampleTexture("+n+", uv);\n      }\n    ":"\n    float "+r+"(int row, int col, int depth, int depth2, int depth3) {\n      // Explicitly use integer operations as dot() only works on floats.\n      int index = row * "+s+" + col * "+a+" + depth * "+o+" +\n          depth2 * "+i+" + depth3 + "+bn(n)+";\n      vec2 uv = uvFromFlat("+f+", "+d+", index);\n      return sampleTexture("+n+", uv);\n    }\n  "}(t);case 6:return function(t){var e=t.shapeInfo.logicalShape,n=t.name,r="get"+n.charAt(0).toUpperCase()+n.slice(1),i=k(e),o=i.newShape,a=i.keptDims;if(o.length<e.length)return"\n      "+fn(Nn(t,o))+"\n      float "+r+"(int row, int col, int depth,\n                    int depth2, int depth3, int depth4) {\n        return "+r+"("+Sn(["row","col","depth","depth2","depth3","depth4"],a)+");\n      }\n    ";var s=e[5],u=e[4]*s,l=e[3]*u,c=e[2]*l,p=e[1]*c;if(t.shapeInfo.isUniform)return"\n      float "+r+"(int row, int col, int depth,\n                  int depth2, int depth3, int depth4) {\n        int index = round(dot(\n          vec4(row, col, depth, depth2),\n          vec4("+p+", "+c+", "+l+", "+u+")) +\n          dot(\n            vec2(depth3, depth4),\n            vec2("+s+", 1)));\n        "+wn(t)+"\n      }\n    ";var h=t.shapeInfo.flatOffset,f=t.shapeInfo.texShape,d=f[0],m=f[1];return m===p&&null==h?"\n      float "+r+"(int row, int col, int depth,\n                    int depth2, int depth3, int depth4) {\n        int texR = row;\n        float texC = dot(vec4(col, depth, depth2, depth3),\n          vec4("+c+", "+l+", "+u+", "+s+")) +\n               float(depth4);\n        vec2 uv = (vec2(texC, texR) + halfCR) /\n                   vec2("+m+".0, "+d+".0);\n        return sampleTexture("+n+", uv);\n      }\n    ":m===s&&null==h?"\n      float "+r+"(int row, int col, int depth,\n                    int depth2, int depth3, int depth4) {\n        float texR = dot(vec4(row, col, depth, depth2),\n          vec4("+e[1]*e[2]*e[3]*e[4]+",\n               "+e[2]*e[3]*e[4]+",\n               "+e[3]*e[4]+",\n               "+e[4]+")) + float(depth3);\n        int texC = depth4;\n        vec2 uv = (vec2(texC, texR) + halfCR) /\n                  vec2("+m+".0, "+d+".0);\n        return sampleTexture("+n+", uv);\n      }\n    ":"\n    float "+r+"(int row, int col, int depth,\n                  int depth2, int depth3, int depth4) {\n      // Explicitly use integer operations as dot() only works on floats.\n      int index = row * "+p+" + col * "+c+" + depth * "+l+" +\n          depth2 * "+u+" + depth3 * "+s+" + depth4 + "+bn(n)+";\n      vec2 uv = uvFromFlat("+d+", "+m+", index);\n      return sampleTexture("+n+", uv);\n    }\n  "}(t);default:throw new Error(e.length+"-D input sampling is not yet supported")}}function dn(t){switch(t.shapeInfo.logicalShape.length){case 0:return function(t){var e=t.name;return"\n    vec4 get"+e.charAt(0).toUpperCase()+e.slice(1)+"() {\n      return "+ln().texture2D+"("+e+", halfCR);\n    }\n  "}(t);case 1:return function(t){var e=t.name,n="get"+e.charAt(0).toUpperCase()+e.slice(1),r=t.shapeInfo.texShape,i=[Math.ceil(r[0]/2),Math.ceil(r[1]/2)],o=ln();return"\n    vec4 "+n+"(int index) {\n      vec2 uv = packedUVfrom1D(\n        "+i[0]+", "+i[1]+", index);\n      return "+o.texture2D+"("+e+", uv);\n    }\n  "}(t);case 2:return function(t){var e=t.shapeInfo.logicalShape,n=t.name,r="get"+n.charAt(0).toUpperCase()+n.slice(1),i=t.shapeInfo.texShape,o=i[0],a=i[1],s=ln();if(null!=i&&b(e,i))return"\n      vec4 "+r+"(int row, int col) {\n        vec2 uv = (vec2(col, row) + halfCR) / vec2("+a+".0, "+o+".0);\n\n        return "+s.texture2D+"("+n+", uv);\n      }\n    ";var u=[Math.ceil(i[0]/2),Math.ceil(i[1]/2)];return"\n    vec4 "+r+"(int row, int col) {\n      vec2 uv = packedUVfrom2D("+Math.ceil(e[1]/2)+", "+u[0]+", "+u[1]+", row, col);\n      return "+s.texture2D+"("+n+", uv);\n    }\n  "}(t);case 3:return function(t){var e=t.shapeInfo.logicalShape,n=t.name,r="get"+n.charAt(0).toUpperCase()+n.slice(1),i=t.shapeInfo.texShape,o=[Math.ceil(i[0]/2),Math.ceil(i[1]/2)];if(1===e[0])return"\n        "+dn(Nn(t,e.slice(1)))+"\n        vec4 "+r+"(int b, int row, int col) {\n          return "+r+"("+Sn(["b","row","col"],[1,2])+");\n        }\n      ";var a=o[0],s=o[1],u=Math.ceil(e[2]/2);return"\n    vec4 "+r+"(int b, int row, int col) {\n      vec2 uv = packedUVfrom3D(\n        "+a+", "+s+", "+u*Math.ceil(e[1]/2)+", "+u+", b, row, col);\n      return "+ln().texture2D+"("+n+", uv);\n    }\n  "}(t);default:return function(t){for(var e=t.shapeInfo.logicalShape,n=e.length,r=t.name,i="get"+r.charAt(0).toUpperCase()+r.slice(1),o=t.shapeInfo.texShape,a=[Math.ceil(o[0]/2),Math.ceil(o[1]/2)],s=a[0],u=a[1],l=Math.ceil(e[n-1]/2),c=l*Math.ceil(e[n-2]/2),p="int b, int row, int col",h="b * "+c+" + (row / 2) * "+l+" + (col / 2)",f=2;f<n-1;f++)p="int b"+f+", "+p,h="b"+f+" * "+(c*=e[n-f-1])+" + "+h;return"\n    vec4 "+i+"("+p+") {\n      int index = "+h+";\n      int texR = index / "+u+";\n      int texC = index - texR * "+u+";\n      vec2 uv = (vec2(texC, texR) + halfCR) / vec2("+u+", "+s+");\n      return "+ln().texture2D+"("+r+", uv);\n    }\n  "}(t)}}var mn="\nvec2 uvFromFlat(int texNumR, int texNumC, int index) {\n  int texR = index / texNumC;\n  int texC = index - texR * texNumC;\n  return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\nvec2 packedUVfrom1D(int texNumR, int texNumC, int index) {\n  int texelIndex = index / 2;\n  int texR = texelIndex / texNumC;\n  int texC = texelIndex - texR * texNumC;\n  return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n",gn="\nvec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR,\n  int texNumC, int row, int col) {\n  int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2);\n  int texR = texelIndex / texNumC;\n  int texC = texelIndex - texR * texNumC;\n  return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n",yn="\nvec2 packedUVfrom3D(int texNumR, int texNumC,\n    int texelsInBatch, int texelsInLogicalRow, int b,\n    int row, int col) {\n  int index = b * texelsInBatch + (row / 2) * texelsInLogicalRow + (col / 2);\n  int texR = index / texNumC;\n  int texC = index - texR * texNumC;\n  return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n",vn="\n  float getChannel(vec4 frag, vec2 innerDims) {\n    vec2 modCoord = mod(innerDims, 2.);\n    return modCoord.x == 0. ?\n      (modCoord.y == 0. ? frag.r : frag.g) :\n      (modCoord.y == 0. ? frag.b : frag.a);\n  }\n  float getChannel(vec4 frag, int dim) {\n    float modCoord = mod(float(dim), 2.);\n    return modCoord == 0. ? frag.r : frag.g;\n  }\n";function bn(t){return"offset"+t}function wn(t){var e=t.name,n=v(t.shapeInfo.logicalShape);return 1===n?"return "+e+";":"\n    for (int i = 0; i < "+n+"; i++) {\n      if (i == index) {\n        return "+e+"[i];\n      }\n    }\n  "}function xn(t){if(t<=1)return"int";if(2===t)return"ivec2";if(3===t)return"ivec3";if(4===t)return"ivec4";if(5===t)return"ivec5";if(6===t)return"ivec6";throw Error("GPU for rank "+t+" is not yet supported")}function Nn(t,e){var n=JSON.parse(JSON.stringify(t));return n.shapeInfo.logicalShape=e,n}function Sn(t,e){return e.map(function(e){return t[e]}).join(", ")}var Cn=function(t,e,n,r){this.variableNames=["A"],this.usesPackedTextures=!0,d(t.length>2,function(){return"Packed arg"+(n.charAt(0).toUpperCase()+n.slice(1))+" supports only inputs with rank above 2."});var i=t[t.length-1],o=Math.ceil(i/e);this.outputShape=t.slice(0,-1),o>1&&this.outputShape.push(o),r||this.variableNames.push("bestIndicesA");var a,s,u=this.outputShape,l=u.length,c=xn(l),p=on("coords",l);if(1===o){var h=xn(s=l+1);a="\n        "+h+" sourceLocR = "+h+"("+p.join()+", 0);\n        ++"+p[l-1]+";\n        "+h+" sourceLocG = "+h+"("+p.join()+", 0);\n        ++"+p[l-2]+";\n        "+h+" sourceLocA = "+h+"("+p.join()+", 0);\n        --"+p[l-1]+";\n        "+h+" sourceLocB = "+h+"("+p.join()+", 0);\n        --"+p[l-2]+";"}else s=l,a="\n        "+c+" sourceLocR = coords;\n        ++"+p[l-1]+";\n        "+c+" sourceLocG = coords;\n        ++"+p[l-2]+";\n        "+c+" sourceLocA = coords;\n        --"+p[l-1]+";\n        "+c+" sourceLocB = coords;\n        --"+p[l-2]+";";var f=["x","y","z","w","u","v"].slice(0,s),m="."+f[s-1],g=f.map(function(t){return"int "+t}),y=on("sourceLocR",s-1).concat("inIdx.r"),v=on("sourceLocG",s-1).concat("inIdx.g"),b=on("sourceLocB",s-1).concat("inIdx.b"),w=on("sourceLocA",s-1).concat("inIdx.a"),x="max"===n?"greaterThan":"lessThan",N=r?"":"\n          inIdx = round(vec4(getBestIndicesAChannel("+y.join()+"),\n                             getBestIndicesAChannel("+v.join()+"),\n                             getBestIndicesAChannel("+b.join()+"),\n                             getBestIndicesAChannel("+w.join()+")));",S="vec4(\n            getAChannel("+y.join()+"),\n            hasNextCol ? getAChannel("+v.join()+") : 0.,\n            hasNextRow ? getAChannel("+b.join()+") : 0.,\n            hasNextRow && hasNextCol ? getAChannel("+w.join()+") : 0.)",C=r?"":"\n      float getBestIndicesAChannel("+g.join()+") {\n        return getChannel(getBestIndicesA("+f.join()+"),\n                                          vec2("+f.slice(-2).join()+"));\n      }";this.userCode="\n      float getAChannel("+g.join()+") {\n        return getChannel(getA("+f.join()+"),\n                               vec2("+f.slice(-2).join()+"));\n      }\n      "+C+"\n      void main() {\n        "+c+" coords = getOutputCoords();\n        bool hasNextCol = "+p[l-1]+" < "+(u[l-1]-1)+";\n        bool hasNextRow = "+p[l-2]+" < "+(u[l-2]-1)+";\n        "+a+"\n        ivec4 srcIdx = ivec4(sourceLocR"+m+", sourceLocG"+m+",\n          sourceLocB"+m+", sourceLocA"+m+") * "+e+";\n        ivec4 inIdx = srcIdx;\n        vec4 bestIndex = vec4(inIdx);\n        vec4 bestValue = "+S+";\n\n        for (int i = 0; i < "+e+"; i++) {\n          inIdx = srcIdx;\n          "+N+"\n          vec4 candidate = "+S+";\n          bvec4 nan = isNaN(candidate);\n          bvec4 replace = bvec4(\n            vec4("+x+"(candidate, bestValue)) * (vec4(1.0) - vec4(nan)));\n\n          bestValue = vec4(replace.x  ? candidate.x : bestValue.x,\n                           replace.y  ? candidate.y : bestValue.y,\n                           replace.z  ? candidate.z : bestValue.z,\n                           replace.w  ? candidate.w : bestValue.w);\n          bestIndex = mix(bestIndex, vec4(inIdx), vec4(replace));\n          srcIdx++;\n        }\n        setOutput(bestIndex);\n      }\n    "},En=function(t){this.variableNames=["dy"],this.outputShape=t.inShape;var e=t.filterHeight,n=t.filterWidth,r=t.strideHeight,i=t.strideWidth,o=t.dilationHeight,a=t.dilationWidth,s=t.effectiveFilterHeight,u=t.effectiveFilterWidth,l=s-1-t.padInfo.top,c=u-1-t.padInfo.left,p=1/(e*n);this.userCode="\n      const ivec2 pads = ivec2("+l+", "+c+");\n      const float avgMultiplier = float("+p+");\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int d = coords[3];\n\n        ivec2 dyRCCorner = coords.yz - pads;\n        int dyRCorner = dyRCCorner.x;\n        int dyCCorner = dyRCCorner.y;\n\n        // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n        // ? = to be determined. : = across all values in that axis.\n        float dotProd = 0.0;\n        for (int wR = 0; wR < "+s+";\n            wR += "+o+") {\n          float dyR = float(dyRCorner + wR) / "+r+".0;\n\n          if (dyR < 0.0 || dyR >= "+t.outHeight+".0 || fract(dyR) > 0.0) {\n            continue;\n          }\n          int idyR = int(dyR);\n\n          for (int wC = 0; wC < "+u+";\n            wC+= "+a+") {\n            float dyC = float(dyCCorner + wC) / "+i+".0;\n\n            if (dyC < 0.0 || dyC >= "+t.outWidth+".0 ||\n                fract(dyC) > 0.0) {\n              continue;\n            }\n            int idyC = int(dyC);\n\n            float dyValue = getDy(b, idyR, idyC, d);\n\n            dotProd += dyValue * avgMultiplier;\n          }\n        }\n        setOutput(dotProd);\n      }\n    "},In=function(t,e,n,r,i,o){this.outputShape=[],this.variableNames=["x","mean","variance"],un(t,e),un(t,n);var a="0.0";null!=r&&(un(t,r),this.variableNames.push("offset"),a="getOffsetAtOutCoords()");var s="1.0";null!=i&&(un(t,i),this.variableNames.push("scale"),s="getScaleAtOutCoords()"),this.outputShape=t,this.userCode="\n      void main() {\n        float x = getXAtOutCoords();\n        float mean = getMeanAtOutCoords();\n        float variance = getVarianceAtOutCoords();\n        float offset = "+a+";\n        float scale = "+s+";\n        float inv = scale * inversesqrt(variance + float("+o+"));\n        setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1)));\n      }\n    "},kn=function(t,e,n,r,i,o){this.usesPackedTextures=!0,this.variableNames=["x","mean","variance"],un(t,e),un(t,n);var a="vec4(0.0)";null!=r&&(un(t,r),this.variableNames.push("offset"),a="getOffsetAtOutCoords()");var s="vec4(1.0)";null!=i&&(un(t,i),this.variableNames.push("scale"),s="getScaleAtOutCoords()"),this.outputShape=t,this.userCode="\n      void main() {\n        vec4 offset = "+a+";\n        vec4 scale = "+s+";\n\n        vec4 x = getXAtOutCoords();\n        vec4 mean = getMeanAtOutCoords();\n        vec4 variance = getVarianceAtOutCoords();\n\n        vec4 inv = scale * inversesqrt(variance + vec4("+o+"));\n\n        setOutput((x - mean) * inv + offset);\n      }\n    "},An="return areal * breal - aimag * bimag;",Tn="return areal * bimag + aimag * breal;",Rn=function(t,e,n){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=un(e,n),this.userCode="\n      float binaryOpComplex(\n          float areal, float aimag, float breal, float bimag) {\n        "+t+"\n      }\n\n      void main() {\n        float areal = getARealAtOutCoords();\n        float aimag = getAImagAtOutCoords();\n        float breal = getBRealAtOutCoords();\n        float bimag = getBImagAtOutCoords();\n        setOutput(binaryOpComplex(areal, aimag, breal, bimag));\n      }\n    "},Dn="return a + b;",On="return a - b;",_n="return a * b;",Mn=function(){function t(t,e,n){this.variableNames=["A","B"],this.outputShape=un(e,n),this.userCode="\n      uniform float NAN;\n      float binaryOperation(float a, float b) {\n        "+t+"\n      }\n\n      void main() {\n        float a = getAAtOutCoords();\n        float b = getBAtOutCoords();\n        setOutput(binaryOperation(a, b));\n      }\n    "}return t.prototype.getCustomSetupFunc=function(){var t=this;return function(e,n){null==t.startLoc&&(t.startLoc=e.getUniformLocationNoThrow(n,"NAN"),null==t.startLoc)||e.gl.uniform1f(t.startLoc,NaN)}},t}(),Ln=function(){function t(t,e,n){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.usesPackedTextures=!0,this.outputShape=un(e,n),this.userCode="\n      uniform float NAN;\n      vec4 binaryOperation(vec4 a, vec4 b) {\n        "+t+"\n      }\n\n      void main() {\n        vec4 a = getAAtOutCoords();\n        vec4 b = getBAtOutCoords();\n        setOutput(binaryOperation(a, b));\n      }\n    "}return t.prototype.getCustomSetupFunc=function(){var t=this;return function(e,n){null==t.startLoc&&(t.startLoc=e.getUniformLocationNoThrow(n,"NAN"),null==t.startLoc)||e.gl.uniform1f(t.startLoc,NaN)}},t}(),Fn=function(){function t(t){this.variableNames=["A"],this.outputShape=t,this.userCode="\n      uniform float min;\n      uniform float max;\n\n      void main() {\n        float value = getAAtOutCoords();\n        if (isNaN(value)) {\n          setOutput(value);\n          return;\n        }\n\n        setOutput(clamp(value, min, max));\n      }\n    "}return t.prototype.getCustomSetupFunc=function(t,e){var n=this;return function(r,i){null==n.minLoc&&(n.minLoc=r.getUniformLocationNoThrow(i,"min"),n.maxLoc=r.getUniformLocationNoThrow(i,"max")),r.gl.uniform1f(n.minLoc,t),r.gl.uniform1f(n.maxLoc,e)}},t}(),zn=function(){function t(t){this.variableNames=["A"],this.usesPackedTextures=!0,this.outputShape=t,this.userCode="\n      uniform float min;\n      uniform float max;\n\n      void main() {\n        vec4 value = getAAtOutCoords();\n\n        if (hasNaN(value)) {\n          setOutput(value);\n          return;\n        }\n\n        setOutput(clamp(value, vec4(min), vec4(max)));\n      }\n    "}return t.prototype.getCustomSetupFunc=function(t,e){var n=this;return function(r,i){null==n.minLoc&&(n.minLoc=r.getUniformLocationNoThrow(i,"min"),n.maxLoc=r.getUniformLocationNoThrow(i,"max")),r.gl.uniform1f(n.minLoc,t),r.gl.uniform1f(n.maxLoc,e)}},t}(),Pn=function(t){this.variableNames=["real","imag"],this.outputShape=t,this.userCode="\n      void main() {\n        float re = abs(getRealAtOutCoords());\n        float im = abs(getImagAtOutCoords());\n        float mx = max(re, im);\n\n        // sadly the length function in glsl is not underflow-safe\n        // (at least not on Intel GPUs). So the safe solution is\n        // to ensure underflow-safety in all cases.\n        setOutput(\n          mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx))\n        );\n      }\n    "},Bn=function(t){this.outputShape=[],this.outputShape=ue(t,1),this.variableNames=t.map(function(t,e){return"T"+e});var e=new Array(t.length-1);e[0]=t[0][1];for(var n=1;n<e.length;n++)e[n]=e[n-1]+t[n][1];var r=["if (yC < "+e[0]+") setOutput(getT0(yR, yC));"];for(n=1;n<e.length;n++){var i=e[n-1];r.push("else if (yC < "+e[n]+") setOutput(getT"+n+"(yR, yC-"+i+"));")}var o=e.length,a=e[e.length-1];r.push("else setOutput(getT"+o+"(yR, yC-"+a+"));"),this.userCode="\n      void main() {\n        ivec2 coords = getOutputCoords();\n        int yR = coords.x;\n        int yC = coords.y;\n\n        "+r.join("\n        ")+"\n      }\n    "},Un=function(t,e){this.usesPackedTextures=!0,this.outputShape=[],this.outputShape=ue(t,e);var n=this.outputShape,r=n.length,i=xn(r),o=on("coords",r),a=["x","y","z","w","u","v"].slice(0,r);this.variableNames=t.map(function(t,e){return"T"+e});var s=new Array(t.length-1);s[0]=t[0][e];for(var u=1;u<s.length;u++)s[u]=s[u-1]+t[u][e];var l=a[e],c="vec2("+a.slice(-2).join()+")",p=a.join(),h="if ("+l+" < "+s[0]+")\n          return getChannel(getT0("+p+"), "+c+");";for(u=1;u<s.length;u++){var f=s[u-1];h+="\n        else if ("+l+" < "+s[u]+") {\n          "+l+" -= "+f+";\n          return getChannel(getT"+u+"("+p+"), "+c+");\n        }"}var d=s.length;h+="\n        else {\n          "+l+" -= "+s[s.length-1]+";\n          return getChannel(getT"+d+"("+p+"), "+c+");\n        }",this.userCode="\n      float getValue("+a.map(function(t){return"int "+t})+") {\n        "+h+"\n      }\n\n      void main() {\n        "+i+" coords = getOutputCoords();\n        vec4 result = vec4(getValue("+o+"), 0., 0., 0.);\n        if (++"+o[r-1]+" < "+n[r-1]+") {\n          result.g = getValue("+o+");\n        }\n        if (++"+o[r-2]+" < "+n[r-2]+") {\n          result.a = getValue("+o+");\n        }\n        if ("+o[r-2]+" < "+n[r-2]+" &&\n            --"+o[r-1]+" < "+n[r-1]+") {\n          result.b = getValue("+o+");\n        }\n        setOutput(result);\n      }\n    "},Wn=function(t){this.variableNames=["x","dy"],this.outputShape=t.filterShape;var e=t.strideHeight,n=t.strideWidth,r=t.padInfo.top,i=t.padInfo.left;this.userCode="\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int wR = coords.x;\n        int wC = coords.y;\n        int d1 = coords.z;\n        int d2 = coords.w;\n\n        // Convolve x(?, ?, d1) with dy(:, :, d2) to get dw(wR, wC, d1, d2).\n        // ? = to be determined. : = across all values in that axis.\n        float dotProd = 0.0;\n\n        for (int b = 0; b < "+t.batchSize+"; b++) {\n          for (int yR = 0; yR < "+t.outHeight+"; yR++) {\n            int xR = wR + yR * "+e+" - "+r+";\n\n            if (xR < 0 || xR >= "+t.inHeight+") {\n              continue;\n            }\n\n            for (int yC = 0; yC < "+t.outWidth+"; yC++) {\n              int xC = wC + yC * "+n+" - "+i+";\n\n              if (xC < 0 || xC >= "+t.inWidth+") {\n                continue;\n              }\n\n              float dyValue = getDy(b, yR, yC, d2);\n              float xValue = getX(b, xR, xC, d1);\n              dotProd += (xValue * dyValue);\n            }\n          }\n        }\n        setOutput(dotProd);\n      }\n    "},Vn=function(t){this.variableNames=["dy","W"],this.outputShape=t.inShape;var e=t.filterHeight,n=t.filterWidth,r=t.strideHeight,i=t.strideWidth,o=e-1-t.padInfo.top,a=n-1-t.padInfo.left;this.userCode="\n      const ivec2 pads = ivec2("+o+", "+a+");\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int batch = coords[0];\n        int d1 = coords[3];\n\n        ivec2 dyCorner = coords.yz - pads;\n        int dyRCorner = dyCorner.x;\n        int dyCCorner = dyCorner.y;\n\n        // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1).\n        // ? = to be determined. : = across all values in that axis.\n        float dotProd = 0.0;\n        for (int wR = 0; wR < "+e+"; wR++) {\n          float dyR = float(dyRCorner + wR) / "+r+".0;\n\n          if (dyR < 0.0 || dyR >= "+t.outHeight+".0 || fract(dyR) > 0.0) {\n            continue;\n          }\n          int idyR = int(dyR);\n\n          int wRPerm = "+e+" - 1 - wR;\n\n          for (int wC = 0; wC < "+n+"; wC++) {\n            float dyC = float(dyCCorner + wC) / "+i+".0;\n\n            if (dyC < 0.0 || dyC >= "+t.outWidth+".0 ||\n                fract(dyC) > 0.0) {\n              continue;\n            }\n            int idyC = int(dyC);\n\n            int wCPerm = "+n+" - 1 - wC;\n\n            for (int d2 = 0; d2 < "+t.outChannels+"; d2++) {\n              float xValue = getDy(batch, idyR, idyC, d2);\n              float wValue = getW(wRPerm, wCPerm, d1, d2);\n              dotProd += xValue * wValue;\n            }\n          }\n        }\n        setOutput(dotProd);\n      }\n    "},jn=function(t){this.variableNames=["x","dy"],this.outputShape=t.filterShape;var e=t.strideDepth,n=t.strideHeight,r=t.strideWidth,i=t.padInfo.front,o=t.padInfo.top,a=t.padInfo.left;this.userCode="\n      void main() {\n        ivec5 coords = getOutputCoords();\n        int wF = coords.x;\n        int wR = coords.y;\n        int wC = coords.z;\n        int d1 = coords.w;\n        int d2 = coords.u;\n\n        float dotProd = 0.0;\n\n        for (int b = 0; b < "+t.batchSize+"; b++) {\n          for (int yF = 0; yF < "+t.outDepth+"; yF++) {\n            int xF = wF + yF * "+e+" - "+i+";\n\n            if (xF < 0 || xF >= "+t.inDepth+") {\n              continue;\n            }\n\n            for (int yR = 0; yR < "+t.outHeight+"; yR++) {\n              int xR = wR + yR * "+n+" - "+o+";\n\n              if (xR < 0 || xR >= "+t.inHeight+") {\n                continue;\n              }\n\n              for (int yC = 0; yC < "+t.outWidth+"; yC++) {\n                int xC = wC + yC * "+r+" - "+a+";\n\n                if (xC < 0 || xC >= "+t.inWidth+") {\n                  continue;\n                }\n\n                float dyValue = getDy(b, yF, yR, yC, d2);\n                float xValue = getX(b, xF, xR, xC, d1);\n                dotProd += (xValue * dyValue);\n              }\n            }\n          }\n        }\n        setOutput(dotProd);\n      }\n    "},qn=function(t){this.variableNames=["dy","W"],this.outputShape=t.inShape;var e=t.filterDepth,n=t.filterHeight,r=t.filterWidth,i=t.strideDepth,o=t.strideHeight,a=t.strideWidth,s=e-1-t.padInfo.front,u=n-1-t.padInfo.top,l=r-1-t.padInfo.left;this.userCode="\n      const ivec3 pads = ivec3("+s+", "+u+", "+l+");\n\n      void main() {\n        ivec5 coords = getOutputCoords();\n        int batch = coords.x;\n        int d1 = coords.u;\n\n\n        ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n        int dyFCorner = dyCorner.x;\n        int dyRCorner = dyCorner.y;\n        int dyCCorner = dyCorner.z;\n\n        float dotProd = 0.0;\n        for (int wF = 0; wF < "+e+"; wF++) {\n          float dyF = float(dyFCorner + wF) / "+i+".0;\n\n          if (dyF < 0.0 || dyF >= "+t.outDepth+".0 || fract(dyF) > 0.0) {\n            continue;\n          }\n          int idyF = int(dyF);\n\n          int wFPerm = "+e+" - 1 - wF;\n\n          for (int wR = 0; wR < "+n+"; wR++) {\n            float dyR = float(dyRCorner + wR) / "+o+".0;\n\n            if (dyR < 0.0 || dyR >= "+t.outHeight+".0 ||\n              fract(dyR) > 0.0) {\n              continue;\n            }\n            int idyR = int(dyR);\n\n            int wRPerm = "+n+" - 1 - wR;\n\n            for (int wC = 0; wC < "+r+"; wC++) {\n              float dyC = float(dyCCorner + wC) / "+a+".0;\n\n              if (dyC < 0.0 || dyC >= "+t.outWidth+".0 ||\n                  fract(dyC) > 0.0) {\n                continue;\n              }\n              int idyC = int(dyC);\n\n              int wCPerm = "+r+" - 1 - wC;\n\n              for (int d2 = 0; d2 < "+t.outChannels+"; d2++) {\n                float xValue = getDy(batch, idyF, idyR, idyC, d2);\n                float wValue = getW(wFPerm, wRPerm, wCPerm, d1, d2);\n                dotProd += xValue * wValue;\n              }\n            }\n          }\n        }\n        setOutput(dotProd);\n      }\n    "},Gn=function(t){this.variableNames=["x","dy"],this.outputShape=t.filterShape;var e=t.strideHeight,n=t.strideWidth,r=t.padInfo.top,i=t.padInfo.left,o=t.outChannels/t.inChannels;this.userCode="\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int wR = coords.x;\n        int wC = coords.y;\n        int d1 = coords.z;\n        int dm = coords.w;\n        int d2 = d1 * "+o+" + dm;\n\n        float dotProd = 0.0;\n\n        // TODO: Vec4 over the batch size\n        for (int b = 0; b < "+t.batchSize+"; b++) {\n          for (int yR = 0; yR < "+t.outHeight+"; yR++) {\n            int xR = wR + yR * "+e+" - "+r+";\n\n            if (xR < 0 || xR >= "+t.inHeight+") {\n              continue;\n            }\n\n            for (int yC = 0; yC < "+t.outWidth+"; yC++) {\n              int xC = wC + yC * "+n+" - "+i+";\n\n              if (xC < 0 || xC >= "+t.inWidth+") {\n                continue;\n              }\n\n              float dyValue = getDy(b, yR, yC, d2);\n              float xValue = getX(b, xR, xC, d1);\n              dotProd += (xValue * dyValue);\n            }\n          }\n        }\n        setOutput(dotProd);\n      }\n    "},Hn=function(t){this.variableNames=["dy","W"],this.outputShape=t.inShape;var e=t.filterHeight,n=t.filterWidth,r=t.strideHeight,i=t.strideWidth,o=e-1-t.padInfo.top,a=n-1-t.padInfo.left,s=t.outChannels/t.inChannels;this.userCode="\n      const ivec2 pads = ivec2("+o+", "+a+");\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int batch = coords[0];\n        int d1 = coords[3];\n        ivec2 dyCorner = coords.yz - pads;\n        int dyRCorner = dyCorner.x;\n        int dyCCorner = dyCorner.y;\n\n        float dotProd = 0.0;\n\n        for (int wR = 0; wR < "+e+"; wR++) {\n          float dyR = float(dyRCorner + wR) / "+r+".0;\n\n          if (dyR < 0.0 || dyR >= "+t.outHeight+".0 || fract(dyR) > 0.0) {\n            continue;\n          }\n          int idyR = int(dyR);\n\n          int wRPerm = "+e+" - 1 - wR;\n\n          for (int wC = 0; wC < "+n+"; wC++) {\n            float dyC = float(dyCCorner + wC) / "+i+".0;\n\n            if (dyC < 0.0 || dyC >= "+t.outWidth+".0 ||\n                fract(dyC) > 0.0) {\n              continue;\n            }\n            int idyC = int(dyC);\n\n            int wCPerm = "+n+" - 1 - wC;\n\n            // TODO: Vec4 over the channelMul\n            for (int dm = 0; dm < "+s+"; dm++) {\n              int d2 = d1 * "+s+" + dm;\n              float xValue = getDy(batch, idyR, idyC, d2);\n              float wValue = getW(wRPerm, wCPerm, d1, dm);\n              dotProd += xValue * wValue;\n            }\n          }\n        }\n        setOutput(dotProd);\n      }\n    "},Kn=function(t){this.variableNames=["x","W"],this.outputShape=t.outShape;var e=t.padInfo.top,n=t.padInfo.left,r=t.strideHeight,i=t.strideWidth,o=t.dilationHeight,a=t.dilationWidth,s=t.filterHeight,u=t.filterWidth,l=4*Math.floor(t.inChannels/4),c=t.inChannels%4;this.userCode="\n      const ivec2 strides = ivec2("+r+", "+i+");\n      const ivec2 pads = ivec2("+e+", "+n+");\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int batch = coords[0];\n        int d2 = coords[3];\n\n        ivec2 xRCCorner = coords.yz * strides - pads;\n        int xRCorner = xRCCorner.x;\n        int xCCorner = xRCCorner.y;\n\n        // Convolve x(?, ?, d1) with w(:, :, d1, d2) to get y(yR, yC, d2).\n        // ? = to be determined. : = across all values in that axis.\n        float dotProd = 0.0;\n        for (int wR = 0; wR < "+s+"; wR++) {\n          int xR = xRCorner + wR * "+o+";\n\n          if (xR < 0 || xR >= "+t.inHeight+") {\n            continue;\n          }\n\n          for (int wC = 0; wC < "+u+"; wC++) {\n            int xC = xCCorner + wC * "+a+";\n\n            if (xC < 0 || xC >= "+t.inWidth+") {\n              continue;\n            }\n\n            for (int d1 = 0; d1 < "+l+"; d1 += 4) {\n              vec4 xValues = vec4(\n                getX(batch, xR, xC, d1),\n                getX(batch, xR, xC, d1 + 1),\n                getX(batch, xR, xC, d1 + 2),\n                getX(batch, xR, xC, d1 + 3)\n              );\n              vec4 wValues = vec4(\n                getW(wR, wC, d1, d2),\n                getW(wR, wC, d1 + 1, d2),\n                getW(wR, wC, d1 + 2, d2),\n                getW(wR, wC, d1 + 3, d2)\n              );\n\n              dotProd += dot(xValues, wValues);\n            }\n\n            if ("+(1===c)+") {\n              dotProd +=\n                getX(batch, xR, xC, "+l+") *\n                getW(wR, wC, "+l+", d2);\n            } else if ("+(2===c)+") {\n              vec2 xValues = vec2(\n                getX(batch, xR, xC, "+l+"),\n                getX(batch, xR, xC, "+l+" + 1)\n              );\n              vec2 wValues = vec2(\n                getW(wR, wC, "+l+", d2),\n                getW(wR, wC, "+l+" + 1, d2)\n              );\n              dotProd += dot(xValues, wValues);\n            } else if ("+(3===c)+") {\n              vec3 xValues = vec3(\n                getX(batch, xR, xC, "+l+"),\n                getX(batch, xR, xC, "+l+" + 1),\n                getX(batch, xR, xC, "+l+" + 2)\n              );\n              vec3 wValues = vec3(\n                getW(wR, wC, "+l+", d2),\n                getW(wR, wC, "+l+" + 1, d2),\n                getW(wR, wC, "+l+" + 2, d2)\n              );\n              dotProd += dot(xValues, wValues);\n            }\n          }\n        }\n        setOutput(dotProd);\n      }\n    "},$n=function(t){this.variableNames=["x","W"],this.outputShape=t.outShape;var e=t.padInfo.front,n=t.padInfo.top,r=t.padInfo.left,i=t.strideDepth,o=t.strideHeight,a=t.strideWidth,s=t.dilationDepth,u=t.dilationHeight,l=t.dilationWidth,c=t.filterDepth,p=t.filterHeight,h=t.filterWidth,f=4*Math.floor(t.inChannels/4),d=t.inChannels%4;this.userCode="\n      const ivec3 strides = ivec3("+i+", "+o+", "+a+");\n      const ivec3 pads = ivec3("+e+", "+n+", "+r+");\n\n      void main() {\n        ivec5 coords = getOutputCoords();\n        int batch = coords.x;\n        int d2 = coords.u;\n\n        ivec3 xFRCCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n        int xFCorner = xFRCCorner.x;\n        int xRCorner = xFRCCorner.y;\n        int xCCorner = xFRCCorner.z;\n\n        // Convolve x(?, ?, ?, d1) with w(:, :, :, d1, d2) to get\n        // y(yF, yR, yC, d2). ? = to be determined. : = across all\n        // values in that axis.\n        float dotProd = 0.0;\n        for (int wF = 0; wF < "+c+"; wF++) {\n          int xF = xFCorner + wF * "+s+";\n\n          if (xF < 0 || xF >= "+t.inDepth+") {\n            continue;\n          }\n\n          for (int wR = 0; wR < "+p+"; wR++) {\n            int xR = xRCorner + wR * "+u+";\n\n            if (xR < 0 || xR >= "+t.inHeight+") {\n              continue;\n            }\n\n            for (int wC = 0; wC < "+h+"; wC++) {\n              int xC = xCCorner + wC * "+l+";\n\n              if (xC < 0 || xC >= "+t.inWidth+") {\n                continue;\n              }\n\n              for (int d1 = 0; d1 < "+f+"; d1 += 4) {\n                vec4 xValues = vec4(\n                  getX(batch, xF, xR, xC, d1),\n                  getX(batch, xF, xR, xC, d1 + 1),\n                  getX(batch, xF, xR, xC, d1 + 2),\n                  getX(batch, xF, xR, xC, d1 + 3)\n                );\n                vec4 wValues = vec4(\n                  getW(wF, wR, wC, d1, d2),\n                  getW(wF, wR, wC, d1 + 1, d2),\n                  getW(wF, wR, wC, d1 + 2, d2),\n                  getW(wF, wR, wC, d1 + 3, d2)\n                );\n\n                dotProd += dot(xValues, wValues);\n              }\n\n              if ("+(1===d)+") {\n                dotProd +=\n                  getX(batch, xF, xR, xC, "+f+") *\n                  getW(wF, wR, wC, "+f+", d2);\n              } else if ("+(2===d)+") {\n                vec2 xValues = vec2(\n                  getX(batch, xF, xR, xC, "+f+"),\n                  getX(batch, xF, xR, xC, "+f+" + 1)\n                );\n                vec2 wValues = vec2(\n                  getW(wF, wR, wC, "+f+", d2),\n                  getW(wF, wR, wC, "+f+" + 1, d2)\n                );\n                dotProd += dot(xValues, wValues);\n              } else if ("+(3===d)+") {\n                vec3 xValues = vec3(\n                  getX(batch, xF, xR, xC, "+f+"),\n                  getX(batch, xF, xR, xC, "+f+" + 1),\n                  getX(batch, xF, xR, xC, "+f+" + 2)\n                );\n                vec3 wValues = vec3(\n                  getW(wF, wR, wC, "+f+", d2),\n                  getW(wF, wR, wC, "+f+" + 1, d2),\n                  getW(wF, wR, wC, "+f+" + 2, d2)\n                );\n                dotProd += dot(xValues, wValues);\n              }\n            }\n          }\n        }\n        setOutput(dotProd);\n      }\n    "},Xn=function(t){this.variableNames=["x","W"],this.outputShape=t.outShape;var e=t.inHeight,n=t.inWidth,r=t.padInfo.top,i=t.padInfo.left,o=t.strideHeight,a=t.strideWidth,s=t.dilationHeight,u=t.dilationWidth,l=t.filterHeight,c=t.filterWidth,p=t.outChannels/t.inChannels;this.userCode="\n      const ivec2 strides = ivec2("+o+", "+a+");\n      const ivec2 pads = ivec2("+r+", "+i+");\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int batch = coords.x;\n        ivec2 xRCCorner = coords.yz * strides - pads;\n        int d2 = coords.w;\n        int d1 = d2 / "+p+";\n        int q = d2 - d1 * "+p+";\n\n        int xRCorner = xRCCorner.x;\n        int xCCorner = xRCCorner.y;\n\n        // Convolve x(?, ?, d1) with w(:, :, d1, q) to get y(yR, yC, d2).\n        // ? = to be determined. : = across all values in that axis.\n        float dotProd = 0.0;\n        // TODO(dsmilkov): Flatten the two for loops and vec4 the operations.\n        for (int wR = 0; wR < "+l+"; wR++) {\n          int xR = xRCorner + wR * "+s+";\n\n          if (xR < 0 || xR >= "+e+") {\n            continue;\n          }\n\n          for (int wC = 0; wC < "+c+"; wC++) {\n            int xC = xCCorner + wC * "+u+";\n\n            if (xC < 0 || xC >= "+n+") {\n              continue;\n            }\n\n            float xVal = getX(batch, xR, xC, d1);\n            float wVal = getW(wR, wC, d1, q);\n            dotProd += xVal * wVal;\n          }\n        }\n        setOutput(dotProd);\n      }\n    "},Yn=function(t){this.variableNames=["x","W"],this.usesPackedTextures=!0,this.outputShape=t.outShape;for(var e=t.inHeight,n=t.inWidth,r=t.padInfo.top,i=t.padInfo.left,o=t.strideHeight,a=t.strideWidth,s=t.dilationHeight,u=t.dilationWidth,l=t.filterHeight,c=t.filterWidth,h=c,f="int xR; int xC; int xCOffset;",d=0;d<l;d++)for(var m=0;m<c;m++)f+="\n          vec4 xTexelR"+d+"C"+2*m+" = vec4(0.);\n          vec4 wR"+d+"C"+m+" = vec4(0.);\n          vec4 xR"+d+"C"+m+" = vec4(0.);";for(d=0;d<l;d++)for(var g=0;g<h;g++){if(f+="\n          xR = xRCorner + "+d*s+";\n          xC = xCCorner + "+(m=2*g)*u+";\n        ",1===a){if(m<c&&(f+=i%2==1?"\n                xCOffset = xC + 1;\n                if(xR >= 0 && xR < "+e+" && xCOffset >= 0 && xCOffset < "+n+") {\n                  xTexelR"+d+"C"+m+" = getX(batch, xR, xCOffset, d1);\n                } else {\n                  xTexelR"+d+"C"+m+" = vec4(0.);\n                }\n\n                xCOffset = xC + 1 - 2;\n                if(xR >= 0 && xR < "+e+" && xCOffset >= 0 && xCOffset < "+n+") {\n                  vec4 previous = getX(batch, xR, xCOffset, d1);\n                  xR"+d+"C"+m+" = vec4(previous.zw, xTexelR"+d+"C"+m+".xy);\n                } else {\n                  xR"+d+"C"+m+" = vec4(0, 0, xTexelR"+d+"C"+m+".xy);\n                }\n              ":"\n                if(xR >= 0 && xR < "+e+" && xC >= 0 && xC < "+n+") {\n                  xTexelR"+d+"C"+m+" = getX(batch, xR, xC, d1);\n                } else {\n                  xTexelR"+d+"C"+m+" = vec4(0.);\n                }\n\n                xR"+d+"C"+m+" = xTexelR"+d+"C"+m+";\n              ",m+1<c)){var y=i%2==0?p(u):u;u%2==0&&i%2==1||u%2!=0&&i%2!=1?(f+="\n                  xCOffset = xC + "+i%2+" + "+y+";\n\n                  if(xR >= 0 && xR < "+e+" &&\n                    xCOffset >= 0 && xCOffset < "+n+") {\n                    xTexelR"+d+"C"+(m+2)+" = getX(batch, xR, xCOffset, d1);\n                  }\n                ",u>1&&(f+="\n                    xCOffset -= 2;\n                    if(xR >= 0 && xR < "+e+" &&\n                      xCOffset >= 0 && xCOffset < "+n+") {\n                      xTexelR"+d+"C"+m+" = getX(batch, xR, xCOffset, d1);\n                    } else {\n                      xTexelR"+d+"C"+m+" = vec4(0.);\n                    }\n                  "),f+="\n                  xR"+d+"C"+(m+1)+" = vec4(\n                    xTexelR"+d+"C"+m+".zw, xTexelR"+d+"C"+(m+2)+".xy);\n                "):f+="\n                  xCOffset = xC + "+y+";\n\n                  if(xR >= 0 && xR < "+e+" &&\n                    xCOffset >= 0 && xCOffset < "+n+") {\n                    xTexelR"+d+"C"+(m+2)+" = getX(batch, xR, xCOffset, d1);\n                  }\n\n                  xR"+d+"C"+(m+1)+" = xTexelR"+d+"C"+(m+2)+";\n                "}}else m<c&&(f+="\n              if(xR >= 0 && xR < "+e+") {\n            ",i%2==1?(f+="\n                xCOffset = xC + 1 - "+a+";\n                if(xCOffset >= 0 && xCOffset < "+n+") {\n                  xTexelR"+d+"C"+m+" = getX(batch, xR, xCOffset, d1);\n                } else {\n                  xTexelR"+d+"C"+m+" = vec4(0.);\n                }\n\n                if(xC + 1 >= 0 && xC + 1 < "+n+") {\n                  xTexelR"+d+"C"+(m+2)+" = getX(batch, xR, xC + 1, d1);\n                } else {\n                  xTexelR"+d+"C"+(m+2)+" = vec4(0.);\n                }\n\n                xR"+d+"C"+m+" = vec4(\n                  xTexelR"+d+"C"+m+".zw, xTexelR"+d+"C"+(m+2)+".zw);\n              ",m+1<c&&(f+="\n                  vec4 final = vec4(0.);\n                  xCOffset = xC + 1 + "+a+";\n                  if(xCOffset >= 0 && xCOffset < "+n+") {\n                    final = getX(batch, xR, xCOffset, d1);\n                  }\n                  xR"+d+"C"+(m+1)+" = vec4(xTexelR"+d+"C"+(m+2)+".xy, final.xy);\n                ")):(f+="\n                if(xC >= 0 && xC < "+n+") {\n                  xTexelR"+d+"C"+m+" = getX(batch, xR, xC, d1);\n                } else {\n                  xTexelR"+d+"C"+m+" = vec4(0.);\n                }\n\n                xCOffset = xC + "+a+";\n                if(xCOffset >= 0 && xCOffset < "+n+") {\n                  xTexelR"+d+"C"+(m+2)+" = getX(batch, xR, xCOffset, d1);\n                } else {\n                  xTexelR"+d+"C"+(m+2)+" = vec4(0.);\n                }\n\n                xR"+d+"C"+m+" = vec4(\n                  xTexelR"+d+"C"+m+".xy, xTexelR"+d+"C"+(m+2)+".xy);\n              ",m+1<c&&(f+="\n                  xR"+d+"C"+(m+1)+" = vec4(\n                    xTexelR"+d+"C"+m+".zw, xTexelR"+d+"C"+(m+2)+".zw);\n                ")),f+="}");m<c&&(f+="\n            vec4 wTexelR"+d+"C"+m+" = getW("+d+", "+m+", d1, q);\n            wR"+d+"C"+m+" = vec4(wTexelR"+d+"C"+m+".xz, wTexelR"+d+"C"+m+".xz);\n          ",m+1<c&&(f+="\n              vec4 wTexelR"+d+"C"+(m+1)+" = getW("+d+", "+(m+1)+", d1, q);\n              wR"+d+"C"+(m+1)+" =\n                vec4(wTexelR"+d+"C"+(m+1)+".xz, wTexelR"+d+"C"+(m+1)+".xz);"))}for(d=0;d<l;d++)for(m=0;m<c;m++)f+="result += xR"+d+"C"+m+" * wR"+d+"C"+m+";";this.userCode="\n      const ivec2 strides = ivec2("+o+", "+a+");\n      const ivec2 pads = ivec2("+r+", "+i+");\n\n      void main() {\n\n        ivec4 coords = getOutputCoords();\n        int batch = coords.x;\n        ivec2 xRCCorner = coords.yz * strides - pads;\n        int d2 = coords.w;\n        int d1 = d2;\n        int q = 0;\n        int xRCorner = xRCCorner.x;\n        int xCCorner = xRCCorner.y;\n\n        vec4 result = vec4(0.);\n\n        "+f+"\n\n        setOutput(result);\n      }\n    "},Jn=function(t,e,n,r,i){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];var o=t[0],a=t[1],s=t[2],u=t[3],l=e[0],c=n[0],p=n[1];this.outputShape=[l,c,p,u];var h="bilinear"===r?1:0,f=[a-1+".0",s-1+".0"],d=f[0],m=f[1],g=c>1?[""+(a-1)/(c-1),"(y2-y1) * height_ratio","y1*"+d+" + float(y)*(height_scale)"]:["0.0","0.0","0.5 * (y1+y2) * "+d],y=g[0],v=g[1],b=g[2],w=p>1?[""+(s-1)/(p-1),"(x2-x1) * width_ratio","x1*"+m+" + float(x)*(width_scale)"]:["0.0","0.0","0.5 * (x1+x2) * "+m],x=w[0],N=w[1],S=w[2];this.userCode="\n      const float height_ratio = float("+y+");\n      const float width_ratio = float("+x+");\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int y = coords[1];\n        int x = coords[2];\n        int d = coords[3];\n\n        // get box vals\n        float y1 = getBoxes(b,0);\n        float x1 = getBoxes(b,1);\n        float y2 = getBoxes(b,2);\n        float x2 = getBoxes(b,3);\n\n        // get image in batch index\n        int bInd = round(getBoxInd(b));\n        if(bInd < 0 || bInd >= "+o+") {\n          return;\n        }\n\n        float height_scale = "+v+";\n        float width_scale = "+N+";\n\n        float in_y = "+b+";\n        if( in_y < 0.0 || in_y > "+d+" ) {\n          setOutput(float("+i+"));\n          return;\n        }\n        float in_x = "+S+";\n        if( in_x < 0.0 || in_x > "+m+" ) {\n          setOutput(float("+i+"));\n          return;\n        }\n\n        vec2 sourceFracIndexRC = vec2(in_y,in_x);\n        if("+h+" == 1) {\n          // Compute the four integer indices.\n          ivec2 sourceFloorRC = ivec2(sourceFracIndexRC);\n          ivec2 sourceCeilRC = ivec2(ceil(sourceFracIndexRC));\n\n          float topLeft = getImage(b, sourceFloorRC.x, sourceFloorRC.y, d);\n          float bottomLeft = getImage(b, sourceCeilRC.x, sourceFloorRC.y, d);\n          float topRight = getImage(b, sourceFloorRC.x, sourceCeilRC.y, d);\n          float bottomRight = getImage(b, sourceCeilRC.x, sourceCeilRC.y, d);\n\n          vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC);\n\n          float top = topLeft + (topRight - topLeft) * fracRC.y;\n          float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y;\n          float newValue = top + (bottom - top) * fracRC.x;\n          setOutput(newValue);\n        } else {\n          // Compute the coordinators of nearest neighbor point.\n          ivec2 sourceNearestRC = ivec2(floor(\n            sourceFracIndexRC + vec2(0.5,0.5)));\n          float newValue = getImage(b, sourceNearestRC.x, sourceNearestRC.y, d);\n          setOutput(newValue);\n        }\n      }\n    "},Zn=function(t,e,n){this.variableNames=["x"],this.outputShape=t;var r=t.length,i=t[t.length-1],o=n?"<":">";this.userCode="\n      int getIndex(int i) {\n        "+(n?"return "+i+" -i - 1;":"return i;")+"\n      }\n\n      void main() {\n        "+xn(r)+" coords = getOutputCoords();\n        int end = "+Qn(r,"coords")+";\n        float val = 0.0;\n        for (int i = "+i+" - 1; i >= 0; i -= 1) {\n          int idx = getIndex(i);\n          if (idx "+o+" end) {\n            continue;\n          }\n          if (idx == end && "+e+") {\n            continue;\n          }\n          "+Qn(r,"coords")+" = idx;\n          val += getX("+function(t,e){if(1===t)return""+e;if(2===t)return e+".x, "+e+".y";if(3===t)return e+".x, "+e+".y, "+e+".z";if(4===t)return e+".x, "+e+".y, "+e+".z, "+e+".w";throw Error("Cumulative sum for rank "+t+" is not yet supported")}(r,"coords")+");\n        }\n        setOutput(val);\n      }\n    "};function Qn(t,e){if(1===t)return""+e;if(2===t)return e+".y";if(3===t)return e+".z";if(4===t)return e+".w";throw Error("Cumulative sum for rank "+t+" is not yet supported")}var tr=function(){function t(t,e,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=t,this.blockSize=e,this.dataFormat=n,this.userCode="\n    void main() {\n      ivec4 coords = getOutputCoords();\n      int b = coords[0];\n      int h = "+this.getHeightCoordString()+";\n      int w = "+this.getWidthCoordString()+";\n      int d = "+this.getDepthCoordString()+";\n\n      int in_h = h / "+e+";\n      int offset_h = imod(h, "+e+");\n      int in_w = w / "+e+";\n      int offset_w = imod(w, "+e+");\n      int offset_d = (offset_h * "+e+" + offset_w) *\n        "+this.getOutputDepthSize()+";\n      int in_d = d + offset_d;\n\n      float result = "+this.getInputSamplingString()+";\n      setOutput(result);\n    }\n  "}return t.prototype.getHeightCoordString=function(){return"NHWC"===this.dataFormat?"coords[1]":"coords[2]"},t.prototype.getWidthCoordString=function(){return"NHWC"===this.dataFormat?"coords[2]":"coords[3]"},t.prototype.getDepthCoordString=function(){return"NHWC"===this.dataFormat?"coords[3]":"coords[1]"},t.prototype.getOutputDepthSize=function(){return"NHWC"===this.dataFormat?this.outputShape[3]:this.outputShape[1]},t.prototype.getInputSamplingString=function(){return"NHWC"===this.dataFormat?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"},t}(),er=function(t){this.variableNames=["A"];var e=ln();this.outputShape=t,this.userCode="\n      const float FLOAT_MAX = 1.70141184e38;\n      const float FLOAT_MIN = 1.17549435e-38;\n\n      lowp vec4 encode_float(highp float v) {\n        if (isNaN(v)) {\n          return vec4(255, 255, 255, 255);\n        }\n\n        highp float av = abs(v);\n\n        if(av < FLOAT_MIN) {\n          return vec4(0.0, 0.0, 0.0, 0.0);\n        } else if(v > FLOAT_MAX) {\n          return vec4(0.0, 0.0, 128.0, 127.0) / 255.0;\n        } else if(v < -FLOAT_MAX) {\n          return vec4(0.0, 0.0,  128.0, 255.0) / 255.0;\n        }\n\n        highp vec4 c = vec4(0,0,0,0);\n\n        highp float e = floor(log2(av));\n        highp float m = exp2(fract(log2(av))) - 1.0;\n\n        c[2] = floor(128.0 * m);\n        m -= c[2] / 128.0;\n        c[1] = floor(32768.0 * m);\n        m -= c[1] / 32768.0;\n        c[0] = floor(8388608.0 * m);\n\n        highp float ebias = e + 127.0;\n        c[3] = floor(ebias / 2.0);\n        ebias -= c[3] * 2.0;\n        c[2] += floor(ebias) * 128.0;\n\n        c[3] += 128.0 * step(0.0, -v);\n\n        return c / 255.0;\n      }\n\n      void main() {\n        float x = getAAtOutCoords();\n        "+e.output+" = encode_float(x);\n      }\n    "},nr="return real * expR - imag * expI;",rr="return real * expI + imag * expR;",ir=function(t,e,n){this.variableNames=["real","imag"];var r=e[1];this.outputShape=e;var i=n?"2.0 * "+Math.PI:"-2.0 * "+Math.PI,o=n?r+".0":"1.0";this.userCode="\n      const float exponentMultiplier = "+i+";\n\n      float unaryOpComplex(float real, float expR, float imag, float expI) {\n        "+t+"\n      }\n\n      float mulMatDFT(int batch, int index) {\n        float indexRatio = float(index) / float("+r+");\n        float exponentMultiplierTimesIndexRatio =\n            exponentMultiplier * indexRatio;\n\n        float result = 0.0;\n\n        for (int i = 0; i < "+r+"; i++) {\n          // x = (-2|2 * PI / N) * index * i;\n          float x = exponentMultiplierTimesIndexRatio * float(i);\n          float expR = cos(x);\n          float expI = sin(x);\n          float real = getReal(batch, i);\n          float imag = getImag(batch, i);\n\n          result +=\n              unaryOpComplex(real, expR, imag, expI) / "+o+";\n        }\n\n        return result;\n      }\n\n      void main() {\n        ivec2 coords = getOutputCoords();\n        setOutput(mulMatDFT(coords[0], coords[1]));\n      }\n    "},or=function(){function t(t,e){this.outputShape=[],this.variableNames=["x"],this.outputShape=t,this.userCode="\n      uniform float value;\n      void main() {\n        // Input can be obtained from uniform value.\n        setOutput(value);\n      }\n    "}return t.prototype.getCustomSetupFunc=function(t){var e=this;return function(n,r){null==e.valueLoc&&(e.valueLoc=n.getUniformLocationNoThrow(r,"value")),n.gl.uniform1f(e.valueLoc,t)}},t}(),ar=function(t){this.variableNames=["A"];var e=ln(),n=t[0],r=t[1];this.outputShape=t,this.userCode="\n      void main() {\n        ivec3 coords = getOutputCoords();\n        int texR = coords[0];\n        int texC = coords[1];\n        int depth = coords[2];\n        vec2 uv = (vec2(texC, texR) + halfCR) / vec2("+r+".0, "+n+".0);\n\n        vec4 values = "+e.texture2D+"(A, uv);\n        float value;\n        if (depth == 0) {\n          value = values.r;\n        } else if (depth == 1) {\n          value = values.g;\n        } else if (depth == 2) {\n          value = values.b;\n        } else if (depth == 3) {\n          value = values.a;\n        }\n\n        setOutput(floor(value * 255.0 + 0.5));\n      }\n    "},sr=function(t,e,n){this.variableNames=["A","indices"];var r=t.slice();r[n]=e,this.outputShape=r,this.rank=r.length;var i=xn(this.rank),o=function(t,e){var n=t.length;if(n>4)throw Error("Gather for rank "+n+" is not yet supported");if(1===n)return"int(getIndices(resRC))";for(var r=["resRC.x","resRC.y","resRC.z","resRC.w"],i=[],o=0;o<t.length;o++)o===e?i.push("int(getIndices("+r[o]+"))"):i.push(""+r[o]);return i.join()}(t,n);this.userCode="\n      void main() {\n        "+i+" resRC = getOutputCoords();\n        setOutput(getA("+o+"));\n      }\n    "};var ur,lr,cr=function(t,e,n){this.sliceDim=t,this.strides=e,this.variableNames=["x","indices"],this.outputShape=n;var r=xn(e.length),i=xn(n.length),o=this.sliceDim>1?"strides[j]":"strides";this.userCode="\n        "+r+" strides = "+r+"("+this.strides+");\n         void main() {\n          "+i+" coords = getOutputCoords();\n          int flattenIndex = 0;\n          for (int j = 0; j < "+this.sliceDim+"; j++) {\n            int index = round(getIndices(coords[0], j));\n            flattenIndex += index * "+o+";\n          }\n          setOutput(getX(flattenIndex, coords[1]));\n        }\n      "};function pr(t,e){return[e,t]}function hr(t,e){return t*e}function fr(t,e,n){var r=function(t,e){if(t%e!=0)throw new Error("unpackedSize ("+t+") must be a multiple of "+e);return t/e}(t.length,n);if(e.length<r)throw new Error("matrix length ("+e.length+") must be >= "+r);for(var i=0,o=0;o<t.length;o+=n)e[i++]=t[o]}function dr(t,e){return[Math.max(1,Math.ceil(e/2)),Math.max(1,Math.ceil(t/2))]}function mr(t,e){var n=dr(t,e);return n[0]*n[1]*4}function gr(t,e,n,r,i){var o=n*r;if(i.length<o)throw new Error("matrix length ("+i.length+") must be >= "+o);for(var a=r%2==1,s=n%2==1,u=Math.floor(r/2),l=Math.floor(n/2),c=Math.ceil(r/2),h=c*Math.ceil(n/2),f=p(n)*p(r),d=0;d<e;d++){for(var m=d*n*r,g=d*f,y=a?4:0,v=r+(a?1:0),b=g,w=m,x=m+r,N=0;N<l;++N){for(var S=0;S<u;++S)i[w++]=t[b++],i[w++]=t[b++],i[x++]=t[b++],i[x++]=t[b++];b+=y,w+=v,x+=v}if(a){b=g+4*(c-1);var C=m+r-1;for(y=4*c,v=2*r,N=0;N<l;++N)i[C]=t[b],i[C+r]=t[b+2],b+=y,C+=v}if(s){for(b=g+4*(h-c),C=m+(n-1)*r,S=0;S<u;++S)i[C++]=t[b++],i[C++]=t[b++],b+=2;a&&(i[m+n*r-1]=t[b])}}return i}function yr(t,e){var n=e();return wr(t),n}!function(t){t[t.RENDER=0]="RENDER",t[t.UPLOAD=1]="UPLOAD",t[t.PIXELS=2]="PIXELS",t[t.DOWNLOAD=3]="DOWNLOAD"}(ur||(ur={})),function(t){t[t.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",t[t.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",t[t.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",t[t.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",t[t.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"}(lr||(lr={}));var vr=!1;function br(t){vr=t}function wr(t){if(vr){var e=t.getError();if(e!==t.NO_ERROR)throw new Error("WebGL Error: "+Cr(t,e))}}var xr=5.96e-8,Nr=65504;function Sr(t){return!!(Bt.get("WEBGL_RENDER_FLOAT32_ENABLED")||0===t||xr<Math.abs(t)&&Math.abs(t)<Nr)}function Cr(t,e){switch(e){case t.NO_ERROR:return"NO_ERROR";case t.INVALID_ENUM:return"INVALID_ENUM";case t.INVALID_VALUE:return"INVALID_VALUE";case t.INVALID_OPERATION:return"INVALID_OPERATION";case t.INVALID_FRAMEBUFFER_OPERATION:return"INVALID_FRAMEBUFFER_OPERATION";case t.OUT_OF_MEMORY:return"OUT_OF_MEMORY";case t.CONTEXT_LOST_WEBGL:return"CONTEXT_LOST_WEBGL";default:return"Unknown error code "+e}}function Er(t,e){return Kr(t,function(){return t.getExtension(e)},'Extension "'+e+'" not supported on this browser.')}function Ir(t,e){var n=Kr(t,function(){return t.createShader(t.VERTEX_SHADER)},"Unable to create vertex WebGLShader.");if(yr(t,function(){return t.shaderSource(n,e)}),yr(t,function(){return t.compileShader(n)}),!1===t.getShaderParameter(n,t.COMPILE_STATUS))throw console.log(t.getShaderInfoLog(n)),new Error("Failed to compile vertex shader.");return n}function kr(t,e){var n=Kr(t,function(){return t.createShader(t.FRAGMENT_SHADER)},"Unable to create fragment WebGLShader.");if(yr(t,function(){return t.shaderSource(n,e)}),yr(t,function(){return t.compileShader(n)}),!1===t.getShaderParameter(n,t.COMPILE_STATUS))throw function(t,e){var n=Ar.exec(e);if(null==n)return console.log("Couldn't parse line number in error: "+e),void console.log(t);for(var r=+n[1],i=t.split("\n"),o=i.length.toString().length+2,a=i.map(function(t,e){return S((e+1).toString(),o)+t}),s=0,u=0;u<a.length;u++)s=Math.max(a[u].length,s);var l=a.slice(0,r-1),c=a.slice(r-1,r),p=a.slice(r);console.log(l.join("\n")),console.log(e.split("\n")[0]),console.log("%c "+S(c[0],s),"border:1px solid red; background-color:#e3d2d2; color:#a61717"),console.log(p.join("\n"))}(e,t.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var Ar=/ERROR: [0-9]+:([0-9]+):/g;function Tr(t){return Kr(t,function(){return t.createProgram()},"Unable to create WebGLProgram.")}function Rr(t,e){if(yr(t,function(){return t.linkProgram(e)}),!1===t.getProgramParameter(e,t.LINK_STATUS))throw console.log(t.getProgramInfoLog(e)),new Error("Failed to link vertex and fragment shaders.")}function Dr(t,e){if(yr(t,function(){return t.validateProgram(e)}),!1===t.getProgramParameter(e,t.VALIDATE_STATUS))throw console.log(t.getProgramInfoLog(e)),new Error("Shader program validation failed.")}function Or(t,e){var n=Kr(t,function(){return t.createBuffer()},"Unable to create WebGLBuffer");return yr(t,function(){return t.bindBuffer(t.ARRAY_BUFFER,n)}),yr(t,function(){return t.bufferData(t.ARRAY_BUFFER,e,t.STATIC_DRAW)}),n}function _r(t,e){var n=Kr(t,function(){return t.createBuffer()},"Unable to create WebGLBuffer");return yr(t,function(){return t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,n)}),yr(t,function(){return t.bufferData(t.ELEMENT_ARRAY_BUFFER,e,t.STATIC_DRAW)}),n}function Mr(){return 2===Bt.get("WEBGL_VERSION")?1:4}function Lr(t){return Kr(t,function(){return t.createTexture()},"Unable to create WebGLTexture.")}function Fr(t,e){var n=Bt.get("WEBGL_MAX_TEXTURE_SIZE");if(t<=0||e<=0){var r="["+t+"x"+e+"]";throw new Error("Requested texture size "+r+" is invalid.")}if(t>n||e>n)throw r="["+t+"x"+e+"]",new Error("Requested texture size "+r+" greater than WebGL maximum on this browser / GPU ["+n+"x"+n+"].")}function zr(t){return Kr(t,function(){return t.createFramebuffer()},"Unable to create WebGLFramebuffer.")}function Pr(t,e,n,r,i,o,a){var s=t.getAttribLocation(e,n);return-1!==s&&(yr(t,function(){return t.bindBuffer(t.ARRAY_BUFFER,r)}),yr(t,function(){return t.vertexAttribPointer(s,i,t.FLOAT,!1,o,a)}),yr(t,function(){return t.enableVertexAttribArray(s)}),!0)}function Br(t,e,n){$r(t,n),yr(t,function(){return t.activeTexture(t.TEXTURE0+n)}),yr(t,function(){return t.bindTexture(t.TEXTURE_2D,e)})}function Ur(t,e,n){return Kr(t,function(){return t.getUniformLocation(e,n)},'uniform "'+n+'" not present in program.')}function Wr(t,e,n){return t.getUniformLocation(e,n)}function Vr(t,e,n,r,i){yr(t,function(){return Br(t,n,i)}),yr(t,function(){return t.uniform1i(r,i)})}function jr(t,e,n){yr(t,function(){return t.bindFramebuffer(t.FRAMEBUFFER,n)}),yr(t,function(){return t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,e,0)})}function qr(t,e){yr(t,function(){return t.bindFramebuffer(t.FRAMEBUFFER,e)}),yr(t,function(){return t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,null,0)})}function Gr(t){var e=t.checkFramebufferStatus(t.FRAMEBUFFER);if(e!==t.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+Hr(t,e))}function Hr(t,e){switch(e){case t.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case t.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case t.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case t.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return"unknown error "+e}}function Kr(t,e,n){var r=yr(t,function(){return e()});if(null==r)throw new Error(n);return r}function $r(t,e){var n=t.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,r=e+t.TEXTURE0;if(r<t.TEXTURE0||r>n)throw new Error("textureUnit must be in [gl.TEXTURE0, gl.TEXTURE"+n+"].")}function Xr(t,e){return void 0===e&&(e=2),v(t.slice(0,t.length-e))}function Yr(t){if(0===t.length)throw Error("Cannot get rows and columns of an empty shape array.");return[t.length>1?t[t.length-2]:1,t[t.length-1]]}function Jr(t,e){var n;void 0===e&&(e=!1);var r=Bt.get("WEBGL_MAX_TEXTURE_SIZE");if(e&&(r*=2,1===(t=t.map(function(e,n){return n>=t.length-2?p(t[n]):t[n]})).length&&(t=[2,t[0]])),2!==t.length){var i=k(t);t=i.newShape}var o=v(t);if(t.length<=1&&o<=r)return[1,o];if(2===t.length&&t[0]<=r&&t[1]<=r)return t;if(3===t.length&&t[0]*t[1]<=r&&t[2]<=r)return[t[0]*t[1],t[2]];if(3===t.length&&t[0]<=r&&t[1]*t[2]<=r)return[t[0],t[1]*t[2]];if(4===t.length&&t[0]*t[1]*t[2]<=r&&t[3]<=r)return[t[0]*t[1]*t[2],t[3]];if(4===t.length&&t[0]<=r&&t[1]*t[2]*t[3]<=r)return[t[0],t[1]*t[2]*t[3]];if(e){var a=Xr(t),s=2,u=2;return t.length&&(s=(n=Yr(t))[0],u=n[1]),N(o=a*(s/2)*(u/2)).map(function(t){return 2*t})}return N(o)}function Zr(t){return t%2==0}function Qr(t,e){if(b(t=t.slice(-2),e=e.slice(-2)))return!0;if(!t.length||!e.length)return!0;if(0===t[0]||0===t[1]||0===e[0]||0===e[1])return!0;if(t.length!==e.length){var n=t.slice(-1)[0],r=e.slice(-1)[0];if(n===r)return!0;if(Zr(n)&&Zr(r)&&(1===t[0]||1===e[0]))return!0}return t[1]===e[1]&&Zr(t[0])&&Zr(e[0])}var ti=Object.freeze({callAndCheck:yr,enableDebugWebGLErrorChecking:br,checkWebGLError:wr,canBeRepresented:Sr,getWebGLErrorMessage:Cr,getExtensionOrThrow:Er,createVertexShader:Ir,createFragmentShader:kr,createProgram:Tr,linkProgram:Rr,validateProgram:Dr,createStaticVertexBuffer:Or,createStaticIndexBuffer:_r,getNumChannels:Mr,createTexture:Lr,validateTextureSize:Fr,createFramebuffer:zr,bindVertexBufferToProgramAttribute:Pr,bindTextureUnit:Br,unbindTextureUnit:function(t,e){$r(t,e),yr(t,function(){return t.activeTexture(t.TEXTURE0+e)}),yr(t,function(){return t.bindTexture(t.TEXTURE_2D,null)})},getProgramUniformLocationOrThrow:Ur,getProgramUniformLocation:Wr,bindTextureToProgramUniformSampler:Vr,bindCanvasToFramebuffer:function(t){yr(t,function(){return t.bindFramebuffer(t.FRAMEBUFFER,null)}),yr(t,function(){return t.viewport(0,0,t.canvas.width,t.canvas.height)}),yr(t,function(){return t.scissor(0,0,t.canvas.width,t.canvas.height)})},bindColorTextureToFramebuffer:jr,unbindColorTextureFromFramebuffer:qr,validateFramebuffer:Gr,getFramebufferErrorMessage:Hr,getBatchDim:Xr,getRowsCols:Yr,getTextureShapeFromLogicalShape:Jr,isReshapeFree:Qr});function ei(t){var e=ln();return Ir(t,e.version+"\n    precision highp float;\n    "+e.attribute+" vec3 clipSpacePos;\n    "+e.attribute+" vec2 uv;\n    "+e.varyingVs+" vec2 resultUV;\n\n    void main() {\n      gl_Position = vec4(clipSpacePos, 1);\n      resultUV = uv;\n    }")}function ni(t){return Or(t,new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]))}function ri(t){return _r(t,new Uint16Array([0,1,2,2,1,3]))}function ii(t,e){var n,r,i,o,a,s,u,l,c=t;return 2===Bt.get("WEBGL_VERSION")?(n=c.R32F,r=c.R16F,i=c.RGBA16F,o=c.RGBA32F,a=c.RED,s=4,u=1,l=c.HALF_FLOAT):(n=t.RGBA,r=t.RGBA,i=t.RGBA,o=c.RGBA,a=t.RGBA,s=4,u=4,l=null!=e?e.HALF_FLOAT_OES:null),{internalFormatFloat:n,internalFormatHalfFloat:r,internalFormatPackedHalfFloat:i,internalFormatPackedFloat:o,textureFormatFloat:a,downloadTextureFormat:t.RGBA,downloadUnpackNumChannels:s,defaultNumChannels:u,textureTypeHalfFloat:l}}function oi(t,e,n,r,i,o){Fr(e,n);var a=Lr(t),s=t.TEXTURE_2D;return yr(t,function(){return t.bindTexture(s,a)}),yr(t,function(){return t.texParameteri(s,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE)}),yr(t,function(){return t.texParameteri(s,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE)}),yr(t,function(){return t.texParameteri(s,t.TEXTURE_MIN_FILTER,t.NEAREST)}),yr(t,function(){return t.texParameteri(s,t.TEXTURE_MAG_FILTER,t.NEAREST)}),yr(t,function(){return t.texImage2D(s,0,r,e,n,0,i,o,null)}),yr(t,function(){return t.bindTexture(t.TEXTURE_2D,null)}),a}function ai(t,e,n,r){var i=pr(e,n);return oi(t,i[0],i[1],r.internalFormatFloat,r.textureFormatFloat,t.FLOAT)}function si(t,e,n,r){var i=pr(e,n);return oi(t,i[0],i[1],r.internalFormatHalfFloat,r.textureFormatFloat,r.textureTypeHalfFloat)}function ui(t,e,n,r){var i=pr(e,n);return oi(t,i[0],i[1],t.RGBA,t.RGBA,t.UNSIGNED_BYTE)}function li(t,e,n,r){var i=dr(e,n);return oi(t,i[0],i[1],r.internalFormatPackedFloat,t.RGBA,t.FLOAT)}function ci(t,e,n,r){var i=dr(e,n);return oi(t,i[0],i[1],r.internalFormatPackedHalfFloat,t.RGBA,r.textureTypeHalfFloat)}function pi(t,e,n){return yr(t,function(){return t.bindBuffer(t.ARRAY_BUFFER,n)}),Pr(t,e,"clipSpacePos",n,3,20,0)&&Pr(t,e,"uv",n,2,20,12)}function hi(t,e,n){yr(t,function(){return t.bindTexture(t.TEXTURE_2D,e)}),yr(t,function(){return t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,n)}),yr(t,function(){return t.bindTexture(t.TEXTURE_2D,null)})}function fi(t,e,n,r,i,o){Fr(n,r),yr(t,function(){return t.bindTexture(t.TEXTURE_2D,e)}),yr(t,function(){return t.texSubImage2D(t.TEXTURE_2D,0,0,0,n,r,o,t.FLOAT,i)}),yr(t,function(){return t.bindTexture(t.TEXTURE_2D,null)})}function di(t,e,n,r,i,o,a){var s,u=pr(n,r),l=u[0],c=u[1],p=n*r;1===a.defaultNumChannels&&p===i.length?s=i:function(t,e,n){var r=hr(t.length,n);if(e.length<r)throw new Error("unpackedArray length ("+e.length+") must be >= "+r);for(var i=0,o=0;o<t.length;++o)e[i]=t[o],i+=n}(i,s=new Float32Array(p*o),o),fi(t,e,l,c,s,a.textureFormatFloat)}function mi(t,e,n,r,i,o,a,s,u){var l=dr(o,a),c=l[0],h=l[1],f=new Float32Array(mr(o,a));(function(t,e,n,r,i){for(var o=r%2==1,a=n%2==1,s=Math.floor(r/2),u=Math.floor(n/2),l=Math.ceil(r/2),c=l*Math.ceil(n/2),h=p(n)*p(r),f=0;f<e;f++){for(var d=f*n*r,m=f*h,g=o?4:0,y=r,v=m,b=0;b<u;++b){for(var w=2*b*r,x=0;x<s;++x){var N=d+w+2*x;i[v]=t[N],i[v+1]=t[N+1],i[v+2]=t[N+y],i[v+3]=t[N+y+1],v+=4}v+=g}if(o){N=d+r-1,v=m+4*(l-1);var S=2*r;for(g=4*l,b=0;b<u;++b)i[v]=t[N],i[v+2]=t[N+r],N+=S,v+=g}if(a){for(N=d+(n-1)*r,v=m+4*(c-l),x=0;x<s;++x)i[v++]=t[N++],i[v++]=t[N++],v+=2;o&&a&&(i[m+h-4]=t[N])}}})(s,n,r,i,f),fi(t,e,c,h,f,t.RGBA)}function gi(t,e,n,r,i){var o=e;if(2===Bt.get("WEBGL_VERSION")){var a=t,s=a.createBuffer();yr(t,function(){return t.bindBuffer(a.PIXEL_PACK_BUFFER,s)});var u=4*hr(n*r,i.downloadUnpackNumChannels);yr(t,function(){return t.bufferData(a.PIXEL_PACK_BUFFER,u,a.STREAM_READ)}),yr(t,function(){return a.readPixels(0,0,r,n,t.RGBA,t.FLOAT,0)}),yr(t,function(){return t.bindBuffer(a.PIXEL_PACK_BUFFER,null)}),o=s}return o}function yi(t,e,n,r,i){var o=t,a=new Float32Array(hr(n*r,i.downloadUnpackNumChannels));o.bindBuffer(o.PIXEL_PACK_BUFFER,e),o.getBufferSubData(o.PIXEL_PACK_BUFFER,0,a),o.bindBuffer(o.PIXEL_PACK_BUFFER,null);var s=new Float32Array(n*r);return fr(a,s,i.downloadUnpackNumChannels),s}function vi(t,e,n,r){var i=pr(e,n),o=i[0],a=i[1],s=new Float32Array(hr(e*n,r.downloadUnpackNumChannels));yr(t,function(){return t.readPixels(0,0,o,a,r.downloadTextureFormat,t.FLOAT,s)});var u=new Float32Array(e*n);return fr(s,u,r.downloadUnpackNumChannels),u}function bi(t,e,n,r){var i=pr(e,n),o=i[0],a=i[1],s=new Uint8Array(hr(e*n,4));return yr(t,function(){return t.readPixels(0,0,o,a,r.downloadTextureFormat,t.UNSIGNED_BYTE,s)}),new Float32Array(s.buffer)}function wi(t,e,n,r,i,o,a,s){var u=t,l=new Float32Array(mr(o,a));u.bindBuffer(u.PIXEL_PACK_BUFFER,e),u.getBufferSubData(u.PIXEL_PACK_BUFFER,0,l),u.bindBuffer(u.PIXEL_PACK_BUFFER,null);var c=new Float32Array(v([n,r,i]));return gr(l,n,r,i,c),c}function xi(t,e,n,r,i,o,a){var s=dr(i,o),u=s[0],l=s[1],c=new Float32Array(mr(i,o));yr(t,function(){return t.readPixels(0,0,u,l,t.RGBA,t.FLOAT,c)});var p=new Float32Array(v([e,n,r]));return gr(c,e,n,r,p)}var Ni=Object.freeze({createVertexShader:ei,createVertexBuffer:ni,createIndexBuffer:ri,getTextureConfig:ii,createFloat32MatrixTexture:ai,createFloat16MatrixTexture:si,createUnsignedBytesMatrixTexture:ui,createPackedMatrixTexture:li,createFloat16PackedMatrixTexture:ci,bindVertexProgramAttributeStreams:pi,uploadPixelDataToTexture:hi,uploadMatrixToTexture:di,uploadMatrixToPackedTexture:mi,maybeCreateBufferFromOutputTexture:gi,downloadFloat32MatrixFromBuffer:yi,downloadFloat32MatrixFromOutputTexture:vi,downloadByteEncodedFloatMatrixFromOutputTexture:bi,downloadPackedMatrixFromBuffer:wi,downloadMatrixFromPackedOutputTexture:xi}),Si=function(){function t(t){this.outputTexture=null,this.program=null,this.disposed=!1,this.autoDebugValidate=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];var e=Bt.get("WEBGL_VERSION");null!=t?(this.gl=t,function(t,e){a[t]=e}(e,t)):this.gl=u(e),1===Bt.get("WEBGL_VERSION")?(this.textureFloatExtension=Er(this.gl,"OES_texture_float"),this.colorBufferFloatExtension=this.gl.getExtension("WEBGL_color_buffer_float"),Bt.get("WEBGL_RENDER_FLOAT32_ENABLED")||(this.textureHalfFloatExtension=Er(this.gl,"OES_texture_half_float"),this.colorBufferHalfFloatExtension=this.gl.getExtension("EXT_color_buffer_half_float"))):this.colorBufferFloatExtension=Er(this.gl,"EXT_color_buffer_float"),this.vertexBuffer=ni(this.gl),this.indexBuffer=ri(this.gl),this.framebuffer=zr(this.gl),this.textureConfig=ii(this.gl,this.textureHalfFloatExtension)}return t.prototype.dispose=function(){var t=this;if(!this.disposed){null!=this.program&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),null!=this.outputTexture&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture.  This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");var e=this.gl;yr(e,function(){return e.finish()}),yr(e,function(){return e.bindFramebuffer(e.FRAMEBUFFER,null)}),yr(e,function(){return e.deleteFramebuffer(t.framebuffer)}),yr(e,function(){return e.bindBuffer(e.ARRAY_BUFFER,null)}),yr(e,function(){return e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)}),yr(e,function(){return e.deleteBuffer(t.indexBuffer)}),this.disposed=!0}},t.prototype.enableAutomaticDebugValidation=function(t){this.autoDebugValidate=t,br(t)},t.prototype.createFloat32MatrixTexture=function(t,e){return this.throwIfDisposed(),ai(this.gl,t,e,this.textureConfig)},t.prototype.createFloat16MatrixTexture=function(t,e){return this.throwIfDisposed(),si(this.gl,t,e,this.textureConfig)},t.prototype.createUnsignedBytesMatrixTexture=function(t,e){return this.throwIfDisposed(),ui(this.gl,t,e,this.textureConfig)},t.prototype.uploadPixelDataToTexture=function(t,e){this.throwIfDisposed(),hi(this.gl,t,e)},t.prototype.createFloat16PackedMatrixTexture=function(t,e){return this.throwIfDisposed(),ci(this.gl,t,e,this.textureConfig)},t.prototype.createPackedMatrixTexture=function(t,e){return this.throwIfDisposed(),li(this.gl,t,e,this.textureConfig)},t.prototype.deleteMatrixTexture=function(t){var e=this;this.throwIfDisposed(),this.outputTexture===t&&(qr(this.gl,this.framebuffer),this.outputTexture=null),yr(this.gl,function(){return e.gl.deleteTexture(t)})},t.prototype.uploadMatrixToTexture=function(t,e,n,r){this.throwIfDisposed();var i=Mr();return di(this.gl,t,e,n,r,i,this.textureConfig)},t.prototype.uploadMatrixToPackedTexture=function(t,e,n,r,i,o,a){return this.throwIfDisposed(),mi(this.gl,t,e,n,r,i,o,a,this.textureConfig)},t.prototype.downloadFloat32MatrixFromOutputTexture=function(t,e,n){var r=this;return this.downloadMatrixDriver(t,function(){return vi(r.gl,e,n,r.textureConfig)})},t.prototype.downloadByteEncodedFloatMatrixFromOutputTexture=function(t,e,n){var r=this;return this.downloadMatrixDriver(t,function(){return bi(r.gl,e,n,r.textureConfig)})},t.prototype.downloadPackedMatrixFromBuffer=function(t,e,n,r,i,o){return wi(this.gl,t,e,n,r,i,o,this.textureConfig)},t.prototype.downloadFloat32MatrixFromBuffer=function(t,e,n){return yi(this.gl,t,e,n,this.textureConfig)},t.prototype.maybeCreateBufferFromTexture=function(t,e,n){this.bindTextureToFrameBuffer(t);var r=gi(this.gl,t,e,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),r},t.prototype.createAndWaitForFence=function(){var t=this.createFence(this.gl);return this.pollFence(t)},t.prototype.createFence=function(t){var e,n,r=this;if(Bt.get("WEBGL_FENCE_API_ENABLED")){var i=t,o=i.fenceSync(i.SYNC_GPU_COMMANDS_COMPLETE,0);t.flush(),n=function(){var t=i.clientWaitSync(o,0,0);return t===i.ALREADY_SIGNALED||t===i.CONDITION_SATISFIED},e=o}else Bt.get("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(e=this.beginQuery(),this.endQuery(),n=function(){return r.isQueryAvailable(e,Bt.get("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}):n=function(){return!0};return{query:e,isFencePassed:n}},t.prototype.downloadMatrixFromPackedTexture=function(t,e,n,r,i,o){var a=this;return this.downloadMatrixDriver(t,function(){return xi(a.gl,e,n,r,i,o,a.textureConfig)})},t.prototype.createProgram=function(t){this.throwIfDisposed();var e=this.gl,n=kr(e,t),r=ei(e),i=Tr(e);return yr(e,function(){return e.attachShader(i,r)}),yr(e,function(){return e.attachShader(i,n)}),Rr(e,i),this.autoDebugValidate&&Dr(e,i),this.vertexAttrsAreBound||(this.setProgram(i),this.vertexAttrsAreBound=pi(e,this.program,this.vertexBuffer)),i},t.prototype.deleteProgram=function(t){var e=this;this.throwIfDisposed(),t===this.program&&(this.program=null),null!=t&&yr(this.gl,function(){return e.gl.deleteProgram(t)})},t.prototype.setProgram=function(t){var e=this;this.throwIfDisposed(),this.program=t,null!=this.program&&this.autoDebugValidate&&Dr(this.gl,this.program),yr(this.gl,function(){return e.gl.useProgram(t)})},t.prototype.getUniformLocation=function(t,e,n){return void 0===n&&(n=!0),this.throwIfDisposed(),n?Ur(this.gl,t,e):Wr(this.gl,t,e)},t.prototype.getAttributeLocation=function(t,e){var n=this;return this.throwIfDisposed(),yr(this.gl,function(){return n.gl.getAttribLocation(t,e)})},t.prototype.getUniformLocationNoThrow=function(t,e){return this.throwIfDisposed(),this.gl.getUniformLocation(t,e)},t.prototype.setInputMatrixTexture=function(t,e,n){this.throwIfDisposed(),this.throwIfNoProgram(),Vr(this.gl,this.program,t,e,n)},t.prototype.setOutputMatrixTexture=function(t,e,n){this.setOutputMatrixTextureDriver(t,n,e)},t.prototype.setOutputPackedMatrixTexture=function(t,e,n){this.throwIfDisposed();var r=dr(e,n),i=r[0],o=r[1];this.setOutputMatrixTextureDriver(t,i,o)},t.prototype.setOutputMatrixWriteRegion=function(t,e,n,r){this.setOutputMatrixWriteRegionDriver(n,t,r,e)},t.prototype.setOutputPackedMatrixWriteRegion=function(t,e,n,r){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")},t.prototype.debugValidate=function(){null!=this.program&&Dr(this.gl,this.program),Gr(this.gl)},t.prototype.executeProgram=function(){this.throwIfDisposed(),this.throwIfNoProgram();var t=this.gl;this.autoDebugValidate&&this.debugValidate(),yr(t,function(){return t.drawElements(t.TRIANGLES,6,t.UNSIGNED_SHORT,0)})},t.prototype.blockUntilAllProgramsCompleted=function(){var t=this;this.throwIfDisposed(),yr(this.gl,function(){return t.gl.finish()})},t.prototype.getQueryTimerExtension=function(){return null==this.disjointQueryTimerExtension&&(this.disjointQueryTimerExtension=Er(this.gl,2===Bt.get("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension},t.prototype.getQueryTimerExtensionWebGL2=function(){return this.getQueryTimerExtension()},t.prototype.getQueryTimerExtensionWebGL1=function(){return this.getQueryTimerExtension()},t.prototype.beginQuery=function(){if(2===Bt.get("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){var t=this.gl,e=this.getQueryTimerExtensionWebGL2(),n=t.createQuery();return t.beginQuery(e.TIME_ELAPSED_EXT,n),n}var r=this.getQueryTimerExtensionWebGL1(),i=r.createQueryEXT();return r.beginQueryEXT(r.TIME_ELAPSED_EXT,i),i},t.prototype.endQuery=function(){if(2!==Bt.get("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){var t=this.getQueryTimerExtensionWebGL1();t.endQueryEXT(t.TIME_ELAPSED_EXT)}else{var e=this.gl,n=this.getQueryTimerExtensionWebGL2();e.endQuery(n.TIME_ELAPSED_EXT)}},t.prototype.waitForQueryAndGetTime=function(t){return i(this,void 0,void 0,function(){var e=this;return o(this,function(n){switch(n.label){case 0:return[4,C(function(){return e.disposed||e.isQueryAvailable(t,Bt.get("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))})];case 1:return n.sent(),[2,this.getQueryTime(t,Bt.get("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))]}})})},t.prototype.getQueryTime=function(t,e){if(0===e)return null;if(2===e){var n=this.gl;return n.getQueryParameter(t,n.QUERY_RESULT)/1e6}var r=this.getQueryTimerExtensionWebGL1();return r.getQueryObjectEXT(t,r.QUERY_RESULT_EXT)/1e6},t.prototype.isQueryAvailable=function(t,e){if(0===e)return!0;if(2===e){var n=this.gl,r=this.getQueryTimerExtensionWebGL2(),i=n.getQueryParameter(t,n.QUERY_RESULT_AVAILABLE);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(r.GPU_DISJOINT_EXT)),i&&!this.disjoint}return i=(r=this.getQueryTimerExtensionWebGL1()).getQueryObjectEXT(t,r.QUERY_RESULT_AVAILABLE_EXT),null==this.disjoint&&(this.disjoint=this.gl.getParameter(r.GPU_DISJOINT_EXT)),i&&!this.disjoint},t.prototype.pollFence=function(t){var e=this;return new Promise(function(n){e.addItemToPoll(function(){return t.isFencePassed()},function(){return n()})})},t.prototype.pollItems=function(){for(var t=function(t){for(var e=0;e<t.length&&t[e]();++e);return e-1}(this.itemsToPoll.map(function(t){return t.isDoneFn})),e=0;e<=t;++e)(0,this.itemsToPoll[e].resolveFn)();this.itemsToPoll=this.itemsToPoll.slice(t+1)},t.prototype.addItemToPoll=function(t,e){var n=this;this.itemsToPoll.push({isDoneFn:t,resolveFn:e}),this.itemsToPoll.length>1||C(function(){return n.pollItems(),0===n.itemsToPoll.length})},t.prototype.bindTextureToFrameBuffer=function(t){this.throwIfDisposed(),jr(this.gl,t,this.framebuffer),this.autoDebugValidate&&Gr(this.gl)},t.prototype.unbindTextureToFrameBuffer=function(){null!=this.outputTexture?(jr(this.gl,this.outputTexture,this.framebuffer),this.autoDebugValidate&&Gr(this.gl)):qr(this.gl,this.framebuffer)},t.prototype.downloadMatrixDriver=function(t,e){this.bindTextureToFrameBuffer(t);var n=e();return this.unbindTextureToFrameBuffer(),n},t.prototype.setOutputMatrixTextureDriver=function(t,e,n){this.throwIfDisposed();var r=this.gl;jr(r,t,this.framebuffer),this.autoDebugValidate&&Gr(r),this.outputTexture=t,yr(r,function(){return r.viewport(0,0,e,n)}),yr(r,function(){return r.scissor(0,0,e,n)})},t.prototype.setOutputMatrixWriteRegionDriver=function(t,e,n,r){var i=this;this.throwIfDisposed(),yr(this.gl,function(){return i.gl.scissor(t,e,n,r)})},t.prototype.throwIfDisposed=function(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")},t.prototype.throwIfNoProgram=function(){if(null==this.program)throw new Error("No GPU program is currently set.")},t}();function Ci(t,e){if(t.length!==e.length)throw Error("Binary was compiled with "+t.length+" inputs, but was executed with "+e.length+" inputs");t.forEach(function(t,n){var r=t.logicalShape,i=e[n],o=i.shape;if(!b(r,o))throw Error("Binary was compiled with different shapes than the current args. Shapes "+r+" and "+o+" must match");if(!t.isUniform||!i.isUniform){var a=t.texShape,s=i.isUniform?null:i.texData.texShape;if(!b(a,s))throw Error("Binary was compiled with different texture shapes than the current args. Shape "+a+" and "+s+" must match")}})}var Ei=function(t,e,n){this.variableNames=["A"],this.outputShape=t;var r=n.filterWidth,i=n.inChannels,o=n.strideWidth,a=n.strideHeight,s=n.padInfo,u=n.outWidth,l=n.dilationWidth,c=n.dilationHeight,p=s.left,h=s.top,f=i*r,d=ln();this.userCode="\n      void main() {\n        ivec2 rc = getOutputCoords();\n\n        vec4 result = vec4(0);\n\n        for(int row=0; row<=1; row++) {\n          for(int col=0; col<=1; col++) {\n            int blockIndex = rc.y + col;\n            int pos = rc.x + row;\n\n            if(blockIndex >= "+t[1]+" || pos >= "+t[0]+") continue;\n\n            int offsetY = int(blockIndex / ("+u+")) * "+a+" - "+h+";\n            int d0 = offsetY + "+c+" * (pos / "+f+");\n\n            if(d0 >= "+e[0]+" || d0 < 0) continue;\n\n            int offsetX = int(mod(float(blockIndex), "+u+".) * "+o+". - "+p+".);\n            int d1 = offsetX + "+l+" * (int(mod(float(pos), "+f+".) / "+i+".));\n\n            if(d1 >= "+e[1]+" || d1 < 0) continue;\n\n            result[row * 2 + col] = getA(d0, d1, int(mod(float(pos), "+i+".)));\n          }\n        }\n\n        "+d.output+" = result;\n      }\n    "},Ii=function(t,e,n,r,i){this.variableNames=["x"],this.outputShape=[];var o,a=e,s=t[3]-1;this.outputShape=t;var u="float("+n+") + float("+r+") * sum";o=.5===i?"inversesqrt("+u+")":1===i?"1.0/("+u+")":"exp(log("+u+") * float(-"+i+"));",this.userCode="\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int r = coords[1];\n        int c = coords[2];\n        int d = coords[3];\n        float x = getX(b, r, c, d);\n        float sum = 0.0;\n        for (int j = -"+a+"; j <= "+a+"; j++) {\n          int idx = d + j;\n          if (idx >= 0 && idx <=  "+s+") {\n            float z = getX(b, r, c, idx);\n            sum += z * z;\n          }\n        }\n        float val = x * "+o+";\n        setOutput(val);\n      }\n    "},ki=function(t,e,n,r,i){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=t,this.depth=t[3],this.depthRadius=e,this.bias=n,this.alpha=r,this.beta=i,this.userCode="\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int r = coords[1];\n        int c = coords[2];\n\n        float result = 0.0;\n        for (int d = 0; d < "+this.depth+"; ++d) {\n          int depthBegin = int(max(0.0, float(d - "+e+")));\n          int depthEnd = int(min(float("+this.depth+"),\n              float(d + "+e+" + 1)));\n\n          const int MIN_DEPTH_BEGIN = 0;\n          const int MAX_DEPTH_END = "+this.depth+";\n\n          float norm = 0.0;\n          for (int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k) {\n            if (k < depthBegin){\n              continue;\n            }\n            else if (k >= depthBegin && k < depthEnd) {\n              norm += getInputImage(b, r, c, k) * getInputImage(b, r, c, k);\n            }\n            else {\n              break;\n            }\n          }\n\n          norm = float("+r+") * norm + float("+n+");\n\n          for(int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k){\n            if (k < depthBegin){\n              continue;\n            }\n            else if (k >= depthBegin && k < depthEnd){\n              float dyi = -2.0 * float("+r+")\n                * float("+i+")\n                * getInputImage(b ,r ,c, k) * getOutputImage(b, r, c, d)\n                / norm;\n              if (k == d) {\n                dyi += pow(norm, -1.0 * "+i+");\n              }\n              if (k == coords[3]) {\n                dyi *= getDy(b, r, c, d);\n                result += dyi;\n              }\n            }\n            else {\n              break;\n            }\n          }\n      }\n      setOutput(result);\n      }\n    "},Ai=function(t){this.variableNames=["dy","maxPos"],this.outputShape=t.inShape;var e=t.strideHeight,n=t.strideWidth,r=t.dilationHeight,i=t.effectiveFilterHeight,o=t.effectiveFilterWidth,a=i-1-t.padInfo.top,s=o-1-t.padInfo.left,u=i*o-1;this.userCode="\n      const ivec2 pads = ivec2("+a+", "+s+");\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int d = coords[3];\n\n        ivec2 dyRCCorner = coords.yz - pads;\n        int dyRCorner = dyRCCorner.x;\n        int dyCCorner = dyRCCorner.y;\n\n        // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n        // ? = to be determined. : = across all values in that axis.\n        float dotProd = 0.0;\n        for (int wR = 0; wR < "+i+";\n          wR += "+r+") {\n          float dyR = float(dyRCorner + wR) / "+e+".0;\n\n          if (dyR < 0.0 || dyR >= "+t.outHeight+".0 || fract(dyR) > 0.0) {\n            continue;\n          }\n          int idyR = int(dyR);\n\n          for (int wC = 0; wC < "+o+"; wC++) {\n            float dyC = float(dyCCorner + wC) / "+n+".0;\n\n            if (dyC < 0.0 || dyC >= "+t.outWidth+".0 ||\n                fract(dyC) > 0.0) {\n              continue;\n            }\n            int idyC = int(dyC);\n\n            float dyValue = getDy(b, idyR, idyC, d);\n            int maxPosValue = "+u+" - int(getMaxPos(b, idyR, idyC, d));\n\n            // Get the current value, check it against the value from the\n            // position matrix.\n            int curPosValue = wR * "+o+" + wC;\n            float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n            dotProd += dyValue * mask;\n          }\n        }\n        setOutput(dotProd);\n      }\n    "},Ti=function(t,e,n,r,i,o){void 0===n&&(n=!1),void 0===r&&(r=!1),void 0===i&&(i=!1),void 0===o&&(o=null),this.variableNames=["matrixA","matrixB"],this.usesPackedTextures=!0,this.outputShape=e;var a=n?t[1]:t[2],s=Math.ceil(a/2),u=n?"i * 2, rc.y":"rc.y, i * 2",l=r?"rc.z, i * 2":"i * 2, rc.z",c=n?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],p=r?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],h="",f="";o&&(h="vec4 activation(vec4 x) {\n        "+o+"\n      }",f="result = activation(result);");var d=i?"result += getBiasAtOutCoords();":"";i&&this.variableNames.push("bias"),this.userCode="\n      "+h+"\n\n      const float sharedDimension = "+s+".0;\n\n      vec4 dot2x2ARowBCol(ivec3 rc) {\n        vec4 result = vec4(0);\n        for (int i = 0; i < "+s+"; i++) {\n          vec4 a = getMatrixA(rc.x, "+u+");\n          vec4 b = getMatrixB(rc.x, "+l+");\n\n          result += ("+c[0]+" * "+p[0]+") + ("+c[1]+" * "+p[1]+");\n        }\n        return result;\n      }\n\n      void main() {\n        ivec3 rc = getOutputCoords();\n        vec4 result = dot2x2ARowBCol(rc);\n\n        "+d+"\n\n        "+f+"\n\n        setOutput(result);\n      }\n    "},Ri=function(){function t(t,e,n){this.variableNames=["probs"],this.outputShape=[t,n],this.userCode="\n      uniform float seed;\n\n      void main() {\n        ivec2 coords = getOutputCoords();\n        int batch = coords[0];\n\n        float r = random(seed);\n        float cdf = 0.0;\n\n        for (int i = 0; i < "+(e-1)+"; i++) {\n          cdf += getProbs(batch, i);\n\n          if (r < cdf) {\n            setOutput(float(i));\n            return;\n          }\n        }\n\n        // If no other event happened, last event happened.\n        setOutput(float("+(e-1)+"));\n      }\n    "}return t.prototype.getCustomSetupFunc=function(t){var e=this;return function(n,r){null==e.seedLoc&&(e.seedLoc=n.getUniformLocation(r,"seed")),n.gl.uniform1f(e.seedLoc,t)}},t}(),Di=function(t,e,n,r){this.variableNames=["indices"],this.outputShape=[t,e],this.userCode="\n      void main() {\n        ivec2 coords = getOutputCoords();\n        int index = round(getIndices(coords.x));\n        setOutput(mix(float("+r+"), float("+n+"),\n                      float(index == coords.y)));\n      }\n    "},Oi=function(t){this.variableNames=["A"],this.isPackShader=!0,this.outputShape=t;var e=t.length;if(0===e)this.userCode="\n        void main() {\n          setOutput(vec4(getA(), 0., 0., 0.));\n        }\n      ";else{var n=on("rc",e),r=xn(e),i=function(t,e,n){if(1===t)return"rc > "+e[0];for(var r="",i=t-2;i<t;i++)r+=n[i]+" >= "+e[i],i<t-1&&(r+="||");return r}(e,t,n),o=function(t,e,n,r){if(1===t)return"";var i=r.slice(-2);return"\n    int r = "+i[0]+";\n    int c = "+i[1]+";\n    int rp1 = r + 1;\n    int cp1 = c + 1;\n\n    bool cEdge = cp1 >= "+e+";\n    bool rEdge = rp1 >= "+n+";\n  "}(e,t[t.length-1],t[t.length-2],n),a=function(t,e){var n=t.length,r=function(t,e){for(var n=[],r=0;r<=1;r++)for(var i=0;i<=1;i++){for(var o=(0===r?"r":"rp1")+", "+(0===i?"c":"cp1"),a=2;a<t;a++)o=e[e.length-1-a]+","+o;n.push(o)}return n}(n,e);return 1===n?"getA(rc),\n            rc + 1 >= "+t[0]+" ? 0. : getA(rc + 1),\n            0, 0":"getA("+r[0]+"),\n          cEdge ? 0. : getA("+r[1]+"),\n          rEdge ? 0. : getA("+r[2]+"),\n          rEdge || cEdge ? 0. : getA("+r[3]+")"}(t,n);this.userCode="\n        void main() {\n          "+r+" rc = getOutputCoords();\n\n          if("+i+") {\n            setOutput(vec4(0));\n          } else {\n            "+o+"\n\n            setOutput(vec4("+a+"));\n          }\n        }\n      "}};var _i=function(t,e,n){this.variableNames=["x"],this.outputShape=e.map(function(e,n){return e[0]+t[n]+e[1]});var r=t.length,i=xn(r),o=e.map(function(t){return t[0]}).join(","),a=e.map(function(e,n){return e[0]+t[n]}).join(","),s=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,r);this.userCode=1!==r?"\n      "+i+" start = "+i+"("+o+");\n      "+i+" end = "+i+"("+a+");\n\n      void main() {\n        "+i+" outC = getOutputCoords();\n        if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) {\n          setOutput(float("+n+"));\n        } else {\n          "+i+" coords = outC - start;\n          setOutput(getX("+s+"));\n        }\n      }\n    ":"\n        int start = "+o+";\n        int end = "+a+";\n\n        void main() {\n          int outC = getOutputCoords();\n          if (outC < start || outC >= end) {\n            setOutput(float("+n+"));\n          } else {\n            setOutput(getX(outC - start));\n          }\n        }\n      "},Mi=function(t,e,n){this.variableNames=["x"],this.usesPackedTextures=!0,this.outputShape=e.map(function(e,n){return e[0]+t[n]+e[1]});for(var r=t.length,i=xn(r),o=e.map(function(t){return t[0]}).join(","),a=e.map(function(e,n){return e[0]+t[n]}).join(","),s=on("rc",r),u=on("source",r),l=s[r-1]+" < "+this.outputShape[r-1],c=1===r?"source":"vec2("+u.slice(-2).join()+")",p=[i+" rc = outputLoc;",s[r-1]+" += 1;\n       if("+l+") {\n      ",1===r?"":"}\n       rc = outputLoc;\n       "+s[r-2]+" += 1;\n       if("+s[r-2]+" < "+this.outputShape[r-2]+") {",1===r?"":"  "+s[r-1]+" += 1;\n         if("+l+") {"],h=1===r?"rc < start || rc >= end":"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))",f="",d=0,m=1===r?2:4;d<m;d++)f+="\n        "+p[d]+"\n        if ("+h+") {\n          result["+d+"] = float("+n+");\n        } else {\n          "+i+" source = rc - start;\n          result["+d+"] = getChannel(getX("+u.join()+"), "+c+");\n        }\n      ";f+=1===r?"} ":"}}",this.userCode="\n      const "+i+" start = "+i+"("+o+");\n      const "+i+" end = "+i+"("+a+");\n\n      void main() {\n        "+i+" outputLoc = getOutputCoords();\n        vec4 result = vec4(0.);\n        "+f+"\n        setOutput(result);\n      }\n    "},Li=function(t,e,n){if(this.variableNames=["x"],"avg"===e&&n)throw new Error("Cannot compute positions for average pool.");var r=t.filterWidth,i=t.strideHeight,o=t.strideWidth,a=t.dilationHeight,s=t.dilationWidth,u=t.effectiveFilterHeight,l=t.effectiveFilterWidth,c=t.padInfo.top,p=t.padInfo.left;this.outputShape=t.outShape;var h="avg"===e,f="0.0";if(h||(f="-1.0 / 1e-20"),n)this.userCode="\n        const ivec2 strides = ivec2("+i+", "+o+");\n        const ivec2 pads = ivec2("+c+", "+p+");\n\n        void main() {\n          ivec4 coords = getOutputCoords();\n          int batch = coords[0];\n          int d = coords[3];\n\n          ivec2 xRCCorner = coords.yz * strides - pads;\n          int xRCorner = xRCCorner.x;\n          int xCCorner = xRCCorner.y;\n\n          // max/min x(?, ?, d) to get y(yR, yC, d).\n          // ? = to be determined\n          float minMaxValue = 0.0;\n          float minMaxValueFound = 0.0;\n          int minMaxPosition = 0;\n          float avgValue = 0.0;\n\n          for (int wR = 0; wR < "+u+";\n              wR += "+a+") {\n            int xR = xRCorner + wR;\n\n            if (xR < 0 || xR >= "+t.inHeight+") {\n              continue;\n            }\n\n            for (int wC = 0; wC < "+l+";\n                wC += "+s+") {\n              int xC = xCCorner + wC;\n\n              if (xC < 0 || xC >= "+t.inWidth+") {\n                continue;\n              }\n\n              float value = getX(batch, xR, xC, d);\n\n              // If a min / max value has already been found, use it. If not,\n              // use the current value.\n              float currMinMaxValue = mix(\n                  value, minMaxValue, minMaxValueFound);\n              if (value >= currMinMaxValue) {\n                minMaxValue = value;\n                minMaxValueFound = 1.0;\n                minMaxPosition = wR * "+l+" + wC;\n              }\n            }\n          }\n          setOutput(float(minMaxPosition));\n        }\n      ";else{var d=e+"("+e+"("+e+"(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])";"avg"===e&&(d="avgValue / count");var m=4*Math.floor(r/4),g=r%4,y="\n      if ("+h+") {\n        avgValue += dot(values, ones);\n      } else {\n        minMaxValue = max(values, minMaxValue);\n      }\n    ";this.userCode="\n      const ivec2 strides = ivec2("+i+", "+o+");\n      const ivec2 pads = ivec2("+c+", "+p+");\n      const float initializationValue = "+f+";\n      const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n      float count = 0.0;\n\n      float getValue(int batch, int xR, int xC, int d) {\n        if (xC < 0 || xC >= "+t.inWidth+") {\n          return initializationValue;\n        }\n        count += 1.0;\n        return getX(batch, xR, xC, d);\n      }\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int batch = coords[0];\n        int d = coords[3];\n\n        ivec2 xRCCorner = coords.yz * strides - pads;\n        int xRCorner = xRCCorner.x;\n        int xCCorner = xRCCorner.y;\n\n        // max/min x(?, ?, d) to get y(yR, yC, d).\n        // ? = to be determined\n        vec4 minMaxValue = vec4("+f+");\n        float avgValue = 0.0;\n        count = 0.0;\n\n        for (int wR = 0; wR < "+u+";\n            wR += "+a+") {\n          int xR = xRCorner + wR;\n\n          if (xR < 0 || xR >= "+t.inHeight+") {\n            continue;\n          }\n\n          for (int wC = 0; wC < "+m+"; wC += 4) {\n            int xC = xCCorner + wC * "+s+";\n\n            vec4 values = vec4(\n              getValue(batch, xR, xC, d),\n              getValue(batch, xR, xC + "+s+", d),\n              getValue(batch, xR, xC + 2 * "+s+", d),\n              getValue(batch, xR, xC + 3 * "+s+", d)\n            );\n\n            "+y+"\n          }\n\n          int xC = xCCorner + "+m+";\n          if ("+(1===g)+") {\n            vec4 values = vec4(\n              getValue(batch, xR, xC, d),\n              initializationValue,\n              initializationValue,\n              initializationValue\n            );\n\n            "+y+"\n          } else if ("+(2===g)+") {\n            vec4 values = vec4(\n              getValue(batch, xR, xC, d),\n              getValue(batch, xR, xC + "+s+", d),\n              initializationValue,\n              initializationValue\n            );\n\n            "+y+"\n          } else if ("+(3===g)+") {\n            vec4 values = vec4(\n              getValue(batch, xR, xC, d),\n              getValue(batch, xR, xC + "+s+", d),\n              getValue(batch, xR, xC + 2 * "+s+", d),\n              initializationValue\n            );\n\n            "+y+"\n          }\n        }\n        setOutput("+d+");\n      }\n    "}},Fi=function(t,e){this.variableNames=["x"];var n=t.windowSize,r=t.batchSize,i=t.inSize,o=Math.ceil(i/n);this.outputShape=[r,o];var a="0.0",s="";"prod"===e?a="1.0":"min"===e?(a="1.0 / 1e-20",s="min"):"max"===e&&(a="-1.0 / 1e-20",s="max");var u=e+"("+e+"("+e+"(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])";"sum"===e?u="sumValue":"prod"===e?u="prodValue":"all"===e?u="allValue":"any"===e&&(u="anyValue");var l=4*Math.floor(n/4),c=n%4,p="\n      if ("+("sum"===e)+") {\n        sumValue += dot(values, ones);\n      } else if ("+("prod"===e)+") {\n        vec2 tmp = vec2(values[0], values[1]) * vec2(values[2], values[3]);\n        prodValue *= tmp[0] * tmp[1];\n      } else {\n        minMaxValue = "+s+"(values, minMaxValue);\n      }\n    ",h="vec4";"all"===e?(a="1.0",p="\n        bool reducedAllValue = all(values);\n        float floatedReducedAllValue = float(reducedAllValue);\n        allValue = float(allValue >= 1.0 && floatedReducedAllValue >= 1.0);\n      ",h="bvec4"):"any"===e&&(a="0.0",p="\n        bool reducedAnyValue = any(values);\n        float floatedReducedAnyValue = float(reducedAnyValue);\n        anyValue = float(anyValue >= 1.0 || floatedReducedAnyValue >= 1.0);\n      ",h="bvec4");var f="";i%n>0&&(f="\n        if (inIdx < 0 || inIdx >= "+i+") {\n          return initializationValue;\n        }\n      "),this.userCode="\n      const float initializationValue = "+a+";\n      const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n      float getValue(int batch, int inIdx) {\n        "+f+"\n        return getX(batch, inIdx);\n      }\n\n      void main() {\n        ivec2 coords = getOutputCoords();\n        int batch = coords[0];\n        int outIdx = coords[1];\n        int inOffset = outIdx * "+n+";\n\n        vec4 minMaxValue = vec4("+a+");\n        float prodValue = 1.0;\n        float sumValue = 0.0;\n        float allValue = 1.0;\n        float anyValue = 0.0;\n\n        for (int i = 0; i < "+l+"; i += 4) {\n          int inIdx = inOffset + i;\n          "+h+" values = "+h+"(\n            getValue(batch, inIdx),\n            getValue(batch, inIdx + 1),\n            getValue(batch, inIdx + 2),\n            getValue(batch, inIdx + 3)\n          );\n\n          "+p+"\n        }\n\n        int inIdx = inOffset + "+l+";\n        if ("+(1===c)+") {\n          "+h+" values = "+h+"(\n            getValue(batch, inIdx),\n            initializationValue,\n            initializationValue,\n            initializationValue\n          );\n\n          "+p+"\n        } else if ("+(2===c)+") {\n          "+h+" values = "+h+"(\n            getValue(batch, inIdx),\n            getValue(batch, inIdx + 1),\n            initializationValue,\n            initializationValue\n          );\n\n          "+p+"\n        } else if ("+(3===c)+") {\n          "+h+" values = "+h+"(\n            getValue(batch, inIdx),\n            getValue(batch, inIdx + 1),\n            getValue(batch, inIdx + 2),\n            initializationValue\n          );\n\n          "+p+"\n        }\n        setOutput("+u+");\n      }\n    "},zi=function(t,e){this.variableNames=["A"],this.usesPackedTextures=!0,this.outputShape=t;for(var n="",r=0;r<4;r++){var i="thisRC = rc;";r%2==1&&(i+="thisRC.z += 1;"),r>1&&(i+="thisRC.y += 1;"),n+="\n        "+i+"\n        "+(r>0?"if(thisRC.y < rows && thisRC.z < cols){":"")+"\n          int flatIndex = getFlatIndex(thisRC);\n\n          ivec3 inputRC = inputCoordsFromReshapedOutCoords(flatIndex);\n          vec2 inputRCInnerDims = vec2(float(inputRC.y),float(inputRC.z));\n\n          result["+r+"] =\n            getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims);\n        "+(r>0?"}":"")+"\n      "}this.userCode="\n      "+function(t){return"\n    ivec3 inputCoordsFromReshapedOutCoords(int index) {\n      "+cn(["r","c","d"],t)+"\n      return ivec3(r, c, d);\n    }\n  "}(e)+"\n      "+function(t){return"\n    int getFlatIndex(ivec3 coords) {\n      return round("+function(t,e){if(t.length!==e.length)throw new Error("Vectors to be dotted must be of the same length -got "+t.length+" and "+e.length);for(var n=[],r=Math.floor(t.length/4),i=t.length%4,o=0;o<r;o++){var a=t.slice(4*o,4*o+4),s=e.slice(4*o,4*o+4);n.push(pn(a)+", "+pn(s))}return 0!==i&&(a=t.slice(4*r),s=e.slice(4*r),1===a.length&&(a=a.map(function(t){return"float("+t+")"}),s=s.map(function(t){return"float("+t+")"})),n.push(pn(a)+", "+pn(s))),n.map(function(t,e){return"dot("+t+")"}).join("+")}(["coords.x","coords.y","coords.z"],V(t).map(function(t){return t.toString()}).concat(["1."]))+");\n    }\n  "}(t)+"\n\n      void main() {\n        ivec3 rc = getOutputCoords();\n\n        vec4 result = vec4(0.);\n\n        ivec3 thisRC;\n        int rows = "+t[1]+";\n        int cols = "+t[2]+";\n\n        "+n+"\n\n        setOutput(result);\n      }\n    "};var Pi=function(t,e,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=e.shape;var r=e.shape,i=r[1],o=r[2],a=t.shape,s=a[1],u=a[2],l=[n&&s>1?i-1:i,n&&u>1?o-1:o],c=[n&&s>1?s-1:s,n&&u>1?u-1:u],p=l[0]/c[0],h=l[1]/c[1],f=1/p,d=1/h,m=2*Math.ceil(f)+2,g=2*Math.ceil(d)+2;this.userCode="\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int d = coords[3];\n        int r = coords[1];\n        int c = coords[2];\n\n        float accumulator = 0.0;\n\n        const float heightScale = float("+p+");\n        const float widthScale = float("+h+");\n\n        const float invHeightScale = float("+f+");\n        const float invWidthScale = float("+d+");\n\n        const int winHeight = int("+m+");\n        const int winWidth = int("+g+");\n\n        // Compute bounds for where in dy we will look\n        float startRLerp = floor(float(r) * invHeightScale);\n        int startDyR = int(startRLerp - float(winHeight / 2));\n\n        float startCLerp = floor(float(c) * invWidthScale);\n        int startDyC = int(startCLerp - float(winWidth / 2));\n\n        // Loop over dy\n        for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n          int dyR = dyROffset + startDyR;\n\n          // Guard against the window exceeding the bounds of dy\n          if (dyR < 0 || dyR >= "+s+") {\n            continue;\n          }\n\n          for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n            int dyC = dyCOffset + startDyC;\n\n            // Guard against the window exceeding the bounds of dy\n            if (dyC < 0 || dyC >= "+u+") {\n              continue;\n            }\n\n            float dxR = float(dyR) * heightScale;\n            int topDxRIndex = int(floor(dxR));\n            int bottomDxRIndex = int(min(ceil(dxR), "+(i-1)+".0));\n            float dxRLerp = dxR - float(topDxRIndex);\n            float inverseDxRLerp = 1.0 - dxRLerp;\n\n            float dxC = float(dyC) * widthScale;\n            int leftDxCIndex = int(floor(dxC));\n            int rightDxCIndex = int(min(ceil(dxC), "+(o-1)+".0));\n            float dxCLerp = dxC - float(leftDxCIndex);\n            float inverseDxCLerp = 1.0 - dxCLerp;\n\n            if (r == topDxRIndex && c == leftDxCIndex) {\n              // topLeft\n              accumulator +=\n                getDy(b, dyR, dyC, d) * inverseDxRLerp * inverseDxCLerp;\n            }\n\n            if (r == topDxRIndex && c == rightDxCIndex) {\n              // topRight\n              accumulator += getDy(b, dyR, dyC, d) * inverseDxRLerp * dxCLerp;\n            }\n\n            if (r == bottomDxRIndex && c == leftDxCIndex) {\n              // bottomLeft\n              accumulator += getDy(b, dyR, dyC, d) * dxRLerp * inverseDxCLerp;\n            }\n\n            if (r == bottomDxRIndex && c == rightDxCIndex) {\n              // bottomRight\n              accumulator += getDy(b, dyR, dyC, d) * dxRLerp * dxCLerp;\n            }\n          }\n        }\n        // End loop over dy\n\n        setOutput(accumulator);\n      }\n    "},Bi=function(t,e,n,r){this.variableNames=["A"],this.outputShape=[];var i=t[0],o=t[1],a=t[2],s=t[3];this.outputShape=[i,e,n,s];var u=[r&&e>1?o-1:o,r&&n>1?a-1:a],l=[r&&e>1?e-1:e,r&&n>1?n-1:n];this.userCode="\n      const vec2 effectiveInputOverOutputRatioRC = vec2(\n          "+u[0]/l[0]+",\n          "+u[1]/l[1]+");\n      const vec2 inputShapeRC = vec2("+o+".0, "+a+".0);\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int d = coords[3];\n        ivec2 yRC = coords.yz;\n\n        // Fractional source index.\n        vec2 sourceFracIndexRC = vec2(yRC) * effectiveInputOverOutputRatioRC;\n\n        // Compute the four integer indices.\n        ivec2 sourceFloorRC = ivec2(sourceFracIndexRC);\n        ivec2 sourceCeilRC = ivec2(\n          min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n        float topLeft = getA(b, sourceFloorRC.x, sourceFloorRC.y, d);\n        float bottomLeft = getA(b, sourceCeilRC.x, sourceFloorRC.y, d);\n        float topRight = getA(b, sourceFloorRC.x, sourceCeilRC.y, d);\n        float bottomRight = getA(b, sourceCeilRC.x, sourceCeilRC.y, d);\n\n        vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC);\n\n        float top = topLeft + (topRight - topLeft) * fracRC.y;\n        float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y;\n        float newValue = top + (bottom - top) * fracRC.x;\n\n        setOutput(newValue);\n      }\n    "},Ui=function(t,e,n,r){this.variableNames=["A"],this.usesPackedTextures=!0,this.outputShape=[];var i=t[0],o=t[1],a=t[2],s=t[3];this.outputShape=[i,e,n,s];var u=[r&&e>1?o-1:o,r&&n>1?a-1:a],l=[r&&e>1?e-1:e,r&&n>1?n-1:n];this.userCode="\n      const vec3 effectiveInputOverOutputRatioRC = vec3(\n          "+u[0]/l[0]+",\n          "+u[1]/l[1]+",\n          "+u[1]/l[1]+");\n      const vec3 inputShapeRC = vec3("+o+".0, "+a+".0,\n                                     "+a+".0);\n\n      float getAValue(int b, int r, int c, int d) {\n        return getChannel(getA(b, r, c, d), vec2(c, d));\n      }\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int d = coords[3];\n        // Calculate values for next column in yRC.z.\n        ivec3 yRC = coords.yzz + ivec3(0, 0, 1);\n\n        // Fractional source index.\n        vec3 sourceFracIndexRC = vec3(yRC) * effectiveInputOverOutputRatioRC;\n\n        // Compute the four integer indices.\n        ivec3 sourceFloorRC = ivec3(sourceFracIndexRC);\n        ivec3 sourceCeilRC = ivec3(\n          min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n        \n        // Should we calculate next column and row elements in 2x2 packed cell.\n        bool hasNextCol = d < "+(s-1)+"; \n        bool hasNextRow = coords.z < "+(n-1)+";\n\n        // In parallel, construct four corners for all four components in\n        // packed 2x2 cell.\n        vec4 topLeft = vec4(\n          getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d),\n          hasNextCol ? getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d + 1)\n                     : 0.0,\n          hasNextRow ? getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d)\n                     : 0.0,\n          (hasNextRow && hasNextCol) ?\n            getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n        vec4 bottomLeft = vec4(\n          getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d),\n          hasNextCol ? getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d + 1)\n                     : 0.0,\n          hasNextRow ? getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d)\n                     : 0.0,\n          (hasNextRow && hasNextCol) ?\n            getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n        vec4 topRight = vec4(\n          getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d),\n          hasNextCol ? getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d + 1)\n                     : 0.0,\n          hasNextRow ? getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d)\n                     : 0.0,\n          (hasNextRow && hasNextCol) ?\n            getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n        vec4 bottomRight = vec4(\n          getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d),\n          hasNextCol ? getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d + 1)\n                     : 0.0,\n          hasNextRow ? getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d)\n                     : 0.0,\n          (hasNextRow && hasNextCol) ?\n            getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n        vec3 fracRC = sourceFracIndexRC - vec3(sourceFloorRC);\n\n        vec4 top = mix(topLeft, topRight, fracRC.yyzz);\n        vec4 bottom = mix(bottomLeft, bottomRight, fracRC.yyzz);\n        vec4 newValue = mix(top, bottom, fracRC.x);\n\n        setOutput(newValue);\n      }\n    "},Wi=function(t,e,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=e.shape;var r=e.shape,i=r[1],o=r[2],a=t.shape,s=a[1],u=a[2],l=[n&&s>1?i-1:i,n&&u>1?o-1:o],c=[n&&s>1?s-1:s,n&&u>1?u-1:u],p=l[0]/c[0],h=l[1]/c[1],f=1/p,d=1/h,m=2*Math.ceil(f)+2,g=2*Math.ceil(d)+2;this.userCode="\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int d = coords[3];\n        int r = coords[1];\n        int c = coords[2];\n\n        float accumulator = 0.0;\n\n        const float heightScale = float("+p+");\n        const float widthScale = float("+h+");\n\n        const float invHeightScale = float("+f+");\n        const float invWidthScale = float("+d+");\n\n        const int winHeight = int("+m+");\n        const int winWidth = int("+g+");\n\n        // Compute bounds for where in dy we will look\n        float startRLerp = floor(float(r) * invHeightScale);\n        int startDyR = int(floor(startRLerp - float(winHeight / 2)));\n\n        float startCLerp = floor(float(c) * invWidthScale);\n        int startDyC = int(floor(startCLerp - float(winWidth / 2)));\n\n        // Loop over dy\n        for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n          int dyR = dyROffset + startDyR;\n\n          // Guard against the window exceeding the bounds of dy\n          if (dyR < 0 || dyR >= "+s+") {\n            continue;\n          }\n\n          for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n            int dyC = dyCOffset + startDyC;\n\n            // Guard against the window exceeding the bounds of dy\n            if (dyC < 0 || dyC >= "+u+") {\n              continue;\n            }\n\n            float sourceFracRow =\n              float("+l[0]+") *\n                (float(dyR) / float("+c[0]+"));\n\n            float sourceFracCol =\n                float("+l[1]+") *\n                  (float(dyC) / float("+c[1]+"));\n\n            int sourceNearestRow = int(min(\n                float(int("+i+") - 1),\n                "+n+" ? float(round(sourceFracRow)) :\n                                  float(floor(sourceFracRow))));\n\n            int sourceNearestCol = int(min(\n                float(int("+o+") - 1),\n                "+n+" ? float(round(sourceFracCol)) :\n                                  float(floor(sourceFracCol))));\n\n            if (r == sourceNearestRow && c == sourceNearestCol) {\n              accumulator += getDy(b, dyR, dyC, d);\n            }\n          }\n        }\n        // End loop over dy\n\n        setOutput(accumulator);\n      }\n    "},Vi=function(t,e,n,r){this.variableNames=["A"],this.outputShape=[];var i=t[0],o=t[1],a=t[2],s=t[3];this.outputShape=[i,e,n,s];var u=[r&&e>1?o-1:o,r&&n>1?a-1:a],l=[r&&e>1?e-1:e,r&&n>1?n-1:n],c=r?"0.5":"0.0";this.userCode="\n      const vec2 effectiveInputOverOutputRatioRC = vec2(\n          "+u[0]/l[0]+",\n          "+u[1]/l[1]+");\n      const vec2 inputShapeRC = vec2("+o+".0, "+a+".0);\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int d = coords[3];\n        ivec2 yRC = coords.yz;\n\n        // Fractional source index.\n        vec2 sourceFracIndexRC = vec2(yRC) * effectiveInputOverOutputRatioRC;\n\n        // Compute the coordinators of nearest neighbor point.\n        ivec2 sourceNearestRC = ivec2(\n          min(inputShapeRC - 1.0, floor(sourceFracIndexRC + "+c+")));\n\n        float newValue = getA(b, sourceNearestRC.x, sourceNearestRC.y, d);\n\n        setOutput(newValue);\n      }\n    "},ji=function(t,e){this.variableNames=["x"];var n=t.length;if(n>4)throw new Error("WebGL backend: Reverse of rank-"+n+" tensor is not yet supported");if(this.outputShape=t,1!==n){var r=t.map(function(n,r){return function(n){return-1!==e.indexOf(n)&&1!==t[n]?t[n]+" - coords["+n+"] - 1":"coords["+n+"]"}(r)}).join(","),i=xn(n);this.userCode="\n      void main() {\n        "+i+" coords = getOutputCoords();\n        setOutput(getX("+r+"));\n      }\n    "}else this.userCode="\n        void main() {\n          int coord = getOutputCoords();\n          setOutput(getX("+t[0]+" - coord - 1));\n        }\n      "},qi=function(t,e,n,r,i,o,a){void 0===a&&(a=!0),this.variableNames=["updates","indices","defaultValue"],this.outputShape=o;var s=xn(i.length),u=xn(o.length),l="";1===n?l="i":2===n&&(l="i, j");var c="getIndices("+l+")",p="";1===r?p="i":2===r&&(p="i, coords[1]");var h="getUpdates("+p+")",f=e>1?"strides[j]":"strides";this.userCode="\n        "+s+" strides = "+s+"("+i+");\n\n        void main() {\n          "+u+" coords = getOutputCoords();\n          float sum = 0.0;\n          bool found = false;\n          for (int i = 0; i < "+t+"; i++) {\n            int flattenedIndex = 0;\n            for (int j = 0; j < "+e+"; j++) {\n              int index = round("+c+");\n              flattenedIndex += index * "+f+";\n            }\n            if (flattenedIndex == coords[0]) {\n              sum += "+h+";\n              found = true;\n            }\n          }\n          setOutput(mix(getDefaultValue(), sum, float(found)));\n        }\n      "},Gi=function(t,e){this.variableNames=["x","segmentIds"];var n=t.windowSize,r=t.batchSize,i=t.inSize,o=t.numSegments,a=o*Math.ceil(i/n);this.outputShape=[r,a];var s=4*Math.floor(n/4),u=n%4,l="\n        sumValue += dot(values, segFilter);\n    ",c="";i%n>0&&(c="\n        if (inIdx < 0 || inIdx >= "+i+") {\n          return initializationValue;\n        }\n      ");var p="";i%n>0&&(p="\n        if (inIdx < 0 || inIdx >= "+i+") {\n          return -1.0;\n        }\n      "),this.userCode="\n      const float initializationValue = 0.0;\n\n      float getValue(int batch, int inIdx) {\n        "+c+"\n        return getX(batch, inIdx);\n      }\n\n      float getSegmentIdAtIndex(int inIdx) {\n        "+p+"\n        return getSegmentIds(inIdx);\n      }\n\n      void main() {\n        ivec2 coords = getOutputCoords();\n        int batch = coords[0];\n        int outIdx = coords[1];\n        int inOffset = int(floor(float(outIdx) / float(\n          "+o+")) * float("+n+"));\n        int currentSeg = int(mod(float(outIdx), float("+o+")));\n\n        float sumValue = 0.0;\n\n        for (int i = 0; i < "+s+"; i += 4) {\n          int inIdx = inOffset + i;\n          vec4 values = vec4(\n            getValue(batch, inIdx),\n            getValue(batch, inIdx + 1),\n            getValue(batch, inIdx + 2),\n            getValue(batch, inIdx + 3)\n          );\n\n          vec4 segFilter = vec4(\n            int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n            int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n            int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n            int(getSegmentIdAtIndex(inIdx + 3)) == currentSeg ? 1 : 0\n          );\n\n          "+l+"\n        }\n\n        int inIdx = inOffset + "+s+";\n        if ("+(1===u)+") {\n          vec4 values = vec4(\n            getValue(batch, inIdx),\n            initializationValue,\n            initializationValue,\n            initializationValue\n          );\n\n          int inIdxSeg = int(getSegmentIdAtIndex(inIdx));\n\n          vec4 segFilter = vec4(\n            int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n            0,\n            0,\n            0\n          );\n\n          "+l+"\n        } else if ("+(2===u)+") {\n          vec4 values = vec4(\n            getValue(batch, inIdx),\n            getValue(batch, inIdx + 1),\n            initializationValue,\n            initializationValue\n          );\n\n          vec4 segFilter = vec4(\n            int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n            int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n              0,\n              0\n          );\n\n          "+l+"\n        } else if ("+(3===u)+") {\n          vec4 values = vec4(\n            getValue(batch, inIdx),\n            getValue(batch, inIdx + 1),\n            getValue(batch, inIdx + 2),\n            initializationValue\n          );\n\n          vec4 segFilter = vec4(\n            int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n            int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n            int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n            0\n          );\n\n          "+l+"\n        }\n        setOutput(sumValue);\n      }\n    "},Hi=function(t,e,n){var r,i;if(this.variableNames=["c","a","b"],this.outputShape=e,n>4)throw Error("Where for rank "+n+" is not yet supported");if(1===n)i="resRC",r="resRC";else{for(var o=["resRC.x","resRC.y","resRC.z","resRC.w"],a=[],s=[],u=0;u<e.length;u++)s.push(""+o[u]),u<t&&a.push(""+o[u]);r=a.join(),i=s.join()}var l=xn(n);this.userCode="\n      void main() {\n        "+l+" resRC = getOutputCoords();\n        float cVal = getC("+r+");\n        if (cVal >= 1.0) {\n          setOutput(getA("+i+"));\n        } else {\n          setOutput(getB("+i+"));\n        }\n      }\n    "},Ki=function(){function t(t){this.variableNames=["source"],this.outputShape=t,this.rank=t.length;var e,n=xn(this.rank),r="uniform int start["+this.rank+"];",i=function(t){if(1===t)return"sourceLoc";if(t<=6)return $i.slice(0,t).map(function(t){return"sourceLoc."+t}).join(",");throw Error("Slicing for rank "+t+" is not yet supported")}(this.rank);e="\n        "+n+" sourceLoc;\n        "+n+" coords = getOutputCoords();\n        "+t.map(function(t,e){return"sourceLoc."+$i[e]+" = start["+e+"] + coords."+$i[e]+";"}).join("\n")+"\n      ",this.userCode="\n      "+r+"\n      void main() {\n        "+e+"\n        setOutput(getSource("+i+"));\n      }\n    "}return t.prototype.getCustomSetupFunc=function(t){var e=this;if(t.length!==this.rank)throw Error("The rank ("+this.rank+") of the program must match the length of start ("+t.length+")");return function(n,r){null==e.startLoc&&(e.startLoc=n.getUniformLocationNoThrow(r,"start"),null==e.startLoc)||n.gl.uniform1iv(e.startLoc,t)}},t}(),$i=["x","y","z","w","u","v"];var Xi=function(){function t(t){this.variableNames=["source"],this.usesPackedTextures=!0,this.outputShape=t,this.rank=t.length;var e=xn(this.rank),n=on("coords",this.rank),r=on("sourceLoc",this.rank),i=1===this.rank?"sourceLoc":"vec2("+r.slice(-2).join()+")",o="getChannel(getSource("+r.join()+"), "+i+")",a="\n      result.x = "+o+";\n      if (++"+n[this.rank-1]+" < "+t[this.rank-1]+") {\n        ++"+r[this.rank-1]+";\n        result.y = "+o+";\n        --"+r[this.rank-1]+";\n      }\n    ",s=1===this.rank?"":"\n      --"+n[this.rank-1]+";\n      if (++"+n[this.rank-2]+" < "+t[this.rank-2]+") {\n        ++"+r[this.rank-2]+";\n        result.z = "+o+";\n        if (++"+n[this.rank-1]+" < "+t[this.rank-1]+") {\n          ++"+r[this.rank-1]+";\n          result.w = "+o+";\n        }\n      }\n    ",u=this.rank<=4?"sourceLoc = coords +\n            "+e+"("+t.map(function(t,e){return"start["+e+"]"}).join()+");":t.map(function(t,e){return r[e]+" = "+n[e]+" + start["+e+"];"}).join("\n");this.userCode="\n      uniform int start["+this.rank+"];\n      void main() {\n        "+e+" coords = getOutputCoords();\n        "+e+" sourceLoc;\n        "+u+" \n        vec4 result = vec4(0.);\n        "+a+"\n        "+s+"\n        setOutput(result);\n      }\n    "}return t.prototype.getCustomSetupFunc=function(t){var e=this;if(t.length!==this.rank)throw Error("The rank ("+this.rank+") of the program must match the length of start ("+t.length+")");return function(n,r){null==e.startLoc&&(e.startLoc=n.getUniformLocationNoThrow(r,"start"),null==e.startLoc)||n.gl.uniform1iv(e.startLoc,t)}},t}(),Yi=function(t,e,n,r){this.variableNames=["x"];var i=n.filter(function(t,e){return-1===r.indexOf(e)});this.outputShape=i;var o=n.length,a=xn(n.length),s=xn(i.length),u="";if(1===o)u="coords * strides + begin";else{var l=0;u=n.map(function(t,e){return-1===r.indexOf(e)?(l++,1===i.length?"coords * strides["+e+"] + begin["+e+"]":"coords["+(l-1)+"] * strides["+e+"] + begin["+e+"]"):"begin["+e+"]"}).join(",")}this.userCode="\n      "+a+" begin = "+a+"("+t+");\n      "+a+" strides = "+a+"("+e+");\n\n      void main() {\n        "+s+" coords = getOutputCoords();\n        setOutput(getX("+u+"));\n      }\n    "},Ji=function(){function t(t){this.gpgpu=t,this.numUsedTextures=0,this.numFreeTextures=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}return t.prototype.acquireTexture=function(t,e,n){var r,i=Zi(e,n),o=Qi(t,i,n);if(o in this.freeTextures||(this.freeTextures[o]=[]),o in this.usedTextures||(this.usedTextures[o]=[]),this.freeTextures[o].length>0){this.numFreeTextures--,this.numUsedTextures++,this.log();var a=this.freeTextures[o].shift();return this.usedTextures[o].push(a),a}return this.numUsedTextures++,this.log(),i===lr.PACKED_2X2_FLOAT32?r=this.gpgpu.createPackedMatrixTexture(t[0],t[1]):i===lr.PACKED_2X2_FLOAT16?r=this.gpgpu.createFloat16PackedMatrixTexture(t[0],t[1]):i===lr.UNPACKED_FLOAT32?r=this.gpgpu.createFloat32MatrixTexture(t[0],t[1]):i===lr.UNPACKED_FLOAT16?r=this.gpgpu.createFloat16MatrixTexture(t[0],t[1]):i===lr.PACKED_4X1_UNSIGNED_BYTE&&(r=this.gpgpu.createUnsignedBytesMatrixTexture(t[0],t[1])),this.usedTextures[o].push(r),r},t.prototype.releaseTexture=function(t,e,n,r){if(null!=this.freeTextures){var i=Qi(e,Zi(n,r),r);i in this.freeTextures||(this.freeTextures[i]=[]),this.freeTextures[i].push(t),this.numFreeTextures++,this.numUsedTextures--;var o=this.usedTextures[i],a=o.indexOf(t);if(a<0)throw new Error("Cannot release a texture that was never provided by this texture manager");o.splice(a,1),this.log()}},t.prototype.log=function(){if(this.logEnabled){var t=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",this.numFreeTextures+" / "+this.numUsedTextures,"("+t+")")}},t.prototype.getNumUsedTextures=function(){return this.numUsedTextures},t.prototype.getNumFreeTextures=function(){return this.numFreeTextures},t.prototype.dispose=function(){var t=this;if(null!=this.freeTextures){for(var e in this.freeTextures)this.freeTextures[e].forEach(function(e){t.gpgpu.deleteMatrixTexture(e)});for(var e in this.usedTextures)this.usedTextures[e].forEach(function(e){t.gpgpu.deleteMatrixTexture(e)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0}},t}();function Zi(t,e){if(t===ur.UPLOAD)return e?lr.PACKED_2X2_FLOAT32:lr.UNPACKED_FLOAT32;if(t===ur.RENDER||null==t)return e?Bt.get("WEBGL_RENDER_FLOAT32_ENABLED")?lr.PACKED_2X2_FLOAT32:lr.PACKED_2X2_FLOAT16:Bt.get("WEBGL_RENDER_FLOAT32_ENABLED")?lr.UNPACKED_FLOAT32:lr.UNPACKED_FLOAT16;if(t===ur.DOWNLOAD||t===ur.PIXELS)return lr.PACKED_4X1_UNSIGNED_BYTE;throw new Error("Unknown logical texture type "+t)}function Qi(t,e,n){return t[0]+"_"+t[1]+"_"+e+"_"+n}var to=function(t,e){this.variableNames=["A"];for(var n=new Array(t.length),r=0;r<n.length;r++)n[r]=t[r]*e[r];this.outputShape=n,this.rank=n.length;var i=xn(this.rank),o=function(t){var e=t.length;if(e>5)throw Error("Tile for rank "+e+" is not yet supported");if(1===e)return"imod(resRC, "+t[0]+")";for(var n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],r=[],i=0;i<t.length;i++)r.push("imod("+n[i]+", "+t[i]+")");return r.join()}(t);this.userCode="\n      void main() {\n        "+i+" resRC = getOutputCoords();\n        setOutput(getA("+o+"));\n      }\n    "};var eo=function(t,e){this.variableNames=["A"];for(var n=new Array(t.length),r=0;r<n.length;r++)n[r]=t[e[r]];this.outputShape=n,this.rank=n.length;var i=xn(this.rank),o=function(t){var e=t.length;if(e>6)throw Error("Transpose for rank "+e+" is not yet supported");for(var n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],r=new Array(e),i=0;i<t.length;i++)r[t[i]]=n[i];return r.join()}(e);this.userCode="\n    void main() {\n      "+i+" resRC = getOutputCoords();\n      setOutput(getA("+o+"));\n    }\n    "};var no=function(t,e){this.variableNames=["A"],this.usesPackedTextures=!0;for(var n=new Array(t.length),r=0;r<n.length;r++)n[r]=t[e[r]];if(this.outputShape=n,this.rank=n.length,this.rank>6)throw Error("Packed transpose for rank "+this.rank+" is not yet supported.");var i=xn(this.rank),o=rn("rc",this.rank),a=new Array(this.rank);for(r=0;r<e.length;r++)a[e[r]]=o[r];var s="vec2("+a.slice(-2).join()+")",u="++"+o[this.rank-1]+" < "+n[this.rank-1],l="getChannel(getA("+a.join()+"), "+s+")";this.userCode="\n    void main() {\n      "+i+" rc = getOutputCoords();\n      vec4 result = vec4(0.);\n      result[0] = "+l+";\n      if("+u+") {\n        result[1] = "+l+";\n      }\n      --"+o[this.rank-1]+";\n      if(++"+o[this.rank-2]+" < "+n[this.rank-2]+") {\n        result[2] = "+l+";\n        if("+u+") {\n          result[3] = "+l+";\n        }\n      }  \n      setOutput(result);\n    }\n    "},ro=1.7580993408473768,io=1.0507009873554805,oo=function(){function t(t,e){this.variableNames=["A"],this.outputShape=t,this.userCode="\n      uniform float NAN;\n      float unaryOperation(float x) {\n        "+e+"\n      }\n\n      void main() {\n        float x = getAAtOutCoords();\n        float y = unaryOperation(x);\n\n        setOutput(y);\n      }\n    "}return t.prototype.getCustomSetupFunc=function(){var t=this;return function(e,n){null==t.startLoc&&(t.startLoc=e.getUniformLocationNoThrow(n,"NAN"),null==t.startLoc)||e.gl.uniform1f(t.startLoc,NaN)}},t}(),ao="if (isNaN(x)) return x;",so="return x;",uo=ao+"\n  return (x < 0.0) ? 0.0 : x;\n",lo="\n  // Stable and Attracting Fixed Point (0, 1) for Normalized Weights.\n  // see: https://arxiv.org/abs/1706.02515\n  float scaleAlpha = "+ro+";\n  float scale = "+io+";\n  return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0);\n";var co="return exp(x);",po=ao+"\n  return sin(x);\n",ho=ao+"\n  return cos(x);\n",fo=ao+"\n  return atan(x);\n",mo=ao+"\n  if (x < 1.0) return NAN;\n  return log(x + sqrt(x * x - 1.0));",go=ao+"\n  if ((x < -1.0) || (x > 1.0)) return NAN;\n  return (log(1.0 + x) - log(1.0 - x)) / 2.0;",yo="return x;",vo="\n  vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0)));\n\n  result.r = isNaN(x.r) ? x.r : result.r;\n  result.g = isNaN(x.g) ? x.g : result.g;\n  result.b = isNaN(x.b) ? x.b : result.b;\n  result.a = isNaN(x.a) ? x.a : result.a;\n\n  return result;\n",bo=function(){function t(t,e){this.variableNames=["A"],this.usesPackedTextures=!0,this.outputShape=t,this.userCode="\n      uniform float NAN;\n      vec4 unaryOperation(vec4 x) {\n        "+e+"\n      }\n\n      void main() {\n        vec4 x = getAAtOutCoords();\n        vec4 y = unaryOperation(x);\n\n        setOutput(y);\n      }\n    "}return t.prototype.getCustomSetupFunc=function(){var t=this;return function(e,n){null==t.startLoc&&(t.startLoc=e.getUniformLocationNoThrow(n,"NAN"),null==t.startLoc)||e.gl.uniform1f(t.startLoc,NaN)}},t}(),wo=function(t){this.variableNames=["A"],this.usesPackedTextures=!0,this.outputShape=t;var e=t.length,n=on("rc",e),r=xn(e),i=function(t,e){if(1===t)return"rc";for(var n="",r=0;r<t;r++)n+=e[r],r<t-1&&(n+=",");return n}(e,n),o=n.slice(-2),a=e<=1?"rc":"vec2("+o.join(",")+")";this.userCode="\n      void main() {\n        "+r+" rc = getOutputCoords();\n        vec4 packedInput = getA("+i+");\n\n        setOutput(getChannel(packedInput, "+a+"));\n      }\n    "};var xo=Se({concat_:function(t,e){void 0===e&&(e=0),d(t.length>=1,function(){return"Pass at least one tensor to concat"});var n=Ne(t,"tensors","concat");e=I(e,n[0].shape)[0];var r=ue(n.map(function(t){return t.shape}),e);if(0===v(r))return Te([],r);if(1===(n=n.filter(function(t){return t.size>0})).length)return n[0];var i=n.map(function(t){return t.shape});!function(t,e){var n=t[0].length;t.forEach(function(t,e){d(t.length===n,function(){return"Error in concat"+n+"D: rank of tensors["+e+"] must be the same as the rank of the rest ("+n+")"})}),d(e>=0&&e<n,function(){return"Error in concat"+n+"D: axis must be between 0 and "+(n-1)+"."});var r=t[0];t.forEach(function(t,i){for(var o=0;o<n;o++)d(o===e||t[o]===r[o],function(){return"Error in concat"+n+"D: Shape of tensors["+i+"] ("+t+") does not match the shape of the rest ("+r+") along the non-concatenated axis "+i+"."})})}(i,e);var o=n;return Bt.engine.runKernel(function(t){return t.concat(n,e)},o,function(t){var n=i.map(function(t){return t[e]});return Io(t,n,e).map(function(t){return function(){return t}})})}}),No=Se({concat1d_:function(t){return xo(t,0)}}),So=Se({concat2d_:function(t,e){return xo(t,e)}}),Co=Se({concat3d_:function(t,e){return xo(t,e)}}),Eo=Se({concat4d_:function(t,e){return xo(t,e)}}),Io=Se({split_:function(t,e,n){void 0===n&&(n=0);var r,i=xe(t,"x","split");return n=I(n,i.shape)[0],"number"==typeof e?(d(i.shape[n]%e==0,function(){return"Number of splits must evenly divide the axis."}),r=new Array(e).fill(i.shape[n]/e)):(d(i.shape[n]===e.reduce(function(t,e){return t+e}),function(){return"The sum of sizes must match the size of the axis dimension."}),r=e),Bt.engine.runKernel(function(t){return t.split(i,r,n)},{$x:i},function(t){return{$x:function(){return xo(t,n)}}})}});function ko(t,e){return t(e={exports:{}},e.exports),e.exports}var Ao=ko(function(t){!function(t,e,n){function r(t,e){return e.c=t.c,e.s0=t.s0,e.s1=t.s1,e.s2=t.s2,e}function i(t,e){var n=new function(t){var e,n=this,r=(e=4022871197,function(t){t=t.toString();for(var n=0;n<t.length;n++){var r=.02519603282416938*(e+=t.charCodeAt(n));r-=e=r>>>0,e=(r*=e)>>>0,e+=4294967296*(r-=e)}return 2.3283064365386963e-10*(e>>>0)});n.next=function(){var t=2091639*n.s0+2.3283064365386963e-10*n.c;return n.s0=n.s1,n.s1=n.s2,n.s2=t-(n.c=0|t)},n.c=1,n.s0=r(" "),n.s1=r(" "),n.s2=r(" "),n.s0-=r(t),n.s0<0&&(n.s0+=1),n.s1-=r(t),n.s1<0&&(n.s1+=1),n.s2-=r(t),n.s2<0&&(n.s2+=1),r=null}(t),i=e&&e.state,o=n.next;return o.int32=function(){return 4294967296*n.next()|0},o.double=function(){return o()+1.1102230246251565e-16*(2097152*o()|0)},o.quick=o,i&&("object"==typeof i&&r(i,n),o.state=function(){return r(n,{})}),o}e&&e.exports?e.exports=i:this.alea=i}(0,t)}),To=ko(function(t){!function(t,e,n){function r(t,e){return e.x=t.x,e.y=t.y,e.z=t.z,e.w=t.w,e}function i(t,e){var n=new function(t){var e=this,n="";e.x=0,e.y=0,e.z=0,e.w=0,e.next=function(){var t=e.x^e.x<<11;return e.x=e.y,e.y=e.z,e.z=e.w,e.w^=e.w>>>19^t^t>>>8},t===(0|t)?e.x=t:n+=t;for(var r=0;r<n.length+64;r++)e.x^=0|n.charCodeAt(r),e.next()}(t),i=e&&e.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do{var t=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===t);return t},o.int32=n.next,o.quick=o,i&&("object"==typeof i&&r(i,n),o.state=function(){return r(n,{})}),o}e&&e.exports?e.exports=i:this.xor128=i}(0,t)}),Ro=ko(function(t){!function(t,e,n){function r(t,e){return e.x=t.x,e.y=t.y,e.z=t.z,e.w=t.w,e.v=t.v,e.d=t.d,e}function i(t,e){var n=new function(t){var e=this,n="";e.next=function(){var t=e.x^e.x>>>2;return e.x=e.y,e.y=e.z,e.z=e.w,e.w=e.v,(e.d=e.d+362437|0)+(e.v=e.v^e.v<<4^t^t<<1)|0},e.x=0,e.y=0,e.z=0,e.w=0,e.v=0,t===(0|t)?e.x=t:n+=t;for(var r=0;r<n.length+64;r++)e.x^=0|n.charCodeAt(r),r==n.length&&(e.d=e.x<<10^e.x>>>4),e.next()}(t),i=e&&e.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do{var t=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===t);return t},o.int32=n.next,o.quick=o,i&&("object"==typeof i&&r(i,n),o.state=function(){return r(n,{})}),o}e&&e.exports?e.exports=i:this.xorwow=i}(0,t)}),Do=ko(function(t){!function(t,e,n){function r(t,e){return e.x=t.x.slice(),e.i=t.i,e}function i(t,e){null==t&&(t=+new Date);var n=new function(t){var e=this;e.next=function(){var t,n,r=e.x,i=e.i;return t=r[i],n=(t^=t>>>7)^t<<24,n^=(t=r[i+1&7])^t>>>10,n^=(t=r[i+3&7])^t>>>3,n^=(t=r[i+4&7])^t<<7,t=r[i+7&7],n^=(t^=t<<13)^t<<9,r[i]=n,e.i=i+1&7,n},function(t,e){var n,r=[];if(e===(0|e))r[0]=e;else for(e=""+e,n=0;n<e.length;++n)r[7&n]=r[7&n]<<15^e.charCodeAt(n)+r[n+1&7]<<13;for(;r.length<8;)r.push(0);for(n=0;n<8&&0===r[n];++n);for(8==n?r[7]=-1:r[n],t.x=r,t.i=0,n=256;n>0;--n)t.next()}(e,t)}(t),i=e&&e.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do{var t=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===t);return t},o.int32=n.next,o.quick=o,i&&(i.x&&r(i,n),o.state=function(){return r(n,{})}),o}e&&e.exports?e.exports=i:this.xorshift7=i}(0,t)}),Oo=ko(function(t){!function(t,e,n){function r(t,e){return e.i=t.i,e.w=t.w,e.X=t.X.slice(),e}function i(t,e){null==t&&(t=+new Date);var n=new function(t){var e=this;e.next=function(){var t,n,r=e.w,i=e.X,o=e.i;return e.w=r=r+1640531527|0,n=i[o+34&127],t=i[o=o+1&127],n^=n<<13,t^=t<<17,n^=n>>>15,t^=t>>>12,n=i[o]=n^t,e.i=o,n+(r^r>>>16)|0},function(t,e){var n,r,i,o,a,s=[],u=128;for(e===(0|e)?(r=e,e=null):(e+="\0",r=0,u=Math.max(u,e.length)),i=0,o=-32;o<u;++o)e&&(r^=e.charCodeAt((o+32)%e.length)),0===o&&(a=r),r^=r<<10,r^=r>>>15,r^=r<<4,r^=r>>>13,o>=0&&(a=a+1640531527|0,i=0==(n=s[127&o]^=r+a)?i+1:0);for(i>=128&&(s[127&(e&&e.length||0)]=-1),i=127,o=512;o>0;--o)r=s[i+34&127],n=s[i=i+1&127],r^=r<<13,n^=n<<17,r^=r>>>15,n^=n>>>12,s[i]=r^n;t.w=a,t.X=s,t.i=i}(e,t)}(t),i=e&&e.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do{var t=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===t);return t},o.int32=n.next,o.quick=o,i&&(i.X&&r(i,n),o.state=function(){return r(n,{})}),o}e&&e.exports?e.exports=i:this.xor4096=i}(0,t)}),_o=ko(function(t){!function(t,e,n){function r(t,e){return e.a=t.a,e.b=t.b,e.c=t.c,e.d=t.d,e}function i(t,e){var n=new function(t){var e=this,n="";e.next=function(){var t=e.b,n=e.c,r=e.d,i=e.a;return t=t<<25^t>>>7^n,n=n-r|0,r=r<<24^r>>>8^i,i=i-t|0,e.b=t=t<<20^t>>>12^n,e.c=n=n-r|0,e.d=r<<16^n>>>16^i,e.a=i-t|0},e.a=0,e.b=0,e.c=-1640531527,e.d=1367130551,t===Math.floor(t)?(e.a=t/4294967296|0,e.b=0|t):n+=t;for(var r=0;r<n.length+20;r++)e.b^=0|n.charCodeAt(r),e.next()}(t),i=e&&e.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do{var t=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===t);return t},o.int32=n.next,o.quick=o,i&&("object"==typeof i&&r(i,n),o.state=function(){return r(n,{})}),o}e&&e.exports?e.exports=i:this.tychei=i}(0,t)}),Mo=ko(function(t){!function(e,n){var r,i=this,o=256,a=6,s="random",u=n.pow(o,a),l=n.pow(2,52),c=2*l,p=o-1;function h(t,h,g){var y=[],v=d(function t(e,n){var r,i=[],o=typeof e;if(n&&"object"==o)for(r in e)try{i.push(t(e[r],n-1))}catch(t){}return i.length?i:"string"==o?e:e+"\0"}((h=1==h?{entropy:!0}:h||{}).entropy?[t,m(e)]:null==t?function(){try{var t;return r&&(t=r.randomBytes)?t=t(o):(t=new Uint8Array(o),(i.crypto||i.msCrypto).getRandomValues(t)),m(t)}catch(t){var n=i.navigator,a=n&&n.plugins;return[+new Date,i,a,i.screen,m(e)]}}():t,3),y),b=new function(t){var e,n=t.length,r=this,i=0,a=r.i=r.j=0,s=r.S=[];for(n||(t=[n++]);i<o;)s[i]=i++;for(i=0;i<o;i++)s[i]=s[a=p&a+t[i%n]+(e=s[i])],s[a]=e;(r.g=function(t){for(var e,n=0,i=r.i,a=r.j,s=r.S;t--;)e=s[i=p&i+1],n=n*o+s[p&(s[i]=s[a=p&a+e])+(s[a]=e)];return r.i=i,r.j=a,n})(o)}(y),w=function(){for(var t=b.g(a),e=u,n=0;t<l;)t=(t+n)*o,e*=o,n=b.g(1);for(;t>=c;)t/=2,e/=2,n>>>=1;return(t+n)/e};return w.int32=function(){return 0|b.g(4)},w.quick=function(){return b.g(4)/4294967296},w.double=w,d(m(b.S),e),(h.pass||g||function(t,e,r,i){return i&&(i.S&&f(i,b),t.state=function(){return f(b,{})}),r?(n[s]=t,e):t})(w,v,"global"in h?h.global:this==n,h.state)}function f(t,e){return e.i=t.i,e.j=t.j,e.S=t.S.slice(),e}function d(t,e){for(var n,r=t+"",i=0;i<r.length;)e[p&i]=p&(n^=19*e[p&i])+r.charCodeAt(i++);return m(e)}function m(t){return String.fromCharCode.apply(0,t)}if(n["seed"+s]=h,d(n.random(),e),t.exports){t.exports=h;try{r=require("crypto")}catch(t){}}}([],Math)});Mo.alea=Ao,Mo.xor128=To,Mo.xorwow=Ro,Mo.xorshift7=Do,Mo.xor4096=Oo,Mo.tychei=_o;var Lo=Mo.alea,Fo=function(){function t(t,e,n,r,i){this.mean=t,this.stdDev=e,this.dtype=n,this.nextVal=NaN,this.truncated=r,this.truncated&&(this.upper=this.mean+2*this.stdDev,this.lower=this.mean-2*this.stdDev);var o=i||Math.random();this.random=Lo(o.toString())}return t.prototype.nextValue=function(){if(!isNaN(this.nextVal)){var t=this.nextVal;return this.nextVal=NaN,t}for(var e,n,r=!1;!r;){var i=void 0,o=void 0,a=void 0;do{a=(i=2*this.random()-1)*i+(o=2*this.random()-1)*o}while(a>=1||0===a);var s=Math.sqrt(-2*Math.log(a)/a);e=this.mean+this.stdDev*i*s,n=this.mean+this.stdDev*o*s,this.truncated&&!this.isValidTruncated(e)||(r=!0)}return this.truncated&&!this.isValidTruncated(n)||(this.nextVal=this.convertValue(n)),this.convertValue(e)},t.prototype.convertValue=function(t){return null==this.dtype||"float32"===this.dtype?t:Math.round(t)},t.prototype.isValidTruncated=function(t){return t<=this.upper&&t>=this.lower},t}();function zo(t,e,n){return void 0===e&&(e="float32"),e=e||"float32",$(t),new it(t,e,n)}function Po(t,e){void 0===e&&(e=!1),console.log(t.toString(e))}var Bo=Se({batchToSpaceND_:function(t,e,n){var r=xe(t,"x","batchToSpaceND"),i=e.reduce(function(t,e){return t*e});return d(r.rank>=1+e.length,function(){return"input rank is "+r.rank+" but should be > than blockShape.length "+e.length}),d(n.length===e.length,function(){return"crops.length is "+n.length+" but should be equal to blockShape.length  "+e.length}),d(r.shape[0]%i==0,function(){return"input tensor batch is "+r.shape[0]+" but is not divisible by the product of the elements of blockShape "+e.join(" * ")+" === "+i}),Bt.engine.runKernel(function(t){return t.batchToSpaceND(r,e,n)},{$x:r},function(t){return{$x:function(){return t.spaceToBatchND(e,n)}}})}}),Uo=Se({cast_:function(t,e){var n=xe(t,"x","cast");return Bt.engine.runKernel(function(t){return t.cast(n,e)},{$x:n},function(t){return{$x:function(){return t.clone()}}})}}),Wo=Se({clone_:function(t){var e=xe(t,"x","clone",null);return Bt.engine.runKernel(function(t){return ut.make(e.shape,{dataId:e.dataId},e.dtype)},{$x:e},function(t){return{$x:function(){return t.toFloat()}}})}}),Vo=Se({cumsum_:function(t,e,n,r){void 0===e&&(e=0),void 0===n&&(n=!1),void 0===r&&(r=!1);var i=xe(t,"x","cumsum"),o=oe([e|=0],i.rank),a=i;null!=o&&(a=i.transpose(o));var s=se(1,i.rank)[0],u=Bt.engine.runKernel(function(t){return t.cumsum(a,s,n,r)},{permutedX:a},function(t){return{permutedX:function(){return t.cumsum(e,n,!r)}}});return null!=o&&(u=u.transpose(o)),u}}),jo=Se({depthToSpace_:function(t,e,n){void 0===n&&(n="NHWC");var r=xe(t,"x","depthToSpace"),i="NHWC"===n?r.shape[1]:r.shape[2],o="NHWC"===n?r.shape[2]:r.shape[3],a="NHWC"===n?r.shape[3]:r.shape[1];return d(i*e>=0,function(){return"Negative dimension size caused by overflow when multiplying\n      "+i+" and "+e+"  for depthToSpace with input shape\n      "+r.shape}),d(o*e>=0,function(){return"Negative dimension size caused by overflow when multiplying\n      "+o+" and "+e+" for depthToSpace with input shape\n          "+r.shape}),d(a%(e*e)==0,function(){return"Dimension size must be evenly divisible by "+e*e+" but is "+a+" for depthToSpace with input shape "+r.shape}),Bt.engine.runKernel(function(t){return t.depthToSpace(r,e,n)},{$x:r})}}),qo=Se({expandDims_:function(t,e){void 0===e&&(e=0);var n=xe(t,"x","expandDims");d(e<=n.rank,function(){return"Axis must be <= rank of the tensor"});var r=n.shape.slice();return e<0&&(d(-(n.rank+1)<=e,function(){return"Axis must be in the interval ["+-(n.rank+1)+", "+n.rank+"]"}),e=n.rank+e+1),r.splice(e,0,1),na(n,r)}}),Go=Se({eye_:function(t,e,n,r){void 0===r&&(r="float32"),null==e&&(e=t);for(var i=zo([t,e],r),o=t<=e?t:e,a=0;a<o;++a)i.set(1,a,a);var s=i.toTensor().as2D(t,e);if(null==n)return s;if(1===n.length)return aa(qo(s,0),[n[0],1,1]);if(2===n.length)return aa(qo(qo(s,0),0),[n[0],n[1],1,1]);if(3===n.length)return aa(qo(qo(qo(s,0),0),0),[n[0],n[1],n[2],1,1]);throw new Error("eye() currently supports only 1D and 2D batchShapes, but received "+n.length+"D.")}}),Ho=Se({multinomial_:function(t,e,n,r){void 0===r&&(r=!1);var i=xe(t,"logits","multinomial"),o=i.size,a=i.rank;if(o<2)throw new Error("Error in multinomial: you need at least 2 outcomes, but got "+o+".");if(a>2)throw new Error("Rank of probabilities must be 1 or 2, but is "+a);n=n||Math.random();var s=1===a?i.as2D(1,-1):i,u=Bt.engine.runKernel(function(t){return t.multinomial(s,r,e,n)},{logits2D:s});return 1===a?u.as1D():u}}),Ko=Se({oneHot_:function(t,e,n,r){if(void 0===n&&(n=1),void 0===r&&(r=0),e<2)throw new Error("Error in oneHot: depth must be >=2, but it is "+e);var i=xe(t,"indices","oneHot","int32"),o=i.shape.concat([e]);return i=i.flatten(),Bt.engine.runKernel(function(t){return t.oneHot(i,e,n,r)},{$indices:i},function(t){return{$indices:function(){return Pe(i.shape,"float32")}}}).reshape(o)}}),$o=Se({pad_:function(t,e,n){void 0===n&&(n=0);var r=xe(t,"x","pad");if(0===r.rank)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");var i=e.map(function(t){return t[0]});return Bt.engine.runKernel(function(t){return t.pad(r,e,n)},{$x:r},function(t){return{$x:function(){return t.slice(i,r.shape)}}})}}),Xo=Se({pad1d_:function(t,e,n){return void 0===n&&(n=0),d(2===e.length,function(){return"Invalid number of paddings. Must be length of 2."}),$o(t,[e],n)}}),Yo=Se({pad2d_:function(t,e,n){return void 0===n&&(n=0),d(2===e.length&&2===e[0].length&&2===e[1].length,function(){return"Invalid number of paddings. Must be length of 2 each."}),$o(t,e,n)}}),Jo=Se({pad3d_:function(t,e,n){return void 0===n&&(n=0),d(3===e.length&&2===e[0].length&&2===e[1].length&&2===e[2].length,function(){return"Invalid number of paddings. Must be length of 2 each."}),$o(t,e,n)}}),Zo=Se({pad4d_:function(t,e,n){return void 0===n&&(n=0),d(4===e.length&&2===e[0].length&&2===e[1].length&&2===e[2].length&&2===e[3].length,function(){return"Invalid number of paddings. Must be length of 2 each."}),$o(t,e,n)}}),Qo=Se({rand_:function(t,e,n){var r=v(t),i=null;if(null==n||"float32"===n)i=new Float32Array(r);else if("int32"===n)i=new Int32Array(r);else{if("bool"!==n)throw new Error("Unknown data type "+n);i=new Uint8Array(r)}for(var o=0;o<r;o++)i[o]=e();return ut.make(t,{values:i},n)}}),ta=Se({randomNormal_:function(t,e,n,r,i){if(void 0===e&&(e=0),void 0===n&&(n=1),null!=r&&"bool"===r)throw new Error("Unsupported data type "+r);for(var o=new Fo(e,n,r,!1,i),a=zo(t,r),s=0;s<a.values.length;s++)a.values[s]=o.nextValue();return a.toTensor()}}),ea=Se({randomUniform_:function(t,e,n,r){void 0===e&&(e=0),void 0===n&&(n=1),void 0===r&&(r="float32");for(var i=zo(t,r),o=0;o<i.values.length;o++)i.values[o]=f(e,n);return i.toTensor()}}),na=Se({reshape_:function(t,e){var n=xe(t,"x","reshape",null);return e=E(e,n.size),d(n.size===v(e),function(){return"new shape and old shape must have the same number of elements."}),Bt.engine.runKernel(function(t){return t.reshape(n,e)},{$x:n},function(t){return{$x:function(){return t.reshape(n.shape)}}})}}),ra=Se({spaceToBatchND_:function(t,e,n){var r=xe(t,"x","spaceToBatchND");return d(r.rank>=1+e.length,function(){return"input rank "+r.rank+" should be > than [blockShape] "+e.length}),d(n.length===e.length,function(){return"paddings.shape[0] "+n.length+" must be equal to [blockShape] "+e.length}),d(r.shape.reduce(function(t,r,i){return i>0&&i<=e.length?t&&(r+n[i-1][0]+n[i-1][1])%e[i-1]==0:t},!0),function(){return"input spatial dimensions "+r.shape.slice(1)+" with paddings "+n.toString()+" must be divisible by blockShapes "+e.toString()}),Bt.engine.runKernel(function(t){return t.spaceToBatchND(r,e,n)},{$x:r},function(t){return{$x:function(){return t.batchToSpaceND(e,n)}}})}}),ia=Se({squeeze_:function(t,e){var n=xe(t,"x","squeeze");return na(n,k(n.shape,e).newShape)}}),oa=Se({stack_:function(t,e){void 0===e&&(e=0);var n=Ne(t,"tensors","stack");if(d(n.length>=1,function(){return"Pass at least one tensor to tf.stack"}),1===n.length)return n[0].expandDims(e);var r=n[0].rank,i=n[0].shape,o=n[0].dtype;d(e<=r,function(){return"Axis must be <= rank of the tensor"}),n.forEach(function(t){m(i,t.shape,"All tensors passed to stack must have matching shapes")}),n.forEach(function(t){d(o===t.dtype,function(){return"All tensors passed to stack must have matching dtypes"})});var a=n.map(function(t){return t.expandDims(e)});return xo(a,e)}}),aa=Se({tile_:function(t,e){var n=xe(t,"x","tile");return d(n.rank===e.length,function(){return"Error in transpose: rank of input "+n.rank+" must match length of reps "+e+"."}),Bt.engine.runKernel(function(t){return t.tile(n,e)},{$x:n},function(t){return{$x:function(){var r=je(n);if(1===n.rank)for(var i=0;i<e[0];++i)r=r.add(t.slice([i*n.shape[0]],[n.shape[0]]));else if(2===n.rank)for(i=0;i<e[0];++i)for(var o=0;o<e[1];++o)r=r.add(t.slice([i*n.shape[0],o*n.shape[1]],[n.shape[0],n.shape[1]]));else if(3===n.rank)for(i=0;i<e[0];++i)for(o=0;o<e[1];++o)for(var a=0;a<e[2];++a)r=r.add(t.slice([i*n.shape[0],o*n.shape[1],a*n.shape[2]],[n.shape[0],n.shape[1],n.shape[2]]));else{if(4!==n.rank)throw new Error("Gradient for tile operation is not implemented for rank-"+n.rank+" tensors yet.");for(i=0;i<e[0];++i)for(o=0;o<e[1];++o)for(a=0;a<e[2];++a)for(var s=0;s<e[3];++s)r=r.add(t.slice([i*n.shape[0],o*n.shape[1],a*n.shape[2],s*n.shape[3]],[n.shape[0],n.shape[1],n.shape[2],n.shape[3]]))}return r}}})}}),sa=Se({truncatedNormal_:function(t,e,n,r,i){if(void 0===e&&(e=0),void 0===n&&(n=1),null!=r&&"bool"===r)throw new Error("Unsupported data type "+r);for(var o=new Fo(e,n,r,!0,i),a=zo(t,r),s=0;s<a.values.length;s++)a.values[s]=o.nextValue();return a.toTensor()}}),ua=Se({unstack_:function(t,e){void 0===e&&(e=0),e=e||0;var n=xe(t,"x","unstack");return d(e>=-n.shape.length&&e<n.shape.length,function(){return"Axis = "+e+" is not in [-"+n.shape.length+", "+n.shape.length+")"}),e<0&&(e+=n.shape.length),Bt.engine.runKernel(function(t){return t.unstack(n,e)},{$x:n},function(t){return{$x:function(){return oa(t,e)}}})}}),la=function(t,e){return i(this,void 0,void 0,function(){var n,r,i,a,s,u,l,c,p,h;return o(this,function(o){switch(o.label){case 0:return n=xe(t,"x","setdiff1d"),r=xe(e,"y","setdiff1d"),d(n.dtype===r.dtype,function(){return"x and y should have the same dtype, but got x ("+n.dtype+") and y ("+r.dtype+")."}),d(1===n.rank,function(){return"x should be 1D tensor, but got x ("+n.shape+")."}),d(1===r.rank,function(){return"y should be 1D tensor, but got y ("+r.shape+")."}),[4,n.data()];case 1:return i=o.sent(),[4,r.data()];case 2:for(a=o.sent(),s=new Set(a),u=0,p=0;p<i.length;p++)s.has(i[p])||u++;for(l=new it([u],n.dtype),c=new it([u],"int32"),p=0,h=0;p<i.length;p++)s.has(i[p])||(l.values[h]=i[p],c.values[h]=p,h++);return[2,[l.toTensor(),c.toTensor()]]}})})};function ca(t,e){for(var n=[],r=0;r<e.length;r++)e[r]&&n.push(r);var i=zo(t,"int32"),o=zo([n.length,t.length],"int32");for(r=0;r<n.length;r++){var a=i.indexToLoc(n[r]),s=r*t.length;o.values.set(a,s)}return o.toTensor()}var pa=function(){function t(t){if(this.gpgpu=t,this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.lruDataGPU=[],this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.binaryCache={},this.disposed=!1,Bt.get("WEBGL_VERSION")<1)throw new Error("WebGL is not supported on this device");if(null==t){var e=u(Bt.get("WEBGL_VERSION"));this.gpgpu=new Si(e),this.canvas=e.canvas,this.gpgpuCreatedLocally=!0}else this.gpgpuCreatedLocally=!1,this.canvas=t.gl.canvas;this.textureManager=new Ji(this.gpgpu)}return t.prototype.register=function(t,e,n){if(this.texData.has(t))throw new Error("Data buffer is already registered");this.texData.set(t,{shape:e,dtype:n})},t.prototype.setDataMover=function(t){this.texData=new qe(t)},t.prototype.fromPixels=function(t,e){if(null==t)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");var n=[t.height,t.width],r=[t.height,t.width,e];if(Bt.get("IS_BROWSER")){if(!(t instanceof HTMLVideoElement||t instanceof HTMLImageElement||t instanceof HTMLCanvasElement||t instanceof ImageData))throw new Error("pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement or ImageData, but was "+t.constructor.name);if(t instanceof HTMLVideoElement){if(null==this.fromPixels2DContext){if("complete"!==document.readyState)throw new Error("The DOM is not ready yet. Please call tf.browser.fromPixels() once the DOM is ready. One way to do that is to add an event listener for `DOMContentLoaded` on the document object");this.fromPixels2DContext=document.createElement("canvas").getContext("2d")}this.fromPixels2DContext.canvas.width=t.width,this.fromPixels2DContext.canvas.height=t.height,this.fromPixels2DContext.drawImage(t,0,0,t.width,t.height),t=this.fromPixels2DContext.canvas}}var i=this.makeTensorHandle(n,"int32");this.texData.get(i.dataId).usage=ur.PIXELS,this.gpgpu.uploadPixelDataToTexture(this.getTexture(i.dataId),t);var o=new ar(r),a=this.compileAndRun(o,[i]);return this.disposeData(i.dataId),a},t.prototype.makeTensorHandle=function(t,e){var n={};return this.register(n,t,e),{dataId:n,shape:t,dtype:e}},t.prototype.write=function(t,e){if(null==e)throw new Error("MathBackendWebGL.write(): values can not be null");if(Bt.get("DEBUG"))for(var n=0;n<e.length;n++){var r=e[n];if(!Sr(r))throw Error("The value "+r+" cannot be represented on this device.")}var i=this.texData.get(t),o=i.texture,a=i.texShape,s=i.usage,u=i.dtype,l=i.isPacked;if("complex64"===u)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");null!=o&&(this.releaseTexture(t,o,a,s,u,l),i.texture=null,i.texShape=null),i.usage=ur.UPLOAD,i.values=e},t.prototype.readSync=function(t){var e=this.texData.get(t),n=e.values,r=e.dtype,i=e.complexTensors,o=e.slice,a=e.shape;if(null!=o){var s=new oo(a,"return x;"),u=this.compileAndRun(s,[{dataId:t,shape:a,dtype:r}]),l=this.readSync(u.dataId);return u.dispose(),l}if(null!=n)return this.convertAndCacheOnCPU(t);if("string"===r)return n;var c,p,h=null!=this.activeTimers;return h&&(c=performance.now()),p="complex64"===r?$e(i.real.dataSync(),i.imag.dataSync()):this.getValuesFromTexture(t),h&&(this.downloadWaitMs+=performance.now()-c),this.convertAndCacheOnCPU(t,p)},t.prototype.read=function(t){return i(this,void 0,void 0,function(){var e,n,r,i,a,s,u,l,c,p,h,f,d,m,g,y,b,w,x,N,S,C,E,I;return o(this,function(o){switch(o.label){case 0:if(this.pendingRead.has(t))return r=this.pendingRead.get(t),[2,new Promise(function(t){return r.push(t)})];if(i=this.texData.get(t),a=i.texture,s=i.values,u=i.texShape,l=i.isPacked,c=i.shape,p=i.slice,h=i.dtype,null!=p)return f=new oo(c,"return x;"),d=this.compileAndRun(f,[{dataId:t,shape:c,dtype:h}]),m=this.read(d.dataId),d.dispose(),[2,m];if(null!=s)return[2,this.convertAndCacheOnCPU(t)];if(this.pendingRead.set(t,[]),!Bt.get("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&2===Bt.get("WEBGL_VERSION"))throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");return g=u[1],y=u[0],l&&(e=dr(u[0],u[1]),g=e[0],y=e[1]),b=this.gpgpu.maybeCreateBufferFromTexture(a,y,g),[4,this.gpgpu.createAndWaitForFence()];case 1:return o.sent(),b instanceof WebGLTexture?w=this.getValuesFromTexture(t):(x=v(c),l?(N=Xr(c),S=1,C=1,c.length&&(n=Yr(c),S=n[0],C=n[1]),w=this.gpgpu.downloadPackedMatrixFromBuffer(b,N,S,C,u[0],u[1]).subarray(0,x)):w=this.gpgpu.downloadFloat32MatrixFromBuffer(b,u[0],u[1]).subarray(0,x)),E=this.convertAndCacheOnCPU(t,w),I=this.pendingRead.get(t),this.pendingRead.delete(t),I.forEach(function(t){return t(E)}),this.pendingDisposal.has(t)&&(this.pendingDisposal.delete(t),this.disposeData(t)),[2,E]}})})},t.prototype.getValuesFromTexture=function(t){var e,n=this,r=this.texData.get(t),i=r.shape,o=r.dtype,a=r.texture,s=r.texShape,u=v(i);if(Bt.get("WEBGL_DOWNLOAD_FLOAT_ENABLED")){if(this.texData.get(t).isPacked){var l=Xr(i),c=1,p=1;return i.length&&(c=(e=Yr(i))[0],p=e[1]),this.gpgpu.downloadMatrixFromPackedTexture(a,l,c,p,s[0],s[1]).subarray(0,u)}return this.gpgpu.downloadFloat32MatrixFromOutputTexture(a,s[0],s[1]).subarray(0,u)}var h=this.makeTensorHandle(i,"float32");h.size=v(i),this.texData.get(h.dataId).usage=ur.DOWNLOAD;var f=qt(function(){var e=new er(i);return n.compileAndRun(e,[{shape:i,dtype:o,dataId:t}],h,null,!1)}),d=this.texData.get(f.dataId),m=this.gpgpu.downloadByteEncodedFloatMatrixFromOutputTexture(d.texture,d.texShape[0],d.texShape[1]).subarray(0,u);return this.disposeData(h.dataId),m},t.prototype.time=function(t){return i(this,void 0,void 0,function(){var e,n,r,i,a,s,u;return o(this,function(o){switch(o.label){case 0:return e=this.activeTimers,n=[],r=!1,null==this.programTimersStack?(this.programTimersStack=n,r=!0):this.activeTimers.push(n),this.activeTimers=n,t(),i=y(this.activeTimers.map(function(t){return t.query})).filter(function(t){return null!=t}),a=y(this.activeTimers.map(function(t){return t.name})).filter(function(t){return null!=t}),this.activeTimers=e,r&&(this.programTimersStack=null),[4,Promise.all(i)];case 1:return s=o.sent(),u={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:h(s),getExtraProfileInfo:function(){return s.map(function(t,e){return{name:a[e],ms:t}}).map(function(t){return t.name+": "+t.ms}).join(", ")},wallMs:null},this.uploadWaitMs=0,this.downloadWaitMs=0,[2,u]}})})},t.prototype.memory=function(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU}},t.prototype.startTimer=function(){return Bt.get("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?this.gpgpu.beginQuery():{startMs:performance.now(),endMs:null}},t.prototype.endTimer=function(t){return Bt.get("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(this.gpgpu.endQuery(),t):(t.endMs=performance.now(),t)},t.prototype.getQueryTime=function(t){return i(this,void 0,void 0,function(){var e;return o(this,function(n){return Bt.get("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?[2,this.gpgpu.waitForQueryAndGetTime(t)]:[2,(e=t).endMs-e.startMs]})})},t.prototype.disposeData=function(t){if(!this.pendingDisposal.has(t))if(this.pendingRead.has(t))this.pendingDisposal.add(t);else if(this.texData.has(t)){var e=this.texData.get(t),n=e.texture,r=e.dtype,i=e.texShape,o=e.usage,a=e.complexTensors,s=e.isPacked,u=e.slice;if(null!=n){var l=u&&u.origDataId||t,c=this.dataRefCount.get(l);c>1?this.dataRefCount.set(l,c-1):(this.dataRefCount.delete(l),this.releaseTexture(t,n,i,o,r,s),this.texData.delete(t))}null!=a&&(a.real.dispose(),a.imag.dispose())}},t.prototype.getTexture=function(t){return this.uploadToGPU(t),this.texData.get(t).texture},t.prototype.getCPUBackend=function(){return Bt.get("WEBGL_CPU_FORWARD")?(null==this.cpuBackend&&(this.cpuBackend=Bt.findBackend("cpu")),this.cpuBackend):null},t.prototype.shouldExecuteOnCPU=function(t,e){var n=this;return void 0===e&&(e=128),null!=this.getCPUBackend()&&t.every(function(t){return null==n.texData.get(t.dataId).texture&&t.size<e})},t.prototype.getGPGPUContext=function(){return this.gpgpu},t.prototype.getCanvas=function(){return this.canvas},t.prototype.complex=function(t,e){var n=this.makeOutputArray(t.shape,"complex64");return this.texData.get(n.dataId).complexTensors={real:Bt.engine.keep(t.clone()),imag:Bt.engine.keep(e.clone())},n},t.prototype.real=function(t){return this.texData.get(t.dataId).complexTensors.real.clone()},t.prototype.imag=function(t){return this.texData.get(t.dataId).complexTensors.imag.clone()},t.prototype.slice=function(t,e,n){if(this.shouldExecuteOnCPU([t]))return this.cpuBackend.slice(t,e,n);var r=this.texData.get(t.dataId).isPacked,i=ye(t.shape,e,n);if(r||!i){var o=Bt.get("WEBGL_PACK_ARRAY_OPERATIONS")?new Xi(n):new Ki(n),a=o.getCustomSetupFunc(e);return this.compileAndRun(o,[t],null,a)}return this.uploadToGPU(t.dataId),this.shallowSlice(t,e,n)},t.prototype.shallowSlice=function(t,e,n){var r=this.texData.get(t.dataId),i=ut.make(n,{},t.dtype,this),o=this.texData.get(i.dataId);Object.assign(o,r),o.shape=n,o.dtype=t.dtype;var a=ve(e,t.strides);r.slice&&(a+=r.slice.flatOffset),o.slice={flatOffset:a,origDataId:r.slice&&r.slice.origDataId||t.dataId};var s=this.dataRefCount.get(o.slice.origDataId)||1;return this.dataRefCount.set(o.slice.origDataId,s+1),i},t.prototype.stridedSlice=function(t,e,n,r,i,o,a,s,u){if(this.shouldExecuteOnCPU([t]))return this.cpuBackend.stridedSlice(t,e,n,r,i,o,a,s,u);var l=de(t.shape,e,n,r,i,o,a,s,u),c=l[0],p=l[1],h=l[2],f=p.filter(function(t,e){return-1===h.indexOf(e)});if(f.some(function(t){return 0===t}))return Te([],f);var d=new Yi(c,r,p,h);return this.compileAndRun(d,[t])},t.prototype.reverse=function(t,e){var n=new ji(t.shape,e);return this.compileAndRun(n,[t])},t.prototype.concat=function(t,e){if(this.shouldExecuteOnCPU(t))return this.cpuBackend.concat(t,e);if(1===t.length)return t[0];if(t.length>Bt.get("WEBGL_MAX_TEXTURES_IN_SHADER")){var n=Math.floor(t.length/2),r=this.concat(t.slice(0,n),e),i=this.concat(t.slice(n),e);return this.concat([r,i],e)}if(Bt.get("WEBGL_PACK_ARRAY_OPERATIONS")&&t[0].rank>1){var o=new Un(t.map(function(t){return t.shape}),e);return this.compileAndRun(o,t)}var a=ue(t.map(function(t){return t.shape}),e),s=t.map(function(t){return t.as2D(-1,v(t.shape.slice(e)))}),u=new Bn(s.map(function(t){return t.shape}));return this.compileAndRun(u,s).reshape(a)},t.prototype.neg=function(t){var e=new oo(t.shape,"return -x;");return this.compileAndRun(e,[t])},t.prototype.batchMatMul=function(t,e,n,r){var i=n?t.shape[2]:t.shape[1],o=r?e.shape[1]:e.shape[2],a=n?t.shape[1]:t.shape[2],s=t.shape[0];if((1===i||1===o)&&a>1e3){n&&(t=t.transpose([0,2,1])),r&&(e=e.transpose([0,2,1]));var u=1===o?t:t.as3D(s,a,1),l=1===o?2:1,c=1===o?e.as3D(s,1,a):e;return this.multiply(u,c).sum(l,!0)}var p=yt(t.dtype,e.dtype),h=new Ti(t.shape,[s,i,o],n,r),f=this.makePackedTensor(h.outputShape,p);return this.compileAndRun(h,[t,e],f)},t.prototype.fusedBatchMatMul=function(t,e,n,r,i,o){var a=n?t.shape[2]:t.shape[1],s=r?e.shape[1]:e.shape[2],u=t.shape[0],l=yt(t.dtype,e.dtype),c=new Ti(t.shape,[u,a,s],n,r,!!i,o?function(t,e){if(void 0===e&&(e=!1),"linear"===t)return e?yo:so;if("relu"===t)return e?vo:uo;throw new Error("Activation "+t+" has not been implemented for the WebGL backend.")}(o,!0):null),p=this.makePackedTensor(c.outputShape,l),h=[t,e];return i&&h.push(i),this.compileAndRun(c,h,p)},t.prototype.multiply=function(t,e){if("complex64"===t.dtype){var n=this.texData.get(t.dataId),r=this.texData.get(e.dataId),i=new Rn(An,t.shape,e.shape),o=new Rn(Tn,t.shape,e.shape),a=[this.makeComplexComponentTensorHandle(t,n.complexTensors.real),this.makeComplexComponentTensorHandle(t,n.complexTensors.imag),this.makeComplexComponentTensorHandle(e,r.complexTensors.real),this.makeComplexComponentTensorHandle(e,r.complexTensors.imag)],s=this.compileAndRun(i,a),u=this.compileAndRun(o,a),l=this.complex(s,u);return s.dispose(),u.dispose(),l}if(this.shouldExecuteOnCPU([t,e]))return this.cpuBackend.multiply(t,e);if(Bt.get("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(t,e,_n,t.dtype);var c=new Mn(_n,t.shape,e.shape),p=this.makeOutputArray(c.outputShape,t.dtype);return this.compileAndRun(c,[t,e],p)},t.prototype.batchNormalization=function(t,e,n,r,i,o){var a=[t,e,n],s=null;null!=o&&(s=o.shape,a.push(o));var u=null;if(null!=i&&(u=i.shape,a.push(i)),Bt.get("WEBGL_PACK_BATCHNORMALIZATION")){var l=new kn(t.shape,e.shape,n.shape,s,u,r);return this.compileAndRun(l,a)}var c=new In(t.shape,e.shape,n.shape,s,u,r);return this.compileAndRun(c,a)},t.prototype.localResponseNormalization4D=function(t,e,n,r,i){var o=new Ii(t.shape,e,n,r,i);return this.compileAndRun(o,[t])},t.prototype.LRNGrad=function(t,e,n,r,i,o,a){var s=new ki(e.shape,r,i,o,a);return this.compileAndRun(s,[e,n,t])},t.prototype.tile=function(t,e){var n=new to(t.shape,e);return this.compileAndRun(n,[t])},t.prototype.pad=function(t,e,n){var r=Bt.get("WEBGL_PACK_ARRAY_OPERATIONS")?new Mi(t.shape,e,n):new _i(t.shape,e,n);return this.compileAndRun(r,[t])},t.prototype.transpose=function(t,e){if(this.shouldExecuteOnCPU([t]))return this.cpuBackend.transpose(t,e);var n=Bt.get("WEBGL_PACK_ARRAY_OPERATIONS")?new no(t.shape,e):new eo(t.shape,e);return this.compileAndRun(n,[t])},t.prototype.gather=function(t,e,n){if(this.shouldExecuteOnCPU([t,e]))return this.cpuBackend.gather(t,e,n);var r=new sr(t.shape,e.size,n);return this.compileAndRun(r,[t,e])},t.prototype.batchToSpaceND=function(t,e,n){d(t.rank<=4,function(){return"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet"});var r=e.reduce(function(t,e){return t*e}),i=Yt(t.shape,e,r),o=Jt(i.length,e.length),a=Zt(t.shape,e,r),s=Qt(n,e.length),u=te(a,n,e.length);return t.reshape(i).transpose(o).reshape(a).slice(s,u)},t.prototype.spaceToBatchND=function(t,e,n){d(t.rank<=4,function(){return"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet"});var r=e.reduce(function(t,e){return t*e}),i=[[0,0]];i.push.apply(i,n);for(var o=1+e.length;o<t.shape.length;++o)i.push([0,0]);var a=t.pad(i),s=Yt(a.shape,e,r,!1),u=Jt(s.length,e.length,!1),l=Zt(a.shape,e,r,!1);return a.reshape(s).transpose(u).reshape(l)},t.prototype.reduce=function(t,e,n){var r=t.shape[0],i=t.shape[1],o=pe(i),a=new Fi({windowSize:o,inSize:i,batchSize:r},e),s=a.outputShape,u=s[0],l=s[1],c=this.makeOutputArray([u,l],n);return this.compileAndRun(a,[t],c),1===c.shape[1]?c:this.reduce(c,e,n)},t.prototype.argReduce=function(t,e,n){void 0===n&&(n=null);var r=t.shape[0],i=t.shape[1];null!=n&&(r=n.shape[0],i=n.shape[1]);var o=pe(i),a=new nn({windowSize:o,inSize:i,batchSize:r},e,null==n),s=a.outputShape,u=s[0],l=s[1],c=this.makeOutputArray([u,l],"int32"),p=[t];return null!=n&&p.push(n),this.compileAndRun(a,p,c),1===c.shape[1]?c:this.argReduce(t,e,c)},t.prototype.argReducePacked=function(t,e,n){void 0===n&&(n=null);var r=null!=n?n.shape:t.shape,i=pe(r[r.length-1]),o=new Cn(r,i,e,null==n),a=this.makePackedTensor(o.outputShape,"int32"),s=null==n?[t]:[t,n];return this.compileAndRun(o,s,a),a.rank===t.rank?this.argReducePacked(t,e,a):a},t.prototype.sum=function(t,e){ie("sum",e,t.rank);var n=ne(t.shape,e),r=n[0],i=v(n[1]),o=t.as2D(-1,i),a=vt(t.dtype);return this.reduce(o,"sum",a).reshape(r)},t.prototype.prod=function(t,e){if(this.shouldExecuteOnCPU([t]))return this.cpuBackend.prod(t,e);var n=ne(t.shape,e),r=n[0],i=v(n[1]),o=t.as2D(-1,i),a=vt(t.dtype);return this.reduce(o,"prod",a).reshape(r)},t.prototype.unsortedSegmentSum=function(t,e,n){var r=0,i=oe([r],t.rank),o=t;null!=i&&(o=t.transpose(i),r=se(1,t.rank)[0]);var a=function(t,e,n){for(var r=[],i=t.length,o=0;o<i;o++)o!==e?r.push(t[o]):r.push(n);return r}(o.shape,r,n),s=v([o.shape[r]]),u=o.as2D(-1,s),l=vt(t.dtype),c=this.segOpCompute(u,"unsortedSegmentSum",e,l,n).reshape(a);return null!=i&&(c=c.transpose(ae(i))),c},t.prototype.segOpCompute=function(t,e,n,r,i){var o=t.shape[0],a=t.shape[1],s=function(t,e){var n,r=!1;for(t<=ce?(n=t,r=!0):n=W(t,Math.floor(Math.sqrt(t)));!r;){if(n>e||n===t){r=!0;break}n=W(t,n+1)}return n}(a,i),u=new Gi({windowSize:s,inSize:a,batchSize:o,numSegments:i},e),l=u.outputShape,c=l[0],p=l[1],h=this.makeOutputArray([c,p],r);return this.compileAndRun(u,[t,n],h),h.shape[1]===i?h:(n=We(0,i).tile([a/s]),this.segOpCompute(h,e,n,r,i))},t.prototype.argMinMaxReduce=function(t,e,n){var r=[e];if(ie("arg"+n.charAt(0).toUpperCase()+n.slice(1),r,t.rank),!Bt.get("WEBGL_PACK_REDUCE")||t.rank<=2){var i=ne(t.shape,r),o=i[0],a=v(i[1]),s=t.as2D(-1,a);return this.argReduce(s,n).reshape(o)}return this.argReducePacked(t,n)},t.prototype.argMin=function(t,e){return this.argMinMaxReduce(t,e,"min")},t.prototype.argMax=function(t,e){return this.argMinMaxReduce(t,e,"max")},t.prototype.cumsum=function(t,e,n,r){if(e!==t.rank-1)throw new Error("WebGL cumsum shader expects an inner-most axis="+(t.rank-1)+" but got axis="+e);var i=new Zn(t.shape,n,r);return this.compileAndRun(i,[t])},t.prototype.equal=function(t,e){if(Bt.get("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(t,e,"\n  return vec4(equal(a, b));\n","bool");var n=new Mn("return float(a == b);",t.shape,e.shape),r=this.makeOutputArray(n.outputShape,"bool");return this.compileAndRun(n,[t,e],r)},t.prototype.notEqual=function(t,e){if(Bt.get("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(t,e,"\n  return vec4(notEqual(a, b));\n","bool");var n=new Mn("return float(a != b);",t.shape,e.shape),r=this.makeOutputArray(n.outputShape,"bool");return this.compileAndRun(n,[t,e],r)},t.prototype.less=function(t,e){if(this.shouldExecuteOnCPU([t,e]))return this.cpuBackend.less(t,e);if(Bt.get("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(t,e,"\n  return vec4(lessThan(a, b));\n","bool");var n=new Mn("return float(a < b);",t.shape,e.shape),r=this.makeOutputArray(n.outputShape,"bool");return this.compileAndRun(n,[t,e],r)},t.prototype.lessEqual=function(t,e){if(Bt.get("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(t,e,"\n  return vec4(lessThanEqual(a, b));\n","bool");var n=new Mn("return float(a <= b);",t.shape,e.shape),r=this.makeOutputArray(n.outputShape,"bool");return this.compileAndRun(n,[t,e],r)},t.prototype.greater=function(t,e){if(this.shouldExecuteOnCPU([t,e]))return this.cpuBackend.greater(t,e);if(Bt.get("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(t,e,"\n  return vec4(greaterThan(a, b));\n","bool");var n=new Mn("return float(a > b);",t.shape,e.shape),r=this.makeOutputArray(n.outputShape,"bool");return this.compileAndRun(n,[t,e],r)},t.prototype.greaterEqual=function(t,e){if(Bt.get("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(t,e,"\n  return vec4(greaterThanEqual(a, b));\n","bool");var n=new Mn("return float(a >= b);",t.shape,e.shape),r=this.makeOutputArray(n.outputShape,"bool");return this.compileAndRun(n,[t,e],r)},t.prototype.logicalNot=function(t){var e=new oo(t.shape,"return float(!(x >= 1.0));");return this.compileAndRun(e,[t])},t.prototype.logicalAnd=function(t,e){if(Bt.get("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(t,e,"\n  return vec4(\n    vec4(greaterThanEqual(a, vec4(1.0))) *\n    vec4(greaterThanEqual(b, vec4(1.0))));\n","bool");var n=new Mn("return float(a >= 1.0 && b >= 1.0);",t.shape,e.shape),r=this.makeOutputArray(n.outputShape,"bool");return this.compileAndRun(n,[t,e],r)},t.prototype.logicalOr=function(t,e){if(Bt.get("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(t,e,"\n  return min(\n    vec4(greaterThanEqual(a, vec4(1.0))) +\n    vec4(greaterThanEqual(b, vec4(1.0))),\n    vec4(1.0));\n","bool");var n=new Mn("return float(a >= 1.0 || b >= 1.0);",t.shape,e.shape),r=this.makeOutputArray(n.outputShape,"bool");return this.compileAndRun(n,[t,e],r)},t.prototype.select=function(t,e,n){var r=new Hi(t.rank,e.shape,e.rank),i=this.makeOutputArray(r.outputShape,yt(e.dtype,n.dtype));return this.compileAndRun(r,[t,e,n],i)},t.prototype.where=function(t){Xt("tf.where() in webgl locks the UI thread. Call tf.whereAsync() instead");var e=t.dataSync();return ca(t.shape,e)},t.prototype.topk=function(t,e,n){return en(t.dataSync(),t.shape,t.dtype,e)},t.prototype.min=function(t,e){ie("min",e,t.rank);var n=ne(t.shape,e),r=n[0],i=v(n[1]),o=t.as2D(-1,i);return this.reduce(o,"min",o.dtype).reshape(r)},t.prototype.minimum=function(t,e){if(this.shouldExecuteOnCPU([t,e]))return this.cpuBackend.minimum(t,e);var n=Bt.get("WEBGL_PACK_BINARY_OPERATIONS")?new Ln("\n  vec4 result = vec4(min(a, b));\n  vec4 isNaN = min(vec4(isNaN(a)) + vec4(isNaN(b)), vec4(1.0));\n  \n  result.r = isNaN.r > 0. ? NAN : result.r;\n  result.g = isNaN.g > 0. ? NAN : result.g;\n  result.b = isNaN.b > 0. ? NAN : result.b;\n  result.a = isNaN.a > 0. ? NAN : result.a;\n\n  return result;\n",t.shape,e.shape):new Mn("\n  if (isNaN(a)) return a;\n  if (isNaN(b)) return b;\n\n  return min(a, b);\n",t.shape,e.shape),r=n.getCustomSetupFunc();return this.compileAndRun(n,[t,e],null,r)},t.prototype.mod=function(t,e){var n=Bt.get("WEBGL_PACK_BINARY_OPERATIONS")?new Ln("\n  vec4 result = mod(a, b);\n  vec4 isNaN = vec4(equal(b, vec4(0.0)));\n  \n  result.r = isNaN.r > 0. ? NAN : result.r;\n  result.g = isNaN.g > 0. ? NAN : result.g;\n  result.b = isNaN.b > 0. ? NAN : result.b;\n  result.a = isNaN.a > 0. ? NAN : result.a;\n\n  return result;\n",t.shape,e.shape):new Mn("if (b == 0.0) return NAN;\n  return mod(a, b);",t.shape,e.shape),r=n.getCustomSetupFunc();return this.compileAndRun(n,[t,e],null,r)},t.prototype.max=function(t,e){if(this.shouldExecuteOnCPU([t]))return this.cpuBackend.max(t,e);ie("max",e,t.rank);var n=ne(t.shape,e),r=n[0],i=v(n[1]),o=t.as2D(-1,i);return this.reduce(o,"max",o.dtype).reshape(r)},t.prototype.maximum=function(t,e){if(this.shouldExecuteOnCPU([t,e]))return this.cpuBackend.maximum(t,e);var n=Bt.get("WEBGL_PACK_BINARY_OPERATIONS")?new Ln("\n  vec4 result = vec4(max(a, b));\n  vec4 isNaN = min(vec4(isNaN(a)) + vec4(isNaN(b)), vec4(1.0));\n  \n  result.r = isNaN.r > 0. ? NAN : result.r;\n  result.g = isNaN.g > 0. ? NAN : result.g;\n  result.b = isNaN.b > 0. ? NAN : result.b;\n  result.a = isNaN.a > 0. ? NAN : result.a;\n\n  return result;\n",t.shape,e.shape):new Mn("\n  if (isNaN(a)) return a;\n  if (isNaN(b)) return b;\n\n  return max(a, b);\n",t.shape,e.shape),r=n.getCustomSetupFunc();return this.compileAndRun(n,[t,e],null,r)},t.prototype.all=function(t,e){ie("all",e,t.rank);var n=ne(t.shape,e),r=n[0],i=v(n[1]),o=t.as2D(-1,i);return this.reduce(o,"all",o.dtype).reshape(r)},t.prototype.any=function(t,e){ie("any",e,t.rank);var n=ne(t.shape,e),r=n[0],i=v(n[1]),o=t.as2D(-1,i);return this.reduce(o,"any",o.dtype).reshape(r)},t.prototype.squaredDifference=function(t,e){var n=Bt.get("WEBGL_PACK_BINARY_OPERATIONS")?new Ln("return (a - b) * (a - b);",t.shape,e.shape):new Mn("return (a - b) * (a - b);",t.shape,e.shape);return this.compileAndRun(n,[t,e])},t.prototype.realDivide=function(t,e){var n=new Mn("if (a == b) return 1.0;\n  return a / b;",t.shape,e.shape),r=this.makeOutputArray(n.outputShape,"float32");return this.compileAndRun(n,[t,e],r)},t.prototype.floorDiv=function(t,e){if(Bt.get("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(t,e,"\n  vec4 resultSign = sign(a) * sign(b);\n  ivec4 ia = round(a);\n  ivec4 ib = round(b);\n  ivec4 result = ia / ib;\n  ivec4 amodb = ia - ib * result;\n\n  // Vectorize INT_DIV\n  // if (resultSign < 0.0 && amodb != 0) result -= 1;\n  // return float(result);\n  return vec4(result -\n     ivec4(lessThan(resultSign, vec4(0.0))) * ivec4(notEqual(amodb, ivec4(0))));\n","int32");var n=new Mn("\n  float resultSign = sign(a) * sign(b);\n  int ia = round(a);\n  int ib = round(b);\n  int result = ia / ib;\n  int amodb = ia - ib * result;\n\n  if (resultSign < 0.0 && amodb != 0) {\n    result -= 1;\n  }\n  return float(result);\n",t.shape,e.shape),r=this.makeOutputArray(n.outputShape,"int32");return this.compileAndRun(n,[t,e],r)},t.prototype.add=function(t,e){if("complex64"===t.dtype&&"complex64"===e.dtype)return this.complexSeparableBinaryOp(t,e,Dn);if(this.shouldExecuteOnCPU([t,e]))return this.cpuBackend.add(t,e);var n=yt(t.dtype,e.dtype);if(Bt.get("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(t,e,Dn,n);var r=new Mn(Dn,t.shape,e.shape),i=this.makeOutputArray(r.outputShape,n);return this.compileAndRun(r,[t,e],i)},t.prototype.packedBinaryOp=function(t,e,n,r){var i=new Ln(n,t.shape,e.shape),o=this.makePackedTensor(i.outputShape,r);return this.compileAndRun(i,[t,e],o)},t.prototype.complexSeparableBinaryOp=function(t,e,n){var r=this,i=this.texData.get(t.dataId),o=this.texData.get(e.dataId),a=[[i.complexTensors.real,o.complexTensors.real],[i.complexTensors.imag,o.complexTensors.imag]].map(function(i){var o=i[0],a=i[1],s=r.makeComplexComponentTensorHandle(t,o),u=r.makeComplexComponentTensorHandle(e,a),l=new Mn(n,t.shape,e.shape),c=r.makeOutputArray(l.outputShape,yt(o.dtype,a.dtype));return r.compileAndRun(l,[s,u],c)}),s=a[0],u=a[1],l=this.complex(s,u);return s.dispose(),u.dispose(),l},t.prototype.makeComplexComponentTensorHandle=function(t,e){return{dataId:e.dataId,dtype:e.dtype,shape:t.shape}},t.prototype.addN=function(t){for(var e=t[0],n=1;n<t.length;n++)e=this.add(e,t[n]);return e},t.prototype.subtract=function(t,e){if("complex64"===t.dtype&&"complex64"===e.dtype)return this.complexSeparableBinaryOp(t,e,On);if(this.shouldExecuteOnCPU([t,e]))return this.cpuBackend.subtract(t,e);var n=yt(t.dtype,e.dtype);if(Bt.get("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(t,e,On,t.dtype);var r=new Mn(On,t.shape,e.shape),i=this.makeOutputArray(r.outputShape,n);return this.compileAndRun(r,[t,e],i)},t.prototype.pow=function(t,e){var n=Bt.get("WEBGL_PACK_BINARY_OPERATIONS"),r=n?new Ln("\n  // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise.\n  vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1)));\n  vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1);\n  vec4 result = multiplier * pow(abs(a), b);\n\n  vec4 isNaN = vec4(lessThan(a, vec4(0.0))) * vec4(lessThan(floor(b), b));\n  \n  result.r = isNaN.r > 0. ? NAN : result.r;\n  result.g = isNaN.g > 0. ? NAN : result.g;\n  result.b = isNaN.b > 0. ? NAN : result.b;\n  result.a = isNaN.a > 0. ? NAN : result.a;\n\n  return result;\n",t.shape,e.shape):new Mn("\nif(a < 0.0 && floor(b) < b){\n  return NAN;\n}\nreturn (round(mod(b, 2.0)) != 1) ?\n    pow(abs(a), b) : sign(a) * pow(abs(a), b);\n",t.shape,e.shape),i=yt(t.dtype,e.dtype),o=n?this.makePackedTensor(r.outputShape,i):this.makeOutputArray(r.outputShape,i),a=r.getCustomSetupFunc();return this.compileAndRun(r,[t,e],o,a)},t.prototype.ceil=function(t){var e=new oo(t.shape,"return ceil(x);");return this.compileAndRun(e,[t])},t.prototype.floor=function(t){var e=new oo(t.shape,"return floor(x);");return this.compileAndRun(e,[t])},t.prototype.sign=function(t){var e=new oo(t.shape,"\n  if (isNaN(x)) { return 0.0; }\n  return sign(x);\n");return this.compileAndRun(e,[t])},t.prototype.round=function(t){var e=new oo(t.shape,"\n  // OpenGL ES does not support round function.\n  // The algorithm is based on banker's rounding.\n  float base = floor(x);\n  if ((x - base) < 0.5) {\n    return floor(x);\n  } else if ((x - base) > 0.5) {\n    return ceil(x);\n  } else {\n    if (mod(base, 2.0) == 0.0) {\n      return base;\n    } else {\n      return base + 1.0;\n    }\n  }\n");return this.compileAndRun(e,[t])},t.prototype.exp=function(t){var e;return e=Bt.get("WEBGL_PACK")?new bo(t.shape,co):new oo(t.shape,co),this.compileAndRun(e,[t])},t.prototype.expm1=function(t){var e=new oo(t.shape,"return exp(x) - 1.0;");return this.compileAndRun(e,[t])},t.prototype.log=function(t){var e,n=(e=Bt.get("WEBGL_PACK")?new bo(t.shape,"\n  vec4 result = log(x);\n  vec4 isNaN = vec4(lessThan(x, vec4(0.0)));\n  result.r = isNaN.r == 1.0 ? NAN : result.r;\n  result.g = isNaN.g == 1.0 ? NAN : result.g;\n  result.b = isNaN.b == 1.0 ? NAN : result.b;\n  result.a = isNaN.a == 1.0 ? NAN : result.a;\n\n  return result;\n"):new oo(t.shape,"if (x < 0.0) return NAN;\n  return log(x);")).getCustomSetupFunc();return this.compileAndRun(e,[t],null,n)},t.prototype.log1p=function(t){var e=new oo(t.shape,"return log(1.0 + x);");return this.compileAndRun(e,[t])},t.prototype.sqrt=function(t){var e=new oo(t.shape,"return sqrt(x);");return this.compileAndRun(e,[t])},t.prototype.rsqrt=function(t){if(this.shouldExecuteOnCPU([t]))return this.cpuBackend.rsqrt(t);var e=new oo(t.shape,"return inversesqrt(x);");return this.compileAndRun(e,[t])},t.prototype.square=function(t){var e=new oo(t.shape,"return x * x;");return this.compileAndRun(e,[t])},t.prototype.reciprocal=function(t){var e=new oo(t.shape,"return 1.0 / x;");return this.compileAndRun(e,[t])},t.prototype.relu=function(t){var e;return e=Bt.get("WEBGL_PACK")?new bo(t.shape,vo):new oo(t.shape,uo),this.compileAndRun(e,[t])},t.prototype.prelu=function(t,e){var n=Bt.get("WEBGL_PACK_BINARY_OPERATIONS")?new Ln("\n  vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n  return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n",t.shape,e.shape):new Mn("return (a < 0.) ? b * a : a;",t.shape,e.shape);return this.compileAndRun(n,[t,e])},t.prototype.elu=function(t){var e=new oo(t.shape,"return (x >= 0.0) ? x : (exp(x) - 1.0);");return this.compileAndRun(e,[t])},t.prototype.eluDer=function(t,e){var n=Bt.get("WEBGL_PACK_BINARY_OPERATIONS")?new Ln("\n  vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.)));\n  return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0))));\n",t.shape,e.shape):new Mn("return (b >= 1.0) ? a : a * (b + 1.0);",t.shape,e.shape);return this.compileAndRun(n,[t,e])},t.prototype.selu=function(t){var e=new oo(t.shape,lo);return this.compileAndRun(e,[t])},t.prototype.int=function(t){var e=new oo(t.shape,"return float(int(x));"),n=this.makeOutputArray(e.outputShape,"int32");return this.compileAndRun(e,[t],n)},t.prototype.clip=function(t,e,n){var r,i=(r=Bt.get("WEBGL_PACK_CLIP")?new zn(t.shape):new Fn(t.shape)).getCustomSetupFunc(e,n);return this.compileAndRun(r,[t],null,i)},t.prototype.abs=function(t){var e=new oo(t.shape,"return abs(x);");return this.compileAndRun(e,[t])},t.prototype.complexAbs=function(t){var e=this.texData.get(t.dataId),n=new Pn(t.shape),r=[this.makeComplexComponentTensorHandle(t,e.complexTensors.real),this.makeComplexComponentTensorHandle(t,e.complexTensors.imag)];return this.compileAndRun(n,r)},t.prototype.sigmoid=function(t){var e=new oo(t.shape,"return 1.0 / (1.0 + exp(-1.0 * x));");return this.compileAndRun(e,[t])},t.prototype.softplus=function(t){var e=new oo(t.shape,"\n  float epsilon = 1.1920928955078125e-7;\n  float threshold = log(epsilon) + 2.0;\n\n  bool too_large = x > -threshold;\n  bool too_small = x < threshold;\n\n  float result;\n  float exp_x = exp(x);\n\n  if (too_large){\n    result = x;\n  }\n  else if (too_small){\n    result = exp_x;\n  }\n  else{\n    result = log(exp_x + 1.0);\n  }\n  return result;\n");return this.compileAndRun(e,[t])},t.prototype.sin=function(t){var e=new oo(t.shape,po);return this.compileAndRun(e,[t])},t.prototype.cos=function(t){var e=new oo(t.shape,ho);return this.compileAndRun(e,[t])},t.prototype.tan=function(t){var e=new oo(t.shape,"return tan(x);");return this.compileAndRun(e,[t])},t.prototype.asin=function(t){var e=new oo(t.shape,"return asin(x);");return this.compileAndRun(e,[t])},t.prototype.acos=function(t){var e=new oo(t.shape,"return acos(x);");return this.compileAndRun(e,[t])},t.prototype.atan=function(t){var e=new oo(t.shape,fo);return this.compileAndRun(e,[t])},t.prototype.atan2=function(t,e){var n=Bt.get("WEBGL_PACK_BINARY_OPERATIONS")?new Ln("\n  vec4 result = atan(a, b);\n  vec4 isNaN = min(vec4(isNaN(a)) + vec4(isNaN(b)), vec4(1.0));\n  \n  result.r = isNaN.r > 0. ? NAN : result.r;\n  result.g = isNaN.g > 0. ? NAN : result.g;\n  result.b = isNaN.b > 0. ? NAN : result.b;\n  result.a = isNaN.a > 0. ? NAN : result.a;\n\n  return result;\n",t.shape,e.shape):new Mn("\n  if (isNaN(a)) return a;\n  if (isNaN(b)) return b;\n\n  return atan(a, b);\n",t.shape,e.shape),r=n.getCustomSetupFunc();return this.compileAndRun(n,[t,e],null,r)},t.prototype.sinh=function(t){var e=new oo(t.shape,"\n  float e2x = exp(x);\n  return (e2x - 1.0 / e2x) / 2.0;\n");return this.compileAndRun(e,[t])},t.prototype.cosh=function(t){var e=new oo(t.shape,"\n  float e2x = exp(-x);\n  return (e2x + 1.0 / e2x) / 2.0;\n");return this.compileAndRun(e,[t])},t.prototype.tanh=function(t){var e=new oo(t.shape,"\n  float e2x = exp(-2.0 * abs(x));\n  return sign(x) * (1.0 - e2x) / (1.0 + e2x);\n");return this.compileAndRun(e,[t])},t.prototype.asinh=function(t){var e=new oo(t.shape,"return log(x + sqrt(x * x + 1.0));");return this.compileAndRun(e,[t])},t.prototype.acosh=function(t){var e=new oo(t.shape,mo),n=e.getCustomSetupFunc();return this.compileAndRun(e,[t],null,n)},t.prototype.atanh=function(t){var e=new oo(t.shape,go),n=e.getCustomSetupFunc();return this.compileAndRun(e,[t],null,n)},t.prototype.erf=function(t){var e=new oo(t.shape,'\n  // Error function is calculated approximately with elementary function.\n  // See "Handbook of Mathematical Functions with Formulas,\n  // Graphs, and Mathematical Tables", Abramowitz and Stegun.\n  float p = 0.3275911;\n  float a1 = 0.254829592;\n  float a2 = -0.284496736;\n  float a3 = 1.421413741;\n  float a4 = -1.453152027;\n  float a5 = 1.061405429;\n\n  float t = 1.0 / (1.0 + p * x);\n  return 1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x);\n');return this.compileAndRun(e,[t])},t.prototype.step=function(t,e){var n=new oo(t.shape,function(t){return void 0===t&&(t=0),ao+"\n    return x > 0.0 ? 1.0 : float("+t+");\n  "}(e));return this.compileAndRun(n,[t])},t.prototype.conv2dByMatMul=function(t,e,n){var r=t.shape,i=this.texData.get(t.dataId);if(!Bt.get("WEBGL_LAZILY_UNPACK")||!Bt.get("WEBGL_PACK_BINARY_OPERATIONS")||r[2]%2==0||!i.isPacked){var o=this.reshape(t,[1,r[0]*r[1]*r[2],n.inChannels]),a=this.reshape(e,[1,n.inChannels,n.outChannels]);return this.reshape(this.batchMatMul(o,a,!1,!1),n.outShape)}var s=ut.make([1,r[0]*r[1]*(r[2]+1),n.inChannels],{dataId:t.dataId},t.dtype,this),u=i.shape;i.shape=i.shape.slice(),i.shape[i.shape.length-2]++,d(Qr(i.shape,s.shape),function(){return"packed reshape "+i.shape+" to "+s.shape+" isn't free"});var l=this.reshape(e,[1,n.inChannels,n.outChannels]),c=this.batchMatMul(s,l,!1,!1),p=this.texData.get(c.dataId);return d(p.isPacked,function(){return"batchMatMul result is expected to be packed"}),i.shape=u,p.shape=n.outShape,ut.make(n.outShape,{dataId:c.dataId},c.dtype,this)},t.prototype.conv2dWithIm2Row=function(t,e,n){var r=n.filterWidth,i=n.filterHeight,o=n.inChannels,a=n.outWidth,s=n.outHeight,u=r*i*o,l=s*a,c=[u,l],p=t.squeeze([0]),h=e.reshape([1,u,-1]),f=new Ei(c,p.shape,n),d=this.compileAndRun(f,[p]).reshape([1,c[0],c[1]]),m=new Ti(d.shape,[1,l,n.outChannels],!0,!1);return this.compileAndRun(m,[d,h]).reshape([1,s,a,n.outChannels])},t.prototype.conv2d=function(t,e,n){if(1===n.filterHeight&&1===n.filterWidth&&1===n.dilationHeight&&1===n.dilationWidth&&1===n.strideHeight&&1===n.strideWidth&&("SAME"===n.padInfo.type||"VALID"===n.padInfo.type))return this.conv2dByMatMul(t,e,n);if(Bt.get("WEBGL_CONV_IM2COL")&&1===t.shape[0])return this.conv2dWithIm2Row(t,e,n);var r=new Kn(n);return this.compileAndRun(r,[t,e])},t.prototype.conv2dDerInput=function(t,e,n){var r=new Vn(n);return this.compileAndRun(r,[t,e])},t.prototype.conv2dDerFilter=function(t,e,n){var r=new Wn(n);return this.compileAndRun(r,[t,e])},t.prototype.depthwiseConv2D=function(t,e,n){var r;return Bt.get("WEBGL_PACK_DEPTHWISECONV")&&n.strideWidth<=2&&n.outChannels/n.inChannels==1?(r=new Yn(n),this.compileAndRun(r,[t,e],this.makePackedTensor(n.outShape,t.dtype))):(r=new Xn(n),this.compileAndRun(r,[t,e]))},t.prototype.depthwiseConv2DDerInput=function(t,e,n){var r=new Hn(n);return this.compileAndRun(r,[t,e])},t.prototype.depthwiseConv2DDerFilter=function(t,e,n){var r=new Gn(n);return this.compileAndRun(r,[t,e])},t.prototype.conv3d=function(t,e,n){var r=new $n(n);return this.compileAndRun(r,[t,e])},t.prototype.conv3dDerInput=function(t,e,n){var r=new qn(n);return this.compileAndRun(r,[t,e])},t.prototype.conv3dDerFilter=function(t,e,n){var r=new jn(n);return this.compileAndRun(r,[t,e])},t.prototype.maxPool=function(t,e){var n=new Li(e,"max",!1),r=this.makeOutputArray(n.outputShape,t.dtype);return this.compileAndRun(n,[t],r)},t.prototype.avgPool=function(t,e){var n=new Li(e,"avg",!1),r=this.makeOutputArray(n.outputShape,"float32");return this.compileAndRun(n,[t],r)},t.prototype.maxPoolBackprop=function(t,e,n,r){var i=new Li(r,"max",!0),o=this.compileAndRun(i,[e]),a=new Ai(r),s=this.makeOutputArray(a.outputShape,e.dtype),u=this.compileAndRun(a,[t,o],s);return o.dispose(),u},t.prototype.avgPoolBackprop=function(t,e,n){var r=new En(n),i=this.makeOutputArray(r.outputShape,e.dtype);return this.compileAndRun(r,[t],i)},t.prototype.cast=function(t,e){return He(t,e,this)},t.prototype.unstack=function(t,e){for(var n=t.shape[e],r=new Array(t.rank-1),i=0,o=0;o<t.rank;o++)o!==e&&(r[i++]=t.shape[o]);var a=new Array(t.rank).fill(0),s=t.shape.slice();s[e]=1;var u=new Array(n);for(o=0;o<u.length;o++)a[e]=o,u[o]=this.slice(t,a,s).reshape(r);return u},t.prototype.reshape=function(t,e){var n=this.texData.get(t.dataId);return!n.isPacked||Qr(t.shape,e)||null!==n.texture&&Qr(n.shape,e)?Ke(t,e):this.packedReshape(t,e)},t.prototype.resizeBilinear=function(t,e,n,r){var i=Bt.get("WEBGL_PACK_IMAGE_OPERATIONS")?new Ui(t.shape,e,n,r):new Bi(t.shape,e,n,r);return this.compileAndRun(i,[t])},t.prototype.resizeBilinearBackprop=function(t,e,n){var r=new Pi(t,e,n);return this.compileAndRun(r,[t])},t.prototype.resizeNearestNeighbor=function(t,e,n,r){var i=new Vi(t.shape,e,n,r);return this.compileAndRun(i,[t])},t.prototype.resizeNearestNeighborBackprop=function(t,e,n){var r=new Wi(t,e,n);return this.compileAndRun(r,[t])},t.prototype.multinomial=function(t,e,n,r){var i=e?t:Ce(t),o=i.shape[0],a=i.shape[1],s=new Ri(o,a,n),u=this.makeOutputArray(s.outputShape,"int32"),l=s.getCustomSetupFunc(r);return this.compileAndRun(s,[i],u,l)},t.prototype.oneHot=function(t,e,n,r){var i=new Di(t.size,e,n,r);return this.compileAndRun(i,[t])},t.prototype.nonMaxSuppression=function(t,e,n,r,i){return Xt("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead"),Ze(t.dataSync(),e.dataSync(),n,r,i)},t.prototype.cropAndResize=function(t,e,n,r,i,o){var a=new Jn(t.shape,e.shape,r,i,o);return this.compileAndRun(a,[t,e,n])},t.prototype.depthToSpace=function(t,e,n){d(e>1,function(){return"blockSize should be > 1 for depthToSpace, but was: "+e});var r=t.shape[0],i="NHWC"===n?t.shape[1]:t.shape[2],o="NHWC"===n?t.shape[2]:t.shape[3],a="NHWC"===n?t.shape[3]:t.shape[1],s=i*e,u=o*e,l=a/(e*e),c=new tr("NHWC"===n?[r,s,u,l]:[r,l,s,u],e,n);return this.compileAndRun(c,[t])},t.prototype.split=function(t,e,n){return tn(t,e,n)},t.prototype.scatterND=function(t,e,n){var r=fe(0,t,n),i=r.sliceRank,o=r.numUpdates,a=r.sliceSize,s=r.strides,u=r.outputSize,l=[u/a,a],c=t.reshape([o,i]),p=e.reshape([o,a]);if(0===u)return Ke(Te([]),n);var h=Re(0),f=new qi(o,i,c.rank,p.rank,s,l);return this.compileAndRun(f,[p,c,h]).reshape(n)},t.prototype.sparseToDense=function(t,e,n,r){var i=fe(0,t,n),o=i.sliceRank,a=i.numUpdates,s=i.strides,u=i.outputSize,l=new qi(a,o,t.rank,e.rank,s,[u,1],!1);return this.compileAndRun(l,[e,t,r]).reshape(n)},t.prototype.fft=function(t){return this.fftImpl(t,!1)},t.prototype.ifft=function(t){return this.fftImpl(t,!0)},t.prototype.fftImpl=function(t,e){var n=this.texData.get(t.dataId),r=new ir(nr,t.shape,e),i=new ir(rr,t.shape,e),o=[this.makeComplexComponentTensorHandle(t,n.complexTensors.real),this.makeComplexComponentTensorHandle(t,n.complexTensors.imag)],a=this.compileAndRun(r,o),s=this.compileAndRun(i,o),u=this.complex(a,s).as2D(t.shape[0],t.shape[1]);return a.dispose(),s.dispose(),u},t.prototype.gatherND=function(t,e){var n=e.shape,r=n[n.length-1],i=le(t,e),o=i[0],a=i[1],s=i[2],u=i[3],l=e.reshape([a,r]),c=t.reshape([t.size/s,s]),p=new cr(r,u,[a,s]);return this.compileAndRun(p,[c,l]).reshape(o)},t.prototype.fill=function(t,e,n){if("string"===(n=n||B(e))){var r=T(n,v(t));return r.fill(e),ut.make(t,{values:r},n)}var i=new or(t,e),o=i.getCustomSetupFunc(e),a=this.makeOutputArray(t,n);return this.compileAndRun(i,[],a,o)},t.prototype.onesLike=function(t){if("string"===t.dtype)throw new Error("onesLike is not supported under string dtype");return this.fill(t.shape,1,t.dtype)},t.prototype.zerosLike=function(t){return this.fill(t.shape,"string"===t.dtype?"":0,t.dtype)},t.prototype.makeOutputArray=function(t,e){return ut.make(t,{},e,this)},t.prototype.makePackedTensor=function(t,e){var n=ut.make(t,{},e,this);return this.texData.get(n.dataId).isPacked=!0,n},t.prototype.unpackTensor=function(t){var e=new wo(t.shape);return this.compileAndRun(e,[t],ut.make(e.outputShape,{},t.dtype,this))},t.prototype.packTensor=function(t){var e=new Oi(t.shape);return this.compileAndRun(e,[t],this.makePackedTensor(t.shape,t.dtype))},t.prototype.packedReshape=function(t,e){var n=t.reshape([Xr(t.shape)].concat(Yr(t.shape))),r=[Xr(e)].concat(Yr(e)),i=new zi(r,n.shape);return this.compileAndRun(i,[n]).reshape(e)},t.prototype.compileAndRun=function(t,e,n,r,i){var o=this;if(void 0===i&&(i=!0),null==n&&(n=t.usesPackedTextures?this.makePackedTensor(t.outputShape,e[0].dtype):this.makeOutputArray(t.outputShape,e[0].dtype)),0===n.size)return this.texData.get(n.dataId).values=A(n.dtype,0),n;var a=e.map(function(e){if("complex64"===e.dtype)throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");var n=o.texData.get(e.dataId);if(null==n.texture){if(!t.usesPackedTextures&&v(e.shape)<=Bt.get("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:e.shape,texData:null,isUniform:!0,uniformValues:o.readSync(e.dataId)};t.usesPackedTextures&&(n.isPacked=!0,n.shape=e.shape)}else if(!!n.isPacked!=!!t.usesPackedTextures)e=n.isPacked?o.unpackTensor(e):o.packTensor(e),n=o.texData.get(e.dataId);else if(n.isPacked&&!Qr(n.shape,e.shape)){var r=e,i=e.shape;e.shape=n.shape,e=o.packedReshape(e,i),n=o.texData.get(e.dataId),r.shape=i}return o.uploadToGPU(e.dataId),{shape:e.shape,texData:n,isUniform:!1}});this.uploadToGPU(n.dataId);var s,u={shape:n.shape,texData:this.texData.get(n.dataId),isUniform:!1},l=function(t,e,n){var r="";e.concat(n).forEach(function(t){var e=null!=t.texData&&null!=t.texData.slice&&t.texData.slice.flatOffset>0,n=t.isUniform?"uniform":t.texData.texShape;r+=t.shape+"_"+n+"_"+e});var i=t.userCode;return t.constructor.name+"_"+r+"_"+i}(t,a,u),c=this.getAndSaveBinary(l,function(){return function(t,e,n,r){for(var i=e.userCode,o=n.map(function(t,n){var r={logicalShape:t.shape,texShape:t.isUniform?null:t.texData.texShape,isUniform:t.isUniform,isPacked:!t.isUniform&&t.texData.isPacked,flatOffset:null};return null!=t.texData&&null!=t.texData.slice&&t.texData.slice.flatOffset>0&&(r.flatOffset=t.texData.slice.flatOffset),{name:e.variableNames[n],shapeInfo:r}}),a=o.map(function(t){return t.shapeInfo}),s={logicalShape:r.shape,texShape:r.texData.texShape,isUniform:!1,isPacked:r.texData.isPacked,flatOffset:null},u=hn(o,s,i,e.usesPackedTextures),l=t.createProgram(u),c={},p=0;p<e.variableNames.length;p++){var h=e.variableNames[p];c[h]=t.getUniformLocation(l,h,!1),c["offset"+h]=t.getUniformLocation(l,"offset"+h,!1)}return{program:e,source:u,webGLProgram:l,uniformLocations:c,gpgpu:t,inShapeInfos:a,outShapeInfo:s}}(o.gpgpu,t,a,u)}),p=null!=this.activeTimers;p&&(s=this.startTimer()),function(t,e,n,r){Ci(t.inShapeInfos,e),Ci([t.outShapeInfo],[n]);var i=n.texData.texture,o=n.texData.texShape,a=t.gpgpu;n.texData.isPacked?a.setOutputPackedMatrixTexture(i,o[0],o[1]):a.setOutputMatrixTexture(i,o[0],o[1]),a.setProgram(t.webGLProgram),e.forEach(function(e,n){var r=t.program.variableNames[n],i=t.uniformLocations[r],o=t.uniformLocations["offset"+r];if(null!=i)if(e.isUniform)if(1===v(e.shape))a.gl.uniform1f(i,e.uniformValues[0]);else{var s=e.uniformValues;s instanceof Float32Array||(s=new Float32Array(s)),a.gl.uniform1fv(i,s)}else null!=e.texData.slice&&null!=o&&a.gl.uniform1i(o,e.texData.slice.flatOffset),a.setInputMatrixTexture(e.texData.texture,i,n)}),null!=r&&r(a,t.webGLProgram),a.executeProgram()}(c,a,u,r);var h=1024*Bt.get("WEBGL_NUM_MB_BEFORE_PAGING");if(i&&this.numBytesInGPU>h)for(var f=this.numBytesInGPU-h;f>0&&this.lruDataGPU.length>0;){var d=this.lruDataGPU.shift(),m=this.texData.get(d),g=m.texShape,y=m.dtype;f-=this.computeBytes(g,y),this.read(d)}return p&&(s=this.endTimer(s),this.activeTimers.push({name:t.constructor.name,query:this.getQueryTime(s)})),Bt.get("WEBGL_LAZILY_UNPACK")||!this.texData.get(n.dataId).isPacked||t.isPackShader?n:this.unpackTensor(n)},t.prototype.getAndSaveBinary=function(t,e){return t in this.binaryCache||(this.binaryCache[t]=e()),this.binaryCache[t]},t.prototype.getTextureManager=function(){return this.textureManager},t.prototype.dispose=function(){if(!this.disposed){for(var t in this.binaryCache)this.gpgpu.deleteProgram(this.binaryCache[t].webGLProgram);this.textureManager.dispose(),this.canvas.remove(),null!=this.fromPixels2DContext&&this.fromPixels2DContext.canvas.remove(),this.gpgpuCreatedLocally&&this.gpgpu.dispose(),this.disposed=!0}},t.prototype.floatPrecision=function(){var t=this;return qt(function(){var e=Bt.get("DEBUG");Bt.set("DEBUG",!1);var n=t.abs(Re(1e-8)).dataSync()[0];return Bt.set("DEBUG",e),n>0?32:16})},t.prototype.uploadToGPU=function(t){var e,n=this.texData.get(t),r=n.shape,i=n.dtype,o=n.values,a=n.texture,s=n.usage,u=n.isPacked;if(null==a){var l,c=null!=this.activeTimers;c&&(l=performance.now());var p=Jr(r,u);n.texShape=p;var h=this.acquireTexture(t,p,s,i,u);if(n.texture=h,null!=o){if(u){var f=Xr(r),d=1,m=1;r.length&&(d=(e=Yr(r))[0],m=e[1]),this.gpgpu.uploadMatrixToPackedTexture(h,f,d,m,p[0],p[1],ha(o))}else this.gpgpu.uploadMatrixToTexture(h,p[0],p[1],ha(o));n.values=null,c&&(this.uploadWaitMs+=performance.now()-l)}}else Bt.get("WEBGL_NUM_MB_BEFORE_PAGING")<Number.POSITIVE_INFINITY&&this.lruDataGPU.indexOf(t)>=0&&(this.lruDataGPU.splice(this.lruDataGPU.indexOf(t),1),this.lruDataGPU.push(t))},t.prototype.convertAndCacheOnCPU=function(t,e){var n=this.texData.get(t),r=n.texture,i=n.texShape,o=n.dtype,a=n.usage,s=n.isPacked;return null!=r&&(this.releaseTexture(t,r,i,a,o,s),n.texture=null,n.texShape=null,n.isPacked=!1),n.usage=ur.UPLOAD,null!=e&&(n.values=function(t,e){if("float32"===e||"complex64"===e)return t;if("int32"===e||"bool"===e){for(var n="int32"===e?new Int32Array(t.length):new Uint8Array(t.length),r=0;r<n.length;++r)n[r]=Math.round(t[r]);return n}throw new Error("Unknown dtype "+e)}(e,o)),n.values},t.prototype.releaseTexture=function(t,e,n,r,i,o){if(Bt.get("WEBGL_NUM_MB_BEFORE_PAGING")<Number.POSITIVE_INFINITY){var a=this.lruDataGPU.indexOf(t);a>=0&&this.lruDataGPU.splice(a,1)}this.numBytesInGPU-=this.computeBytes(n,i),this.textureManager.releaseTexture(e,n,r,o)},t.prototype.acquireTexture=function(t,e,n,r,i){return Bt.get("WEBGL_NUM_MB_BEFORE_PAGING")<Number.POSITIVE_INFINITY&&this.lruDataGPU.push(t),this.numBytesInGPU+=this.computeBytes(e,r),this.textureManager.acquireTexture(e,n,i)},t.prototype.computeBytes=function(t,e){return t[0]*t[1]*M(e)},t}();function ha(t){return t instanceof Float32Array?t:new Float32Array(t)}Bt.get("IS_BROWSER")&&Bt.registerBackend("webgl",function(){return new pa},2);var fa=Se({abs_:function(t){var e=xe(t,"x","abs");return"complex64"===e.dtype?Bt.engine.runKernel(function(t){return t.complexAbs(e)},{$x:e}):Bt.engine.runKernel(function(t){return t.abs(e)},{$x:e},function(t){return{$x:function(){return t.mulStrict(e.toFloat().step(-1))}}})}}),da=Se({acos_:function(t){var e=xe(t,"x","acos");return Bt.engine.runKernel(function(t){return t.acos(e)},{$x:e},function(t){return{$x:function(){return t.divStrict(Re(1).sub(e.toFloat().square()).sqrt()).neg()}}})}}),ma=Se({acosh_:function(t){var e=xe(t,"x","acosh");return Bt.engine.runKernel(function(t){return t.acosh(e)},{$x:e},function(t){return{$x:function(){return t.divStrict(e.toFloat().square().sub(1).sqrt())}}})}}),ga=Se({asin_:function(t){var e=xe(t,"x","asin");return Bt.engine.runKernel(function(t){return t.asin(e)},{$x:e},function(t){return{$x:function(){return t.divStrict(Re(1).sub(e.toFloat().square()).sqrt())}}})}}),ya=Se({asinh_:function(t){var e=xe(t,"x","asinh");return Bt.engine.runKernel(function(t){return t.asinh(e)},{$x:e},function(t){return{$x:function(){return t.divStrict(Re(1).add(e.toFloat().square()).sqrt())}}})}}),va=Se({atan_:function(t){var e=xe(t,"x","atan");return Bt.engine.runKernel(function(t){return t.atan(e)},{$x:e},function(t){return{$x:function(){return t.div(e.toFloat().square().add(1))}}})}}),ba=Se({atanh_:function(t){var e=xe(t,"x","atanh");return Bt.engine.runKernel(function(t){return t.atanh(e)},{$x:e},function(t){return{$x:function(){return t.div(Re(1).sub(e.toFloat().square()))}}})}}),wa=Se({ceil_:function(t){var e=xe(t,"x","ceil");return Bt.engine.runKernel(function(t){return t.ceil(e)},{$x:e},function(t){return{$x:function(){return je(t)}}})}}),xa=Se({clipByValue_:function(t,e,n){var r=xe(t,"x","clipByValue");return d(e<=n,function(){return"Error in clip: min ("+e+") must be less than or equal to max ("+n+")."}),Bt.engine.runKernel(function(t){return t.clip(r,e,n)},{$x:r},function(t){return{$x:function(){return t.where(r.greaterEqual(e).logicalAnd(r.lessEqual(n)),je(t))}}})}}),Na=Se({cos_:function(t){var e=xe(t,"x","cos");return Bt.engine.runKernel(function(t){return t.cos(e)},{$x:e},function(t){return{$x:function(){return e.toFloat().sin().neg().mulStrict(t)}}})}}),Sa=Se({cosh_:function(t){var e=xe(t,"x","cosh");return Bt.engine.runKernel(function(t){return t.cosh(e)},{$x:e},function(t){return{$x:function(){return e.toFloat().sinh().mulStrict(t)}}})}}),Ca=Se({erf_:function(t){var e=xe(t,"x","erf");return d("int32"===e.dtype||"float32"===e.dtype,function(){return"Input dtype must be `int32` or `float32`."}),"int32"===e.dtype&&(e=e.toFloat()),Bt.engine.runKernel(function(t){return t.erf(e)},{$x:e},function(t){return{$x:function(){return t.mul(e.square().neg().exp().mul(2/Math.sqrt(Math.PI)))}}})}}),Ea=Se({exp_:function(t){var e=xe(t,"x","exp");return Bt.engine.runKernel(function(t,n){return n(t.exp(e))},{$x:e},function(t,e){var n=e[0];return{$x:function(){return t.mulStrict(n)}}})}}),Ia=Se({expm1_:function(t){var e=xe(t,"x","expm1");return Bt.engine.runKernel(function(t){return t.expm1(e)},{$x:e},function(t){return{$x:function(){return t.mulStrict(e.exp())}}})}}),ka=Se({floor_:function(t){var e=xe(t,"x","floor");return Bt.engine.runKernel(function(t){return t.floor(e)},{$x:e},function(t){return{$x:function(){return je(t)}}})}}),Aa=Se({log_:function(t){var e=xe(t,"x","log");return Bt.engine.runKernel(function(t){return t.log(e)},{$x:e},function(t){return{$x:function(){return t.divStrict(e.toFloat())}}})}}),Ta=Se({log1p_:function(t){var e=xe(t,"x","log1p");return Bt.engine.runKernel(function(t){return t.log1p(e)},{$x:e},function(t){return{$x:function(){return t.div(e.add(1))}}})}}),Ra=Se({logSigmoid_:function(t){var e=xe(t,"x","logSigmoid");return Bt.engine.runKernel(function(t){return t.softplus(e.neg()).neg()},{$x:e},function(t){return{$x:function(){return t.mulStrict(e.neg().sigmoid())}}})}}),Da=Se({neg_:function(t){var e=xe(t,"x","neg");return Bt.engine.runKernel(function(t){return t.neg(e)},{$x:e},function(t){return{$x:function(){return t.neg()}}})}}),Oa=Se({reciprocal_:function(t){var e=xe(t,"x","reciprocal");return Bt.engine.runKernel(function(t){return t.reciprocal(e)},{$x:e},function(t){return{$x:function(){return t.divStrict(e.square().neg())}}})}}),_a=Se({round_:function(t){var e=xe(t,"x","round");return Bt.engine.runKernel(function(t){return t.round(e)},{$x:e},function(t){return{$x:function(){return je(t)}}})}}),Ma=Se({rsqrt_:function(t){var e=xe(t,"x","rsqrt");return Bt.engine.runKernel(function(t){return t.rsqrt(e)},{$x:e},function(t){return{$x:function(){return t.div(e.pow(1.5).mul(2)).neg()}}})}}),La=Se({sigmoid_:function(t){var e=xe(t,"x","sigmoid");return Bt.engine.runKernel(function(t,n){return n(t.sigmoid(e))},{$x:e},function(t,e){var n=e[0];return{$x:function(){return t.mul(n.mul(Re(1).sub(n)))}}})}}),Fa=Se({sign_:function(t){var e=xe(t,"x","sign");return Bt.engine.runKernel(function(t){return t.sign(e)},{$x:e},function(t){return{$x:function(){return je(t)}}})}}),za=Se({sin_:function(t){var e=xe(t,"x","sin");return Bt.engine.runKernel(function(t){return t.sin(e)},{$x:e},function(t){return{$x:function(){return e.toFloat().cos().mulStrict(t)}}})}}),Pa=Se({sinh_:function(t){var e=xe(t,"x","sinh");return Bt.engine.runKernel(function(t){return t.sinh(e)},{$x:e},function(t){return{$x:function(){return e.toFloat().cosh().mulStrict(t)}}})}}),Ba=Se({softplus_:function(t){var e=xe(t,"x","softplus");return Bt.engine.runKernel(function(t){return t.softplus(e)},{$x:e},function(t){return{$x:function(){return t.mulStrict(e.sigmoid())}}})}}),Ua=Se({sqrt_:function(t){var e=xe(t,"x","sqrt");return Bt.engine.runKernel(function(t){return t.sqrt(e)},{$x:e},function(t){return{$x:function(){return t.div(e.toFloat().sqrt().mul(2))}}})}}),Wa=Se({square_:function(t){var e=xe(t,"x","square");return Bt.engine.runKernel(function(t){return t.square(e)},{$x:e},function(t){return{$x:function(){return t.mul(e.toFloat().mul(2))}}})}}),Va=Se({step_:function(t,e){void 0===e&&(e=0);var n=xe(t,"x","step");return Bt.engine.runKernel(function(t){return t.step(n,e)},{$x:n},function(t){return{$x:function(){return je(t)}}})}}),ja=Se({tan_:function(t){var e=xe(t,"x","tan");return Bt.engine.runKernel(function(t){return t.tan(e)},{$x:e},function(t){return{$x:function(){return t.divStrict(e.cos().square())}}})}}),qa=Se({tanh_:function(t){var e=xe(t,"x","tanh");return Bt.engine.runKernel(function(t,n){return n(t.tanh(e))},{$x:e},function(t,e){var n=e[0];return{$x:function(){return Re(1).sub(n.square()).mulStrict(t)}}})}});function Ga(t,e,n,r,i,o){var a,s,u=xe(t,"x","batchNorm"),l=xe(e,"mean","batchNorm"),c=xe(n,"variance","batchNorm");return null!=i&&(a=xe(i,"scale","batchNorm")),null!=r&&(s=xe(r,"offset","batchNorm")),d(2===u.rank,function(){return"Error in batchNorm3D: x must be rank 3 but got rank "+u.rank+"."}),d(2===l.rank||1===l.rank,function(){return"Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank "+l.rank+"."}),d(2===c.rank||1===c.rank,function(){return"Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank "+c.rank+"."}),null!=a&&d(2===a.rank||1===a.rank,function(){return"Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank "+a.rank+"."}),null!=s&&d(2===s.rank||1===s.rank,function(){return"Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank "+s.rank+"."}),$a(u,l,c,s,a,o)}function Ha(t,e,n,r,i,o){var a,s,u=xe(t,"x","batchNorm"),l=xe(e,"mean","batchNorm"),c=xe(n,"variance","batchNorm");return null!=i&&(a=xe(i,"scale","batchNorm")),null!=r&&(s=xe(r,"offset","batchNorm")),d(3===u.rank,function(){return"Error in batchNorm3D: x must be rank 3 but got rank "+u.rank+"."}),d(3===l.rank||1===l.rank,function(){return"Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank "+l.rank+"."}),d(3===c.rank||1===c.rank,function(){return"Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank "+c.rank+"."}),null!=a&&d(3===a.rank||1===a.rank,function(){return"Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank "+a.rank+"."}),null!=s&&d(3===s.rank||1===s.rank,function(){return"Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank "+s.rank+"."}),$a(u,l,c,s,a,o)}function Ka(t,e,n,r,i,o){var a,s,u=xe(t,"x","batchNorm"),l=xe(e,"mean","batchNorm"),c=xe(n,"variance","batchNorm");return null!=i&&(a=xe(i,"scale","batchNorm")),null!=r&&(s=xe(r,"offset","batchNorm")),d(4===u.rank,function(){return"Error in batchNorm4D: x must be rank 4 but got rank "+u.rank+"."}),d(4===l.rank||1===l.rank,function(){return"Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank "+l.rank+"."}),d(4===c.rank||1===c.rank,function(){return"Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank "+c.rank+"."}),null!=a&&d(4===a.rank||1===a.rank,function(){return"Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank "+a.rank+"."}),null!=s&&d(4===s.rank||1===s.rank,function(){return"Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank "+s.rank+"."}),$a(u,l,c,s,a,o)}function $a(t,e,n,r,i,o){null==o&&(o=.001);var a,s,u,l=xe(t,"x","batchNorm"),c=xe(e,"mean","batchNorm"),p=xe(n,"variance","batchNorm");return null!=i&&(a=xe(i,"scale","batchNorm")),null!=r&&(s=xe(r,"offset","batchNorm")),d(c.rank===p.rank,function(){return"Batch normalization gradient requires mean and variance to have equal ranks."}),d(null==s||c.rank===s.rank,function(){return"Batch normalization gradient requires mean and offset to have equal ranks."}),d(null==a||c.rank===a.rank,function(){return"Batch normalization gradient requires mean and scale to have equal ranks."}),u=0===l.rank||1===l.rank?l.as4D(1,1,1,l.size):2===l.rank?l.as4D(1,1,l.shape[0],l.shape[1]):3===l.rank?l.as4D(1,l.shape[0],l.shape[1],l.shape[2]):l,Bt.engine.runKernel(function(t){return t.batchNormalization(u,Xa(c),Xa(p),o,Xa(a),Xa(s))},{$x:l,$mean:c,$variance:p,$scale:a,$offset:s},function(t){var e=null==a?Re(1):a,n=sn(c.shape,u.shape),r=[];if(1===c.rank){for(var i=0;i<u.shape.length-1;++i)r.push(u.shape[i]);r.push(1)}var s=l.sub(c),h=t.mul(e),f=Ma(p.add(Re(o))),d=f.mul(f).mul(f).mul(Re(-.5));return{$x:function(){return 1===c.rank?t.mul(aa(f.as4D(1,1,1,c.shape[0]),r)).mul(e).reshape(l.shape):t.mul(f).mul(e).reshape(l.shape)},$mean:function(){var t=f.mul(Re(-1)).mul(h);return 1===c.rank&&(t=t.sum(n)),t.reshape(c.shape)},$variance:function(){var t=d.mul(s).mul(h);return 1===c.rank&&(t=t.sum(n)),t.reshape(c.shape)},$scale:function(){var e=s.mul(f),r=t.mul(e);return 1===c.rank&&(r=r.sum(n)),r.reshape(c.shape)},$offset:function(){var e=t;return 1===c.rank&&(e=e.sum(n)),e.reshape(c.shape)}}}).reshape(l.shape)}function Xa(t){return null==t?null:0===t.rank?t.as1D():1===t.rank?t:2===t.rank?t.as4D(1,1,t.shape[0],t.shape[1]):3===t.rank?t.as4D(1,t.shape[0],t.shape[1],t.shape[2]):t}function Ya(){Pt("tf.batchNormalization() is going away. Use tf.batchNorm() instead, and note the positional argument change of scale, offset, and varianceEpsilon")}var Ja=Se({batchNormalization2d_:function(t,e,n,r,i,o){return void 0===r&&(r=.001),Ya(),Ga(t,e,n,o,i,r)}}),Za=Se({batchNormalization3d_:function(t,e,n,r,i,o){return void 0===r&&(r=.001),Ya(),Ha(t,e,n,o,i,r)}}),Qa=Se({batchNormalization4d_:function(t,e,n,r,i,o){return void 0===r&&(r=.001),Ya(),Ka(t,e,n,o,i,r)}}),ts=Se({batchNormalization_:function(t,e,n,r,i,o){return void 0===r&&(r=.001),Ya(),$a(t,e,n,o,i,r)}}),es=Se({batchNorm_:$a}),ns=Se({batchNorm2d_:Ga}),rs=Se({batchNorm3d_:Ha}),is=Se({batchNorm4d_:Ka});function os(t,e,n,r,i,o,a){void 0===a&&(a="channelsLast");var s,u=us(e),l=u[0],c=u[1];if("channelsLast"===a)s=[l,c,t[3],t[3]];else{if("channelsFirst"!==a)throw new Error("Unknown dataFormat "+a);s=[l,c,t[1],t[1]]}return as(t,s,n,r,i,o,!1,a)}function as(t,e,n,r,i,o,a,s){void 0===a&&(a=!1),void 0===s&&(s="channelsLast");var u=[-1,-1,-1,-1],l=u[0],c=u[1],p=u[2],h=u[3];if("channelsLast"===s)l=t[0],c=t[1],p=t[2],h=t[3];else{if("channelsFirst"!==s)throw new Error("Unknown dataFormat "+s);l=t[0],h=t[1],c=t[2],p=t[3]}var f,m=e[0],g=e[1],y=e[3],v=us(n),b=v[0],x=v[1],N=us(r),S=N[0],C=N[1],E=cs(m,S),I=cs(g,C),k=function(t,e,n,r,i,o,a,s){var u,l,c;if("number"==typeof t){u={top:t,bottom:t,left:t,right:t,type:0===t?"VALID":"NUMBER"};var p=function(t,e,n,r,i,o){null==i&&(i=function(t,e,n,r){void 0===r&&(r=1);var i=cs(e,r);return Math.floor((t[0]*(n-1)-n+i)/2)}(t,e,r));var a=t[0],s=t[1],u=ps((a-e+2*i)/r+1,o);d(w(u),function(){return"The output # of rows ("+u+") must be an integer. Change the stride and/or zero pad parameters"});var l=ps((s-e+2*i)/r+1,o);return d(w(l),function(){return"The output # of columns ("+l+") must be an integer. Change the stride and/or zero pad parameters"}),[u,l,n]}([e,n,1],o,1,r,t,s);l=p[0],c=p[1]}else if("same"===t){l=Math.ceil(e/r),c=Math.ceil(n/i);var h=Math.max(0,(l-1)*r+o-e),f=Math.max(0,(c-1)*i+a-n),m=Math.floor(h/2),g=h-m,y=Math.floor(f/2);u={top:m,bottom:g,left:y,right:f-y,type:"SAME"}}else{if("valid"!==t)throw Error("Unknown padding parameter: "+t);u={top:0,bottom:0,left:0,right:0,type:"VALID"},l=Math.ceil((e-o+1)/r),c=Math.ceil((n-a+1)/i)}return{padInfo:u,outHeight:l,outWidth:c}}(i,c,p,b,x,E,I,o),A=k.padInfo,T=k.outHeight,R=k.outWidth,D=a?y*h:y;return"channelsFirst"===s?f=[l,D,T,R]:"channelsLast"===s&&(f=[l,T,R,D]),{batchSize:l,dataFormat:s,inHeight:c,inWidth:p,inChannels:h,outHeight:T,outWidth:R,outChannels:D,padInfo:A,strideHeight:b,strideWidth:x,filterHeight:m,filterWidth:g,effectiveFilterHeight:E,effectiveFilterWidth:I,dilationHeight:S,dilationWidth:C,inShape:t,outShape:f,filterShape:e}}function ss(t,e,n,r,i,o,a){void 0===o&&(o=!1),void 0===a&&(a="channelsLast");var s=[-1,-1,-1,-1,-1],u=s[0],l=s[1],c=s[2],p=s[3],h=s[4];if("channelsLast"===a)u=t[0],l=t[1],c=t[2],p=t[3],h=t[4];else{if("channelsFirst"!==a)throw new Error("Unknown dataFormat "+a);u=t[0],h=t[1],l=t[2],c=t[3],p=t[4]}var f,d=e[0],m=e[1],g=e[2],y=e[4],v=ls(n),b=v[0],w=v[1],x=v[2],N=ls(r),S=N[0],C=N[1],E=N[2],I=function(t,e,n,r,i,o,a,s,u,l){var c,p,h,f;if("same"===t){var d=((p=Math.ceil(e/i))-1)*i+s-e,m=((h=Math.ceil(n/o))-1)*o+u-n,g=((f=Math.ceil(r/a))-1)*a+l-r,y=Math.floor(d/2),v=d-y,b=Math.floor(m/2),w=m-b,x=Math.floor(g/2);c={top:b,bottom:w,left:x,right:g-x,front:y,back:v,type:"SAME"}}else{if("valid"!==t)throw Error("Unknown padding parameter: "+t);c={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},p=Math.ceil((e-s+1)/i),h=Math.ceil((n-u+1)/o),f=Math.ceil((r-l+1)/a)}return{padInfo:c,outDepth:p,outHeight:h,outWidth:f}}(i,l,c,p,b,w,x,cs(d,S),cs(m,C),cs(g,E)),k=I.padInfo,A=I.outDepth,T=I.outHeight,R=I.outWidth,D=o?y*h:y;return"channelsFirst"===a?f=[u,D,A,T,R]:"channelsLast"===a&&(f=[u,A,T,R,D]),{batchSize:u,dataFormat:a,inDepth:l,inHeight:c,inWidth:p,inChannels:h,outDepth:A,outHeight:T,outWidth:R,outChannels:D,padInfo:k,strideDepth:b,strideHeight:w,strideWidth:x,filterDepth:d,filterHeight:m,filterWidth:g,dilationDepth:S,dilationHeight:C,dilationWidth:E,inShape:t,outShape:f,filterShape:e}}function us(t){return"number"==typeof t?[t,t]:t}function ls(t){return"number"==typeof t?[t,t,t]:t}function cs(t,e){return e<=1?t:t+(t-1)*(e-1)}function ps(t,e){if(!e)return t;switch(e){case"round":return Math.round(t);case"ceil":return Math.ceil(t);case"floor":return Math.floor(t);default:throw new Error("Unknown roundingMode "+e)}}function hs(t){var e=us(t),n=e[0],r=e[1];return 1===n&&1===r}function fs(t,e){return hs(t)||hs(e)}function ds(t,e,n,r,i,o){d(t.length===e.rank,function(){return"Length of inShape ("+t.length+") and rank of dy ("+e.rank+") must match"});var a=t,s=e,u=!1;3===e.rank&&(u=!0,s=e.as4D(1,e.shape[0],e.shape[1],e.shape[2]),a=[1,t[0],t[1],t[2]]);var l=a[3],c=s.shape[3];d(4===a.length,function(){return"Error in conv2dDerInput: inShape must be length 4, but got length "+a.length+"."}),d(4===s.rank,function(){return"Error in conv2dDerInput: dy must be rank 4, but got rank "+s.rank}),d(4===n.rank,function(){return"Error in conv2dDerInput: filter must be rank 4, but got rank "+n.rank}),d(l===n.shape[2],function(){return"Error in conv2dDerInput: depth of input ("+l+") must match input depth for filter "+n.shape[2]+"."}),d(c===n.shape[3],function(){return"Error in conv2dDerInput: depth of output ("+c+") must match output depth for filter "+n.shape[3]+"."}),null!=o&&d(w(i),function(){return"Error in conv2dDerInput: pad must be an integer when using, dimRoundingMode "+o+" but got pad "+i+"."});var p=as(a,n.shape,r,1,i,o),h=Bt.engine.runKernel(function(t){return t.conv2dDerInput(s,n,p)},{dy4D:s,filter:n},function(t){return{dy4D:function(){return vs(t,n,r,i,"NHWC",1,o)},filter:function(){return ws(t,s,n.shape,r,i,o)}}});return u?h.as3D(h.shape[1],h.shape[2],h.shape[3]):h}function ms(t,e,n,r,i,o){var a=t;3===t.rank&&(a=t.as4D(1,t.shape[0],t.shape[1],t.shape[2]));var s=e;3===s.rank&&(s=e.as4D(1,e.shape[0],e.shape[1],e.shape[2])),d(4===a.rank,function(){return"Error in conv2dDerFilter: input must be rank 4, but got shape "+a.shape+"."}),d(4===s.rank,function(){return"Error in conv2dDerFilter: dy must be rank 4, but got shape "+s.shape+"."}),d(4===n.length,function(){return"Error in conv2dDerFilter: filterShape must be length 4, but got "+n+"."}),d(a.shape[3]===n[2],function(){return"Error in conv2dDerFilter: depth of input "+a.shape[3]+") must match input depth in filter ("+n[2]+"."}),d(s.shape[3]===n[3],function(){return"Error in conv2dDerFilter: depth of dy ("+s.shape[3]+") must match output depth for filter ("+n[3]+")."}),null!=o&&d(w(i),function(){return"Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode "+o+" but got pad "+i+"."});var u=as(a.shape,n,r,1,i,o);return Bt.engine.runKernel(function(t){return t.conv2dDerFilter(a,s,u)},{x4D:a,dy4D:s})}function gs(t){var e=function(t){return"number"==typeof t?[t,t,t]:2===t.length?[t[0],t[1],1]:t}(t),n=e[0],r=e[1],i=e[2];return 1===n&&1===r&&1===i}var ys=Se({conv1d_:function(t,e,n,r,i,o,a){void 0===i&&(i="NWC"),void 0===o&&(o=1);var s=xe(t,"x","conv1d"),u=xe(e,"filter","conv1d"),l=s,c=!1;2===s.rank&&(c=!0,l=s.as3D(1,s.shape[0],s.shape[1])),d(3===l.rank,function(){return"Error in conv1d: input must be rank 3, but got rank "+l.rank+"."}),d(3===u.rank,function(){return"Error in conv1d: filter must be rank 3, but got rank "+u.rank+"."}),null!=a&&d(w(r),function(){return"Error in conv1d: pad must be an integer when using, dimRoundingMode "+a+" but got pad "+r+"."}),d(l.shape[2]===u.shape[1],function(){return"Error in conv1d: depth of input ("+l.shape[2]+") must match input depth for filter "+u.shape[1]+"."}),d(fs(n,o),function(){return"Error in conv1D: Either stride or dilation must be 1. Got stride "+n+" and dilation '"+o+"'"}),d("NWC"===i,function(){return"Error in conv1d: got dataFormat of "+i+" but only NWC is currently supported."});var p=u.as4D(1,u.shape[0],u.shape[1],u.shape[2]),h=l.as4D(l.shape[0],1,l.shape[1],l.shape[2]),f=vs(h,p,[1,n],r,"NHWC",[1,o],a);return c?f.as2D(f.shape[2],f.shape[3]):f.as3D(f.shape[0],f.shape[2],f.shape[3])}}),vs=Se({conv2d_:function(t,e,n,r,i,o,a){void 0===i&&(i="NHWC"),void 0===o&&(o=[1,1]);var s=xe(t,"x","conv2d"),u=xe(e,"filter","conv2d"),l=s,c=!1;3===s.rank&&(c=!0,l=s.as4D(1,s.shape[0],s.shape[1],s.shape[2])),d(4===l.rank,function(){return"Error in conv2d: input must be rank 4, but got rank "+l.rank+"."}),d(4===u.rank,function(){return"Error in conv2d: filter must be rank 4, but got rank "+u.rank+"."}),null!=a&&d(w(r),function(){return"Error in conv2d: pad must be an integer when using, dimRoundingMode "+a+" but got pad "+r+"."}),d(l.shape[3]===u.shape[2],function(){return"Error in conv2d: depth of input ("+l.shape[3]+") must match input depth for filter "+u.shape[2]+"."}),d(fs(n,o),function(){return"Error in conv2D: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+o+"'"}),d("NHWC"===i,function(){return"Error in conv2d: got dataFormat of "+i+" but only NHWC is currently supported."});var p=as(l.shape,u.shape,n,o,r,a),h=Bt.engine.runKernel(function(t){return t.conv2d(l,u,p)},{x:l,$filter:u},function(t){return d(hs(o),function(){return"Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '"+o+"'"}),{x:function(){return ds(l.shape,t,u,n,r)},$filter:function(){return ms(l,t,u.shape,n,r)}}});return c?h.as3D(h.shape[1],h.shape[2],h.shape[3]):h}}),bs=Se({conv3d_:function(t,e,n,r,i,o){void 0===i&&(i="NHWC"),void 0===o&&(o=[1,1,1]);var a=xe(t,"x","conv3d"),s=xe(e,"filter","conv3d"),u=a,l=!1;4===a.rank&&(l=!0,u=a.as5D(1,a.shape[0],a.shape[1],a.shape[2],a.shape[3])),d(5===u.rank,function(){return"Error in conv3d: input must be rank 5, but got rank "+u.rank+"."}),d(5===s.rank,function(){return"Error in conv3d: filter must be rank 5, but got rank "+s.rank+"."}),d(u.shape[4]===s.shape[3],function(){return"Error in conv3d: depth of input ("+u.shape[4]+") must match input depth for filter "+s.shape[3]+"."}),d(function(t,e){return gs(t)||gs(e)}(n,o),function(){return"Error in conv3D: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+o+"'"}),d("NHWC"===i,function(){return"Error in conv3d: got dataFormat of "+i+" but only NHWC is currently supported."});var c=ss(u.shape,s.shape,n,o,r),p=Bt.engine.runKernel(function(t){return t.conv3d(u,s,c)},{x:u,$filter:s},function(t){return d(gs(o),function(){return"Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '"+o+"'"}),{x:function(){return function(t,e,n,r,i){d(t.length===e.rank,function(){return"Length of inShape ("+t.length+") and rank of dy ("+e.rank+") must match"});var o=t,a=e,s=!1;4===e.rank&&(s=!0,a=e.as5D(1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]),o=[1,t[0],t[1],t[2],t[3]]);var u=o[4],l=a.shape[4];d(5===o.length,function(){return"Error in conv3dDerInput: inShape must be length 5, but got length "+o.length+"."}),d(5===a.rank,function(){return"Error in conv3dDerInput: dy must be rank 5, but got rank "+a.rank}),d(5===n.rank,function(){return"Error in conv3dDerInput: filter must be rank 5, but got rank "+n.rank}),d(u===n.shape[3],function(){return"Error in conv3dDerInput: depth of input ("+u+") must match input depth for filter "+n.shape[3]+"."}),d(l===n.shape[4],function(){return"Error in conv3dDerInput: depth of output ("+l+") must match output depth for filter "+n.shape[4]+"."});var c=ss(o,n.shape,r,1,i),p=Bt.engine.runKernel(function(t){return t.conv3dDerInput(a,n,c)},{dy5D:a});return s?p.as4D(p.shape[1],p.shape[2],p.shape[3],p.shape[4]):p}(u.shape,t,s,n,r)},$filter:function(){return function(t,e,n,r,i){var o=t;4===t.rank&&(o=t.as5D(1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]));var a=e;4===a.rank&&(a=e.as5D(1,e.shape[0],e.shape[1],e.shape[2],e.shape[3])),d(5===o.rank,function(){return"Error in conv3dDerFilter: input must be rank 5, but got shape "+o.shape+"."}),d(5===a.rank,function(){return"Error in conv3dDerFilter: dy must be rank 5, but got shape "+a.shape+"."}),d(5===n.length,function(){return"Error in conv3dDerFilter: filterShape must be length 5, but got "+n+"."}),d(o.shape[4]===n[3],function(){return"Error in conv3dDerFilter: depth of input "+o.shape[4]+") must match input depth in filter ("+n[3]+"."}),d(a.shape[4]===n[4],function(){return"Error in conv3dDerFilter: depth of dy ("+a.shape[4]+") must match output depth for filter ("+n[4]+")."});var s=ss(o.shape,n,r,1,i);return Bt.engine.runKernel(function(t){return t.conv3dDerFilter(o,a,s)},{x5D:o,dy5D:a})}(u,t,s.shape,n,r)}}});return l?p.as4D(p.shape[1],p.shape[2],p.shape[3],p.shape[4]):p}}),ws=Se({conv2dDerFilter_:ms}),xs=Se({depthwiseConv2d_:function(t,e,n,r,i,o,a){void 0===i&&(i="NHWC"),void 0===o&&(o=[1,1]);var s=xe(t,"x","depthwiseConv2d"),u=xe(e,"filter","depthwiseConv2d"),l=s,c=!1;3===s.rank&&(c=!0,l=s.as4D(1,s.shape[0],s.shape[1],s.shape[2])),d(4===l.rank,function(){return"Error in depthwiseConv2d: input must be rank 4, but got rank "+l.rank+"."}),d(4===u.rank,function(){return"Error in depthwiseConv2d: filter must be rank 4, but got rank "+u.rank+"."}),d(l.shape[3]===u.shape[2],function(){return"Error in depthwiseConv2d: number of input channels ("+l.shape[3]+") must match the inChannels dimension in filter "+u.shape[2]+"."}),null==o&&(o=[1,1]),d(fs(n,o),function(){return"Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+o+"'"}),null!=a&&d(w(r),function(){return"Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode "+a+" but got pad "+r+"."});var p=as(l.shape,u.shape,n,o,r,a,!0),h=Bt.engine.runKernel(function(t){return t.depthwiseConv2D(l,u,p)},{x:l,$filter:u},function(t){return d(hs(o),function(){return"Error in gradient of depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '"+o+"'"}),{x:function(){return function(t,e,n,r){var i=e,o=!1;3===e.rank&&(o=!0,i=e.as4D(1,e.shape[0],e.shape[1],e.shape[2]));var a=Bt.engine.runKernel(function(t){return t.depthwiseConv2DDerInput(i,n,r)},{dy4D:i});return o?a.as3D(a.shape[1],a.shape[2],a.shape[3]):a}(l.shape,t,u,p)},$filter:function(){return function(t,e,n,r){var i=t;3===t.rank&&(i=t.as4D(1,t.shape[0],t.shape[1],t.shape[2]));var o=e;return 3===o.rank&&(o=e.as4D(1,e.shape[0],e.shape[1],e.shape[2])),Bt.engine.runKernel(function(t){return t.depthwiseConv2DDerFilter(i,o,r)},{x4D:i,dy4D:o})}(l,t,u.shape,p)}}});return c?h.as3D(h.shape[1],h.shape[2],h.shape[3]):h}}),Ns=Se({separableConv2d_:function(t,e,n,r,i,o,a){void 0===o&&(o=[1,1]),void 0===a&&(a="NHWC");var s=xe(t,"x","separableConv2d"),u=xe(e,"depthwiseFilter","separableConv2d"),l=xe(n,"pointwiseFilter","separableConv2d"),c=s,p=!1;if(3===s.rank&&(p=!0,c=s.as4D(1,s.shape[0],s.shape[1],s.shape[2])),"NCHW"===a)throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");d(4===c.rank,function(){return"Error in separableConv2d: input must be rank 4, but got rank "+c.rank+"."}),d(4===u.rank,function(){return"Error in separableConv2d: depthwise filter must be rank 4, but got rank "+u.rank+"."}),d(4===l.rank,function(){return"Error in separableConv2d: pointwise filter must be rank 4, but got rank "+u.rank+"."}),d(1===l.shape[0],function(){return"Error in separableConv2d: the first dimension of pointwise filter  must be 1, but got "+l.shape[0]+"."}),d(1===l.shape[1],function(){return"Error in separableConv2d: the second dimension of pointwise filter must be 1, but got "+l.shape[1]+"."});var h=u.shape[2],f=u.shape[3];d(l.shape[2]===h*f,function(){return"Error in separableConv2d: the third dimension of pointwise filter must be "+h*f+", but got "+l.shape[2]+"."});var m=xs(c,u,r,i,a,o),g=vs(m,l,1,"valid",a);return p?g.as3D(g.shape[1],g.shape[2],g.shape[3]):g}}),Ss=Se({conv2dTranspose_:function(t,e,n,r,i,o){return ds(n,xe(t,"x","conv2dTranspose"),xe(e,"filter","conv2dTranspose"),r,i,o)}});var Cs=Se({matMul_:function(t,e,n,r){var i;void 0===n&&(n=!1),void 0===r&&(r=!1);var o=xe(t,"a","matMul"),a=xe(e,"b","matMul");i=bt(o,a),o=i[0],a=i[1];var s=n?o.shape[o.rank-2]:o.shape[o.rank-1],u=r?a.shape[a.rank-1]:a.shape[a.rank-2],l=n?o.shape[o.rank-1]:o.shape[o.rank-2],c=r?a.shape[a.rank-2]:a.shape[a.rank-1],p=o.shape.slice(0,-2),h=a.shape.slice(0,-2),f=v(p),m=v(h);d(o.rank>=2&&a.rank>=2&&o.rank===a.rank,function(){return"Error in matMul: inputs must have the same rank of at least 2, got ranks "+o.rank+" and "+a.rank+"."}),d(b(p,h),function(){return"Error in matMul: outer dimensions ("+p+") and ("+h+") of Tensors with shapes "+o.shape+" and "+a.shape+" must match."}),d(s===u,function(){return"Error in matMul: inner shapes ("+s+") and ("+u+") of Tensors with shapes "+o.shape+" and "+a.shape+" and transposeA="+n+" and transposeB="+r+" must match."});var g=o.shape.slice(0,-2).concat([l,c]),y=n?o.as3D(f,s,l):o.as3D(f,l,s),w=r?a.as3D(m,c,u):a.as3D(m,u,c);return Bt.engine.runKernel(function(t){return t.batchMatMul(y,w,n,r)},{$a:y,$b:w},function(t){return n||r?!n&&r?{$a:function(){return t.matMul(w,!1,!1)},$b:function(){return t.matMul(y,!0,!1)}}:n&&!r?{$a:function(){return w.matMul(t,!1,!0)},$b:function(){return y.matMul(t,!1,!1)}}:{$a:function(){return w.matMul(t,!0,!0)},$b:function(){return t.matMul(y,!0,!0)}}:{$a:function(){return t.matMul(w,!1,!0)},$b:function(){return y.matMul(t,!0,!1)}}}).reshape(g)}}),Es=Se({dot_:function(t,e){var n=xe(t,"t1","dot"),r=xe(e,"t2","dot");d(!(1!==n.rank&&2!==n.rank||1!==r.rank&&2!==r.rank),function(){return"Error in dot: inputs must all be rank 1 or 2, but got ranks "+n.rank+" and "+r.rank+"."});var i=1===n.rank?n.size:n.shape[1],o=1===r.rank?r.size:r.shape[0];return d(i===o,function(){return"Error in dot: inner dimensions of inputs must match, but got "+i+" and "+o+"."}),1===n.rank&&1===r.rank?n.as2D(1,-1).matMul(r.as2D(-1,1)).asScalar():1===n.rank&&2===r.rank?n.as2D(1,-1).matMul(r.as2D(r.shape[0],r.shape[1])).as1D():2===n.rank&&1===r.rank?n.matMul(r.as2D(-1,1)).as1D():n.matMul(r.as2D(r.shape[0],r.shape[1]))}}),Is=Se({outerProduct_:function(t,e){var n=xe(t,"v1","outerProduct"),r=xe(e,"v2","outerProduct");return d(1===n.rank&&1===r.rank,function(){return"Error in outerProduct: inputs must be rank 1, but got ranks "+n.rank+" and "+r.rank+"."}),n.as2D(-1,1).matMul(r.as2D(1,-1))}});var ks=Se({reverse_:function(t,e){var n=xe(t,"x","reverse");if(0===n.rank)return n.clone();var r=I(e,n.shape);return Bt.engine.runKernel(function(t){return t.reverse(n,r)},{$x:n},function(t){return{$x:function(){return t.reverse(r)}}}).reshapeAs(n)}}),As=Se({reverse1d_:function(t){var e=xe(t,"x","reverse");return d(1===e.rank,function(){return"Error in reverse1D: x must be rank 1 but got rank "+e.rank+"."}),ks(e,0)}}),Ts=Se({reverse2d_:function(t,e){var n=xe(t,"x","reverse");return d(2===n.rank,function(){return"Error in reverse2D: x must be rank 2 but got rank "+n.rank+"."}),ks(n,e)}}),Rs=Se({reverse3d_:function(t,e){var n=xe(t,"x","reverse");return d(3===n.rank,function(){return"Error in reverse3D: x must be rank 3 but got rank "+n.rank+"."}),ks(n,e)}}),Ds=Se({reverse4d_:function(t,e){var n=xe(t,"x","reverse");return d(4===n.rank,function(){return"Error in reverse4D: x must be rank 4 but got rank "+n.rank+"."}),ks(n,e)}});function Os(t,e,n,r,i,o){var a=xe(t,"x","maxPool"),s=a,u=!1;3===a.rank&&(u=!0,s=a.as4D(1,a.shape[0],a.shape[1],a.shape[2])),null==r&&(r=[1,1]),d(4===s.rank,function(){return"Error in maxPool: input must be rank 4 but got rank "+s.rank+"."}),d(fs(n,r),function(){return"Error in maxPool: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+r+"'"}),null!=o&&d(w(i),function(){return"Error in maxPool: pad must be an integer when using, dimRoundingMode "+o+" but got pad "+i+"."});var l=os(s.shape,e,n,r,i,o),c=Bt.engine.runKernel(function(t,e){return e(t.maxPool(s,l))},{x:s},function(t,o){var a=o[0];return{x:function(){return function(t,e,n,r,i,o,a,s){var u=xe(t,"dy","maxPoolBackprop"),l=xe(e,"input","maxPoolBackprop"),c=xe(n,"output","maxPoolBackprop");d(l.rank===u.rank,function(){return"Rank of input ("+l.rank+") does not match rank of dy ("+u.rank+")"}),null==o&&(o=[1,1]),d(fs(i,o),function(){return"Error in maxPoolBackProp: Either strides or dilations must be 1. Got strides "+i+" and dilations '"+o+"'"}),d(4===u.rank,function(){return"Error in maxPoolBackprop: dy must be rank 4 but got rank "+u.rank+"."}),d(4===l.rank,function(){return"Error in maxPoolBackprop: input must be rank 4 but got rank "+l.rank+"."}),null!=s&&d(w(a),function(){return"Error in maxPoolBackprop: pad must be an integer when using, dimRoundingMode "+s+" but got pad "+a+"."});var p=os(l.shape,r,i,o,a,s);return Bt.engine.runKernel(function(t){return t.maxPoolBackprop(u,l,c,p)},{$dy:u,$input:l})}(t,s,a,e,n,r,i)}}});return u?c.as3D(c.shape[1],c.shape[2],c.shape[3]):c}function _s(t,e,n,r,i,o){var a=xe(t,"x","avgPool","float32");null==r&&(r=[1,1]),d(fs(n,r),function(){return"Error in avgPool: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+r+"'"});var s=a,u=!1;3===a.rank&&(u=!0,s=a.as4D(1,a.shape[0],a.shape[1],a.shape[2])),d(4===s.rank,function(){return"Error in avgPool: x must be rank 4 but got rank "+s.rank+"."}),null!=o&&d(w(i),function(){return"Error in avgPool: pad must be an integer when using, dimRoundingMode "+o+" but got pad "+i+"."});var l=os(s.shape,e,n,r,i,o),c=Bt.engine.runKernel(function(t){return t.avgPool(s,l)},{x:s},function(t){return{x:function(){return function(t,e,n,r,i,o){var a=xe(t,"dy","avgPoolBackprop"),s=xe(e,"input","avgPoolBackprop");d(s.rank===a.rank,function(){return"Rank of input ("+s.rank+") does not match rank of dy ("+a.rank+")"}),null==i&&(i=[1,1]),d(fs(r,i),function(){return"Error in avgPoolBackprop: Either strides or dilations must be 1. Got strides "+r+" and dilations '"+i+"'"});var u=s,l=a,c=!1;3===s.rank&&(c=!0,u=s.as4D(1,s.shape[0],s.shape[1],s.shape[2]),l=a.as4D(1,a.shape[0],a.shape[1],a.shape[2])),d(4===l.rank,function(){return"Error in avgPoolBackprop: dy must be rank 4 but got rank "+l.rank+"."}),d(4===u.rank,function(){return"Error in avgPoolBackprop: input must be rank 4 but got rank "+u.rank+"."});var p=os(u.shape,n,r,i,o),h=Bt.engine.runKernel(function(t){return t.avgPoolBackprop(l,u,p)},{dy4D:l,input4D:u});return c?h.as3D(h.shape[1],h.shape[2],h.shape[3]):h}(t,s,e,n,r,i)}}});return c=c.cast(a.dtype),u?c.as3D(c.shape[1],c.shape[2],c.shape[3]):c}var Ms=Se({maxPool_:function(t,e,n,r,i){return Os(t,e,n,1,r,i)}}),Ls=Se({avgPool_:function(t,e,n,r,i){return _s(t,e,n,1,r,i)}}),Fs=Se({pool_:function(t,e,n,r,i,o){null==i&&(i=[1,1]),null==o&&(o=1),0===r&&(r="valid");var a=xe(t,"x","maxPool"),s=a,u=!1;3===a.rank&&(u=!0,s=a.as4D(1,a.shape[0],a.shape[1],a.shape[2])),d(fs(o,i),function(){return"Error in pool: Either strides or dilations must be 1. Got strides "+o+" and dilations '"+i+"'"});var l,c=os(s.shape,e,o,i,r),p=[c.dilationHeight,c.dilationWidth];l="same"===r?function(t,e){var n=t.map(function(t,n){return t+(t-1)*(e[n]-1)}).map(function(t){return t-1}),r=n.map(function(t){return Math.floor(t/2)}),i=n.map(function(t,e){return t-r[e]});return n.map(function(t,e){return[r[e],i[e]]})}([c.filterHeight,c.filterWidth],p):[[0,0],[0,0]];var h=1===p[0]&&1===p[1],f=function(t,e,n){var r=n.map(function(t){return t[0]}),i=n.map(function(t){return t[1]}),o=t.concat(r,i),a=e.map(function(t,e){return(t-o[e]%t)%t}),s=i.map(function(t,e){return t+a[e]});return[e.map(function(t,e){return[r[e],s[e]]}),e.map(function(t,e){return[0,a[e]]})]}([c.inHeight,c.inWidth],p,l),m=f[0],g=f[1],y=h?r:"valid",v=h?s:ra(s,p,m),b=("avg"===n?function(){return _s(v,e,o,1,y)}:function(){return Os(v,e,o,1,y)})(),w=h?b:Bo(b,p,g);return u?w.as3D(w.shape[1],w.shape[2],w.shape[3]):w}});var zs=Se({slice_:function(t,e,n){var r,i,o=xe(t,"x","slice");if(0===o.rank)throw new Error("Slicing scalar is not possible");r="number"==typeof e?[e].concat(new Array(o.rank-1).fill(0)):e.length<o.rank?e.concat(new Array(o.rank-e.length).fill(0)):e.slice(),i=(i=null==n?new Array(o.rank).fill(-1):"number"==typeof n?[n].concat(new Array(o.rank-1).fill(-1)):n.length<o.rank?n.concat(new Array(o.rank-n.length).fill(-1)):n).map(function(t,e){return t>=0?t:(d(-1===t,function(){return"Bad value in size"}),o.shape[e]-r[e])}),function(t,e,n){d(t.rank===e.length,function(){return"Error in slice"+t.rank+"D: Length of begin "+e+" must match the rank of the array ("+t.rank+")."}),d(t.rank===n.length,function(){return"Error in slice"+t.rank+"D: Length of size "+n+" must match the rank of the array ("+t.rank+")."});for(var r=function(r){d(e[r]+n[r]<=t.shape[r],function(){return"Error in slice"+t.rank+"D: begin["+r+"] + size["+r+"] ("+(e[r]+n[r])+") would overflow input.shape["+r+"] ("+t.shape[r]+")"})},i=0;i<t.rank;++i)r(i)}(o,r,i);var a=o.shape;return Bt.engine.runKernel(function(t){return t.slice(o,r,i)},{$x:o},function(t){for(var e=[],n=0;n<t.rank;n++)e.push([r[n],a[n]-r[n]-i[n]]);return{$x:function(){return t.pad(e)}}})}}),Ps=Se({slice1d_:function(t,e,n){var r=xe(t,"x","slice1d");return d(1===r.rank,function(){return"slice1d expects a rank-1 tensor, but got a rank-"+r.rank+" tensor"}),zs(r,[e],[n])}}),Bs=Se({slice2d_:function(t,e,n){var r=xe(t,"x","slice2d");return d(2===r.rank,function(){return"slice2d expects a rank-2 tensor, but got a rank-"+r.rank+" tensor"}),zs(r,e,n)}}),Us=Se({slice3d_:function(t,e,n){var r=xe(t,"x","slice3d");return d(3===r.rank,function(){return"slice3d expects a rank-3 tensor, but got a rank-"+r.rank+" tensor"}),zs(r,e,n)}}),Ws=Se({slice4d_:function(t,e,n){var r=xe(t,"x","slice4d");return d(4===r.rank,function(){return"slice4d expects a rank-4 tensor, but got a rank-"+r.rank+" tensor"}),zs(r,e,n)}});function Vs(t,e,n,r,i){var o=e[0];return o.rank<n.rank&&(o=o.reshape(re(o.shape,r))),t.rank<n.rank&&(t=t.reshape(re(t.shape,r))),{$x:function(){var e=t.mul(n.equal(o).cast(t.dtype));return null==i?e:e.transpose(i)}}}var js=Se({all_:function(t,e,n){void 0===e&&(e=null),void 0===n&&(n=!1);var r=xe(t,"x","all","bool"),i=I(e,r.shape),o=i,a=oe(o,r.rank);null!=a&&(r=r.transpose(a),o=se(o.length,r.rank));var s=Bt.engine.runKernel(function(t){return t.all(r,o)},{$x:r});if(n){var u=re(s.shape,i);return s.reshape(u)}return s}}),qs=Se({any_:function(t,e,n){void 0===e&&(e=null),void 0===n&&(n=!1);var r=xe(t,"x","any","bool"),i=I(e,r.shape),o=i,a=oe(o,r.rank);null!=a&&(r=r.transpose(a),o=se(o.length,r.rank));var s=Bt.engine.runKernel(function(t){return t.any(r,o)},{$x:r});if(n){var u=re(s.shape,i);return s.reshape(u)}return s}}),Gs=Se({argMax_:function(t,e){void 0===e&&(e=0);var n=xe(t,"x","argMax");null==e&&(e=0);var r=I(e,n.shape),i=oe(r,n.rank);return null!=i&&(n=n.transpose(i),r=se(r.length,n.rank)),Bt.engine.runKernel(function(t){return t.argMax(n,r[0])},{$x:n},function(t){return{$x:function(){return je(n)}}})}}),Hs=Se({argMin_:function(t,e){void 0===e&&(e=0);var n=xe(t,"x","argMin");null==e&&(e=0);var r=I(e,n.shape),i=oe(r,n.rank);return null!=i&&(n=n.transpose(i),r=se(r.length,n.rank)),Bt.engine.runKernel(function(t){return t.argMin(n,r[0])},{$x:n},function(t){return{$x:function(){return je(n)}}})}}),Ks=Se({logSumExp_:function(t,e,n){void 0===e&&(e=null),void 0===n&&(n=!1);var r=xe(t,"x","logSumExp"),i=I(e,r.shape),o=r.max(i,!0),a=r.sub(o).exp().sum(i).log(),s=o.reshape(a.shape).add(a);if(n){var u=re(s.shape,i);return s.reshape(u)}return s}}),$s=Se({max_:function(t,e,n){void 0===e&&(e=null),void 0===n&&(n=!1);var r=xe(t,"x","max"),i=r,o=I(e,r.shape),a=o,s=oe(a,r.rank);null!=s&&(r=r.transpose(s),a=se(a.length,r.rank));var u=Bt.engine.runKernel(function(t,e){return e(t.max(r,a))},{$x:r},function(t,e){return Vs(t,e,i,o,s)});if(n){var l=re(u.shape,o);u=u.reshape(l)}return u}}),Xs=Se({mean_:function(t,e,n){void 0===e&&(e=null),void 0===n&&(n=!1);var r=xe(t,"x","mean"),i=I(e,r.shape),o=v(ne(r.shape,i)[1]);return Vt(function(t){var r=Re(o);return{value:(r.dtype===t.dtype?t:t.cast(r.dtype)).div(r).sum(e,n),gradFunc:function(e){var n=t.shape.slice();return i.forEach(function(t){n[t]=1}),e.reshape(n).mul(ze(t.shape,"float32")).div(r)}}})(r)}}),Ys=Se({min_:function(t,e,n){void 0===e&&(e=null),void 0===n&&(n=!1);var r=xe(t,"x","min"),i=r,o=I(e,r.shape),a=o,s=oe(a,r.rank);null!=s&&(r=r.transpose(s),a=se(a.length,r.rank));var u=Bt.engine.runKernel(function(t,e){return e(t.min(r,a))},{$x:r},function(t,e){return Vs(t,e,i,o,s)});if(n){var l=re(u.shape,o);u=u.reshape(l)}return u}}),Js=Se({moments_:function(t,e,n){void 0===e&&(e=null),void 0===n&&(n=!1);var r=I(e,(t=xe(t,"x","moments")).shape),i=t.mean(r,n),o=i.shape;return n||(o=re(i.shape,r)),{mean:i,variance:t.toFloat().sub(i.reshape(o)).square().mean(r,n)}}}),Zs=Se({sum_:function(t,e,n){void 0===e&&(e=null),void 0===n&&(n=!1);var r=xe(t,"x","sum");"bool"===r.dtype&&(r=r.toInt());var i=I(e,r.shape);return Vt(function(t){var e=oe(i,t.rank),r=i,o=t;null!=e&&(o=t.transpose(e),r=se(r.length,t.rank));var a=Bt.engine.runKernel(function(t){return t.sum(o,r)},{permutedX:o});if(n){var s=re(a.shape,i);a=a.reshape(s)}return{value:a,gradFunc:function(e){var n=t.shape.slice();return i.forEach(function(t){n[t]=1}),e.reshape(n).mul(ze(t.shape,"float32"))}}})(r)}}),Qs=Se({prod_:function(t,e,n){void 0===e&&(e=null),void 0===n&&(n=!1);var r=xe(t,"x","prod");"bool"===r.dtype&&(r=r.toInt());var i=I(e,r.shape),o=oe(i,r.rank),a=i,s=r;null!=o&&(s=r.transpose(o),a=se(a.length,r.rank));var u=Bt.engine.runKernel(function(t){return t.prod(s,a)},{permutedX:s});if(n){var l=re(u.shape,i);u=u.reshape(l)}return u}});var tu=Se({equal_:function(t,e){var n,r=xe(t,"a","equal"),i=xe(e,"b","equal");return n=bt(r,i),r=n[0],i=n[1],un(r.shape,i.shape),Bt.engine.runKernel(function(t){return t.equal(r,i)},{$a:r,$b:i})}}),eu=Se({equalStrict_:function(t,e){var n=xe(t,"a","equalStrict"),r=xe(e,"b","equalStrict");return m(n.shape,r.shape,"Error in equalStrict: "),n.equal(r)}}),nu=Se({greater_:function(t,e){var n,r=xe(t,"a","greater"),i=xe(e,"b","greater");return n=bt(r,i),r=n[0],i=n[1],un(r.shape,i.shape),Bt.engine.runKernel(function(t){return t.greater(r,i)},{$a:r,$b:i})}}),ru=Se({greaterEqual_:function(t,e){var n,r=xe(t,"a","greaterEqual"),i=xe(e,"b","greaterEqual");return n=bt(r,i),r=n[0],i=n[1],un(r.shape,i.shape),Bt.engine.runKernel(function(t){return t.greaterEqual(r,i)},{$a:r,$b:i},function(t){return{$a:function(){return je(r)},$b:function(){return je(i)}}})}}),iu=Se({greaterEqualStrict_:function(t,e){var n=xe(t,"a","greaterEqualStrict"),r=xe(e,"b","greaterEqualStrict");return m(n.shape,r.shape,"Error in greaterEqualStrict: "),n.greaterEqual(r)}}),ou=Se({greaterStrict_:function(t,e){var n=xe(t,"a","greaterStrict"),r=xe(e,"b","greaterStrict");return m(n.shape,r.shape,"Error in greaterStrict: "),n.greater(r)}}),au=Se({less_:function(t,e){var n,r=xe(t,"a","less"),i=xe(e,"b","less");return n=bt(r,i),r=n[0],i=n[1],un(r.shape,i.shape),Bt.engine.runKernel(function(t){return t.less(r,i)},{$a:r,$b:i})}}),su=Se({lessEqual_:function(t,e){var n,r=xe(t,"a","lessEqual"),i=xe(e,"b","lessEqual");return n=bt(r,i),r=n[0],i=n[1],un(r.shape,i.shape),Bt.engine.runKernel(function(t){return t.lessEqual(r,i)},{$a:r,$b:i})}}),uu=Se({lessEqualStrict_:function(t,e){var n=xe(t,"a","lessEqualStrict"),r=xe(e,"b","lessEqualStrict");return m(n.shape,r.shape,"Error in lessEqualStrict: "),n.lessEqual(r)}}),lu=Se({lessStrict_:function(t,e){var n=xe(t,"a","lessStrict"),r=xe(e,"b","lessStrict");return m(n.shape,r.shape,"Error in lessStrict: "),n.less(r)}}),cu=Se({notEqual_:function(t,e){var n,r=xe(t,"a","notEqual"),i=xe(e,"b","notEqual");return n=bt(r,i),r=n[0],i=n[1],un(r.shape,i.shape),Bt.engine.runKernel(function(t){return t.notEqual(r,i)},{$a:r,$b:i})}}),pu=Se({notEqualStrict_:function(t,e){var n=xe(t,"a","notEqualStrict"),r=xe(e,"b","notEqualStrict");return m(n.shape,r.shape,"Error in notEqualStrict: "),n.notEqual(r)}});var hu=Se({add_:function(t,e){var n,r=xe(t,"a","add"),i=xe(e,"b","add");n=bt(r,i),r=n[0],i=n[1];var o=un(r.shape,i.shape);return Bt.engine.runKernel(function(t){return t.add(r,i)},{$a:r,$b:i},function(t){return{$a:function(){var e=t,n=sn(r.shape,o);return n.length>0&&(e=e.sum(n)),e.reshape(r.shape)},$b:function(){var e=t,n=sn(i.shape,o);return n.length>0&&(e=e.sum(n)),e.reshape(i.shape)}}})}}),fu=Se({addN_:function(t){d(Array.isArray(t),function(){return"The argument passed to tf.addN() must be a list of tensors"}),d(t.length>=1,function(){return"Must pass at least one tensor to tf.addN(), but got "+t.length});var e=t.map(function(t,e){return xe(t,"tensors"+e,"addN")}),n=e[0];e.forEach(function(t){if(t.dtype!==n.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),e.forEach(function(t){if(!b(t.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});var r=e;return Bt.engine.runKernel(function(t){return t.addN(e)},r,function(t){var n={};return e.forEach(function(e,r){n[r]=function(){return t.clone()}}),n})}}),du=Se({addStrict_:function(t,e){var n=xe(t,"a","addStrict"),r=xe(e,"b","addStrict");return m(n.shape,r.shape,"Error in addStrict: "),n.add(r)}}),mu=Se({atan2_:function(t,e){var n,r=xe(t,"a","atan2"),i=xe(e,"b","atan2");n=bt(r,i),r=n[0],i=n[1];var o=un(r.shape,i.shape);return Bt.engine.runKernel(function(t){return t.atan2(r,i)},{$a:r,$b:i},function(t){return{$a:function(){var e=hu(r.square(),i.square()),n=t.mul(i.div(e)),a=sn(r.shape,o);return a.length>0&&(n=n.sum(a)),n.reshape(r.shape)},$b:function(){var e=hu(r.square(),i.square()),n=Da(t.mul(r.div(e))),a=sn(i.shape,o);return a.length>0&&(n=n.sum(a)),n.reshape(i.shape)}}})}}),gu=Se({div_:function(t,e){var n,r,i=xe(t,"a","div"),o=xe(e,"b","div");if(n=bt(i,o),i=n[0],o=n[1],"int32"===i.dtype&&"int32"===o.dtype)return vu(i,o);r=function(t){return t.realDivide(i,o)};var a=un(i.shape,o.shape);return Bt.engine.runKernel(r,{$a:i,$b:o},function(t){return{$a:function(){var e=t.div(o.toFloat()),n=sn(i.shape,a);return n.length>0?e.sum(n).reshape(i.shape):e},$b:function(){var e=t.mul(i.toFloat()),n=sn(o.shape,a);n.length>0&&(e=e.sum(n).reshape(o.shape));var r=o.square();return e.div(r.toFloat()).neg()}}})}}),yu=Se({divStrict_:function(t,e){var n=xe(t,"a","div"),r=xe(e,"b","div");return m(n.shape,r.shape,"Error in divideStrict: "),n.div(r)}}),vu=Se({floorDiv_:function(t,e){var n,r=xe(t,"a","floorDiv"),i=xe(e,"b","floorDiv");n=bt(r,i),r=n[0],i=n[1];var o=un(r.shape,i.shape);return Bt.engine.runKernel(function(t){return t.floorDiv(r,i)},{$a:r,$b:i},function(t){return{$a:function(){var e=t.div(i.toFloat()),n=sn(r.shape,o);return n.length>0?e.sum(n).reshape(r.shape):e},$b:function(){var e=t.mul(r.toFloat()),n=sn(i.shape,o);n.length>0&&(e=e.sum(n).reshape(i.shape));var a=i.square();return e.div(a.toFloat()).neg()}}})}}),bu=Se({maximum_:function(t,e){var n,r=xe(t,"a","maximum"),i=xe(e,"b","maximum");return n=bt(r,i),r=n[0],i=n[1],"bool"===r.dtype&&(r=r.toInt(),i=i.toInt()),un(r.shape,i.shape),Bt.engine.runKernel(function(t){return t.maximum(r,i)},{$a:r,$b:i},function(t){return{$a:function(){return t.mul(r.greaterEqual(i).toFloat())},$b:function(){return t.mul(r.less(i).toFloat())}}})}}),wu=Se({maximumStrict_:function(t,e){var n=xe(t,"a","maximumStrict"),r=xe(e,"b","maximumStrict");return m(n.shape,r.shape,"Error in maximumStrict: "),n.maximum(r)}}),xu=Se({minimum_:function(t,e){var n,r=xe(t,"a","minimum"),i=xe(e,"b","minimum");return n=bt(r,i),r=n[0],i=n[1],"bool"===r.dtype&&(r=r.toInt(),i=i.toInt()),un(r.shape,i.shape),Bt.engine.runKernel(function(t){return t.minimum(r,i)},{$a:r,$b:i},function(t){return{$a:function(){return t.mul(r.lessEqual(i).toFloat())},$b:function(){return t.mul(r.greater(i).toFloat())}}})}}),Nu=Se({minimumStrict_:function(t,e){var n=xe(t,"a","minimumStrict"),r=xe(e,"b","minimumStrict");return m(n.shape,r.shape,"Error in minimumStrict: "),n.minimum(r)}}),Su=Se({mod_:function(t,e){var n,r=xe(t,"a","mod"),i=xe(e,"b","mod");n=bt(r,i),r=n[0],i=n[1];var o=un(r.shape,i.shape);return Bt.engine.runKernel(function(t){return t.mod(r,i)},{$a:r,$b:i},function(t){return{$a:function(){var e=sn(r.shape,o);return e.length>0?t.sum(e).reshape(r.shape):t},$b:function(){var e=t.mul(r.div(i).floor().neg()),n=sn(i.shape,o);return n.length>0?e.sum(n).reshape(i.shape):e}}})}}),Cu=Se({modStrict_:function(t,e){var n=xe(t,"a","modStrict"),r=xe(e,"b","modStrict");return m(n.shape,r.shape,"Error in modStrict: "),n.mod(r)}}),Eu=Se({mul_:function(t,e){var n,r=xe(t,"a","mul"),i=xe(e,"b","mul");n=bt(r,i),r=n[0],i=n[1];var o=un(r.shape,i.shape);return Bt.engine.runKernel(function(t){return t.multiply(r,i)},{$a:r,$b:i},function(t){return{$a:function(){var e=t.mul(i.toFloat()),n=sn(r.shape,o);return n.length>0?e.sum(n).reshape(r.shape):e},$b:function(){var e=t.mul(r.toFloat()),n=sn(i.shape,o);return n.length>0?e.sum(n).reshape(i.shape):e}}})}}),Iu=Se({mulStrict_:function(t,e){var n=xe(t,"a","mul"),r=xe(e,"b","mul");return m(n.shape,r.shape,"Error in multiplyStrict: "),n.mul(r)}}),ku=Se({pow_:function(t,e){var n=xe(t,"base","pow"),r=xe(e,"exp","pow"),i=un(n.shape,r.shape);return t=n.cast(yt(n.dtype,r.dtype)),e=r.cast(yt(n.dtype,r.dtype)),Bt.engine.runKernel(function(t,e){return e(t.pow(n,r))},{$base:n,$exp:r},function(t,e){var o=e[0];return{$base:function(){var e=r.toFloat(),o=t.mul(e.mul(n.pow(e.sub(Re(1))))),a=sn(n.shape,i);return a.length>0&&(o=o.sum(a)),o.reshape(n.shape)},$exp:function(){var e=n.greater(0),a=n.log().where(e,je(n)),s=t.mul(o.mul(a)),u=sn(r.shape,i);return u.length>0&&(s=s.sum(u)),s.reshape(r.shape)}}})}}),Au=Se({powStrict_:function(t,e){return m(t.shape,e.shape,"Error in powStrict: "),t.pow(e)}}),Tu=Se({squaredDifference_:function(t,e){var n,r=xe(t,"a","squaredDifference"),i=xe(e,"b","squaredDifference");return n=bt(r,i),r=n[0],i=n[1],un(r.shape,i.shape),Bt.engine.runKernel(function(t){return t.squaredDifference(r,i)},{$a:r,$b:i},function(t){var e=Re(2);return{$a:function(){return t.mul(r.sub(i).mul(e))},$b:function(){return t.mul(i.sub(r).mul(e))}}})}}),Ru=Se({squaredDifferenceStrict_:function(t,e){var n=xe(t,"a","squaredDifferenceStrict"),r=xe(e,"b","squaredDifferenceStrict");return m(n.shape,r.shape,"Error in squaredDifferenceStrict: "),n.squaredDifference(r)}}),Du=Se({sub_:function(t,e){var n,r=xe(t,"a","sub"),i=xe(e,"b","sub");n=bt(r,i),r=n[0],i=n[1];var o=un(r.shape,i.shape);return Bt.engine.runKernel(function(t){return t.subtract(r,i)},{$a:r,$b:i},function(t){return{$a:function(){var e=t,n=sn(r.shape,o);return n.length>0&&(e=e.sum(n)),e.reshape(r.shape)},$b:function(){var e=t,n=sn(i.shape,o);return n.length>0&&(e=e.sum(n)),e.neg().reshape(i.shape)}}})}}),Ou=Se({subStrict_:function(t,e){var n=xe(t,"a","subStrict"),r=xe(e,"b","subStrict");return m(n.shape,r.shape,"Error in subStrict: "),n.sub(r)}});var _u=Se({logicalAnd_:function(t,e){var n=xe(t,"a","logicalAnd","bool"),r=xe(e,"b","logicalAnd","bool");return un(n.shape,r.shape),Bt.engine.runKernel(function(t){return t.logicalAnd(n,r)},{$a:n,$b:r})}}),Mu=Se({logicalNot_:function(t){var e=xe(t,"x","logicalNot","bool");return Bt.engine.runKernel(function(t){return t.logicalNot(e)},{$x:e})}}),Lu=Se({logicalOr_:function(t,e){var n=xe(t,"a","logicalOr","bool"),r=xe(e,"b","logicalOr","bool");return un(n.shape,r.shape),Bt.engine.runKernel(function(t){return t.logicalOr(n,r)},{$a:n,$b:r})}}),Fu=Se({logicalXor_:function(t,e){var n=xe(t,"a","logicalXor","bool"),r=xe(e,"b","logicalXor","bool");return un(n.shape,r.shape),Lu(t,e).logicalAnd(_u(t,e).logicalNot())}}),zu=Se({where_:function(t,e,n){var r=xe(e,"a","where"),i=xe(n,"b","where"),o=xe(t,"condition","where","bool");return m(r.shape,i.shape,"Error in where: "),1===o.rank?d(o.shape[0]===r.shape[0],function(){return"The first dimension of `a` must match the size of `condition`."}):m(o.shape,i.shape,"Error in where: "),Bt.engine.runKernel(function(t){return t.select(o,r,i)},{$condition:o,$a:r,$b:i},function(t){return{$condition:function(){return je(o).toFloat()},$a:function(){return t.mul(o.cast(t.dtype))},$b:function(){return t.mul(o.logicalNot().cast(t.dtype))}}})}}),Pu=function(t){return i(this,void 0,void 0,function(){var e,n,r;return o(this,function(i){switch(i.label){case 0:return[4,(e=xe(t,"condition","whereAsync","bool")).data()];case 1:return n=i.sent(),r=ca(e.shape,n),t!==e&&e.dispose(),[2,r]}})})};var Bu=Se({elu_:function(t){var e=xe(t,"x","elu");return Bt.engine.runKernel(function(t,n){return n(t.elu(e))},{$x:e},function(t,e){var n=e[0];return{$x:function(){return Bt.engine.runKernel(function(e){return e.eluDer(t,n)},{dy:t,y:n})}}})}}),Uu=Se({leakyRelu_:function(t,e){void 0===e&&(e=.2);var n=xe(t,"x","leakyRelu");return bu(Re(e).mul(n),n)}}),Wu=Se({prelu_:function(t,e){var n=xe(t,"x","prelu"),r=xe(e,"alpha","prelu");return Bt.engine.runKernel(function(t){return t.prelu(n,r)},{$x:n,$alpha:r},function(t){var e=n.greater(0);return{$x:function(){return zu(e,t,t.mul(r))},$alpha:function(){var i=zu(e,je(t),t.mul(n)),o=sn(r.shape,t.shape);return o.length>0&&(i=i.sum(o)),i.reshape(r.shape)}}})}}),Vu=Se({relu_:function(t){var e=xe(t,"x","relu");return"bool"===e.dtype?e.toInt():Bt.engine.runKernel(function(t){return t.relu(e)},{$x:e},function(t){var n=e.step();return{$x:function(){return t.mulStrict(n.toFloat())}}})}}),ju=Se({selu_:function(t){var e=xe(t,"x","selu");return Bt.engine.runKernel(function(t){return t.selu(e)},{$x:e},function(t){return{$x:function(){var n=e.greater(Re(0)),r=Re(ro),i=Re(io),o=t.mul(i),a=t.mul(r).mul(e.toFloat().exp());return zu(n,o,a)}}})}});var qu=Se({transpose_:function(t,e){var n=xe(t,"x","transpose");return null==e&&(e=n.shape.map(function(t,e){return e}).reverse()),d(n.rank===e.length,function(){return"Error in transpose: rank of input "+n.rank+" must match length of perm "+e+"."}),e.forEach(function(t){d(t>=0&&t<n.rank,function(){return"All entries in 'perm' must be between 0 and "+(n.rank-1)+" but got "+e})}),n.rank<=1?n.clone():Bt.engine.runKernel(function(t){return t.transpose(n,e)},{$x:n},function(t){var n=ae(e);return{$x:function(){return t.transpose(n)}}})}});var Gu=Se({localResponseNormalization_:function(t,e,n,r,i){void 0===e&&(e=5),void 0===n&&(n=1),void 0===r&&(r=1),void 0===i&&(i=.5);var o=xe(t,"x","localResponseNormalization");d(4===o.rank||3===o.rank,function(){return"Error in localResponseNormalization: x must be rank 3 or 4 but got\n               rank "+o.rank+"."}),d(w(e),function(){return"Error in localResponseNormalization: depthRadius must be an integer but got depthRadius "+e+"."});var a=o,s=!1;3===o.rank&&(s=!0,a=o.as4D(1,o.shape[0],o.shape[1],o.shape[2]));var u=Bt.engine.runKernel(function(t,o){return o(t.localResponseNormalization4D(a,e,n,r,i))},{x4D:a},function(t,o){var s=o[0];return{x4D:function(){return Bt.engine.runKernel(function(o){return o.LRNGrad(t,a,s,e,n,r,i)},{})}}});return s?u.as3D(u.shape[1],u.shape[2],u.shape[3]):u}});var Hu=Se({norm_:function(t,e,n,r){void 0===e&&(e="euclidean"),void 0===n&&(n=null),void 0===r&&(r=!1);var i=function t(e,n,r){if(void 0===r&&(r=null),0===e.rank)return e.abs();if(1!==e.rank&&null===r)return t(e.reshape([-1]),n,r);if(1===e.rank||"number"==typeof r||Array.isArray(r)&&1===r.length){if(1===n)return e.abs().sum(r);if(n===1/0)return e.abs().max(r);if(n===-1/0)return e.abs().min(r);if("euclidean"===n||2===n)return e.abs().pow(Re(2,"int32")).sum(r).sqrt();throw new Error("Error in norm: invalid ord value: "+n)}if(Array.isArray(r)&&2===r.length){if(1===n)return e.abs().sum(r[0]).max(r[1]-1);if(n===1/0)return e.abs().sum(r[1]).max(r[0]);if(n===-1/0)return e.abs().sum(r[1]).min(r[0]);if("fro"===n||"euclidean"===n)return e.square().sum(r).sqrt();throw new Error("Error in norm: invalid ord value: "+n)}throw new Error("Error in norm: invalid axis: "+r)}(t=xe(t,"x","norm"),e,n),o=i.shape;if(r){var a=I(n,t.shape);o=re(i.shape,a)}return i.reshape(o)}});function Ku(t,e){for(var n=[],r=t;r<e;++r)n.push(r);return n}function $u(t){for(var e=[],n=0;n<t.length;++n)for(var r=0;r<t[n].length;++r)e.push(t[n][r]);return e}var Xu=Se({gather_:function(t,e,n){void 0===n&&(n=0);var r=xe(t,"x","gather"),i=xe(e,"indices","gather","int32");n=I(n,r.shape)[0];var o=function(t,e,n){for(var r=t.shape[n],i=[],o=1,a=1,s=0;s<n;s++)i.push(t.shape[s]),o*=t.shape[s];for(s=0;s<e.rank;s++)i.push(e.shape[s]);for(s=n+1;s<t.rank;s++)i.push(t.shape[s]),a*=t.shape[s];return{batchSize:o,sliceSize:a,dimSize:r,outputShape:i}}(r,i,n);return Bt.engine.runKernel(function(t){return t.gather(r,i.flatten(),n)},{$x:r},function(t){return{$x:function(){var e=r.shape,o=i.size,a=e.slice(0,n),s=a.length,u=e.slice(n,e.length).slice(1),l=u.length,c=Ku(0,s),p=Ku(s+1,s+1+l),h=$u([a,[o],u]),f=t.reshape(h),d=i.reshape([o]),m=$u([[s],c,p]),g=f.transpose(m),y=Yu(g,d,r.shape[n]),v=ae(m);return y.transpose(v)}}}).reshape(o.outputShape)}}),Yu=Se({unsortedSegmentSum_:function(t,e,n){var r=xe(t,"x","unsortedSegmentSum"),i=xe(e,"segmentIds","unsortedSegmentSum","int32");return d(w(n),function(){return"numSegments must be of dtype int"}),Bt.engine.runKernel(function(t){return t.unsortedSegmentSum(r,i,n)},{$x:r},function(t){return{$x:function(){return function(t,e){for(var n=bu(e,je(e)),r=Xu(t,n),i=ru(e,Re(0,"int32")),o=r.rank-i.rank,a=0;a<o;++a)i=qo(i,a+1);i=_u(i,ze(r.shape,"bool"));var s=je(r);return zu(i,r,s)}(t,i)}}})}});var Ju=Se({basicLSTMCell_:function(t,e,n,r,i,o){var a=xe(t,"forgetBias","basicLSTMCell"),s=xe(e,"lstmKernel","basicLSTMCell"),u=xe(n,"lstmBias","basicLSTMCell"),l=xe(r,"data","basicLSTMCell"),c=xe(i,"c","basicLSTMCell"),p=xe(o,"h","basicLSTMCell"),h=l.concat(p,1).matMul(s).add(u),f=h.shape[0],d=h.shape[1]/4,m=[f,d],g=h.slice([0,0],m),y=h.slice([0,d],m),v=h.slice([0,2*d],m),b=h.slice([0,3*d],m),w=g.sigmoid().mulStrict(y.tanh()).addStrict(c.mulStrict(a.add(v).sigmoid()));return[w,w.tanh().mulStrict(b.sigmoid())]}}),Zu=Se({multiRNNCell_:function(t,e,n,r){for(var i=xe(e,"data","multiRNNCell"),o=Ne(n,"c","multiRNNCell"),a=Ne(r,"h","multiRNNCell"),s=i,u=[],l=0;l<t.length;l++){var c=t[l](s,o[l],a[l]);u.push(c[0]),u.push(c[1]),s=c[1]}var p=[],h=[];for(l=0;l<u.length;l+=2)p.push(u[l]),h.push(u[l+1]);return[p,h]}});var Qu=Se({movingAverage_:function(t,e,n,r,i){void 0===i&&(i=!0);var o=xe(t,"v","movingAverage"),a=xe(e,"x","movingAverage"),s=xe(n,"decay","movingAverage");(function(t,e){d(t.dtype===e.dtype,function(){return"The dtypes of the first("+t.dtype+") and second("+e.dtype+") input must match"})})(o,a),d(b(o.shape,a.shape),function(){return"Shape mismatch in v and x"});var u=Re(1),l=u.sub(s),c=a.sub(o).mul(l);if(i){d(null!=r,function(){return"When using zeroDebias: true, step is required."});var p=xe(r,"step","movingAverage");c=c.div(u.sub(ku(s,p)))}return o.add(c)}});var tl=Se({stridedSlice_:function(t,e,n,r,i,o,a,s,u){if(void 0===i&&(i=0),void 0===o&&(o=0),void 0===a&&(a=0),void 0===s&&(s=0),void 0===u&&(u=0),0!==a)throw new Error("ellipsis mask is not yet supported");if(0!==s)throw new Error("new axis mask is not yet supported");var l=xe(t,"x","stridedSlice");if(r.every(function(t){return 1===t})){var c=de(l.shape,e,n,r,i,o,a,s,u),p=c[0],h=c[1],f=c[2],d=h.filter(function(t,e){return-1===f.indexOf(e)});return zs(l,p,h).reshape(d)}return Bt.engine.runKernel(function(t){return t.stridedSlice(l,e,n,r,i,o,a,s,u)},{$x:l})}});var el=Se({topk_:function(t,e,n){void 0===e&&(e=1),void 0===n&&(n=!0);var r=xe(t,"x","topk");if(0===r.rank)throw new Error("topk() expects the input to be of rank 1 or higher");var i=r.shape[r.shape.length-1];if(e>i)throw new Error("'k' passed to topk() must be <= the last dimension ("+i+") but got "+e);var o=Bt.engine.runKernel(function(t){return t.topk(r,e,n)},{$x:r});return{values:o[0],indices:o[1]}}});var nl=Se({scatterND_:function(t,e,n){var r=xe(t,"indices","scatterND","int32"),i=xe(e,"updates","scatterND");return he(i,r,n),Bt.engine.runKernel(function(t){return t.scatterND(r,i,n)},{$indices:r,$updates:i})}});var rl=Se({fft_:function(t){d("complex64"===t.dtype,function(){return"The dtype for tf.spectral.fft() must be complex64 but got "+t.dtype+"."});var e=t.shape[t.shape.length-1],n=t.size/e,r=t.as2D(n,e);return Bt.engine.runKernel(function(t){return t.fft(r)},{input:t}).reshape(t.shape)}}),il=Se({ifft_:function(t){d("complex64"===t.dtype,function(){return"The dtype for tf.spectral.ifft() must be complex64 but got "+t.dtype+"."});var e=t.shape[t.shape.length-1],n=t.size/e,r=t.as2D(n,e);return Bt.engine.runKernel(function(t){return t.ifft(r)},{input:t}).reshape(t.shape)}}),ol=Se({rfft_:function(t){d("float32"===t.dtype,function(){return"The dtype for rfft() must be real value but got "+t.dtype});var e=t.shape[t.shape.length-1],n=t.size/e,r=t.zerosLike(),i=Ie(t,r).as2D(n,e),o=rl(i),a=Math.floor(e/2)+1,s=ke(o),u=Ae(o),l=s.split([a,e-a],s.shape.length-1),c=u.split([a,e-a],u.shape.length-1),p=t.shape.slice();return p[t.shape.length-1]=a,Ie(l[0],c[0]).reshape(p)}}),al=Se({irfft_:function(t){var e=t.shape[t.shape.length-1],n=t.size/e;if(e<=2){var r=t.as2D(n,e),i=il(r);return ke(i)}var o=[n,2*(e-1)],a=ke(t).as2D(n,e),s=Ae(t).as2D(n,e),u=a.slice([0,1],[n,e-2]).reverse(1),l=s.slice([0,1],[n,e-2]).reverse(1).mul(Re(-1)),c=a.concat(u,1),p=s.concat(l,1);return r=Ie(c,p).as2D(o[0],o[1]),i=il(r),ke(i)}}),sl=Object.freeze({fft:rl,ifft:il,rfft:ol,irfft:al});var ul=Se({sparseToDense_:function(t,e,n,r){void 0===r&&(r=0);var i=xe(t,"sparseIndices","sparseToDense","int32"),o=xe(e,"sparseValues","sparseToDense"),a=xe(r,"defaultValue","sparseToDense",o.dtype);return function(t,e,n,r){if("int32"!==t.dtype)throw new Error("tf.sparseToDense() expects the indices to be int32 type, but the dtype was "+t.dtype+".");if(t.rank>2)throw new Error("sparseIndices should be a scalar, vector, or matrix, but got shape "+t.shape+".");var i=t.rank>0?t.shape[0]:1,o=t.rank>1?t.shape[1]:1;if(n.length!==o)throw new Error("outputShape has incorrect number of elements:, "+n.length+", should be: "+o+".");var a=e.size;if(0!==e.rank&&(1!==e.rank||a!==i))throw new Error("sparseValues has incorrect shape "+e.shape+", should be [] or ["+i+"]");if(e.dtype!==r.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}(i,o,n,a),Bt.engine.runKernel(function(t){return t.sparseToDense(i,o,n,a)},{$sparseIndices:i,$sparseValues:o,$defaultValue:a})}});var ll=Se({gatherND_:function(t,e){var n=xe(e,"indices","gatherND","int32"),r=xe(t,"x","gatherND");return Bt.engine.runKernel(function(t){return t.gatherND(r,n)},{$x:r,$indices:n})}});!function(t){t[t.NONE=0]="NONE",t[t.MEAN=1]="MEAN",t[t.SUM=2]="SUM",t[t.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"}(t.Reduction||(t.Reduction={}));var cl=Se({absoluteDifference_:function(e,n,r,i){void 0===i&&(i=t.Reduction.SUM_BY_NONZERO_WEIGHTS);var o=xe(e,"labels","absoluteDifference"),a=xe(n,"predictions","absoluteDifference"),s=null;null!=r&&(s=xe(r,"weights","absoluteDifference")),m(o.shape,a.shape,"Error in absoluteDifference: ");var u=o.sub(a).abs();return pl(u,s,i)}}),pl=Se({computeWeightedLoss_:function(e,n,r){void 0===r&&(r=t.Reduction.SUM_BY_NONZERO_WEIGHTS);var i=xe(e,"losses","computeWeightedLoss"),o=null;null!=n&&(o=xe(n,"weights","computeWeightedLoss"));var a=null==o?i:i.mul(o);if(r===t.Reduction.NONE)return a;if(r===t.Reduction.SUM)return a.sum();if(r===t.Reduction.MEAN){if(null==o)return a.mean();var s=v(i.shape)/v(o.shape),u=a.sum().div(o.sum());return s>1?u.div(Re(s)):u}if(r===t.Reduction.SUM_BY_NONZERO_WEIGHTS){if(null==o)return a.sum().div(Re(i.size));var l=o.mul(ze(i.shape)).notEqual(Re(0)).sum().toFloat();return a.sum().div(l)}throw Error("Unknown reduction: "+r)}}),hl=Se({cosineDistance_:function(e,n,r,i,o){void 0===o&&(o=t.Reduction.SUM_BY_NONZERO_WEIGHTS);var a=xe(e,"labels","cosineDistance"),s=xe(n,"predictions","cosineDistance"),u=null;null!=i&&(u=xe(i,"weights","cosineDistance")),m(a.shape,s.shape,"Error in cosineDistance: ");var l=Re(1).sub(a.mul(s).sum(r,!0));return pl(l,u,o)}}),fl=Se({hingeLoss_:function(e,n,r,i){void 0===i&&(i=t.Reduction.SUM_BY_NONZERO_WEIGHTS);var o=xe(e,"labels","hingeLoss"),a=xe(n,"predictions","hingeLoss"),s=null;null!=r&&(s=xe(r,"weights","hingeLoss")),m(o.shape,a.shape,"Error in hingeLoss: ");var u=Re(1);o=Re(2).mul(o).sub(u);var l=u.sub(o.mul(a)).relu();return pl(l,s,i)}}),dl=Se({huberLoss_:function(e,n,r,i,o){void 0===i&&(i=1),void 0===o&&(o=t.Reduction.SUM_BY_NONZERO_WEIGHTS);var a=xe(e,"labels","huberLoss"),s=xe(n,"predictions","huberLoss"),u=null;null!=r&&(u=xe(r,"weights","huberLoss")),m(a.shape,s.shape,"Error in huberLoss: ");var l=Re(i),c=s.sub(a).abs(),p=xu(c,l),h=c.sub(p),f=Re(.5).mul(p.square()).add(l.mul(h));return pl(f,u,o)}}),ml=Se({logLoss_:function(e,n,r,i,o){void 0===i&&(i=1e-7),void 0===o&&(o=t.Reduction.SUM_BY_NONZERO_WEIGHTS);var a=xe(e,"labels","logLoss"),s=xe(n,"predictions","logLoss"),u=null;null!=r&&(u=xe(r,"weights","logLoss")),m(a.shape,s.shape,"Error in logLoss: ");var l=Re(1),c=Re(i),p=a.mul(s.add(c).log()).neg().sub(l.sub(a).mul(l.sub(s).add(c).log()));return pl(p,u,o)}}),gl=Se({meanSquaredError_:function(e,n,r,i){void 0===i&&(i=t.Reduction.SUM_BY_NONZERO_WEIGHTS);var o=xe(e,"labels","meanSquaredError"),a=xe(n,"predictions","meanSquaredError"),s=null;null!=r&&(s=xe(r,"weights","meanSquaredError")),m(o.shape,a.shape,"Error in meanSquaredError: ");var u=o.squaredDifference(a);return pl(u,s,i)}}),yl=Se({sigmoidCrossEntropy_:function(e,n,r,i,o){void 0===i&&(i=0),void 0===o&&(o=t.Reduction.SUM_BY_NONZERO_WEIGHTS);var a=xe(e,"multiClassLabels","sigmoidCrossEntropy"),s=xe(n,"logits","sigmoidCrossEntropy"),u=null;if(null!=r&&(u=xe(r,"weights","sigmoidCrossEntropy")),m(a.shape,s.shape,"Error in sigmoidCrossEntropy: "),i>0){var l=Re(i),c=Re(1),p=Re(.5);a=a.mul(c.sub(l)).add(p.mul(l))}var h=function(t,e){var n=xe(t,"labels","sigmoidCrossEntropyWithLogits"),r=xe(e,"logits","sigmoidCrossEntropyWithLogits");m(n.shape,r.shape,"Error in sigmoidCrossEntropyWithLogits: ");var i=r.relu(),o=r.mul(n),a=r.abs().neg().exp().log1p();return i.sub(o).add(a)}(a,s);return pl(h,u,o)}}),vl=Se({softmaxCrossEntropy_:function(e,n,r,i,o){void 0===i&&(i=0),void 0===o&&(o=t.Reduction.SUM_BY_NONZERO_WEIGHTS);var a=xe(e,"onehotLabels","softmaxCrossEntropy"),s=xe(n,"logits","softmaxCrossEntropy"),u=null;if(null!=r&&(u=xe(r,"weights","softmaxCrossEntropy")),m(a.shape,s.shape,"Error in softmaxCrossEntropy: "),i>0){var l=Re(i),c=Re(1),p=Re(a.shape[1]);a=a.mul(c.sub(l)).add(l.div(p))}var h=function(t,e,n){if(void 0===n&&(n=-1),-1===n&&(n=e.rank-1),n!==e.rank-1)throw Error("Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank "+e.rank+" and dim was "+n);return Vt(function(t,e){var r=e.logSumExp([n],!0),i=e.toFloat().sub(r);return{value:i.mul(t).neg().sum([n]),gradFunc:function(e){var r=re(e.shape,[n]);return[e.reshape(r).mul(t.toFloat().sub(i.exp())),e.reshape(r).mul(i.exp().sub(t.toFloat()))]}}})(t,e)}(a,s);return pl(h,u,o)}}),bl=Object.freeze({get Reduction(){return t.Reduction},absoluteDifference:cl,computeWeightedLoss:pl,cosineDistance:hl,hingeLoss:fl,huberLoss:dl,logLoss:ml,meanSquaredError:gl,sigmoidCrossEntropy:yl,softmaxCrossEntropy:vl});function wl(t,e){return void 0===e&&(e=!1),Bt.engine.tidy(function(){if(2!==t.shape.length)throw new Error("qr2d() requires a 2D Tensor, but got a "+t.shape.length+"D Tensor.");for(var n=t.shape[0],r=t.shape[1],i=Go(n),o=t.clone(),a=Oe([[1]],[1,1]),s=a.clone(),u=n>=r?r:n,l=function(t){var e,u=o,l=s,c=i;e=Bt.engine.tidy(function(){var e=o.slice([t,t],[n-t,1]),u=e.norm(),l=o.slice([t,t],[1,1]),c=l.sign().neg(),p=l.sub(c.mul(u)),h=e.div(p);s=1===h.shape[0]?a.clone():a.concat(h.slice([1,0],[h.shape[0]-1,h.shape[1]]),0);var f=c.matMul(p).div(u).neg(),d=o.slice([t,0],[n-t,r]),m=f.mul(s);o=0===t?d.sub(m.matMul(s.transpose().matMul(d))):o.slice([0,0],[t,r]).concat(d.sub(m.matMul(s.transpose().matMul(d))),0);var g=i.slice([0,t],[n,i.shape[1]-t]);return i=0===t?g.sub(g.matMul(s).matMul(m.transpose())):i.slice([0,0],[n,t]).concat(g.sub(g.matMul(s).matMul(m.transpose())),1),[s,o,i]}),s=e[0],o=e[1],i=e[2],Ht([u,l,c])},c=0;c<u;++c)l(c);return!e&&n>r&&(i=i.slice([0,0],[n,r]),o=o.slice([0,0],[r,r])),[i,o]})}var xl=Se({gramSchmidt_:function(t){var e;if(Array.isArray(t)){e=!1,d(null!=t&&t.length>0,function(){return"Gram-Schmidt process: input must not be null, undefined, or empty"});for(var n=t[0].shape[0],r=function(e){d(t[e].shape[0]===n,function(){return"Gram-Schmidt: Non-unique lengths found in the input vectors: ("+t[e].shape[0]+" vs. "+n+")"})},i=1;i<t.length;++i)r(i)}else e=!0,t=Io(t,t.shape[0],0).map(function(t){return ia(t,[0])});d(t.length<=t[0].shape[0],function(){return"Gram-Schmidt: Number of vectors ("+t.length+") exceeds number of dimensions ("+t[0].shape[0]+")."});var o=[],a=t,s=function(t){o.push(Bt.engine.tidy(function(){var e=a[t];if(t>0)for(var n=0;n<t;++n){var r=Zs(o[n].mulStrict(e)).mul(o[n]);e=e.sub(r)}return e.div(Hu(e,"euclidean"))}))};for(i=0;i<t.length;++i)s(i);return e?oa(o,0):o}}),Nl=Se({qr_:function(t,e){if(void 0===e&&(e=!1),t.rank<2)throw new Error("qr() requires input tensor to have a rank >= 2, but got rank "+t.rank);if(2===t.rank)return wl(t,e);var n=t.shape.slice(0,t.shape.length-2).reduce(function(t,e){return t*e}),r=[],i=[];return ua(t.reshape([n,t.shape[t.shape.length-2],t.shape[t.shape.length-1]]),0).forEach(function(t){var n=wl(t,e),o=n[0],a=n[1];r.push(o),i.push(a)}),[oa(r,0).reshape(t.shape),oa(i,0).reshape(t.shape)]}}),Sl=Object.freeze({gramSchmidt:xl,qr:Nl});function Cl(t,e,n,r,i){null==r&&(r=.5),null==i&&(i=Number.NEGATIVE_INFINITY);var o=t.shape[0];return n=Math.min(n,o),d(0<=r&&r<=1,function(){return"iouThreshold must be in [0, 1], but was '"+r+"'"}),d(2===t.rank,function(){return"boxes must be a 2D tensor, but was of rank '"+t.rank+"'"}),d(4===t.shape[1],function(){return"boxes must have 4 columns, but 2nd dimension was "+t.shape[1]}),d(1===e.rank,function(){return"scores must be a 1D tensor"}),d(e.shape[0]===o,function(){return"scores has incompatible shape with boxes. Expected "+o+", but was "+e.shape[0]}),{maxOutputSize:n,iouThreshold:r,scoreThreshold:i}}var El=Se({resizeBilinear_:function(t,e,n){void 0===n&&(n=!1);var r=xe(t,"images","resizeBilinear");d(3===r.rank||4===r.rank,function(){return"Error in resizeBilinear: x must be rank 3 or 4, but got rank "+r.rank+"."}),d(2===e.length,function(){return"Error in resizeBilinear: new shape must 2D, but got shape "+e+"."});var i=r,o=!1;3===r.rank&&(o=!0,i=r.as4D(1,r.shape[0],r.shape[1],r.shape[2]));var a=e[0],s=e[1],u=Bt.engine.runKernel(function(t,e){return t.resizeBilinear(i,a,s,n)},{batchImages:i},function(t,e){return{batchImages:function(){return Bt.engine.runKernel(function(e){return e.resizeBilinearBackprop(t,i,n)},{})}}});return o?u.as3D(u.shape[1],u.shape[2],u.shape[3]):u}}),Il=Se({resizeNearestNeighbor_:function(t,e,n){void 0===n&&(n=!1);var r=xe(t,"images","resizeNearestNeighbor");d(3===r.rank||4===r.rank,function(){return"Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank "+r.rank+"."}),d(2===e.length,function(){return"Error in resizeNearestNeighbor: new shape must 2D, but got shape "+e+"."}),d("float32"===r.dtype||"int32"===r.dtype,function(){return"`images` must have `int32` or `float32` as dtype"});var i=r,o=!1;3===r.rank&&(o=!0,i=r.as4D(1,r.shape[0],r.shape[1],r.shape[2]));var a=e[0],s=e[1],u=Bt.engine.runKernel(function(t,e){return t.resizeNearestNeighbor(i,a,s,n)},{batchImages:i},function(t,e){return{batchImages:function(){return Bt.engine.runKernel(function(e){return e.resizeNearestNeighborBackprop(t,i,n)},{})}}});return o?u.as3D(u.shape[1],u.shape[2],u.shape[3]):u}}),kl=Se({nonMaxSuppression_:function(t,e,n,r,i){void 0===r&&(r=.5),void 0===i&&(i=Number.NEGATIVE_INFINITY);var o=xe(t,"boxes","nonMaxSuppression"),a=xe(e,"scores","nonMaxSuppression"),s=Cl(o,a,n,r,i);return n=s.maxOutputSize,r=s.iouThreshold,i=s.scoreThreshold,Bt.engine.runKernel(function(t){return t.nonMaxSuppression(o,a,n,r,i)},{$boxes:o})}}),Al=function(t,e,n,r,a){return void 0===r&&(r=.5),void 0===a&&(a=Number.NEGATIVE_INFINITY),i(this,void 0,void 0,function(){var i,s,u,l,c,p;return o(this,function(o){switch(o.label){case 0:return i=xe(t,"boxes","nonMaxSuppressionAsync"),s=xe(e,"scores","nonMaxSuppressionAsync"),u=Cl(i,s,n,r,a),n=u.maxOutputSize,r=u.iouThreshold,a=u.scoreThreshold,[4,i.data()];case 1:return l=o.sent(),[4,s.data()];case 2:return c=o.sent(),p=Ze(l,c,n,r,a),i!==t&&i.dispose(),s!==e&&s.dispose(),[2,p]}})})},Tl=Se({cropAndResize_:function(t,e,n,r,i,o){var a=xe(t,"image","cropAndResize","float32"),s=xe(e,"boxes","cropAndResize","float32"),u=xe(n,"boxInd","cropAndResize","int32");i=i||"bilinear",o=o||0;var l=s.shape[0];return d(4===a.rank,function(){return"Error in cropAndResize: image must be rank 4,but got rank "+a.rank+"."}),d(2===s.rank&&4===s.shape[1],function(){return"Error in cropAndResize: boxes must be have size ["+l+",4] but had shape "+s.shape+"."}),d(1===u.rank&&u.shape[0]===l,function(){return"Error in cropAndResize: boxInd must be have size ["+l+"] but had shape "+s.shape+"."}),d(2===r.length,function(){return"Error in cropAndResize: cropSize must be of length 2, but got length "+r.length+"."}),d(r[0]>=1&&r[1]>=1,function(){return"cropSize must be atleast [1,1], but was "+r}),d("bilinear"===i||"nearest"===i,function(){return"method must be bilinear or nearest, but was "+i}),Bt.engine.runKernel(function(t,e){return t.cropAndResize(a,s,u,r,i,o)},{$image:a,$boxes:s})}}),Rl=Object.freeze({resizeBilinear:El,resizeNearestNeighbor:Il,nonMaxSuppression:kl,nonMaxSuppressionAsync:Al,cropAndResize:Tl});var Dl=Se({matMul_:function(t,e,n,r,i,o){var a;void 0===n&&(n=!1),void 0===r&&(r=!1),void 0===o&&(o="linear");var s=xe(t,"a","fused matMul"),u=xe(e,"b","fused matMul");a=bt(s,u),s=a[0],u=a[1];var l=n?s.shape[s.rank-2]:s.shape[s.rank-1],c=r?u.shape[u.rank-1]:u.shape[u.rank-2],p=n?s.shape[s.rank-1]:s.shape[s.rank-2],h=r?u.shape[u.rank-2]:u.shape[u.rank-1],f=s.shape.slice(0,-2),m=u.shape.slice(0,-2),g=v(f),y=v(m);d(s.rank>=2&&u.rank>=2&&s.rank===u.rank,function(){return"Error in fused matMul: inputs must have the same rank of at least 2, got ranks "+s.rank+" and "+u.rank+"."}),d(b(f,m),function(){return"Error in fused matMul: outer dimensions ("+f+") and ("+m+") of Tensors with shapes "+s.shape+" and "+u.shape+" must match."}),d(l===c,function(){return"Error in fused matMul: inner shapes ("+l+") and ("+c+") of Tensors with shapes "+s.shape+" and "+u.shape+" and transposeA="+n+" and transposeB="+r+" must match."});var w,x=s.shape.slice(0,-2).concat([p,h]),N=n?s.as3D(g,l,p):s.as3D(g,p,l),S=r?u.as3D(y,h,c):u.as3D(y,c,h);null!=i&&un(x,(w=bt(w=xe(i,"bias","fused matMul"),s)[0]).shape);var C={$a:N,$b:S};return null!=i&&(C.$bias=w),Bt.engine.runKernel(function(t,e){return e(t.fusedBatchMatMul(N,S,n,r,w,o))},C,function(t,e){var a,s=e[0];if(null==o||"linear"===o)a=t;else{if("relu"!==o)throw new Error("Gradient for activation "+o+" has not been implemented yet.");a=t.mul(s.step())}var u={};return null!=i&&(u={$bias:function(){var t=a,e=sn(w.shape,a.shape);return e.length>0&&(t=t.sum(e)),t.reshape(w.shape)}}),n||r?!n&&r?Object.assign({$a:function(){return a.matMul(S,!1,!1)},$b:function(){return a.matMul(N,!0,!1)}},u):n&&!r?Object.assign({$a:function(){return S.matMul(a,!1,!0)},$b:function(){return N.matMul(a,!1,!1)}},u):Object.assign({$a:function(){return S.matMul(a,!0,!0)},$b:function(){return a.matMul(N,!0,!0)}},u):Object.assign({$a:function(){return a.matMul(S,!1,!0)},$b:function(){return N.matMul(a,!0,!1)}},u)}).reshape(x)}}),Ol=Object.freeze({matMul:Dl}),_l=Object.freeze({image:Rl,linalg:Sl,losses:bl,spectral:sl,fused:Ol,op:Se,batchNormalization2d:Ja,batchNormalization3d:Za,batchNormalization4d:Qa,batchNormalization:ts,batchNorm:es,batchNorm2d:ns,batchNorm3d:rs,batchNorm4d:is,complex:Ie,real:ke,imag:Ae,concat:xo,concat1d:No,concat2d:So,concat3d:Co,concat4d:Eo,split:Io,conv1d:ys,conv2d:vs,conv3d:bs,conv2dDerFilter:ws,depthwiseConv2d:xs,separableConv2d:Ns,conv2dTranspose:Ss,matMul:Cs,dot:Es,outerProduct:Is,reverse:ks,reverse1d:As,reverse2d:Ts,reverse3d:Rs,reverse4d:Ds,maxPool:Ms,avgPool:Ls,pool:Fs,slice:zs,slice1d:Ps,slice2d:Bs,slice3d:Us,slice4d:Ws,abs:fa,acos:da,acosh:ma,asin:ga,asinh:ya,atan:va,atanh:ba,ceil:wa,clipByValue:xa,cos:Na,cosh:Sa,erf:Ca,exp:Ea,expm1:Ia,floor:ka,log:Aa,log1p:Ta,logSigmoid:Ra,neg:Da,reciprocal:Oa,round:_a,rsqrt:Ma,sigmoid:La,sign:Fa,sin:za,sinh:Pa,softplus:Ba,sqrt:Ua,square:Wa,step:Va,tan:ja,tanh:qa,all:js,any:qs,argMax:Gs,argMin:Hs,logSumExp:Ks,max:$s,mean:Xs,min:Ys,moments:Js,sum:Zs,prod:Qs,equal:tu,equalStrict:eu,greater:nu,greaterEqual:ru,greaterEqualStrict:iu,greaterStrict:ou,less:au,lessEqual:su,lessEqualStrict:uu,lessStrict:lu,notEqual:cu,notEqualStrict:pu,add:hu,addN:fu,addStrict:du,atan2:mu,div:gu,divStrict:yu,floorDiv:vu,maximum:bu,maximumStrict:wu,minimum:xu,minimumStrict:Nu,mod:Su,modStrict:Cu,mul:Eu,mulStrict:Iu,pow:ku,powStrict:Au,squaredDifference:Tu,squaredDifferenceStrict:Ru,sub:Du,subStrict:Ou,elu:Bu,leakyRelu:Uu,prelu:Wu,relu:Vu,selu:ju,logicalAnd:_u,logicalNot:Mu,logicalOr:Lu,logicalXor:Fu,where:zu,whereAsync:Pu,buffer:zo,print:Po,batchToSpaceND:Bo,cast:Uo,clone:Wo,cumsum:Vo,depthToSpace:jo,expandDims:qo,eye:Go,multinomial:Ho,oneHot:Ko,pad:$o,pad1d:Xo,pad2d:Yo,pad3d:Jo,pad4d:Zo,rand:Qo,randomNormal:ta,randomUniform:ea,reshape:na,spaceToBatchND:ra,squeeze:ia,stack:oa,tile:aa,truncatedNormal:sa,unstack:ua,setdiff1dAsync:la,fill:Be,linspace:Ue,ones:ze,range:We,scalar:Re,tensor:Te,tensor1d:De,tensor2d:Oe,tensor3d:_e,tensor4d:Me,tensor5d:Le,tensor6d:Fe,zeros:Pe,onesLike:Ve,zerosLike:je,transpose:qu,softmax:Ce,logSoftmax:Ee,localResponseNormalization:Gu,norm:Hu,gather:Xu,unsortedSegmentSum:Yu,basicLSTMCell:Ju,multiRNNCell:Zu,movingAverage:Qu,stridedSlice:tl,topk:el,scatterND:nl,fft:rl,ifft:il,rfft:ol,irfft:al,sparseToDense:ul,gatherND:ll});var Ml=function(){function t(){this.blockSize=48,this.firstUse=!0,Bt.get("IS_BROWSER")&&(this.fromPixels2DContext=document.createElement("canvas").getContext("2d"))}return t.prototype.setDataMover=function(t){this.data=new qe(t)},t.prototype.register=function(t,e,n){if(this.firstUse&&(this.firstUse=!1,Bt.get("IS_NODE")&&Xt("\n============================\nHi there 👋. Looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, which binds to TensorFlow C++, by running npm i @tensorflow/tfjs-node, or npm i @tensorflow/tfjs-node-gpu if you have CUDA. Then call require('@tensorflow/tfjs-node'); (-gpu suffix for CUDA) at the start of your program. Visit https://github.com/tensorflow/tfjs-node for more details.\n============================\n")),this.data.has(t))throw new Error("Data buffer is already registered");this.data.set(t,{dtype:n})},t.prototype.write=function(t,e){if(null==e)throw new Error("MathBackendCPU.write(): values can not be null");this.data.get(t).values=e},t.prototype.fromPixels=function(t,e){if(null==t)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");var n,r;if(Bt.get("IS_NODE")&&null==t.getContext)throw new Error("When running in node, pixels must be an HTMLCanvasElement like the one returned by the `canvas` npm package");if(null!=t.getContext)n=t.getContext("2d").getImageData(0,0,t.width,t.height).data;else if(t instanceof ImageData)n=t.data;else{if(!(t instanceof HTMLImageElement||t instanceof HTMLVideoElement))throw new Error("pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement or ImageData, but was "+t.constructor.name);if(null==this.fromPixels2DContext)throw new Error("Can't read pixels from HTMLImageElement outside the browser.");this.fromPixels2DContext.canvas.width=t.width,this.fromPixels2DContext.canvas.height=t.height,this.fromPixels2DContext.drawImage(t,0,0,t.width,t.height),n=this.fromPixels2DContext.getImageData(0,0,t.width,t.height).data}if(4===e)r=new Int32Array(n);else{var i=t.width*t.height;r=new Int32Array(i*e);for(var o=0;o<i;o++)for(var a=0;a<e;++a)r[o*e+a]=n[4*o+a]}return _e(r,[t.height,t.width,e],"int32")},t.prototype.read=function(t){return i(this,void 0,void 0,function(){return o(this,function(e){return[2,this.readSync(t)]})})},t.prototype.readSync=function(t){var e=this.data.get(t),n=e.dtype,r=e.complexTensors;return"complex64"===n?$e(r.real.dataSync(),r.imag.dataSync()):this.data.get(t).values},t.prototype.disposeData=function(t){if(this.data.has(t)){var e=this.data.get(t).complexTensors;null!=e&&(e.real.dispose(),e.imag.dispose()),this.data.delete(t)}},t.prototype.time=function(t){return i(this,void 0,void 0,function(){var e;return o(this,function(n){return e=K(),t(),[2,{kernelMs:K()-e}]})})},t.prototype.memory=function(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}},t.prototype.complex=function(t,e){var n=ut.make(t.shape,{},"complex64");return this.data.get(n.dataId).complexTensors={real:Bt.engine.keep(t.clone()),imag:Bt.engine.keep(e.clone())},n},t.prototype.real=function(t){return this.data.get(t.dataId).complexTensors.real.clone()},t.prototype.imag=function(t){return this.data.get(t.dataId).complexTensors.imag.clone()},t.prototype.assertNotComplex=function(t,e){Array.isArray(t)||(t=[t]),t.forEach(function(t){null!=t&&d("complex64"!==t.dtype,function(){return e+" does not support complex64 tensors."})})},t.prototype.slice=function(t,e,n){if(this.assertNotComplex(t,"slice"),ye(t.shape,e,n)){var r=ve(e,t.strides),i=v(n);return Te(t.dataSync().subarray(r,r+i),n,t.dtype)}for(var o=zo(n,t.dtype),a=t.bufferSync(),s=0;s<o.size;++s){var u=o.indexToLoc(s).map(function(t,n){return t+e[n]});o.values[s]=a.get.apply(a,u)}return o.toTensor()},t.prototype.stridedSlice=function(t,e,n,r,i,o,a,s,u){this.assertNotComplex(t,"stridedSlice");var l=de(t.shape,e,n,r,i,o,a,s,u),c=l[0],p=l[1],h=l[2],f=p.filter(function(t,e){return-1===h.indexOf(e)});if(f.some(function(t){return 0===t}))return Te([],f);for(var d=zo(p,t.dtype),m=t.bufferSync(),g=0;g<d.size;g++){for(var y=d.indexToLoc(g),v=new Array(y.length),b=0;b<v.length;b++)v[b]=y[b]*r[b]+c[b];d.set.apply(d,[m.get.apply(m,v)].concat(y))}return d.toTensor().reshape(f)},t.prototype.unstack=function(t,e){for(var n=t.shape[e],r=new Array(t.rank-1),i=0,o=0;o<t.rank;o++)o!==e&&(r[i++]=t.shape[o]);var a=new Array(t.rank).fill(0),s=t.shape.slice();s[e]=1;var u=new Array(n);for(o=0;o<u.length;o++)a[e]=o,u[o]=this.slice(t,a,s).reshape(r);return u},t.prototype.reverse=function(t,e){this.assertNotComplex(t,"reverse");for(var n=zo(t.shape,t.dtype),r=t.bufferSync(),i=function(i){var o=n.indexToLoc(i),a=o.slice();e.forEach(function(e){return a[e]=t.shape[e]-1-a[e]}),n.set.apply(n,[r.get.apply(r,a)].concat(o))},o=0;o<n.size;o++)i(o);return n.toTensor()},t.prototype.concat=function(t,e){this.assertNotComplex(t,"concat");var n=t.map(function(t){var n=v(t.shape.slice(e));return t.as2D(-1,n)}),r=ue(n.map(function(t){return t.shape}),1),i=zo(r,t[0].dtype).values;if(1===n[0].shape[0]){var o=0;n.forEach(function(t){i.set(t.dataSync(),o),o+=t.size})}else{var a=0;n.forEach(function(t){for(var e=t.dataSync(),n=0,o=0;o<t.shape[0];++o)for(var s=o*r[1]+a,u=0;u<t.shape[1];++u)i[s+u]=e[n++];a+=t.shape[1]})}var s=ue(t.map(function(t){return t.shape}),e);return Te(i,s,t[0].dtype)},t.prototype.neg=function(t){return this.assertNotComplex(t,"neg"),this.multiply(Re(-1),t)},t.prototype.add=function(t,e){return"complex64"===t.dtype||"complex64"===e.dtype?this.broadcastedBinaryComplexOp(t.cast("complex64"),e.cast("complex64"),function(t,e,n,r){return{real:t+n,imag:e+r}}):this.broadcastedBinaryOp(t,e,yt(t.dtype,e.dtype),function(t,e){return t+e})},t.prototype.addN=function(t){this.assertNotComplex(t,"addN");for(var e=t.map(function(t){return t.dataSync()}),n=zo(t[0].shape,t[0].dtype),r=n.values,i=0;i<t.length;i++)for(var o=e[i],a=0;a<r.length;a++)r[a]+=o[a];return n.toTensor()},t.prototype.subtract=function(t,e){return"complex64"===t.dtype||"complex64"===e.dtype?this.broadcastedBinaryComplexOp(t.cast("complex64"),e.cast("complex64"),function(t,e,n,r){return{real:t-n,imag:e-r}}):this.broadcastedBinaryOp(t,e,yt(t.dtype,e.dtype),function(t,e){return t-e})},t.prototype.pow=function(t,e){return this.assertNotComplex([t,e],"pow"),this.broadcastedBinaryOp(t,e,t.dtype,function(t,e){return Math.pow(t,e)})},t.prototype.batchMatMul=function(t,e,n,r){this.assertNotComplex([t,e],"matMul");for(var i=n?t.shape[1]:t.shape[2],o=n?t.shape[2]:t.shape[1],a=r?e.shape[1]:e.shape[2],s=t.shape[0],u=t.dataSync(),l=e.dataSync(),c=n?[t.strides[0],1,t.strides[1]]:[t.strides[0],t.strides[1],1],p=c[0],h=c[1],f=c[2],d=r?[1,e.strides[1],e.strides[0]]:[e.strides[1],1,e.strides[0]],m=d[0],g=d[1],y=d[2],v=o*a,b=zo([s,o,a],t.dtype),w=b.values,x=this.blockSize,N=0;N<s;N++)for(var S=0;S<o;S+=x)for(var C=0;C<a;C+=x)for(var E=0;E<i;E+=x)for(var I=Math.min(S+x,o),k=Math.min(C+x,a),A=Math.min(E+x,i),T=S;T<I;T++)for(var R=C;R<k;R++){for(var D=0,O=E;O<A;O++)D+=u[N*p+T*h+O*f]*l[O*m+R*g+N*y];w[N*v+(T*a+R)]+=D}return b.toTensor()},t.prototype.fusedBatchMatMul=function(t,e,n,r,i,o){var a=this.batchMatMul(t,e,n,r);return i&&(a=this.add(a,i)),o&&(a=function(t,e,n){if("linear"===e)return t.linear(n);if("relu"===e)return t.relu(n);throw new Error("Activation "+e+" has not been implemented for the CPU backend.")}(this,o,a)),a},t.prototype.multiply=function(t,e){return"complex64"===t.dtype||"complex64"===e.dtype?this.broadcastedBinaryComplexOp(t.cast("complex64"),e.cast("complex64"),function(t,e,n,r){return{real:t*n-e*r,imag:t*r+e*n}}):this.broadcastedBinaryOp(t,e,yt(t.dtype,e.dtype),function(t,e){return t*e})},t.prototype.realDivide=function(t,e){return this.assertNotComplex([t,e],"realDivide"),this.broadcastedBinaryOp(t,e,"float32",function(t,e){return t/e})},t.prototype.floorDiv=function(t,e){return this.assertNotComplex([t,e],"floorDiv"),this.broadcastedBinaryOp(t,e,"int32",function(t,e){return Math.floor(t/e)})},t.prototype.sum=function(t,e){this.assertNotComplex(t,"sum"),ie("sum",e,t.rank);for(var n=ne(t.shape,e),r=n[0],i=n[1],o=Pe(r,yt(t.dtype,"int32")),a=v(i),s=o.dataSync(),u=t.dataSync(),l=0;l<s.length;++l){for(var c=l*a,p=0,h=0;h<a;++h)p+=u[c+h];s[l]=p}return o},t.prototype.prod=function(t,e){this.assertNotComplex(t,"sum");for(var n=ne(t.shape,e),r=n[0],i=n[1],o=Pe(r,yt(t.dtype,"int32")),a=v(i),s=o.dataSync(),u=t.dataSync(),l=0;l<s.length;++l){for(var c=l*a,p=1,h=0;h<a;++h)p*=u[c+h];s[l]=p}return o},t.prototype.unsortedSegmentSum=function(t,e,n){this.assertNotComplex(t,"unsortedSegmentSum");for(var r=[],i=t.rank-e.rank,o=0;o<i;++o)e=e.expandDims(o+1);for(o=0;o<n;++o){var a=Re(o,"int32"),s=tu(a,e).asType("float32").mul(t).sum(0);r.push(s)}return oa(r)},t.prototype.argMin=function(t,e){this.assertNotComplex(t,"argMin");var n=[e];ie("argMin",n,t.rank);for(var r=ne(t.shape,n),i=r[0],o=r[1],a=Pe(i,"int32"),s=v(o),u=a.dataSync(),l=t.dataSync(),c=0;c<u.length;++c){for(var p=c*s,h=l[p],f=0,d=0;d<s;++d){var m=l[p+d];m<h&&(h=m,f=d)}u[c]=f}return a},t.prototype.argMax=function(t,e){this.assertNotComplex(t,"argMax");var n=[e];ie("argMax",n,t.rank);for(var r=ne(t.shape,n),i=r[0],o=r[1],a=Pe(i,"int32"),s=v(o),u=a.dataSync(),l=t.dataSync(),c=0;c<u.length;++c){for(var p=c*s,h=l[p],f=0,d=0;d<s;++d){var m=l[p+d];m>h&&(h=m,f=d)}u[c]=f}return a},t.prototype.cumsum=function(t,e,n,r){if(this.assertNotComplex(t,"cumsum"),e!==t.rank-1)throw new Error("backend.cumsum in CPU expects an inner-most axis="+(t.rank-1)+" but got axis="+e);for(var i=yt(t.dtype,"int32"),o=Pe(t.shape,i),a=o.dataSync(),s=t.dataSync(),u=t.shape[t.rank-1],l=r?function(t,e){return t+u-e-1}:function(t,e){return t+e},c=0;c<s.length;c+=u)for(var p=0;p<u;p++){var h=l(c,p);if(0===p)a[h]=n?0:s[h];else{var f=l(c,p-1);a[h]=n?s[f]+a[f]:s[h]+a[f]}}return o},t.prototype.equal=function(t,e){return this.assertNotComplex([t,e],"equal"),this.broadcastedBinaryOp(t,e,"bool",function(t,e){return t===e?1:0})},t.prototype.notEqual=function(t,e){return this.assertNotComplex([t,e],"notEqual"),this.broadcastedBinaryOp(t,e,"bool",function(t,e){return t!==e?1:0})},t.prototype.less=function(t,e){return this.assertNotComplex([t,e],"less"),this.broadcastedBinaryOp(t,e,"bool",function(t,e){return t<e?1:0})},t.prototype.lessEqual=function(t,e){return this.assertNotComplex([t,e],"lessEqual"),this.broadcastedBinaryOp(t,e,"bool",function(t,e){return t<=e?1:0})},t.prototype.greater=function(t,e){return this.assertNotComplex([t,e],"greater"),this.broadcastedBinaryOp(t,e,"bool",function(t,e){return t>e?1:0})},t.prototype.greaterEqual=function(t,e){return this.assertNotComplex([t,e],"greaterEqual"),this.broadcastedBinaryOp(t,e,"bool",function(t,e){return t>=e?1:0})},t.prototype.logicalNot=function(t){this.assertNotComplex(t,"logicalNot");for(var e=t.dataSync(),n=new Uint8Array(e.length),r=0;r<e.length;++r)n[r]=e[r]?0:1;return ut.make(t.shape,{values:n},"bool")},t.prototype.logicalAnd=function(t,e){return this.assertNotComplex([t,e],"logicalAnd"),this.broadcastedBinaryOp(t,e,"bool",function(t,e){return t&&e})},t.prototype.logicalOr=function(t,e){return this.assertNotComplex([t,e],"logicalOr"),this.broadcastedBinaryOp(t,e,"bool",function(t,e){return t||e})},t.prototype.select=function(t,e,n){this.assertNotComplex([t,e,n],"select");for(var r=t.dataSync(),i=e.dataSync(),o=n.dataSync(),a=Pe(e.shape,yt(e.dtype,n.dtype)),s=a.dataSync(),u=0,l=0===t.rank||t.rank>1||1===e.rank?1:e.shape[1],c=0;c<r.length;c++)for(var p=0;p<l;p++)1===r[c]?s[u++]=i[c]:s[u++]=o[c];return a},t.prototype.where=function(t){this.assertNotComplex([t],"where");var e=t.dataSync();return ca(t.shape,e)},t.prototype.topk=function(t,e,n){return this.assertNotComplex(t,"topk"),en(t.dataSync(),t.shape,t.dtype,e)},t.prototype.min=function(t,e){this.assertNotComplex(t,"min"),ie("min",e,t.rank);for(var n=ne(t.shape,e),r=n[0],i=n[1],o=Pe(r,t.dtype),a=v(i),s=o.dataSync(),u=t.dataSync(),l=0;l<s.length;++l){for(var c=l*a,p=u[c],h=0;h<a;++h){var f=u[c+h];f<p&&(p=f)}s[l]=p}return o},t.prototype.minimum=function(t,e){return this.assertNotComplex([t,e],"minimum"),this.broadcastedBinaryOp(t,e,t.dtype,function(t,e){return Math.min(t,e)})},t.prototype.mod=function(t,e){return this.assertNotComplex([t,e],"mod"),this.broadcastedBinaryOp(t,e,t.dtype,function(t,e){var n=t%e;return t<0&&e<0||t>=0&&e>=0?n:(n+e)%e})},t.prototype.max=function(t,e){this.assertNotComplex(t,"max"),ie("max",e,t.rank);for(var n=ne(t.shape,e),r=n[0],i=n[1],o=Pe(r,t.dtype),a=v(i),s=o.dataSync(),u=t.dataSync(),l=0;l<s.length;++l){for(var c=l*a,p=u[c],h=0;h<a;++h){var f=u[c+h];f>p&&(p=f)}s[l]=p}return o},t.prototype.maximum=function(t,e){return this.assertNotComplex([t,e],"maximum"),this.broadcastedBinaryOp(t,e,t.dtype,function(t,e){return Math.max(t,e)})},t.prototype.all=function(t,e){this.assertNotComplex(t,"all"),ie("all",e,t.rank);for(var n=ne(t.shape,e),r=n[0],i=n[1],o=Pe(r,t.dtype),a=v(i),s=o.dataSync(),u=t.dataSync(),l=0;l<s.length;++l){for(var c=l*a,p=u[c],h=0;h<a;++h){var f=u[c+h];p=p&&f}s[l]=p}return o},t.prototype.any=function(t,e){this.assertNotComplex(t,"any"),ie("any",e,t.rank);for(var n=ne(t.shape,e),r=n[0],i=n[1],o=Pe(r,t.dtype),a=v(i),s=o.dataSync(),u=t.dataSync(),l=0;l<s.length;++l){for(var c=l*a,p=u[c],h=0;h<a;++h){var f=u[c+h];p=p||f}s[l]=p}return o},t.prototype.squaredDifference=function(t,e){return this.assertNotComplex([t,e],"squaredDifference"),this.broadcastedBinaryOp(t,e,t.dtype,function(t,e){var n=t-e;return n*n})},t.prototype.ceil=function(t){this.assertNotComplex(t,"ceil");for(var e=t.dataSync(),n=new Float32Array(e.length),r=0;r<e.length;++r)n[r]=Math.ceil(e[r]);return ut.make(t.shape,{values:n})},t.prototype.floor=function(t){this.assertNotComplex(t,"floor");for(var e=t.dataSync(),n=new Float32Array(e.length),r=0;r<e.length;++r)n[r]=Math.floor(e[r]);return ut.make(t.shape,{values:n})},t.prototype.sign=function(t){this.assertNotComplex(t,"x");for(var e=t.dataSync(),n=new Float32Array(e.length),r=0;r<e.length;++r)e[r]<0?n[r]=-1:e[r]>0?n[r]=1:n[r]=0;return ut.make(t.shape,{values:n})},t.prototype.round=function(t){this.assertNotComplex(t,"round");for(var e=t.dataSync(),n=new Float32Array(e.length),r=0;r<e.length;++r){var i=Math.floor(e[r]);e[r]-i<.5?n[r]=Math.floor(e[r]):e[r]-i>.5?n[r]=Math.ceil(e[r]):n[r]=i%2==0?i:i+1}return ut.make(t.shape,{values:n})},t.prototype.exp=function(t){this.assertNotComplex(t,"exp");for(var e=t.dataSync(),n=new Float32Array(e.length),r=0;r<e.length;++r)n[r]=Math.exp(e[r]);return ut.make(t.shape,{values:n})},t.prototype.expm1=function(t){this.assertNotComplex(t,"expm1");for(var e=t.dataSync(),n=new Float32Array(e.length),r=0;r<e.length;++r)n[r]=Math.expm1(e[r]);return ut.make(t.shape,{values:n})},t.prototype.log=function(t){this.assertNotComplex(t,"log");for(var e=t.dataSync(),n=new Float32Array(e.length),r=0;r<e.length;++r){var i=e[r];n[r]=Math.log(i)}return ut.make(t.shape,{values:n})},t.prototype.log1p=function(t){this.assertNotComplex(t,"log1p");for(var e=t.dataSync(),n=new Float32Array(e.length),r=0;r<e.length;++r){var i=e[r];n[r]=Math.log1p(i)}return ut.make(t.shape,{values:n})},t.prototype.sqrt=function(t){this.assertNotComplex(t,"sqrt");for(var e=t.dataSync(),n=new Float32Array(e.length),r=0;r<e.length;++r){var i=e[r];n[r]=Math.sqrt(i)}return ut.make(t.shape,{values:n})},t.prototype.rsqrt=function(t){this.assertNotComplex(t,"rsqrt");for(var e=t.dataSync(),n=new Float32Array(e.length),r=0;r<e.length;++r){var i=e[r];n[r]=1/Math.sqrt(i)}return ut.make(t.shape,{values:n})},t.prototype.square=function(t){this.assertNotComplex(t,"square");for(var e=t.dataSync(),n=new Float32Array(e.length),r=0;r<e.length;++r){var i=e[r];n[r]=i*i}return ut.make(t.shape,{values:n})},t.prototype.reciprocal=function(t){this.assertNotComplex(t,"reciprocal");for(var e=t.dataSync(),n=new Float32Array(e.length),r=0;r<e.length;++r)n[r]=1/e[r];return ut.make(t.shape,{values:n})},t.prototype.linear=function(t){return t},t.prototype.relu=function(t){this.assertNotComplex(t,"relu");for(var e=Pe(t.shape,t.dtype),n=e.dataSync(),r=t.dataSync(),i=0;i<r.length;++i)n[i]=Math.max(0,r[i]);return e},t.prototype.prelu=function(t,e){return this.assertNotComplex([t,e],"prelu"),this.broadcastedBinaryOp(t,e,t.dtype,function(t,e){return t<0?e*t:t})},t.prototype.elu=function(t){this.assertNotComplex(t,"elu");for(var e=new Float32Array(t.size),n=t.dataSync(),r=0;r<n.length;++r){var i=n[r];e[r]=i>=0?i:Math.exp(i)-1}return ut.make(t.shape,{values:e})},t.prototype.eluDer=function(t,e){this.assertNotComplex([t,e],"eluDer");for(var n=new Float32Array(e.size),r=e.dataSync(),i=t.dataSync(),o=0;o<r.length;++o){var a=r[o];n[o]=a>=1?i[o]:i[o]*(a+1)}return ut.make(e.shape,{values:n})},t.prototype.selu=function(t){this.assertNotComplex(t,"selu");for(var e=ro,n=io,r=new Float32Array(t.size),i=t.dataSync(),o=0;o<i.length;++o){var a=i[o];r[o]=a>=0?n*a:e*(Math.exp(a)-1)}return ut.make(t.shape,{values:r})},t.prototype.clip=function(t,e,n){this.assertNotComplex(t,"clip");for(var r=new Float32Array(t.size),i=t.dataSync(),o=0;o<i.length;++o){var a=i[o];r[o]=a>n?n:a<e?e:a}return ut.make(t.shape,{values:r})},t.prototype.abs=function(t){for(var e=new Float32Array(t.size),n=t.dataSync(),r=0;r<n.length;++r)e[r]=Math.abs(n[r]);return ut.make(t.shape,{values:e})},t.prototype.complexAbs=function(t){for(var e=new Float32Array(t.size),n=t.dataSync(),r=0;r<t.size;++r){var i=n[2*r],o=n[2*r+1];e[r]=Math.hypot(i,o)}return ut.make(t.shape,{values:e})},t.prototype.int=function(t){this.assertNotComplex(t,"int");for(var e=new Int32Array(t.size),n=t.dataSync(),r=0;r<n.length;++r)e[r]=n[r];return ut.make(t.shape,{values:e},"int32")},t.prototype.sigmoid=function(t){this.assertNotComplex(t,"sigmoid");for(var e=new Float32Array(t.size),n=t.dataSync(),r=0;r<n.length;++r)e[r]=1/(1+Math.exp(-n[r]));return ut.make(t.shape,{values:e})},t.prototype.softplus=function(t){this.assertNotComplex(t,"softplus");for(var e=Math.log(1.1920928955078125e-7)+2,n=new Float32Array(t.size),r=t.dataSync(),i=0;i<r.length;++i){var o,a=r[i]>-e,s=r[i]<e,u=Math.exp(r[i]);o=s?u:a?r[i]:Math.log(1+u),n[i]=o}return ut.make(t.shape,{values:n})},t.prototype.sin=function(t){this.assertNotComplex(t,"sin");for(var e=new Float32Array(t.size),n=t.dataSync(),r=0;r<n.length;++r)e[r]=Math.sin(n[r]);return ut.make(t.shape,{values:e})},t.prototype.cos=function(t){this.assertNotComplex(t,"cos");for(var e=new Float32Array(t.size),n=t.dataSync(),r=0;r<n.length;++r)e[r]=Math.cos(n[r]);return ut.make(t.shape,{values:e})},t.prototype.tan=function(t){this.assertNotComplex(t,"tan");for(var e=new Float32Array(t.size),n=t.dataSync(),r=0;r<n.length;++r)e[r]=Math.tan(n[r]);return ut.make(t.shape,{values:e})},t.prototype.asin=function(t){this.assertNotComplex(t,"asin");for(var e=new Float32Array(t.size),n=t.dataSync(),r=0;r<n.length;++r)e[r]=Math.asin(n[r]);return ut.make(t.shape,{values:e})},t.prototype.acos=function(t){this.assertNotComplex(t,"acos");for(var e=new Float32Array(t.size),n=t.dataSync(),r=0;r<n.length;++r)e[r]=Math.acos(n[r]);return ut.make(t.shape,{values:e})},t.prototype.atan=function(t){this.assertNotComplex(t,"atan");for(var e=new Float32Array(t.size),n=t.dataSync(),r=0;r<n.length;++r)e[r]=Math.atan(n[r]);return ut.make(t.shape,{values:e})},t.prototype.atan2=function(t,e){return this.assertNotComplex([t,e],"atan2"),this.broadcastedBinaryOp(t,e,t.dtype,function(t,e){return Math.atan2(t,e)})},t.prototype.sinh=function(t){this.assertNotComplex(t,"sinh");for(var e=new Float32Array(t.size),n=t.dataSync(),r=0;r<n.length;++r)e[r]=Math.sinh(n[r]);return ut.make(t.shape,{values:e})},t.prototype.cosh=function(t){this.assertNotComplex(t,"cosh");for(var e=new Float32Array(t.size),n=t.dataSync(),r=0;r<n.length;++r)e[r]=Math.cosh(n[r]);return ut.make(t.shape,{values:e})},t.prototype.tanh=function(t){this.assertNotComplex(t,"tanh");for(var e=new Float32Array(t.size),n=t.dataSync(),r=0;r<n.length;++r)e[r]=x(n[r]);return ut.make(t.shape,{values:e})},t.prototype.asinh=function(t){this.assertNotComplex(t,"asinh");for(var e=new Float32Array(t.size),n=t.dataSync(),r=0;r<n.length;++r)e[r]=Math.asinh(n[r]);return ut.make(t.shape,{values:e})},t.prototype.acosh=function(t){this.assertNotComplex(t,"acosh");for(var e=new Float32Array(t.size),n=t.dataSync(),r=0;r<n.length;++r)e[r]=Math.acosh(n[r]);return ut.make(t.shape,{values:e})},t.prototype.atanh=function(t){this.assertNotComplex(t,"atanh");for(var e=new Float32Array(t.size),n=t.dataSync(),r=0;r<n.length;++r)e[r]=Math.atanh(n[r]);return ut.make(t.shape,{values:e})},t.prototype.erf=function(t){this.assertNotComplex(t,"erf");for(var e=new Float32Array(t.size),n=t.dataSync(),r=0;r<n.length;++r){var i=n[r],o=1/(1+.3275911*i);e[r]=1-((((1.061405429*o-1.453152027)*o+1.421413741)*o-.284496736)*o+.254829592)*o*Math.exp(-i*i)}return ut.make(t.shape,{values:e})},t.prototype.step=function(t,e){void 0===e&&(e=0),this.assertNotComplex(t,"step");for(var n=new Float32Array(t.size),r=t.dataSync(),i=0;i<r.length;++i){var o=r[i];isNaN(o)?n[i]=NaN:n[i]=o>0?1:e}return ut.make(t.shape,{values:n})},t.prototype.conv2d=function(t,e,n){this.assertNotComplex([t,e],"conv2d");for(var r=n.filterHeight,i=n.filterWidth,o=n.dilationHeight,a=n.dilationWidth,s=n.padInfo.left,u=n.padInfo.top,l=zo(n.outShape,t.dtype),c=t.dataSync(),p=e.dataSync(),h=l.values,f=0;f<n.batchSize;++f)for(var d=f*t.strides[0],m=f*l.strides[0],g=0;g<n.outHeight;++g)for(var y=m+g*l.strides[1],v=g*n.strideHeight-s,b=0;b<r;b++){var w=v+b*o;if(!(w<0||w>=n.inHeight))for(var x=b*e.strides[0],N=d+w*t.strides[1],S=0;S<n.outWidth;++S)for(var C=y+S*n.outChannels,E=S*n.strideWidth-u,I=0;I<i;I++){var k=E+I*a;if(!(k<0||k>=n.inWidth))for(var A=x+I*e.strides[1],T=N+k*n.inChannels,R=A,D=0;D<n.inChannels;++D){for(var O=c[T+D],_=0;_<n.outChannels;++_)h[C+_]+=O*p[R+_];R+=n.outChannels}}}return l.toTensor()},t.prototype.conv3d=function(t,e,n){for(var r=n.filterDepth,i=n.filterHeight,o=n.filterWidth,a=n.dilationDepth,s=n.dilationHeight,u=n.dilationWidth,l=n.padInfo.front,c=n.padInfo.left,p=n.padInfo.top,h=zo(n.outShape,t.dtype),f=t.dataSync(),d=e.dataSync(),m=h.values,g=0;g<n.batchSize;++g)for(var y=g*t.strides[0],v=g*h.strides[0],b=0;b<n.outDepth;++b)for(var w=v+b*h.strides[1],x=b*n.strideDepth-l,N=0;N<r;N++){var S=x+N*a;if(!(S<0||S>=n.inDepth))for(var C=N*e.strides[0],E=y+S*t.strides[1],I=0;I<n.outHeight;++I)for(var k=w+I*h.strides[2],A=I*n.strideHeight-p,T=0;T<i;T++){var R=A+T*s;if(!(R<0||R>=n.inHeight))for(var D=C+T*e.strides[1],O=E+R*t.strides[2],_=0;_<n.outWidth;++_)for(var M=k+_*n.outChannels,L=_*n.strideWidth-c,F=0;F<o;F++){var z=L+F*u;if(!(z<0||z>=n.inWidth))for(var P=D+F*e.strides[2],B=O+z*n.inChannels,U=P,W=0;W<n.inChannels;++W){for(var V=f[B+W],j=0;j<n.outChannels;++j)m[M+j]+=V*d[U+j];U+=n.outChannels}}}}return h.toTensor()},t.prototype.conv2dDerInput=function(t,e,n){this.assertNotComplex([t,e],"conv2dDerInput");for(var r=zo(n.inShape,"float32"),i=r.values,o=r.strides,a=o[0],s=o[1],u=o[2],l=t.dataSync(),c=t.strides,p=c[0],h=c[1],f=c[2],d=e.dataSync(),m=e.strides,g=m[0],y=m[1],v=m[2],b=n.batchSize,w=n.filterHeight,x=n.filterWidth,N=n.inChannels,S=n.inHeight,C=n.inWidth,E=n.outChannels,I=n.outHeight,k=n.outWidth,A=n.strideHeight,T=n.strideWidth,R=w-1-n.padInfo.top,D=x-1-n.padInfo.left,O=0;O<b;++O)for(var _=0;_<N;++_)for(var M=0;M<S;++M)for(var L=M-R,F=Math.max(0,Math.ceil(L/A)),z=Math.min(I,(w+L)/A),P=0;P<C;++P){for(var B=P-D,U=Math.max(0,Math.ceil(B/T)),W=Math.min(k,(x+B)/T),V=0,j=F;j<z;++j)for(var q=j*A-L,G=U;G<W;++G)for(var H=p*O+h*j+f*G,K=g*(w-1-q)+y*(x-1-(G*T-B))+v*_,$=0;$<E;++$)V+=l[H+$]*d[K+$];i[a*O+s*M+u*P+_]=V}return r.toTensor()},t.prototype.conv3dDerInput=function(t,e,n){for(var r=zo(n.inShape,"float32"),i=r.values,o=r.strides,a=o[0],s=o[1],u=o[2],l=o[3],c=t.dataSync(),p=t.strides,h=p[0],f=p[1],d=p[2],m=p[3],g=e.dataSync(),y=e.strides,v=y[0],b=y[1],w=y[2],x=y[3],N=n.batchSize,S=n.filterDepth,C=n.filterHeight,E=n.filterWidth,I=n.inChannels,k=n.inDepth,A=n.inHeight,T=n.inWidth,R=n.outChannels,D=n.outDepth,O=n.outHeight,_=n.outWidth,M=n.strideDepth,L=n.strideHeight,F=n.strideWidth,z=S-1-n.padInfo.front,P=C-1-n.padInfo.top,B=E-1-n.padInfo.left,U=0;U<N;++U)for(var W=0;W<I;++W)for(var V=0;V<k;++V)for(var j=V-z,q=Math.max(0,Math.ceil(j/M)),G=Math.min(D,(S+j)/M),H=0;H<A;++H)for(var K=H-P,$=Math.max(0,Math.ceil(K/L)),X=Math.min(O,(C+K)/L),Y=0;Y<T;++Y){for(var J=Y-B,Z=Math.max(0,Math.ceil(J/F)),Q=Math.min(_,(E+J)/F),tt=0,et=q;et<G;++et)for(var nt=et*M-j,rt=$;rt<X;++rt)for(var it=rt*L-K,ot=Z;ot<Q;++ot)for(var at=h*U+f*et+d*rt+m*ot,st=v*(S-1-nt)+b*(C-1-it)+w*(E-1-(ot*F-J))+x*W,ut=0;ut<R;++ut)tt+=c[at+ut]*g[st+ut];i[a*U+s*V+u*H+l*Y+W]=tt}return r.toTensor()},t.prototype.conv2dDerFilter=function(t,e,n){this.assertNotComplex([t,e],"conv2dDerFilter");for(var r=n.strideHeight,i=n.strideWidth,o=n.filterHeight,a=n.filterWidth,s=zo(n.filterShape,"float32"),u=n.padInfo.left,l=n.padInfo.top,c=t.bufferSync(),p=e.bufferSync(),h=0;h<o;++h)for(var f=Math.max(0,Math.ceil((l-h)/r)),d=Math.min(n.outHeight,(n.inHeight+l-h)/r),m=0;m<a;++m)for(var g=Math.max(0,Math.ceil((u-m)/i)),y=Math.min(n.outWidth,(n.inWidth+u-m)/i),v=0;v<n.inChannels;++v)for(var b=0;b<n.outChannels;++b){for(var w=0,x=0;x<n.batchSize;++x)for(var N=f;N<d;++N)for(var S=h+N*r-l,C=g;C<y;++C){var E=m+C*i-u;w+=c.get(x,S,E,v)*p.get(x,N,C,b)}s.set(w,h,m,v,b)}return s.toTensor()},t.prototype.conv3dDerFilter=function(t,e,n){for(var r=n.strideDepth,i=n.strideHeight,o=n.strideWidth,a=n.filterDepth,s=n.filterHeight,u=n.filterWidth,l=zo(n.filterShape,"float32"),c=l.values,p=l.strides,h=p[0],f=p[1],d=p[2],m=p[3],g=e.dataSync(),y=e.strides,v=y[0],b=y[1],w=y[2],x=y[3],N=t.dataSync(),S=t.strides,C=S[0],E=S[1],I=S[2],k=S[3],A=n.padInfo.front,T=n.padInfo.left,R=n.padInfo.top,D=0;D<a;++D)for(var O=Math.max(0,Math.ceil((A-D)/r)),_=Math.min(n.outDepth,(n.inDepth+A-D)/r),M=D*h,L=0;L<s;++L)for(var F=Math.max(0,Math.ceil((R-L)/i)),z=Math.min(n.outHeight,(n.inHeight+R-L)/i),P=L*f+M,B=0;B<u;++B)for(var U=Math.max(0,Math.ceil((T-B)/o)),W=Math.min(n.outWidth,(n.inWidth+T-B)/o),V=B*d+P,j=0;j<n.inChannels;++j)for(var q=j*m+V,G=0;G<n.outChannels;++G){for(var H=0,K=0;K<n.batchSize;++K)for(var $=K*C,X=K*v,Y=O;Y<_;++Y)for(var J=(D+Y*r-A)*E+$,Z=Y*b+X,Q=F;Q<z;++Q)for(var tt=(L+Q*i-R)*I+J,et=Q*w+Z,nt=U;nt<W;++nt){var rt=nt*x+et;H+=N[(B+nt*o-T)*k+tt+j]*g[rt+G]}c[q+G]=H}return l.toTensor()},t.prototype.depthwiseConv2D=function(t,e,n){this.assertNotComplex([t,e],"depthwiseConv2D");for(var r=n.filterHeight,i=n.filterWidth,o=n.dilationHeight,a=n.dilationWidth,s=n.padInfo.left,u=n.padInfo.top,l=n.outChannels/n.inChannels,c=zo(n.outShape,t.dtype),p=t.dataSync(),h=e.dataSync(),f=c.values,d=0;d<n.batchSize;++d)for(var m=d*t.strides[0],g=d*c.strides[0],y=0;y<n.outHeight;++y)for(var v=g+y*c.strides[1],b=y*n.strideHeight-s,w=0;w<r;++w){var x=b+w*o;if(!(x<0||x>=n.inHeight))for(var N=w*e.strides[0],S=m+x*t.strides[1],C=0;C<n.outWidth;++C)for(var E=v+C*c.strides[2],I=C*n.strideWidth-u,k=0;k<i;++k){var A=I+k*a;if(!(A<0||A>=n.inWidth))for(var T=N+k*e.strides[1],R=S+A*n.inChannels,D=E,O=T,_=0;_<n.inChannels;++_){for(var M=p[R+_],L=0;L<l;++L)f[D+L]+=M*h[O+L];D+=l,O+=l}}}return c.toTensor()},t.prototype.depthwiseConv2DDerInput=function(t,e,n){this.assertNotComplex([t,e],"depthwiseConv2DDerInput");for(var r=zo(n.inShape,"float32"),i=r.values,o=r.strides,a=o[0],s=o[1],u=o[2],l=t.dataSync(),c=t.strides,p=c[0],h=c[1],f=c[2],d=e.dataSync(),m=e.strides,g=m[0],y=m[1],v=m[2],b=n.batchSize,w=n.filterHeight,x=n.filterWidth,N=n.inChannels,S=n.inHeight,C=n.inWidth,E=n.outChannels,I=n.outHeight,k=n.outWidth,A=n.strideHeight,T=n.strideWidth,R=w-1-n.padInfo.top,D=x-1-n.padInfo.left,O=E/N,_=0;_<b;++_)for(var M=0;M<N;++M)for(var L=0;L<S;++L)for(var F=L-R,z=Math.max(0,Math.ceil(F/A)),P=Math.min(I,(w+F)/A),B=0;B<C;++B){for(var U=B-D,W=Math.max(0,Math.ceil(U/T)),V=Math.min(k,(x+U)/T),j=0,q=z;q<P;++q)for(var G=q*A-F,H=W;H<V;++H)for(var K=p*_+h*q+f*H,$=g*(w-1-G)+y*(x-1-(H*T-U))+v*M,X=0;X<O;++X)j+=l[K+(M*O+X)]*d[$+X];i[a*_+s*L+u*B+M]=j}return r.toTensor()},t.prototype.depthwiseConv2DDerFilter=function(t,e,n){this.assertNotComplex([t,e],"depthwiseConv2DDerFilter");for(var r=n.strideHeight,i=n.strideWidth,o=n.filterHeight,a=n.filterWidth,s=zo(n.filterShape,"float32"),u=n.padInfo.left,l=n.padInfo.top,c=n.outChannels/n.inChannels,p=t.bufferSync(),h=e.bufferSync(),f=0;f<o;++f)for(var d=Math.max(0,Math.ceil((l-f)/r)),m=Math.min(n.outHeight,(n.inHeight+l-f)/r),g=0;g<a;++g)for(var y=Math.max(0,Math.ceil((u-g)/i)),v=Math.min(n.outWidth,(n.inWidth+u-g)/i),b=0;b<n.outChannels;++b){for(var w=Math.trunc(b/c),x=b%c,N=0,S=0;S<n.batchSize;++S)for(var C=d;C<m;++C)for(var E=f+C*r-l,I=y;I<v;++I){var k=g+I*i-u;N+=p.get(S,E,k,w)*h.get(S,C,I,b)}s.set(N,f,g,w,x)}return s.toTensor()},t.prototype.tile=function(t,e){this.assertNotComplex(t,"tile");for(var n=new Array(t.rank),r=0;r<n.length;r++)n[r]=t.shape[r]*e[r];var i=zo(n,t.dtype),o=t.bufferSync();for(r=0;r<i.values.length;++r){for(var a=i.indexToLoc(r),s=new Array(t.rank),u=0;u<s.length;u++)s[u]=a[u]%t.shape[u];var l=o.locToIndex(s);i.values[r]=o.values[l]}return i.toTensor()},t.prototype.pad=function(t,e,n){this.assertNotComplex(t,"pad");var r=e.map(function(e,n){return e[0]+t.shape[n]+e[1]}),i=e.map(function(t){return t[0]}),o=t.bufferSync(),a=zo(r,t.dtype);0!==n&&a.values.fill(n);for(var s=0;s<t.size;s++){var u=o.indexToLoc(s),l=u.map(function(t,e){return t+i[e]});a.set.apply(a,[o.get.apply(o,u)].concat(l))}return a.toTensor()},t.prototype.transpose=function(t,e){this.assertNotComplex(t,"transpose");for(var n=new Array(t.rank),r=0;r<n.length;r++)n[r]=t.shape[e[r]];var i=t.dataSync(),o=zo(n,t.dtype),a=t.bufferSync();for(r=0;r<t.size;++r){for(var s=a.indexToLoc(r),u=new Array(s.length),l=0;l<u.length;l++)u[l]=s[e[l]];var c=o.locToIndex(u);o.values[c]=i[r]}return o.toTensor()},t.prototype.gather=function(t,e,n){this.assertNotComplex([t,e],"gather");var r=t.shape.slice(),i=e.dataSync();r[n]=i.length;for(var o=zo(r,t.dtype),a=t.bufferSync(),s=0;s<o.size;++s){var u=o.indexToLoc(s),l=u.slice();l[n]=i[u[n]];var c=a.locToIndex(l);o.values[s]=a.values[c]}return o.toTensor()},t.prototype.batchToSpaceND=function(t,e,n){this.assertNotComplex([t],"batchToSpaceND");var r=e.reduce(function(t,e){return t*e}),i=Yt(t.shape,e,r),o=Jt(i.length,e.length),a=Zt(t.shape,e,r),s=Qt(n,e.length),u=te(a,n,e.length);return t.reshape(i).transpose(o).reshape(a).slice(s,u)},t.prototype.spaceToBatchND=function(t,e,n){this.assertNotComplex([t],"spaceToBatchND");var r=e.reduce(function(t,e){return t*e}),i=[[0,0]];i.push.apply(i,n);for(var o=1+e.length;o<t.shape.length;++o)i.push([0,0]);var a=t.pad(i),s=Yt(a.shape,e,r,!1),u=Jt(s.length,e.length,!1),l=Zt(a.shape,e,r,!1);return a.reshape(s).transpose(u).reshape(l)},t.prototype.pool=function(t,e,n){this.assertNotComplex(t,"pool");for(var r=e.strideHeight,i=e.strideWidth,o=e.dilationHeight,a=e.dilationWidth,s=e.effectiveFilterHeight,u=e.effectiveFilterWidth,l=e.padInfo.top,c=e.padInfo.left,p="max"===n?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,h=t.dataSync(),f=zo(e.outShape,t.dtype),d=f.values,m=e.outShape[1]*e.outShape[2]*e.outShape[3],g=e.outShape[2]*e.outShape[3],y=e.outShape[3],v=0;v<e.batchSize;++v)for(var b=v*m,w=v*t.strides[0],x=0;x<e.inChannels;++x)for(var N=0;N<e.outHeight;++N)for(var S=N*r-l,C=Math.max(0,S),E=Math.min(e.inHeight,s+S),I=b+N*g,k=0;k<e.outWidth;++k){for(var A=k*i-c,T=Math.max(0,A),R=Math.min(e.inWidth,u+A),D=p,O=0,_=0,M=C;M<E;M+=o){for(var L=w+M*t.strides[1],F=T;F<R;F+=a){var z=h[L+F*t.strides[2]+x];"max"===n&&z>D?D=z:"avg"===n&&(O+=z,_++)}if(isNaN(D))break}d[I+k*y+x]="avg"===n?O/_:D}return f.toTensor()},t.prototype.maxPool=function(t,e){return this.pool(t,e,"max")},t.prototype.maxPoolPositions=function(t,e){for(var n=zo(e.outShape,"int32"),r=e.strideHeight,i=e.strideWidth,o=e.dilationHeight,a=e.dilationWidth,s=e.effectiveFilterHeight,u=e.effectiveFilterWidth,l=e.padInfo.top,c=e.padInfo.left,p=t.bufferSync(),h=0;h<e.batchSize;++h)for(var f=0;f<e.inChannels;++f)for(var d=0;d<e.outHeight;++d){for(var m=d*r-l,g=m;g<0;)g+=o;for(var y=Math.min(e.inHeight,s+m),v=0;v<e.outWidth;++v){for(var b=v*i-c,w=b;w<0;)w+=a;for(var x=Math.min(e.inWidth,u+b),N=Number.NEGATIVE_INFINITY,S=-1,C=g;C<y;C+=o)for(var E=C-m,I=w;I<x;I+=a){var k=I-b,A=p.get(h,C,I,f);A>N&&(N=A,S=E*u+k)}n.set(S,h,d,v,f)}}return n.toTensor()},t.prototype.maxPoolBackprop=function(t,e,n,r){this.assertNotComplex([e,n],"maxPoolBackprop");for(var i=this.maxPoolPositions(e,r),o=r.strideHeight,a=r.strideWidth,s=r.dilationHeight,u=r.dilationWidth,l=r.effectiveFilterHeight,c=r.effectiveFilterWidth,p=c-1-r.padInfo.left,h=l-1-r.padInfo.top,f=zo(e.shape,"float32"),d=i.bufferSync(),m=t.bufferSync(),g=0;g<r.batchSize;++g)for(var y=0;y<r.inChannels;++y)for(var v=0;v<r.inHeight;++v)for(var b=0;b<r.inWidth;++b){for(var w=v-h,x=b-p,N=0,S=0;S<l;S+=s){var C=(w+S)/o;if(!(C<0||C>=r.outHeight||Math.floor(C)!==C))for(var E=0;E<c;E+=u){var I=(x+E)/a;if(!(I<0||I>=r.outWidth||Math.floor(I)!==I)){var k=l*c-1-d.get(g,C,I,y)===S*c+E?1:0;0!==k&&(N+=m.get(g,C,I,y)*k)}}}f.set(N,g,v,b,y)}return f.toTensor()},t.prototype.avgPoolBackprop=function(t,e,n){this.assertNotComplex([t,e],"avgPoolBackprop");for(var r=n.strideHeight,i=n.strideWidth,o=n.filterHeight,a=n.filterWidth,s=n.dilationHeight,u=n.dilationWidth,l=n.effectiveFilterHeight,c=n.effectiveFilterWidth,p=c-1-n.padInfo.left,h=l-1-n.padInfo.top,f=zo(e.shape,"float32"),d=1/(o*a),m=t.bufferSync(),g=0;g<n.batchSize;++g)for(var y=0;y<n.inChannels;++y)for(var v=0;v<n.inHeight;++v)for(var b=0;b<n.inWidth;++b){for(var w=v-h,x=b-p,N=0,S=0;S<l;S+=s){var C=(w+S)/r;if(!(C<0||C>=n.outHeight||Math.floor(C)!==C))for(var E=0;E<c;E+=u){var I=(x+E)/i;I<0||I>=n.outWidth||Math.floor(I)!==I||(N+=m.get(g,C,I,y))}}f.set(N*d,g,v,b,y)}return f.toTensor()},t.prototype.cast=function(t,e){return He(t,e,this)},t.prototype.reshape=function(t,e){return Ke(t,e)},t.prototype.avgPool=function(t,e){return this.assertNotComplex(t,"avgPool"),this.pool(t,e,"avg").toFloat()},t.prototype.resizeBilinear=function(t,e,n,r){this.assertNotComplex(t,"resizeBilinear");for(var i=t.shape,o=i[0],a=i[1],s=i[2],u=i[3],l=t.dataSync(),c=new Float32Array(v([o,e,n,u])),p=[r&&e>1?a-1:a,r&&n>1?s-1:s],h=[r&&e>1?e-1:e,r&&n>1?n-1:n],f=0,d=p[0]/h[0],m=p[1]/h[1],g=0;g<o;g++)for(var y=0;y<e;y++)for(var b=d*y,w=Math.floor(b),x=b-w,N=Math.min(a-1,Math.ceil(b)),S=g*t.strides[0]+w*t.strides[1],C=g*t.strides[0]+N*t.strides[1],E=0;E<n;E++)for(var I=m*E,k=Math.floor(I),A=I-k,T=Math.min(s-1,Math.ceil(I)),R=S+k*t.strides[2],D=C+k*t.strides[2],O=S+ +T*t.strides[2],_=C+T*t.strides[2],M=0;M<u;M++){var L=l[R+M],F=l[D+M],z=L+(l[O+M]-L)*A,P=z+(F+(l[_+M]-F)*A-z)*x;c[f++]=P}return Te(c,[o,e,n,u])},t.prototype.resizeBilinearBackprop=function(t,e,n){this.assertNotComplex([t,e],"resizeBilinearBackprop");for(var r=e.shape,i=r[0],o=r[1],a=r[2],s=r[3],u=t.shape,l=u[1],c=u[2],p=new Float32Array(i*o*a*s),h=[n&&l>1?o-1:o,n&&c>1?a-1:a],f=[n&&l>1?l-1:l,n&&c>1?c-1:c],d=h[0]/f[0],m=h[1]/f[1],g=t.dataSync(),y=0,v=0;v<i;v++)for(var b=v*e.strides[0],w=0;w<l;w++)for(var x=w*d,N=Math.floor(x),S=Math.min(Math.ceil(x),o-1),C=b+N*e.strides[1],E=b+S*e.strides[1],I=x-N,k=1-I,A=0;A<c;A++)for(var T=A*m,R=Math.floor(T),D=Math.min(Math.ceil(T),a-1),O=T-R,_=1-O,M=C+R*e.strides[2],L=C+D*e.strides[2],F=E+R*e.strides[2],z=E+D*e.strides[2],P=k*_,B=k*O,U=I*_,W=I*O,V=0;V<s;V++){var j=g[y++];p[M+V]+=j*P,p[L+V]+=j*B,p[F+V]+=j*U,p[z+V]+=j*W}return Me(p,[i,a,o,s],e.dtype)},t.prototype.resizeNearestNeighbor=function(t,e,n,r){this.assertNotComplex(t,"resizeNearestNeighbor");for(var i=t.shape,o=i[0],a=i[1],s=i[2],u=i[3],l=t.dataSync(),c=new Float32Array(o*e*n*u),p=[r&&e>1?a-1:a,r&&n>1?s-1:s],h=[r&&e>1?e-1:e,r&&n>1?n-1:n],f=p[0]/h[0],d=p[1]/h[1],m=0,g=0;g<o;g++)for(var y=g*t.strides[0],v=0;v<e;v++)for(var b=f*v,w=y+Math.min(a-1,r?Math.round(b):Math.floor(b))*t.strides[1],x=0;x<n;x++)for(var N=d*x,S=w+Math.min(s-1,r?Math.round(N):Math.floor(N))*t.strides[2],C=0;C<u;C++){var E=l[S+C];c[m++]=E}return Te(c,[o,e,n,u],t.dtype)},t.prototype.resizeNearestNeighborBackprop=function(t,e,n){this.assertNotComplex([t,e],"resizeNearestNeighborBackprop");for(var r=e.shape,i=r[0],o=r[1],a=r[2],s=r[3],u=t.shape,l=u[1],c=u[2],p=new Float32Array(i*o*a*s),h=t.dataSync(),f=[n&&l>1?o-1:o,n&&c>1?a-1:a],d=[n&&l>1?l-1:l,n&&c>1?c-1:c],m=f[0]/d[0],g=f[1]/d[1],y=1/m,v=1/g,b=2*Math.ceil(y)+2,w=2*Math.ceil(v)+2,x=0;x<i;x++)for(var N=x*e.strides[0],S=0;S<o;S++)for(var C=N+S*e.strides[1],E=Math.floor(S*y),I=Math.floor(E-b/2),k=0;k<a;k++)for(var A=C+k*e.strides[2],T=Math.floor(k*v),R=Math.floor(T-w/2),D=0;D<s;D++){for(var O=0,_=0;_<b;_++){var M=_+I;if(!(M<0||M>=l)){var L=N+M*t.strides[1],F=M*m;if(S===Math.min(o-1,n?Math.round(F):Math.floor(F)))for(var z=0;z<w;z++){var P=z+R;if(!(P<0||P>=c)){var B=L+P*t.strides[2],U=P*g;k===Math.min(a-1,n?Math.round(U):Math.floor(U))&&(O+=h[B+D])}}}}p[A+D]=O}return Me(p,e.shape,e.dtype)},t.prototype.batchNormalization=function(t,e,n,r,i,o){this.assertNotComplex([t,e,n,i,o],"batchNorm");for(var a=t.dataSync(),s=e.dataSync(),u=n.dataSync(),l=i?i.dataSync():new Float32Array([1]),c=o?o.dataSync():new Float32Array([0]),p=new Float32Array(a.length),h=c.length,f=l.length,d=u.length,m=s.length,g=0,y=0,v=0,b=0,w=0;w<a.length;++w)p[w]=c[g++]+(a[w]-s[y++])*l[v++]/Math.sqrt(u[b++]+r),g>=h&&(g=0),y>=m&&(y=0),v>=f&&(v=0),b>=d&&(b=0);return Me(p,t.shape)},t.prototype.localResponseNormalization4D=function(t,e,n,r,i){this.assertNotComplex(t,"localResponseNormalization4D");var o=t.shape[3],a=o-1,s=t.dataSync(),u=v(t.shape),l=new Float32Array(u);function c(t){for(var n=t%o,r=t-n+Math.max(0,n-e),i=t-n+Math.min(n+e,a),u=0;r<=i;r++){var l=s[r];u+=l*l}return u}for(var p=0;p<u;p++){var h=c(p),f=s[p]*Math.pow(n+r*h,-i);l[p]=f}return Me(l,t.shape)},t.prototype.LRNGrad=function(t,e,n,r,i,o,a){this.assertNotComplex(t,"LRNGrad");for(var s=t.shape[3],u=t.dataSync(),l=e.dataSync(),c=n.dataSync(),p=new Float32Array(v(t.shape)),h=v(t.shape),f=0;f<h;f++){for(var d=f%s,m=f-d+Math.max(0,d-r),g=f-d+Math.min(s,d+r+1),y=0,b=m;b<g;b++)y+=Math.pow(l[b],2);for(y=o*y+i,b=m;b<g;b++){var w=-2*o*a*l[b]*c[f]/y;f===b&&(w+=Math.pow(y,-a)),w*=u[f],p[b]+=w}}return Me(p,t.shape)},t.prototype.multinomial=function(t,e,n,r){this.assertNotComplex(t,"multinomial");for(var i=e?t:Ce(t),o=i.shape[0],a=i.shape[1],s=Pe([o,n],"int32"),u=s.dataSync(),l=i.dataSync(),c=0;c<o;++c){var p=c*a,h=new Float32Array(a-1);h[0]=l[p];for(var f=1;f<h.length;++f)h[f]=h[f-1]+l[p+f];for(var d=Lo(r.toString()),m=c*n,g=0;g<n;++g){var y=d();u[m+g]=h.length;for(var v=0;v<h.length;v++)if(y<h[v]){u[m+g]=v;break}}}return s},t.prototype.oneHot=function(t,e,n,r){this.assertNotComplex(t,"oneHot");var i=new Float32Array(t.size*e);i.fill(r);for(var o=t.dataSync(),a=0;a<t.size;++a)o[a]>=0&&o[a]<e&&(i[a*e+o[a]]=n);return Oe(i,[t.size,e],"int32")},t.prototype.nonMaxSuppression=function(t,e,n,r,i){return this.assertNotComplex(t,"nonMaxSuppression"),Ze(t.dataSync(),e.dataSync(),n,r,i)},t.prototype.fft=function(t){return this.fftBatch(t,!1)},t.prototype.ifft=function(t){return this.fftBatch(t,!0)},t.prototype.fftBatch=function(t,e){for(var n=t.shape[0],r=t.shape[1],i=zo(t.shape,"float32"),o=zo(t.shape,"float32"),a=ke(t).as2D(n,r),s=Ae(t).as2D(n,r),u=0;u<n;u++)for(var l=a.slice([u,0],[1,r]),c=s.slice([u,0],[1,r]),p=Ie(l,c),h=this.fftImpl(p,e).dataSync(),f=0;f<r;f++){var d=Xe(h,f);i.values[u*r+f]=d.real,o.values[u*r+f]=d.imag}return Ie(i.toTensor(),o.toTensor()).as2D(n,r)},t.prototype.fftImpl=function(t,e){var n=t.as1D(),r=n.size;if(this.isExponentOf2(r)){var i=this.fftRadix2(n,r,e).as2D(t.shape[0],t.shape[1]);return e&&(i=Ie(ke(i).div(Re(r)),Ae(i).div(Re(r)))),i}var o=t.dataSync(),a=function(t){for(var e=new Float32Array(t.length/2),n=new Float32Array(t.length/2),r=0;r<t.length;r+=2)e[r/2]=t[r],n[r/2]=t[r+1];return{real:e,imag:n}}(this.fourierTransformByMatmul(o,r,e));return Ie(a.real,a.imag).as2D(t.shape[0],t.shape[1])},t.prototype.isExponentOf2=function(t){return 0==(t&t-1)},t.prototype.fftRadix2=function(t,e,n){if(1===e)return t;var r=t.dataSync(),i=e/2,o=function(t){for(var e=Math.ceil(t.length/4),n=new Float32Array(e),r=new Float32Array(e),i=0;i<t.length;i+=4)n[Math.floor(i/4)]=t[i],r[Math.floor(i/4)]=t[i+1];return{real:n,imag:r}}(r),a=Ie(o.real,o.imag).as1D(),s=function(t){for(var e=Math.floor(t.length/4),n=new Float32Array(e),r=new Float32Array(e),i=2;i<t.length;i+=4)n[Math.floor(i/4)]=t[i],r[Math.floor(i/4)]=t[i+1];return{real:n,imag:r}}(r),u=Ie(s.real,s.imag).as1D();a=this.fftRadix2(a,i,n),u=this.fftRadix2(u,i,n);var l=function(t,e){for(var n=new Float32Array(t/2),r=new Float32Array(t/2),i=0;i<Math.ceil(t/2);i++){var o=(e?2:-2)*Math.PI*(i/t);n[i]=Math.cos(o),r[i]=Math.sin(o)}return{real:n,imag:r}}(e,n),c=Ie(l.real,l.imag).mul(u),p=a.add(c),h=a.sub(c),f=ke(p).concat(ke(h)),d=Ae(p).concat(Ae(h));return Ie(f,d).as1D()},t.prototype.fourierTransformByMatmul=function(t,e,n){for(var r=new Float32Array(2*e),i=0;i<e;i++){for(var o=0,a=0,s=0;s<e;s++){var u=Je(i*s,e,n),l=Xe(t,s);o+=l.real*u.real-l.imag*u.imag,a+=l.real*u.imag+l.imag*u.real}n&&(o/=e,a/=e),Ye(r,o,a,i)}return r},t.prototype.depthToSpace=function(t,e,n){d("NHWC"===n,function(){return"Only NHWC dataFormat supported on CPU for depthToSpace. Got "+n}),d(e>1,function(){return"blockSize should be > 1 for depthToSpace, but was: "+e});for(var r=t.shape[0],i=t.shape[1],o=t.shape[2],a=t.shape[3],s=i*e,u=o*e,l=a/(e*e),c=t.dataSync(),p=new Float32Array(r*s*u*l),h=0,f=0;f<r;++f)for(var m=0;m<s;++m)for(var g=Math.floor(m/e),y=m%e,v=0;v<u;++v)for(var b=Math.floor(v/e),w=(y*e+v%e)*l,x=0;x<l;++x){var N=x+w+a*(b+o*(g+i*f));p[h++]=c[N]}return Me(p,[r,s,u,l])},t.prototype.broadcastedBinaryOp=function(t,e,n,r){var i=un(t.shape,e.shape),o=zo(i,n),a=t.dataSync(),s=e.dataSync(),u=an(t.shape,i),l=an(e.shape,i),c=o.values;if(u.length+l.length===0)for(var p=0;p<c.length;++p)c[p]=r(a[p%a.length],s[p%s.length]);else{var h=t.bufferSync(),f=e.bufferSync(),d=function(n){var i=o.indexToLoc(n),p=i.slice(-t.rank);u.forEach(function(t){return p[t]=0});var d=h.locToIndex(p),m=i.slice(-e.rank);l.forEach(function(t){return m[t]=0});var g=f.locToIndex(m);c[n]=r(a[d],s[g])};for(p=0;p<c.length;++p)d(p)}return o.toTensor()},t.prototype.broadcastedBinaryComplexOp=function(t,e,n){var r=un(t.shape,e.shape),i=zo(r,"float32"),o=zo(r,"float32"),a=t.dataSync(),s=e.dataSync(),u=an(t.shape,r),l=an(e.shape,r),c=i.values,p=o.values;if(u.length+l.length===0)for(var h=0;h<c.length;h++){var f=h%a.length,d=h%s.length,m=n(a[2*f],a[2*f+1],s[2*d],s[2*d+1]);c[h]=m.real,p[h]=m.imag}else{var g=this.data.get(t.dataId).complexTensors.real.bufferSync(),y=this.data.get(e.dataId).complexTensors.real.bufferSync(),v=function(r){var o=i.indexToLoc(r),h=o.slice(-t.rank);u.forEach(function(t){return h[t]=0});var f=g.locToIndex(h),d=o.slice(-e.rank);l.forEach(function(t){return d[t]=0});var m=y.locToIndex(d),v=n(a[2*f],a[2*f+1],s[2*m],s[2*m+1]);c[r]=v.real,p[r]=v.imag};for(h=0;h<c.length;h++)v(h)}return this.complex(i.toTensor(),o.toTensor())},t.prototype.split=function(t,e,n){return tn(t,e,n)},t.prototype.dispose=function(){},t.prototype.floatPrecision=function(){return 32},t.prototype.cropAndResize=function(t,e,n,r,i,o){for(var a=t.shape,s=a[0],u=a[1],l=a[2],c=a[3],p=e.shape[0],h=r[0],f=r[1],d=zo([p,h,f,c],t.dtype),m=e.dataSync(),g=n.dataSync(),y=t.dataSync(),v=t.strides,b=d.strides,w=0;w<p;w++){var x=4*w,N=m[x],S=m[x+1],C=m[x+2],E=m[x+3],I=g[w];if(!(I>=s))for(var k=h>1?(C-N)*(u-1)/(h-1):0,A=f>1?(E-S)*(l-1)/(f-1):0,T=0;T<h;T++){var R=h>1?N*(u-1)+T*k:.5*(N+C)*(u-1);if(R<0||R>u-1)for(var D=0;D<f;D++)for(var O=0;O<c;O++){var _=O+D*b[2]+T*b[1]+w*b[0];d.values[_]=o}else if("bilinear"===i){var M=Math.floor(R),L=Math.ceil(R),F=R-M;for(D=0;D<f;D++)if((G=f>1?S*(l-1)+D*A:.5*(S+E)*(l-1))<0||G>l-1)for(O=0;O<c;O++)_=O+D*b[2]+T*b[1]+w*b[0],d.values[_]=o;else{var z=Math.floor(G),P=Math.ceil(G),B=G-z;for(O=0;O<c;O++){var U=y[_=O+z*v[2]+M*v[1]+I*v[0]],W=y[_=O+P*v[2]+M*v[1]+I*v[0]],V=y[_=O+z*v[2]+L*v[1]+I*v[0]],j=U+(W-U)*B,q=V+(y[_=O+P*v[2]+L*v[1]+I*v[0]]-V)*B;_=O+D*b[2]+T*b[1]+w*b[0],d.values[_]=j+(q-j)*F}}}else for(D=0;D<f;++D){var G;if((G=f>1?S*(l-1)+D*A:.5*(S+E)*(l-1))<0||G>l-1)for(O=0;O<c;O++)_=O+D*b[2]+T*b[1]+w*b[0],d.values[_]=o;else{var H=Math.round(G),K=Math.round(R);for(O=0;O<c;O++){var $=O+H*v[2]+K*v[1]+I*v[0],X=O+D*b[2]+T*b[1]+w*b[0];d.values[X]=y[$]}}}}}return d.toTensor()},t.prototype.sparseToDense=function(t,e,n,r){var i=fe(0,t,n),o=i.sliceRank,a=i.numUpdates,s=i.sliceSize,u=i.strides,l=i.outputSize;return this.scatter(t,e,n,l,s,a,o,u,r,!1)},t.prototype.gatherND=function(t,e){var n=e.shape,r=n[n.length-1],i=le(t,e),o=i[0],a=i[1],s=i[2],u=i[3];if(0===a)return Te([],o,t.dtype);for(var l=new it([a,s],t.dtype),c=e.dataSync(),p=t.dataSync(),h=0;h<a;h++){for(var f=[],d=0,m=0;m<r;m++){var g=c[h*r+m];d+=g*u[m],f.push(g)}if(d<0||d>=t.size/s)throw new Error("Invalid indices: "+f+" does not index into "+t.shape);for(var y=0;y<s;y++)l.values[h*s+y]=p[d*s+y]}return l.toTensor().reshape(o)},t.prototype.scatterND=function(t,e,n){var r=fe(0,t,n),i=r.sliceRank,o=r.numUpdates,a=r.sliceSize,s=r.strides,u=r.outputSize,l=Re(0);return this.scatter(t,e,n,u,a,o,i,s,l,!0)},t.prototype.fill=function(t,e,n){var r=T(n=n||B(e),v(t));return r.fill(e),ut.make(t,{values:r},n)},t.prototype.onesLike=function(t){if("string"===t.dtype)throw new Error("onesLike is not supported for string tensors");return this.fill(t.shape,1,t.dtype)},t.prototype.zerosLike=function(t){var e=T(t.dtype,v(t.shape));return ut.make(t.shape,{values:e},t.dtype)},t.prototype.scatter=function(t,e,n,r,i,o,a,s,u,l){var c=[r/i,i],p=t.dataSync(),h=e.dataSync();if(0===r)return Te([],n,e.dtype);var f=new it(c,e.dtype);f.values.fill(u.dataSync()[0]);for(var d=0;d<o;d++){for(var m=[],g=0,y=0;y<a;y++){var v=p[d*a+y];m.push(v),g+=v*s[y]}if(g<0||g>=r/i)throw new Error("Invalid indices: "+m+" does not index into "+n);for(var b=0;b<i;b++)l?f.values[g*i+b]+=h[d*i+b]:f.values[g*i+b]=0===e.rank?h[0]:h[d*i+b]}return f.toTensor().reshape(n)},t}();Bt.registerBackend("cpu",function(){return new Ml},1);var Ll="undefined"!=typeof requestAnimationFrame?requestAnimationFrame:"undefined"!=typeof setImmediate?setImmediate:function(t){return t()};function Fl(){return new Promise(function(t){return Ll(function(){return t()})})}var zl={float32:4,int32:4,uint16:2,uint8:1,bool:1};function Pl(t,e){for(var n={},r=0,i=function(e){var i=e.name,o=e.dtype,a=e.shape,s=v(a),u=void 0;if("quantization"in e){var l=e.quantization;if("uint8"!==l.dtype&&"uint16"!==l.dtype)throw new Error("Weight "+e.name+" has unknown quantization dtype "+l.dtype+". Supported quantization dtypes are: 'uint8' and 'uint16'.");var c=zl[l.dtype],p=t.slice(r,r+s*c),h="uint8"===l.dtype?new Uint8Array(p):new Uint16Array(p);if("float32"===o)u=Float32Array.from(h,function(t){return t*l.scale+l.min});else{if("int32"!==o)throw new Error("Unsupported dtype in weight '"+i+"': "+o);u=Int32Array.from(h,function(t){return Math.round(t*l.scale+l.min)})}r+=s*c}else{var f=zl[o];if(p=t.slice(r,r+s*f),"float32"===o)u=new Float32Array(p);else if("int32"===o)u=new Int32Array(p);else{if("bool"!==o)throw new Error("Unsupported dtype in weight '"+i+"': "+o);u=new Uint8Array(p)}r+=s*f}var d=void 0;if("float32"===o)d=Te(u,a,"float32");else if("int32"===o)d=Te(u,a,"int32");else{if("bool"!==o)throw new Error("Unsupported dtype in weight '"+i+"': "+o);d=Te(u,a,"bool")}n[i]=d},o=0,a=e;o<a.length;o++)i(a[o]);return n}var Bl="undefined"!=typeof Buffer&&("undefined"==typeof Blob||"undefined"==typeof atob||"undefined"==typeof btoa);function Ul(t){return Bl?Buffer.byteLength(t):new Blob([t]).size}function Wl(t){var e=0;t.forEach(function(t){e+=t.byteLength});var n=new Uint8Array(e),r=0;return t.forEach(function(t){n.set(new Uint8Array(t),r),r+=t.byteLength}),n.buffer}function Vl(t){for(t=t.trim();t.endsWith("/");)t=t.slice(0,t.length-1);var e=t.split("/");return e[e.length-1]}function jl(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:null==t.modelTopology?0:Ul(JSON.stringify(t.modelTopology)),weightSpecsBytes:null==t.weightSpecs?0:Ul(JSON.stringify(t.weightSpecs)),weightDataBytes:null==t.weightData?0:t.weightData.byteLength}}var ql=function(){function t(){this.saveRouters=[],this.loadRouters=[]}return t.getInstance=function(){return null==t.instance&&(t.instance=new t),t.instance},t.registerSaveRouter=function(e){t.getInstance().saveRouters.push(e)},t.registerLoadRouter=function(e){t.getInstance().loadRouters.push(e)},t.getSaveHandlers=function(e){return t.getHandlers(e,"save")},t.getLoadHandlers=function(e,n){return t.getHandlers(e,"load",n)},t.getHandlers=function(e,n,r){var i=[];return("load"===n?t.getInstance().loadRouters:t.getInstance().saveRouters).forEach(function(t){var n=t(e,r);null!==n&&i.push(n)}),i},t}(),Gl="://",Hl=function(){function t(){this.managers={}}return t.getInstance=function(){return null==t.instance&&(t.instance=new t),t.instance},t.registerManager=function(e,n){d(null!=e,function(){return"scheme must not be undefined or null."}),e.endsWith(Gl)&&(e=e.slice(0,e.indexOf(Gl))),d(e.length>0,function(){return"scheme must not be an empty string."});var r=t.getInstance();d(null==r.managers[e],function(){return"A model store manager is already registered for scheme '"+e+"'."}),r.managers[e]=n},t.getManager=function(t){var e=this.getInstance().managers[t];if(null==e)throw new Error("Cannot find model manager for scheme '"+t+"'");return e},t.getSchemes=function(){return Object.keys(this.getInstance().managers)},t}();function Kl(t){if(-1===t.indexOf(Gl))throw new Error("The url string provided does not contain a scheme. Supported schemes are: "+Hl.getSchemes().join(","));return{scheme:t.split(Gl)[0],path:t.split(Gl)[1]}}function $l(t,e,n){return void 0===n&&(n=!1),i(this,void 0,void 0,function(){var r,i,a,s,u,l,c,p,h;return o(this,function(o){switch(o.label){case 0:return d(t!==e,function(){return"Old path and new path are the same: '"+t+"'"}),d((r=ql.getLoadHandlers(t)).length>0,function(){return"Copying failed because no load handler is found for source URL "+t+"."}),d(r.length<2,function(){return"Copying failed because more than one ("+r.length+") load handlers for source URL "+t+"."}),i=r[0],d((a=ql.getSaveHandlers(e)).length>0,function(){return"Copying failed because no save handler is found for destination URL "+e+"."}),d(a.length<2,function(){return"Copying failed because more than one ("+r.length+") save handlers for destination URL "+e+"."}),s=a[0],u=Kl(t).scheme,l=Kl(t).path,c=u===Kl(t).scheme,[4,i.load()];case 1:return p=o.sent(),n&&c?[4,Hl.getManager(u).removeModel(l)]:[3,3];case 2:o.sent(),o.label=3;case 3:return[4,s.save(p)];case 4:return h=o.sent(),!n||c?[3,6]:[4,Hl.getManager(u).removeModel(l)];case 5:o.sent(),o.label=6;case 6:return[2,h.modelArtifactsInfo]}})})}var Xl="models_store",Yl="model_info_store";function Jl(){if(!Bt.get("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");var t=window,e=t.indexedDB||t.mozIndexedDB||t.webkitIndexedDB||t.msIndexedDB||t.shimIndexedDB;if(null==e)throw new Error("The current browser does not appear to support IndexedDB.");return e}function Zl(t){var e=t.result;e.createObjectStore(Xl,{keyPath:"modelPath"}),e.createObjectStore(Yl,{keyPath:"modelPath"})}var Ql=function(){function t(t){if(this.indexedDB=Jl(),null==t||!t)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=t}return t.prototype.save=function(t){return i(this,void 0,void 0,function(){return o(this,function(e){if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return[2,this.databaseAction(this.modelPath,t)]})})},t.prototype.load=function(){return i(this,void 0,void 0,function(){return o(this,function(t){return[2,this.databaseAction(this.modelPath)]})})},t.prototype.databaseAction=function(t,e){var n=this;return new Promise(function(t,r){var i=n.indexedDB.open("tensorflowjs",1);i.onupgradeneeded=function(){return Zl(i)},i.onsuccess=function(){var o=i.result;if(null==e){var a=o.transaction(Xl,"readonly"),s=a.objectStore(Xl).get(n.modelPath);s.onsuccess=function(){if(null==s.result)return o.close(),r(new Error("Cannot find model with path '"+n.modelPath+"' in IndexedDB."));t(s.result.modelArtifacts)},s.onerror=function(t){return o.close(),r(s.error)},a.oncomplete=function(){return o.close()}}else{var u,l=jl(e),c=o.transaction(Yl,"readwrite"),p=c.objectStore(Yl),h=p.put({modelPath:n.modelPath,modelArtifactsInfo:l});h.onsuccess=function(){var i=(u=o.transaction(Xl,"readwrite")).objectStore(Xl).put({modelPath:n.modelPath,modelArtifacts:e,modelArtifactsInfo:l});i.onsuccess=function(){return t({modelArtifactsInfo:l})},i.onerror=function(t){var e=(p=c.objectStore(Yl)).delete(n.modelPath);e.onsuccess=function(){return o.close(),r(i.error)},e.onerror=function(t){return o.close(),r(i.error)}}},h.onerror=function(t){return o.close(),r(h.error)},c.oncomplete=function(){null==u?o.close():u.oncomplete=function(){return o.close()}}}},i.onerror=function(t){return r(i.error)}})},t.URL_SCHEME="indexeddb://",t}(),tc=function(t){return Bt.get("IS_BROWSER")&&!Array.isArray(t)&&t.startsWith(Ql.URL_SCHEME)?function(t){return new Ql(t)}(t.slice(Ql.URL_SCHEME.length)):null};ql.registerSaveRouter(tc),ql.registerLoadRouter(tc);var ec=function(){function t(){this.indexedDB=Jl()}return t.prototype.listModels=function(){return i(this,void 0,void 0,function(){var t=this;return o(this,function(e){return[2,new Promise(function(e,n){var r=t.indexedDB.open("tensorflowjs",1);r.onupgradeneeded=function(){return Zl(r)},r.onsuccess=function(){var t=r.result,i=t.transaction(Yl,"readonly"),o=i.objectStore(Yl).getAll();o.onsuccess=function(){for(var t={},n=0,r=o.result;n<r.length;n++){var i=r[n];t[i.modelPath]=i.modelArtifactsInfo}e(t)},o.onerror=function(e){return t.close(),n(o.error)},i.oncomplete=function(){return t.close()}},r.onerror=function(t){return n(r.error)}})]})})},t.prototype.removeModel=function(t){return i(this,void 0,void 0,function(){var e=this;return o(this,function(n){return t=function(t){return t.startsWith(Ql.URL_SCHEME)?t.slice(Ql.URL_SCHEME.length):t}(t),[2,new Promise(function(n,r){var i=e.indexedDB.open("tensorflowjs",1);i.onupgradeneeded=function(){return Zl(i)},i.onsuccess=function(){var e,o=i.result,a=o.transaction(Yl,"readwrite"),s=a.objectStore(Yl),u=s.get(t);u.onsuccess=function(){if(null==u.result)return o.close(),r(new Error("Cannot find model with path '"+t+"' in IndexedDB."));var i=s.delete(t),a=function(){var i=(e=o.transaction(Xl,"readwrite")).objectStore(Xl).delete(t);i.onsuccess=function(){return n(u.result.modelArtifactsInfo)},i.onerror=function(t){return r(u.error)}};i.onsuccess=a,i.onerror=function(t){return a(),o.close(),r(u.error)}},u.onerror=function(t){return o.close(),r(u.error)},a.oncomplete=function(){null==e?o.close():e.oncomplete=function(){return o.close()}}},i.onerror=function(t){return r(i.error)}})]})})},t}();if(Bt.get("IS_BROWSER"))try{Hl.registerManager(Ql.URL_SCHEME,new ec)}catch(dt){}var nc="/",rc="tensorflowjs_models",ic="info",oc="model_topology",ac="weight_specs",sc="weight_data",uc="model_metadata";function lc(t){return{info:[rc,t,ic].join(nc),topology:[rc,t,oc].join(nc),weightSpecs:[rc,t,ac].join(nc),weightData:[rc,t,sc].join(nc),modelMetadata:[rc,t,uc].join(nc)}}function cc(t){var e=t.split(nc);if(e.length<3)throw new Error("Invalid key format: "+t);return e.slice(1,e.length-1).join(nc)}var pc=function(){function t(t){if(!Bt.get("IS_BROWSER")||void 0===window.localStorage)throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,null==t||!t)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=t,this.keys=lc(this.modelPath)}return t.prototype.save=function(t){return i(this,void 0,void 0,function(){var e,n,r,i;return o(this,function(o){if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");e=JSON.stringify(t.modelTopology),n=JSON.stringify(t.weightSpecs),r=jl(t);try{return this.LS.setItem(this.keys.info,JSON.stringify(r)),this.LS.setItem(this.keys.topology,e),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,function(t){return Bl?Buffer.from(t).toString("base64"):btoa(String.fromCharCode.apply(null,new Uint8Array(t)))}(t.weightData)),this.LS.setItem(this.keys.modelMetadata,JSON.stringify({format:t.format,generatedBy:t.generatedBy,convertedBy:t.convertedBy})),[2,{modelArtifactsInfo:r}]}catch(t){for(i in this.keys)this.LS.removeItem(this.keys[i]);throw new Error("Failed to save model '"+this.modelPath+"' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes="+r.modelTopologyBytes+", weightSpecsBytes="+r.weightSpecsBytes+", weightDataBytes="+r.weightDataBytes+".")}return[2]})})},t.prototype.load=function(){return i(this,void 0,void 0,function(){var t,e,n,r,i,a,s;return o(this,function(o){if(null==(t=JSON.parse(this.LS.getItem(this.keys.info))))throw new Error("In local storage, there is no model with name '"+this.modelPath+"'");if("JSON"!==t.modelTopologyType)throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");if(e={},null==(n=JSON.parse(this.LS.getItem(this.keys.topology))))throw new Error("In local storage, the topology of model '"+this.modelPath+"' is missing.");if(e.modelTopology=n,null==(r=JSON.parse(this.LS.getItem(this.keys.weightSpecs))))throw new Error("In local storage, the weight specs of model '"+this.modelPath+"' are missing.");if(e.weightSpecs=r,null!=(i=this.LS.getItem(this.keys.modelMetadata))&&(a=JSON.parse(i),e.format=a.format,e.generatedBy=a.generatedBy,e.convertedBy=a.convertedBy),null==(s=this.LS.getItem(this.keys.weightData)))throw new Error("In local storage, the binary weight values of model '"+this.modelPath+"' are missing.");return e.weightData=function(t){if(Bl){var e=Buffer.from(t,"base64");return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}for(var n=atob(t),r=new Uint8Array(n.length),i=0;i<n.length;++i)r.set([n.charCodeAt(i)],i);return r.buffer}(s),[2,e]})})},t.URL_SCHEME="localstorage://",t}(),hc=function(t){return Bt.get("IS_BROWSER")&&!Array.isArray(t)&&t.startsWith(pc.URL_SCHEME)?function(t){return new pc(t)}(t.slice(pc.URL_SCHEME.length)):null};ql.registerSaveRouter(hc),ql.registerLoadRouter(hc);var fc=function(){function t(){d(Bt.get("IS_BROWSER"),function(){return"Current environment is not a web browser"}),d(void 0!==window.localStorage,function(){return"Current browser does not appear to support localStorage"}),this.LS=window.localStorage}return t.prototype.listModels=function(){return i(this,void 0,void 0,function(){var t,e,n,r,i,a;return o(this,function(o){for(t={},e=rc+nc,n=nc+ic,r=0;r<this.LS.length;++r)(i=this.LS.key(r)).startsWith(e)&&i.endsWith(n)&&(a=cc(i),t[a]=JSON.parse(this.LS.getItem(i)));return[2,t]})})},t.prototype.removeModel=function(t){return i(this,void 0,void 0,function(){var e,n;return o(this,function(r){if(t=function(t){return t.startsWith(pc.URL_SCHEME)?t.slice(pc.URL_SCHEME.length):t}(t),e=lc(t),null==this.LS.getItem(e.info))throw new Error("Cannot find model at path '"+t+"'");return n=JSON.parse(this.LS.getItem(e.info)),this.LS.removeItem(e.info),this.LS.removeItem(e.topology),this.LS.removeItem(e.weightSpecs),this.LS.removeItem(e.weightData),[2,n]})})},t}();if(Bt.get("IS_BROWSER"))try{Hl.registerManager(pc.URL_SCHEME,new fc)}catch(dt){}var dc="model",mc=".json",gc=".weights.bin",yc=function(){function t(e){if(!Bt.get("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(t.URL_SCHEME)&&(e=e.slice(t.URL_SCHEME.length)),null!=e&&0!==e.length||(e=dc),this.modelTopologyFileName=e+mc,this.weightDataFileName=e+gc}return t.prototype.save=function(t){return i(this,void 0,void 0,function(){var e,n,r,i,a,s;return o(this,function(o){if(e=window.URL.createObjectURL(new Blob([t.weightData],{type:"application/octet-stream"})),t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");return n=[{paths:["./"+this.weightDataFileName],weights:t.weightSpecs}],r={modelTopology:t.modelTopology,format:t.format,generatedBy:t.generatedBy,convertedBy:t.convertedBy,weightsManifest:n},i=window.URL.createObjectURL(new Blob([JSON.stringify(r)],{type:"application/json"})),(a=null==this.jsonAnchor?document.createElement("a"):this.jsonAnchor).download=this.modelTopologyFileName,a.href=i,a.click(),null!=t.weightData&&((s=null==this.weightDataAnchor?document.createElement("a"):this.weightDataAnchor).download=this.weightDataFileName,s.href=e,s.click()),[2,{modelArtifactsInfo:jl(t)}]})})},t.URL_SCHEME="downloads://",t}(),vc=function(){function t(t){if(null==t||t.length<1)throw new Error("When calling browserFiles, at least 1 file is required, but received "+t);this.files=t}return t.prototype.load=function(){return i(this,void 0,void 0,function(){var t,e,n=this;return o(this,function(r){return t=this.files[0],e=this.files.slice(1),[2,new Promise(function(r,i){var o=new FileReader;o.onload=function(o){var a=JSON.parse(o.target.result),s=a.modelTopology;if(null!=s){0===e.length&&r({modelTopology:s});var u=a.weightsManifest;if(null!=u){var l;try{l=n.checkManifestAndWeightFiles(u,e)}catch(t){return void i(t)}var c=[],p=[],h=[];u.forEach(function(t){t.paths.forEach(function(t){p.push(t),h.push(null)}),c.push.apply(c,t.weights)}),u.forEach(function(t){t.paths.forEach(function(t){var e=new FileReader;e.onload=function(e){var n=e.target.result,i=p.indexOf(t);h[i]=n,-1===h.indexOf(null)&&r({modelTopology:s,weightSpecs:c,weightData:Wl(h)})},e.onerror=function(e){return i("Failed to weights data from file of path '"+t+"'.")},e.readAsArrayBuffer(l[t])})})}else i(new Error("weightManifest field is missing from file "+t.name))}else i(new Error("modelTopology field is missing from file "+t.name))},o.onerror=function(e){return i("Failed to read model topology and weights manifest JSON from file '"+t.name+"'. BrowserFiles supports loading Keras-style tf.Model artifacts only.")},o.readAsText(t)})]})})},t.prototype.checkManifestAndWeightFiles=function(t,e){for(var n=[],r=e.map(function(t){return Vl(t.name)}),i={},o=0,a=t;o<a.length;o++)a[o].paths.forEach(function(t){var o=Vl(t);if(-1!==n.indexOf(o))throw new Error("Duplicate file basename found in weights manifest: '"+o+"'");if(n.push(o),-1===r.indexOf(o))throw new Error("Weight file with basename '"+o+"' is not provided.");i[t]=e[r.indexOf(o)]});if(n.length!==e.length)throw new Error("Mismatch in the number of files in weights manifest ("+n.length+") and the number of weight files provided ("+e.length+").");return i},t}();function bc(t,e,n,r){!function(t){d(null!=t&&Array.isArray(t)&&t.length>0,function(){return"promises must be a none empty array"})}(t),function(t,e){d(t>=0&&t<=1,function(){return"Progress fraction must be in range [0, 1], but got startFraction "+t}),d(e>=0&&e<=1,function(){return"Progress fraction must be in range [0, 1], but got endFraction "+e}),d(e>=t,function(){return"startFraction must be no more than endFraction, but got startFraction "+t+" and endFraction "+e})}(n=null==n?0:n,r=null==r?1:r);var i=0;return Promise.all(t.map(function(o){return o.then(function(o){var a=n+ ++i/t.length*(r-n);return e(a),o}),o}))}function wc(t,e){return i(this,void 0,void 0,function(){var n,r,i,a,s,u,l,c,p;return o(this,function(o){switch(o.label){case 0:return null==e&&(e={}),n=null==e.fetchFunc?fetch:e.fetchFunc,r=t.map(function(t){return n(t,e.requestInit)}),i=0,a=.5,null!=e.onProgress?[3,2]:[4,Promise.all(r)];case 1:return s=o.sent(),[3,4];case 2:return[4,bc(r,e.onProgress,i,a)];case 3:s=o.sent(),o.label=4;case 4:return u=s.map(function(t){return t.arrayBuffer()}),l=.5,c=1,null!=e.onProgress?[3,6]:[4,Promise.all(u)];case 5:return p=o.sent(),[3,8];case 6:return[4,bc(u,e.onProgress,l,c)];case 7:p=o.sent(),o.label=8;case 8:return[2,p]}})})}function xc(t){var e=this;return function(n,r,a){return void 0===r&&(r=""),i(e,void 0,void 0,function(){var e,i,s,u,l,c,p,h,f,d;return o(this,function(o){switch(o.label){case 0:if(e=n.map(function(){return!1}),i={},s=null!=a?a.map(function(){return!1}):[],u=[],n.forEach(function(t,n){var r=0;t.weights.forEach(function(t){var o="quantization"in t?t.quantization.dtype:t.dtype,l=zl[o]*v(t.shape),c=function(){e[n]=!0,null==i[n]&&(i[n]=[]),i[n].push({manifestEntry:t,groupOffset:r,sizeBytes:l})};null!=a?a.forEach(function(e,n){e===t.name&&(c(),s[n]=!0)}):c(),u.push(t.name),r+=l})}),!s.every(function(t){return t}))throw l=a.filter(function(t,e){return!s[e]}),new Error("Could not find weights in manifest with names: "+l.join(", ")+". \nManifest JSON has weights with names: "+u.join(", ")+".");return c=e.reduce(function(t,e,n){return e&&t.push(n),t},[]),p=[],c.forEach(function(t){n[t].paths.forEach(function(t){var e=r+(r.endsWith("/")?"":"/")+t;p.push(e)})}),[4,t(p)];case 1:return h=o.sent(),f={},d=0,c.forEach(function(t){for(var e=n[t].paths.length,r=0,o=0;o<e;o++)r+=h[d+o].byteLength;for(var a=new ArrayBuffer(r),s=new Uint8Array(a),u=0,l=0;l<e;l++){var c=new Uint8Array(h[d+l]);s.set(c,u),u+=c.byteLength}i[t].forEach(function(t){var e=Pl(a.slice(t.groupOffset,t.groupOffset+t.sizeBytes),[t.manifestEntry]);for(var n in e)f[n]=e[n]}),d+=e}),[2,f]}})})}}ql.registerSaveRouter(function(t){return Bt.get("IS_BROWSER")&&!Array.isArray(t)&&t.startsWith(yc.URL_SCHEME)?function(t){return void 0===t&&(t="model"),new yc(t)}(t.slice(yc.URL_SCHEME.length)):null});var Nc=function(){function t(t,e){if(this.DEFAULT_METHOD="POST",null==e&&(e={}),this.weightPathPrefix=e.weightPathPrefix,this.onProgress=e.onProgress,null==e.fetchFunc){if("undefined"==typeof fetch)throw new Error("browserHTTPRequest is not supported outside the web browser without a fetch polyfill.");e.fetchFunc=fetch.bind("undefined"==typeof window?null:window)}else d("function"==typeof e.fetchFunc,function(){return"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"});if(this.fetchFunc=function(t,n){return e.fetchFunc(t,n).catch(function(e){throw new Error("Request for "+t+" failed due to error: "+e)})},d(null!=t&&t.length>0,function(){return"URL path for browserHTTPRequest must not be null, undefined or empty."}),Array.isArray(t)&&d(2===t.length,function(){return"URL paths for browserHTTPRequest must have a length of 2, (actual length is "+t.length+")."}),this.path=t,null!=e.requestInit&&null!=e.requestInit.body)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=e.requestInit||{}}return t.prototype.save=function(t){return i(this,void 0,void 0,function(){var e,n,r,i;return o(this,function(o){switch(o.label){case 0:if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");return(e=Object.assign({method:this.DEFAULT_METHOD},this.requestInit)).body=new FormData,n=[{paths:["./model.weights.bin"],weights:t.weightSpecs}],r={modelTopology:t.modelTopology,format:t.format,generatedBy:t.generatedBy,convertedBy:t.convertedBy,weightsManifest:n},e.body.append("model.json",new Blob([JSON.stringify(r)],{type:"application/json"}),"model.json"),null!=t.weightData&&e.body.append("model.weights.bin",new Blob([t.weightData],{type:"application/octet-stream"}),"model.weights.bin"),[4,this.getFetchFunc()(this.path,e)];case 1:if((i=o.sent()).ok)return[2,{modelArtifactsInfo:jl(t),responses:[i]}];throw new Error("BrowserHTTPRequest.save() failed due to HTTP response status "+i.status+".")}})})},t.prototype.load=function(){return i(this,void 0,void 0,function(){var t,e,n,r,i,a,s,u;return o(this,function(o){switch(o.label){case 0:return[4,this.getFetchFunc()(this.path,this.requestInit)];case 1:if(!(t=o.sent()).ok)throw new Error("Request to "+this.path+" failed with status code "+t.status+". Please verify this URL points to the model JSON of the model to load.");o.label=2;case 2:return o.trys.push([2,4,,5]),[4,t.json()];case 3:return e=o.sent(),[3,5];case 4:throw o.sent(),n="Failed to parse model JSON of response from "+this.path+".",this.path.endsWith(".pb")?n+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":n+=" Please make sure the server is serving valid JSON for this request.",new Error(n);case 5:if(r=e.modelTopology,i=e.weightsManifest,null==r&&null==i)throw new Error("The JSON from HTTP path "+this.path+" contains neither model topology or manifest for weights.");return null==i?[3,7]:[4,this.loadWeights(i)];case 6:u=o.sent(),a=u[0],s=u[1],o.label=7;case 7:return[2,{modelTopology:r,weightSpecs:a,weightData:s}]}})})},t.prototype.loadWeights=function(t){return i(this,void 0,void 0,function(){var e,n,r,i,a,s,u,l,c,p,h;return o(this,function(o){switch(o.label){case 0:for(e=Array.isArray(this.path)?this.path[1]:this.path,n=function(t){var e=t.lastIndexOf("/"),n=t.lastIndexOf("?");return[t.substring(0,e)+"/",n>e?t.substring(n):""]}(e),r=n[0],i=n[1],a=this.weightPathPrefix||r,s=[],u=0,l=t;u<l.length;u++)c=l[u],s.push.apply(s,c.weights);return p=[],t.forEach(function(t){t.paths.forEach(function(t){p.push(a+t+i)})}),[4,wc(p,{requestInit:this.requestInit,fetchFunc:this.getFetchFunc(),onProgress:this.onProgress})];case 1:return h=o.sent(),[2,[s,Wl(h)]]}})})},t.prototype.getFetchFunc=function(){return this.fetchFunc},t.URL_SCHEME_REGEX=/^https?:\/\//,t}();function Sc(t){return null!=t.match(Nc.URL_SCHEME_REGEX)}var Cc=function(t,e){return"undefined"==typeof fetch?null:(Array.isArray(t)?t.every(function(t){return Sc(t)}):Sc(t))?Ec(t,{onProgress:e}):null};function Ec(t,e){return new Nc(t,e)}ql.registerSaveRouter(Cc),ql.registerLoadRouter(Cc);var Ic=function(){function t(t,e,n){this.modelTopology=t,this.weightSpecs=e,this.weightData=n}return t.prototype.load=function(){return i(this,void 0,void 0,function(){var t;return o(this,function(e){return t={},null!=this.modelTopology&&(t=r({modelTopology:this.modelTopology},t)),null!=this.weightSpecs&&this.weightSpecs.length>0&&(t=r({weightSpecs:this.weightSpecs},t)),null!=this.weightData&&this.weightData.byteLength>0&&(t=r({weightData:this.weightData},t)),[2,t]})})},t}(),kc=function(){function t(t){this.saveHandler=t}return t.prototype.save=function(t){return i(this,void 0,void 0,function(){return o(this,function(e){return[2,this.saveHandler(t)]})})},t}();var Ac=Object.freeze({browserFiles:function(t){return new vc(t)},browserHTTPRequest:Ec,concatenateArrayBuffers:Wl,decodeWeights:Pl,encodeWeights:function(t){return i(this,void 0,void 0,function(){var e,n,r,i;return o(this,function(o){switch(o.label){case 0:for(r in e=[],n=[],t){if("float32"!==(i=t[r]).dtype&&"int32"!==i.dtype&&"bool"!==i.dtype)throw new Error("Unsupported dtype in weight '"+r+"': "+i.dtype);e.push({name:r,shape:i.shape,dtype:i.dtype}),n.push(i.data())}return[4,Promise.all(n)];case 1:return[2,{data:function(t){if(null===t)throw new Error("Invalid input value: "+JSON.stringify(t));var e=0,n=[];t.forEach(function(t){if(e+=t.byteLength,n.push(t.byteLength===t.buffer.byteLength?t:new t.constructor(t)),!(t instanceof Float32Array||t instanceof Int32Array||t instanceof Uint8Array))throw new Error("Unsupported TypedArray subtype: "+t.constructor.name)});var r=new Uint8Array(e),i=0;return n.forEach(function(t){r.set(new Uint8Array(t.buffer),i),i+=t.byteLength}),r.buffer}(o.sent()),specs:e}]}})})},fromMemory:function(t,e,n){return new Ic(t,e,n)},getLoadHandlers:function(t,e){return ql.getLoadHandlers(t)},getModelArtifactsInfoForJSON:jl,getSaveHandlers:function(t){return ql.getSaveHandlers(t)},isHTTPScheme:Sc,loadWeights:function(t,e,n,r){return void 0===e&&(e=""),i(this,void 0,void 0,function(){return o(this,function(i){return[2,xc(function(t){return wc(t,{requestInit:r})})(t,e,n)]})})},registerLoadRouter:function(t){return ql.registerLoadRouter(t)},registerSaveRouter:function(t){return ql.registerSaveRouter(t)},weightsLoaderFactory:xc,withSaveHandler:function(t){return new kc(t)},copyModel:function(t,e){return i(this,void 0,void 0,function(){return o(this,function(n){switch(n.label){case 0:return[4,$l(t,e,!1)];case 1:return[2,n.sent()]}})})},listModels:function(){return i(this,void 0,void 0,function(){var t,e,n,r,i,a,s;return o(this,function(o){switch(o.label){case 0:t=Hl.getSchemes(),e={},n=0,r=t,o.label=1;case 1:return n<r.length?(i=r[n],[4,Hl.getManager(i).listModels()]):[3,4];case 2:for(s in a=o.sent())e[i+Gl+s]=a[s];o.label=3;case 3:return n++,[3,1];case 4:return[2,e]}})})},moveModel:function(t,e){return i(this,void 0,void 0,function(){return o(this,function(n){switch(n.label){case 0:return[4,$l(t,e,!0)];case 1:return[2,n.sent()]}})})},removeModel:function(t){return i(this,void 0,void 0,function(){var e;return o(this,function(n){switch(n.label){case 0:return e=Kl(t),[4,Hl.getManager(e.scheme).removeModel(e.path)];case 1:return[2,n.sent()]}})})}});var Tc=Se({confusionMatrix_:function(t,e,n){var r=xe(t,"labels","confusionMatrix"),i=xe(e,"predictions","confusionMatrix");d(null==n||n>0&&Number.isInteger(n),function(){return"If provided, numClasses must be a positive integer, but got "+n}),d(1===r.rank,function(){return"Expected the rank of labels to be 1, but got "+r.rank}),d(1===i.rank,function(){return"Expected the rank of predictions to be 1, but got "+i.rank}),d(r.shape[0]===i.shape[0],function(){return"Mismatch in the number of examples: "+r.shape[0]+" vs. "+i.shape[0]+". Labels and predictions should have the same number of elements."}),d(n>0&&Number.isInteger(n),function(){return"numClasses is required to be a positive integer, but got "+n});var o=Ko(r.asType("int32"),n),a=Ko(i.asType("int32"),n);return o.transpose().matMul(a).asType("int32")}}),Rc=Object.freeze({confusionMatrix:Tc});var Dc=Se({fromPixels_:function(t,e){if(void 0===e&&(e=3),e>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");return Bt.engine.fromPixels(t,e)}}),Oc=Object.freeze({toPixels:function(t,e){return i(this,void 0,void 0,function(){var n,r,i,a,s,u,l,c,p,h,f,d,m,g,y,v,b,w,x,N;return o(this,function(o){switch(o.label){case 0:if(n=xe(t,"img","toPixels"),t instanceof ut||(n=n.toInt()),2!==n.rank&&3!==n.rank)throw new Error("toPixels only supports rank 2 or 3 tensors, got rank "+n.rank+".");if(r=n.shape.slice(0,2),i=r[0],a=r[1],(s=2===n.rank?1:n.shape[2])>4||2===s)throw new Error("toPixels only supports depth of size 1, 3 or 4 but got "+s);return u=n.min(),l=n.max(),[4,u.data()];case 1:return c=o.sent()[0],[4,l.data()];case 2:if(p=o.sent()[0],u.dispose(),l.dispose(),"float32"===n.dtype){if(c<0||p>1)throw new Error("Tensor values for a float32 Tensor must be in the range [0 - 1] but got range ["+c+" - "+p+"].")}else{if("int32"!==n.dtype)throw new Error("Unsupported type for toPixels: "+n.dtype+". Please use float32 or int32 tensors.");if(c<0||p>255)throw new Error("Tensor values for a int32 Tensor must be in the range [0 - 255] but got range ["+c+" - "+p+"].")}return[4,n.data()];case 3:for(h=o.sent(),f="float32"===n.dtype?255:1,d=new Uint8ClampedArray(a*i*4),m=0;m<i*a;++m)g=void 0,y=void 0,v=void 0,b=void 0,1===s?(g=h[m]*f,y=h[m]*f,v=h[m]*f,b=255):3===s?(g=h[3*m]*f,y=h[3*m+1]*f,v=h[3*m+2]*f,b=255):4===s&&(g=h[4*m]*f,y=h[4*m+1]*f,v=h[4*m+2]*f,b=h[4*m+3]*f),d[0+(w=4*m)]=Math.round(g),d[w+1]=Math.round(y),d[w+2]=Math.round(v),d[w+3]=Math.round(b);return null!=e&&(e.width=a,e.height=i,x=e.getContext("2d"),N=new ImageData(d,a,i),x.putImageData(N,0,0)),n!==t&&n.dispose(),[2,d]}})})},fromPixels:Dc}),_c=function(){function t(){}return t.prototype.getClassName=function(){return this.constructor.className},t.fromConfig=function(t,e){return new t(e)},t}(),Mc=function(){function t(){this.classNameMap={}}return t.getMap=function(){return null==t.instance&&(t.instance=new t),t.instance},t.register=function(e){t.getMap().classNameMap[e.className]=[e,e.fromConfig]},t}();function Lc(t){d(null!=t.className,function(){return"Class being registered does not have the static className property defined."}),d("string"==typeof t.className,function(){return"className is required to be a string, but got type "+typeof t.className}),d(t.className.length>0,function(){return"Class being registered has an empty-string as its className, which is disallowed."}),Mc.register(t)}var Fc=Object.freeze({Serializable:_c,SerializationMap:Mc,registerClass:Lc});function zc(t,e,n){return null==n&&(n=Bt.get("TEST_EPSILON")),Pc(t,"number"==typeof e||"boolean"==typeof e?[e]:e,function(t,e){return Bc(t,Number(e),n)})}function Pc(t,e,n){if(t instanceof ut||e instanceof ut){if(t instanceof ut&&e instanceof ut){if(t.dtype!==e.dtype)throw new Error("Arrays are of different type actual: "+t.dtype+" vs expected: "+e.dtype+".");if(!b(t.shape,e.shape))throw new Error("Arrays are of different shape actual: "+t.shape+" vs expected: "+e.shape+".")}}else{var r=t.constructor.name,i=e.constructor.name;if(r!==i)throw new Error("Arrays are of different type actual: "+r+" vs expected: "+i)}var o,a;if(o=t instanceof ut?t.dataSync():t,a=e instanceof ut?e.dataSync():e,o.length!==a.length)throw new Error("Arrays have different lengths actual: "+o.length+" vs expected: "+a.length+".\nActual:   "+o+".\nExpected: "+a+".");for(var s=0;s<a.length;++s){var u=o[s],l=a[s];if(!n(u,l))throw new Error("Arrays differ: actual["+s+"] = "+u+", expected["+s+"] = "+l+".\nActual:   "+o+".\nExpected: "+a+".")}}function Bc(t,e,n){return!(!isNaN(t)||!isNaN(e))||!(isNaN(t)||isNaN(e)||Math.abs(t-e)>n)}var Uc=Object.freeze({WEBGL_ENVS:{HAS_WEBGL:!0},PACKED_ENVS:{WEBGL_PACK:!0},NODE_ENVS:{IS_NODE:!0},CHROME_ENVS:{IS_CHROME:!0},BROWSER_ENVS:{IS_BROWSER:!0},CPU_ENVS:{HAS_WEBGL:!1},ALL_ENVS:{},expectArraysClose:zc,expectPromiseToFail:function(t,e){t().then(function(){return e.fail()},function(){return e()})},expectArraysEqual:function(t,e){var n="string"==typeof e||"number"==typeof e||"boolean"==typeof e?[e]:e;return t instanceof ut&&"string"===t.dtype||e instanceof ut&&"string"===e.dtype||Array.isArray(t)&&F(t[0])||Array.isArray(e)&&F(e[0])?Pc(t,n,function(t,e){return t==e}):zc(t,e,0)},expectNumbersClose:function(t,e,n){if(null==n&&(n=Bt.get("TEST_EPSILON")),!Bc(t,e,n))throw new Error("Numbers differ: actual === "+t+", expected === "+e)},expectValuesInRange:function(t,e,n){var r;r=t instanceof ut?t.dataSync():t;for(var i=0;i<r.length;i++)if(r[i]<e||r[i]>n)throw new Error("Value out of range:"+r[i]+" low: "+e+", high: "+n)},expectArrayBuffersEqual:function(t,e){expect(new Float32Array(t)).toEqual(new Float32Array(e))}}),Wc=Object.freeze({gpgpu_util:Ni,webgl_util:ti,MathBackendWebGL:pa,GPGPUContext:Si}),Vc=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.minimize=function(t,e,n){void 0===e&&(e=!1);var r=this.computeGradients(t,n),i=r.value,o=r.grads;return this.applyGradients(o),Object.keys(o).forEach(function(t){return o[t].dispose()}),e?i:(i.dispose(),null)},e.prototype.computeGradients=function(t,e){return Wt(t,e)},e.prototype.dispose=function(){},e}(_c);Object.defineProperty(Vc,Symbol.hasInstance,{value:function(t){return null!=t.minimize&&null!=t.computeGradients&&null!=t.applyGradients}});var jc=function(t){function e(e,n,r){void 0===r&&(r=null);var i=t.call(this)||this;return i.learningRate=e,i.rho=n,i.epsilon=r,i.accumulatedGrads={},i.accumulatedUpdates={},i.c=Gt(Re(-e)),i.rhoScalar=Gt(Re(n)),i.oneMinusRho=Gt(Re(1-n)),null===r&&(r=Bt.get("EPSILON")),i.epsilonScalar=Gt(Re(r)),i}return n(e,t),e.prototype.applyGradients=function(t){var e=this,n=function(n){var i=Bt.engine.registeredVariables[n];null==r.accumulatedGrads[n]&&qt(function(){e.accumulatedGrads[n]=je(i).variable(!1)}),null==r.accumulatedUpdates[n]&&qt(function(){e.accumulatedUpdates[n]=je(i).variable(!1)});var o=t[n],a=r.accumulatedGrads[n],s=r.accumulatedUpdates[n];qt(function(){var t=e.rhoScalar.mul(a).add(e.oneMinusRho.mul(o.square())),r=s.add(e.epsilonScalar).sqrt().div(a.add(e.epsilonScalar).sqrt()).mul(o),u=e.rhoScalar.mul(s).add(e.oneMinusRho.mul(r.square()));e.accumulatedGrads[n].assign(t),e.accumulatedUpdates[n].assign(u);var l=e.c.mul(r).add(i);i.assign(l)})},r=this;for(var i in t)n(i)},e.prototype.dispose=function(){var t=this;this.c.dispose(),this.epsilonScalar.dispose(),this.rhoScalar.dispose(),this.oneMinusRho.dispose(),null!=this.accumulatedUpdates&&(Object.keys(this.accumulatedUpdates).forEach(function(e){return t.accumulatedUpdates[e].dispose()}),Object.keys(this.accumulatedGrads).forEach(function(e){return t.accumulatedGrads[e].dispose()}))},e.prototype.getConfig=function(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}},e.fromConfig=function(t,e){return new t(e.learningRate,e.rho,e.epsilon)},e.className="AdadeltaOptimizer",e}(Vc);Lc(jc);var qc=function(t){function e(e,n){void 0===n&&(n=.1);var r=t.call(this)||this;return r.learningRate=e,r.initialAccumulatorValue=n,r.accumulatedGrads={},r.c=Gt(Re(-e)),r.epsilon=Gt(Re(Bt.get("EPSILON"))),r}return n(e,t),e.prototype.applyGradients=function(t){var e=this,n=function(n){var i=Bt.engine.registeredVariables[n];null==r.accumulatedGrads[n]&&qt(function(){e.accumulatedGrads[n]=Be(i.shape,e.initialAccumulatorValue).variable(!1)});var o=t[n],a=r.accumulatedGrads[n];qt(function(){var t=a.add(o.square());e.accumulatedGrads[n].assign(t);var r=e.c.mul(o.div(t.add(e.epsilon).sqrt())).add(i);i.assign(r)})},r=this;for(var i in t)n(i)},e.prototype.dispose=function(){var t=this;this.epsilon.dispose(),this.c.dispose(),null!=this.accumulatedGrads&&Object.keys(this.accumulatedGrads).forEach(function(e){return t.accumulatedGrads[e].dispose()})},e.prototype.getConfig=function(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}},e.fromConfig=function(t,e){return new t(e.learningRate,e.initialAccumulatorValue)},e.className="AdagradOptimizer",e}(Vc);Lc(qc);var Gc=function(t){function e(e,n,r,i){void 0===i&&(i=null);var o=t.call(this)||this;return o.learningRate=e,o.beta1=n,o.beta2=r,o.epsilon=i,o.accumulatedFirstMoment={},o.accumulatedSecondMoment={},o.c=Gt(Re(-e)),o.beta1Scalar=Gt(Re(n)),o.beta2Scalar=Gt(Re(r)),qt(function(){o.accBeta1=Re(n).variable(),o.accBeta2=Re(r).variable()}),o.oneMinusBeta1=Gt(Re(1-n)),o.oneMinusBeta2=Gt(Re(1-r)),o.one=Gt(Re(1)),null===i&&(i=Bt.get("EPSILON")),o.epsScalar=Gt(Re(i)),o}return n(e,t),e.prototype.applyGradients=function(t){var e=this;qt(function(){var n=e.one.sub(e.accBeta1),r=e.one.sub(e.accBeta2);for(var i in t){var o=Bt.engine.registeredVariables[i];if(null==e.accumulatedFirstMoment[i]){var a=!1;e.accumulatedFirstMoment[i]=je(o).variable(a)}null==e.accumulatedSecondMoment[i]&&(a=!1,e.accumulatedSecondMoment[i]=je(o).variable(a));var s=t[i],u=e.accumulatedFirstMoment[i],l=e.accumulatedSecondMoment[i],c=e.beta1Scalar.mul(u).add(e.oneMinusBeta1.mul(s)),p=e.beta2Scalar.mul(l).add(e.oneMinusBeta2.mul(s.square())),h=c.div(n),f=p.div(r);e.accumulatedFirstMoment[i].assign(c),e.accumulatedSecondMoment[i].assign(p);var d=e.c.mul(h.div(e.epsScalar.add(f.sqrt()))).add(o);o.assign(d)}e.accBeta1.assign(e.accBeta1.mul(e.beta1Scalar)),e.accBeta2.assign(e.accBeta2.mul(e.beta2Scalar))})},e.prototype.dispose=function(){var t=this;this.c.dispose(),this.epsScalar.dispose(),this.beta1Scalar.dispose(),this.beta2Scalar.dispose(),this.accBeta1.dispose(),this.accBeta2.dispose(),this.oneMinusBeta1.dispose(),this.oneMinusBeta2.dispose(),this.one.dispose(),null!=this.accumulatedFirstMoment&&Object.keys(this.accumulatedFirstMoment).forEach(function(e){return t.accumulatedFirstMoment[e].dispose()}),null!=this.accumulatedSecondMoment&&Object.keys(this.accumulatedSecondMoment).forEach(function(e){return t.accumulatedSecondMoment[e].dispose()})},e.prototype.getConfig=function(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}},e.fromConfig=function(t,e){return new t(e.learningRate,e.beta1,e.beta2,e.epsilon)},e.className="AdamOptimizer",e}(Vc);Lc(Gc);var Hc=function(t){function e(e,n,r,i,o){void 0===i&&(i=null),void 0===o&&(o=0);var a=t.call(this)||this;return a.learningRate=e,a.beta1=n,a.beta2=r,a.epsilon=i,a.decay=o,a.accumulatedFirstMoment={},a.accumulatedWeightedInfNorm={},a.c=Gt(Re(-e)),a.beta1Scalar=Gt(Re(n)),a.beta2Scalar=Gt(Re(r)),a.decayScalar=Gt(Re(o)),qt(function(){a.iteration=Re(0).variable(),a.accBeta1=Re(n).variable()}),a.oneMinusBeta1=Gt(Re(1-n)),a.one=Gt(Re(1)),null===i&&(i=Bt.get("EPSILON")),a.epsScalar=Gt(Re(i)),a}return n(e,t),e.prototype.applyGradients=function(t){var e=this;qt(function(){var n=e.one.sub(e.accBeta1),r=e.c.div(e.one.add(e.decayScalar.mul(e.iteration)));for(var i in t){var o=Bt.engine.registeredVariables[i];if(null==e.accumulatedFirstMoment[i]){var a=!1;e.accumulatedFirstMoment[i]=je(o).variable(a)}null==e.accumulatedWeightedInfNorm[i]&&(a=!1,e.accumulatedWeightedInfNorm[i]=je(o).variable(a));var s=t[i],u=e.accumulatedFirstMoment[i],l=e.accumulatedWeightedInfNorm[i],c=e.beta1Scalar.mul(u).add(e.oneMinusBeta1.mul(s)),p=e.beta2Scalar.mul(l),h=s.abs(),f=p.maximum(h);e.accumulatedFirstMoment[i].assign(c),e.accumulatedWeightedInfNorm[i].assign(f);var d=r.div(n).mul(c.div(e.epsScalar.add(f))).add(o);o.assign(d)}e.iteration.assign(e.iteration.add(e.one)),e.accBeta1.assign(e.accBeta1.mul(e.beta1Scalar))})},e.prototype.dispose=function(){var t=this;this.c.dispose(),this.epsScalar.dispose(),this.accBeta1.dispose(),this.beta1Scalar.dispose(),this.beta2Scalar.dispose(),this.oneMinusBeta1.dispose(),this.decayScalar.dispose(),this.iteration.dispose(),this.one.dispose(),null!=this.accumulatedFirstMoment&&Object.keys(this.accumulatedFirstMoment).forEach(function(e){return t.accumulatedFirstMoment[e].dispose()}),null!=this.accumulatedWeightedInfNorm&&Object.keys(this.accumulatedWeightedInfNorm).forEach(function(e){return t.accumulatedWeightedInfNorm[e].dispose()})},e.prototype.getConfig=function(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}},e.fromConfig=function(t,e){return new t(e.learningRate,e.beta1,e.beta2,e.epsilon,e.decay)},e.className="AdamaxOptimizer",e}(Vc);Lc(Hc);var Kc=function(t){function e(e){var n=t.call(this)||this;return n.learningRate=e,n.setLearningRate(e),n}return n(e,t),e.prototype.applyGradients=function(t){var e=this;Object.keys(t).forEach(function(n){var r=t[n],i=Bt.engine.registeredVariables[n];qt(function(){var t=e.c.mul(r).add(i);i.assign(t)})})},e.prototype.setLearningRate=function(t){this.learningRate=t,null!=this.c&&this.c.dispose(),this.c=Gt(Re(-t))},e.prototype.dispose=function(){this.c.dispose()},e.prototype.getConfig=function(){return{learningRate:this.learningRate}},e.fromConfig=function(t,e){return new t(e.learningRate)},e.className="SGDOptimizer",e}(Vc);Lc(Kc);var $c=function(t){function e(e,n,r){void 0===r&&(r=!1);var i=t.call(this,e)||this;return i.learningRate=e,i.momentum=n,i.useNesterov=r,i.m=Re(i.momentum),i.accumulations={},i}return n(e,t),e.prototype.applyGradients=function(t){var e=this,n=function(n){var i=Bt.engine.registeredVariables[n];null==r.accumulations[n]&&qt(function(){e.accumulations[n]=je(i).variable(!1)});var o=r.accumulations[n],a=t[n];qt(function(){var t,r=e.m.mul(o).add(a);t=e.useNesterov?e.c.mul(a.add(r.mul(e.m))).add(i):e.c.mul(r).add(i),e.accumulations[n].assign(r),i.assign(t)})},r=this;for(var i in t)n(i)},e.prototype.dispose=function(){if(t.prototype.dispose.call(this),this.m.dispose(),null!=this.accumulations)for(var e in this.accumulations)this.accumulations[e].dispose()},e.prototype.setMomentum=function(t){this.momentum=t},e.prototype.getConfig=function(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}},e.fromConfig=function(t,e){return new t(e.learningRate,e.momentum,e.useNesterov)},e.className="MomentumOptimizer",e}(Kc);Lc($c);var Xc=function(t){function e(e,n,r,i,o){void 0===n&&(n=.9),void 0===r&&(r=0),void 0===i&&(i=null),void 0===o&&(o=!1);var a=t.call(this)||this;return a.learningRate=e,a.decay=n,a.momentum=r,a.epsilon=i,a.accumulatedMeanSquares={},a.accumulatedMeanGrads={},a.accumulatedMoments={},a.c=Gt(Re(e)),a.decayScalar=Gt(Re(n)),a.momentumScalar=Gt(Re(r)),a.oneMinusDecay=Gt(Re(1-n)),a.centered=o,null===i&&(i=Bt.get("EPSILON")),a.epsilonScalar=Gt(Re(i)),a}return n(e,t),e.prototype.applyGradients=function(t){var e=this,n=function(n){var i=Bt.engine.registeredVariables[n];null==r.accumulatedMeanSquares[n]&&qt(function(){e.accumulatedMeanSquares[n]=je(i).variable(!1)}),null==r.accumulatedMeanGrads[n]&&r.centered&&qt(function(){e.accumulatedMeanGrads[n]=je(i).variable(!1)}),null==r.accumulatedMoments[n]&&qt(function(){e.accumulatedMoments[n]=je(i).variable(!1)});var o=r.accumulatedMeanSquares[n],a=r.accumulatedMeanGrads[n],s=r.accumulatedMoments[n],u=t[n];qt(function(){var t=e.decayScalar.mul(o).add(e.oneMinusDecay.mul(u.square()));if(e.centered){var r=e.decayScalar.mul(a).add(e.oneMinusDecay.mul(u)),l=e.momentumScalar.mul(s).add(e.c.mul(u).div(t.sub(r.square().add(e.epsilonScalar)).sqrt()));e.accumulatedMeanSquares[n].assign(t),e.accumulatedMeanGrads[n].assign(r),e.accumulatedMoments[n].assign(l);var c=i.sub(l);i.assign(c)}else{var p=e.decayScalar.mul(o).add(e.oneMinusDecay.mul(u.square()));l=e.momentumScalar.mul(s).add(e.c.mul(u).div(p.add(e.epsilonScalar).sqrt())),e.accumulatedMeanSquares[n].assign(p),e.accumulatedMoments[n].assign(l),c=i.sub(l),i.assign(c)}})},r=this;for(var i in t)n(i)},e.prototype.dispose=function(){var t=this;this.c.dispose(),this.epsilonScalar.dispose(),this.decayScalar.dispose(),this.momentumScalar.dispose(),this.oneMinusDecay.dispose(),null!=this.accumulatedMeanSquares&&Object.keys(this.accumulatedMeanSquares).forEach(function(e){return t.accumulatedMeanSquares[e].dispose()}),null!=this.accumulatedMeanGrads&&this.centered&&Object.keys(this.accumulatedMeanGrads).forEach(function(e){return t.accumulatedMeanGrads[e].dispose()}),null!=this.accumulatedMoments&&Object.keys(this.accumulatedMoments).forEach(function(e){return t.accumulatedMoments[e].dispose()})},e.prototype.getConfig=function(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}},e.fromConfig=function(t,e){return new t(e.learningRate,e.decay,e.momentum,e.epsilon,e.centered)},e.className="RMSPropOptimizer",e}(Vc);Lc(Xc);var Yc=function(){function t(){}return t.sgd=function(t){return new Kc(t)},t.momentum=function(t,e,n){return void 0===n&&(n=!1),new $c(t,e,n)},t.rmsprop=function(t,e,n,r,i){return void 0===e&&(e=.9),void 0===n&&(n=0),void 0===r&&(r=null),void 0===i&&(i=!1),new Xc(t,e,n,r,i)},t.adam=function(t,e,n,r){return void 0===t&&(t=.001),void 0===e&&(e=.9),void 0===n&&(n=.999),void 0===r&&(r=null),new Gc(t,e,n,r)},t.adadelta=function(t,e,n){return void 0===t&&(t=.001),void 0===e&&(e=.95),void 0===n&&(n=null),new jc(t,e,n)},t.adamax=function(t,e,n,r,i){return void 0===t&&(t=.002),void 0===e&&(e=.9),void 0===n&&(n=.999),void 0===r&&(r=null),void 0===i&&(i=0),new Hc(t,e,n,r,i)},t.adagrad=function(t,e){return void 0===e&&(e=.1),new qc(t,e)},t}(),Jc={sgd:Yc.sgd,momentum:Yc.momentum,adadelta:Yc.adadelta,adagrad:Yc.adagrad,rmsprop:Yc.rmsprop,adamax:Yc.adamax,adam:Yc.adam},Zc=_t.setBackend,Qc=_t.getBackend,tp=_t.disposeVariables,ep=_t.memory;!function(t){at=t}(_l);var np=function(t,e){return(np=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function rp(t,e){function n(){this.constructor=t}np(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var ip,op=function(){return(op=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var i in e=arguments[n])Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t}).apply(this,arguments)};function ap(t,e,n,r){return new(n||(n=Promise))(function(i,o){function a(t){try{u(r.next(t))}catch(t){o(t)}}function s(t){try{u(r.throw(t))}catch(t){o(t)}}function u(t){t.done?i(t.value):new n(function(e){e(t.value)}).then(a,s)}u((r=r.apply(t,e||[])).next())})}function sp(t,e){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=(i=a.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){a.label=o[1];break}if(6===o[0]&&a.label<i[1]){a.label=i[1],i=o;break}if(i&&a.label<i[2]){a.label=i[2],a.ops.push(o);break}i[2]&&a.ops.pop(),a.trys.pop();continue}o=e.call(t,a)}catch(t){o=[6,t],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}}function up(){return null==ip&&(ip=Bt.get("EPSILON")),ip}var lp=0;function cp(){return lp++}var pp={};function hp(t){return void 0===t&&(t=""),t in pp||(pp[t]=0),pp[t]+=1,t+pp[t].toString()}var fp={},dp="float32";function mp(t,e){return void 0===e&&(e=dp),null==fp[e]&&(fp[e]={}),null==fp[e][t]&&(fp[e][t]=Re(t,e),Gt(fp[e][t])),fp[e][t]}var gp=function(t){function e(n){var r=t.call(this,n)||this;return Object.setPrototypeOf(r,e.prototype),r}return rp(e,t),e}(Error),yp=function(t){function e(n){var r=t.call(this,n)||this;return Object.setPrototypeOf(r,e.prototype),r}return rp(e,t),e}(Error),vp=function(t){function e(n){var r=t.call(this,n)||this;return Object.setPrototypeOf(r,e.prototype),r}return rp(e,t),e}(Error),bp=function(t){function e(n){var r=t.call(this,n)||this;return Object.setPrototypeOf(r,e.prototype),r}return rp(e,t),e}(Error),wp=function(t){function e(n){var r=t.call(this,n)||this;return Object.setPrototypeOf(r,e.prototype),r}return rp(e,t),e}(Error);!function(t){function e(n){var r=t.call(this,n)||this;return Object.setPrototypeOf(r,e.prototype),r}rp(e,t)}(Error);function xp(t,e){if(Array.isArray(t)){for(var n=[],r=0;r<e;r++)n=n.concat(t);return n}return(n=new Array(e)).fill(t),n}function Np(t,e){if(!t)throw new wp(e)}function Sp(t,e){for(var n=0,r=0,i=t;r<i.length;r++)i[r]===e&&n++;return n}function Cp(t){return 1===t.length?t[0]:t}function Ep(t){return Array.isArray(t)?t:[t]}function Ip(t){var e=t.replace(/(.)([A-Z][a-z0-9]+)/g,"$1_$2").replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase();return"_"!==e[0]?e:"private"+e}function kp(t){return t.length<=1?t:-1===t.indexOf("_")?t:t.replace(/[_]+(\w|$)/g,function(t,e){return e.toUpperCase()})}var Ap={};function Tp(t){if(null===t||void 0===t)return null;var e={};return e.className=t.getClassName(),e.config=t.getConfig(),e}function Rp(t,e,n,r,i){var o,a,s;if(void 0===e&&(e={}),void 0===n&&(n={}),void 0===r&&(r="object"),void 0===i&&(i=!1),"string"==typeof t){var u=t,l=void 0;if(u in n)l=n[u];else if(u in Ap)l=Ap[u];else if(null==(l=e[u]))throw new vp("Unknown "+r+": "+t+". This may be due to one of the following reasons:\n1. The "+r+" is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code.\n2. The custom "+r+" is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().");return l}var c=t;if(null==c.className||null==c.config)throw new vp(r+": Improper config format: "+JSON.stringify(c)+".\n'className' and 'config' must set.");var p=c.className,h=void 0,f=void 0;if(p in n?(h=(o=n.get(p))[0],f=o[1]):p in Ap?(h=(a=Ap.className)[0],f=a[1]):p in e&&(h=(s=e[p])[0],f=s[1]),null==h)throw new vp("Unknown "+r+": "+p+". This may be due to one of the following reasons:\n1. The "+r+" is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code.\n2. The custom "+r+" is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().");if(null!=f){for(var d={},m=0,g=Object.keys(Ap);m<g.length;m++)d[N=g[m]]=Ap[N];for(var y=0,v=Object.keys(n);y<v.length;y++)d[N=v[y]]=n[N];c.config.customObjects=d;for(var b=op({},Ap),w=0,x=Object.keys(n);w<x.length;w++){var N=x[w];Ap[N]=n[N]}!function t(e){if(null!=e&&"object"==typeof e)if(Array.isArray(e))e.forEach(function(e){return t(e)});else for(var n=0,r=Object.keys(e);n<r.length;n++){var i=r[n],o=e[i];null!=o&&"object"==typeof o&&(Array.isArray(o)||"ndarray"!==o.type||"number"!=typeof o.value?t(o):e[i]=o.value)}}(c.config);var S=f(h,c.config,n,i);return Ap=op({},b),S}b=op({},Ap);for(var C=0,E=Object.keys(n);C<E.length;C++)N=E[C],Ap[N]=n[N];return S=new h(c.config),Ap=op({},b),S}function Dp(t,e){return-1*function(t,e){return t<e?-1:t>e?1:0}(t,e)}function Op(t){if(null==t)return t;for(var e=[],n=0,r=t;n<r.length;n++){var i=r[n];-1===e.indexOf(i)&&e.push(i)}return e}function _p(t){if(null==t)throw new vp("Invalid value in obj: "+JSON.stringify(t));for(var e in t)if(t.hasOwnProperty(e))return!1;return!0}function Mp(t,e,n){if(null!=n&&t.indexOf(n)<0)throw new vp(n+" is not a valid "+e+".  Valid values are "+t+" or null/undefined.")}function Lp(t,e,n,r){return void 0===n&&(n=0),void 0===r&&(r=1/0),Np(n>=0),Np(r>=n),Array.isArray(t)&&t.length>=n&&t.length<=r&&t.every(function(t){return typeof t===e})}function Fp(t,e){Array.isArray(t)?(X.assert(t.length>0,function(){return e+" is unexpectedly an empty array."}),t.forEach(function(t,n){return Fp(t,"element "+(n+1)+" of "+e)})):X.assert(Number.isInteger(t)&&t>0,function(){return"Expected "+e+" to be a positive integer, but got "+function t(e){return null===e?"null":Array.isArray(e)?"["+e.map(function(e){return t(e)}).join(",")+"]":"string"==typeof e?'"'+e+'"':""+e}(t)+"."})}function zp(t,e){return qt(function(){return Ua(Zs(Iu(t,t),e,!0))})}var Pp=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rp(e,t),e.prototype.getConfig=function(){return{}},e}(Fc.Serializable),Bp=function(t){function e(e){var n=t.call(this)||this;return n.defaultMaxValue=2,n.defaultAxis=0,n.maxValue=null!=e.maxValue?e.maxValue:n.defaultMaxValue,n.axis=null!=e.axis?e.axis:n.defaultAxis,n}return rp(e,t),e.prototype.apply=function(t){var e=this;return qt(function(){var n=zp(t,e.axis),r=xa(n,0,e.maxValue);return Eu(t,gu(r,hu(mp(up()),n)))})},e.prototype.getConfig=function(){return{maxValue:this.maxValue,axis:this.axis}},e.className="MaxNorm",e}(Pp);Fc.registerClass(Bp);var Up=function(t){function e(e){var n=t.call(this)||this;return n.defaultAxis=0,n.axis=null!=e.axis?e.axis:n.defaultAxis,n}return rp(e,t),e.prototype.apply=function(t){var e=this;return qt(function(){return gu(t,hu(mp(up()),zp(t,e.axis)))})},e.prototype.getConfig=function(){return{axis:this.axis}},e.className="UnitNorm",e}(Pp);Fc.registerClass(Up);var Wp=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rp(e,t),e.prototype.apply=function(t){return Vu(t)},e.className="NonNeg",e}(Pp);Fc.registerClass(Wp);var Vp=function(t){function e(e){var n=t.call(this)||this;return n.defaultMinValue=0,n.defaultMaxValue=1,n.defaultRate=1,n.defaultAxis=0,n.minValue=null!=e.minValue?e.minValue:n.defaultMinValue,n.maxValue=null!=e.maxValue?e.maxValue:n.defaultMaxValue,n.rate=null!=e.rate?e.rate:n.defaultRate,n.axis=null!=e.axis?e.axis:n.defaultAxis,n}return rp(e,t),e.prototype.apply=function(t){var e=this;return qt(function(){var n=zp(t,e.axis),r=hu(Eu(mp(e.rate),xa(n,e.minValue,e.maxValue)),Eu(mp(1-e.rate),n));return Eu(t,gu(r,hu(mp(up()),n)))})},e.prototype.getConfig=function(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}},e.className="MinMaxNorm",e}(Pp);Fc.registerClass(Vp);var jp={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function qp(t){return Tp(t)}function Gp(t,e){return void 0===e&&(e={}),Rp(t,Fc.SerializationMap.getMap().classNameMap,e,"constraint")}function Hp(t){return null==t?null:"string"==typeof t?Gp({className:t in jp?jp[t]:t,config:{}}):t instanceof Pp?t:Gp(t)}var Kp=Object.freeze({maxNorm:function(t){return new Bp(t)},unitNorm:function(t){return new Up(t)},nonNeg:function(){return new Wp},minMaxNorm:function(t){return new Vp(t)}}),$p=["channelsFirst","channelsLast"],Xp=["valid","same","causal"],Yp=["max","avg"],Jp=["sum","mul","concat","ave"],Zp=new Map;function Qp(t){Mp($p,"DataFormat",t)}function th(t){Mp(Xp,"PaddingMode",t)}var eh=[],nh="/";function rh(t,e){eh.push(t);try{var n=e();return eh.pop(),n}catch(t){throw eh.pop(),t}}function ih(t){if(!sh(t))throw new Error("Not a valid tensor name: '"+t+"'");return(0===eh.length?"":eh.join(nh)+nh)+t}function oh(t){if(!sh(t))throw new Error("Not a valid tensor name: '"+t+"'");Zp.has(t)||Zp.set(t,0);var e=Zp.get(t);if(Zp.set(t,Zp.get(t)+1),e>0){var n=t+"_"+e;return Zp.set(n,1),n}return t}var ah=new RegExp(/^[A-Za-z][-A-Za-z0-9\._\/]*$/);function sh(t){return!!t.match(ah)}function uh(t){return t===parseInt(t.toString(),10)}function lh(t,e,n){null==e&&(e=0),null==n&&(n=t.length);for(var r=1,i=e;i<n;++i)r*=t[i];return r}function ch(t){return De(t=Array.isArray(t)?new Float32Array(t):t)}function ph(t){return Ys(ch(t)).dataSync()[0]}function hh(t){return $s(ch(t)).dataSync()[0]}function fh(t,e){if(e<t)throw new vp("end ("+e+") < begin ("+t+") is forbidden.");for(var n=[],r=t;r<e;++r)n.push(r);return n}function dh(t,e){return t.asType(e)}function mh(t,e){void 0===e&&(e=-1);var n=t.shape.slice();return e<0&&(e=n.length+e+1),n.splice(e,0,1),t.reshape(n)}function gh(t,e,n){return qt(function(){switch(t.rank){case 1:return Ps(t,e,n);case 2:return Bs(t,[e,0],[n,t.shape[1]]);case 3:return Us(t,[e,0,0],[n,t.shape[1],t.shape[2]]);case 4:return Ws(t,[e,0,0,0],[n,t.shape[1],t.shape[2],t.shape[3]]);default:throw new vp("sliceAlongFirstAxis() received an unsupported tensor rank: "+t.rank)}})}function yh(t,e,n){return qt(function(){switch(t.rank){case 1:return Ps(t,e,n);case 2:return Bs(t,[0,e],[t.shape[0],n]);case 3:return Us(t,[0,0,e],[t.shape[0],t.shape[1],n]);case 4:return Ws(t,[0,0,0,e],[t.shape[0],t.shape[1],t.shape[2],n]);default:throw new vp("sliceAlongLastAxis() received an unsupported tensor rank: "+t.rank)}})}function vh(t,e,n,r){return qt(function(){switch(t.rank){case 1:return Ps(t,e,n);case 2:switch(r){case 1:return gh(t,e,n);case 2:return yh(t,e,n);default:throw new vp("The axis is not within the rank of the tensor "+r)}case 3:switch(r){case 1:return gh(t,e,n);case 2:return Us(t,[0,e,0],[t.shape[0],n,t.shape[2]]);case 3:return yh(t,e,n);default:throw new vp("The axis is not within the rank of the tensor "+r)}case 4:switch(r){case 1:return gh(t,e,n);case 2:return Ws(t,[0,e,0,0],[t.shape[0],n,t.shape[2],t.shape[3]]);case 3:return Ws(t,[0,0,e,0],[t.shape[0],t.shape[1],n,t.shape[3]]);case 4:return yh(t,e,n);default:throw new vp("The axis is not within the rank of the tensor "+r)}default:throw new vp("sliceAlongLastAxis() received an unsupported tensor rank: "+t.rank)}})}function bh(t,e){var n;return void 0===e&&(e=-1),e<0&&(e=0!==(n=t[0].rank)?n:0),e===t[0].rank&&(e=-1),xo(t,e)}function wh(t,e){switch(t.rank){case 1:return No([t,e]);case 2:return So([t,e],0);case 3:return Co([t,e],0);case 4:return Eo([t,e],0);default:throw new vp("concatAlongFirstAxis() received an unsupported tensor rank: "+t.rank)}}function xh(t,e){if(Array.isArray(e)||(e=[e]),t.rank!==e.length)throw new vp("The length of input n ("+e.length+") does not match the number of dimensions in input x ("+t.rank+")");return aa(t,e)}function Nh(t,e,n,r,i){return void 0===e&&(e=0),void 0===n&&(n=1),ta(t,e,n,r,i)}function Sh(t,e){if(t.rank<2||e.rank<2)throw new bp("dot requires both inputs to be rank >= 2 but got x shape = "+t.shape+" and y shape = "+e.shape);if(e.rank>=3&&(r=t.shape.slice(-1)[0])!==(a=e.shape.slice(-2)[0]))throw new bp("If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = "+t.shape+" and  y shape = "+e.shape);if(2===t.rank&&2===e.rank)return Cs(t,e);var n=t.shape.slice(),r=n.pop();t=t.reshape([-1,r]);var i=e.shape.slice(),o=i.pop(),a=i.pop(),s=i.concat([o]),u=Array.from({length:e.rank},function(t,n){return 0===n?e.rank-2:n<=e.rank-2?n-1:n});e=e.transpose(u).reshape([a,-1]);var l=n.concat(s);return Cs(t,e).reshape(l)}function Ch(t,e,n){return qt(function(){return e=Array.isArray(e)?De(e,"int32"):e.toInt(),Xu(t,e,n)})}function Eh(t){return Iu(t,t)}function Ih(t,e,n){return qt(function(){if(null==n&&(n="channelsLast"),Qp(n),1!==e.rank&&e.rank!==t.rank)throw new vp("Unexpected bias dimensions: "+e.rank+"; expected it to be 1 or "+t.rank);var r,i=e.shape;if(5===t.rank)"channelsFirst"===n?r=1===i.length?t.add(e.reshape([1,i[0],1,1,1])):t.add(e.reshape([1,i[3],i[0],i[1],i[2]])):"channelsLast"===n&&(r=1===i.length?t.add(e.reshape([1,1,1,1,i[0]])):t.add(e.reshape([1].concat(i))));else if(4===t.rank)"channelsFirst"===n?r=1===i.length?t.add(e.reshape([1,i[0],1,1])):t.add(e.reshape([1,i[2],i[0],i[1]])):"channelsLast"===n&&(r=1===i.length?t.add(e.reshape([1,1,1,i[0]])):t.add(e.reshape([1].concat(i))));else if(3===t.rank)"channelsFirst"===n?r=1===i.length?t.add(e.reshape([1,i[0],1])):t.add(e.reshape([1,i[1],i[0]])):"channelsLast"===n&&(r=1===i.length?t.add(e.reshape([1,1,i[0]])):t.add(e.reshape([1].concat(i))));else{if(!(t.rank<3))throw new vp("Unsupported input rank by biasAdd: "+t.rank);r=t.add(e)}return r})}function kh(t,e,n,r){return qt(function(){if(null!=n&&!X.arraysEqual(t.shape,n))throw new bp("Non-default noise shape is not implemented yet: "+JSON.stringify(n));if(null!=r)throw new bp("seed is not implemented for dropout yet.");var i=Va(hu(Da(e),ea(t.shape,0,1,"float32")));return i=Eu(gu(mp(1),Du(mp(1),e)),i),Eu(t,i)})}function Ah(t,e,n){return void 0===n&&(n=!1),n?t():e()}var Th=["fanIn","fanOut","fanAvg"],Rh=["normal","uniform"];var Dh=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rp(e,t),e.prototype.fromConfigUsesCustomObjects=function(){return!1},e.prototype.getConfig=function(){return{}},e}(Fc.Serializable),Oh=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rp(e,t),e.prototype.apply=function(t,e){return Pe(t,e)},e.className="Zeros",e}(Dh);Fc.registerClass(Oh);var _h=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rp(e,t),e.prototype.apply=function(t,e){return ze(t,e)},e.className="Ones",e}(Dh);Fc.registerClass(_h);var Mh=function(t){function e(e){var n=t.call(this)||this;if("object"!=typeof e)throw new vp("Expected argument of type ConstantConfig but got "+e);if(void 0===e.value)throw new vp("config must have value set but got "+e);return n.value=e.value,n}return rp(e,t),e.prototype.apply=function(t,e){var n=this;return qt(function(){return Eu(Re(n.value),ze(t,e))})},e.prototype.getConfig=function(){return{value:this.value}},e.className="Constant",e}(Dh);Fc.registerClass(Mh);var Lh=function(t){function e(e){var n=t.call(this)||this;return n.DEFAULT_MINVAL=-.05,n.DEFAULT_MAXVAL=.05,n.minval=e.minval||n.DEFAULT_MINVAL,n.maxval=e.maxval||n.DEFAULT_MAXVAL,n.seed=e.seed,n}return rp(e,t),e.prototype.apply=function(t,e){return ea(t,this.minval,this.maxval,e)},e.prototype.getConfig=function(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}},e.className="RandomUniform",e}(Dh);Fc.registerClass(Lh);var Fh=function(t){function e(e){var n=t.call(this)||this;return n.DEFAULT_MEAN=0,n.DEFAULT_STDDEV=.05,n.mean=e.mean||n.DEFAULT_MEAN,n.stddev=e.stddev||n.DEFAULT_STDDEV,n.seed=e.seed,n}return rp(e,t),e.prototype.apply=function(t,e){if("float32"!==(e=e||"float32")&&"int32"!==e)throw new bp("randomNormal does not support dType "+e+".");return Nh(t,this.mean,this.stddev,e,this.seed)},e.prototype.getConfig=function(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}},e.className="RandomNormal",e}(Dh);Fc.registerClass(Fh);var zh=function(t){function e(e){var n=t.call(this)||this;return n.DEFAULT_MEAN=0,n.DEFAULT_STDDEV=.05,n.mean=e.mean||n.DEFAULT_MEAN,n.stddev=e.stddev||n.DEFAULT_STDDEV,n.seed=e.seed,n}return rp(e,t),e.prototype.apply=function(t,e){if("float32"!==(e=e||"float32")&&"int32"!==e)throw new bp("truncatedNormal does not support dType "+e+".");return sa(t,this.mean,this.stddev,e,this.seed)},e.prototype.getConfig=function(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}},e.className="TruncatedNormal",e}(Dh);Fc.registerClass(zh);var Ph=function(t){function e(e){var n=t.call(this)||this;return n.gain=null!=e.gain?Re(e.gain):mp(1),n}return rp(e,t),e.prototype.apply=function(t,e){var n=this;return qt(function(){if(2!==t.length||t[0]!==t[1])throw new vp("Identity matrix initializer can only be used for 2D square matrices.");return Eu(n.gain,Go(t[0]))})},e.prototype.getConfig=function(){return{gain:this.gain.dataSync()[0]}},e.className="Identity",e}(Dh);Fc.registerClass(Ph);var Bh=function(t){function e(e){var n=t.call(this)||this;if(e.scale<0)throw new vp("scale must be a positive float. Got: "+e.scale);return n.scale=null==e.scale?1:e.scale,n.mode=e.mode,function(t){Mp(Th,"FanMode",t)}(n.mode),n.distribution=e.distribution,function(t){Mp(Rh,"Distribution",t)}(n.distribution),n.seed=e.seed,n}return rp(e,t),e.prototype.apply=function(t,e){var n=function(t,e){var n,r;if(void 0===e&&(e="channelsLast"),Qp(e),2===t.length)n=t[0],r=t[1];else if(-1!==[3,4,5].indexOf(t.length))if("channelsFirst"===e){var i=lh(t,2);n=t[1]*i,r=t[0]*i}else"channelsLast"===e&&(i=lh(t,0,t.length-2),n=t[t.length-2]*i,r=t[t.length-1]*i);else{var o=lh(t);n=Math.sqrt(o),r=Math.sqrt(o)}return[n,r]}(t),r=n[0],i=n[1],o=this.scale;if("fanIn"===this.mode?o/=Math.max(1,r):"fanOut"===this.mode?o/=Math.max(1,i):o/=Math.max(1,(r+i)/2),"normal"===this.distribution){var a=Math.sqrt(o);if("float32"!==(e=e||"float32")&&"int32"!==e)throw new bp(this.getClassName()+" does not support dType "+e+".");return sa(t,0,a,e,this.seed)}var s=Math.sqrt(3*o);return ea(t,-s,s,e)},e.prototype.getConfig=function(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}},e.className="VarianceScaling",e}(Dh);Fc.registerClass(Bh);var Uh=function(t){function e(e){return t.call(this,{scale:1,mode:"fanAvg",distribution:"uniform",seed:null==e?null:e.seed})||this}return rp(e,t),e.prototype.getClassName=function(){return Bh.className},e.className="GlorotUniform",e}(Bh);Fc.registerClass(Uh);var Wh=function(t){function e(e){return t.call(this,{scale:1,mode:"fanAvg",distribution:"normal",seed:null==e?null:e.seed})||this}return rp(e,t),e.prototype.getClassName=function(){return Bh.className},e.className="GlorotNormal",e}(Bh);Fc.registerClass(Wh);var Vh=function(t){function e(e){return t.call(this,{scale:2,mode:"fanIn",distribution:"normal",seed:null==e?null:e.seed})||this}return rp(e,t),e.prototype.getClassName=function(){return Bh.className},e.className="HeNormal",e}(Bh);Fc.registerClass(Vh);var jh=function(t){function e(e){return t.call(this,{scale:2,mode:"fanIn",distribution:"uniform",seed:null==e?null:e.seed})||this}return rp(e,t),e.prototype.getClassName=function(){return Bh.className},e.className="HeUniform",e}(Bh);Fc.registerClass(jh);var qh=function(t){function e(e){return t.call(this,{scale:1,mode:"fanIn",distribution:"normal",seed:null==e?null:e.seed})||this}return rp(e,t),e.prototype.getClassName=function(){return Bh.className},e.className="LeCunNormal",e}(Bh);Fc.registerClass(qh);var Gh=function(t){function e(e){return t.call(this,{scale:1,mode:"fanIn",distribution:"uniform",seed:null==e?null:e.seed})||this}return rp(e,t),e.prototype.getClassName=function(){return Bh.className},e.className="LeCunNormal",e}(Bh);Fc.registerClass(Gh);var Hh=function(t){function e(e){var n=t.call(this)||this;if(n.DEFAULT_GAIN=1,n.gain=null==e.gain?n.DEFAULT_GAIN:e.gain,n.seed=e.seed,null!=n.seed)throw new bp("Random seed is not implemented for Orthogonal Initializer yet.");return n}return rp(e,t),e.prototype.apply=function(t,e){var n=this;return qt(function(){if(2!==t.length)throw new bp("The Orthogonal Initializer does not support non-2D shapes yet.");t[0]*t[1]>2e3&&console.warn("Orthogonal initializer is being called on a matrix with more than 2000 ("+t[0]*t[1]+") elements: Slowness may result.");var e=Nh(t[0]>t[1]?[t[1],t[0]]:t,0,1,"float32"),r=Sl.gramSchmidt(e);return t[0]>t[1]&&(r=r.transpose()),Eu(mp(n.gain),r)})},e.prototype.getConfig=function(){return{gain:this.gain,seed:this.seed}},e.className="Orthogonal",e}(Dh);Fc.registerClass(Hh);var Kh={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function $h(t,e){return void 0===e&&(e={}),Rp(t,Fc.SerializationMap.getMap().classNameMap,e,"initializer")}function Xh(t){return Tp(t)}function Yh(t){if("string"==typeof t){var e=t in Kh?Kh[t]:t;if("GlorotNormal"===e)return new Wh;if("GlorotUniform"===e)return new Uh;if("HeNormal"===e)return new Vh;if("HeUniform"===e)return new jh;if("LeCunNormal"===e)return new qh;if("LeCunUniform"===e)return new Gh;var n={};return n.className=e,n.config={},$h(n)}return t instanceof Dh?t:$h(t)}var Jh=Object.freeze({zeros:function(){return new Oh},ones:function(){return new _h},constant:function(t){return new Mh(t)},randomUniform:function(t){return new Lh(t)},randomNormal:function(t){return new Fh(t)},truncatedNormal:function(t){return new zh(t)},identity:function(t){return new Ph(t)},varianceScaling:function(t){return new Bh(t)},glorotUniform:function(t){return new Uh(t)},glorotNormal:function(t){return new Wh(t)},heNormal:function(t){return new Vh(t)},heUniform:function(t){return new jh(t)},leCunNormal:function(t){return new qh(t)},leCunUniform:function(t){return new Gh(t)},orthogonal:function(t){return new Hh(t)}});function Zh(t){return Array.isArray(t)&&Array.isArray(t[0])}function Qh(t){return 0===t.length?[]:Array.isArray(t[0])?t:[t]}function tf(t){var e;if(Array.isArray(t)){if(1!==t.length)throw new vp("Expected Tensor length to be 1; got "+t.length);e=t[0]}else e=t;return e}function ef(t){if(Array.isArray(t)&&Array.isArray(t[0])){if(1===t.length)return(t=t)[0];throw new vp("Expected exactly 1 Shape; got "+t.length)}return t}function nf(t){for(var e=0,n=0,r=t;n<r.length;n++){var i=r[n];0===i.shape.length?e+=1:e+=i.shape.reduce(function(t,e){return t*e})}return e}var rf="Variable",of=function(){function t(t,e,n,r,i){void 0===e&&(e="float32"),void 0===n&&(n=rf),void 0===r&&(r=!0),void 0===i&&(i=null),this.dtype=null==e?"float32":e,this.shape=t.shape,this.id=cp(),n=null==n?rf:n,this.originalName=ih(n),this.name=oh(this.originalName),this.trainable_=r,this.constraint=i,this.val=mt(t,this.trainable_,this.name,this.dtype)}return t.prototype.read=function(){return this.assertNotDisposed(),this.val},t.prototype.write=function(t){return this.assertNotDisposed(),function(t,e){if(t.shape.toString()!==e.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(t.shape)+" vs. "+JSON.stringify(e.shape))}(this.val,t),this.val.id!==t.id&&(this.val.assign(t),null!=this.constraint&&this.val.assign(this.constraint.apply(this.val))),this},t.prototype.dispose=function(){this.assertNotDisposed(),this.val.dispose()},t.prototype.assertNotDisposed=function(){if(this.val.isDisposed)throw new Error("LayersVariable "+this.name+" is already disposed.")},Object.defineProperty(t.prototype,"trainable",{get:function(){return this.trainable_},set:function(t){this.trainable_=t,this.val.trainable=t},enumerable:!0,configurable:!0}),t}();function af(t){return t.map(function(t){return t.read()})}function sf(t){t.forEach(function(t){t[0].write(t[1])})}var uf=function(t){this.dtype=t.dtype,this.shape=t.shape,null!=t.shape?this.ndim=t.shape.length:this.ndim=t.ndim,this.maxNDim=t.maxNDim,this.minNDim=t.minNDim,this.axes=t.axes||{}},lf=function(t,e,n,r,i,o,a){this.dtype=t,this.shape=e,this.sourceLayer=n,this.inputs=r,this.callArgs=i,this.outputTensorIndex=a,this.id=cp(),null!=o&&(this.originalName=ih(o),this.name=oh(this.originalName)),this.rank=e.length},cf=0,pf=function(){function t(t,e){this.callArgs=e,this.id=cf++,this.outboundLayer=t.outboundLayer,this.inboundLayers=t.inboundLayers,this.nodeIndices=t.nodeIndices,this.tensorIndices=t.tensorIndices,this.inputTensors=t.inputTensors,this.outputTensors=t.outputTensors,this.inputMasks=t.inputMasks,this.outputMasks=t.outputMasks,this.inputShapes=t.inputShapes,this.outputShapes=t.outputShapes;for(var n=0,r=t.inboundLayers;n<r.length;n++){var i=r[n];null!=i&&i.outboundNodes.push(this)}t.outboundLayer.inboundNodes.push(this)}return t.prototype.getConfig=function(){for(var t=[],e=0,n=this.inboundLayers;e<n.length;e++){var r=n[e];null!=r?t.push(r.name):t.push(null)}return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:t,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}},t}(),hf=0,ff=function(t){function e(e){var n=t.call(this)||this;n._callHook=null,n._addedWeightNames=[],n._stateful=!1,n.id=hf++,n.activityRegularizer=null,n.inputSpec=null,n.supportsMasking=!1,n._trainableWeights=[],n._nonTrainableWeights=[],n._losses=[],n._updates=[],n._built=!1,n.inboundNodes=[],n.outboundNodes=[];var r=e.name;if(!r){var i=n.getClassName();r=Ip(i)+"_"+hp(i)}if(n.name=r,n.trainable_=null==e.trainable||e.trainable,n.updatable=null==e.updatable||e.updatable,null!=e.inputShape||null!=e.batchInputShape){var o=void 0;if(null!=e.batchInputShape)o=e.batchInputShape;else if(null!=e.inputShape){var a=null;null!=e.batchSize&&(a=e.batchSize),o=[a].concat(e.inputShape)}n.batchInputShape=o;var s=e.dtype;null==s&&(s=e.inputDType),null==s&&(s="float32"),n.dtype=s}return null!=e.weights?n.initialWeights=e.weights:n.initialWeights=null,n._refCount=null,n.fastWeightInitDuringBuild=!1,n}return rp(e,t),e.nodeKey=function(t,e){return t.name+"_ib-"+e.toString()},e.prototype.getNodeAtIndex=function(t,e){if(0===this.inboundNodes.length)throw new yp("The layer has never been called and thus has no defined "+e+".");if(this.inboundNodes.length<=t)throw new vp("Asked to get "+e+" at node "+t+", but the layer has only "+this.inboundNodes.length+" inbound nodes.");return this.inboundNodes[t]},e.prototype.getInputAt=function(t){return Cp(this.getNodeAtIndex(t,"input").inputTensors)},e.prototype.getOutputAt=function(t){return Cp(this.getNodeAtIndex(t,"output").outputTensors)},Object.defineProperty(e.prototype,"input",{get:function(){if(this.inboundNodes.length>1)throw new gp("Layer "+this.name+' has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use `getInputAt(nodeIndex)` instead.');if(0===this.inboundNodes.length)throw new gp("Layer "+this.name+" is not connected, no input to return.");return Cp(this.getNodeAtIndex(0,"input").inputTensors)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"output",{get:function(){if(0===this.inboundNodes.length)throw new gp("Layer "+this.name+" has no inbound nodes.");if(this.inboundNodes.length>1)throw new gp("Layer "+this.name+' has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use `getOutputAt(nodeIndex)` instead.');return Cp(this.getNodeAtIndex(0,"output").outputTensors)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"losses",{get:function(){return this._losses},enumerable:!0,configurable:!0}),e.prototype.calculateLosses=function(){return this.losses.map(function(t){return t()})},Object.defineProperty(e.prototype,"updates",{get:function(){return this._updates},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"built",{get:function(){return this._built},set:function(t){this._built=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"trainable",{get:function(){return this.trainable_},set:function(t){this._trainableWeights.forEach(function(e){e.trainable=t}),this.trainable_=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"trainableWeights",{get:function(){return this.trainable_?this._trainableWeights:[]},set:function(t){this._trainableWeights=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"nonTrainableWeights",{get:function(){return this.trainable_?this._nonTrainableWeights:this._trainableWeights.concat(this._nonTrainableWeights)},set:function(t){this._nonTrainableWeights=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"weights",{get:function(){return this.trainableWeights.concat(this.nonTrainableWeights)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"stateful",{get:function(){return this._stateful},enumerable:!0,configurable:!0}),e.prototype.resetStates=function(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")},e.prototype.assertInputCompatibility=function(t){if(t=Ep(t),null!=this.inputSpec&&0!==this.inputSpec.length){var e=Ep(this.inputSpec);if(t.length!==e.length)throw new vp("Layer "+this.name+" expects "+e.length+" inputs, but it received "+t.length+" input tensors. Input received: "+t);for(var n=0;n<t.length;n++){var r=t[n],i=e[n];if(null!=i){var o=r.rank;if(null!=i.ndim&&o!==i.ndim)throw new vp("Input "+n+" is incompatible with layer "+this.name+": expected ndim="+i.ndim+", found ndim="+o);if(null!=i.maxNDim&&o>i.maxNDim)throw new vp("Input "+n+" is incompatible with layer "+this.name+": expected max_ndim="+i.maxNDim+", found ndim="+o);if(null!=i.minNDim&&o<i.minNDim)throw new vp("Input "+n+" is incompatible with layer "+this.name+": expected min_ndim="+i.minNDim+", found ndim="+o+".");if(null!=i.dtype&&r.dtype!==i.dtype)throw new vp("Input "+n+" is incompatible with layer "+this.name+" : expected dtype="+i.dtype+", found dtype="+r.dtype+".");if(i.axes){var a=r.shape;for(var s in i.axes){var u=Number(s),l=i.axes[s],c=u>=0?a[u]:a[a.length+u];if(null!=l&&-1===[l,null].indexOf(c))throw new vp("Input "+n+" is incompatible with layer "+this.name+": expected axis "+u+" of input shape to have value "+l+" but got shape "+a+".")}}if(null!=i.shape)for(var p=0;p<i.shape.length;++p){var h=i.shape[p],f=r.shape[p];if(null!=h&&null!=f&&h!==f)throw new vp("Input "+n+" is incompatible with layer "+this.name+": expected shape="+i.shape+", found shape=${xShape}.")}}}}},e.prototype.call=function(t,e){return t},e.prototype.invokeCallHook=function(t,e){null!=this._callHook&&this._callHook(t,e)},e.prototype.setCallHook=function(t){this._callHook=t},e.prototype.clearCallHook=function(){this._callHook=null},e.prototype.apply=function(t,e){var n=this;e=e||{},this.assertNotDisposed();for(var r=Ep(t),i=!0,o=0,a=r;o<a.length;o++)if(!(a[o]instanceof lf)){i=!1;break}for(var s=!0,u=0,l=r;u<l.length;u++)if(l[u]instanceof lf){s=!1;break}if(i===s)throw new vp("Arguments to apply() must be all SymbolicTensors or all Tensors");return rh(this.name,function(){if(!n.built){n.assertInputCompatibility(t);for(var i=[],o=0,a=Ep(t);o<a.length;o++){var u=a[o];i.push(u.shape)}n.build(Cp(i)),n.built=!0,n.initialWeights&&n.setWeights(n.initialWeights),null===n._refCount&&s&&(n._refCount=1)}if(n.assertInputCompatibility(t),s){for(var l=[],c=0,p=Ep(m=n.call(t,e));c<p.length;c++){var h=p[c];-1!==r.indexOf(h)&&(h=h.clone()),l.push(h)}if(m=Cp(l),null!=n.activityRegularizer)throw new bp("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return m}var f=function(t){for(var e=[],n=0,r=t=Ep(t);n<r.length;n++){var i=r[n];e.push(i.shape)}return Cp(e)}(t),d=n.computeOutputShape(f),m=void 0,g="float32";if(n.warnOnIncompatibleInputShape(Array.isArray(t)?f[0]:f),m=null!=d&&d.length>0&&Array.isArray(d[0])?d.map(function(r,i){return new lf(g,r,n,Ep(t),e,n.name,i)}):new lf(g,d,n,Ep(t),e,n.name),n.addInboundNode(t,m,null,null,f,d,e),n._refCount++,null!=n.activityRegularizer)throw new bp("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return m})},e.prototype.warnOnIncompatibleInputShape=function(t){if(null!=this.batchInputShape)if(t.length!==this.batchInputShape.length)console.warn("The rank of the input tensor provided (shape: "+JSON.stringify(t)+") does not match that of the batchInputShape ("+JSON.stringify(this.batchInputShape)+") of the layer "+this.name);else{var e=!1;this.batchInputShape.forEach(function(n,r){null!=n&&null!=t[r]&&t[r]!==n&&(e=!0)}),e&&console.warn("The shape of the input tensor ("+JSON.stringify(t)+") does not match the expectation of layer "+this.name+": "+JSON.stringify(this.batchInputShape))}},Object.defineProperty(e.prototype,"outputShape",{get:function(){if(null==this.inboundNodes||0===this.inboundNodes.length)throw new gp("The layer "+this.name+" has never been called and thus has no defined output shape.");for(var t=[],e=0,n=this.inboundNodes;e<n.length;e++){var r=n[e],i=JSON.stringify(r.outputShapes);-1===t.indexOf(i)&&t.push(i)}if(1===t.length){var o=this.inboundNodes[0].outputShapes;return Array.isArray(o)&&Array.isArray(o[0])&&1===o.length?o[0]:o}throw new gp("The layer "+this.name+' has multiple inbound nodes with different output shapes. Hence the notion of "outut shape" is ill-defined for the layer.')},enumerable:!0,configurable:!0}),e.prototype.countParams=function(){if(!this.built)throw new yp("You tried to call countParams() on "+this.name+", but the layer is not built yet. Build it first by calling build(batchInputShape).");return nf(this.weights)},e.prototype.build=function(t){this.built=!0},e.prototype.getWeights=function(t){return void 0===t&&(t=!1),af(t?this.trainableWeights:this.weights)},e.prototype.setWeights=function(t){var e=this;qt(function(){var n=e.weights;if(n.length!==t.length)throw new vp('You called setWeights(weights) on layer "'+e.name+'" with a weight list of length '+t.length+", but the layer was expecting "+n.length+" weights. Provided weights: "+t+"...");if(0!==n.length){for(var r=[],i=af(n),o=0;o<i.length;++o){var a=i[o],s=n[o],u=t[o];if(!X.arraysEqual(a.shape,u.shape))throw new vp("Layer weight shape "+a.shape+" not compatible with provided weight shape "+u.shape);r.push([s,u])}sf(r)}})},e.prototype.addWeight=function(t,e,n,r,i,o,a){if(-1!==this._addedWeightNames.indexOf(t))throw new vp("Duplicate weight name "+t+" for layer "+this.name);this._addedWeightNames.push(t),null==n&&(n="float32"),this.fastWeightInitDuringBuild&&(r=Yh("zeros"));var s=r.apply(e,n),u=new of(s,n,t,o,a);return s.dispose(),null!=i&&this.addLoss(function(){return i.apply(u.read())}),null==o&&(o=!0),o?this._trainableWeights.push(u):this._nonTrainableWeights.push(u),u},e.prototype.setFastWeightInitDuringBuild=function(t){this.fastWeightInitDuringBuild=t},e.prototype.addLoss=function(t){var e;null==t||Array.isArray(t)&&0===t.length||(t=Ep(t),void 0!==this._losses&&null!==this._losses&&(e=this.losses).push.apply(e,t))},e.prototype.computeOutputShape=function(t){return t},e.prototype.computeMask=function(t,e){var n=this;if(!this.supportsMasking){if(null!=e){if(!Array.isArray(e))throw new TypeError("Layer "+this.name+" does not support masking, but was passed an inputMask.");e.forEach(function(t){if(null!=t)throw new TypeError("Layer "+n.name+" does not support masking, but was passed an inputMask.")})}return null}return e},e.prototype.addInboundNode=function(t,e,n,r,i,o,a){void 0===a&&(a=null);var s=Ep(t);e=Ep(e),n=Ep(n),r=Ep(r),i=Qh(i),o=Qh(o);for(var u=[],l=[],c=[],p=0,h=s;p<h.length;p++){var f=h[p];u.push(f.sourceLayer),l.push(f.nodeIndex),c.push(f.tensorIndex)}new pf({outboundLayer:this,inboundLayers:u,nodeIndices:l,tensorIndices:c,inputTensors:s,outputTensors:e,inputMasks:n,outputMasks:r,inputShapes:i,outputShapes:o},a);for(var d=0;d<e.length;d++)e[d].sourceLayer=this,e[d].nodeIndex=this.inboundNodes.length-1,e[d].tensorIndex=d},e.prototype.getConfig=function(){var t={name:this.name,trainable:this.trainable};return null!=this.batchInputShape&&(t.batchInputShape=this.batchInputShape),null!=this.dtype&&(t.dtype=this.dtype),t},e.prototype.disposeWeights=function(){return this.weights.forEach(function(t){return t.dispose()}),this.weights.length},e.prototype.assertNotDisposed=function(){if(0===this._refCount)throw new Error("Layer '"+this.name+"' is already disposed.")},e.prototype.dispose=function(){if(!this.built)throw new Error("Cannot dispose Layer "+this.name+" because it has not been built yet.");if(null===this._refCount)throw new Error("Cannot dispose Layer "+this.name+" because it has not been used yet.");this.assertNotDisposed();var t=0;return 0==--this._refCount&&(t=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:t}},e}(Fc.Serializable);var df,mf=function(t){function e(e){var n=t.call(this,{dtype:e.dtype,name:null!=e.name?e.name:hp("input").toString()})||this;if(null==e.batchSize&&(e.batchSize=null),null==e.sparse&&(e.sparse=!1),n.trainable=!1,n.built=!0,n.sparse=e.sparse,null!=e.inputShape&&null!=e.batchInputShape)throw new vp("Only provide the inputShape OR batchInputShape argument to inputLayer, not both at the same time.");var r=e.batchInputShape;if(null==r){if(null==e.inputShape)throw new vp("An InputLayer should be passed either a `batchInputShape` or an `inputShape`.");r=[e.batchSize].concat(e.inputShape)}else if(null!=e.batchSize)throw new vp("Cannot specify batchSize if batchInputShape is specified when creating an InputLayer.");var i=e.dtype||"float32";n.batchInputShape=r,n.dtype=i,n.inputSpec=[{shape:r}];var o=new lf(n.dtype,n.batchInputShape,n,[],{},n.name);return o.nodeIndex=0,o.tensorIndex=0,new pf({outboundLayer:n,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:[o],outputTensors:[o],inputMasks:[null],outputMasks:[null],inputShapes:[r],outputShapes:[r]}),n}return rp(e,t),e.prototype.apply=function(t,e){throw new vp("Cannot pass any input to an InputLayer's apply() method. InputLayer name: "+this.name)},e.prototype.dispose=function(){return{refCountAfterDispose:this._refCount,numDisposedVariables:0}},e.prototype.getConfig=function(){return{batchInputShape:this.batchInputShape,dtype:this.dtype,sparse:this.sparse,name:this.name}},e.className="InputLayer",e}(ff);function gf(t){if(null==t.batchShape&&null==t.shape)throw new Error("Please provide to Input either a `shape` or a `batchShape` argument. Note that `shape` does not include the batch dimension.");if(null!=t.batchShape&&null!=t.shape)throw new vp("Please provide either a `shape` or `batchShape` argument to Input, but not both.");var e=t.batchShape;null!=t.shape&&null==e&&(e=[null].concat(t.shape));var n=t.dtype;return null==n&&(n="float32"),new mf({batchInputShape:e,name:t.name,dtype:n,sparse:t.sparse}).inboundNodes[0].outputTensors[0]}function yf(t){return ap(this,void 0,void 0,function(){var e,n,r,i,o,a,s,u;return sp(this,function(l){switch(l.label){case 0:if(null==t)return[2];for(i in e=[],n=[],r=[],t)"number"!=typeof(o=t[i])&&(a=o,e.push(a.data()),n.push(i),r.push(a));return[4,Promise.all(e)];case 1:for(s=l.sent(),u=0;u<s.length;++u)t[n[u]]=s[u][0];return Ht(r),[2]}})})}function vf(t){if(null!=t)for(var e in t){var n=t[e];"number"!=typeof n&&n.dispose()}}Fc.registerClass(mf),function(t){t[t.SILENT=0]="SILENT",t[t.VERBOSE=1]="VERBOSE"}(df||(df={}));var bf=function(){function t(){this.validationData=null}return t.prototype.setParams=function(t){this.params=t},t.prototype.onEpochBegin=function(t,e){return ap(this,void 0,void 0,function(){return sp(this,function(t){return[2]})})},t.prototype.onEpochEnd=function(t,e){return ap(this,void 0,void 0,function(){return sp(this,function(t){return[2]})})},t.prototype.onBatchBegin=function(t,e){return ap(this,void 0,void 0,function(){return sp(this,function(t){return[2]})})},t.prototype.onBatchEnd=function(t,e){return ap(this,void 0,void 0,function(){return sp(this,function(t){return[2]})})},t.prototype.onTrainBegin=function(t){return ap(this,void 0,void 0,function(){return sp(this,function(t){return[2]})})},t.prototype.onTrainEnd=function(t){return ap(this,void 0,void 0,function(){return sp(this,function(t){return[2]})})},t.prototype.setModel=function(t){},t}(),wf=function(){function t(t,e){void 0===e&&(e=10),null==t&&(t=[]),this.callbacks=t,this.queueLength=e}return t.prototype.append=function(t){this.callbacks.push(t)},t.prototype.setParams=function(t){for(var e=0,n=this.callbacks;e<n.length;e++)n[e].setParams(t)},t.prototype.setModel=function(t){for(var e=0,n=this.callbacks;e<n.length;e++)n[e].setModel(t)},t.prototype.onEpochBegin=function(t,e){return ap(this,void 0,void 0,function(){var n,r;return sp(this,function(i){switch(i.label){case 0:null==e&&(e={}),n=0,r=this.callbacks,i.label=1;case 1:return n<r.length?[4,r[n].onEpochBegin(t,e)]:[3,4];case 2:i.sent(),i.label=3;case 3:return n++,[3,1];case 4:return[2]}})})},t.prototype.onEpochEnd=function(t,e){return ap(this,void 0,void 0,function(){var n,r;return sp(this,function(i){switch(i.label){case 0:null==e&&(e={}),n=0,r=this.callbacks,i.label=1;case 1:return n<r.length?[4,r[n].onEpochEnd(t,e)]:[3,4];case 2:i.sent(),i.label=3;case 3:return n++,[3,1];case 4:return[2]}})})},t.prototype.onBatchBegin=function(t,e){return ap(this,void 0,void 0,function(){var n,r;return sp(this,function(i){switch(i.label){case 0:null==e&&(e={}),n=0,r=this.callbacks,i.label=1;case 1:return n<r.length?[4,r[n].onBatchBegin(t,e)]:[3,4];case 2:i.sent(),i.label=3;case 3:return n++,[3,1];case 4:return[2]}})})},t.prototype.onBatchEnd=function(t,e){return ap(this,void 0,void 0,function(){var n,r;return sp(this,function(i){switch(i.label){case 0:null==e&&(e={}),n=0,r=this.callbacks,i.label=1;case 1:return n<r.length?[4,r[n].onBatchEnd(t,e)]:[3,4];case 2:i.sent(),i.label=3;case 3:return n++,[3,1];case 4:return[2]}})})},t.prototype.onTrainBegin=function(t){return ap(this,void 0,void 0,function(){var e,n;return sp(this,function(r){switch(r.label){case 0:null==t&&(t={}),e=0,n=this.callbacks,r.label=1;case 1:return e<n.length?[4,n[e].onTrainBegin(t)]:[3,4];case 2:r.sent(),r.label=3;case 3:return e++,[3,1];case 4:return[2]}})})},t.prototype.onTrainEnd=function(t){return ap(this,void 0,void 0,function(){var e,n;return sp(this,function(r){switch(r.label){case 0:null==t&&(t={}),e=0,n=this.callbacks,r.label=1;case 1:return e<n.length?[4,n[e].onTrainEnd(t)]:[3,4];case 2:r.sent(),r.label=3;case 3:return e++,[3,1];case 4:return[2]}})})},t}(),xf=function(){function t(t){this.yieldEvery=t,this.batchCount=0,this.batchDurationsMillis=[],this.autoYieldEveryBatches=null,this.batchStartMillis=X.now()}return t.prototype.maybeYieldOnBatch=function(e){return ap(this,void 0,void 0,function(){var e,n;return sp(this,function(r){switch(r.label){case 0:return"auto"!==this.yieldEvery?[3,5]:(this.batchCount++,null!=this.autoYieldEveryBatches?[3,2]:(e=X.now(),[4,Fl()]));case 1:return r.sent(),this.batchCount>t.SKIP_FIRST_BATCHES&&(this.batchDurationsMillis.push(e-this.batchStartMillis),this.batchDurationsMillis.length>=t.DECISION_BATCH_COUNT&&(n=this.batchDurationsMillis.reduce(function(t,e){return t+e})/this.batchDurationsMillis.length,this.autoYieldEveryBatches=Math.round(t.THRESHOLD_MILLIS/n),this.autoYieldEveryBatches<1&&(this.autoYieldEveryBatches=1))),this.batchStartMillis=X.now(),this.lastYieldBatchCount=this.batchCount,[3,4];case 2:return this.batchCount-this.lastYieldBatchCount>=this.autoYieldEveryBatches?[4,Fl()]:[3,4];case 3:r.sent(),this.lastYieldBatchCount=this.batchCount,r.label=4;case 4:return[3,7];case 5:return"batch"!==this.yieldEvery?[3,7]:[4,Fl()];case 6:r.sent(),r.label=7;case 7:return[2]}})})},t.prototype.maybeYieldOnEpoch=function(){return ap(this,void 0,void 0,function(){return sp(this,function(t){switch(t.label){case 0:return"epoch"!==this.yieldEvery?[3,2]:[4,Fl()];case 1:t.sent(),t.label=2;case 2:return[2]}})})},t.SKIP_FIRST_BATCHES=1,t.DECISION_BATCH_COUNT=2,t.THRESHOLD_MILLIS=16,t}(),Nf=function(t){function e(e){var n=t.call(this)||this;return n.yieldEvery=e||"auto",n}return rp(e,t),e.prototype.onTrainBegin=function(t){return ap(this,void 0,void 0,function(){return sp(this,function(t){return this.autoYielder=new xf(this.yieldEvery),[2]})})},e.prototype.onEpochBegin=function(t){return ap(this,void 0,void 0,function(){return sp(this,function(t){return this.seen=0,this.totals={},[2]})})},e.prototype.onBatchEnd=function(t,e){return ap(this,void 0,void 0,function(){var t,n,r,i,o=this;return sp(this,function(a){switch(a.label){case 0:return[4,this.autoYielder.maybeYieldOnBatch(e)];case 1:for(i in a.sent(),null==e&&(e={}),t=null==e.size?0:e.size,this.seen+=t,n=function(n){var i=e[n];if("number"==typeof i)r.totals.hasOwnProperty(n)||(r.totals[n]=0),r.totals[n]=r.totals[n]+i*t;else{var a=void 0;n in r.totals?a=r.totals[n]:r.totals[n]=mp(0),r.totals[n]=qt(function(){return hu(o.totals[n],Eu(i,mp(t)))}),null!=a&&a.dispose()}},r=this,e)n(i);return[2]}})})},e.prototype.onEpochEnd=function(t,e){return ap(this,void 0,void 0,function(){var t,n,r,i,o,a=this;return sp(this,function(s){switch(s.label){case 0:return[4,this.autoYielder.maybeYieldOnEpoch()];case 1:if(s.sent(),null!=e)for(t=function(t){if(null==n.totals[t])return"continue";"number"==typeof n.totals[t]?e[t]=n.totals[t]/n.seen:qt(function(){e[t]=Eu(gu(mp(1),mp(a.seen)),a.totals[t]),a.totals[t].dispose(),Gt(e[t])})},n=this,r=0,i=this.params.metrics;r<i.length;r++)o=i[r],t(o);return[2]}})})},e}(bf),Sf=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rp(e,t),e.prototype.onTrainBegin=function(t){return ap(this,void 0,void 0,function(){return sp(this,function(t){return this.epoch=[],this.history={},[2]})})},e.prototype.onEpochEnd=function(t,e){return ap(this,void 0,void 0,function(){var n;return sp(this,function(r){for(n in null==e&&(e={}),this.epoch.push(t),e)null==this.history[n]&&(this.history[n]=[]),this.history[n].push(e[n]);return[2]})})},e.prototype.syncData=function(){return ap(this,void 0,void 0,function(){var t,e,n,r,i,o,a,s,u;return sp(this,function(l){switch(l.label){case 0:for(r in t=[],e=[],n=[],this.history)for(i=this.history[r],o=0;o<i.length;++o)"number"!=typeof i[o]&&(a=i[o],t.push(a.data()),e.push(r),n.push(o));return[4,Promise.all(t)];case 1:for(s=l.sent(),u=0;u<s.length;++u)this.history[e[u]][n[u]].dispose(),this.history[e[u]][n[u]]=s[u][0];return[2]}})})},e}(bf),Cf=function(t){function e(e){var n=t.call(this)||this;return n.trainBegin=e.onTrainBegin,n.trainEnd=e.onTrainEnd,n.epochBegin=e.onEpochBegin,n.epochEnd=e.onEpochEnd,n.batchBegin=e.onBatchBegin,n.batchEnd=e.onBatchEnd,n}return rp(e,t),e.prototype.onEpochBegin=function(t,e){return ap(this,void 0,void 0,function(){return sp(this,function(n){switch(n.label){case 0:return null==this.epochBegin?[3,3]:[4,yf(e)];case 1:return n.sent(),[4,this.epochBegin(t,e)];case 2:n.sent(),n.label=3;case 3:return[2]}})})},e.prototype.onEpochEnd=function(t,e){return ap(this,void 0,void 0,function(){return sp(this,function(n){switch(n.label){case 0:return null==this.epochEnd?[3,3]:[4,yf(e)];case 1:return n.sent(),[4,this.epochEnd(t,e)];case 2:n.sent(),n.label=3;case 3:return[2]}})})},e.prototype.onBatchBegin=function(t,e){return ap(this,void 0,void 0,function(){return sp(this,function(n){switch(n.label){case 0:return null==this.batchBegin?[3,3]:[4,yf(e)];case 1:return n.sent(),[4,this.batchBegin(t,e)];case 2:n.sent(),n.label=3;case 3:return[2]}})})},e.prototype.onBatchEnd=function(t,e){return ap(this,void 0,void 0,function(){return sp(this,function(n){switch(n.label){case 0:return null==this.batchEnd?[3,3]:[4,yf(e)];case 1:return n.sent(),[4,this.batchEnd(t,e)];case 2:n.sent(),n.label=3;case 3:return[2]}})})},e.prototype.onTrainBegin=function(t){return ap(this,void 0,void 0,function(){return sp(this,function(e){switch(e.label){case 0:return null==this.trainBegin?[3,3]:[4,yf(t)];case 1:return e.sent(),[4,this.trainBegin(t)];case 2:e.sent(),e.label=3;case 3:return[2]}})})},e.prototype.onTrainEnd=function(t){return ap(this,void 0,void 0,function(){return sp(this,function(e){switch(e.label){case 0:return null==this.trainEnd?[3,3]:[4,yf(t)];case 1:return e.sent(),[4,this.trainEnd(t)];case 2:e.sent(),e.label=3;case 3:return[2]}})})},e}(bf);function Ef(t){return null==t?null:t instanceof bf?[t]:Array.isArray(t)&&t[0]instanceof bf?t:Ep(t).map(function(t){return new Cf(t)})}var If=function(){function t(){}return t.registerCallbackConstructor=function(e,n){X.assert(e>=0&&Number.isInteger(e),function(){return"Verbosity level is expected to be an integer >= 0, but got "+e}),t.checkForDuplicate(n),null==t.constructors[e]&&(t.constructors[e]=[]),t.constructors[e].push(n)},t.checkForDuplicate=function(e){for(var n in t.constructors)t.constructors[+n].forEach(function(t){if(t===e)throw new vp("Duplicate callback constructor.")})},t.clear=function(){t.constructors={}},t.createCallbacks=function(e){var n=[];for(var r in t.constructors){var i=+r;e>=i&&n.push.apply(n,t.constructors[i])}return n.map(function(t){return new t})},t.constructors={},t}();function kf(t,e,n,r,i,o,a,s,u,l){var c=new Sf,p=[new Nf(e)].concat(If.createCallbacks(n));null!=t&&p.push.apply(p,t),p.push(c);var h=new wf(p);return h.setParams({epochs:r,initialEpoch:i,samples:o,steps:a,batchSize:s,verbose:n,doValidation:u,metrics:l}),{callbackList:h,history:c}}function Af(t,e){return qt(function(){var n=Zs(Eh(t),e,!0),r=Eu(Re(up()),Ve(t)),i=Ua(bu(n,r));return gu(t,i)})}function Tf(t,e){return qt(function(){return Xs(Eh(Du(e,t)),-1)})}function Rf(t,e){return qt(function(){return Xs(fa(Du(e,t)),-1)})}function Df(t,e){return qt(function(){var n=Du(t,e),r=xa(fa(t),up(),Number.MAX_VALUE),i=fa(gu(n,r));return Eu(mp(100),Xs(i,-1))})}function Of(t,e){return qt(function(){var n=mp(1),r=xa(e,up(),Number.MAX_VALUE),i=Aa(hu(n,r)),o=xa(t,up(),Number.MAX_VALUE),a=Aa(hu(n,o));return Xs(Eh(Du(i,a)),-1)})}function _f(t,e){return qt(function(){var n=mp(0),r=mp(1),i=bu(n,Du(r,Eu(t,e)));return Xs(Eh(i),-1)})}function Mf(t,e){return qt(function(){var n=mp(0),r=mp(1),i=bu(n,Du(r,Eu(t,e)));return Xs(i,-1)})}function Lf(t,e){return qt(function(){var n=mp(0),r=mp(1),i=Zs(Eu(t,e),-1),o=$s(Eu(Du(r,t),e),-1);return bu(n,hu(r,Du(o,i)))})}function Ff(t,e){return qt(function(){var n=mp(Math.log(2)),r=Du(e,t),i=Du(hu(r,Ba(Eu(mp(-2),r))),n);return Xs(i,-1)})}function zf(t,e,n){return void 0===n&&(n=!1),qt(function(){if(n)e=Ce(e);else{var r=Zs(e,e.shape.length-1,!0);e=gu(e,r)}return e=xa(e,up(),1-up()),Da(Zs(Eu(t.toFloat(),Aa(e)),e.shape.length-1))})}function Pf(t,e){return qt(function(){var n=ka(function(t){var e=[lh(t.shape)];return t.reshape(e)}(t)).toInt(),r=(e=xa(e,up(),1-up())).shape;return zf(Ko(n,r[r.length-1]).reshape(r),e,!1)})}function Bf(t,e){return qt(function(){var n;return n=xa(e,up(),1-up()),n=Aa(gu(n,Du(mp(1),n))),Xs(function(t,e){if(!X.arraysEqual(t.shape,e.shape))throw new vp("logits and labels must have the same shape, but got shapes "+JSON.stringify(t.shape)+" and "+JSON.stringify(e.shape));return qt(function(){var n=e.relu(),r=e.abs().neg();return n.sub(e.mul(t)).add(r.exp().log1p())})}(t,n),-1)})}function Uf(t,e){return qt(function(){var n=xa(t,up(),1),r=xa(e,up(),1);return Zs(Eu(t,Aa(gu(n,r))),-1)})}function Wf(t,e){return qt(function(){var n=Aa(hu(mp(up()),e));return Xs(Du(e,Eu(t,n)),-1)})}function Vf(t,e){return qt(function(){var n=Af(t,-1),r=Af(e,-1),i=Eu(n,r);return Da(Zs(i,-1))})}function jf(t){var e={meanSquaredError:Tf,meanAbsoluteError:Rf,meanAbsolutePercentageError:Df,meanSquaredLogarithmicError:Of,squaredHinge:_f,hinge:Mf,categoricalHinge:Lf,logcosh:Ff,categoricalCrossentropy:zf,sparseCategoricalCrossentropy:Pf,binaryCrossentropy:Bf,kullbackLeiblerDivergence:Uf,poisson:Wf,cosineProximity:Vf};if("string"==typeof t){if(t in e)return e[t];var n="Unknown loss "+t;throw t.toLowerCase().includes("softmaxcrossentropy")&&(n="Unknown loss "+t+'. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy'),new vp(n)}return t}function qf(t,e){return qt(function(){var n=Eu(mp(.5),Ve(e)),r=dh(nu(e,n),t.dtype);return Xs(tu(t,r),-1)})}function Gf(t,e){return qt(function(){return dh(tu(Gs(t,-1),Gs(e,-1)),"float32")})}function Hf(t,e){return qt(function(){var n=mp(1);return _u(t.equal(n),e.equal(n)).sum().cast("float32")})}function Kf(t,e){return qt(function(){var n=mp(0),r=Hf(t,e),i=function(t,e){return qt(function(){var n=mp(1),r=mp(0);return _u(t.equal(r),e.equal(n)).sum().cast("float32")})}(t,e),o=r.add(i);return zu(nu(o,n),r.div(o),n).cast("float32")})}function $f(t,e){return qt(function(){var n=mp(0),r=Hf(t,e),i=function(t,e){return qt(function(){var n=mp(1),r=mp(0);return _u(t.equal(n),e.equal(r)).sum().cast("float32")})}(t,e),o=r.add(i);return zu(nu(o,n),r.div(o),n).cast("float32")})}function Xf(t,e){return Bf(t,e)}function Yf(t,e){return t.rank===e.rank&&(t=t.squeeze([t.rank-1])),(e=e.argMax(-1)).dtype!==t.dtype&&(e=e.asType(t.dtype)),tu(t,e).asType("float32")}var Jf=Tf,Zf=Tf,Qf=Rf,td=Rf,ed=Df,nd=Df,rd=zf,id=Vf,od=Pf;function ad(t,e,n,r){void 0===r&&(r=console.log);var i,o=function(t){var e=!0,n=[],r=[];for(var i in t.nodesByDepth)n.push(t.nodesByDepth[i]);for(var o=0,a=n;o<a.length;o++){var s=a[o];if(s.length>1||1===s.length&&s[0].inboundLayers.length>1){e=!1;break}r.push.apply(r,s)}if(e)for(var u=0,l=t.layers;u<l.length;u++){for(var c=!1,p=0,h=l[u].inboundNodes;p<h.length;p++){var f=h[p];if(-1!==r.indexOf(f)){if(c){e=!1;break}c=!0}}if(!e)break}return e}(t),a=["Layer (type)","Output shape","Param #"];if(o?(e=e||65,n=n||[.45,.85,1]):(e=e||98,n=n||[.33,.55,.67,1]),n[n.length-1]<=1&&(n=n.map(function(t){return Math.floor(e*t)})),!o)for(var s in a.push("Receives inputs"),i=[],t.nodesByDepth)i.push.apply(i,t.nodesByDepth[s]);r("_".repeat(e)),sd(a,n,r),r("=".repeat(e));for(var u=t.layers,l=0;l<u.length;++l)o?ud(u[l],n,r):ld(u[l],n,i,r),r((l===u.length-1?"=":"_").repeat(e));t.checkTrainableWeightsConsistency();var c=function(t){return null!=t.collectedTrainableWeights?nf(t.collectedTrainableWeights):nf(t.trainableWeights)}(t),p=nf(t.nonTrainableWeights);r("Total params: "+(c+p)),r("Trainable params: "+c),r("Non-trainable params: "+p),r("_".repeat(e))}function sd(t,e,n){void 0===n&&(n=console.log);for(var r="",i=0;i<t.length;++i)i>0&&(r=r.slice(0,r.length-1)+" "),r=(r+=t[i]).slice(0,e[i]),r+=" ".repeat(e[i]-r.length);n(r)}function ud(t,e,n){var r;try{r=JSON.stringify(t.outputShape)}catch(t){r="multiple"}sd([t.name+" ("+t.getClassName()+")",r,t.countParams().toString()],e,n)}function ld(t,e,n,r){var i;try{i=JSON.stringify(t.outputShape)}catch(t){i="multiple"}for(var o=[],a=0,s=t.inboundNodes;a<s.length;a++){var u=s[a];if(!(null!=n&&n.length>0&&-1===n.indexOf(u)))for(var l=0;l<u.inboundLayers.length;++l){var c=u.inboundLayers[l].name,p=u.nodeIndices[l],h=u.tensorIndices[l];o.push(c+"["+p+"]["+h+"]")}}var f=t.name,d=t.getClassName(),m=0===o.length?"":o[0];for(sd([f+" ("+d+")",i,t.countParams().toString(),m],e,r),l=1;l<o.length;++l)sd(["","","",o[l]],e,r)}function cd(t,e,n){return void 0===e&&(e={}),void 0===n&&(n=!1),Rp(t,Fc.SerializationMap.getMap().classNameMap,e,"layer",n)}function pd(t,e,n){return("inboundNodes"===t||"outputLayers"===t||"inputLayers"===t)&&0===e&&"string"==typeof n}function hd(t,e){if(null===t)return null;if("string"==typeof t)return kp(t);if("number"==typeof t||"boolean"==typeof t)return t;if(t instanceof Array){for(var n=[],r=t.length,i=0;i<r;++i){var o=t[i];pd(e,i,o)?n.push(o):n.push(hd(o,e))}return n}for(var a={},s=0,u=Object.keys(t);s<u.length;s++){var l=u[s],c=t[l];if("name"===l&&"string"==typeof c)a[l]=c;else{var p=kp(l);a[p]=hd(c,p)}}return a}var fd=function(){function t(e){if(this.id2Value={},this.id2Mask={},this.name2Id={},e instanceof t)for(var n in e.id2Value)this.id2Value[n]=e.id2Value[n],n in e.id2Mask&&(this.id2Mask[n]=e.id2Mask[n]);else{if(null==e)return;for(var r=0,i=e;r<i.length;r++){var o=i[r];this.add(o.key,o.value)}}}return t.prototype.add=function(t,e,n){if(null!=this.id2Value[t.id])throw new vp("Duplicate key: name="+t.name+", id="+t.id);return this.id2Value[t.id]=function(t,e){if(null==t.dtype||t.dtype===e.dtype)return e;try{return Uo(e,t.dtype)}catch(n){throw new vp("The dtype of the feed ("+e.dtype+") can not be cast to the dtype of the key '"+t.name+"' ("+t.dtype+").")}}(t,e),this.name2Id[t.name]=t.id,null!=n&&(this.id2Mask[t.id]=n),this},t.prototype.addFeed=function(t){this.add(t.key,t.value)},t.prototype.hasKey=function(t){return null!=this.id2Value[t.id]},t.prototype.names=function(){return Object.keys(this.name2Id)},t.prototype.getValue=function(t){if(t instanceof lf){if(null==this.id2Value[t.id])throw new vp("Nonexistent key: "+t.name);return this.id2Value[t.id]}var e=this.name2Id[t];if(null==e)throw new vp("Feed dict has no SymbolicTensor name: "+t);return this.id2Value[e]},t.prototype.getMask=function(t){if(t instanceof lf){if(null==this.id2Value[t.id])throw new vp("Nonexistent key: "+t.name);return this.id2Mask[t.id]}var e=this.name2Id[t];if(null==e)throw new vp("Feed dict has no SymbolicTensor name: "+t);return this.id2Mask[e]},t.prototype.disposeMasks=function(){null!=this.id2Mask&&Ht(this.id2Mask)},t}(),dd={},md={};function gd(t,e,n,r){for(var i=null!=n&&n.training,o=Array.isArray(t),a=o?t:[t],s=a.map(function(t){return t.name}),u=[],l=e.names(),c=0,p=s;c<p.length;c++){var h=p[c];-1!==l.indexOf(h)?u.push(e.getValue(h)):u.push(null)}null!=r&&(r.maxNumTensors=-1/0,r.minNumTensors=1/0);var f,d,m=s.join(",")+"|"+e.names().join(",");if(null==dd[m]){var g=function(t,e){X.assert(null!=t&&t.length>0,function(){return"Expected at least one fetch, got none"});var n=[],r={};if(1===t.length){var i=yd(t[0],e);n=i.sorted,r=i.recipientMap}else for(var o=new Set,a=0,s=t;a<s.length;a++){for(var u=yd(s[a],e),l=u.sorted,c=u.recipientMap,p=0,h=l;p<h.length;p++){var f=h[p];o.has(f.name)||(n.push(f),o.add(f.name))}var d=function(t){null==r[t]&&(r[t]=new Set),c[t].forEach(function(e){return r[t].add(e)})};for(var m in c)d(m)}return{sorted:n,recipientCounts:function(t){var e={};for(var n in t)e[n]=t[n].size;return e}(r)}}(a,e);f=g.sorted,d=g.recipientCounts,dd[m]=f,md[m]=d}f=dd[m],d={},i||Object.assign(d,md[m]);for(var y=new fd(e),v=0;v<f.length;++v){if(null!=r){var b=ep().numTensors;b>r.maxNumTensors&&(r.maxNumTensors=b),b<r.minNumTensors&&(r.minNumTensors=b)}var w=f[v],x=w.sourceLayer;if(!(x instanceof mf)){for(var N=[],S=[],C=[],E=!1,I=0,k=w.inputs;I<k.length;I++){var A=k[I],T=y.getValue(A),R=y.getMask(A);N.push(T),S.push(R),null!=R&&(E=!0),i||(d[A.name]--,0!==d[A.name]||e.hasKey(A)||-1!==s.indexOf(A.name)||T.isDisposed||C.push(T))}E&&((n=n||{}).mask=S[0]);var D=Ep(x.apply(N,n)),O=null;x.supportsMasking&&(O=x.computeMask(N,S));for(var _=vd(w),M=Array.isArray(_)?_:[_],L=0;L<M.length;++L){y.hasKey(M[L])||y.add(M[L],D[L],Array.isArray(O)?O[0]:O);var F=s.indexOf(M[L].name);-1!==F&&(u[F]=D[L])}i||Ht(C)}}return y.disposeMasks(),o?u:u[0]}function yd(t,e){for(var n=new Set,r=[],i={},o=0,a=e.names();o<a.length;o++){var s=a[o];n.add(s)}var u=[],l=[];for(u.push(t);u.length>0;){var c=u[u.length-1];if(n.has(c.name))u.pop();else{var p=l[l.length-1]===u.length-1;if(0===c.inputs.length||p)u.pop(),r.push(c),n.add(c.name),p&&l.pop();else{l.push(u.length-1);for(var h=0,f=c.inputs;h<f.length;h++){var d=f[h];null==i[d.name]&&(i[d.name]=new Set),i[d.name].add(c.name),n.has(d.name)||u.push(d)}}}}return{sorted:r,recipientMap:i}}function vd(t){var e;if(1===t.sourceLayer.inboundNodes.length)e=t.sourceLayer.output;else{for(var n=null,r=0;r<t.sourceLayer.inboundNodes.length;++r)for(var i=0,o=t.sourceLayer.inboundNodes[r].outputTensors;i<o.length;i++)if(o[i].id===t.id){n=r;break}e=t.sourceLayer.getOutputAt(n)}return e}var bd=32;function wd(t,e){var n,r,i=e;n=i.xs,r=i.ys,X.assert(null!=n&&null!=r,function(){return"A Dataset iterator for fitDataset() is expected to generate objects of the form `{xs: xVal, ys: yVal}`, where the two values may be `tf.Tensor`, an array of Tensors, or a map of string to Tensor.  The provided Dataset instead generates "+e});var o=xd("input",t.inputNames,n),a=xd("output",t.outputNames,r),s=o[0].shape[0];for(var u in X.assert(o.length===t.inputs.length,function(){return"LayersModel has "+t.inputs.length+" inputs, but the dataset provides "+o.length+" inputs.  (Expected input keys: "+JSON.stringify(t.inputNames)+")"}),X.assert(a.length===t.outputs.length,function(){return"LayersModel has "+t.outputs.length+" outputs, but the dataset provides "+a.length+" outputs.  (Expected output keys: "+JSON.stringify(t.outputNames)+")"}),o)X.assert(o[u].shape[0]===s,function(){return"Batch size mismatch: input "+t.inputNames[u]+" has "+o[u].shape[0]+"; expected  "+s+" based on input "+t.inputNames[0]+"."});for(var l in a)X.assert(a[l].shape[0]===s,function(){return"Batch size mismatch: output "+t.outputNames[l]+" has "+a[l].shape[0]+"; expected  "+s+" based on input "+t.inputNames[0]+"."});return o.concat(a)}function xd(t,e,n){if(n instanceof ut)return[n];if(Array.isArray(n))return X.assert(n.length===e.length,function(){return"Received an array of "+n.length+" Tensors, but expected "+e.length+" to match the "+t+" keys "+e+"."}),n;for(var r=[],i=0,o=e;i<o.length;i++){var a=o[i];if(null==n[a])throw new vp("The feature data generated by the dataset lacks the required "+t+" key '"+a+"'.");r.push(n[a])}return r}function Nd(t,e,n){return ap(this,void 0,void 0,function(){var r,i,o,a,s,u,l,c,p,h,f,d,m,g,y,v,b,w,x,N,S,C,E,I,k,A,T;return sp(this,function(R){switch(R.label){case 0:if(r=null!=n.batchesPerEpoch,X.assert(null!=t.optimizer,function(){return"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."}),X.assert(null!=n,function(){return"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."}),X.assert(null!=n.epochs&&n.epochs>0&&Number.isInteger(n.epochs),function(){return"For fitDataset(), config.epochs is expected to be a positive integer, but got "+n.epochs}),X.assert(!r||n.batchesPerEpoch>0&&Number.isInteger(n.batchesPerEpoch),function(){return"For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got "+n.batchesPerEpoch}),X.assert(null==n.validationSplit,function(){return"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."}),t.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");t.isTraining=!0,R.label=1;case 1:return R.trys.push([1,,22,23]),i=null!=n.validationData,o=void 0,a=void 0,i&&(Sd(n.validationData)?X.assert(null==n.validationBatches||n.validationBatches>0&&Number.isInteger(n.validationBatches),function(){return"For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got "+n.validationBatches}):(s=function(t){if(3===t.length)throw new bp("Validation with sample weights is not implemented yet.");return{xs:t[0],ys:t[1]}}(n.validationData),o=s.xs,a=s.ys)),u=t.makeTrainFunction(),l=t.getDedupedMetricsNames(),c=void 0,c=i?l.slice().concat(l.map(function(t){return"val_"+t})):l.slice(),p=Ef(n.callbacks),h=null==n.verbose?1:n.verbose,f=kf(p,n.yieldEvery,h,n.epochs,null,null,function(t,e){var n=null;return null!=e.batchesPerEpoch?n=e.batchesPerEpoch:Number.isFinite(t.size)&&(n=t.size),n}(e,n),null,i,c),d=f.callbackList,m=f.history,d.setModel(t),t.history=m,[4,d.onTrainBegin()];case 2:return R.sent(),t.stopTraining_=!1,g=null==n.initialEpoch?0:n.initialEpoch,[4,e.iterator()];case 3:y=R.sent(),R.label=4;case 4:return g<n.epochs?(v={},[4,d.onEpochBegin(g)]):[3,19];case 5:return R.sent(),b=0,w=0,r?[3,7]:[4,e.iterator()];case 6:y=R.sent(),R.label=7;case 7:return!r||b<n.batchesPerEpoch?[4,y.next()]:[3,17];case 8:return x=R.sent(),r&&x.done?(console.warn("You provided `batchesPerEpoch` as "+n.batchesPerEpoch+", but your dataset iterator ran out of data after "+b+" batches; interrupting training. Make sure that your dataset can generate at least `batchesPerEpoch * epochs` batches (in this case, "+n.batchesPerEpoch*n.epochs+" batches). You may need to use the repeat() function when building your dataset."),[3,17]):null==x.value?[3,11]:(N=wd(t,x.value),(S={}).batch=w,S.size=N[0].shape[0],[4,d.onBatchBegin(w,S)]);case 9:for(R.sent(),C=u(N),Ht(N),T=0;T<l.length;++T)E=l[T],I=C[T],S[E]=I,Gt(I);return[4,d.onBatchEnd(w,S)];case 10:R.sent(),vf(S),w++,b++,R.label=11;case 11:return(r?b>=n.batchesPerEpoch:x.done)?i?(k=void 0,Sd(n.validationData)?(A=Ep,[4,t.evaluateDataset(n.validationData,{batches:n.validationBatches})]):[3,13]):[3,15]:[3,16];case 12:return k=A.apply(void 0,[R.sent()]),[3,14];case 13:k=Ep(t.evaluate(o,a,{batchSize:null==n.validationBatchSize?bd:n.validationBatchSize,verbose:0})),R.label=14;case 14:for(T=0;T<t.metricsNames.length;++T)v["val_"+t.metricsNames[T]]=k[T];R.label=15;case 15:return[3,17];case 16:return t.stopTraining_?[3,17]:[3,7];case 17:return[4,d.onEpochEnd(g,v)];case 18:return R.sent(),g++,t.stopTraining_?[3,19]:[3,4];case 19:return[4,d.onTrainEnd()];case 20:return R.sent(),[4,t.history.syncData()];case 21:return R.sent(),[2,t.history];case 22:return t.isTraining=!1,[7];case 23:return[2]}})})}function Sd(t){return"function"==typeof t.iterator}function Cd(t){X.assert(t>0&&Number.isInteger(t),function(){return"batchSize is required to be a positive integer, but got "+t})}function Ed(t,e,n){return null==t?[null]:Array.isArray(t)?t.map(function(t){return gh(t,e,n-e)}):gh(t,e,n-e)}function Id(t,e){return qt(function(){return null==t?null:Array.isArray(t)?t.map(function(t){return Id(t,e)}):Ch(t,"int32"===e.dtype?e:e.toInt())})}function kd(t,e){for(var n=[],r=0,i=null;r<t;)(i=r+e)>=t&&(i=t),n.push([r,i]),r=i;return n}function Ad(t,e,n,r){return void 0===r&&(r={}),ap(this,void 0,void 0,function(){var i,o,a,s,u,l,c,p,h,f,d,m,g,y,v,b,w,x,N;return sp(this,function(S){switch(S.label){case 0:if(t.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");t.isTraining=!0,S.label=1;case 1:if(S.trys.push([1,,3,4]),Cd(c=null==r.batchSize?32:r.batchSize),p=t.standardizeUserData(e,n,!1,c),i=p[0],o=p[1],h=!1,f=void 0,null!=r.validationData&&r.validationData.length>0){if(h=!0,2!==r.validationData.length)throw 3===r.validationData.length?new bp("validationData including sample weights is not supported yet."):new vp("When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; "+r.validationData+" is invalid.");a=r.validationData[0],s=r.validationData[1],d=t.standardizeUserData(a,s,!0,c),u=d[0],l=d[1],f=u.concat(l)}else null!=r.validationSplit&&r.validationSplit>0&&r.validationSplit<1?(h=!0,m=Math.floor(i[0].shape[0]*(1-r.validationSplit)),g=i[0].shape[0],u=Ed(i,m,g),i=Ed(i,0,m),l=Ed(o,m,g),o=Ed(o,0,m),f=u.concat(l)):null!=r.validationSteps&&(h=!0);return y=i.concat(o),t.checkTrainableWeightsConsistency(),v=t.makeTrainFunction(),b=t.getDedupedMetricsNames(),w=void 0,x=void 0,h?(t.makeTestFunction(),w=t.testFunction,x=b.slice().concat(b.map(function(t){return"val_"+t}))):(w=null,f=[],x=b.slice()),N=Ef(r.callbacks),[4,function(t,e,n,r,i,o,a,s,u,l,c,p,h,f,d,m){return ap(this,void 0,void 0,function(){var g,y,v,b,w,x,N,S;return sp(this,function(C){switch(C.label){case 0:if(null==i&&(i=32),null==o&&(o=1),null==c&&(c=!0),null==h&&(h=0),g=!1,null!=u&&null!=l&&(g=!0),null!=d&&(g=!0,null==f))throw new vp("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");return null!=(y=t.checkNumSamples(n,i,f,"steps_per_epoch"))&&(v=fh(0,y)),null==a&&(a=1),b=kf(s,m,a,o,h,y,f,i,g,p),w=b.callbackList,x=b.history,w.setModel(t),t.history=x,[4,w.onTrainBegin()];case 1:C.sent(),t.stopTraining_=!1,N=function(o){var a,s,p,h,d;return sp(this,function(m){switch(m.label){case 0:return[4,w.onEpochBegin(o)];case 1:if(m.sent(),a={},null==f)return[3,2];throw new bp("stepsPerEpoch mode is not implemented yet.");case 2:if("batch"===c)throw new bp("batch shuffling is not implemneted yet");c&&X.shuffle(v),s=De(v),p=kd(y,i),h=function(o){var c;return sp(this,function(h){switch(h.label){case 0:return c={},[4,w.onBatchBegin(o,c)];case 1:return h.sent(),qt(function(){var h=p[o][0],f=p[o][1],d=gh(s,h,f-h);c.batch=o,c.size=f-h;for(var m=Id(n,d),y=e(m),v=0;v<r.length;++v){var b=r[v],w=y[v];c[b]=w,Gt(w)}if(o===p.length-1&&g){var x=t.testLoop(u,l,i);for(v=0;v<r.length;++v)b=r[v],w=x[v],Gt(w),a["val_"+b]=w}}),[4,w.onBatchEnd(o,c)];case 2:return h.sent(),vf(c),t.stopTraining_?[2,"break"]:[2]}})},d=0,m.label=3;case 3:return d<p.length?[5,h(d)]:[3,6];case 4:if("break"===m.sent())return[3,6];m.label=5;case 5:return++d,[3,3];case 6:s.dispose(),m.label=7;case 7:return[4,w.onEpochEnd(o,a)];case 8:return m.sent(),t.stopTraining_?[2,"break"]:[2]}})},S=h,C.label=2;case 2:return S<o?[5,N(S)]:[3,5];case 3:if("break"===C.sent())return[3,5];C.label=4;case 4:return++S,[3,2];case 5:return[4,w.onTrainEnd()];case 6:return C.sent(),[4,t.history.syncData()];case 7:return C.sent(),[2,t.history]}})})}(t,v,y,b,c,r.epochs,r.verbose,N,w,f,r.shuffle,x,r.initialEpoch,null,null,r.yieldEvery)];case 2:return[2,S.sent()];case 3:return t.isTraining=!1,Rd(i,e),Rd(o,n),Rd(u,a),Rd(l,s),[7];case 4:return[2]}})})}function Td(t){var e=[];t instanceof ut&&(t=[t]);for(var n=0;n<t.length;++n){var r=t[n];if(1===r.rank)e.push(mh(r,1));else{if(0===r.rank)throw new Error("Expected tensor to be at least 1D, but received a 0D tensor (scalar).");e.push(r)}}return e}function Rd(t,e){if(null!=t){var n=[];if(e instanceof ut)n.push(e.id);else if(Array.isArray(e))e.forEach(function(t){return n.push(t.id)});else if(null!=e)for(var r in e){var i=e[r];n.push(i.id)}var o=[];if(t instanceof ut)-1===n.indexOf(t.id)&&o.push(t);else if(Array.isArray(t))t.forEach(function(t){-1===n.indexOf(t.id)&&o.push(t)});else if(null!=t)for(var a in t){var s=t[a];-1===n.indexOf(s.id)&&o.push(s)}o.forEach(function(t){t.isDisposed||t.dispose()})}}function Dd(t){return Array.isArray(t)}function Od(t){return!function(t){return t instanceof ut}(t)&&!Dd(t)}function _d(t,e,n,r,i){if(void 0===r&&(r=!0),void 0===i&&(i=""),null==e||0===e.length){if(null!=t){var o=!1;if(Dd(t)&&t.length>0)o=!0;else if(Od(t)){for(var a in t)if(t.hasOwnProperty(a)){o=!0;break}}else o=!0;if(o)throw new vp("Error when checking model "+i+" expected no data, but got "+t)}return[]}if(null==t)return e.map(function(t){return null});var s;if(Od(t)){t=t,s=[];for(var u=0,l=e;u<l.length;u++){var c=l[u];if(null==t[c])throw new vp('No data provided for "'+c+'". Need data for each key in: '+e);s.push(t[c])}}else if(Dd(t)){if((t=t).length!==e.length)throw new vp("Error when checking model "+i+": the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see "+e.length+" Tensor(s), but instead got the following list of Tensor(s): "+t);s=t}else{if(t=t,e.length>1)throw new vp("The model "+i+" expects "+e.length+" Tensor(s), but only received one Tensor. Found: Tensor with shape "+t.shape);s=[t]}if(s=Td(s),null!=n)for(var p=0;p<e.length;++p)if(null!=n[p]){var h=s[p];if(h.shape.length!==n[p].length)throw new vp("Error when checking "+i+": expected "+e[p]+" to have "+n[p].length+" dimension(s). but got array with shape "+h.shape);for(var f=0;f<n[p].length;++f)if(0!==f||r){var d=h.shape[f],m=n[p][f];if(null!=m&&m>=0&&d!==m)throw new vp("Error when checking "+i+": expected "+e[p]+" to have shape ["+n[p]+"], but got array with shape ["+h.shape+"].")}}return s}function Md(t,e,n,r,i){var o;if(void 0===r&&(r=!0),void 0===i&&(i=""),Array.isArray(t)){if(t.length!==e.length)throw new vp("Error when checking model "+i+": the Array of Tensors that you are passing to your model is not the size the the model expected. Expected to see "+e.length+" Tensor(s), but instead got "+t.length+" Tensors(s).");o=t}else{if(e.length>1)throw new vp("The model expects "+e.length+" "+i+" Tensors, but only received one Tensor. Found: array with shape "+JSON.stringify(t.shape)+".");o=[t]}if(null!=n)for(var a=0;a<e.length;++a)if(null!=n[a]){var s=o[a];if(s.shape.length!==n[a].length)throw new vp("Error when checking "+i+": expected "+e[a]+" to have "+n[a].length+" dimension(s), but got array with shape "+JSON.stringify(s.shape));for(var u=0;u<n[a].length;++u)if(0!==u||r){var l=s.shape[u],c=n[a][u];if(null!=c&&c!==l)throw new vp("Error when checking "+i+": expected "+e[a]+" to have shape "+JSON.stringify(n[a])+" but got array with shape "+JSON.stringify(s.shape)+".")}}}var Ld=function(t){function e(e){var n=t.call(this,e)||this;return n.isTraining=!1,n}return rp(e,t),e.prototype.summary=function(t,e,n){if(void 0===n&&(n=console.log),!this.built)throw new vp("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");ad(this,t,e,n)},e.prototype.compile=function(t){var e=this;if(null==t.loss&&(t.loss=[]),this.loss=t.loss,"string"==typeof t.optimizer)this.optimizer=function(t){var e={Adagrad:function(){return Jc.adagrad(.01)},Adadelta:function(){return Jc.adadelta(1,.95,up())},Adam:function(){return Jc.adam(.001,.9,.999,up())},Adamax:function(){return Jc.adamax(.002,.9,.999,up(),0)},RMSProp:function(){return Jc.rmsprop(.001,.9,0,up())},SGD:function(){return Jc.sgd(.01)}};if(e.adagrad=e.Adagrad,e.adadelta=e.Adadelta,e.adam=e.Adam,e.adamax=e.Adamax,e.rmsprop=e.RMSProp,e.sgd=e.SGD,t in e)return e[t]();throw new vp("Unknown Optimizer "+t)}(t.optimizer);else{if(!(t.optimizer instanceof Vc))throw new vp("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer=t.optimizer}var n=[];if(Array.isArray(t.loss)||"string"==typeof t.loss||"function"==typeof t.loss)if(Array.isArray(t.loss)){if(t.loss.length!==this.outputs.length)throw new vp("When passing an Array as loss, it should have one entry per model output. The model has "+this.outputs.length+" output(s), but you passed loss="+t.loss+".");var r=t.loss;n=r.map(function(t){return jf(t)})}else{var i=jf(t.loss);this.outputs.forEach(function(t){n.push(i)})}else{for(var o in t.loss=t.loss,t.loss)if(-1===this.outputNames.indexOf(o))throw new vp('Unknown entry in loss dictionary: "'+o+'". Only expected the following keys: '+this.outputNames);for(var a=0,s=this.outputNames;a<s.length;a++){var u=s[a];null==t.loss[u]&&console.warn('Output "'+u+'" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to '+u+" during training"),n.push(jf(t.loss[u]))}}this.lossFunctions=n,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(var l=0;l<this.outputs.length;++l){var c=this.internalOutputShapes[l],p=this.outputNames[l];this.feedOutputNames.push(p),this.feedOutputShapes.push(c),this.feedLossFns.push(this.lossFunctions[l])}var h=[];this.metrics=t.metrics,this.metricsNames=["loss"],this.metricsTensors=[],rh("loss",function(){for(var t=0;t<e.outputs.length;++t)if(-1===h.indexOf(t)){var n=e.lossFunctions[t];e.outputs.length>1&&(e.metricsTensors.push([n,t]),e.metricsNames.push(e.outputNames[t]+"_loss"))}});var f=function(t,e){if(null==t||Array.isArray(t)&&0===t.length)return e.map(function(t){return[]});if(Array.isArray(t))return e.map(function(e){return t});if(null!=t){for(var n=[],r=0,i=e;r<i.length;r++){var o=i[r],a=t.hasOwnProperty(o)?t[o]:[];Array.isArray(a)||(a=[a]),n.push(a)}return n}throw new TypeError("Type of metrics argument not understood. Expected an Array or Object, found: "+t)}(t.metrics,this.outputNames);rh("metric",function(){for(var t=function(t){if(-1!==h.indexOf(t))return"continue";!function(n){for(var r,i,o,a=function(n){if(-1!==["accuracy","acc","crossentropy","ce"].indexOf(n)){var a=e.internalOutputShapes[t];1===a[a.length-1]||e.lossFunctions[t]===Bf?-1!==["accuracy","acc"].indexOf(n)?i=qf:-1!==["crossentropy","ce"].indexOf(n)&&(i=Xf):e.lossFunctions[t]===Pf?-1!==["accuracy","acc"].indexOf(n)?i=Yf:-1!==["crossentropy","ce"].indexOf(n)&&(i=od):-1!==["accuracy","acc"].indexOf(n)?i=Gf:-1!==["crossentropy","ce"].indexOf(n)&&(i=rd);var s=void 0;-1!==["accuracy","acc"].indexOf(n)?s="acc":-1!==["crossentropy","ce"].indexOf(n)&&(s="ce"),o=i,r=""+s}else{var u=function(t){var e={binaryAccuracy:qf,categoricalAccuracy:Gf,precision:Kf,categoricalCrossentropy:rd,sparseCategoricalCrossentropy:od,mse:Jf,MSE:Zf,mae:Qf,MAE:td,mape:ed,MAPE:nd,cosine:id};if("string"==typeof t&&t in e)return e[t];if("string"!=typeof t&&null!=t)return t;throw new vp("Unknown metric "+t)}(n);o=u,r=""+n}var l;rh(r,function(){l=o}),function(t,n,r){e.outputNames.length>1&&(n=e.outputNames[t]+"_"+n),e.metricsNames.push(n),e.metricsTensors.push([r,t])}(t,r,l)},s=0,u=f[t];s<u.length;s++)a(u[s])}()},n=0;n<e.outputs.length;++n)t(n)}),this.collectedTrainableWeights=this.trainableWeights},e.prototype.checkTrainableWeightsConsistency=function(){null!=this.collectedTrainableWeights&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")},e.prototype.evaluate=function(t,e,n){void 0===n&&(n={});var r=null==n.batchSize?32:n.batchSize;Cd(r);var i=this.standardizeUserData(t,e,!0,r);try{var o=i[0].concat(i[1]);this.makeTestFunction();var a=this.testFunction;return Cp(this.testLoop(a,o,r,n.verbose,n.steps))}finally{Rd(i[0],t),Rd(i[1],e)}},e.prototype.evaluateDataset=function(t,e){return ap(this,void 0,void 0,function(){return sp(this,function(n){return this.makeTestFunction(),[2,function(t,e,n){return ap(this,void 0,void 0,function(){var r,i,o,a,s,u,l,c,p,h;return sp(this,function(f){switch(f.label){case 0:if(r=null!=(n=n||{}).batches,i=t.testFunction,o=[],n.verbose>0)throw new bp("Verbose mode is not implemented yet.");return X.assert(!r||n.batches>0&&Number.isInteger(n.batches),function(){return"Test loop expects `batches` to be a positive integer, but received "+JSON.stringify(n.batches)}),function(t){return"function"==typeof t.next}(e)?(s=e,[3,3]):[3,1];case 1:return[4,e.iterator()];case 2:s=f.sent(),f.label=3;case 3:a=s,u=0,l=0,c=function(){var e,s,c,p,h,f;return sp(this,function(d){switch(d.label){case 0:return[4,a.next()];case 1:if((e=d.sent()).value){if(s=wd(t,e.value),c=qt(function(){return i(s)}),Ht(s),0===l)for(f=0;f<c.length;++f)o.push(mp(0));for(p=s[0].shape[0],h=function(t){var e=c[t],n=o[t];o[t]=qt(function(){return hu(o[t],Eu(mp(p),e))}),l>0&&Ht(n)},f=0;f<c.length;++f)h(f);Ht(c),u+=p,++l}return e.done?(r&&console.warn("Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least `batches` batches (in this case, "+n.batches+" batches). You may need to use the repeat() function when building your dataset."),[2,"break"]):[2]}})},f.label=4;case 4:return!r||l<n.batches?[5,c()]:[3,6];case 5:return"break"===f.sent()?[3,6]:[3,4];case 6:for(p=function(t){var e=o[t];o[t]=qt(function(){return gu(o[t],mp(u))}),Ht(e)},h=0;h<o.length;++h)p(h);return[2,Cp(o)]}})})}(this,t,e)]})})},e.prototype.checkNumSamples=function(t,e,n,r){var i;if(void 0===r&&(r="steps"),null!=n){if(i=null,null!=e)throw new vp("If "+r+" is set, batchSize must be null or undefined.Got batchSize = "+e)}else{if(null==t)throw new vp("Either the input data should have a defined shape, or "+r+" shoud be specified.");i=Array.isArray(t)?t[0].shape[0]:t.shape[0]}return i},e.prototype.execute=function(t,e){if(Array.isArray(e)&&0===e.length)throw new vp("`outputs` is an empty Array, which is not allowed.");var n=Array.isArray(e),r=n?e:[e],i=this.retrieveSymbolicTensors(r),o=new fd;if(t instanceof ut&&(t=[t]),Array.isArray(t)){if(t.length!==this.inputs.length)throw new vp("The number of inputs provided ("+t.length+") does not match the number of inputs of this model ("+this.inputs.length+").");for(var a=0;a<this.inputs.length;++a)o.add(this.inputs[a],t[a])}else for(var s=0,u=this.inputs;s<u.length;s++){var l=u[s],c=t[l.name];if(null==c)throw new vp("No value is provided for the model's input "+l.name);o.add(l,c)}var p=gd(i,o);return n?p:p[0]},e.prototype.retrieveSymbolicTensors=function(t){for(var e=xp(null,t.length),n=t.length,r=0,i=this.layers;r<i.length;r++){for(var o=i[r],a=Array.isArray(o.output)?o.output:[o.output],s=a.map(function(t){return t.name}),u=0;u<t.length;++u){var l=s.indexOf(t[u]);if(-1!==l&&(e[u]=a[l],n--),0===n)break}if(0===n)break}if(n>0){var c=[];throw e.forEach(function(e,n){null==e&&c.push(t[n])}),new vp("Cannot find SymbolicTensors for output name(s): "+JSON.stringify(c))}return e},e.prototype.predictLoop=function(t,e,n){var r=this;return void 0===e&&(e=32),void 0===n&&(n=!1),qt(function(){var i=r.checkNumSamples(t);if(n)throw new bp("Verbose predictLoop() is not implemented yet.");for(var o=kd(i,e),a=r.outputs.map(function(t){return[]}),s=function(e){qt(function(){var n=o[e][0],i=o[e][1],a=Ed(t,n,i),s=[];if(Array.isArray(a))for(var u=0;u<a.length;++u)s.push({key:r.inputs[u],value:a[u]});else s.push({key:r.inputs[0],value:a});var l=new fd(s);return gd(r.outputs,l)}).forEach(function(t,e){return a[e].push(t)})},u=0;u<o.length;++u)s(u);return Cp(a.map(function(t){return xo(t,0)}))})},e.prototype.predict=function(t,e){void 0===e&&(e={});var n=Td(t);Md(n,this.inputNames,this.feedInputShapes,!1);try{var r=null==e.batchSize?32:e.batchSize;return Cd(r),this.predictLoop(n,r)}finally{Rd(n,t)}},e.prototype.predictOnBatch=function(t){return Md(t,this.inputNames,this.feedInputShapes,!0),this.predictLoop(t,t.shape[0])},e.prototype.standardizeUserData=function(t,e,n,r){if(void 0===n&&(n=!0),null==this.optimizer)throw new yp("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");for(var i=[],o=0;o<this.feedOutputShapes.length;++o){var a=this.feedOutputShapes[o];this.feedLossFns[o]===Pf?i.push(a.slice(0,a.length-1).concat([1])):i.push(a)}if(function(t,e,n){var r=Op(t.map(function(t){return t.shape[0]}));r.sort();var i=Op(e.map(function(t){return t.shape[0]}));if(i.sort(),r.length>1)throw new vp("All input Tensors (x) should have the same number of samples. Got array shapes: "+JSON.stringify(t.map(function(t){return t.shape})));if(i.length>1)throw new vp("All target Tensors (y) should have the same number of samples. Got array shapes: "+JSON.stringify(e.map(function(t){return t.shape})));if(r.length>0&&i.length>0&&!X.arraysEqual(r,i))throw new vp("Input Tensors should have the same number of samples as target Tensors. Found "+r[0]+" input sample(s) and "+i[0]+" target sample(s).")}(t=_d(t,this.feedInputNames,this.feedInputShapes,!1,"input"),e=_d(e,this.feedOutputNames,i,!1,"target")),function(t,e,n){for(var r=[Tf,Bf,zf],i=0;i<t.length;++i){var o=t[i],a=e[i],s=n[i];if(null!=a){if(a===zf&&1===o.shape[o.shape.length-1])throw new vp("You are passing a target array of shape "+o.shape+" while using a loss 'categorical_crossentropy'. 'categorical_crossentropy'expects targets to be binary matrices (1s and 0s) of shape [samples, classes].");if(-1!==r.indexOf(a))for(var u=o.shape.slice(1),l=s.slice(1),c=0;c<u.length;++c){var p=u[c],h=l[c];if(null!=h&&p!==h)throw new vp("A target Tensor with shape "+o.shape+" was passed for an output of shape "+s+", while using a loss function that expects targets to have the same shape as the output.")}}}}(e,this.feedLossFns,this.feedOutputShapes),this.stateful&&null!=r&&r>0&&t[0].shape[0]%r!=0)throw new vp("In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size "+r+". Found: "+t[0].shape[0]+" sample(s).");return[t,e,null]},e.prototype.testLoop=function(t,e,n,r,i){var o=this;return void 0===r&&(r=0),qt(function(){var a=o.checkNumSamples(e,n,i,"steps"),s=[];if(r>0)throw new bp("Verbose mode is not implemented yet.");if(null!=i)throw new bp("steps mode in testLoop() is not implemented yet");for(var u=kd(a,n),l=De(fh(0,a)),c=0;c<u.length;++c){var p=u[c][0],h=u[c][1],f=gh(l,p,h-p),d=Id(e,f),m=t(d);if(0===c)for(var g=0;g<m.length;++g)s.push(mp(0));for(g=0;g<m.length;++g){var y=m[g];s[g]=hu(s[g],Eu(mp(h-p),y))}}for(g=0;g<s.length;++g)s[g]=gu(s[g],mp(a));return s})},e.prototype.getDedupedMetricsNames=function(){for(var t=this.metricsNames,e=[],n=0;n<t.length;++n){var r=t[n],i=r;Sp(t,r)>1&&(i+="_"+Sp(t.slice(0,n),r)),e.push(i)}return e},e.prototype.makeTrainFunction=function(){var t=this;return function(e){var n=e.slice(0,t.inputs.length),r=e.slice(t.inputs.length,t.inputs.length+t.outputs.length),i=[],o=t.collectedTrainableWeights.map(function(t){return t.read()});return[t.optimizer.minimize(function(){for(var e=[],o=0;o<t.inputs.length;++o)e.push({key:t.inputs[o],value:n[o]});var a,s=new fd(e),u=gd(t.outputs,s,{training:!0});for(o=0;o<t.lossFunctions.length;++o){var l=(0,t.lossFunctions[o])(r[o],u[o]);Xs(l),a=0===o?l:hu(a,l)}for(o=0;o<t.metricsTensors.length;++o){var c=t.metricsTensors[o][0],p=t.metricsTensors[o][1],h=Xs(c(r[p],u[p]));Gt(h),i.push(h)}return a=Xs(a),t.calculateLosses().forEach(function(t){a=hu(a,t)}),a},!0,o)].concat(i)}},e.prototype.makeTestFunction=function(){var t=this;this.testFunction=function(e){return qt(function(){for(var n,r=[],i=e.slice(0,t.inputs.length),o=e.slice(t.inputs.length,t.inputs.length+t.outputs.length),a=[],s=0;s<t.inputs.length;++s)a.push({key:t.inputs[s],value:i[s]});var u=new fd(a),l=gd(t.outputs,u);for(s=0;s<t.lossFunctions.length;++s){var c=t.lossFunctions[s],p=Xs(c(o[s],l[s]));n=0===s?p:hu(n,p),r.push(n)}for(s=0;s<t.metricsTensors.length;++s){var h=t.metricsTensors[s][0],f=t.metricsTensors[s][1],d=Xs(h(o[f],l[f]));r.push(d)}return r})}},e.prototype.fit=function(t,e,n){return void 0===n&&(n={}),ap(this,void 0,void 0,function(){return sp(this,function(r){return[2,Ad(this,t,e,n)]})})},e.prototype.fitDataset=function(t,e){return ap(this,void 0,void 0,function(){return sp(this,function(n){return[2,Nd(this,t,e)]})})},e.prototype.trainOnBatch=function(t,e){return ap(this,void 0,void 0,function(){var n,r,i,o,a,s,u,l,c;return sp(this,function(p){switch(p.label){case 0:n=this.standardizeUserData(t,e),r=n[0],i=n[1],o=this.makeTrainFunction(),a=o(r.concat(i)),s=[],u=0,l=a,p.label=1;case 1:return u<l.length?[4,l[u].data()]:[3,4];case 2:c=p.sent(),s.push(c[0]),p.label=3;case 3:return u++,[3,1];case 4:return Ht(a),[2,Cp(s)]}})})},e.prototype.getNamedWeights=function(t){for(var e={},n=null!=t&&t.trainableOnly,r=n?this.trainableWeights:this.weights,i=this.getWeights(n),o=0;o<r.length;++o)n&&!r[o].trainable||(e[r[o].originalName]=i[o]);return e},Object.defineProperty(e.prototype,"stopTraining",{set:function(t){this.stopTraining_=t},enumerable:!0,configurable:!0}),e.prototype.save=function(t,e){return ap(this,void 0,void 0,function(){var n,r,i,o,a;return sp(this,function(s){switch(s.label){case 0:if("string"==typeof t){if(0===(n=Ac.getSaveHandlers(t)).length)throw new vp("Cannot find any save handlers for URL '"+t+"'");if(n.length>1)throw new vp("Found more than one ("+n.length+") save handlers for URL '"+t+"'");t=n[0]}if(null==t.save)throw new vp("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return[4,Ac.encodeWeights(this.getNamedWeights(e))];case 1:return r=s.sent(),i=!1,o=null,a=this.toJSON(o,i),[2,t.save({modelTopology:a,weightData:r.data,weightSpecs:r.specs,format:"layers-model",generatedBy:"TensorFlow.js tfjs-layers v1.0.0",convertedBy:null})]}})})},e.className="Model",e}(function(t){function e(n){var r=t.call(this,{})||this;if(r.containerNodes=new Set,r.name=n.name,null==r.name){var i=r.getClassName().toLowerCase();r.name=hp(i)}if(r.supportsMasking=!1,r.trainable_=!0,r.updatable=!0,Array.isArray(n.inputs)?r.inputs=n.inputs.slice():r.inputs=[n.inputs],Array.isArray(n.outputs)?r.outputs=n.outputs.slice():r.outputs=[n.outputs],Op(r.inputs).length!==r.inputs.length)throw new vp("The list of inputs passed to the model is redundant. All inputs should only appear once. Found: "+r.inputs.map(function(t){return t.name}));Op(r.outputs).length!==r.outputs.length&&console.warn("The list of outputs passed to the model is redundant. All outputs should only appear once. Found: "+r.outputs.map(function(t){return t.name})),r.inputLayers=[],r.inputLayersNodeIndices=[],r.inputLayersTensorIndices=[],r.outputLayers=[],r.outputLayersNodeIndices=[],r.outputLayersTensorIndices=[],r.layers=[];for(var o=0,a=r.outputs;o<a.length;o++){var s=(I=a[o]).sourceLayer,u=I.nodeIndex,l=I.tensorIndex;r.outputLayers.push(s),r.outputLayersNodeIndices.push(u),r.outputLayersTensorIndices.push(l)}for(var c=0,p=r.inputs;c<p.length;c++)s=(I=p[c]).sourceLayer,u=I.nodeIndex,l=I.tensorIndex,Np(0===u,"input layer has >1 nodes"),Np(0===l,"input layer has >1 tensors"),r.inputLayers.push(s),r.inputLayersNodeIndices.push(u),r.inputLayersTensorIndices.push(l);r.inputNames=[],r.outputNames=[],r.feedInputShapes=[],r.feedInputNames=[],r.feedOutputNames=[];for(var h=0;h<r.inputLayers.length;h++){if(!((s=r.inputLayers[h])instanceof mf))throw new TypeError("Input layers to a LayersModel must be InputLayer objects. Received inputs: "+n.inputs+". Input "+h+" (0-based) originates from layer type "+s.getClassName()+".");r.inputNames.push(s.name),r.feedInputShapes.push(s.batchInputShape),r.feedInputNames.push(s.name)}for(var f=0,d=r.outputLayers;f<d.length;f++)s=d[f],r.outputNames.push(s.name);r.internalInputShapes=r.inputs.map(function(t){return t.shape}),r.internalOutputShapes=r.outputs.map(function(t){return t.shape});for(var m={},g={},y={},v={},b={},w=[],x=function(t,n,i,o,a,s){null!=o&&null!=a&&null!=s||(o=t.sourceLayer,a=t.nodeIndex,s=t.tensorIndex);var u=o.inboundNodes[a];if(-1!==i.indexOf(u))throw new yp("The tensor "+t.name+' at layer "'+o.name+'" is part of a cycle.');if(-1===n.indexOf(u)){r.containerNodes.add(e.nodeKey(o,a)),o.id in b||(b[o.id]=Object.keys(b).length),-1===i.indexOf(u)&&i.push(u);for(var l=u.inboundLayers.length,c=0;c<l;c++){var p=u.inputTensors[c],h=u.inboundLayers[c],f=u.nodeIndices[c],d=u.tensorIndices[c];x(p,n,i,h,f,d)}for(n.push(u);i.indexOf(u)>=0;)i.splice(i.indexOf(u),1);w.push(u)}},N=[],S=[],C=0,E=r.outputs;C<E.length;C++){var I=E[C];x(I,N,S)}for(var k=0,A=w.slice().reverse();k<A.length;k++){g[(Y=A[k]).id]=Y,Y.id in m||(m[Y.id]=0);var T=m[Y.id],R=null==y[Y.outboundLayer.id]?0:y[Y.outboundLayer.id];for(T=Math.max(T,R),y[Y.outboundLayer.id]=T,v[Y.outboundLayer.id]=Y.outboundLayer,m[Y.id]=T,h=0;h<Y.inboundLayers.length;h++){var D=Y.inboundLayers[h],O=(u=Y.nodeIndices[h],D.inboundNodes[u]),_=null==m[O.id]?0:m[O.id];m[O.id]=Math.max(T+1,_),g[O.id]=O}}var M={};for(var L in m)(T=m[L])in M||(M[T]=[]),M[T].push(g[L]);var F={};for(var z in y)(T=y[z])in F||(F[T]=[]),F[T].push(v[z]);var P=Object.keys(F).map(function(t){return parseInt(t,10)}).sort(Dp);r.layers=[];for(var B=0,U=P;B<U.length;B++){var W=F[T=U[B]];W.sort(function(t,e){var n=b[t.id],r=b[e.id];return n<r?-1:n>r?1:0});for(var V=0,j=W;V<j.length;V++)s=j[V],r.layers.push(s)}r.layersByDepth=F,P=Object.keys(M).map(function(t){return parseInt(t,10)}).sort(Dp);for(var q=r.inputs.slice(),G=[],H=0,K=P;H<K.length;H++)for(var $=0,X=M[T=K[H]];$<X.length;$++){var Y;if(null!=(s=(Y=X[$]).outboundLayer)){for(var J=0,Z=Y.inputTensors;J<Z.length;J++)if(I=Z[J],-1===q.indexOf(I))throw new yp("Graph disconnected: cannot obtain value for tensor "+I+' at layer "'+s.name+'". The following previous layers were accessed without issue: '+G);for(var Q=0,tt=Y.outputTensors;Q<tt.length;Q++)I=tt[Q],q.push(I);G.push(s.name)}}r.nodesByDepth=M;for(var et=r.layers.map(function(t){return t.name}),nt=function(t){var e=et.filter(function(e){return e===t}).length;if(1!==e)throw new yp('The name "'+t+'" is used '+e+" times in the model. All layer names should be unique. Layer names: "+JSON.stringify(et))},rt=0,it=et;rt<it.length;rt++)nt(it[rt]);return r.outboundNodes=[],r.inboundNodes=[],new pf({outboundLayer:r,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:r.inputs,outputTensors:r.outputs,inputMasks:r.inputs.map(function(t){return null}),outputMasks:r.outputs.map(function(t){return null}),inputShapes:r.inputs.map(function(t){return t.shape}),outputShapes:r.outputs.map(function(t){return t.shape})}),r.built=!0,r._refCount=1,r}return rp(e,t),e.prototype.assertNotDisposed=function(){if(0===this._refCount)throw new Error("Container '"+this.name+"' is already disposed.")},e.prototype.dispose=function(){this.assertNotDisposed();var t={refCountAfterDispose:null,numDisposedVariables:0};if(0==--this._refCount)for(var e=0,n=this.layers;e<n.length;e++){var r=n[e];t.numDisposedVariables+=r.dispose().numDisposedVariables}return t.refCountAfterDispose=this._refCount,t},Object.defineProperty(e.prototype,"trainableWeights",{get:function(){if(this._trainableWeights.length>0)throw new vp("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];for(var t=[],e=0,n=this.layers;e<n.length;e++){var r=n[e];t=t.concat(r.trainableWeights)}return t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"nonTrainableWeights",{get:function(){for(var t=[],e=0,n=this.layers;e<n.length;e++){var r=n[e];t.push.apply(t,r.nonTrainableWeights)}if(!this.trainable){for(var i=[],o=0,a=this.layers;o<a.length;o++)r=a[o],i.push.apply(i,r.trainableWeights);return i.concat(t)}return t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"weights",{get:function(){return this.trainableWeights.concat(this.nonTrainableWeights)},enumerable:!0,configurable:!0}),e.prototype.loadWeights=function(t,e){void 0===e&&(e=!0);for(var n={},r=0,i=0,o=this.layers;i<o.length;i++)for(var a=0,s=o[i].weights;a<s.length;a++){var u=s[a];if(null!=n[u.originalName])throw new vp("Duplicate weight name: "+u.originalName);n[u.originalName]=u,r++}var l=[];for(var c in t){if(null!=n[c])l.push([n[c],t[c]]);else if(e)throw new vp("Provided weight data has no target variable: "+c);delete n[c]}if(e){var p=[];for(var h in n)p.push(h);if(p.length>0)throw new vp(p.length+" of "+r+" weights are not set: "+p)}sf(l)},e.prototype.updatedConfig=function(){var t=this.getConfig(),e={};return e.className=this.getClassName(),e.config=t,e.kerasVersion="tfjs-layers 1.0.0",e.backend="TensorFlow.js",e},e.prototype.toJSON=function(t,e){void 0===e&&(e=!0);var n=function t(e,n){if(null===e||void 0===e)return null;if("string"==typeof e)return Ip(e);if("number"==typeof e||"boolean"==typeof e)return e;if(e instanceof Array){for(var r=[],i=e.length,o=0;o<i;++o){var a=e[o];pd(n,o,a)?r.push(a):r.push(t(a,n))}return r}for(var s={},u=0,l=Object.keys(e);u<l.length;u++){var c=l[u],p=e[c];s[Ip(c)]="name"!==c&&"className"!==c||"string"!=typeof p?t(p,c):p}return s}(this.updatedConfig());return e?JSON.stringify(n):n},e.prototype.call=function(t,e){var n=this;return qt(function(){t=Ep(t);for(var r=new fd,i=0;i<n.inputs.length;++i)r.add(n.inputs[i],t[i]);return gd(n.outputs,r,e)})},e.prototype.computeMask=function(t,e){var n=this;return qt(function(){var r;return t=Ep(t),r=null==e?xp(null,t.length):Ep(e),n.runInternalGraph(t,r)[1]})},e.prototype.computeOutputShape=function(t){var e=Qh(t);if(e.length!==this.inputLayers.length)throw new vp("Invalid inputShape argument "+t+": model has "+this.inputLayers.length+" tensor inputs.");for(var n={},r=0;r<e.length;r++){var i=this.inputLayers[r],o=e[r];n[S=i.name+"_0_0"]=o}var a=Object.keys(this.nodesByDepth).map(function(t){return parseInt(t,10)}).sort(Dp);if(a.length>1)for(var s=0,u=a;s<u.length;s++)for(var l=u[s],c=0,p=this.nodesByDepth[l];c<p.length;c++){var h=p[c];if(i=h.outboundLayer,-1===this.inputLayers.map(function(t){return t.id}).indexOf(i.id)){for(var f=[],d=0;d<h.inboundLayers.length;d++){var m=h.inboundLayers[d],g=h.nodeIndices[d],y=h.tensorIndices[d],v=n[S=m.name+"_"+g+"_"+y];f.push(v)}var b=Qh(i.computeOutputShape(Cp(f))),w=i.inboundNodes.indexOf(h);for(d=0;d<b.length;d++)n[S=i.name+"_"+w+"_"+d]=b[d]}}var x=[],N=[];for(r=0;r<this.outputLayers.length;r++){i=this.outputLayers[r],w=this.outputLayersNodeIndices[r],y=this.outputLayersTensorIndices[r];var S=i.name+"_"+w+"_"+y;N.push(S)}for(r=0;r<N.length;r++){var C=N[r];Np(C in n),x.push(n[C])}return Cp(x)},e.prototype.runInternalGraph=function(t,e){null==e&&(e=xp(null,t.length));for(var n={},r=0;r<this.inputs.length;++r){var i=this.inputs[r],o=t[r],a=e[r];n[i.id]=[o,a]}for(var s=0,u=Object.keys(this.nodesByDepth).map(function(t){return parseInt(t,10)}).sort(Dp);s<u.length;s++)for(var l=u[s],c=0,p=this.nodesByDepth[l];c<p.length;c++){for(var h=p[c],f=h.outboundLayer,d=h.inputTensors,m=h.outputTensors,g=new Array,y=0,v=d;y<v.length;y++)(i=v[y]).id in n&&g.push(n[i.id]);if(g.length===d.length){var b={},w=void 0,x=void 0,N=void 0,S=void 0;if(null!=h.callArgs&&(b=h.callArgs),1===g.length){var C=g[0],E=C[0],I=C[1];null==b.mask&&(b.mask=I),N=Ep(f.call(E,b)),S=Ep(f.computeMask(E,I)),w=[E],x=[I]}else w=g.map(function(t){return t[0]}),x=g.map(function(t){return t[1]}),null==b.mask&&(b.mask=x),N=Ep(f.call(w,b)),S=Ep(f.computeMask(w,x));if(f.activityRegularizer)throw new bp("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(r=0;r<m.length;++r)i=m[r],o=N[r],a=S[r],n[i.id]=[o,a]}}for(var k=[],A=[],T=[],R=0,D=this.outputs;R<D.length;R++){Np((i=D[R]).id in n,"Could not compute output "+i.name+" : "+i.id);var O=n[i.id],_=O[0];a=O[1],T.push(_.shape),k.push(_),A.push(a)}return[k,A,T]},e.prototype.buildNodeConversionMap=function(t){for(var n,r={},i=0,o=this.layers;i<o.length;i++){var a=o[i];n=a instanceof e?1:0;for(var s=0;s<a.inboundNodes.length;s++){var u=e.nodeKey(a,s);this.containerNodes.has(u)&&(r[u]=n,n+=1)}}return r},e.prototype.getLayer=function(t,e){if(null!=e){if(this.layers.length<=e)throw new vp("Was asked to retrieve layer at index "+e+", but model only has "+this.layers.length+" layer(s).");return this.layers[e]}if(null==t)throw new vp("Provide either a layer name or layer index");for(var n=0,r=this.layers;n<r.length;n++){var i=r[n];if(i.name===t)return i}throw new vp("No such layer: "+t)},e.prototype.calculateLosses=function(){var t=this;return qt(function(){for(var n=[],r=0,i=t.layers;r<i.length;r++)for(var o=i[r],a=0;a<o.inboundNodes.length;++a){var s=e.nodeKey(o,a);t.containerNodes.has(s)&&n.push.apply(n,o.calculateLosses())}return n})},e.prototype.getConfig=function(){for(var t={name:this.name},n=this.buildNodeConversionMap(this.layers),r=[],i=0,o=this.layers;i<o.length;i++){for(var a=(w=o[i]).getClassName(),s=w.getConfig(),u=[],l=0;l<w.inboundNodes.length;l++){var c=w.inboundNodes[l],p=e.nodeKey(w,l),h={};if(this.containerNodes.has(p)){if(c.callArgs)try{JSON.stringify(c.callArgs),h=c.callArgs}catch(t){console.warn("Layer "+w.name+" was passed non-serializable keyword arguments: "+c.callArgs+". They will not be included in the serialized model (and thus will be missing at deserialization time)."),h={}}if(c.inboundLayers.length>0){for(var f=[],d=0;d<c.inboundLayers.length;d++){var m=c.inboundLayers[d],g=c.nodeIndices[d],y=c.tensorIndices[d];null==(N=n[e.nodeKey(m,g)])&&(N=0),f.push([m.name,N,y,h])}u.push(f)}}}var v={};v.name=w.name,v.className=a,v.config=s,v.inboundNodes=u,r.push(v)}t.layers=r;var b=[];for(d=0;d<this.inputLayers.length;d++){var w=this.inputLayers[d];g=this.inputLayersNodeIndices[d],p=e.nodeKey(w,g),this.containerNodes.has(p)&&(null!==(N=n[p])&&void 0!==N||(N=0),y=this.inputLayersTensorIndices[d],b.push([w.name,N,y]))}t.inputLayers=b;var x=[];for(d=0;d<this.outputLayers.length;d++){var N;if(w=this.outputLayers[d],g=this.outputLayersNodeIndices[d],p=e.nodeKey(w,g),this.containerNodes.has(p))null!==(N=n[p])&&void 0!==N||(N=0),y=this.outputLayersTensorIndices[d],x.push([w.name,N,y])}return t.outputLayers=x,t},e.fromConfig=function(t,e,n,r){void 0===n&&(n={}),void 0===r&&(r=!1);var i={},o={};function a(t,e){t.name in o?o[t.name].push(e):o[t.name]=[e]}function s(t,e){for(var n,r=[],o=0,s=e;o<s.length;o++){var u=s[o],l=u[0],c=u[1],p=u[2];if(3===u.length)n={};else{if(4!==u.length)throw new vp("Improperly formatted model config for layer "+JSON.stringify(t)+": "+JSON.stringify(u));n=u[3]}if(!(l in i))return void a(t,e);var h=i[l];if(h.inboundNodes.length<=c)return void a(t,e);var f=h.inboundNodes[c];r.push(f.outputTensors[p])}r.length>0&&t.apply(Cp(r),n)}function u(t){var n=t.name,o=cd(t,null!=e.customObjects?e.customObjects:{});o.setFastWeightInitDuringBuild(r),i[n]=o;for(var s=0,u=t.inboundNodes;s<u.length;s++){var l=u[s];if(!(l instanceof Array))throw new vp("Corrupted configuration, expected array for nodeData: "+l);a(o,l)}}for(var l=e.name,c=e.layers,p=0,h=c;p<h.length;p++)u(m=h[p]);for(;!_p(o);)for(var f=0,d=c;f<d.length;f++){var m=d[f];if((T=i[m.name]).name in o){var g=o[T.name];delete o[T.name];for(var y=0,v=g;y<v.length;y++)s(T,v[y])}}for(var b=[],w=[],x=0,N=e.inputLayers;x<N.length;x++){var S=(m=N[x])[0],C=m[1],E=m[2];Np(S in i);var I=(T=i[S]).inboundNodes[C].outputTensors;b.push(I[E])}for(var k=0,A=e.outputLayers;k<A.length;k++){var T;S=(m=A[k])[0],C=m[1],E=m[2],Np(S in i),I=(T=i[S]).inboundNodes[C].outputTensors,w.push(I[E])}return new t({inputs:b,outputs:w,name:l})},Object.defineProperty(e.prototype,"stateful",{get:function(){if(this._stateful)throw new vp("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(var t=0,e=this.layers;t<e.length;t++)if(e[t].stateful)return!0;return!1},enumerable:!0,configurable:!0}),e.prototype.resetStates=function(){var t=this;qt(function(){t.layers.forEach(function(t){t.stateful&&t.resetStates()})})},e}(ff));function Fd(t,e){return ap(this,void 0,void 0,function(){var n;return sp(this,function(r){if(null==e&&(e={}),"string"==typeof t){if(0===(n=Ac.getLoadHandlers(t)).length)n.push(Ac.browserHTTPRequest(t,e));else if(n.length>1)throw new vp("Found more than one ("+n.length+") load handlers for URL '"+t+"'");t=n[0]}return[2,function(t,e,n){return ap(this,void 0,void 0,function(){var r,i,o,a,s,u;return sp(this,function(l){switch(l.label){case 0:if(null==n&&(n={}),null==t.load)throw new vp("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");return[4,t.load()];case 1:if(r=l.sent(),null!=(i=r.modelTopology).model_config&&(i=i.model_config),o=null==n.strict||n.strict,a=null!=r.weightData&&null!=r.weightSpecs&&o,s=cd(hd(i),e,a),null!=r.weightData){if(null==r.weightSpecs)throw new vp("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");u=Ac.decodeWeights(r.weightData,r.weightSpecs),s.loadWeights(u,o),Ht(u)}return[2,s]}})})}(t,void 0,e)]})})}Fc.registerClass(Ld);var zd=function(t){function e(e){var n=t.call(this,{inputs:[],outputs:[]})||this;if(e=e||{},n.trainable=!0,n._updatable=!0,n.built=!1,n.name=null!=e.name?e.name:hp("sequential_"),null!=e.layers)for(var r=0,i=e.layers;r<i.length;r++){var o=i[r];n.add(o)}return n}return rp(e,t),e.prototype.checkShape=function(t){if(t.inboundNodes[0].outputTensors[0].shape.some(function(t){return t<0}))throw new vp("Negative dimension size caused by adding layer "+t.name+" with input shape ["+t.inboundNodes[0].inputTensors[0].shape+"]")},e.prototype.add=function(t){var n,r=t instanceof e||t instanceof Ld;if(r){if(1!==(n=t).outputs.length)throw new vp("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(1!==n.inputs.length)throw new vp("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(0===this.outputs.length){if(0===t.inboundNodes.length){if(null==t.batchInputShape)throw new vp("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");var i=gf({batchShape:t.batchInputShape,dtype:t.dtype,name:t.name+"_input"});t.apply(i)}if(r)this.outputs=n.outputs,this.inputs=n.inputs;else{if(1!==t.inboundNodes.length)throw new vp("A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer "+t.name+" which has "+t.inboundNodes.length+" pre-existing inbound connections.");if(1!==t.inboundNodes[0].outputTensors.length)throw new vp("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(t),this.outputs=[t.inboundNodes[0].outputTensors[0]],this.inputs=function t(e,n,r){if((null==n||null!=r&&r>0)&&(n=e.sourceLayer,r=e.nodeIndex),0===n.inboundNodes.length)return[e];var i=n.inboundNodes[r];if(0===i.inboundLayers.length)return i.inputTensors;for(var o=[],a=0;a<i.inboundLayers.length;a++)for(var s=0,u=t(i.inputTensors[a],i.inboundLayers[a],i.nodeIndices[a]);s<u.length;s++){var l=u[s];-1===o.indexOf(l)&&o.push(l)}return o}(this.outputs[0])}this.inboundNodes=[],new pf({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:xp(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(function(t){return t.shape}),outputShapes:this.outputs[0].shape})}else{var o=t.apply(this.outputs[0]);if(Array.isArray(o))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(t),this.outputs=[o],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(t),this.built=!1},e.prototype.pop=function(){if(0===this.layers.length)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),0===this.layers.length)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{var t=this.layers.length-1;this.layers[t].outboundNodes=[],this.outputs=[this.layers[t].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}},e.prototype.call=function(t,e){return null==this.model&&this.build(),this.model.call(t,e)},e.prototype.build=function(t){if(ef(t),0===this.inputs.length||0===this.outputs.length)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new Ld({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.model.updatable=this.updatable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0},e.prototype.countParams=function(){return this.built||this.build(),t.prototype.countParams.call(this)},e.prototype.summary=function(e,n,r){void 0===r&&(r=console.log),this.built||this.build(),t.prototype.summary.call(this,e,n,r)},e.prototype.setWeights=function(t){null==this.model&&this.build(),this.model.setWeights(t)},Object.defineProperty(e.prototype,"updatable",{get:function(){return this._updatable},set:function(t){this.built&&(this.model.updatable=t),this._updatable=t},enumerable:!0,configurable:!0}),e.prototype.evaluate=function(t,e,n){if(void 0===n&&(n={}),!this.built)throw new yp("The model needs to be compiled before being used.");return this.model.evaluate(t,e,n)},e.prototype.evaluateDataset=function(t,e){return ap(this,void 0,void 0,function(){return sp(this,function(n){if(!this.built)throw new yp("The model needs to be compiled before being used.");return[2,this.model.evaluateDataset(t,e)]})})},e.prototype.predict=function(t,e){return void 0===e&&(e={}),null==this.model&&this.build(),this.model.predict(t,e)},e.prototype.predictOnBatch=function(t){return null==this.model&&this.build(),this.model.predictOnBatch(t)},e.prototype.compile=function(t){this.build(),this.model.compile(t),this.optimizer=this.model.optimizer,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames},e.prototype.fit=function(t,e,n){return void 0===n&&(n={}),ap(this,void 0,void 0,function(){return sp(this,function(r){if(!this.built)throw new yp("The model needs to be compiled before being used.");return[2,this.model.fit(t,e,n)]})})},e.prototype.fitDataset=function(t,e){return ap(this,void 0,void 0,function(){return sp(this,function(n){if(!this.built)throw new yp("The model needs to be compiled before being used.");return[2,this.model.fitDataset(t,e)]})})},e.prototype.trainOnBatch=function(t,e){return ap(this,void 0,void 0,function(){return sp(this,function(n){return[2,this.model.trainOnBatch(t,e)]})})},e.fromConfig=function(t,n,r,i){var o;void 0===r&&(r={}),void 0===i&&(i=!1);var a={};if(n instanceof Array){if(null==n[0].className||"Merge"===n[0].className)throw new vp("Legacy serialization format not supported yet.");o=n}else X.assert(null!=n.layers,function(){return"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."}),o=n.layers,delete n.layers,a=n;var s=new t(a);if(!(s instanceof e))throw new bp("Sequential.fromConfig called on non-Sequential input: "+s);for(var u=0,l=o;u<l.length;u++){var c=cd(l[u],void 0,i);i&&c.setFastWeightInitDuringBuild(!0),s.add(c)}return s},Object.defineProperty(e.prototype,"stopTraining",{set:function(t){this.model.stopTraining=t},enumerable:!0,configurable:!0}),e.prototype.getConfig=function(){for(var t=[],e=0,n=this.layers;e<n.length;e++){var r=n[e],i={};i.className=r.getClassName(),i.config=r.getConfig(),t.push(i)}return t},e.className="Sequential",e}(Ld);function Pd(t){return gf(t)}Fc.registerClass(zd);var Bd=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rp(e,t),e.prototype.getConfig=function(){return{}},e}(Fc.Serializable),Ud=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rp(e,t),e.prototype.apply=function(t,e){return void 0===e&&(e=1),function(t,e){if(void 0===e&&(e=1),1!==e)throw new bp("Support for alpha values other than 1 ("+e+") is not implemented yet.");return Bu(t)}(t,e)},e.className="elu",e}(Bd);Fc.registerClass(Ud);var Wd=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rp(e,t),e.prototype.apply=function(t){return ju(t)},e.className="selu",e}(Bd);Fc.registerClass(Wd);var Vd=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rp(e,t),e.prototype.apply=function(t){return Vu(t)},e.className="relu",e}(Bd);Fc.registerClass(Vd);var jd=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rp(e,t),e.prototype.apply=function(t){return qt(function(){return xu(mp(6),Vu(t))})},e.className="relu6",e}(Bd);Fc.registerClass(jd);var qd=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rp(e,t),e.prototype.apply=function(t){return t},e.className="linear",e}(Bd);Fc.registerClass(qd);var Gd=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rp(e,t),e.prototype.apply=function(t){return La(t)},e.className="sigmoid",e}(Bd);Fc.registerClass(Gd);var Hd=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rp(e,t),e.prototype.apply=function(t){return function(t){return qt(function(){var e=hu(mp(.5),Eu(mp(.2),t));return xa(e,0,1)})}(t)},e.className="hardSigmoid",e}(Bd);Fc.registerClass(Hd);var Kd=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rp(e,t),e.prototype.apply=function(t){return Ba(t)},e.className="softplus",e}(Bd);Fc.registerClass(Kd);var $d=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rp(e,t),e.prototype.apply=function(t){return function(t){return qt(function(){return gu(t,hu(mp(1),fa(t)))})}(t)},e.className="softsign",e}(Bd);Fc.registerClass($d);var Xd=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rp(e,t),e.prototype.apply=function(t){return qa(t)},e.className="tanh",e}(Bd);Fc.registerClass(Xd);var Yd=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rp(e,t),e.prototype.apply=function(t,e){return void 0===e&&(e=-1),Ce(t,e)},e.className="softmax",e}(Bd);function Jd(t){return t.getClassName()}function Zd(t,e){return void 0===e&&(e={}),Rp(t,Fc.SerializationMap.getMap().classNameMap,e,"activation")}function Qd(t){var e;return null==t?Zd(e={className:"linear",config:{}}):"string"==typeof t?((e={}).className=t,e.config={},Zd(e)):t instanceof Bd?t:Zd(t)}Fc.registerClass(Yd);var tm=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rp(e,t),e}(Fc.Serializable),em=function(t){function e(e){var n=t.call(this)||this,r=null==e||null==e.l1?.01:e.l1,i=null==e||null==e.l2?.01:e.l2;return n.hasL1=0!==r,n.hasL2=0!==i,n.l1=mp(r),n.l2=mp(i),n}return rp(e,t),e.prototype.apply=function(t){var e=this;return qt(function(){var n=Pe([1]);return e.hasL1&&(n=hu(n,Zs(Eu(e.l1,fa(t))))),e.hasL2&&(n=hu(n,Zs(Eu(e.l2,Eh(t))))),n.asScalar()})},e.prototype.getConfig=function(){return{l1:this.l1.dataSync()[0],l2:this.l2.dataSync()[0]}},e.fromConfig=function(t,e){return new t({l1:e.l1,l2:e.l2})},e.className="L1L2",e}(tm);Fc.registerClass(em);var nm={l1l2:"L1L2"};function rm(t){return Tp(t)}function im(t,e){return void 0===e&&(e={}),Rp(t,Fc.SerializationMap.getMap().classNameMap,e,"regularizer")}function om(t){return null==t?null:"string"==typeof t?im({className:t in nm?nm[t]:t,config:{}}):t instanceof tm?t:im(t)}var am=function(t){function e(e){var n=t.call(this,null==e?{}:e)||this;return n.supportsMasking=!0,null!=e&&(n.maxValue=e.maxValue),n}return rp(e,t),e.prototype.call=function(t,e){t=tf(t);var n=Vu(t);return null!=this.maxValue&&(n=xa(n,0,this.maxValue)),n},e.prototype.computeOutputShape=function(t){return t},e.prototype.getConfig=function(){var e={maxValue:this.maxValue},n=t.prototype.getConfig.call(this);return Object.assign(e,n),e},e.className="ReLU",e}(ff);Fc.registerClass(am);var sm=function(t){function e(e){var n=t.call(this,null==e?{}:e)||this;return n.DEFAULT_ALPHA=.3,null==e&&(e={}),n.alpha=null==e.alpha?n.DEFAULT_ALPHA:e.alpha,n}return rp(e,t),e.prototype.call=function(t,e){var n=tf(t);return Uu(n,this.alpha)},e.prototype.computeOutputShape=function(t){return t},e.prototype.getConfig=function(){var e={alpha:this.alpha},n=t.prototype.getConfig.call(this);return Object.assign(e,n),e},e.className="LeakyReLU",e}(ff);Fc.registerClass(sm);var um=function(t){function e(e){var n=t.call(this,null==e?{}:e)||this;if(n.DEFAULT_ALPHA_INITIALIZER="zeros",null==e&&(e={}),n.supportsMasking=!0,n.alphaInitializer=Yh(e.alphaInitializer||n.DEFAULT_ALPHA_INITIALIZER),n.alphaRegularizer=om(e.alphaRegularizer),n.alphaConstraint=Hp(e.alphaConstraint),null==e.sharedAxes)n.sharedAxes=null;else if(Array.isArray(e.sharedAxes))n.sharedAxes=e.sharedAxes;else{if("number"!=typeof e.sharedAxes)throw new vp("Expected sharedAxes to be a number or an array of numbers, but got "+e.sharedAxes);n.sharedAxes=[e.sharedAxes]}return n}return rp(e,t),e.prototype.build=function(t){var e=(t=ef(t)).slice(1);if(null!=this.sharedAxes)for(var n=0,r=this.sharedAxes;n<r.length;n++)e[(o=r[n])-1]=1;this.alpha=this.addWeight("alpha",e,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);var i={};if(null!=this.sharedAxes)for(var o=1;o<t.length;++o)i[o]=t[o];this.inputSpec=[new uf({ndim:t.length,axes:i})],this.built=!0},e.prototype.call=function(t,e){return t=tf(t),Wu(t,this.alpha.read())},e.prototype.getConfig=function(){var e={alphaInitializer:Xh(this.alphaInitializer),alphaRegularizer:rm(this.alphaRegularizer),alphaConstraint:qp(this.alphaConstraint),sharedAxes:this.sharedAxes},n=t.prototype.getConfig.call(this);return Object.assign(e,n),e},e.className="PReLU",e}(ff);Fc.registerClass(um);var lm=function(t){function e(e){var n=t.call(this,null==e?{}:e)||this;if(n.DEFAULT_ALPHA=1,null==e&&(e={}),null!=e.alpha&&e.alpha!==n.DEFAULT_ALPHA)throw new bp("Non-default alpha value ("+e.alpha+") is not supported by the ELU layer yet.");return n.alpha=null==e.alpha?n.DEFAULT_ALPHA:e.alpha,n}return rp(e,t),e.prototype.call=function(t,e){var n=tf(t);return Bu(n)},e.prototype.computeOutputShape=function(t){return t},e.prototype.getConfig=function(){var e={alpha:this.alpha},n=t.prototype.getConfig.call(this);return Object.assign(e,n),e},e.className="ELU",e}(ff);Fc.registerClass(lm);var cm=function(t){function e(e){var n=t.call(this,null==e?{}:e)||this;return n.DEFAULT_THETA=1,null==e&&(e={}),n.theta=null==e.theta?n.DEFAULT_THETA:e.theta,n.thetaTensor=mp(n.theta),n}return rp(e,t),e.prototype.call=function(t,e){var n=tf(t);return n.mul(dh(n.greater(this.thetaTensor),"float32"))},e.prototype.computeOutputShape=function(t){return t},e.prototype.getConfig=function(){var e={theta:this.theta},n=t.prototype.getConfig.call(this);return Object.assign(e,n),e},e.className="ThresholdedReLU",e}(ff);Fc.registerClass(cm);var pm=function(t){function e(e){var n=t.call(this,null==e?{}:e)||this;return n.DEFAULT_AXIS=1,null==e&&(e={}),n.softmax=(new Yd).apply,n.axis=null==e.axis?n.DEFAULT_AXIS:e.axis,n}return rp(e,t),e.prototype.call=function(t,e){var n=tf(t);return this.softmax(n,this.axis)},e.prototype.computeOutputShape=function(t){return t},e.prototype.getConfig=function(){var e={axis:this.axis},n=t.prototype.getConfig.call(this);return Object.assign(e,n),e},e.className="Softmax",e}(ff);function hm(t,e,n){if("number"==typeof t)return xp(t,e);if(t.length!==e)throw new vp("The "+n+" argument must be a tuple of "+e+" integers. Received: "+t.length+" elements.");for(var r=0;r<e;++r){var i=t[r];if(!uh(i))throw new vp("The "+n+" argument must be a tuple of "+e+" integers. Received: "+JSON.stringify(t)+" including a non-integer number "+i)}return t}function fm(t,e,n,r,i){return void 0===i&&(i=1),null==t?t:(o="same"===n?t:t-(e+(e-1)*(i-1))+1,Math.floor((o+r-1)/r));var o}function dm(t,e,n,r){if(null==t)return null;if("valid"===r)t=t*e+hh([n-e,0]);else{if("same"!==r)throw new vp("Unsupport padding mode: "+r+".");t*=e}return t}function mm(t,e){return qt(function(){return Qp(e),"channelsFirst"===e?qu(t,[0,2,3,1]):t})}Fc.registerClass(pm);var gm=function(t){function e(n,r){var i=t.call(this,r)||this;if(i.bias=null,i.DEFAULT_KERNEL_INITIALIZER="glorotNormal",i.DEFAULT_BIAS_INITIALIZER="zeros",e.verifyArgs(r),i.rank=n,Fp(i.rank,"rank"),1!==i.rank&&2!==i.rank)throw new bp("Convolution layer for rank other than 1 or 2 ("+i.rank+") is not implemented yet.");if(i.kernelSize=hm(r.kernelSize,n,"kernelSize"),i.strides=hm(null==r.strides?1:r.strides,n,"strides"),i.padding=null==r.padding?"valid":r.padding,th(i.padding),i.dataFormat=null==r.dataFormat?"channelsLast":r.dataFormat,Qp(i.dataFormat),i.activation=Qd(r.activation),i.useBias=null==r.useBias||r.useBias,i.biasInitializer=Yh(r.biasInitializer||i.DEFAULT_BIAS_INITIALIZER),i.biasConstraint=Hp(r.biasConstraint),i.biasRegularizer=om(r.biasRegularizer),i.activityRegularizer=om(r.activityRegularizer),i.dilationRate=hm(null==r.dilationRate?1:r.dilationRate,n,"dilationRate"),1===i.rank&&Array.isArray(i.dilationRate)&&1!==i.dilationRate.length)throw new vp("dilationRate must be a number or an array of a single number for 1D convolution, but received "+JSON.stringify(i.dilationRate));if(2===i.rank)if("number"==typeof i.dilationRate)i.dilationRate=[i.dilationRate,i.dilationRate];else if(2!==i.dilationRate.length)throw new vp("dilationRate must be a number or array of two numbers for 2D convolution, but received "+JSON.stringify(i.dilationRate));return i}return rp(e,t),e.verifyArgs=function(t){if(Np("kernelSize"in t,"required key 'kernelSize' not in config"),"number"!=typeof t.kernelSize&&!Lp(t.kernelSize,"number",1,2))throw new vp("BaseConv expects config.kernelSize to be number or number[] with length 1 or 2, but received "+JSON.stringify(t.kernelSize)+".")},e.prototype.getConfig=function(){var e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:Jd(this.activation),useBias:this.useBias,biasInitializer:Xh(this.biasInitializer),biasRegularizer:rm(this.biasRegularizer),activityRegularizer:rm(this.activityRegularizer),biasConstraint:qp(this.biasConstraint)},n=t.prototype.getConfig.call(this);return Object.assign(e,n),e},e}(ff),ym=function(t){function e(n,r){var i=t.call(this,n,r)||this;return i.kernel=null,e.verifyArgs(r),i.filters=r.filters,Fp(i.filters,"filters"),i.kernelInitializer=Yh(r.kernelInitializer||i.DEFAULT_KERNEL_INITIALIZER),i.kernelConstraint=Hp(r.kernelConstraint),i.kernelRegularizer=om(r.kernelRegularizer),i}return rp(e,t),e.prototype.build=function(t){var e;t=ef(t);var n="channelsFirst"===this.dataFormat?1:t.length-1;if(null==t[n])throw new vp("The channel dimension of the input should be defined. Found "+t[n]);var r=t[n],i=this.kernelSize.concat([r,this.filters]);this.kernel=this.addWeight("kernel",i,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:(e={},e[n]=r,e)}],this.built=!0},e.prototype.call=function(t,e){var n=this;return qt(function(){var e;t=tf(t);var r=null==n.bias?null:n.bias.read();if(1===n.rank)e=function(t,e,n,r,i,o,a){return void 0===r&&(r=1),void 0===i&&(i="valid"),void 0===a&&(a=1),qt(function(){if(null==o&&(o="channelsLast"),Qp(o),3!==t.shape.length)throw new vp("The input of a conv1dWithBias operation should be 3, but is "+t.shape.length+" instead.");if(3!==e.shape.length)throw new vp("The kernel for a conv1dWithBias operation should be 3, but is "+e.shape.length+" instead");if(null!=n&&1!==n.shape.length)throw new vp("The bias for a conv1dWithBias operation should be 1, but is "+e.shape.length+" instead");if("channelsFirst"===o&&(t=qu(t,[0,2,1])),"causal"===i)throw new bp("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");var s=ys(t,e,r,"same"===i?"same":"valid","NWC",a);return null!=n&&(s=Ih(s,n)),s})}(t,n.kernel.read(),r,n.strides[0],n.padding,n.dataFormat,n.dilationRate[0]);else if(2===n.rank)e=function(t,e,n,r,i,o,a){return void 0===r&&(r=[1,1]),void 0===i&&(i="valid"),qt(function(){if(null==o&&(o="channelsLast"),Qp(o),3!==t.rank&&4!==t.rank)throw new vp("conv2dWithBias expects input to be of rank 3 or 4, but received "+t.rank+".");if(3!==e.rank&&4!==e.rank)throw new vp("conv2dWithBias expects kernel to be of rank 3 or 4, but received "+t.rank+".");var s=mm(t,o);if("causal"===i)throw new bp("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return s=vs(s,e,r,"same"===i?"same":"valid","NHWC",a),null!=n&&(s=Ih(s,n)),"channelsFirst"===o&&(s=qu(s,[0,3,1,2])),s})}(t,n.kernel.read(),r,n.strides,n.padding,n.dataFormat,n.dilationRate);else if(3===n.rank)throw new bp("3D convolution is not implemented yet.");return null!=n.activation&&(e=n.activation.apply(e)),e})},e.prototype.computeOutputShape=function(t){t=ef(t);for(var e=[],n="channelsLast"===this.dataFormat?t.slice(1,t.length-1):t.slice(2),r=0;r<n.length;++r){var i=fm(n[r],this.kernelSize[r],this.padding,this.strides[r],"number"==typeof this.dilationRate?this.dilationRate:this.dilationRate[r]);e.push(i)}var o=[t[0]];return"channelsLast"===this.dataFormat?(o=o.concat(e)).push(this.filters):(o.push(this.filters),o=o.concat(e)),o},e.prototype.getConfig=function(){var e={filters:this.filters,kernelInitializer:Xh(this.kernelInitializer),kernelRegularizer:rm(this.kernelRegularizer),kernelConstraint:qp(this.kernelConstraint)},n=t.prototype.getConfig.call(this);return Object.assign(e,n),e},e.verifyArgs=function(t){if(!("filters"in t)||"number"!=typeof t.filters||t.filters<1)throw new vp("Convolution layer expected config.filters to be a 'number' > 0 but got "+JSON.stringify(t.filters))},e}(gm),vm=function(t){function e(n){var r=t.call(this,2,n)||this;return e.verifyArgs(n),r}return rp(e,t),e.prototype.getConfig=function(){var e=t.prototype.getConfig.call(this);return delete e.rank,e},e.verifyArgs=function(t){if("number"!=typeof t.kernelSize&&!Lp(t.kernelSize,"number",1,2))throw new vp("Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received "+JSON.stringify(t.kernelSize)+".")},e.className="Conv2D",e}(ym);Fc.registerClass(vm);var bm=function(t){function e(e){var n=t.call(this,e)||this;if(n.inputSpec=[new uf({ndim:4})],"same"!==n.padding&&"valid"!==n.padding)throw new vp("Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode "+n.padding);return n}return rp(e,t),e.prototype.build=function(t){var e;if(4!==(t=ef(t)).length)throw new vp("Input should have rank 4; Received input shape: "+JSON.stringify(t));var n="channelsFirst"===this.dataFormat?1:t.length-1;if(null==t[n])throw new vp("The channel dimension of the inputs should be defined. Found `None`.");var r=t[n],i=this.kernelSize.concat([this.filters,r]);this.kernel=this.addWeight("kernel",i,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new uf({ndim:4,axes:(e={},e[n]=r,e)})],this.built=!0},e.prototype.call=function(t,e){var n=this;return qt(function(){var e=tf(t);if(4!==e.shape.length)throw new vp("Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-"+e.shape.length);var r,i,o=e.shape,a=o[0];"channelsFirst"===n.dataFormat?(r=2,i=3):(r=1,i=2);var s=o[r],u=o[i],l=n.kernelSize[0],c=n.kernelSize[1],p=n.strides[0],h=n.strides[1],f=[a,dm(s,p,l,n.padding),dm(u,h,c,n.padding),n.filters];"channelsLast"!==n.dataFormat&&(e=qu(e,[0,2,3,1]));var d=Ss(e,n.kernel.read(),f,n.strides,n.padding);return"channelsLast"!==n.dataFormat&&(d=qu(d,[0,3,1,2])),null!=n.bias&&(d=Ih(d,n.bias.read(),n.dataFormat)),null!=n.activation&&(d=n.activation.apply(d)),d})},e.prototype.computeOutputShape=function(t){var e,n,r,i=(t=ef(t)).slice();"channelsFirst"===this.dataFormat?(e=1,n=2,r=3):(e=3,n=1,r=2);var o=this.kernelSize[0],a=this.kernelSize[1],s=this.strides[0],u=this.strides[1];return i[e]=this.filters,i[n]=dm(i[n],s,o,this.padding),i[r]=dm(i[r],u,a,this.padding),i},e.prototype.getConfig=function(){var e=t.prototype.getConfig.call(this);return delete e.dilationRate,e},e.className="Conv2DTranspose",e}(vm);Fc.registerClass(bm);var wm=function(t){function e(e){return t.call(this,2,e)||this}return rp(e,t),e.className="SeparableConv2D",e}(function(t){function e(e,n){var r=t.call(this,e,n)||this;if(r.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",r.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",r.depthwiseKernel=null,r.pointwiseKernel=null,null==n.filters)throw new vp("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(null!=n.kernelInitializer||null!=n.kernelRegularizer||null!=n.kernelConstraint)throw new vp("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(null!=n.padding&&"same"!==n.padding&&"valid"!==n.padding)throw new vp("SeparableConv"+r.rank+"D supports only padding modes: 'same' and 'valid', but received "+JSON.stringify(n.padding));return r.depthMultiplier=null==n.depthMultiplier?1:n.depthMultiplier,r.depthwiseInitializer=Yh(n.depthwiseInitializer||r.DEFAULT_DEPTHWISE_INITIALIZER),r.depthwiseRegularizer=om(n.depthwiseRegularizer),r.depthwiseConstraint=Hp(n.depthwiseConstraint),r.pointwiseInitializer=Yh(n.depthwiseInitializer||r.DEFAULT_POINTWISE_INITIALIZER),r.pointwiseRegularizer=om(n.pointwiseRegularizer),r.pointwiseConstraint=Hp(n.pointwiseConstraint),r}return rp(e,t),e.prototype.build=function(t){var e;if((t=ef(t)).length<this.rank+2)throw new vp("Inputs to SeparableConv"+this.rank+"D should have rank "+(this.rank+2)+", but received input shape: "+JSON.stringify(t));var n="channelsFirst"===this.dataFormat?1:t.length-1;if(null==t[n]||t[n]<0)throw new vp("The channel dimension of the inputs should be defined, but found "+JSON.stringify(t[n]));for(var r=t[n],i=this.kernelSize.concat([r,this.depthMultiplier]),o=[],a=0;a<this.rank;++a)o.push(1);o.push(r*this.depthMultiplier,this.filters),this.depthwiseKernel=this.addWeight("depthwise_kernel",i,"float32",this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.pointwiseKernel=this.addWeight("pointwise_kernel",o,"float32",this.pointwiseInitializer,this.pointwiseRegularizer,!0,this.pointwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.inputSpec=[new uf({ndim:this.rank+2,axes:(e={},e[n]=r,e)})],this.built=!0},e.prototype.call=function(t,e){var n=this;return qt(function(){var e;if(t=tf(t),1===n.rank)throw new bp("1D separable convolution is not implemented yet.");return 2===n.rank&&("channelsFirst"===n.dataFormat&&(t=qu(t,[0,2,3,1])),e=Ns(t,n.depthwiseKernel.read(),n.pointwiseKernel.read(),n.strides,n.padding,n.dilationRate,"NHWC")),n.useBias&&(e=Ih(e,n.bias.read(),n.dataFormat)),null!=n.activation&&(e=n.activation.apply(e)),"channelsFirst"===n.dataFormat&&(e=qu(e,[0,3,1,2])),e})},e.prototype.getConfig=function(){var e=t.prototype.getConfig.call(this);return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=Xh(this.depthwiseInitializer),e.pointwiseInitializer=Xh(this.pointwiseInitializer),e.depthwiseRegularizer=rm(this.depthwiseRegularizer),e.pointwiseRegularizer=rm(this.pointwiseRegularizer),e.depthwiseConstraint=qp(this.depthwiseConstraint),e.pointwiseConstraint=qp(this.pointwiseConstraint),e},e.className="SeparableConv",e}(ym));Fc.registerClass(wm);var xm=function(t){function e(n){var r=t.call(this,1,n)||this;return e.verifyArgs(n),r.inputSpec=[{ndim:3}],r}return rp(e,t),e.prototype.getConfig=function(){var e=t.prototype.getConfig.call(this);return delete e.rank,delete e.dataFormat,e},e.verifyArgs=function(t){if("number"!=typeof t.kernelSize&&!Lp(t.kernelSize,"number",1,1))throw new vp("Conv1D expects config.kernelSize to be number or number[] with length 1, but received "+JSON.stringify(t.kernelSize)+".")},e.className="Conv1D",e}(ym);Fc.registerClass(xm);var Nm=function(t){function e(e){var n=t.call(this,e)||this;return"number"==typeof e.cropping?n.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:"number"==typeof e.cropping[0]?n.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:n.cropping=e.cropping,n.dataFormat=void 0===e.dataFormat?"channelsLast":e.dataFormat,n.inputSpec=[{ndim:4}],n}return rp(e,t),e.prototype.computeOutputShape=function(t){return"channelsFirst"===this.dataFormat?[t[0],t[1],t[2]-this.cropping[0][0]-this.cropping[0][1],t[3]-this.cropping[1][0]-this.cropping[1][1]]:[t[0],t[1]-this.cropping[0][0]-this.cropping[0][1],t[2]-this.cropping[1][0]-this.cropping[1][1],t[3]]},e.prototype.call=function(t,e){var n=this;return qt(function(){return t=tf(t),"channelsLast"===n.dataFormat?vh(vh(t,n.cropping[0][0],t.shape[1]-n.cropping[0][0]-n.cropping[0][1],2),n.cropping[1][0],t.shape[2]-n.cropping[1][1]-n.cropping[1][0],3):vh(vh(t,n.cropping[0][0],t.shape[2]-n.cropping[0][0]-n.cropping[0][1],3),n.cropping[1][0],t.shape[3]-n.cropping[1][1]-n.cropping[1][0],4)})},e.prototype.getConfig=function(){var e={cropping:this.cropping,dataFormat:this.dataFormat},n=t.prototype.getConfig.call(this);return Object.assign(e,n),e},e.className="Cropping2D",e}(ff);Fc.registerClass(Nm);var Sm=function(t){function e(e){var n=t.call(this,e)||this;return n.DEFAULT_SIZE=[2,2],n.inputSpec=[{ndim:4}],n.size=null==e.size?n.DEFAULT_SIZE:e.size,n.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,n}return rp(e,t),e.prototype.computeOutputShape=function(t){if("channelsFirst"===this.dataFormat){var e=null==t[2]?null:this.size[0]*t[2],n=null==t[3]?null:this.size[1]*t[3];return[t[0],t[1],e,n]}return e=null==t[1]?null:this.size[0]*t[1],n=null==t[2]?null:this.size[1]*t[2],[t[0],e,n,t[3]]},e.prototype.call=function(t,e){var n=this;return qt(function(){var e=tf(t),r=e.shape;if("channelsFirst"===n.dataFormat){e=qu(e,[0,2,3,1]);var i=n.size[0]*r[2],o=n.size[1]*r[3],a=e.resizeNearestNeighbor([i,o]);return qu(a,[0,3,1,2])}return i=n.size[0]*r[1],o=n.size[1]*r[2],e.resizeNearestNeighbor([i,o])})},e.prototype.getConfig=function(){var e={size:this.size,dataFormat:this.dataFormat},n=t.prototype.getConfig.call(this);return Object.assign(e,n),e},e.className="UpSampling2D",e}(ff);Fc.registerClass(Sm);var Cm=function(t){function e(e){var n=t.call(this,2,e)||this;return n.depthwiseKernel=null,n.depthMultiplier=null==e.depthMultiplier?1:e.depthMultiplier,n.depthwiseInitializer=Yh(e.depthwiseInitializer||n.DEFAULT_KERNEL_INITIALIZER),n.depthwiseConstraint=Hp(e.depthwiseConstraint),n.depthwiseRegularizer=om(e.depthwiseRegularizer),n}return rp(e,t),e.prototype.build=function(t){if((t=ef(t)).length<4)throw new vp("Inputs to DepthwiseConv2D should have rank 4. Received input shape: "+JSON.stringify(t)+".");var e="channelsFirst"===this.dataFormat?1:3;if(null==t[e]||t[e]<0)throw new vp("The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not ("+t[e]+").");var n=t[e],r=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",r,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[n*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0},e.prototype.call=function(t,e){var n=this;return qt(function(){var e=function(t,e,n,r,i,o){return void 0===n&&(n=[1,1]),void 0===r&&(r="valid"),qt(function(){null==i&&(i="channelsLast"),Qp(i);var a=mm(t,i);if(4!==t.rank)throw new vp("Input for depthwiseConv2d is required to be 4-D, but is instead "+t.rank+"-D");if(4!==e.rank)throw new vp("depthwiseKernel is required to be 4-D, but is instead "+e.rank+"-D");return a=xs(a,e,n,"same"===r?"same":"valid","NHWC",o),"channelsFirst"===i&&(a=qu(a,[0,3,1,2])),a})}(t=tf(t),n.depthwiseKernel.read(),n.strides,n.padding,n.dataFormat,null);return n.useBias&&(e=Ih(e,n.bias.read(),n.dataFormat)),null!=n.activation&&(e=n.activation.apply(e)),e})},e.prototype.computeOutputShape=function(t){t=ef(t);var e="channelsFirst"===this.dataFormat?t[2]:t[1],n="channelsFirst"===this.dataFormat?t[3]:t[2],r="channelsFirst"===this.dataFormat?t[1]*this.depthMultiplier:t[3]*this.depthMultiplier,i=fm(e,this.kernelSize[0],this.padding,this.strides[0]),o=fm(n,this.kernelSize[1],this.padding,this.strides[1]);return"channelsFirst"===this.dataFormat?[t[0],r,i,o]:[t[0],i,o,r]},e.prototype.getConfig=function(){var e=t.prototype.getConfig.call(this);return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=Xh(this.depthwiseInitializer),e.depthwiseRegularizer=rm(this.depthwiseRegularizer),e.depthwiseConstraint=qp(this.depthwiseRegularizer),e},e.className="DepthwiseConv2D",e}(gm);Fc.registerClass(Cm);var Em=function(t){function e(e){var n=t.call(this,e)||this;if(n.rate=Math.max(Math.min(e.rate,1),0),n.rateScalar=mp(n.rate),n.noiseShape=e.noiseShape,n.seed=e.seed,null!=n.seed)throw new bp("Non-default seed is not implemented in Dropout layer yet: "+n.seed);return n.supportsMasking=!0,n}return rp(e,t),e.prototype.getNoiseShape=function(t){if(null==this.noiseShape)return this.noiseShape;for(var e=t.shape,n=[],r=0;r<this.noiseShape.length;++r)n.push(null==this.noiseShape[r]?e[r]:this.noiseShape[r]);return n},e.prototype.call=function(t,e){var n=this;return qt(function(){n.invokeCallHook(t,e);var r=tf(t);if(null!=n.noiseShape&&!X.arraysEqual(r.shape,n.noiseShape))throw new bp("Non-default noise shape is not implemented in Dropout layer yet: "+JSON.stringify(n.noiseShape));if(0<n.rate&&n.rate<1){var i=null!=e.training&&e.training,o=n.getNoiseShape(r);return Ah(function(){return kh(r,n.rateScalar,o,n.seed)},function(){return r},i)}return t})},e.prototype.getConfig=function(){var e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},n=t.prototype.getConfig.call(this);return Object.assign(e,n),e},e.prototype.dispose=function(){var e=t.prototype.dispose.call(this);return this.rateScalar.isDisposed||(this.rateScalar.dispose(),e.numDisposedVariables++),e},e.className="Dropout",e}(ff);Fc.registerClass(Em);var Im=function(t){function e(e){var n=t.call(this,e)||this;if(n.activation=null,n.useBias=!0,n.kernel=null,n.bias=null,n.DEFAULT_KERNEL_INITIALIZER="glorotNormal",n.DEFAULT_BIAS_INITIALIZER="zeros",null==e.batchInputShape&&null==e.inputShape&&null!=e.inputDim){var r=null;null!=e.batchSize&&(r=e.batchSize),n.batchInputShape=[r,e.inputDim]}return n.units=e.units,Fp(n.units,"units"),n.activation=Qd(e.activation),null!=e.useBias&&(n.useBias=e.useBias),n.kernelInitializer=Yh(e.kernelInitializer||n.DEFAULT_KERNEL_INITIALIZER),n.biasInitializer=Yh(e.biasInitializer||n.DEFAULT_BIAS_INITIALIZER),n.kernelConstraint=Hp(e.kernelConstraint),n.biasConstraint=Hp(e.biasConstraint),n.kernelRegularizer=om(e.kernelRegularizer),n.biasRegularizer=om(e.biasRegularizer),n.activityRegularizer=om(e.activityRegularizer),n.supportsMasking=!0,n.inputSpec=[{minNDim:2}],n}return rp(e,t),e.prototype.build=function(t){var e,n=(t=ef(t))[t.length-1];null==this.kernel&&(this.kernel=this.addWeight("kernel",[n,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:(e={},e[-1]=n,e)}],this.built=!0},e.prototype.computeOutputShape=function(t){var e=(t=ef(t)).slice();return e[e.length-1]=this.units,e},e.prototype.call=function(t,e){var n=this;return qt(function(){n.invokeCallHook(t,e);var r=Sh(tf(t),n.kernel.read());return null!=n.bias&&(r=Ih(r,n.bias.read())),null!=n.activation&&(r=n.activation.apply(r)),r})},e.prototype.getConfig=function(){var e={units:this.units,activation:Jd(this.activation),useBias:this.useBias,kernelInitializer:Xh(this.kernelInitializer),biasInitializer:Xh(this.biasInitializer),kernelRegularizer:rm(this.kernelRegularizer),biasRegularizer:rm(this.biasRegularizer),activityRegularizer:rm(this.activityRegularizer),kernelConstraint:qp(this.kernelConstraint),biasConstraint:qp(this.biasConstraint)},n=t.prototype.getConfig.call(this);return Object.assign(e,n),e},e.className="Dense",e}(ff);Fc.registerClass(Im);var km=function(t){function e(e){var n=t.call(this,e||{})||this;return n.inputSpec=[{minNDim:3}],n}return rp(e,t),e.prototype.computeOutputShape=function(t){for(var e=0,n=(t=ef(t)).slice(1);e<n.length;e++)if(null==n[e])throw new vp('The shape of the input to "Flatten" is not fully defined (got '+t.slice(1)+'). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.');return[t[0],lh(t,1)]},e.prototype.call=function(t,e){var n=this;return qt(function(){return n.invokeCallHook(t,e),function(t){if(t.rank<=1)throw new vp("batchFlatten requires a minimum rank of 2. Got rank: "+t.rank+".");var e=[t.shape[0],lh(t.shape,1)];return t.reshape(e)}(tf(t))})},e.className="Flatten",e}(ff);Fc.registerClass(km);var Am=function(t){function e(e){var n=t.call(this,e)||this;return n.supportsMasking=!0,n.activation=Qd(e.activation),n}return rp(e,t),e.prototype.call=function(t,e){var n=this;return qt(function(){n.invokeCallHook(t,e);var r=tf(t);return n.activation.apply(r)})},e.prototype.getConfig=function(){var e={activation:Jd(this.activation)},n=t.prototype.getConfig.call(this);return Object.assign(e,n),e},e.className="Activation",e}(ff);Fc.registerClass(Am);var Tm=function(t){function e(e){var n=t.call(this,e)||this;return n.n=e.n,n.inputSpec=[{ndim:2}],n}return rp(e,t),e.prototype.computeOutputShape=function(t){return[t[0],this.n,t[1]]},e.prototype.call=function(t,e){var n=this;return qt(function(){return function(t,e){return qt(function(){if(2!==t.shape.length)throw new vp("repeat() expects a rank-2 tensor, but received a rank-"+t.shape.length+" tensor.");return xh(mh(t,1),[1,e,1])})}(t=tf(t),n.n)})},e.prototype.getConfig=function(){var e={n:this.n},n=t.prototype.getConfig.call(this);return Object.assign(e,n),e},e.className="RepeatVector",e}(ff);Fc.registerClass(Tm);var Rm=function(t){function e(e){var n=t.call(this,e)||this;n.targetShape=e.targetShape;for(var r=0;r<n.targetShape.length;++r)n.isUnknown(n.targetShape[r])&&(n.targetShape[r]=null);return n}return rp(e,t),e.prototype.isUnknown=function(t){return t<0||null==t},e.prototype.fixUnknownDimension=function(t,e){for(var n="Total size of new array must be unchanged.",r=e.slice(),i=1,o=null,a=0;a<r.length;++a){var s=r[a];if(this.isUnknown(s)){if(null!==o)throw new vp("Can only specifiy one unknown dimension.");o=a}else i*=s}var u=lh(t);if(null!==o){if(0===i||u%i!=0)throw new vp(n);r[o]=u/i}else if(u!==i)throw new vp(n);return r},e.prototype.computeOutputShape=function(t){for(var e=!1,n=0;n<t.length;++n)if(this.isUnknown(t[n])){e=!0;break}return e?t.slice(0,1).concat(this.targetShape):t.slice(0,1).concat(this.fixUnknownDimension(t.slice(1),this.targetShape))},e.prototype.call=function(t,e){var n=this;return qt(function(){n.invokeCallHook(t,e);var r=tf(t),i=r.shape,o=i.slice(0,1).concat(n.fixUnknownDimension(i.slice(1),n.targetShape));return r.reshape(o)})},e.prototype.getConfig=function(){var e={targetShape:this.targetShape},n=t.prototype.getConfig.call(this);return Object.assign(e,n),e},e.className="Reshape",e}(ff);Fc.registerClass(Rm);var Dm=function(t){function e(e){var n=t.call(this,e)||this;if(null==e.dims)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(e.dims))throw new Error("Permute constructor requires `dims` to be an Array, but received "+e.dims+" instead.");var r=fh(1,e.dims.length+1);if(!X.arraysEqual(e.dims.slice().sort(),r))throw new Error("Invalid permutation `dims`: "+JSON.stringify(e.dims)+" `dims` must contain consecutive integers starting from 1.");return n.dims=e.dims,n.dimsIncludingBatch=[0].concat(n.dims),n.inputSpec=[new uf({ndim:n.dims.length+1})],n}return rp(e,t),e.prototype.computeOutputShape=function(t){var e=(t=ef(t)).slice();return this.dims.forEach(function(n,r){e[r+1]=t[n]}),e},e.prototype.call=function(t,e){return qu(tf(t),this.dimsIncludingBatch)},e.prototype.getConfig=function(){var e={dims:this.dims},n=t.prototype.getConfig.call(this);return Object.assign(e,n),e},e.className="Permute",e}(ff);Fc.registerClass(Dm);var Om=function(t){function e(e){var n=t.call(this,e)||this;if(n.embeddings=null,n.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",null==e.batchInputShape&&null==e.inputShape){var r=null;null!=e.batchSize&&(r=e.batchSize),null==e.inputLength?n.batchInputShape=[r,null]:n.batchInputShape=[r].concat(Ep(e.inputLength))}return n.inputDim=e.inputDim,Fp(n.inputDim,"inputDim"),n.outputDim=e.outputDim,Fp(n.outputDim,"outputDim"),n.embeddingsInitializer=Yh(e.embeddingsInitializer||n.DEFAULT_EMBEDDINGS_INITIALIZER),n.embeddingsRegularizer=om(e.embeddingsRegularizer),n.activityRegularizer=om(e.activityRegularizer),n.embeddingsConstraint=Hp(e.embeddingsConstraint),n.maskZero=e.maskZero,n.supportsMasking=e.maskZero,n.inputLength=e.inputLength,n}return rp(e,t),e.prototype.build=function(t){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0},e.prototype.warnOnIncompatibleInputShape=function(t){},e.prototype.computeMask=function(t,e){var n=this;return qt(function(){return n.maskZero?(t=tf(t),cu(t,je(t))):null})},e.prototype.computeOutputShape=function(t){if(t=ef(t),null==this.inputLength)return t.concat([this.outputDim]);var e=Ep(this.inputLength);if(e.length!==t.length-1)throw new vp('"inputLength" is '+this.inputLength+", but received input shape has shape "+t);for(var n=0,r=0;r<e.length;++r){var i=e[r],o=t[r+1];if(null!=i&&null!=o&&i!==o)throw new vp('"inputLength" is '+this.inputLength+", but received input shape has shape "+t);null==i&&(e[n]=o),n++}return[t[0]].concat(e,[this.outputDim])},e.prototype.call=function(t,e){var n=this;return qt(function(){n.invokeCallHook(t,e);var r=tf(t);return"int32"!==r.dtype&&(r=dh(r,"int32")),Ch(n.embeddings.read(),r.as1D()).reshape(ef(n.computeOutputShape(r.shape)))})},e.prototype.getConfig=function(){var e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Xh(this.embeddingsInitializer),embeddingsRegularizer:rm(this.embeddingsRegularizer),activityRegularizer:rm(this.activityRegularizer),embeddingsConstraint:qp(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},n=t.prototype.getConfig.call(this);return Object.assign(e,n),e},e.className="Embedding",e}(ff);Fc.registerClass(Om);var _m=function(t){function e(e){var n=t.call(this,e||{})||this;return n.supportsMasking=!0,n}return rp(e,t),e.prototype.mergeFunction=function(t){throw new bp},e.prototype.computeElementwiseOpOutputShape=function(t,e){if(null==t||null==e)return null;if(t.length<e.length)return this.computeElementwiseOpOutputShape(e,t);if(0===e.length)return t;for(var n=t.slice(0,t.length-e.length),r=0;r<e.length;++r){var i=t[t.length-e.length+r],o=e[r];if(null==i||null==o||i<0||o<0)n.push(null);else if(1===i)n.push(o);else if(1===o)n.push(i);else{if(i!==o)throw new vp("Operands could not be broadcast together with shapes "+JSON.stringify(t)+" "+JSON.stringify(e));n.push(i)}}return n},e.prototype.build=function(t){if(Array.isArray(t)&&!Array.isArray(t[0])&&(t=[ef(t)]),(t=t).length<2)throw new vp("A merge layer should be called on an Array of at least 2 inputs. Got "+t.length+" input(s).");for(var e=[],n=0,r=t;n<r.length;n++)null!=(a=r[n])&&null!==a[0]&&e.push(a[0]);if((e=Op(e)).length>1)throw new vp("Can not merge tensors with different batch sizes. Got tensors with shapes: "+JSON.stringify(t)+".");for(var i=null==t[0]?null:t[0].slice(1),o=1;o<t.length;++o){var a=null==t[o]?null:t[o].slice(1);i=this.computeElementwiseOpOutputShape(i,a)}var s=t.map(function(t){return t.length});-1===t.indexOf(null)&&1===Op(s).length?this.reshapeRequired=!1:this.reshapeRequired=!0},e.prototype.call=function(t,e){var n=this;return qt(function(){if(t=t,n.reshapeRequired){var e=[],r=t.map(function(t){return t.rank});if(-1===r.indexOf(null)){for(var i=hh(r),o=0,a=t;o<a.length;o++){for(var s=(h=a[o]).rank,u=0;u<i-s;++u)h=mh(h,1);e.push(h)}return n.mergeFunction(e)}for(var l=!1,c=0,p=t;c<p.length;c++){var h;if(null==(s=(h=p[c]).rank)){var f=h.shape,d=f[0],m=f.slice(1).concat([d]),g=h.reshape([d].concat(lh(f.slice(1))));g=(g=qu(g,[1,0])).reshape(m),e.push(g),l=!0}else if(s>1){var y=fh(1,s).concat([0]);e.push(qu(h,y)),l=!0}else e.push(h)}var v=n.mergeFunction(e),b=v.rank;if(l)if(null==b){var w=v.shape;m=[d=w[w.length-1]].concat(w.slice(0,w.length-1)),v=qu(v.reshape([-1,d]),[1,0]).reshape(m)}else b>1&&(y=[b-1].concat(fh(0,b-1)),v=qu(v,y));return v}return n.mergeFunction(t)})},e.prototype.computeOutputShape=function(t){var e;e=null==(t=t)[0]?null:t[0].slice(1);for(var n=1;n<t.length;++n){var r=null==t[n]?null:t[n].slice(1);e=this.computeElementwiseOpOutputShape(e,r)}for(var i=[],o=0,a=t;o<a.length;o++)null!=(r=a[o])&&null!==r[0]&&i.push(r[0]);return 1===(i=Op(i)).length?i.concat(e):[null].concat(e)},e.prototype.computeMask=function(t,e){return qt(function(){if(null==e)return null;if(!Array.isArray(e))throw new vp("`mask` should be an Array");if(!Array.isArray(t))throw new vp("`inputs` should be an Array");if(e.length!==t.length)throw new vp("The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths ("+t.length+" vs "+e.length+")");if(e.every(function(t){return null==t}))return null;for(var n=(e=e.map(function(t){return null==t?t:qo(t,0)}))[0],r=1;r<e.length-1;++r)n=_u(n,e[r]);return n})},e}(ff),Mm=function(t){function e(e){return t.call(this,e)||this}return rp(e,t),e.prototype.mergeFunction=function(t){return qt(function(){for(var e=t[0].clone(),n=1;n<t.length;++n)e=hu(e,t[n]);return e})},e.className="Add",e}(_m);Fc.registerClass(Mm);var Lm=function(t){function e(e){return t.call(this,e)||this}return rp(e,t),e.prototype.mergeFunction=function(t){return qt(function(){for(var e=t[0].clone(),n=1;n<t.length;++n)e=Eu(e,t[n]);return e})},e.className="Multiply",e}(_m);Fc.registerClass(Lm);var Fm=function(t){function e(e){return t.call(this,e)||this}return rp(e,t),e.prototype.mergeFunction=function(t){return qt(function(){for(var e=t[0].clone(),n=1;n<t.length;++n)e=hu(e,t[n]);return Eu(mp(1/t.length),e)})},e.className="Average",e}(_m);Fc.registerClass(Fm);var zm=function(t){function e(e){return t.call(this,e)||this}return rp(e,t),e.prototype.mergeFunction=function(t){return qt(function(){for(var e=t[0],n=1;n<t.length;++n)e=bu(e,t[n]);return e})},e.className="Maximum",e}(_m);Fc.registerClass(zm);var Pm=function(t){function e(e){return t.call(this,e)||this}return rp(e,t),e.prototype.mergeFunction=function(t){return qt(function(){for(var e=t[0],n=1;n<t.length;++n)e=xu(e,t[n]);return e})},e.className="Minimum",e}(_m);Fc.registerClass(Pm);var Bm=function(t){function e(e){var n=t.call(this,e)||this;return n.DEFAULT_AXIS=-1,null==e&&(e={}),n.axis=null==e.axis?n.DEFAULT_AXIS:e.axis,n.supportsMasking=!0,n.reshapeRequired=!1,n}return rp(e,t),e.prototype.build=function(t){if(!Array.isArray(t)||!Array.isArray(t[0])||1===t.length)throw new vp("A `Concatenate` layer should be called on a list of at least 2 inputs");for(var e=!0,n=0,r=t=t;n<r.length;n++)if(null!=(c=r[n])){e=!1;break}if(!e){for(var i=[],o=0;o<t.length;++o){var a=t[o].slice();a.splice(this.axis,1);for(var s=!1,u=0,l=i;u<l.length;u++){var c=l[u];if(X.arraysEqual(c,a)){s=!0;break}}s||i.push(a)}if(i.length>1)throw new vp("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(t))}},e.prototype.mergeFunction=function(t){var e=this;return qt(function(){return bh(t,e.axis)})},e.prototype.computeOutputShape=function(t){if(!Array.isArray(t)||!Array.isArray(t[0]))throw new vp("A `Concatenate` layer should be called on a list of inputs.");for(var e=t,n=e[0].slice(),r=this.axis<0?n.length+this.axis:this.axis,i=0,o=e.slice(1);i<o.length;i++){var a=o[i];if(null==n[r]||null==a[r]){n[r]=null;break}n[r]+=a[r]}return n},e.prototype.computeMask=function(t,e){var n=this;if(null==e)return null;if(!Array.isArray(e))throw new vp("`mask` should be an array for Concatenate");if(!Array.isArray(t))throw new vp("`inputs` should be an array for Concatenate");if(e.length!==t.length)throw new vp("Mismatch in the length of mask ("+e.length+") and the legnth of inputs ("+t.length+")");return qt(function(){var r=!0;if(e.forEach(function(t){null==t||(r=!1)}),r)return null;for(var i=[],o=0;o<t.length;++o)null==e[o]?i.push(Ve(t[o]).asType("bool")):e[o].rank<t[o].rank?i.push(qo(e[o],-1)):i.push(e[o]);var a=xo(i,n.axis);return js(a,-1,!1)})},e.prototype.getConfig=function(){var e={axis:this.axis},n=t.prototype.getConfig.call(this);return Object.assign(e,n),e},e.className="Concatenate",e}(_m);function Um(t,e){for(;t<0;)t+=e;return t}Fc.registerClass(Bm);var Wm=function(t){function e(e){var n=t.call(this,e)||this;return n.axes=e.axes,n.normalize=null!=e.normalize&&e.normalize,n.supportsMasking=!0,n.reshapeRequired=!1,n}return rp(e,t),e.prototype.build=function(t){X.assert(Array.isArray(t)&&2===t.length&&Array.isArray(t[0])&&Array.isArray(t[1]),function(){return"A `Dot` layer should be called on a list of exactly 2 inputs."});var e=t[0],n=t[1];if(e.length>3||n.length>3)throw new bp("Dot layer does not support tensors of 4D or higher rank yet.");var r=this.interpretAxes(e,n);if(e[r[0]]!==n[r[1]])throw new vp("Dimension incompatibility: "+e[r[0]]+" !== "+n[r[1]])},e.prototype.mergeFunction=function(t){if(2!==t.length)throw new vp("A `Dot` layer must be called on exactly 2 inputs, but received "+t.length+" input(s).");var e,n=t[0],r=t[1];return e=Array.isArray(this.axes)?this.axes.map(function(e,n){return Um(e,t[n].shape.length)}):[Um(this.axes,n.shape.length),Um(this.axes,r.shape.length)],this.normalize&&(n=Af(n,e[0]),r=Af(r,e[1])),function(t,e,n){if(t.shape.length>3||e.shape.length>3)throw new bp("batchDot is not implemented for tensors of 4D or higher rank yet");if(X.assert(t.shape.length>=2,function(){return"batchDot requires the rank of x to be >= 2, but got "+t.shape.length}),X.assert(t.shape.length>=2,function(){return"batchDot requires the rank of y to be >= 2, but got "+e.shape.length}),"number"==typeof n&&(n=[n,n]),"complex64"===t.dtype||"complex64"===e.dtype)throw new bp("batchDot is not implemented for complex64-type Tensors yet.");var r=t.shape.length,i=e.shape.length;null==n&&(n=[r-1,i-2]);var o=n;return qt(function(){var n,a;if(r>i){n=r-i;for(var s=[],u=0;u<n;++u)s.push(1);e=e.reshape(e.shape.concat(s))}else if(i>r){for(n=i-r,s=[],u=0;u<n;++u)s.push(1);t=t.reshape(t.shape.concat(s))}else n=0;if(2===t.shape.length&&2===e.shape.length)a=o[0]===o[1]?t.mulStrict(e).sum(o[0]):t.transpose([1,0]).mulStrict(e).sum(o[1]);else{var l=o[0]!==t.shape.length-1,c=o[1]===e.shape.length-1;a=t.matMul(e,l,c)}if(n>0){var p,h=[];for(u=p=r>i?r+i-3:r-1;u<p+n;++u)h.push(u);a=a.squeeze(h)}return 1===a.shape.length&&(a=a.expandDims(1)),a})}(n,r,e)},e.prototype.interpretAxes=function(t,e){return Array.isArray(this.axes)?this.axes:[Um(this.axes,t.length),Um(this.axes,e.length)]},e.prototype.computeOutputShape=function(t){X.assert(Array.isArray(t)&&2===t.length&&Array.isArray(t[0])&&Array.isArray(t[1]),function(){return"A `Dot` layer should be called on a list of exactly 2 inputs."});var e=t[0].slice(),n=t[1].slice();if(e.length>3||n.length>3)throw new bp("Dot layer does not support tensors of 4D or higher rank yet.");var r=this.interpretAxes(e,n);e.splice(r[0],1),n.splice(r[1],1),n.splice(0,1);var i=e.concat(n);return 1===i.length&&i.push(1),i},e.prototype.computeMask=function(t,e){return null},e.prototype.getConfig=function(){var e={axes:this.axes,normalize:this.normalize},n=t.prototype.getConfig.call(this);return Object.assign(e,n),e},e.className="Dot",e}(_m);function Vm(t,e,n,r,i,o){var a;if(void 0===o&&(o=.001),2===t.rank)a=ns(t,e,n,r,i,o);else if(3===t.rank)a=rs(t,e,n,r,i,o);else{if(4!==t.rank)throw new bp("batchNormalization is not implemented for array of rank "+t.rank+" yet");a=is(t,e,n,r,i,o)}return a}function jm(t,e,n,r,i){return void 0===i&&(i=.001),X.arraysEqual(r.slice().sort(),fh(0,t.rank-1))?function(t,e,n,r,i){return void 0===i&&(i=.001),qt(function(){var o=Js(t,r),a=o.mean,s=o.variance;return[Vm(t,a,s,n,e,i),a,s]})}(t,e,n,r,i):function(t,e,n,r,i){return void 0===i&&(i=.001),qt(function(){for(var o=Js(t,r),a=o.mean,s=o.variance,u=[],l=0,c=fh(0,t.rank);l<c.length;l++){var p=c[l];-1!==r.indexOf(p)?u.push(1):u.push(t.shape[p])}var h=a.reshape(u),f=s.reshape(u),d=null==e?null:e.reshape(u),m=null==n?null:n.reshape(u);return[Vm(t,h,f,m,d,i),a,s]})}(t,e,n,r,i)}Fc.registerClass(Wm);var qm=function(t){function e(e){var n=this;return null==e&&(e={}),(n=t.call(this,e)||this).supportsMasking=!0,n.axis=null==e.axis?-1:e.axis,n.momentum=null==e.momentum?.99:e.momentum,n.epsilon=null==e.epsilon?.001:e.epsilon,n.center=null==e.center||e.center,n.scale=null==e.scale||e.scale,n.betaInitializer=Yh(e.betaInitializer||"zeros"),n.gammaInitializer=Yh(e.gammaInitializer||"ones"),n.movingMeanInitializer=Yh(e.movingMeanInitializer||"zeros"),n.movingVarianceInitializer=Yh(e.movingVarianceInitializer||"ones"),n.betaConstraint=Hp(e.betaConstraint),n.gammaConstraint=Hp(e.gammaConstraint),n.betaRegularizer=om(e.betaRegularizer),n.gammaRegularizer=om(e.gammaRegularizer),n}return rp(e,t),e.prototype.build=function(t){var e;t=ef(t);var n=this.axis>=0?this.axis:this.axis+t.length,r=t[n];if(null==r)throw new vp("Axis "+n+" of input tensor should have a defined dimension but the layer received an input with shape "+JSON.stringify(t)+".");this.inputSpec=[new uf({ndim:t.length,axes:(e={},e[n]=r,e)})];var i=[r];this.scale&&(this.gamma=this.addWeight("gamma",i,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",i,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",i,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",i,null,this.movingVarianceInitializer,null,!1),this.built=!0},e.prototype.call=function(t,e){var n=this;return qt(function(){var r=null!=e.training&&e.training,i=tf(t),o=i.shape,a=o.length,s=fh(0,a),u=n.axis>=0?n.axis:n.axis+a;s.splice(u,1);var l=xp(1,a);l[u]=o[u];var c=s.slice();c.sort();var p=!X.arraysEqual(c,fh(0,a).slice(0,a-1));if(!r)return function(){if(p){var t=n.movingMean.read().reshape(l),e=n.movingVariance.read().reshape(l),r=n.center?n.beta.read().reshape(l):null,o=n.scale?n.gamma.read().reshape(l):null;return Vm(i,t,e,r,o,n.epsilon)}return Vm(i,n.movingMean.read(),n.movingVariance.read(),null==n.beta?null:n.beta.read(),null==n.gamma?null:n.gamma.read(),n.epsilon)}();var h=jm(i,n.gamma.read(),n.beta.read(),s,n.epsilon),f=h[0],d=h[1],m=h[2],g=function(t,e,n){qt(function(){var r=mp(1).sub(mp(n)),i=t.read(),o=i.sub(e).mul(r);t.write(i.sub(o))})};return g(n.movingMean,d,n.momentum),g(n.movingVariance,m,n.momentum),f})},e.prototype.getConfig=function(){var e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Xh(this.betaInitializer),gammaInitializer:Xh(this.gammaInitializer),movingMeanInitializer:Xh(this.movingMeanInitializer),movingVarianceInitializer:Xh(this.movingVarianceInitializer),betaRegularizer:rm(this.betaRegularizer),gammaRegularizer:rm(this.gammaRegularizer),betaConstraint:qp(this.betaConstraint),gammaConstraint:qp(this.gammaConstraint)},n=t.prototype.getConfig.call(this);return Object.assign(e,n),e},e.className="BatchNormalization",e}(ff);Fc.registerClass(qm);var Gm=function(t){function e(e){var n=this;if(null==e&&(e={}),(n=t.call(this,e)||this).dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,null==e.padding)n.padding=[[1,1],[1,1]];else if("number"==typeof e.padding)n.padding=[[e.padding,e.padding],[e.padding,e.padding]];else{if(e.padding=e.padding,2!==e.padding.length)throw new vp("ZeroPadding2D expects padding to be a length-2 array, but received a length-"+e.padding.length+" array.");var r=void 0,i=void 0;if("number"==typeof e.padding[0])r=[e.padding[0],e.padding[0]],i=[e.padding[1],e.padding[1]];else{if(e.padding=e.padding,2!==e.padding[0].length)throw new vp("ZeroPadding2D expects height padding to be a length-2 array, but received a length-"+e.padding[0].length+" array.");if(r=e.padding[0],2!==e.padding[1].length)throw new vp("ZeroPadding2D expects width padding to be a length-2 array, but received a length-"+e.padding[1].length+" array.");i=e.padding[1]}n.padding=[r,i]}return n.inputSpec=[new uf({ndim:4})],n}return rp(e,t),e.prototype.computeOutputShape=function(t){var e,n;return t=ef(t),"channelsFirst"===this.dataFormat?(e=null!=t[2]&&t[2]>=0?t[2]+this.padding[0][0]+this.padding[0][1]:null,n=null!=t[3]&&t[3]>=0?t[3]+this.padding[1][0]+this.padding[1][1]:null,[t[0],t[1],e,n]):(e=null!=t[1]&&t[1]>=0?t[1]+this.padding[0][0]+this.padding[0][1]:null,n=null!=t[2]&&t[2]>=0?t[2]+this.padding[1][0]+this.padding[1][1]:null,[t[0],e,n,t[3]])},e.prototype.call=function(t,e){var n=this;return qt(function(){return function(t,e,n){return qt(function(){if(4!==t.rank)throw new vp("temporalPadding expects input tensor to be 4-D, but received a "+t.rank+"-D tensor.");if(null==e&&(e=[[1,1],[1,1]]),2!==e.length||2!==e[0].length||2!==e[1].length)throw new vp("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(null==n&&(n="channelsLast"),"channelsLast"!==n&&"channelsFirst"!==n)throw new vp("Unknown data format: "+n+". Supported data formats are 'channelsLast' and 'channelsFirst.");var r;return r="channelsFirst"===n?[[0,0],[0,0],e[0],e[1]]:[[0,0],e[0],e[1],[0,0]],$o(t,r)})}(tf(t),n.padding,n.dataFormat)})},e.prototype.getConfig=function(){var e={padding:this.padding,dataFormat:this.dataFormat},n=t.prototype.getConfig.call(this);return Object.assign(e,n),e},e.className="ZeroPadding2D",e}(ff);function Hm(t,e,n,r,i,o){return qt(function(){var a;Qp(i),function(t){Mp(Yp,"PoolMode",t)}(o),th(r),null==n&&(n=[1,1]),null==r&&(r="valid"),null==i&&(i="channelsLast"),null==o&&(o="max"),t=mm(t,i);var s="same"===r?"same":"valid";return a="max"===o?Ms(t,e,n,s):Ls(t,e,n,s),"channelsFirst"===i&&(a=qu(a,[0,3,1,2])),a})}Fc.registerClass(Gm);var Km=function(t){function e(e){var n=this;if(null==e.poolSize&&(e.poolSize=2),n=t.call(this,e)||this,"number"==typeof e.poolSize)n.poolSize=[e.poolSize];else{if(!Array.isArray(e.poolSize)||1!==e.poolSize.length||"number"!=typeof e.poolSize[0])throw new vp("poolSize for 1D convolutional layer must be a number or an Array of a single number, but received "+JSON.stringify(e.poolSize));n.poolSize=e.poolSize}if(Fp(n.poolSize,"poolSize"),null==e.strides)n.strides=n.poolSize;else if("number"==typeof e.strides)n.strides=[e.strides];else{if(!Array.isArray(e.strides)||1!==e.strides.length||"number"!=typeof e.strides[0])throw new vp("strides for 1D convolutional layer must be a number or an Array of a single number, but received "+JSON.stringify(e.strides));n.strides=e.strides}return Fp(n.strides,"strides"),n.padding=null==e.padding?"valid":e.padding,th(n.padding),n.inputSpec=[new uf({ndim:3})],n}return rp(e,t),e.prototype.computeOutputShape=function(t){var e=fm((t=ef(t))[1],this.poolSize[0],this.padding,this.strides[0]);return[t[0],e,t[2]]},e.prototype.call=function(t,e){var n=this;return qt(function(){n.invokeCallHook(t,e),t=mh(tf(t),2);var r=n.poolingFunction(tf(t),[n.poolSize[0],1],[n.strides[0],1],n.padding,"channelsLast");return ia(r,[2])})},e.prototype.getConfig=function(){var e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},n=t.prototype.getConfig.call(this);return Object.assign(e,n),e},e}(ff),$m=function(t){function e(e){return t.call(this,e)||this}return rp(e,t),e.prototype.poolingFunction=function(t,e,n,r,i){return Qp(i),th(r),Hm(t,e,n,r,i,"max")},e.className="MaxPooling1D",e}(Km);Fc.registerClass($m);var Xm=function(t){function e(e){return t.call(this,e)||this}return rp(e,t),e.prototype.poolingFunction=function(t,e,n,r,i){return Qp(i),th(r),Hm(t,e,n,r,i,"avg")},e.className="AveragePooling1D",e}(Km);Fc.registerClass(Xm);var Ym=function(t){function e(e){var n=this;if(null==e.poolSize&&(e.poolSize=[2,2]),(n=t.call(this,e)||this).poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],null==e.strides)n.strides=n.poolSize;else if(Array.isArray(e.strides)){if(2!==e.strides.length)throw new vp("If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length "+e.strides.length+".");n.strides=e.strides}else n.strides=[e.strides,e.strides];return Fp(n.poolSize,"poolSize"),Fp(n.strides,"strides"),n.padding=null==e.padding?"valid":e.padding,n.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,Qp(n.dataFormat),th(n.padding),n.inputSpec=[new uf({ndim:4})],n}return rp(e,t),e.prototype.computeOutputShape=function(t){t=ef(t);var e="channelsFirst"===this.dataFormat?t[2]:t[1],n="channelsFirst"===this.dataFormat?t[3]:t[2];return e=fm(e,this.poolSize[0],this.padding,this.strides[0]),n=fm(n,this.poolSize[1],this.padding,this.strides[1]),"channelsFirst"===this.dataFormat?[t[0],t[1],e,n]:[t[0],e,n,t[3]]},e.prototype.call=function(t,e){var n=this;return qt(function(){return n.invokeCallHook(t,e),n.poolingFunction(tf(t),n.poolSize,n.strides,n.padding,n.dataFormat)})},e.prototype.getConfig=function(){var e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},n=t.prototype.getConfig.call(this);return Object.assign(e,n),e},e}(ff),Jm=function(t){function e(e){return t.call(this,e)||this}return rp(e,t),e.prototype.poolingFunction=function(t,e,n,r,i){return Qp(i),th(r),Hm(t,e,n,r,i,"max")},e.className="MaxPooling2D",e}(Ym);Fc.registerClass(Jm);var Zm=function(t){function e(e){return t.call(this,e)||this}return rp(e,t),e.prototype.poolingFunction=function(t,e,n,r,i){return Qp(i),th(r),Hm(t,e,n,r,i,"avg")},e.className="AveragePooling2D",e}(Ym);Fc.registerClass(Zm);var Qm=function(t){function e(e){var n=t.call(this,e)||this;return n.inputSpec=[new uf({ndim:3})],n}return rp(e,t),e.prototype.computeOutputShape=function(t){return[t[0],t[2]]},e.prototype.call=function(t,e){throw new bp},e}(ff),tg=function(t){function e(e){return t.call(this,e||{})||this}return rp(e,t),e.prototype.call=function(t,e){return qt(function(){var e=tf(t);return Xs(e,1)})},e.className="GlobalAveragePooling1D",e}(Qm);Fc.registerClass(tg);var eg=function(t){function e(e){return t.call(this,e||{})||this}return rp(e,t),e.prototype.call=function(t,e){return qt(function(){var e=tf(t);return $s(e,1)})},e.className="GlobalMaxPooling1D",e}(Qm);Fc.registerClass(eg);var ng=function(t){function e(e){var n=t.call(this,e)||this;return n.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,Qp(n.dataFormat),n.inputSpec=[new uf({ndim:4})],n}return rp(e,t),e.prototype.computeOutputShape=function(t){return t=t,"channelsLast"===this.dataFormat?[t[0],t[3]]:[t[0],t[1]]},e.prototype.call=function(t,e){throw new bp},e.prototype.getConfig=function(){var e={dataFormat:this.dataFormat},n=t.prototype.getConfig.call(this);return Object.assign(e,n),e},e}(ff),rg=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rp(e,t),e.prototype.call=function(t,e){var n=this;return qt(function(){var e=tf(t);return"channelsLast"===n.dataFormat?Xs(e,[1,2]):Xs(e,[2,3])})},e.className="GlobalAveragePooling2D",e}(ng);Fc.registerClass(rg);var ig=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rp(e,t),e.prototype.call=function(t,e){var n=this;return qt(function(){var e=tf(t);return"channelsLast"===n.dataFormat?$s(e,[1,2]):$s(e,[2,3])})},e.className="GlobalMaxPooling2D",e}(ng);function og(t,e,n,r){if(Array.isArray(t)){if(null!=e||null!=n)throw new vp("When inputs is an array, neither initialState or constants should be provided");null!=r&&(n=t.slice(t.length-r,t.length),t=t.slice(0,t.length-r)),t.length>1&&(e=t.slice(1,t.length)),t=t[0]}function i(t){return null==t||Array.isArray(t)?t:[t]}return{inputs:t,initialState:e=i(e),constants:n=i(n)}}function ag(t,e,n,r,i,o,a,s){return void 0===r&&(r=!1),void 0===a&&(a=!1),void 0===s&&(s=!1),qt(function(){var u=e.shape.length;if(u<3)throw new vp("Input should be at least 3D, but is "+u+"D.");var l=[1,0].concat(fh(2,u));if(e=qu(e,l),null!=o)throw new bp("The rnn() functoin of the deeplearn.js backend does not support constants yet.");a&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),null!=i&&((i=i.asType("bool").asType("float32")).rank===u-1&&(i=qo(i,-1)),i=qu(i,l)),r&&(e=ks(e,0),null!=i&&(i=ks(i,0)));var c,p,h=[],f=n,d=e.shape[0],m=ua(e);null!=i&&(p=ua(i));for(var g,y=function(e){var n=m[e],r=qt(function(){return t(n,f)});if(null==i)c=r[0],f=r[1];else{var o=qt(function(){var t=p[e],n=Ve(t).sub(t);return{output:r[0].mul(t).addStrict(f[0].mul(n)),newStates:f.map(function(e,i){return r[1][i].mul(t).addStrict(e.mul(n))})}});c=o.output,f=o.newStates}s&&h.push(c)},v=0;v<d;++v)y(v);return s&&(g=oa(h,1)),[c,g,f]})}Fc.registerClass(ig);var sg=function(t){function e(e){var n,r=t.call(this,e)||this;if(null==e.cell)throw new vp("cell property is missing for the constructor of RNN.");if(null==(n=Array.isArray(e.cell)?new mg({cells:e.cell}):e.cell).stateSize)throw new vp("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");return r.cell=n,r.returnSequences=null!=e.returnSequences&&e.returnSequences,r.returnState=null!=e.returnState&&e.returnState,r.goBackwards=null!=e.goBackwards&&e.goBackwards,r._stateful=null!=e.stateful&&e.stateful,r.unroll=null!=e.unroll&&e.unroll,r.supportsMasking=!0,r.inputSpec=[new uf({ndim:3})],r.stateSpec=null,r.states_=null,r.numConstants=null,r.keptStates=[],r}return rp(e,t),e.prototype.getStates=function(){return null==this.states_?fh(0,Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1).map(function(t){return null}):this.states_},e.prototype.setStates=function(t){this.states_=t},e.prototype.computeOutputShape=function(t){Zh(t)&&(t=t[0]),t=t;var e=this.cell.stateSize;Array.isArray(e)||(e=[e]);var n,r=e[0];if(n=this.returnSequences?[t[0],t[1],r]:[t[0],r],this.returnState){for(var i=[],o=0,a=e;o<a.length;o++){var s=a[o];i.push([t[0],s])}return[n].concat(i)}return n},e.prototype.computeMask=function(t,e){var n=this;return qt(function(){Array.isArray(e)&&(e=e[0]);var t=n.returnSequences?e:null;if(n.returnState){var r=n.states.map(function(t){return null});return[t].concat(r)}return t})},Object.defineProperty(e.prototype,"states",{get:function(){if(null==this.states_){for(var t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,e=[],n=0;n<t;++n)e.push(null);return e}return this.states_},set:function(t){this.states_=t},enumerable:!0,configurable:!0}),e.prototype.build=function(t){if(null!=this.numConstants)throw new bp("Constants support is not implemented in RNN yet.");Zh(t)&&(t=t[0]),t=t;var e=this.stateful?t[0]:null,n=t[t.length-1];this.inputSpec[0]=new uf({shape:[e,null,n]});var r,i=[t[0]].concat(t.slice(2));if(this.cell.build(i),r=Array.isArray(this.cell.stateSize)?this.cell.stateSize:[this.cell.stateSize],null!=this.stateSpec){if(!X.arraysEqual(this.stateSpec.map(function(t){return t.shape[t.shape.length-1]}),r))throw new vp("An initialState was passed that is not compatible with cell.stateSize. Received stateSpec="+this.stateSpec+"; However cell.stateSize is "+this.cell.stateSize)}else this.stateSpec=r.map(function(t){return new uf({shape:[null,t]})});this.stateful&&this.resetStates()},e.prototype.resetStates=function(t,e){var n=this;void 0===e&&(e=!1),qt(function(){if(!n.stateful)throw new gp("Cannot call resetStates() on an RNN Layer that is not stateful.");var r=n.inputSpec[0].shape[0];if(null==r)throw new vp("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(null==n.states_)Array.isArray(n.cell.stateSize)?n.states_=n.cell.stateSize.map(function(t){return Pe([r,t])}):n.states_=[Pe([r,n.cell.stateSize])];else if(null==t)Ht(n.states_),null!=n.keptStates&&(Ht(n.keptStates),n.keptStates=[]),Array.isArray(n.cell.stateSize)?n.states_=n.cell.stateSize.map(function(t){return Pe([r,t])}):n.states_[0]=Pe([r,n.cell.stateSize]);else{if(Array.isArray(t)||(t=[t]),t.length!==n.states_.length)throw new vp("Layer "+n.name+" expects "+n.states_.length+" state(s), but it received "+t.length+" state value(s). Input received: "+t);!0===e?n.keptStates.push(n.states_.slice()):Ht(n.states_);for(var i=0;i<n.states_.length;++i){var o=t[i],a=Array.isArray(n.cell.stateSize)?n.cell.stateSize[i]:n.cell.stateSize,s=[r,a];if(!X.arraysEqual(o.shape,s))throw new vp("State "+i+" is incompatible with layer "+n.name+": expected shape="+s+", received shape="+o.shape);n.states_[i]=o}}n.states_.forEach(function(t){return Gt(t)})})},e.prototype.apply=function(e,n){var r=null==n?null:n.initialState,i=null==n?null:n.constants;null==n&&(n={});var o=og(e,r,i,this.numConstants);e=o.inputs,r=o.initialState,i=o.constants;var a=[],s=[];if(null!=r){n.initialState=r,a=a.concat(r),this.stateSpec=[];for(var u=0,l=r;u<l.length;u++){var c=l[u];this.stateSpec.push(new uf({shape:c.shape}))}s=s.concat(this.stateSpec)}if(null!=i&&(n.constants=i,a=a.concat(i),this.numConstants=i.length),a[0]instanceof lf){var p=[e].concat(a),h=this.inputSpec.concat(s),f=this.inputSpec;this.inputSpec=h;var d=t.prototype.apply.call(this,p,n);return this.inputSpec=f,d}return t.prototype.apply.call(this,e,n)},e.prototype.call=function(t,e){var n=this;return qt(function(){var r=null==e?null:e.mask,i=null==e?null:e.training,o=null==e?null:e.initialState;t=tf(t),null==o&&(o=n.stateful?n.states_:n.getInitialState(t));var a=Array.isArray(n.cell.stateSize)?n.cell.stateSize.length:1;if(o.length!==a)throw new vp("RNN Layer has "+a+" state(s) but was passed "+o.length+" initial state(s).");n.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");var s={training:i},u=ag(function(t,e){var r=n.cell.call([t].concat(e),s);return[r[0],r.slice(1)]},t,o,n.goBackwards,r,null,n.unroll,n.returnSequences),l=u[0],c=u[1],p=u[2];n.stateful&&n.resetStates(p,i);var h=n.returnSequences?c:l;return n.returnState?[h].concat(p):h})},e.prototype.getInitialState=function(t){var e=this;return qt(function(){var n=Pe(t.shape);return n=mh(n=Zs(n,[1,2])),Array.isArray(e.cell.stateSize)?e.cell.stateSize.map(function(t){return t>1?xh(n,[1,t]):n}):e.cell.stateSize>1?[xh(n,[1,e.cell.stateSize])]:[n]})},Object.defineProperty(e.prototype,"trainableWeights",{get:function(){return this.trainable?this.cell.trainableWeights:[]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"nonTrainableWeights",{get:function(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights},enumerable:!0,configurable:!0}),e.prototype.setFastWeightInitDuringBuild=function(e){t.prototype.setFastWeightInitDuringBuild.call(this,e),null!=this.cell&&this.cell.setFastWeightInitDuringBuild(e)},e.prototype.getConfig=function(){var e={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};null!=this.numConstants&&(e.numConstants=this.numConstants);var n=this.cell.getConfig();e.cell={className:this.cell.getClassName(),config:n};var r=t.prototype.getConfig.call(this);return Object.assign(e,r),e},e.className="RNN",e}(ff);Fc.registerClass(sg);var ug=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rp(e,t),e}(ff),lg=function(t){function e(e){var n=t.call(this,e)||this;return n.DEFAULT_ACTIVATION="tanh",n.DEFAULT_KERNEL_INITIALIZER="glorotNormal",n.DEFAULT_RECURRENT_INITIALIZER="orthogonal",n.DEFAULT_BIAS_INITIALIZER="zeros",n.units=e.units,Fp(n.units,"units"),n.activation=Qd(null==e.activation?n.DEFAULT_ACTIVATION:e.activation),n.useBias=null==e.useBias||e.useBias,n.kernelInitializer=Yh(e.kernelInitializer||n.DEFAULT_KERNEL_INITIALIZER),n.recurrentInitializer=Yh(e.recurrentInitializer||n.DEFAULT_RECURRENT_INITIALIZER),n.biasInitializer=Yh(e.biasInitializer||n.DEFAULT_BIAS_INITIALIZER),n.kernelRegularizer=om(e.kernelRegularizer),n.recurrentRegularizer=om(e.recurrentRegularizer),n.biasRegularizer=om(e.biasRegularizer),n.kernelConstraint=Hp(e.kernelConstraint),n.recurrentConstraint=Hp(e.recurrentConstraint),n.biasConstraint=Hp(e.biasConstraint),n.dropout=ph([1,hh([0,null==e.dropout?0:e.dropout])]),n.recurrentDropout=ph([1,hh([0,null==e.recurrentDropout?0:e.recurrentDropout])]),n.stateSize=n.units,n.dropoutMask=null,n.recurrentDropoutMask=null,n}return rp(e,t),e.prototype.build=function(t){t=ef(t),this.kernel=this.addWeight("kernel",[t[t.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0},e.prototype.call=function(t,e){var n=this;return qt(function(){if(2!==(t=t).length)throw new vp("SimpleRNNCell expects 2 input Tensors, got "+t.length+".");var r=t[1];t=t[0];var i,o=null!=e.training&&e.training;0<n.dropout&&n.dropout<1&&null==n.dropoutMask&&(n.dropoutMask=gg(function(){return Ve(t)},n.dropout,o)),0<n.recurrentDropout&&n.recurrentDropout<1&&null==n.recurrentDropoutMask&&(n.recurrentDropoutMask=gg(function(){return Ve(r)},n.recurrentDropout,o));var a=n.dropoutMask,s=n.recurrentDropoutMask;i=Sh(null!=a?Eu(t,a):t,n.kernel.read()),null!=n.bias&&(i=Ih(i,n.bias.read())),null!=s&&(r=Eu(r,s));var u=hu(i,Sh(r,n.recurrentKernel.read()));return null!=n.activation&&(u=n.activation.apply(u)),[u,u]})},e.prototype.getConfig=function(){var e={units:this.units,activation:Jd(this.activation),useBias:this.useBias,kernelInitializer:Xh(this.kernelInitializer),recurrentInitializer:Xh(this.recurrentInitializer),biasInitializer:Xh(this.biasInitializer),kernelRegularizer:rm(this.kernelRegularizer),recurrentRegularizer:rm(this.recurrentRegularizer),biasRegularizer:rm(this.biasRegularizer),activityRegularizer:rm(this.activityRegularizer),kernelConstraint:qp(this.kernelConstraint),recurrentConstraint:qp(this.recurrentConstraint),biasConstraint:qp(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout},n=t.prototype.getConfig.call(this);return Object.assign(e,n),e},e.className="SimpleRNNCell",e}(ug);Fc.registerClass(lg);var cg=function(t){function e(e){return e.cell=new lg(e),t.call(this,e)||this}return rp(e,t),e.prototype.call=function(e,n){var r=this;return qt(function(){null!=r.cell.dropoutMask&&(Ht(r.cell.dropoutMask),r.cell.dropoutMask=null),null!=r.cell.recurrentDropoutMask&&(Ht(r.cell.recurrentDropoutMask),r.cell.recurrentDropoutMask=null);var i=null==n?null:n.mask,o=null==n?null:n.training,a=null==n?null:n.initialState;return t.prototype.call.call(r,e,{mask:i,training:o,initialState:a})})},Object.defineProperty(e.prototype,"units",{get:function(){return this.cell.units},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"activation",{get:function(){return this.cell.activation},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"useBias",{get:function(){return this.cell.useBias},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"kernelInitializer",{get:function(){return this.cell.kernelInitializer},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"recurrentInitializer",{get:function(){return this.cell.recurrentInitializer},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"biasInitializer",{get:function(){return this.cell.biasInitializer},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"kernelRegularizer",{get:function(){return this.cell.kernelRegularizer},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"recurrentRegularizer",{get:function(){return this.cell.recurrentRegularizer},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"biasRegularizer",{get:function(){return this.cell.biasRegularizer},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"kernelConstraint",{get:function(){return this.cell.kernelConstraint},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"recurrentConstraint",{get:function(){return this.cell.recurrentConstraint},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"biasConstraint",{get:function(){return this.cell.biasConstraint},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dropout",{get:function(){return this.cell.dropout},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"recurrentDropout",{get:function(){return this.cell.recurrentDropout},enumerable:!0,configurable:!0}),e.prototype.getConfig=function(){var e={units:this.units,activation:Jd(this.activation),useBias:this.useBias,kernelInitializer:Xh(this.kernelInitializer),recurrentInitializer:Xh(this.recurrentInitializer),biasInitializer:Xh(this.biasInitializer),kernelRegularizer:rm(this.kernelRegularizer),recurrentRegularizer:rm(this.recurrentRegularizer),biasRegularizer:rm(this.biasRegularizer),activityRegularizer:rm(this.activityRegularizer),kernelConstraint:qp(this.kernelConstraint),recurrentConstraint:qp(this.recurrentConstraint),biasConstraint:qp(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout},n=t.prototype.getConfig.call(this);return delete n.cell,Object.assign(e,n),e},e.className="SimpleRNN",e}(sg);Fc.registerClass(cg);var pg=function(t){function e(e){var n=t.call(this,e)||this;return n.DEFAULT_ACTIVATION="tanh",n.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",n.DEFAULT_KERNEL_INITIALIZER="glorotNormal",n.DEFAULT_RECURRENT_INITIALIZER="orthogonal",n.DEFAULT_BIAS_INITIALIZER="zeros",n.units=e.units,Fp(n.units,"units"),n.activation=Qd(void 0===e.activation?n.DEFAULT_ACTIVATION:e.activation),n.recurrentActivation=Qd(void 0===e.recurrentActivation?n.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),n.useBias=null==e.useBias||e.useBias,n.kernelInitializer=Yh(e.kernelInitializer||n.DEFAULT_KERNEL_INITIALIZER),n.recurrentInitializer=Yh(e.recurrentInitializer||n.DEFAULT_RECURRENT_INITIALIZER),n.biasInitializer=Yh(e.biasInitializer||n.DEFAULT_BIAS_INITIALIZER),n.kernelRegularizer=om(e.kernelRegularizer),n.recurrentRegularizer=om(e.recurrentRegularizer),n.biasRegularizer=om(e.biasRegularizer),n.kernelConstraint=Hp(e.kernelConstraint),n.recurrentConstraint=Hp(e.recurrentConstraint),n.biasConstraint=Hp(e.biasConstraint),n.dropout=ph([1,hh([0,null==e.dropout?0:e.dropout])]),n.recurrentDropout=ph([1,hh([0,null==e.recurrentDropout?0:e.recurrentDropout])]),n.implementation=e.implementation,n.stateSize=n.units,n.dropoutMask=null,n.recurrentDropoutMask=null,n}return rp(e,t),e.prototype.build=function(t){var e=(t=ef(t))[t.length-1];this.kernel=this.addWeight("kernel",[e,3*this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,3*this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[3*this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0},e.prototype.call=function(t,e){var n=this;return qt(function(){if(2!==(t=t).length)throw new vp("GRUCell expects 2 input Tensors (inputs, h, c), got "+t.length+".");var r=null!=e.training&&e.training,i=t[1];t=t[0],0<n.dropout&&n.dropout<1&&null==n.dropoutMask&&(n.dropoutMask=gg(function(){return Ve(t)},n.dropout,r,3)),0<n.recurrentDropout&&n.recurrentDropout<1&&null==n.recurrentDropoutMask&&(n.recurrentDropoutMask=gg(function(){return Ve(i)},n.recurrentDropout,r,3));var o,a,s,u=n.dropoutMask,l=n.recurrentDropoutMask;0<n.dropout&&n.dropout<1&&(t=Eu(t,u[0]));var c=Sh(t,n.kernel.read());n.useBias&&(c=Ih(c,n.bias.read())),0<n.recurrentDropout&&n.recurrentDropout<1&&(i=Eu(i,l[0]));var p=n.recurrentKernel.read(),h=Io(p,[2*n.units,n.units],p.rank-1),f=h[0],d=h[1],m=Sh(i,f),g=Io(c,3,c.rank-1),y=g[0],v=g[1],b=g[2],w=Io(m,2,m.rank-1),x=w[0],N=w[1];o=n.recurrentActivation.apply(hu(y,x)),a=n.recurrentActivation.apply(hu(v,N));var S=Sh(Eu(a,i),d);s=n.activation.apply(hu(b,S));var C=hu(Eu(o,i),Eu(hu(mp(1),Da(o)),s));return[C,C]})},e.prototype.getConfig=function(){var e={units:this.units,activation:Jd(this.activation),recurrentActivation:Jd(this.recurrentActivation),useBias:this.useBias,kernelInitializer:Xh(this.kernelInitializer),recurrentInitializer:Xh(this.recurrentInitializer),biasInitializer:Xh(this.biasInitializer),kernelRegularizer:rm(this.kernelRegularizer),recurrentRegularizer:rm(this.recurrentRegularizer),biasRegularizer:rm(this.biasRegularizer),activityRegularizer:rm(this.activityRegularizer),kernelConstraint:qp(this.kernelConstraint),recurrentConstraint:qp(this.recurrentConstraint),biasConstraint:qp(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout,implementation:this.implementation},n=t.prototype.getConfig.call(this);return Object.assign(e,n),e},e.className="GRUCell",e}(ug);Fc.registerClass(pg);var hg=function(t){function e(e){return 0===e.implementation&&console.warn("`implementation=0` has been deprecated, and now defaults to `implementation=1`. Please update your layer call."),e.cell=new pg(e),t.call(this,e)||this}return rp(e,t),e.prototype.call=function(e,n){var r=this;return qt(function(){null!=r.cell.dropoutMask&&(Ht(r.cell.dropoutMask),r.cell.dropoutMask=null),null!=r.cell.recurrentDropoutMask&&(Ht(r.cell.recurrentDropoutMask),r.cell.recurrentDropoutMask=null);var i=null==n?null:n.mask,o=null==n?null:n.training,a=null==n?null:n.initialState;return t.prototype.call.call(r,e,{mask:i,training:o,initialState:a})})},Object.defineProperty(e.prototype,"units",{get:function(){return this.cell.units},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"activation",{get:function(){return this.cell.activation},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"recurrentActivation",{get:function(){return this.cell.recurrentActivation},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"useBias",{get:function(){return this.cell.useBias},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"kernelInitializer",{get:function(){return this.cell.kernelInitializer},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"recurrentInitializer",{get:function(){return this.cell.recurrentInitializer},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"biasInitializer",{get:function(){return this.cell.biasInitializer},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"kernelRegularizer",{get:function(){return this.cell.kernelRegularizer},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"recurrentRegularizer",{get:function(){return this.cell.recurrentRegularizer},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"biasRegularizer",{get:function(){return this.cell.biasRegularizer},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"kernelConstraint",{get:function(){return this.cell.kernelConstraint},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"recurrentConstraint",{get:function(){return this.cell.recurrentConstraint},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"biasConstraint",{get:function(){return this.cell.biasConstraint},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dropout",{get:function(){return this.cell.dropout},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"recurrentDropout",{get:function(){return this.cell.recurrentDropout},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"implementation",{get:function(){return this.cell.implementation},enumerable:!0,configurable:!0}),e.prototype.getConfig=function(){var e={units:this.units,activation:Jd(this.activation),recurrentActivation:Jd(this.recurrentActivation),useBias:this.useBias,kernelInitializer:Xh(this.kernelInitializer),recurrentInitializer:Xh(this.recurrentInitializer),biasInitializer:Xh(this.biasInitializer),kernelRegularizer:rm(this.kernelRegularizer),recurrentRegularizer:rm(this.recurrentRegularizer),biasRegularizer:rm(this.biasRegularizer),activityRegularizer:rm(this.activityRegularizer),kernelConstraint:qp(this.kernelConstraint),recurrentConstraint:qp(this.recurrentConstraint),biasConstraint:qp(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout,implementation:this.implementation},n=t.prototype.getConfig.call(this);return delete n.cell,Object.assign(e,n),e},e.fromConfig=function(t,e){return 0===e.implmentation&&(e.implementation=1),new t(e)},e.className="GRU",e}(sg);Fc.registerClass(hg);var fg=function(t){function e(e){var n=t.call(this,e)||this;return n.DEFAULT_ACTIVATION="tanh",n.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",n.DEFAULT_KERNEL_INITIALIZER="glorotNormal",n.DEFAULT_RECURRENT_INITIALIZER="orthogonal",n.DEFAULT_BIAS_INITIALIZER="zeros",n.units=e.units,Fp(n.units,"units"),n.activation=Qd(void 0===e.activation?n.DEFAULT_ACTIVATION:e.activation),n.recurrentActivation=Qd(void 0===e.recurrentActivation?n.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),n.useBias=null==e.useBias||e.useBias,n.kernelInitializer=Yh(e.kernelInitializer||n.DEFAULT_KERNEL_INITIALIZER),n.recurrentInitializer=Yh(e.recurrentInitializer||n.DEFAULT_RECURRENT_INITIALIZER),n.biasInitializer=Yh(e.biasInitializer||n.DEFAULT_BIAS_INITIALIZER),n.unitForgetBias=e.unitForgetBias,n.kernelRegularizer=om(e.kernelRegularizer),n.recurrentRegularizer=om(e.recurrentRegularizer),n.biasRegularizer=om(e.biasRegularizer),n.kernelConstraint=Hp(e.kernelConstraint),n.recurrentConstraint=Hp(e.recurrentConstraint),n.biasConstraint=Hp(e.biasConstraint),n.dropout=ph([1,hh([0,null==e.dropout?0:e.dropout])]),n.recurrentDropout=ph([1,hh([0,null==e.recurrentDropout?0:e.recurrentDropout])]),n.implementation=e.implementation,n.stateSize=[n.units,n.units],n.dropoutMask=null,n.recurrentDropoutMask=null,n}return rp(e,t),e.prototype.build=function(t){var e,n,r=(t=ef(t))[t.length-1];if(this.kernel=this.addWeight("kernel",[r,4*this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,4*this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){if(this.unitForgetBias){var i=this.biasInitializer,o=this.units;n=new((e=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rp(e,t),e.prototype.apply=function(t,e){var n=i.apply([o]),r=(new _h).apply([o]),a=i.apply([2*o]);return wh(wh(n,r),a)},e}(Dh)).className="CustomInit",e)}else n=this.biasInitializer;this.bias=this.addWeight("bias",[4*this.units],null,n,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0},e.prototype.call=function(t,e){var n=this;return qt(function(){var r=null!=e.training&&e.training;if(3!==(t=t).length)throw new vp("LSTMCell expects 3 input Tensors (inputs, h, c), got "+t.length+".");var i=t[1],o=t[2];t=t[0],0<n.dropout&&n.dropout<1&&null==n.dropoutMask&&(n.dropoutMask=gg(function(){return Ve(t)},n.dropout,r,4)),0<n.recurrentDropout&&n.recurrentDropout<1&&null==n.recurrentDropoutMask&&(n.recurrentDropoutMask=gg(function(){return Ve(i)},n.recurrentDropout,r,4));var a,s,u,l,c=n.dropoutMask,p=n.recurrentDropoutMask;0<n.dropout&&n.dropout<1&&(t=Eu(t,c[0]));var h=Sh(t,n.kernel.read());0<n.recurrentDropout&&n.recurrentDropout<1&&(i=Eu(i,p[0])),h=hu(h,Sh(i,n.recurrentKernel.read())),n.useBias&&(h=Ih(h,n.bias.read()));var f=Io(h,4,h.rank-1),d=f[0],m=f[1],g=f[2],y=f[3];a=n.recurrentActivation.apply(d),s=n.recurrentActivation.apply(m),u=hu(Eu(s,o),Eu(a,n.activation.apply(g))),l=n.recurrentActivation.apply(y);var v=Eu(l,n.activation.apply(u));return[v,v,u]})},e.prototype.getConfig=function(){var e={units:this.units,activation:Jd(this.activation),recurrentActivation:Jd(this.recurrentActivation),useBias:this.useBias,kernelInitializer:Xh(this.kernelInitializer),recurrentInitializer:Xh(this.recurrentInitializer),biasInitializer:Xh(this.biasInitializer),unitForgetBias:this.unitForgetBias,kernelRegularizer:rm(this.kernelRegularizer),recurrentRegularizer:rm(this.recurrentRegularizer),biasRegularizer:rm(this.biasRegularizer),activityRegularizer:rm(this.activityRegularizer),kernelConstraint:qp(this.kernelConstraint),recurrentConstraint:qp(this.recurrentConstraint),biasConstraint:qp(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout,implementation:this.implementation},n=t.prototype.getConfig.call(this);return Object.assign(e,n),e},e.className="LSTMCell",e}(ug);Fc.registerClass(fg);var dg=function(t){function e(e){return 0===e.implementation&&console.warn("`implementation=0` has been deprecated, and now defaults to `implementation=1`. Please update your layer call."),e.cell=new fg(e),t.call(this,e)||this}return rp(e,t),e.prototype.call=function(e,n){var r=this;return qt(function(){null!=r.cell.dropoutMask&&(Ht(r.cell.dropoutMask),r.cell.dropoutMask=null),null!=r.cell.recurrentDropoutMask&&(Ht(r.cell.recurrentDropoutMask),r.cell.recurrentDropoutMask=null);var i=null==n?null:n.mask,o=null==n?null:n.training,a=null==n?null:n.initialState;return t.prototype.call.call(r,e,{mask:i,training:o,initialState:a})})},Object.defineProperty(e.prototype,"units",{get:function(){return this.cell.units},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"activation",{get:function(){return this.cell.activation},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"recurrentActivation",{get:function(){return this.cell.recurrentActivation},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"useBias",{get:function(){return this.cell.useBias},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"kernelInitializer",{get:function(){return this.cell.kernelInitializer},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"recurrentInitializer",{get:function(){return this.cell.recurrentInitializer},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"biasInitializer",{get:function(){return this.cell.biasInitializer},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"unitForgetBias",{get:function(){return this.cell.unitForgetBias},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"kernelRegularizer",{get:function(){return this.cell.kernelRegularizer},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"recurrentRegularizer",{get:function(){return this.cell.recurrentRegularizer},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"biasRegularizer",{get:function(){return this.cell.biasRegularizer},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"kernelConstraint",{get:function(){return this.cell.kernelConstraint},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"recurrentConstraint",{get:function(){return this.cell.recurrentConstraint},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"biasConstraint",{get:function(){return this.cell.biasConstraint},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dropout",{get:function(){return this.cell.dropout},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"recurrentDropout",{get:function(){return this.cell.recurrentDropout},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"implementation",{get:function(){return this.cell.implementation},enumerable:!0,configurable:!0}),e.prototype.getConfig=function(){var e={units:this.units,activation:Jd(this.activation),recurrentActivation:Jd(this.recurrentActivation),useBias:this.useBias,kernelInitializer:Xh(this.kernelInitializer),recurrentInitializer:Xh(this.recurrentInitializer),biasInitializer:Xh(this.biasInitializer),unitForgetBias:this.unitForgetBias,kernelRegularizer:rm(this.kernelRegularizer),recurrentRegularizer:rm(this.recurrentRegularizer),biasRegularizer:rm(this.biasRegularizer),activityRegularizer:rm(this.activityRegularizer),kernelConstraint:qp(this.kernelConstraint),recurrentConstraint:qp(this.recurrentConstraint),biasConstraint:qp(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout,implementation:this.implementation},n=t.prototype.getConfig.call(this);return delete n.cell,Object.assign(e,n),e},e.fromConfig=function(t,e){return 0===e.implmentation&&(e.implementation=1),new t(e)},e.className="LSTM",e}(sg);Fc.registerClass(dg);var mg=function(t){function e(e){var n=t.call(this,e)||this;return n.cells=e.cells,n}return rp(e,t),Object.defineProperty(e.prototype,"stateSize",{get:function(){for(var t=[],e=0,n=this.cells.slice().reverse();e<n.length;e++){var r=n[e];Array.isArray(r.stateSize)?t.push.apply(t,r.stateSize):t.push(r.stateSize)}return t},enumerable:!0,configurable:!0}),e.prototype.call=function(t,e){var n=this;return qt(function(){for(var r=(t=t).slice(1),i=[],o=0,a=n.cells.slice().reverse();o<a.length;o++){var s=a[o];Array.isArray(s.stateSize)?i.push(r.splice(0,s.stateSize.length)):i.push(r.splice(0,1))}i.reverse();for(var u,l=[],c=0;c<n.cells.length;++c)s=n.cells[c],r=i[c],u=0===c?[t[0]].concat(r):[u[0]].concat(r),u=s.call(u,e),l.push(u.slice(1));r=[];for(var p=0,h=l.slice().reverse();p<h.length;p++){var f=h[p];r.push.apply(r,f)}return[u[0]].concat(r)})},e.prototype.build=function(t){var e;Zh(t)&&(t=t[0]),t=t;for(var n=0,r=this.cells;n<r.length;n++){var i=r[n];i.build(t),e=Array.isArray(i.stateSize)?i.stateSize[0]:i.stateSize,t=[t[0],e]}this.built=!0},e.prototype.getConfig=function(){for(var e=[],n=0,r=this.cells;n<r.length;n++){var i=r[n];e.push({className:this.getClassName(),config:i.getConfig()})}var o={cells:e},a=t.prototype.getConfig.call(this);return Object.assign(o,a),o},e.fromConfig=function(t,e,n){void 0===n&&(n={});for(var r=[],i=0,o=e.cells;i<o.length;i++){var a=o[i];r.push(cd(a,n))}return new t({cells:r})},Object.defineProperty(e.prototype,"trainableWeights",{get:function(){if(!this.trainable)return[];for(var t=[],e=0,n=this.cells;e<n.length;e++){var r=n[e];t.push.apply(t,r.trainableWeights)}return t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"nonTrainableWeights",{get:function(){for(var t=[],e=0,n=this.cells;e<n.length;e++){var r=n[e];t.push.apply(t,r.nonTrainableWeights)}if(!this.trainable){for(var i=[],o=0,a=this.cells;o<a.length;o++)r=a[o],i.push.apply(i,r.trainableWeights);return i.concat(t)}return t},enumerable:!0,configurable:!0}),e.prototype.getWeights=function(){for(var t=[],e=0,n=this.cells;e<n.length;e++){var r=n[e];t.push.apply(t,r.weights)}return af(t)},e.prototype.setWeights=function(t){for(var e=[],n=0,r=this.cells;n<r.length;n++)for(var i=r[n],o=i.weights.length,a=t.splice(o),s=0;s<i.weights.length;++s)e.push([i.weights[s],a[s]]);sf(e)},e.className="StackedRNNCells",e}(ug);function gg(t,e,n,r){function i(){return kh(t(),mp(e))}if(void 0===n&&(n=null),void 0===r&&(r=1),r>1){for(var o=[],a=0;a<r;a++)o.push(Ah(i,t,n));return o.forEach(function(t){return Gt(t)}),o}return Gt(Ah(i,t,n))}Fc.registerClass(mg);var yg=function(t){function e(e){var n=t.call(this,e)||this;return n.layer=e.layer,n}return rp(e,t),e.prototype.build=function(t){this.built=!0},Object.defineProperty(e.prototype,"trainable",{get:function(){return null!=this.layer&&this.layer.trainable},set:function(t){null!=this.layer&&(this.layer.trainable=t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"trainableWeights",{get:function(){return this.layer.trainableWeights},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"nonTrainableWeights",{get:function(){return this.layer.nonTrainableWeights},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"updates",{get:function(){return this.layer._updates},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"losses",{get:function(){return this.layer.losses},enumerable:!0,configurable:!0}),e.prototype.getWeights=function(){return this.layer.getWeights()},e.prototype.setWeights=function(t){this.layer.setWeights(t)},e.prototype.getConfig=function(){var e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},n=t.prototype.getConfig.call(this);return Object.assign(e,n),e},e.prototype.setFastWeightInitDuringBuild=function(e){t.prototype.setFastWeightInitDuringBuild.call(this,e),null!=this.layer&&this.layer.setFastWeightInitDuringBuild(e)},e.fromConfig=function(t,e,n){void 0===n&&(n={});var r=cd(e.layer,n);delete e.layer;var i={layer:r};return Object.assign(i,e),new t(i)},e}(ff),vg=function(t){function e(e){var n=t.call(this,e)||this;return n.supportsMasking=!0,n}return rp(e,t),e.prototype.build=function(e){if((e=ef(e)).length<3)throw new vp("TimeDistributed layer expects an input shape >= 3D, but received input shape "+JSON.stringify(e));this.inputSpec=[{shape:e}];var n=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(n),this.layer.built=!0),t.prototype.build.call(this,e)},e.prototype.computeOutputShape=function(t){var e=[(t=ef(t))[0]].concat(t.slice(2)),n=this.layer.computeOutputShape(e),r=t[1];return[n[0],r].concat(n.slice(1))},e.prototype.call=function(t,e){var n=this;return qt(function(){return ag(function(t,r){return[tf(n.layer.call(t,e)),[]]},t=tf(t),[],!1,null,null,!1,!0)[1]})},e.className="TimeDistributed",e}(yg);Fc.registerClass(vg);var bg="concat",wg=function(t){function e(e){var n=t.call(this,e)||this,r=e.layer.getConfig(),i={};i.className=e.layer.getClassName(),i.config=r,n.forwardLayer=cd(i),r.goBackwards=!0!==r.goBackwards;var o={};if(o.className=e.layer.getClassName(),o.config=r,n.backwardLayer=cd(o),n.forwardLayer.name="forward_"+n.forwardLayer.name,n.backwardLayer.name="backward_"+n.backwardLayer.name,n.mergeMode=void 0===e.mergeMode?bg:e.mergeMode,function(t){Mp(Jp,"BidirectionalMergeMode",t)}(n.mergeMode),e.weights)throw new bp("weights support is not implemented for Bidirectional layer yet.");return n._stateful=e.layer.stateful,n.returnSequences=e.layer.returnSequences,n.returnState=e.layer.returnState,n.supportsMasking=!0,n._trainable=!0,n.inputSpec=e.layer.inputSpec,n.numConstants=null,n}return rp(e,t),Object.defineProperty(e.prototype,"trainable",{get:function(){return this._trainable},set:function(t){this._trainable=t,null!=this.forwardLayer&&(this.forwardLayer.trainable=t),null!=this.backwardLayer&&(this.backwardLayer.trainable=t)},enumerable:!0,configurable:!0}),e.prototype.getWeights=function(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())},e.prototype.setWeights=function(t){var e=t.length,n=Math.floor(e/2);this.forwardLayer.setWeights(t.slice(0,n)),this.backwardLayer.setWeights(t.slice(n))},e.prototype.computeOutputShape=function(t){var e,n,r,i=this.forwardLayer.computeOutputShape(t);return Array.isArray(i)&&Array.isArray(i[0])||(i=[i]),i=i,this.returnState?(r=i.slice(1),e=i[0]):e=i[0],e=e,"concat"===this.mergeMode?(e[e.length-1]*=2,n=[e]):n=null==this.mergeMode?[e,e.slice()]:[e],this.returnState?null==this.mergeMode?n.concat(r).concat(r.slice()):[e].concat(r).concat(r.slice()):Cp(n)},e.prototype.apply=function(e,n){var r=null==n?null:n.initialState,i=null==n?null:n.constants;null==n&&(n={});var o=og(e,r,i,this.numConstants);if(e=o.inputs,r=o.initialState,i=o.constants,Array.isArray(e)&&(r=e.slice(1),e=e[0]),(null==r||0===r.length)&&null==i)return t.prototype.apply.call(this,e,n);var a=[],s=[];if(null!=r){var u=r.length;if(u%2>0)throw new vp("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");n.initialState=r,a.push.apply(a,r);var l=r.map(function(t){return new uf({shape:t.shape})});this.forwardLayer.stateSpec=l.slice(0,u/2),this.backwardLayer.stateSpec=l.slice(u/2),s.push.apply(s,l)}if(null!=i)throw new bp("Support for constants in Bidirectional layers is not implemented yet.");for(var c=a[0]instanceof lf,p=0,h=a;p<h.length;p++)if(h[p]instanceof lf!==c)throw new vp("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(c){var f=[e].concat(a),d=this.inputSpec.concat(s),m=this.inputSpec;this.inputSpec=d;var g=t.prototype.apply.call(this,f,n);return this.inputSpec=m,g}return t.prototype.apply.call(this,e,n)},e.prototype.call=function(t,e){var n=this;return qt(function(){if(null!=e.mask)throw new bp("The support for masking is not implemented for Bidirectional layers yet.");var r,i,o,a,s=e.initialState;if(null==s)r=n.forwardLayer.call(t,e),i=n.backwardLayer.call(t,e);else{var u=s.slice(0,s.length/2),l=s.slice(s.length/2);r=n.forwardLayer.call(t,Object.assign(e,{initialState:u})),i=n.backwardLayer.call(t,Object.assign(e,{initialState:l}))}return n.returnState&&(Array.isArray(r)&&(o=r.slice(1).concat(i.slice(1))),r=r[0],i=i[0]),n.returnSequences&&(i=ks(i,1)),"concat"===n.mergeMode?a=bh([r,i]):"sum"===n.mergeMode?a=hu(r,i):"ave"===n.mergeMode?a=Eu(mp(.5),hu(r,i)):"mul"===n.mergeMode?a=Eu(r,i):null==n.mergeMode&&(a=[r,i]),n.returnState?null==n.mergeMode?a.concat(o):[a].concat(o):a})},e.prototype.resetStates=function(t){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()},e.prototype.build=function(t){var e=this;rh(this.forwardLayer.name,function(){e.forwardLayer.build(t)}),rh(this.backwardLayer.name,function(){e.backwardLayer.build(t)}),this.built=!0},Object.defineProperty(e.prototype,"trainableWeights",{get:function(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"nonTrainableWeights",{get:function(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)},enumerable:!0,configurable:!0}),e.prototype.setFastWeightInitDuringBuild=function(e){t.prototype.setFastWeightInitDuringBuild.call(this,e),null!=this.forwardLayer&&this.forwardLayer.setFastWeightInitDuringBuild(e),null!=this.backwardLayer&&this.backwardLayer.setFastWeightInitDuringBuild(e)},e.prototype.getConfig=function(){var e={mergeMode:this.mergeMode},n=t.prototype.getConfig.call(this);return Object.assign(e,n),e},e.fromConfig=function(t,e){var n=cd(e.layer);if(delete e.layer,null!=e.numConstants)throw new bp("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");var r=e;return r.layer=n,new t(r)},e.className="Bidirectional",e}(yg);function xg(t){return new Xm(t)}function Ng(t){return new Zm(t)}function Sg(t){return new eg(t)}function Cg(t){return new ig(t)}function Eg(t){return new $m(t)}function Ig(t){return new Jm(t)}Fc.registerClass(wg);var kg=Sg,Ag=Cg,Tg=Eg,Rg=Ig,Dg=Object.freeze({inputLayer:function(t){return new mf(t)},elu:function(t){return new lm(t)},reLU:function(t){return new am(t)},leakyReLU:function(t){return new sm(t)},prelu:function(t){return new um(t)},softmax:function(t){return new pm(t)},thresholdedReLU:function(t){return new cm(t)},conv1d:function(t){return new xm(t)},conv2d:function(t){return new vm(t)},conv2dTranspose:function(t){return new bm(t)},separableConv2d:function(t){return new wm(t)},cropping2D:function(t){return new Nm(t)},upSampling2d:function(t){return new Sm(t)},depthwiseConv2d:function(t){return new Cm(t)},activation:function(t){return new Am(t)},dense:function(t){return new Im(t)},dropout:function(t){return new Em(t)},flatten:function(t){return new km(t)},repeatVector:function(t){return new Tm(t)},reshape:function(t){return new Rm(t)},permute:function(t){return new Dm(t)},embedding:function(t){return new Om(t)},add:function(t){return new Mm(t)},average:function(t){return new Fm(t)},concatenate:function(t){return new Bm(t)},maximum:function(t){return new zm(t)},minimum:function(t){return new Pm(t)},multiply:function(t){return new Lm(t)},dot:function(t){return new Wm(t)},batchNormalization:function(t){return new qm(t)},zeroPadding2d:function(t){return new Gm(t)},averagePooling1d:xg,avgPool1d:function(t){return xg(t)},avgPooling1d:function(t){return xg(t)},averagePooling2d:Ng,avgPool2d:function(t){return Ng(t)},avgPooling2d:function(t){return Ng(t)},globalAveragePooling1d:function(t){return new tg(t)},globalAveragePooling2d:function(t){return new rg(t)},globalMaxPooling1d:Sg,globalMaxPooling2d:Cg,maxPooling1d:Eg,maxPooling2d:Ig,gru:function(t){return new hg(t)},gruCell:function(t){return new pg(t)},lstm:function(t){return new dg(t)},lstmCell:function(t){return new fg(t)},simpleRNN:function(t){return new cg(t)},simpleRNNCell:function(t){return new lg(t)},rnn:function(t){return new sg(t)},stackedRNNCells:function(t){return new mg(t)},bidirectional:function(t){return new wg(t)},timeDistributed:function(t){return new vg(t)},globalMaxPool1d:kg,globalMaxPool2d:Ag,maxPool1d:Tg,maxPool2d:Rg,Layer:ff,RNN:sg,RNNCell:ug,input:Pd});var Og=Object.freeze({binaryAccuracy:function(t,e){return qf(t,e)},binaryCrossentropy:function(t,e){return Xf(t,e)},sparseCategoricalAccuracy:function(t,e){return Yf(t,e)},categoricalAccuracy:function(t,e){return Gf(t,e)},categoricalCrossentropy:function(t,e){return rd(t,e)},precision:function(t,e){return Kf(t,e)},recall:function(t,e){return $f(t,e)},cosineProximity:function(t,e){return Vf(t,e)},meanAbsoluteError:function(t,e){return Rf(t,e)},meanAbsolutePercentageError:function(t,e){return Df(t,e)},MAPE:function(t,e){return Df(t,e)},mape:function(t,e){return Df(t,e)},meanSquaredError:function(t,e){return Tf(t,e)},MSE:function(t,e){return Tf(t,e)},mse:function(t,e){return Tf(t,e)}}),_g=Object.freeze({modelFromJSON:function(t,e){return ap(this,void 0,void 0,function(){var n,r,i,o,a,s,u,l;return sp(this,function(c){switch(c.label){case 0:return"modelTopology"in t||(t={modelTopology:t}),null!=(n=(t=t).modelTopology).model_config&&(n=n.model_config),r=hd(n),i=cd(r,e),null==t.weightsManifest?[3,2]:[4,Ac.loadWeights(t.weightsManifest,t.pathPrefix,i.weights.map(function(t){return t.originalName}))];case 1:for(o=c.sent(),a={},s=0,u=i.weights;s<u.length;s++)l=u[s],a[l.originalName]=o[l.originalName];i.loadWeights(a),Ht(o),c.label=2;case 2:return[2,i]}})})}});var Mg,Lg=Object.freeze({l1l2:function(t){return new em(t)},l1:function(t){return function(t){return new em({l1:null!=t?t.l1:null,l2:0})}(t)},l2:function(t){return function(t){return new em({l2:null!=t?t.l2:null,l1:0})}(t)}}),Fg=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.model=null,e}return rp(e,t),e.prototype.setModel=function(t){if(!(t instanceof Ld))throw new Error("model must be a LayersModel, not some other Container");this.model=t},e}(bf),zg=function(){return(zg=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var i in e=arguments[n])Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t}).apply(this,arguments)};function Pg(t,e,n,r){return new(n||(n=Promise))(function(i,o){function a(t){try{u(r.next(t))}catch(t){o(t)}}function s(t){try{u(r.throw(t))}catch(t){o(t)}}function u(t){t.done?i(t.value):new n(function(e){e(t.value)}).then(a,s)}u((r=r.apply(t,e||[])).next())})}function Bg(t,e){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=(i=a.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){a.label=o[1];break}if(6===o[0]&&a.label<i[1]){a.label=i[1],i=o;break}if(i&&a.label<i[2]){a.label=i[2],a.ops.push(o);break}i[2]&&a.ops.pop(),a.trys.pop();continue}o=e.call(t,a)}catch(t){o=[6,t],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}}function Ug(t,e,n,r){var i=e.inputParams[t];if(i&&void 0!==i.inputIndexStart){var o=i.inputIndexStart,a=0===i.inputIndexEnd?void 0:void 0===i.inputIndexEnd?o+1:i.inputIndexEnd;if("tensor"===i.type)return Wg(e.inputNames[i.inputIndexStart],n,r);if("tensors"===i.type)return e.inputNames.slice(o,a).map(function(t){return Wg(t,n,r)});var s=Array.prototype.slice.call(Wg(e.inputNames.slice(o)[0],n,r).dataSync());return"number"===i.type?s[0]:s}var u=e.attrParams[t];return u&&u.value}function Wg(t,e,n){var r=qg(t),i=r[0],o=r[1],a=n.currentContextIds.find(function(t){return!!e[jg(i,t)]});return void 0!==a?e[jg(i,a)][o]:void 0}function Vg(t,e){var n=qg(t),r=n[0],i=n[1];return[jg(r,e&&e.currentContextId),i]}function jg(t,e){return e?t+"-"+e:t}function qg(t){var e=t.lastIndexOf(":");return-1===e?[t,0]:[t.substring(0,e),Number(t.substring(e+1))]}function Gg(t,e){for(var n=[],r=0;r<t.length;r+=e)n.push(t.slice(r,r+e));return n}!function(t){!function(t){t[t.DT_INVALID=0]="DT_INVALID",t[t.DT_FLOAT=1]="DT_FLOAT",t[t.DT_DOUBLE=2]="DT_DOUBLE",t[t.DT_INT32=3]="DT_INT32",t[t.DT_UINT8=4]="DT_UINT8",t[t.DT_INT16=5]="DT_INT16",t[t.DT_INT8=6]="DT_INT8",t[t.DT_STRING=7]="DT_STRING",t[t.DT_COMPLEX64=8]="DT_COMPLEX64",t[t.DT_INT64=9]="DT_INT64",t[t.DT_BOOL=10]="DT_BOOL",t[t.DT_QINT8=11]="DT_QINT8",t[t.DT_QUINT8=12]="DT_QUINT8",t[t.DT_QINT32=13]="DT_QINT32",t[t.DT_BFLOAT16=14]="DT_BFLOAT16",t[t.DT_FLOAT_REF=101]="DT_FLOAT_REF",t[t.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",t[t.DT_INT32_REF=103]="DT_INT32_REF",t[t.DT_UINT8_REF=104]="DT_UINT8_REF",t[t.DT_INT16_REF=105]="DT_INT16_REF",t[t.DT_INT8_REF=106]="DT_INT8_REF",t[t.DT_STRING_REF=107]="DT_STRING_REF",t[t.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",t[t.DT_INT64_REF=109]="DT_INT64_REF",t[t.DT_BOOL_REF=110]="DT_BOOL_REF",t[t.DT_QINT8_REF=111]="DT_QINT8_REF",t[t.DT_QUINT8_REF=112]="DT_QUINT8_REF",t[t.DT_QINT32_REF=113]="DT_QINT32_REF",t[t.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF"}(t.DataType||(t.DataType={})),function(t){!function(t){t[t.LEGACY=0]="LEGACY",t[t.V1=1]="V1",t[t.V2=2]="V2"}(t.CheckpointFormatVersion||(t.CheckpointFormatVersion={}))}(t.SaverDef||(t.SaverDef={}))}(Mg||(Mg={}));var Hg=Object.freeze({json:[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}]}),Kg=Object.freeze({json:[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"clip_value_min",name:"clipValueMin",type:"number"},{tfName:"clip_value_max",name:"clipValueMax",type:"number"}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"clipValueMin",name:"clipValueMin",type:"number",defaultValue:0},{tfName:"clipValueMax",name:"clipValueMax",type:"number",defaultValue:6}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}]}),$g=Object.freeze({json:[{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"number"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"number"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"number"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"number"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"number"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"number"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"number"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"number"}]}]}),Xg=Object.freeze({json:[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]}]}),Yg=Object.freeze({json:[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]}]}),Jg=Object.freeze({json:[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}]}),Zg=Object.freeze({json:[{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]}]}),Qg=Object.freeze({json:[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}]}),ty=Object.freeze({json:[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]}]}),ey=Object.freeze({json:[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}]}),ny=Object.freeze({json:[{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}]}),ry=Object.freeze({json:[{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}]}),iy=Object.freeze({json:[{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]}]}),oy=Object.freeze({json:[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool",notSupported:!0}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}]}),ay=Object.freeze({json:[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}]}),sy=Object.freeze({json:[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]}]}),uy=["Switch","Merge","Enter","Exit","NextIteration"],ly=["NonMaxSuppressionV2","NonMaxSuppressionV3","Where"],cy=function(){function t(){var t=[Hg,Kg,$g,Xg,Yg,Jg,Zg,ey,ty,Qg,ny,ry,iy,oy,ay,sy],e=[].concat.apply([],t.map(function(t){return t.json}));this.opMappers=e.reduce(function(t,e){return t[e.tfOpName]=e,t},{})}return Object.defineProperty(t,"Instance",{get:function(){return this._instance||(this._instance=new this)},enumerable:!0,configurable:!0}),t.prototype.isControlFlow=function(t){return uy.some(function(e){return e===t.op})},t.prototype.isDynamicShape=function(t){return ly.some(function(e){return e===t.op})},t.prototype.transformGraph=function(t){var e=this,n=!1,r=!1,i=[],o=[],a=t.node.reduce(function(t,a){return t[a.name]=e.mapNode(a),e.isControlFlow(a)&&(n=!0),e.isDynamicShape(a)&&(r=!0),"Placeholder"===a.op&&i.push(t[a.name]),"Const"===a.op&&o.push(t[a.name]),t},{}),s=[],u=[];return Object.keys(a).forEach(function(t){var e=a[t];e.inputNames.forEach(function(t){var n=Vg(t)[0];e.inputs.push(a[n]),a[n].children.push(e)}),0===e.inputs.length&&s.push(e)}),Object.keys(a).forEach(function(t){var e=a[t];0===e.children.length&&u.push(e)}),{nodes:a,inputs:s,outputs:u,weights:o,placeholders:i,withControlFlow:n,withDynamicShape:r}},t.prototype.mapNode=function(t){var e=this,n=this.opMappers[t.op];if(void 0===n)throw new Error("Tensorflow Op is not supported: "+t.op);var r={name:t.name,op:t.op,category:n.category,inputNames:(t.input||[]).map(function(t){return t.startsWith("^")?t.substr(1):t}),inputs:[],children:[],inputParams:{},attrParams:{}};return null==t.attr&&(t.attr={}),null!=n.inputs&&(r.inputParams=n.inputs.reduce(function(t,e){return t[e.name]={type:e.type,inputIndexStart:e.start,inputIndexEnd:e.end},t},{})),null!=n.attrs&&(r.attrParams=n.attrs.reduce(function(n,r){var i=r.type,o=void 0;switch(r.type){case"string":void 0===(o=e.getStringParam(t.attr,r.tfName,r.defaultValue))&&r.tfDeprecatedName&&(o=e.getStringParam(t.attr,r.tfDeprecatedName,r.defaultValue));break;case"number":void 0===(o=e.getNumberParam(t.attr,r.tfName,r.defaultValue||0))&&r.tfDeprecatedName&&(o=e.getNumberParam(t.attr,r.tfDeprecatedName,r.defaultValue));break;case"number[]":void 0===(o=e.getNumericArrayParam(t.attr,r.tfName,r.defaultValue))&&r.tfDeprecatedName&&(o=e.getNumericArrayParam(t.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool":void 0===(o=e.getBoolParam(t.attr,r.tfName,r.defaultValue))&&r.tfDeprecatedName&&(o=e.getBoolParam(t.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":void 0===(o=e.getTensorShapeParam(t.attr,r.tfName,r.defaultValue))&&r.tfDeprecatedName&&(o=e.getTensorShapeParam(t.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype":void 0===(o=e.getDtypeParam(t.attr,r.tfName,r.defaultValue))&&r.tfDeprecatedName&&(o=e.getDtypeParam(t.attr,r.tfDeprecatedName,r.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error("Unsupported param type: "+r.type+" for op: "+t.op)}return n[r.name]={value:o,type:i},n},{})),r},t.prototype.decodeBase64=function(t){if("undefined"!=typeof atob)return atob(t);if("undefined"!=typeof Buffer)return new Buffer(t,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")},t.prototype.getStringParam=function(t,e,n,r){void 0===r&&(r=!1);var i=t[e];if(void 0!==i){var o=Array.isArray(i.s)?String.fromCharCode.apply(null,i.s):this.decodeBase64(i.s);return r?o:o.toLowerCase()}return n},t.prototype.getBoolParam=function(t,e,n){var r=t[e];return r?r.b:n},t.prototype.getNumberParam=function(t,e,n){var r=t[e]||{},i=r.i?r.i:r.f?r.f:n;return"number"==typeof i?i:parseInt(i,10)},t.prototype.getDtypeParam=function(t,e,n){var r=t[e];if(r&&r.type){var i=r.type;switch("string"==typeof r.type&&(i=Mg.DataType[r.type]),i){case Mg.DataType.DT_FLOAT:return"float32";case Mg.DataType.DT_INT32:return"int32";case Mg.DataType.DT_BOOL:return"bool";default:return n}}return n},t.prototype.getTensorShapeParam=function(t,e,n){var r=t[e];if(r&&r.shape){if(r.shape.unknownRank)return;if(null!=r.shape.dim)return r.shape.dim.map(function(t){return"number"==typeof t.size?t.size:parseInt(t.size,10)})}return n},t.prototype.getNumericArrayParam=function(t,e,n){var r=t[e];return r?(r.list.f&&r.list.f.length?r.list.f:r.list.i).map(function(t){return"number"==typeof t?t:parseInt(t,10)}):n},t}(),py=function(t,e,n){switch(t.op){case"BiasAdd":case"Add":return[hu(Ug("a",t,e,n),Ug("b",t,e,n))];case"AddN":return[fu(Ug("tensors",t,e,n))];case"FloorMod":case"Mod":return[Su(Ug("a",t,e,n),Ug("b",t,e,n))];case"Mul":return[Eu(Ug("a",t,e,n),Ug("b",t,e,n))];case"RealDiv":case"Div":return[gu(Ug("a",t,e,n),Ug("b",t,e,n))];case"FloorDiv":return[vu(Ug("a",t,e,n),Ug("b",t,e,n))];case"Sub":return[Du(Ug("a",t,e,n),Ug("b",t,e,n))];case"Minimum":return[xu(Ug("a",t,e,n),Ug("b",t,e,n))];case"Maximum":return[bu(Ug("a",t,e,n),Ug("b",t,e,n))];case"Pow":return[ku(Ug("a",t,e,n),Ug("b",t,e,n))];case"SquaredDifference":return[Tu(Ug("a",t,e,n),Ug("b",t,e,n))];default:throw TypeError("Node type "+t.op+" is not implemented")}},hy=function(t,e,n){switch(t.op){case"Abs":return[fa(Ug("x",t,e,n))];case"Acos":return[da(Ug("x",t,e,n))];case"Acosh":return[ma(Ug("x",t,e,n))];case"Asin":return[ga(Ug("x",t,e,n))];case"Asinh":return[ya(Ug("x",t,e,n))];case"Atan":return[va(Ug("x",t,e,n))];case"Atan2":return[mu(Ug("x",t,e,n),Ug("y",t,e,n))];case"Atanh":return[ba(Ug("x",t,e,n))];case"Ceil":return[wa(Ug("x",t,e,n))];case"Cos":return[Na(Ug("x",t,e,n))];case"Cosh":return[Sa(Ug("x",t,e,n))];case"Elu":return[Bu(Ug("x",t,e,n))];case"Erf":return[Ca(Ug("x",t,e,n))];case"Exp":return[Ea(Ug("x",t,e,n))];case"Expm1":return[Ia(Ug("x",t,e,n))];case"Floor":return[ka(Ug("x",t,e,n))];case"Log":return[Aa(Ug("x",t,e,n))];case"Log1p":return[Ta(Ug("x",t,e,n))];case"Neg":return[Da(Ug("x",t,e,n))];case"Reciprocal":return[Oa(Ug("x",t,e,n))];case"Relu":return[Vu(Ug("x",t,e,n))];case"Round":return[_a(Ug("x",t,e,n))];case"Selu":return[ju(Ug("x",t,e,n))];case"Sigmoid":return[La(Ug("x",t,e,n))];case"Sin":return[za(Ug("x",t,e,n))];case"Sign":return[Fa(Ug("x",t,e,n))];case"Sinh":return[Pa(Ug("x",t,e,n))];case"Softplus":return[Ba(Ug("x",t,e,n))];case"Sqrt":return[Ua(Ug("x",t,e,n))];case"Square":return[Wa(Ug("x",t,e,n))];case"Tanh":return[qa(Ug("x",t,e,n))];case"Tan":return[ja(Ug("x",t,e,n))];case"Relu6":case"ClipByValue":return[xa(Ug("x",t,e,n),Ug("clipValueMin",t,e,n),Ug("clipValueMax",t,e,n))];case"Rsqrt":return[Ma(Wg(t.inputNames[0],e,n))];case"Prod":return[Qs(Ug("x",t,e,n),Ug("axes",t,e,n))];case"LeakyRelu":return[Uu(Ug("x",t,e,n),Ug("alpha",t,e,n))];default:throw TypeError("Node type "+t.op+" is not implemented")}},fy=function(){function t(e,n,r,i,o,a,s){this.name=e,this.dtype=n,this.maxSize=r,this.elementShape=i,this.identicalElementShapes=o,this.dynamicSize=a,this.clearAfterRead=s,this.tensors=[],this.closed_=!1,this.id=t.nextId++}return Object.defineProperty(t.prototype,"closed",{get:function(){return this.closed_},enumerable:!0,configurable:!0}),t.prototype.clearAndClose=function(){this.tensors.forEach(function(t){return t.tensor.dispose()}),this.tensors=[],this.closed_=!0},t.prototype.size=function(){return this.tensors.length},t.prototype.read=function(t){if(this.closed_)throw new Error("TensorArray "+this.name+" has already been closed.");if(t<0||t>=this.tensors.length)throw new Error("Tried to read from index "+t+", but array size is: "+this.tensors.length);var e=this.tensors[t];if(e.cleared)throw new Error("TensorArray "+this.name+": Could not read index "+t+" twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).");return this.clearAfterRead&&(e.cleared=!0),e.read=!0,e.tensor},t.prototype.readMany=function(t){var e=this;return t.map(function(t){return e.read(t)})},t.prototype.write=function(t,e){if(this.closed_)throw new Error("TensorArray "+this.name+" has already been closed.");if(t<0||!this.dynamicSize&&t>=this.maxSize)throw new Error("Tried to write to index "+t+", but array is not resizeable and size is: "+this.maxSize);var n=this.tensors[t]||{};if(e.dtype!==this.dtype)throw new Error("TensorArray "+this.name+": Could not write to TensorArray index "+t+",\n          because the value dtype is "+e.dtype+", but TensorArray dtype is "+this.dtype+".");if(0!==this.size()||null!=this.elementShape&&0!==this.elementShape.length||(this.elementShape=e.shape),this.assertShapesMatchAllowUndefinedSize(this.elementShape,e.shape,"TensorArray "+this.name+": Could not write to TensorArray index "+t+"."),n&&n.read)throw new Error("TensorArray "+this.name+": Could not write to TensorArray index "+t+", because it has already been read.");if(n&&n.written)throw new Error("TensorArray "+this.name+": Could not write to TensorArray index "+t+", because it has already been written.");n.tensor=e,n.written=!0,this.tensors[t]=n},t.prototype.writeMany=function(t,e){var n=this;if(t.length!==e.length)throw new Error("TensorArray "+this.name+": could not write multiple tensors,because the index size: "+t.length+" is not the same as tensors size: "+e.length+".");t.forEach(function(t,r){return n.write(t,e[r])})},t.prototype.gather=function(t,e){if(e&&e!==this.dtype)throw new Error("TensorArray dtype is "+this.dtype+" but gather requested dtype "+e);if(!t){t=[];for(var n=0;n<this.size();n++)t.push(n)}if(0===t.length)return Te([],[0].concat(this.elementShape));var r=this.readMany(t);return this.assertShapesMatchAllowUndefinedSize(this.elementShape,r[0].shape,"TensorArray shape mismatch: "),oa(r,0)},t.prototype.concat=function(t){if(t&&t!==this.dtype)throw new Error("TensorArray dtype is "+this.dtype+" but concat requested dtype "+t);if(0===this.size())return Te([],[0].concat(this.elementShape));for(var e=[],n=0;n<this.size();n++)e.push(n);var r=this.readMany(e);return this.assertShapesMatchAllowUndefinedSize(this.elementShape,r[0].shape,"TensorArray shape mismatch: tensor array shape ("+this.elementShape+") vs first tensor shape ("+r[0].shape+")"),xo(r,0)},t.prototype.scatter=function(t,e){if(e.dtype!==this.dtype)throw new Error("TensorArray dtype is "+this.dtype+" but tensor has dtype "+e.dtype);if(t.length!==e.shape[0])throw new Error("Expected len(indices) == tensor.shape[0], but saw: "+t.length+" vs. "+e.shape[0]);var n=Math.max.apply(Math,t);if(!this.dynamicSize&&n>=this.maxSize)throw new Error("Max index must be < array size ("+n+"  vs. "+this.maxSize+")");this.writeMany(t,ua(e,0))},t.prototype.split=function(t,e){var n=this;if(e.dtype!==this.dtype)throw new Error("TensorArray dtype is "+this.dtype+" but tensor has dtype "+e.dtype);var r=0,i=t.map(function(t){return r+=t});if(r!==e.shape[0])throw new Error("Expected sum of lengths to be equal to\n          tensor.shape[0], but sum of lengths is\n        "+r+", and tensor's shape is: "+e.shape);if(!this.dynamicSize&&t.length!==this.maxSize)throw new Error("TensorArray's size is not equal to the size of lengths ("+this.maxSize+" vs. "+t.length+"), and the TensorArray is not marked as dynamically resizeable");var o=0===r?0:e.size/r,a=[];qt(function(){e=e.reshape([1,r,o]);for(var s=0;s<t.length;++s){var u=[0,0===s?0:i[s-1],0],l=[1,t[s],o];a[s]=zs(e,u,l).reshape(n.elementShape)}return a});for(var s=[],u=0;u<t.length;u++)s[u]=u;this.writeMany(s,a)},t.prototype.assertShapesMatchAllowUndefinedSize=function(t,e,n){void 0===n&&(n=""),X.assert(this.shapesEqualAllowUndefinedSize(t,e),function(){return n+" Shapes "+t+" and "+e+" must match"})},t.prototype.shapesEqualAllowUndefinedSize=function(t,e){if(t.length!==e.length)return!1;for(var n=0;n<t.length;n++)if(-1!==t[n]&&-1!==e[n]&&t[n]!==e[n])return!1;return!0},t.nextId=0,t}();var dy=function(t,e,n){switch(t.op){case"Conv1D":var r=Ug("stride",t,e,n),i=Ug("pad",t,e,n),o=Ug("dataFormat",t,e,n).toUpperCase(),a=Ug("dilation",t,e,n);return[ys(Ug("x",t,e,n),Ug("filter",t,e,n),r,i,o,a)];case"Conv2D":r=Ug("strides",t,e,n),i=Ug("pad",t,e,n),o=Ug("dataFormat",t,e,n).toUpperCase();var s=Ug("dilations",t,e,n);return[vs(Ug("x",t,e,n),Ug("filter",t,e,n),[r[1],r[2]],i,o,[s[0],s[1]])];case"Conv2DBackpropInput":case"Conv2dTranspose":var u=Ug("outputShape",t,e,n);return r=Ug("strides",t,e,n),i=Ug("pad",t,e,n),[Ss(Ug("x",t,e,n),Ug("filter",t,e,n),u,[r[1],r[2]],i)];case"DepthwiseConv2dNative":case"DepthwiseConv2d":return r=Ug("strides",t,e,n),i=Ug("pad",t,e,n),s=Ug("dilations",t,e,n),o=Ug("dataFormat",t,e,n).toUpperCase(),[xs(Ug("input",t,e,n),Ug("filter",t,e,n),[r[1],r[2]],i,o,[s[0],s[1]])];case"AvgPool":r=Ug("strides",t,e,n),i=Ug("pad",t,e,n);var l=Ug("kernelSize",t,e,n);return[Ls(Ug("x",t,e,n),[l[1],l[2]],[r[1],r[2]],i)];case"MaxPool":return r=Ug("strides",t,e,n),i=Ug("pad",t,e,n),l=Ug("kernelSize",t,e,n),[Ms(Ug("x",t,e,n),[l[1],l[2]],[r[1],r[2]],i)];default:throw TypeError("Node type "+t.op+" is not implemented")}},my=function(t,e,n){switch(t.op){case"Fill":var r=Ug("shape",t,e,n),i=Ug("dtype",t,e,n);return[Be(r,Ug("value",t,e,n),i)];case"LinSpace":var o=Ug("start",t,e,n);return[Ue(o,Ug("stop",t,e,n),Ug("num",t,e,n))];case"OneHot":var a=Ug("indices",t,e,n),s=Ug("depth",t,e,n),u=Ug("onValue",t,e,n),l=Ug("offValue",t,e,n);return[Ko(a,s,u,l)];case"Ones":return[ze(Ug("shape",t,e,n),Ug("dtype",t,e,n))];case"OnesLike":return[Ve(Ug("x",t,e,n))];case"RandomUniform":return[ea(Ug("shape",t,e,n),Ug("minval",t,e,n),Ug("maxval",t,e,n),Ug("dtype",t,e,n))];case"Range":return[We(o=Ug("start",t,e,n),Ug("stop",t,e,n),Ug("step",t,e,n),Ug("dtype",t,e,n))];case"TruncatedNormal":r=Ug("shape",t,e,n);var c=Ug("mean",t,e,n),p=Ug("stdDev",t,e,n),h=Ug("seed",t,e,n);return[sa(r,c,p,Ug("dtype",t,e,n),h)];case"Zeros":return[Pe(Ug("shape",t,e,n),Ug("dtype",t,e,n))];case"ZerosLike":return[je(Ug("x",t,e,n))];default:throw TypeError("Node type "+t.op+" is not implemented")}};var gy=function(t,e,n){switch(t.op){case"TopKV2":var r=Ug("x",t,e,n),i=Ug("k",t,e,n),o=Ug("sorted",t,e,n),a=el(r,i,o);return[a.values,a.indices];default:throw TypeError("Node type "+t.op+" is not implemented")}},yy=function(t,e,n){switch(t.op){case"Const":return e[t.name];case"PlaceholderWithDefault":var r=Ug("default",t,e,n);return[Wg(t.name,e,n)||r];case"Placeholder":return[Wg(t.name,e,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":case"Snapshot":return[Ug("x",t,e,n).clone()];case"Shape":return[De(Ug("x",t,e,n).shape,"int32")];case"ShapeN":return Ug("x",t,e,n).map(function(t){return De(t.shape)});case"Size":return[Re(Ug("x",t,e,n).size,"int32")];case"Rank":return[Re(Ug("x",t,e,n).rank,"int32")];case"NoOp":return[];case"Print":var i=Ug("x",t,e,n),o=Ug("data",t,e,n),a=Ug("message",t,e,n),s=Ug("summarize",t,e,n);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(a);for(var u=0;u<o.length;u++)console.log(Array.prototype.slice.call(o[u].dataSync()).slice(0,s));return[i];default:throw TypeError("Node type "+t.op+" is not implemented")}},vy=function(t,e,n){switch(t.op){case"ResizeBilinear":var r=Ug("images",t,e,n),i=Ug("size",t,e,n),o=Ug("alignCorners",t,e,n);return[Rl.resizeBilinear(r,[i[0],i[1]],o)];case"ResizeNearestNeighbor":return r=Ug("images",t,e,n),i=Ug("size",t,e,n),o=Ug("alignCorners",t,e,n),[Rl.resizeNearestNeighbor(r,[i[0],i[1]],o)];case"CropAndResize":var a=Ug("image",t,e,n),s=Ug("boxes",t,e,n),u=Ug("boxInd",t,e,n),l=Ug("cropSize",t,e,n),c=Ug("method",t,e,n),p=Ug("extrapolationValue",t,e,n);return[Rl.cropAndResize(a,s,u,l,c,p)];default:throw TypeError("Node type "+t.op+" is not implemented")}},by=function(t,e,n){switch(t.op){case"Equal":return[tu(Ug("a",t,e,n),Ug("b",t,e,n))];case"NotEqual":return[cu(Ug("a",t,e,n),Ug("b",t,e,n))];case"Greater":return[nu(Ug("a",t,e,n),Ug("b",t,e,n))];case"GreaterEqual":return[ru(Ug("a",t,e,n),Ug("b",t,e,n))];case"Less":return[au(Ug("a",t,e,n),Ug("b",t,e,n))];case"LessEqual":return[su(Ug("a",t,e,n),Ug("b",t,e,n))];case"LogicalAnd":return[_u(Ug("a",t,e,n),Ug("b",t,e,n))];case"LogicalNot":return[Mu(Ug("a",t,e,n))];case"LogicalOr":return[Lu(Ug("a",t,e,n),Ug("b",t,e,n))];case"Select":return[zu(Ug("condition",t,e,n),Ug("a",t,e,n),Ug("b",t,e,n))];default:throw TypeError("Node type "+t.op+" is not implemented")}},wy=function(t,e,n){switch(t.op){case"BatchMatMul":case"MatMul":return[Cs(Ug("a",t,e,n),Ug("b",t,e,n),Ug("transposeA",t,e,n),Ug("transposeB",t,e,n))];case"Transpose":return[qu(Ug("x",t,e,n),Ug("perm",t,e,n))];default:throw TypeError("Node type "+t.op+" is not implemented")}},xy=function(t,e,n){switch(t.op){case"FusedBatchNorm":case"FusedBatchNormV2":return[es(Ug("x",t,e,n),Ug("mean",t,e,n),Ug("variance",t,e,n),Ug("offset",t,e,n),Ug("scale",t,e,n),Ug("epsilon",t,e,n))];case"LRN":return[Gu(Ug("x",t,e,n),Ug("radius",t,e,n),Ug("bias",t,e,n),Ug("alpha",t,e,n),Ug("beta",t,e,n))];case"Softmax":return[Ce(Ug("x",t,e,n))];case"LogSoftmax":return[Ee(Ug("x",t,e,n))];case"SparseToDense":return[ul(Ug("sparseIndices",t,e,n),Ug("outputShape",t,e,n),Ug("sparseValues",t,e,n),Ug("defaultValue",t,e,n))];default:throw TypeError("Node type "+t.op+" is not implemented")}},Ny=function(t,e,n){switch(t.op){case"Max":var r=Ug("axis",t,e,n),i=Ug("keepDims",t,e,n);return[$s(Ug("x",t,e,n),r,i)];case"Mean":return r=Ug("axis",t,e,n),i=Ug("keepDims",t,e,n),[Xs(Ug("x",t,e,n),r,i)];case"Min":return r=Ug("axis",t,e,n),i=Ug("keepDims",t,e,n),[Ys(Ug("x",t,e,n),r,i)];case"Sum":return r=Ug("axis",t,e,n),i=Ug("keepDims",t,e,n),[Zs(Ug("x",t,e,n),r,i)];case"All":return r=Ug("axis",t,e,n),i=Ug("keepDims",t,e,n),[js(Ug("x",t,e,n),r,i)];case"Any":return r=Ug("axis",t,e,n),i=Ug("keepDims",t,e,n),[qs(Ug("x",t,e,n),r,i)];case"ArgMax":return r=Ug("axis",t,e,n),[Gs(Ug("x",t,e,n),r)];case"ArgMin":return r=Ug("axis",t,e,n),[Hs(Ug("x",t,e,n),r)];case"Prod":return r=Ug("axis",t,e,n),i=Ug("keepDims",t,e,n),[Qs(Ug("x",t,e,n),r,i)];default:throw TypeError("Node type "+t.op+" is not implemented")}},Sy=function(t,e,n){switch(t.op){case"ConcatV2":case"Concat":var r=Ug("axis",t,e,n),i=Ug("tensors",t,e,n);return[xo(i,r)];case"GatherV2":case"Gather":r=Ug("axis",t,e,n);var o=Ug("x",t,e,n),a=Ug("indices",t,e,n);return[Xu(o,a.asType("int32"),r)];case"ReverseV2":case"Reverse":return r=Ug("axis",t,e,n),o=Ug("x",t,e,n),[ks(o,r)];case"Slice":var s=Ug("begin",t,e,n),u=Ug("size",t,e,n);return[zs(Ug("x",t,e,n),s,u)];case"StridedSlice":s=Ug("begin",t,e,n);var l=Ug("end",t,e,n),c=Ug("strides",t,e,n),p=Ug("beginMask",t,e,n),h=Ug("endMask",t,e,n),f=Ug("ellipsisMask",t,e,n),d=Ug("newAxisMask",t,e,n),m=Ug("shrinkAxisMask",t,e,n),g=Ug("x",t,e,n);if(1===s.length&&g.shape.length>1)for(var y=1;y<g.shape.length;y++)s.push(0),l.push(g.shape[y]),c.push(c[0]);return[tl(g,s,l,c,p,h,f,d,m)];case"Pack":return qt(function(){var r=Ug("axis",t,e,n),i=Ug("tensors",t,e,n),o=i[0].shape,a=i[0].squeeze().shape,s=i.map(function(t){var e=X.arraysEqual(t.shape,o);if(!e&&!X.arraysEqual(t.squeeze().shape,a))throw new Error("the input tensors shape does not match");return e?t:t.reshape(o)});return[oa(s,r)]});case"Unpack":return qt(function(){var r=Ug("axis",t,e,n),i=Ug("tensor",t,e,n);return ua(i,r)});case"Tile":var v=Ug("reps",t,e,n);return[aa(Ug("x",t,e,n),v)];case"Split":case"SplitV":r=Ug("axis",t,e,n);var b=Ug("numOrSizeSplits",t,e,n);return Io(Ug("x",t,e,n),b,r);case"ScatterNd":a=Ug("indices",t,e,n);var w=Ug("values",t,e,n),x=Ug("shape",t,e,n);return[nl(a,w,x)];case"GatherNd":var N=Ug("x",t,e,n);return a=Ug("indices",t,e,n),[ll(N,a)];case"SparseToDense":a=Ug("sparseIndices",t,e,n),x=Ug("outputShape",t,e,n);var S=Ug("sparseValues",t,e,n),C=Ug("defaultValue",t,e,n);return[ul(a,S,x,S.dtype===C.dtype?C:C.asType(S.dtype))];default:throw TypeError("Node type "+t.op+" is not implemented")}},Cy=function(t,e,n){switch(t.op){case"FFT":return[rl(Ug("x",t,e,n))];case"IFFT":return[il(Ug("x",t,e,n))];case"RFFT":return[ol(Ug("x",t,e,n))];case"IRFFT":return[al(Ug("x",t,e,n))];default:throw TypeError("Node type "+t.op+" is not implemented")}},Ey=function(t,e,n){switch(t.op){case"Cast":return[Uo(Ug("x",t,e,n),Ug("dtype",t,e,n))];case"ExpandDims":var r=Ug("axis",t,e,n);return[qo(Ug("x",t,e,n),r)];case"Squeeze":return r=Ug("axis",t,e,n),[ia(Ug("x",t,e,n),r)];case"Reshape":return[na(Ug("x",t,e,n),Ug("shape",t,e,n))];case"PadV2":case"Pad":return[$o(Ug("x",t,e,n),Gg(Ug("padding",t,e,n),2),Ug("constantValue",t,e,n))];case"SpaceToBatchND":var i=Ug("blockShape",t,e,n),o=Gg(Ug("paddings",t,e,n),2);return[ra(Ug("x",t,e,n),i,o)];case"BatchToSpaceND":i=Ug("blockShape",t,e,n);var a=Gg(Ug("crops",t,e,n),2);return[Bo(Ug("x",t,e,n),i,a)];case"DepthToSpace":var s=Ug("blockSize",t,e,n),u=Ug("dataFormat",t,e,n).toUpperCase();return[jo(Ug("x",t,e,n),s,u)];default:throw TypeError("Node type "+t.op+" is not implemented")}};function Iy(t,e,n){var r=function(t,e,n){switch(t.category){case"arithmetic":return py(t,e,n);case"basic_math":return hy(t,e,n);case"control":return function(t,e,n){return Pg(this,void 0,void 0,function(){var r,i,o,a,s,u,l,c,p,h,f,d,m,g,y,v,b,w,x,N,S,C,E,I,k,A,T,R,D,O,_,M,L,F;return Bg(this,function(z){switch(z.label){case 0:switch(t.op){case"LoopCond":return[3,1];case"Switch":return[3,2];case"Merge":return[3,4];case"Enter":return[3,5];case"Exit":return[3,6];case"NextIteration":return[3,7];case"TensorArrayV3":return[3,8];case"TensorArrayWriteV3":return[3,9];case"TensorArrayReadV3":return[3,10];case"TensorArrayGatherV3":return[3,11];case"TensorArrayScatterV3":return[3,12];case"TensorArrayConcatV3":return[3,13];case"TensorArraySplitV3":return[3,14];case"TensorArraySizeV3":return[3,15];case"TensorArrayCloseV3":return[3,16]}return[3,17];case 1:return[2,[Ug("pred",t,e,n).clone()]];case 2:return r=Ug("pred",t,e,n),i=Ug("data",t,e,n),[4,r.data()];case 3:return[2,z.sent()[0]?[void 0,i.clone()]:[i.clone(),void 0]];case 4:return[2,(o=t.inputNames.find(function(t){return void 0!==Wg(t,e,n)}))?[Wg(o,e,n).clone()]:void 0];case 5:return a=Ug("frameName",t,e,n),s=Ug("tensor",t,e,n),n.enterFrame(a),[2,[s.clone()]];case 6:return u=Ug("tensor",t,e,n),n.exitFrame(),[2,[u.clone()]];case 7:return l=Ug("tensor",t,e,n),n.nextIteration(),[2,[l.clone()]];case 8:return c=Ug("size",t,e,n),p=Ug("dtype",t,e,n),h=Ug("elementShape",t,e,n),f=Ug("dynamicSize",t,e,n),d=Ug("clearAfterRead",t,e,n),m=Ug("identicalElementShapes",t,e,n),g=Ug("name",t,e,n),y=new fy(g,p,c,h,m,f,d),n.addTensorArray(y),[2,[Re(y.id),Re(1)]];case 9:return v=Ug("tensorArrayId",t,e,n),b=Ug("index",t,e,n),w=Ug("tensor",t,e,n),n.getTensorArray(v).write(b,w),[2,[Re(1)]];case 10:return x=Ug("tensorArrayId",t,e,n),N=Ug("index",t,e,n),[2,[n.getTensorArray(x).read(N)]];case 11:return S=Ug("tensorArrayId",t,e,n),C=Ug("indices",t,e,n),E=Ug("dtype",t,e,n),[2,[n.getTensorArray(S).gather(C,E)]];case 12:return I=Ug("tensorArrayId",t,e,n),k=Ug("indices",t,e,n),A=Ug("tensor",t,e,n),n.getTensorArray(I).scatter(k,A),[2,[Re(1)]];case 13:return T=Ug("tensorArrayId",t,e,n),R=n.getTensorArray(T),D=Ug("dtype",t,e,n),[2,[R.concat(D)]];case 14:return O=Ug("tensorArrayId",t,e,n),_=Ug("tensor",t,e,n),M=Ug("lengths",t,e,n),n.getTensorArray(O).split(M,_),[2,[Re(1)]];case 15:return L=Ug("tensorArrayId",t,e,n),[2,[Re(n.getTensorArray(L).size(),"int32")]];case 16:return F=Ug("tensorArrayId",t,e,n),n.getTensorArray(F).clearAndClose(),[2,[]];case 17:throw TypeError("Node type "+t.op+" is not implemented")}})})}(t,e,n);case"convolution":return dy(t,e,n);case"creation":return my(t,e,n);case"dynamic":return function(t,e,n){return Pg(this,void 0,void 0,function(){var r,i,o,a,s;return Bg(this,function(u){switch(u.label){case 0:switch(t.op){case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":return[3,1];case"Where":return[3,3];case"ListDiff":return[3,5]}return[3,7];case 1:return r=Ug("boxes",t,e,n),i=Ug("scores",t,e,n),o=Ug("maxOutputSize",t,e,n),a=Ug("iouThreshold",t,e,n),s=Ug("scoreThreshold",t,e,n),[4,Rl.nonMaxSuppressionAsync(r,i,o,a,s)];case 2:return[2,[u.sent()]];case 3:return[4,Pu(Ug("condition",t,e,n))];case 4:return[2,[u.sent()]];case 5:return[4,la(Ug("x",t,e,n),Ug("y",t,e,n))];case 6:return[2,u.sent()];case 7:throw TypeError("Node type "+t.op+" is not implemented")}})})}(t,e,n);case"evaluation":return gy(t,e,n);case"image":return vy(t,e,n);case"graph":return yy(t,e,n);case"logical":return by(t,e,n);case"matrices":return wy(t,e,n);case"normalization":return xy(t,e,n);case"reduction":return Ny(t,e,n);case"slice_join":return Sy(t,e,n);case"spectral":return Cy(t,e,n);case"transformation":return Ey(t,e,n);default:throw TypeError("Node type "+t.op+" is not implemented")}}(t,e,n);return r instanceof Promise?r.then(function(t){return[].concat(t)}):[].concat(r)}var ky=function(){function t(t,e){this.weightMap=t,this.tensorArrayMap=e,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}return t.prototype.newFrame=function(t,e){return{id:t,frameName:e,iterationId:0}},Object.defineProperty(t.prototype,"currentContext",{get:function(){return this.contexts},set:function(t){this.contexts!==t&&(this.contexts=t,this.generateCurrentContextIds())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"currentContextId",{get:function(){return this._currentContextIds[0]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"currentContextIds",{get:function(){return this._currentContextIds},enumerable:!0,configurable:!0}),t.prototype.generateCurrentContextIds=function(){for(var t=[],e=0;e<this.contexts.length-1;e++){var n=this.contexts.slice(0,this.contexts.length-e);t.push(this.contextIdforContexts(n))}t.push(""),this._currentContextIds=t},t.prototype.contextIdforContexts=function(t){return t?t.map(function(t){return 0===t.id&&0===t.iterationId?"":t.frameName+"-"+t.iterationId}).join("/"):""},t.prototype.enterFrame=function(t){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,t)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))},t.prototype.exitFrame=function(){if(!(this.contexts&&this.contexts.length>1))throw new Error("Cannot exit frame, the context is empty");this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift()},t.prototype.nextIteration=function(){if(!(this.contexts&&this.contexts.length>0))throw new Error("Cannot increase frame iteration, the context is empty");this.contexts=this.contexts.slice(),this.lastId++;var t=Object.assign({},this.contexts[this.contexts.length-1]);t.iterationId+=1,t.id=this.lastId,this.contexts.splice(-1,1,t),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))},t.prototype.getWeight=function(t){return this.weightMap[t]},t.prototype.addTensorArray=function(t){this.tensorArrayMap[t.id]=t},t.prototype.getTensorArray=function(t){return this.tensorArrayMap[t]},t}(),Ay=function(){function t(t){this.graph=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this.placeholders=t.placeholders,this._outputs=t.outputs,this.compile()}return Object.defineProperty(t.prototype,"weightMap",{get:function(){return this._weightMap},set:function(t){var e=Object.keys(t).map(function(e){return t[e].map(function(t){return t.id})});this.weightIds=[].concat.apply([],e),this._weightMap=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"inputs",{get:function(){return this.placeholders.map(function(t){return{name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}})},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"outputs",{get:function(){return this._outputs.map(function(t){return{name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}})},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"inputNodes",{get:function(){return this.placeholders.map(function(t){return t.name})},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"outputNodes",{get:function(){return this.outputs.map(function(t){return t.name})},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isControlFlowModel",{get:function(){return this.graph.withControlFlow},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isDynamicShapeModel",{get:function(){return this.graph.withDynamicShape},enumerable:!0,configurable:!0}),t.prototype.compile=function(t){if(!this.graph.withControlFlow&&!this.graph.withDynamicShape){var e=[],n=t||this.graph.placeholders,r=n.map(function(t){return t.name}).sort().join(this.SEPERATOR);if(!this.compiledMap.get(r)){for(var i=n.concat(this.graph.weights),o={};i.length>0;){var a=i.pop();o[a.name]=!0,e.push(a),a.children.forEach(function(t){!o[t.name]&&t.inputNames.every(function(t){var e=Vg(t)[0];return o[e]})&&i.push(t)})}this.compiledMap.set(r,e)}}},t.prototype.execute=function(t,e,n){var r=this;void 0===e&&(e=!0);var i=Object.keys(t).sort();this.checkInput(t,e),this.checkInputShapeAndType(t,e),this.compile(i.map(function(t){return r.graph.nodes[t]}));var o=this.calculateOutputs(n);this.checkOutput(this.compiledMap.get(i.join(this.SEPERATOR)),o);var a={};return qt(function(){for(var e=new ky(r._weightMap,a),n=zg({},r.weightMap,t),s=r.getFrozenTensorIds(n),u={},l=r.compiledMap.get(i.join(r.SEPERATOR)),c=0;c<l.length;c++){var p=l[c];if(n[p.name]||(n[p.name]=Iy(p,n,e),r.checkTensorForDisposal(p.name,p,n,e,s,o,u)),o.every(function(t){return!!n[t]}))break}return r.findOutputs(n,e,o)})},t.prototype.getFrozenTensorIds=function(t){var e=[].concat.apply([],Object.keys(t).map(function(e){return t[e]}).map(function(t){return t.map(function(t){return t.id})}));return new Set(e)},t.prototype.checkTensorForDisposal=function(t,e,n,r,i,o,a){"control"!==e.category&&-1===o.indexOf(t)&&(n[t].forEach(function(t){null!=t&&(a[t.id]=(a[t.id]||0)+e.children.length)}),e.inputs.forEach(function(t){if("control"!==t.category){var e=function(t,e,n){return e[jg(t,n.currentContextId)]}(t.name,n,r);null!=e&&e.forEach(function(t){if(t&&!i.has(t.id)){var e=a[t.id];1===e?(t.dispose(),delete a[t.id]):null!=e&&a[t.id]--}})}}))},t.prototype.executeAsync=function(t,e){return Pg(this,void 0,void 0,function(){var n,r,i,o,a,s,u,l,c=this;return Bg(this,function(p){switch(p.label){case 0:return this.checkInput(t,!1),this.checkInputShapeAndType(t,!1),n={},r=new ky(this._weightMap,n),i=this.calculateOutputs(e),[4,this.executeWithControlFlow(t,r,i)];case 1:return o=p.sent(),a=this.findOutputs(o,r,e),s=Object.keys(a).map(function(t){return a[t].id}),u=Object.keys(t).map(function(e){return t[e].map(function(t){return t.id})}),l=[].concat.apply([],u),Object.keys(o).forEach(function(t){o[t].forEach(function(t){t&&!t.isDisposed&&-1===s.indexOf(t.id)&&-1===l.indexOf(t.id)&&-1===c.weightIds.indexOf(t.id)&&t.dispose()})}),[2,a]}})})},t.prototype.executeWithControlFlow=function(t,e,n){return Pg(this,void 0,void 0,function(){var r,i,o,a,s,u,l,c,p=this;return Bg(this,function(h){switch(h.label){case 0:r=Object.keys(t),i=r.map(function(t){return p.graph.nodes[t]}),o=i.concat(this.graph.weights).map(function(t){return{node:t,contexts:e.currentContext}}),a=zg({},this.weightMap,t),s={},u=this.getFrozenTensorIds(a),l={},h.label=1;case 1:return o.length>0?(c=this.processStack(i,o,e,a,l,u,n,s),[4,Promise.all(c)]):[3,3];case 2:return h.sent(),[3,1];case 3:return[2,a]}})})},t.prototype.processStack=function(t,e,n,r,i,o,a,s){for(var u=this,l=[],c=function(){var c=e.pop();n.currentContext=c.contexts;var h="";if("Enter"===c.node.op&&Ug("isConstant",c.node,r,n)&&(h=Vg(c.node.name,n)[0]),-1===t.indexOf(c.node)){var f=Iy(c.node,r,n);h||(h=Vg(c.node.name,n)[0]);var d=n.currentContext;f instanceof Promise?l.push(f.then(function(t){return r[h]=t,n.currentContext=d,u.checkTensorForDisposal(h,c.node,r,n,o,a,s),u.processChildNodes(c.node,e,n,r,i),t})):(r[h]=f,p.checkTensorForDisposal(h,c.node,r,n,o,a,s),p.processChildNodes(c.node,e,n,r,i))}else p.processChildNodes(c.node,e,n,r,i)},p=this;e.length>0;)c();return l},t.prototype.processChildNodes=function(t,e,n,r,i){t.children.forEach(function(t){var o=Vg(t.name,n)[0];i[o]||("Merge"===t.op?t.inputNames.some(function(t){return!!Wg(t,r,n)})&&(i[o]=!0,e.push({contexts:n.currentContext,node:t})):t.inputNames.every(function(t){return!!Wg(t,r,n)})&&(i[o]=!0,e.push({contexts:n.currentContext,node:t})))})},t.prototype.calculateOutputs=function(t){return!t||t instanceof Array||(t=[t]),t||this.graph.outputs.map(function(t){return t.name})},t.prototype.findOutputs=function(t,e,n){return this.calculateOutputs(n).reduce(function(n,r){return n[r]=Wg(r,t,e),n},{})},t.prototype.dispose=function(){var t=this;Object.keys(this.weightMap).forEach(function(e){return t.weightMap[e].forEach(function(t){return t.dispose()})})},t.prototype.checkInputShapeAndType=function(t,e){void 0===e&&(e=!0),this.placeholders.forEach(function(n){var r=t[n.name];if(e||r){var i=r[0];if(n.attrParams.shape&&n.attrParams.shape.value){var o=n.attrParams.shape.value,a=o.length===i.shape.length&&i.shape.every(function(t,e){return-1===o[e]||o[e]===t});X.assert(a,function(){return"The shape of dict['"+n.name+"'] provided in model.execute(dict) must be ["+o+"], but was ["+i.shape+"]"})}n.attrParams.dtype&&n.attrParams.dtype.value&&X.assert(i.dtype===n.attrParams.dtype.value,function(){return"The dtype of dict['"+n.name+"'] provided in model.execute(dict) must be "+n.attrParams.dtype.value+", but was "+i.dtype})}})},t.prototype.checkInput=function(t,e){var n=this;void 0===e&&(e=!0);var r=Object.keys(t),i=[],o=[];this.inputNodes.forEach(function(t){-1===r.indexOf(t)&&i.push(t)}),r.forEach(function(t){-1===n.inputNodes.indexOf(t)&&o.push(t)});var a=o.filter(function(t){return!n.graph.nodes[t]});if(i.length>0&&e)throw new Error("The dict provided in model.execute(dict) has the keys ["+r+"], but is missing the required keys: ["+i+"].");if(o.length>0&&e)throw new Error("The dict provided in model.execute(dict) has unused keys: ["+o+"]. Please provide only the following keys: ["+this.inputNodes+"].");if(a.length>0)throw new Error("The dict provided in model.execute(dict) has keys: ["+a+"] not part of model graph.")},t.prototype.checkOutput=function(t,e){var n=t.map(function(t){return t.name}),r=[];if(e.forEach(function(t){var e=qg(t)[0];-1===n.indexOf(e)&&r.push(e)}),r.length>0)throw new Error("The following outputs are not generated by the execution: ["+r+"].")},t}(),Ty="?tfjs-format=file",Ry="model.json",Dy=function(){function t(t,e){void 0===e&&(e={}),this.modelUrl=t,this.loadOptions=e,this.version="n/a",null==e&&(this.loadOptions={})}return Object.defineProperty(t.prototype,"modelVersion",{get:function(){return this.version},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"inputNodes",{get:function(){return this.executor.inputNodes},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"outputNodes",{get:function(){return this.executor.outputNodes},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"inputs",{get:function(){return this.executor.inputs},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"outputs",{get:function(){return this.executor.outputs},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"weights",{get:function(){return this.executor.weightMap},enumerable:!0,configurable:!0}),t.prototype.findIOHandler=function(){var t=this.modelUrl;if(null!=t.load)this.handler=t;else if(null!=this.loadOptions.requestInit)this.handler=Ac.browserHTTPRequest(t,this.loadOptions);else{var e=Ac.getLoadHandlers(t,this.loadOptions.onProgress);if(0===e.length)e.push(Ac.browserHTTPRequest(t,this.loadOptions));else if(e.length>1)throw new Error("Found more than one ("+e.length+") load handlers for URL '"+[t]+"'");this.handler=e[0]}},t.prototype.load=function(){return Pg(this,void 0,void 0,function(){var t,e,n;return Bg(this,function(r){switch(r.label){case 0:if(this.findIOHandler(),null==this.handler.load)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");return[4,this.handler.load()];case 1:return t=r.sent(),e=t.modelTopology,this.version=e.versions.producer+"."+e.versions.minConsumer,n=Ac.decodeWeights(t.weightData,t.weightSpecs),this.executor=new Ay(cy.Instance.transformGraph(e)),this.executor.weightMap=this.convertTensorMapToTensorsMap(n),[2,!0]}})})},t.prototype.predict=function(t,e){return this.execute_(t,!0,this.outputNodes)},t.prototype.constructTensorMap=function(t){var e=t instanceof ut?[t]:t;if(e.length!==this.inputNodes.length)throw new Error("Input tensor count mismatch,the graph model has "+this.inputNodes.length+" placeholders, while there are "+e.length+" input tensors.");return this.inputNodes.reduce(function(t,n,r){return t[n]=e[r],t},{})},t.prototype.execute=function(t,e){return this.execute_(t,!1,e)},t.prototype.execute_=function(t,e,n){if(void 0===e&&(e=!0),n=n||this.outputNodes,(t instanceof ut||Array.isArray(t))&&(t=this.constructTensorMap(t)),this.executor.isControlFlowModel||this.executor.isDynamicShapeModel)throw new Error("The model contains control flow or dynamic shape ops, please use executeAsync method");var r=this.executor.execute(this.convertTensorMapToTensorsMap(t),e,n),i=Object.keys(r);return Array.isArray(n)&&n.length>1?n.map(function(t){return r[t]}):r[i[0]]},t.prototype.executeAsync=function(t,e){return Pg(this,void 0,void 0,function(){var n,r;return Bg(this,function(i){switch(i.label){case 0:if(!this.executor.isControlFlowModel&&!this.executor.isDynamicShapeModel)throw new Error("The model does not contain control flow or dynamic shape ops, please use execute method for better performance.");return e=e||this.outputNodes,(t instanceof ut||Array.isArray(t))&&(t=this.constructTensorMap(t)),[4,this.executor.executeAsync(this.convertTensorMapToTensorsMap(t),e)];case 1:return n=i.sent(),r=Object.keys(n),[2,Array.isArray(e)&&e.length>1?e.map(function(t){return n[t]}):n[r[0]]]}})})},t.prototype.convertTensorMapToTensorsMap=function(t){return Object.keys(t).reduce(function(e,n){return e[n]=[t[n]],e},{})},t.prototype.dispose=function(){this.executor.dispose()},t}();var Oy=function(t,e){return(Oy=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function _y(t,e){function n(){this.constructor=t}Oy(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}function My(t,e,n,r){return new(n||(n=Promise))(function(i,o){function a(t){try{u(r.next(t))}catch(t){o(t)}}function s(t){try{u(r.throw(t))}catch(t){o(t)}}function u(t){t.done?i(t.value):new n(function(e){e(t.value)}).then(a,s)}u((r=r.apply(t,e||[])).next())})}function Ly(t,e){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=(i=a.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){a.label=o[1];break}if(6===o[0]&&a.label<i[1]){a.label=i[1],i=o;break}if(i&&a.label<i[2]){a.label=i[2],a.ops.push(o);break}i[2]&&a.ops.pop(),a.trys.pop();continue}o=e.call(t,a)}catch(t){o=[6,t],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}}var Fy="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function zy(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function Py(t,e){return t(e={exports:{}},e.exports),e.exports}var By=Py(function(t){!function(t,e,n){function r(t,e){return e.c=t.c,e.s0=t.s0,e.s1=t.s1,e.s2=t.s2,e}function i(t,e){var n=new function(t){var e,n=this,r=(e=4022871197,function(t){t=t.toString();for(var n=0;n<t.length;n++){var r=.02519603282416938*(e+=t.charCodeAt(n));r-=e=r>>>0,e=(r*=e)>>>0,e+=4294967296*(r-=e)}return 2.3283064365386963e-10*(e>>>0)});n.next=function(){var t=2091639*n.s0+2.3283064365386963e-10*n.c;return n.s0=n.s1,n.s1=n.s2,n.s2=t-(n.c=0|t)},n.c=1,n.s0=r(" "),n.s1=r(" "),n.s2=r(" "),n.s0-=r(t),n.s0<0&&(n.s0+=1),n.s1-=r(t),n.s1<0&&(n.s1+=1),n.s2-=r(t),n.s2<0&&(n.s2+=1),r=null}(t),i=e&&e.state,o=n.next;return o.int32=function(){return 4294967296*n.next()|0},o.double=function(){return o()+1.1102230246251565e-16*(2097152*o()|0)},o.quick=o,i&&("object"==typeof i&&r(i,n),o.state=function(){return r(n,{})}),o}e&&e.exports?e.exports=i:this.alea=i}(0,t)}),Uy=Py(function(t){!function(t,e,n){function r(t,e){return e.x=t.x,e.y=t.y,e.z=t.z,e.w=t.w,e}function i(t,e){var n=new function(t){var e=this,n="";e.x=0,e.y=0,e.z=0,e.w=0,e.next=function(){var t=e.x^e.x<<11;return e.x=e.y,e.y=e.z,e.z=e.w,e.w^=e.w>>>19^t^t>>>8},t===(0|t)?e.x=t:n+=t;for(var r=0;r<n.length+64;r++)e.x^=0|n.charCodeAt(r),e.next()}(t),i=e&&e.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do{var t=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===t);return t},o.int32=n.next,o.quick=o,i&&("object"==typeof i&&r(i,n),o.state=function(){return r(n,{})}),o}e&&e.exports?e.exports=i:this.xor128=i}(0,t)}),Wy=Py(function(t){!function(t,e,n){function r(t,e){return e.x=t.x,e.y=t.y,e.z=t.z,e.w=t.w,e.v=t.v,e.d=t.d,e}function i(t,e){var n=new function(t){var e=this,n="";e.next=function(){var t=e.x^e.x>>>2;return e.x=e.y,e.y=e.z,e.z=e.w,e.w=e.v,(e.d=e.d+362437|0)+(e.v=e.v^e.v<<4^t^t<<1)|0},e.x=0,e.y=0,e.z=0,e.w=0,e.v=0,t===(0|t)?e.x=t:n+=t;for(var r=0;r<n.length+64;r++)e.x^=0|n.charCodeAt(r),r==n.length&&(e.d=e.x<<10^e.x>>>4),e.next()}(t),i=e&&e.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do{var t=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===t);return t},o.int32=n.next,o.quick=o,i&&("object"==typeof i&&r(i,n),o.state=function(){return r(n,{})}),o}e&&e.exports?e.exports=i:this.xorwow=i}(0,t)}),Vy=Py(function(t){!function(t,e,n){function r(t,e){return e.x=t.x.slice(),e.i=t.i,e}function i(t,e){null==t&&(t=+new Date);var n=new function(t){var e=this;e.next=function(){var t,n,r=e.x,i=e.i;return t=r[i],n=(t^=t>>>7)^t<<24,n^=(t=r[i+1&7])^t>>>10,n^=(t=r[i+3&7])^t>>>3,n^=(t=r[i+4&7])^t<<7,t=r[i+7&7],n^=(t^=t<<13)^t<<9,r[i]=n,e.i=i+1&7,n},function(t,e){var n,r=[];if(e===(0|e))r[0]=e;else for(e=""+e,n=0;n<e.length;++n)r[7&n]=r[7&n]<<15^e.charCodeAt(n)+r[n+1&7]<<13;for(;r.length<8;)r.push(0);for(n=0;n<8&&0===r[n];++n);for(8==n?r[7]=-1:r[n],t.x=r,t.i=0,n=256;n>0;--n)t.next()}(e,t)}(t),i=e&&e.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do{var t=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===t);return t},o.int32=n.next,o.quick=o,i&&(i.x&&r(i,n),o.state=function(){return r(n,{})}),o}e&&e.exports?e.exports=i:this.xorshift7=i}(0,t)}),jy=Py(function(t){!function(t,e,n){function r(t,e){return e.i=t.i,e.w=t.w,e.X=t.X.slice(),e}function i(t,e){null==t&&(t=+new Date);var n=new function(t){var e=this;e.next=function(){var t,n,r=e.w,i=e.X,o=e.i;return e.w=r=r+1640531527|0,n=i[o+34&127],t=i[o=o+1&127],n^=n<<13,t^=t<<17,n^=n>>>15,t^=t>>>12,n=i[o]=n^t,e.i=o,n+(r^r>>>16)|0},function(t,e){var n,r,i,o,a,s=[],u=128;for(e===(0|e)?(r=e,e=null):(e+="\0",r=0,u=Math.max(u,e.length)),i=0,o=-32;o<u;++o)e&&(r^=e.charCodeAt((o+32)%e.length)),0===o&&(a=r),r^=r<<10,r^=r>>>15,r^=r<<4,r^=r>>>13,o>=0&&(a=a+1640531527|0,i=0==(n=s[127&o]^=r+a)?i+1:0);for(i>=128&&(s[127&(e&&e.length||0)]=-1),i=127,o=512;o>0;--o)r=s[i+34&127],n=s[i=i+1&127],r^=r<<13,n^=n<<17,r^=r>>>15,n^=n>>>12,s[i]=r^n;t.w=a,t.X=s,t.i=i}(e,t)}(t),i=e&&e.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do{var t=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===t);return t},o.int32=n.next,o.quick=o,i&&(i.X&&r(i,n),o.state=function(){return r(n,{})}),o}e&&e.exports?e.exports=i:this.xor4096=i}(0,t)}),qy=Py(function(t){!function(t,e,n){function r(t,e){return e.a=t.a,e.b=t.b,e.c=t.c,e.d=t.d,e}function i(t,e){var n=new function(t){var e=this,n="";e.next=function(){var t=e.b,n=e.c,r=e.d,i=e.a;return t=t<<25^t>>>7^n,n=n-r|0,r=r<<24^r>>>8^i,i=i-t|0,e.b=t=t<<20^t>>>12^n,e.c=n=n-r|0,e.d=r<<16^n>>>16^i,e.a=i-t|0},e.a=0,e.b=0,e.c=-1640531527,e.d=1367130551,t===Math.floor(t)?(e.a=t/4294967296|0,e.b=0|t):n+=t;for(var r=0;r<n.length+20;r++)e.b^=0|n.charCodeAt(r),e.next()}(t),i=e&&e.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do{var t=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===t);return t},o.int32=n.next,o.quick=o,i&&("object"==typeof i&&r(i,n),o.state=function(){return r(n,{})}),o}e&&e.exports?e.exports=i:this.tychei=i}(0,t)}),Gy=Py(function(t){!function(e,n){var r,i=(0,eval)("this"),o=256,a=6,s="random",u=n.pow(o,a),l=n.pow(2,52),c=2*l,p=o-1;function h(t,h,g){var y=[],v=d(function t(e,n){var r,i=[],o=typeof e;if(n&&"object"==o)for(r in e)try{i.push(t(e[r],n-1))}catch(t){}return i.length?i:"string"==o?e:e+"\0"}((h=1==h?{entropy:!0}:h||{}).entropy?[t,m(e)]:null==t?function(){try{var t;return r&&(t=r.randomBytes)?t=t(o):(t=new Uint8Array(o),(i.crypto||i.msCrypto).getRandomValues(t)),m(t)}catch(t){var n=i.navigator,a=n&&n.plugins;return[+new Date,i,a,i.screen,m(e)]}}():t,3),y),b=new function(t){var e,n=t.length,r=this,i=0,a=r.i=r.j=0,s=r.S=[];for(n||(t=[n++]);i<o;)s[i]=i++;for(i=0;i<o;i++)s[i]=s[a=p&a+t[i%n]+(e=s[i])],s[a]=e;(r.g=function(t){for(var e,n=0,i=r.i,a=r.j,s=r.S;t--;)e=s[i=p&i+1],n=n*o+s[p&(s[i]=s[a=p&a+e])+(s[a]=e)];return r.i=i,r.j=a,n})(o)}(y),w=function(){for(var t=b.g(a),e=u,n=0;t<l;)t=(t+n)*o,e*=o,n=b.g(1);for(;t>=c;)t/=2,e/=2,n>>>=1;return(t+n)/e};return w.int32=function(){return 0|b.g(4)},w.quick=function(){return b.g(4)/4294967296},w.double=w,d(m(b.S),e),(h.pass||g||function(t,e,r,i){return i&&(i.S&&f(i,b),t.state=function(){return f(b,{})}),r?(n[s]=t,e):t})(w,v,"global"in h?h.global:this==n,h.state)}function f(t,e){return e.i=t.i,e.j=t.j,e.S=t.S.slice(),e}function d(t,e){for(var n,r=t+"",i=0;i<r.length;)e[p&i]=p&(n^=19*e[p&i])+r.charCodeAt(i++);return m(e)}function m(t){return String.fromCharCode.apply(0,t)}if(n["seed"+s]=h,d(n.random(),e),t.exports){t.exports=h;try{r=require("crypto")}catch(t){}}}([],Math)});Gy.alea=By,Gy.xor128=Uy,Gy.xorwow=Wy,Gy.xorshift7=Vy,Gy.xor4096=jy,Gy.tychei=qy;var Hy=Gy.alea,Ky=Py(function(t,e){function n(t){for(var e=t.length,n=0,r=0;e>0;)r=Math.random()*e|0,n=t[--e],t[e]=t[r],t[r]=n}function r(t,e){if(!t)throw new Error("string"==typeof e?e:e())}function i(t,e){if(void 0===e&&(e=[]),null==e&&(e=[]),Array.isArray(t)||l(t))for(var n=0;n<t.length;++n)i(t[n],e);else e.push(t);return e}function o(t,e){if(t===e)return!0;if(null==t||null==e)return!1;if(t.length!==e.length)return!1;for(var n=0;n<t.length;n++)if(t[n]!==e[n])return!1;return!0}function a(t){return t%1==0}function s(t,e){var n=e.length;return r((t=null==t?e.map(function(t,e){return e}):[].concat(t)).every(function(t){return t>=-n&&t<n}),function(){return"All values in axis param must be in range [-"+n+", "+n+") but got axis "+t}),r(t.every(function(t){return a(t)}),function(){return"All values in axis param must be integers but got axis "+t}),t.map(function(t){return t<0?n+t:t})}function u(t,e){for(var n=0;n<t.length;n++){var r=t[n];if(isNaN(r)||!isFinite(r))throw Error("A tensor of type "+e+" being uploaded contains "+r+".")}}function l(t){return t instanceof Float32Array||t instanceof Int32Array||t instanceof Uint8Array}function c(t){return"string"==typeof t||t instanceof String}function p(t){return"boolean"==typeof t}function h(t){return"number"==typeof t}function f(t,e){if(null==e||"float32"===e||"complex64"===e)return new Float32Array(t);if("int32"===e)return new Int32Array(t);if("bool"===e)return new Uint8Array(t);throw new Error("Unknown data type "+e)}Object.defineProperty(e,"__esModule",{value:!0}),e.shuffle=n,e.clamp=function(t,e,n){return Math.max(t,Math.min(e,n))},e.nearestLargerEven=function(t){return t%2==0?t:t+1},e.sum=function(t){for(var e=0,n=0;n<t.length;n++)e+=t[n];return e},e.randUniform=function(t,e){var n=Math.random();return e*n+(1-n)*t},e.distSquared=function(t,e){for(var n=0,r=0;r<t.length;r++){var i=Number(t[r])-Number(e[r]);n+=i*i}return n},e.assert=r,e.assertShapesMatch=function(t,e,n){void 0===n&&(n=""),r(o(t,e),function(){return n+" Shapes "+t+" and "+e+" must match"})},e.assertNonNull=function(t){r(null!=t,function(){return"The input to the tensor constructor must be a non-null value."})},e.flatten=i,e.sizeFromShape=function(t){if(0===t.length)return 1;for(var e=t[0],n=1;n<t.length;n++)e*=t[n];return e},e.isScalarShape=function(t){return 0===t.length},e.arraysEqual=o,e.isInt=a,e.tanh=function(t){if(null!=Math.tanh)return Math.tanh(t);if(t===1/0)return 1;if(t===-1/0)return-1;var e=Math.exp(2*t);return(e-1)/(e+1)},e.sizeToSquarishShape=function(t){var e=Math.ceil(Math.sqrt(t));return[e,Math.ceil(t/e)]},e.createShuffledIndices=function(t){for(var e=new Uint32Array(t),r=0;r<t;++r)e[r]=r;return n(e),e},e.rightPad=function(t,e){return e<=t.length?t:t+" ".repeat(e-t.length)},e.repeatedTry=function(t,e,n){return void 0===e&&(e=function(t){return 0}),new Promise(function(r,i){var o=0,a=function(){if(t())r();else{var s=e(++o);null!=n&&o>=n?i():setTimeout(a,s)}};a()})},e.inferFromImplicitShape=function(t,e){for(var n=1,r=-1,i=0;i<t.length;++i)if(t[i]>=0)n*=t[i];else if(-1===t[i]){if(-1!==r)throw Error("Shapes can only have 1 implicit size. Found -1 at dim "+r+" and dim "+i);r=i}else if(t[i]<0)throw Error("Shapes can not be < 0. Found "+t[i]+" at dim "+i);if(-1===r){if(e>0&&e!==n)throw Error("Size("+e+") must match the product of shape "+t);return t}if(0===n)throw Error("Cannot infer the missing size in ["+t+"] when there are 0 elements");if(e%n!=0)throw Error("The implicit shape can't be a fractional number. Got "+e+" / "+n);var o=t.slice();return o[r]=e/n,o},e.parseAxisParam=s,e.squeezeShape=function(t,e){for(var n=[],r=[],i=null==e?null:s(e,t).sort(),o=0,a=0;a<t.length;++a){if(null!=i){if(i[o]===a&&1!==t[a])throw new Error("Can't squeeze axis "+a+" since its dim '"+t[a]+"' is not 1");(null==i[o]||i[o]>a)&&1===t[a]&&(n.push(t[a]),r.push(a)),i[o]<=a&&o++}1!==t[a]&&(n.push(t[a]),r.push(a))}return{newShape:n,keptDims:r}},e.getTypedArrayFromDType=function(t,e){var n=null;if(null==t||"float32"===t)n=new Float32Array(e);else if("int32"===t)n=new Int32Array(e);else{if("bool"!==t)throw new Error("Unknown data type "+t);n=new Uint8Array(e)}return n},e.getArrayFromDType=function(t,e){var n=null;if(null==t||"float32"===t)n=new Float32Array(e);else if("int32"===t)n=new Int32Array(e);else if("bool"===t)n=new Uint8Array(e);else{if("string"!==t)throw new Error("Unknown data type "+t);n=new Array(e)}return n},e.checkComputationForErrors=function(t,e,n){if("float32"===e)for(var r=0;r<t.length;r++){var i=t[r];if(isNaN(i)||!isFinite(i))throw Error("The result of the '"+n+"' is "+i+".")}},e.checkConversionForErrors=u,e.hasEncodingLoss=function(t,e){return!("complex64"===e||"float32"===e&&"complex64"!==t||"int32"===e&&"float32"!==t&&"complex64"!==t||"bool"===e&&"bool"===t)},e.isTypedArray=l,e.bytesPerElement=function(t){if("float32"===t||"int32"===t)return 4;if("complex64"===t)return 8;if("bool"===t)return 1;throw new Error("Unknown dtype "+t)},e.bytesFromStringArray=function(t){if(null==t)return 0;var e=0;return t.forEach(function(t){return e+=2*t.length}),e},e.isString=c,e.isBoolean=p,e.isNumber=h,e.inferDtype=function t(e){return Array.isArray(e)?t(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array?"int32":h(e)?"float32":c(e)?"string":p(e)?"bool":"float32"},e.isFunction=function(t){return!!(t&&t.constructor&&t.call&&t.apply)},e.nearestDivisor=function(t,e){for(var n=e;n<t;++n)if(t%n==0)return n;return t},e.computeStrides=function(t){var e=t.length;if(e<2)return[];var n=new Array(e-1);n[e-2]=t[e-1];for(var r=e-3;r>=0;--r)n[r]=n[r+1]*t[r+1];return n},e.toTypedArray=function(t,e,n){if("string"===e)throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(t)&&(t=i(t)),n&&u(t,e),function(t,e){return t instanceof Float32Array&&"float32"===e||t instanceof Int32Array&&"int32"===e||t instanceof Uint8Array&&"bool"===e}(t,e))return t;if(null==e||"float32"===e||"complex64"===e)return new Float32Array(t);if("int32"===e)return new Int32Array(t);if("bool"===e){for(var r=new Uint8Array(t.length),o=0;o<r.length;++o)0!==Math.round(t[o])&&(r[o]=1);return r}throw new Error("Unknown data type "+e)},e.toNestedArray=function(t,e){if(0===t.length)return e[0];var n=t.reduce(function(t,e){return t*e});if(0===n)return[];if(n!==e.length)throw new Error("["+t+"] does not match the input size.");return function t(e,n,r){var i=new Array;if(1===n.length)for(var o=n[0],a=0;a<o;a++)i[a]=r[e+a];else{o=n[0];var s=n.slice(1),u=s.reduce(function(t,e){return t*e});for(a=0;a<o;a++)i[a]=t(e+a*u,s,r)}return i}(0,t,e)},e.makeOnesTypedArray=function(t,e){for(var n=f(t,e),r=0;r<n.length;r++)n[r]=1;return n},e.makeZerosTypedArray=f,e.now=function(){if("undefined"!=typeof performance)return performance.now();if("undefined"!=typeof process){var t=process.hrtime();return 1e3*t[0]+t[1]/1e6}throw new Error("Cannot measure time in this environment. You should run tf.js in the browser or in Node.js")},e.assertNonNegativeIntegerDimensions=function(t){t.forEach(function(e){r(Number.isInteger(e)&&e>=0,function(){return"Tensor must have a shape comprised of positive integers but got shape ["+t+"]."})})}});zy(Ky);Ky.shuffle,Ky.clamp,Ky.nearestLargerEven,Ky.sum,Ky.randUniform,Ky.distSquared,Ky.assert,Ky.assertShapesMatch,Ky.assertNonNull,Ky.flatten,Ky.sizeFromShape,Ky.isScalarShape,Ky.arraysEqual,Ky.isInt,Ky.tanh,Ky.sizeToSquarishShape,Ky.createShuffledIndices,Ky.rightPad,Ky.repeatedTry,Ky.inferFromImplicitShape,Ky.parseAxisParam,Ky.squeezeShape,Ky.getTypedArrayFromDType,Ky.getArrayFromDType,Ky.checkComputationForErrors,Ky.checkConversionForErrors,Ky.hasEncodingLoss;var $y=Ky.isTypedArray,Xy=(Ky.bytesPerElement,Ky.bytesFromStringArray,Ky.isString,Ky.isBoolean,Ky.isNumber,Ky.inferDtype,Ky.isFunction,Ky.nearestDivisor,Ky.computeStrides,Ky.toTypedArray,Ky.toNestedArray,Ky.makeOnesTypedArray,Ky.makeZerosTypedArray,Ky.now,Ky.assertNonNegativeIntegerDimensions,Py(function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var n=7;function r(t,e){var r;return r=Array.isArray(t)?parseFloat(t[0].toFixed(n))+" + "+parseFloat(t[1].toFixed(n))+"j":Ky.isString(t)?"'"+t+"'":parseFloat(t.toFixed(n)).toString(),Ky.rightPad(r,e)}function i(t){for(var e=[],n=0;n<t.length;n+=2)e.push([t[n],t[n+1]]);return e}e.tensorToString=function(t,e,n,o){var a=Ky.computeStrides(e),s=function(t,e,n,o){var a=Ky.sizeFromShape(e),s=o[o.length-1],u=new Array(s).fill(0),l=e.length,c="complex64"===n?i(t):t;if(l>1)for(var p=0;p<a/s;p++)for(var h=p*s,f=0;f<s;f++)u[f]=Math.max(u[f],r(c[h+f],0).length);return u}(t,e,n,a),u=e.length,l=function t(e,n,o,a,s,u){void 0===u&&(u=!0);var l="complex64"===o?2:1,c=n[0],p=n.length;if(0===p)return"complex64"===o?[r(i(e)[0],0)]:[e[0].toString()];if(1===p){if(c>20){var h=3*l,f=Array.from(e.slice(0,h)),d=Array.from(e.slice(c-3*l,c));return"complex64"===o&&(f=i(f),d=i(d)),["["+f.map(function(t,e){return r(t,s[e])}).join(", ")+", ..., "+d.map(function(t,e){return r(t,s[c-3+e])}).join(", ")+"]"]}return["["+("complex64"===o?i(e):Array.from(e)).map(function(t,e){return r(t,s[e])}).join(", ")+"]"]}var m=n.slice(1),g=a.slice(1),y=a[0]*l,v=[];if(c>20){for(var b=0;b<3;b++){var w=(x=b*y)+y;v.push.apply(v,t(e.slice(x,w),m,o,g,s,!1))}v.push("...");for(b=c-3;b<c;b++){w=(x=b*y)+y;v.push.apply(v,t(e.slice(x,w),m,o,g,s,b===c-1))}}else for(b=0;b<c;b++){var x;w=(x=b*y)+y;v.push.apply(v,t(e.slice(x,w),m,o,g,s,b===c-1))}var N=2===p?",":"";v[0]="["+v[0]+N;for(b=1;b<v.length-1;b++)v[b]=" "+v[b]+N;var S=",\n";for(b=2;b<p;b++)S+="\n";return v[v.length-1]=" "+v[v.length-1]+"]"+(u?"":S),v}(t,e,n,a,s),c=["Tensor"];return o&&(c.push("  dtype: "+n),c.push("  rank: "+u),c.push("  shape: ["+e+"]"),c.push("  values:")),c.push(l.map(function(t){return"    "+t}).join("\n")),c.join("\n")}}));zy(Xy);Xy.tensorToString;var Yy=Py(function(t,e){var n,r=Fy&&Fy.__extends||(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},function(t,e){function r(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}),i=Fy&&Fy.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,o){function a(t){try{u(r.next(t))}catch(t){o(t)}}function s(t){try{u(r.throw(t))}catch(t){o(t)}}function u(t){t.done?i(t.value):new n(function(e){e(t.value)}).then(a,s)}u((r=r.apply(t,e||[])).next())})},o=Fy&&Fy.__generator||function(t,e){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=(i=a.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){a.label=o[1];break}if(6===o[0]&&a.label<i[1]){a.label=i[1],i=o;break}if(i&&a.label<i[2]){a.label=i[2],a.ops.push(o);break}i[2]&&a.ops.pop(),a.trys.pop();continue}o=e.call(t,a)}catch(t){o=[6,t],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}};Object.defineProperty(e,"__esModule",{value:!0});var a=Ky,s=function(){function t(t,e,n){var r=this;if(this.dtype=e,this.shape=t.slice(),this.size=Ky.sizeFromShape(t),null!=n){var i=n.length;Ky.assert(i===this.size,function(){return"Length of values '"+i+"' does not match the size inferred by the shape '"+r.size+"'."})}if("complex64"===e)throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=n||Ky.getArrayFromDType(e,Ky.sizeFromShape(this.shape)),this.strides=a.computeStrides(t)}return t.prototype.set=function(t){for(var e=this,n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];0===n.length&&(n=[0]),Ky.assert(n.length===this.rank,function(){return"The number of provided coordinates ("+n.length+") must match the rank ("+e.rank+")"});var i=this.locToIndex(n);this.values[i]=t},t.prototype.get=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];0===t.length&&(t=[0]);for(var n=t[t.length-1],r=0;r<t.length-1;++r)n+=this.strides[r]*t[r];return this.values[n]},t.prototype.locToIndex=function(t){if(0===this.rank)return 0;if(1===this.rank)return t[0];for(var e=t[t.length-1],n=0;n<t.length-1;++n)e+=this.strides[n]*t[n];return e},t.prototype.indexToLoc=function(t){if(0===this.rank)return[];if(1===this.rank)return[t];for(var e=new Array(this.shape.length),n=0;n<e.length-1;++n)e[n]=Math.floor(t/this.strides[n]),t-=e[n]*this.strides[n];return e[e.length-1]=t,e},Object.defineProperty(t.prototype,"rank",{get:function(){return this.shape.length},enumerable:!0,configurable:!0}),t.prototype.toTensor=function(){return p.make(this.shape,{values:this.values},this.dtype)},t}();e.TensorBuffer=s;var u=null,l=null,c=null;e.setTensorTracker=function(t){u=t},e.setOpHandler=function(t){l=t},e.setDeprecationWarningFn=function(t){c=t};var p=function(){function t(t,e,n,r,i){this.isDisposedInternal=!1,this.shape=t.slice(),this.dtype=e||"float32",this.size=Ky.sizeFromShape(t),this.strides=a.computeStrides(t),this.dataId=null!=r?r:{},this.id=u().nextTensorId(),this.rankType=this.rank<5?this.rank.toString():"higher",u().registerTensor(this,i),null!=n&&u().write(this.dataId,n)}return t.make=function(e,n,r,i){return new t(e,r,n.values,n.dataId,i)},t.prototype.flatten=function(){return this.throwIfDisposed(),this.as1D()},t.prototype.asScalar=function(){return this.throwIfDisposed(),Ky.assert(1===this.size,function(){return"The array must have only 1 element."}),this.reshape([])},t.prototype.as1D=function(){return this.throwIfDisposed(),this.reshape([this.size])},t.prototype.as2D=function(t,e){return this.throwIfDisposed(),this.reshape([t,e])},t.prototype.as3D=function(t,e,n){return this.throwIfDisposed(),this.reshape([t,e,n])},t.prototype.as4D=function(t,e,n,r){return this.throwIfDisposed(),this.reshape([t,e,n,r])},t.prototype.as5D=function(t,e,n,r,i){return this.throwIfDisposed(),this.reshape([t,e,n,r,i])},t.prototype.asType=function(t){return this.throwIfDisposed(),l.cast(this,t)},Object.defineProperty(t.prototype,"rank",{get:function(){return this.shape.length},enumerable:!0,configurable:!0}),t.prototype.buffer=function(){return i(this,void 0,void 0,function(){var t;return o(this,function(e){switch(e.label){case 0:return[4,this.data()];case 1:return t=e.sent(),[2,l.buffer(this.shape,this.dtype,t)]}})})},t.prototype.bufferSync=function(){return l.buffer(this.shape,this.dtype,this.dataSync())},t.prototype.array=function(){return i(this,void 0,void 0,function(){var t;return o(this,function(e){switch(e.label){case 0:return[4,this.data()];case 1:return t=e.sent(),[2,a.toNestedArray(this.shape,t)]}})})},t.prototype.arraySync=function(){return a.toNestedArray(this.shape,this.dataSync())},t.prototype.data=function(){return i(this,void 0,void 0,function(){return o(this,function(t){return this.throwIfDisposed(),[2,u().read(this.dataId)]})})},t.prototype.dataSync=function(){return this.throwIfDisposed(),u().readSync(this.dataId)},t.prototype.dispose=function(){this.isDisposed||(u().disposeTensor(this),this.isDisposedInternal=!0)},Object.defineProperty(t.prototype,"isDisposed",{get:function(){return this.isDisposedInternal},enumerable:!0,configurable:!0}),t.prototype.throwIfDisposed=function(){if(this.isDisposed)throw new Error("Tensor is disposed.")},t.prototype.toFloat=function(){return this.asType("float32")},t.prototype.toInt=function(){return this.asType("int32")},t.prototype.toBool=function(){return this.asType("bool")},t.prototype.print=function(t){return void 0===t&&(t=!1),l.print(this,t)},t.prototype.reshape=function(t){return this.throwIfDisposed(),l.reshape(this,t)},t.prototype.reshapeAs=function(t){return this.throwIfDisposed(),this.reshape(t.shape)},t.prototype.expandDims=function(t){return void 0===t&&(t=0),l.expandDims(this,t)},t.prototype.cumsum=function(t,e,n){return void 0===t&&(t=0),void 0===e&&(e=!1),void 0===n&&(n=!1),l.cumsum(this,t,e,n)},t.prototype.squeeze=function(t){return this.throwIfDisposed(),l.squeeze(this,t)},t.prototype.clone=function(){return this.throwIfDisposed(),l.clone(this)},t.prototype.oneHot=function(t,e,n){return this.throwIfDisposed(),l.oneHot(this,t,e,n)},t.prototype.toString=function(t){void 0===t&&(t=!1);var e=this.dataSync();return Xy.tensorToString(e,this.shape,this.dtype,t)},t.prototype.tile=function(t){return this.throwIfDisposed(),l.tile(this,t)},t.prototype.gather=function(t,e){return void 0===e&&(e=0),this.throwIfDisposed(),l.gather(this,t,e)},t.prototype.matMul=function(t,e,n){return void 0===e&&(e=!1),void 0===n&&(n=!1),this.throwIfDisposed(),l.matMul(this,t,e,n)},t.prototype.dot=function(t){return this.throwIfDisposed(),l.dot(this,t)},t.prototype.norm=function(t,e,n){return void 0===t&&(t="euclidean"),void 0===e&&(e=null),void 0===n&&(n=!1),this.throwIfDisposed(),l.norm(this,t,e,n)},t.prototype.slice=function(t,e){return this.throwIfDisposed(),l.slice(this,t,e)},t.prototype.reverse=function(t){return this.throwIfDisposed(),l.reverse(this,t)},t.prototype.concat=function(e,n){return void 0===n&&(n=0),this.throwIfDisposed(),e instanceof t&&(e=[e]),l.concat([this].concat(e),n)},t.prototype.split=function(t,e){return void 0===e&&(e=0),this.throwIfDisposed(),l.split(this,t,e)},t.prototype.stack=function(t,e){return void 0===e&&(e=0),l.stack([this,t],e)},t.prototype.unstack=function(t){return void 0===t&&(t=0),l.unstack(this,t)},t.prototype.pad=function(t,e){return void 0===e&&(e=0),l.pad(this,t,e)},t.prototype.batchNormalization=function(t,e,n,r,i){return void 0===n&&(n=.001),c("tf.batchNormalization() is going away. Use tf.batchNorm() instead, and note the positional argument change of scale, offset, and varianceEpsilon"),this.batchNorm(t,e,i,r,n)},t.prototype.batchNorm=function(t,e,n,r,i){return void 0===i&&(i=.001),this.throwIfDisposed(),l.batchNorm(this,t,e,n,r,i)},t.prototype.all=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),l.all(this,t,e)},t.prototype.any=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),l.any(this,t,e)},t.prototype.logSumExp=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),l.logSumExp(this,t,e)},t.prototype.sum=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),l.sum(this,t,e)},t.prototype.prod=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),l.prod(this,t,e)},t.prototype.mean=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),l.mean(this,t,e)},t.prototype.min=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),l.min(this,t,e)},t.prototype.max=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),l.max(this,t,e)},t.prototype.argMin=function(t){return void 0===t&&(t=null),this.throwIfDisposed(),l.argMin(this,t)},t.prototype.argMax=function(t){return void 0===t&&(t=null),this.throwIfDisposed(),l.argMax(this,t)},t.prototype.cast=function(t){return this.throwIfDisposed(),l.cast(this,t)},t.prototype.add=function(t){return this.throwIfDisposed(),l.add(this,t)},t.prototype.addStrict=function(t){return this.throwIfDisposed(),l.addStrict(this,t)},t.prototype.atan2=function(t){return this.throwIfDisposed(),l.atan2(this,t)},t.prototype.sub=function(t){return this.throwIfDisposed(),l.sub(this,t)},t.prototype.subStrict=function(t){return this.throwIfDisposed(),l.subStrict(this,t)},t.prototype.pow=function(t){return this.throwIfDisposed(),l.pow(this,t)},t.prototype.powStrict=function(t){return this.throwIfDisposed(),l.powStrict(this,t)},t.prototype.mul=function(t){return this.throwIfDisposed(),l.mul(this,t)},t.prototype.mulStrict=function(t){return this.throwIfDisposed(),l.mulStrict(this,t)},t.prototype.div=function(t){return this.throwIfDisposed(),l.div(this,t)},t.prototype.floorDiv=function(t){return this.throwIfDisposed(),l.floorDiv(this,t)},t.prototype.divStrict=function(t){return this.throwIfDisposed(),l.divStrict(this,t)},t.prototype.minimum=function(t){return this.throwIfDisposed(),l.minimum(this,t)},t.prototype.minimumStrict=function(t){return this.throwIfDisposed(),l.minimumStrict(this,t)},t.prototype.maximum=function(t){return this.throwIfDisposed(),l.maximum(this,t)},t.prototype.maximumStrict=function(t){return this.throwIfDisposed(),l.maximumStrict(this,t)},t.prototype.mod=function(t){return this.throwIfDisposed(),l.mod(this,t)},t.prototype.modStrict=function(t){return this.throwIfDisposed(),l.modStrict(this,t)},t.prototype.squaredDifference=function(t){return this.throwIfDisposed(),l.squaredDifference(this,t)},t.prototype.squaredDifferenceStrict=function(t){return this.throwIfDisposed(),l.squaredDifferenceStrict(this,t)},t.prototype.transpose=function(t){return this.throwIfDisposed(),l.transpose(this,t)},t.prototype.notEqual=function(t){return this.throwIfDisposed(),l.notEqual(this,t)},t.prototype.notEqualStrict=function(t){return this.throwIfDisposed(),l.notEqualStrict(this,t)},t.prototype.less=function(t){return this.throwIfDisposed(),l.less(this,t)},t.prototype.lessStrict=function(t){return this.throwIfDisposed(),l.lessStrict(this,t)},t.prototype.equal=function(t){return this.throwIfDisposed(),l.equal(this,t)},t.prototype.equalStrict=function(t){return this.throwIfDisposed(),l.equalStrict(this,t)},t.prototype.lessEqual=function(t){return this.throwIfDisposed(),l.lessEqual(this,t)},t.prototype.lessEqualStrict=function(t){return this.throwIfDisposed(),l.lessEqualStrict(this,t)},t.prototype.greater=function(t){return this.throwIfDisposed(),l.greater(this,t)},t.prototype.greaterStrict=function(t){return this.throwIfDisposed(),l.greaterStrict(this,t)},t.prototype.greaterEqual=function(t){return this.throwIfDisposed(),l.greaterEqual(this,t)},t.prototype.greaterEqualStrict=function(t){return this.throwIfDisposed(),l.greaterEqualStrict(this,t)},t.prototype.logicalAnd=function(t){return this.throwIfDisposed(),l.logicalAnd(this,t)},t.prototype.logicalOr=function(t){return this.throwIfDisposed(),l.logicalOr(this,t)},t.prototype.logicalNot=function(){return this.throwIfDisposed(),l.logicalNot(this)},t.prototype.logicalXor=function(t){return this.throwIfDisposed(),l.logicalXor(this,t)},t.prototype.where=function(t,e){return this.throwIfDisposed(),l.where(t,this,e)},t.prototype.neg=function(){return this.throwIfDisposed(),l.neg(this)},t.prototype.ceil=function(){return this.throwIfDisposed(),l.ceil(this)},t.prototype.floor=function(){return this.throwIfDisposed(),l.floor(this)},t.prototype.sign=function(){return this.throwIfDisposed(),l.sign(this)},t.prototype.exp=function(){return this.throwIfDisposed(),l.exp(this)},t.prototype.expm1=function(){return this.throwIfDisposed(),l.expm1(this)},t.prototype.log=function(){return this.throwIfDisposed(),l.log(this)},t.prototype.log1p=function(){return this.throwIfDisposed(),l.log1p(this)},t.prototype.sqrt=function(){return this.throwIfDisposed(),l.sqrt(this)},t.prototype.rsqrt=function(){return this.throwIfDisposed(),l.rsqrt(this)},t.prototype.square=function(){return this.throwIfDisposed(),l.square(this)},t.prototype.reciprocal=function(){return this.throwIfDisposed(),l.reciprocal(this)},t.prototype.abs=function(){return this.throwIfDisposed(),l.abs(this)},t.prototype.clipByValue=function(t,e){return this.throwIfDisposed(),l.clipByValue(this,t,e)},t.prototype.relu=function(){return this.throwIfDisposed(),l.relu(this)},t.prototype.elu=function(){return this.throwIfDisposed(),l.elu(this)},t.prototype.selu=function(){return this.throwIfDisposed(),l.selu(this)},t.prototype.leakyRelu=function(t){return void 0===t&&(t=.2),this.throwIfDisposed(),l.leakyRelu(this,t)},t.prototype.prelu=function(t){return this.throwIfDisposed(),l.prelu(this,t)},t.prototype.sigmoid=function(){return this.throwIfDisposed(),l.sigmoid(this)},t.prototype.logSigmoid=function(){return this.throwIfDisposed(),l.logSigmoid(this)},t.prototype.softplus=function(){return this.throwIfDisposed(),l.softplus(this)},t.prototype.zerosLike=function(){return this.throwIfDisposed(),l.zerosLike(this)},t.prototype.onesLike=function(){return this.throwIfDisposed(),l.onesLike(this)},t.prototype.sin=function(){return this.throwIfDisposed(),l.sin(this)},t.prototype.cos=function(){return this.throwIfDisposed(),l.cos(this)},t.prototype.tan=function(){return this.throwIfDisposed(),l.tan(this)},t.prototype.asin=function(){return this.throwIfDisposed(),l.asin(this)},t.prototype.acos=function(){return this.throwIfDisposed(),l.acos(this)},t.prototype.atan=function(){return this.throwIfDisposed(),l.atan(this)},t.prototype.sinh=function(){return this.throwIfDisposed(),l.sinh(this)},t.prototype.cosh=function(){return this.throwIfDisposed(),l.cosh(this)},t.prototype.tanh=function(){return this.throwIfDisposed(),l.tanh(this)},t.prototype.asinh=function(){return this.throwIfDisposed(),l.asinh(this)},t.prototype.acosh=function(){return this.throwIfDisposed(),l.acosh(this)},t.prototype.atanh=function(){return this.throwIfDisposed(),l.atanh(this)},t.prototype.erf=function(){return this.throwIfDisposed(),l.erf(this)},t.prototype.round=function(){return this.throwIfDisposed(),l.round(this)},t.prototype.step=function(t){return void 0===t&&(t=0),this.throwIfDisposed(),l.step(this,t)},t.prototype.softmax=function(t){return void 0===t&&(t=-1),this.throwIfDisposed(),l.softmax(this,t)},t.prototype.logSoftmax=function(t){return void 0===t&&(t=-1),this.throwIfDisposed(),l.logSoftmax(this,t)},t.prototype.resizeBilinear=function(t,e){return void 0===e&&(e=!1),this.throwIfDisposed(),l.image.resizeBilinear(this,t,e)},t.prototype.resizeNearestNeighbor=function(t,e){return void 0===e&&(e=!1),this.throwIfDisposed(),l.image.resizeNearestNeighbor(this,t,e)},t.prototype.conv1d=function(t,e,n,r,i,o){return void 0===r&&(r="NWC"),void 0===i&&(i=1),this.throwIfDisposed(),l.conv1d(this,t,e,n,r,i,o)},t.prototype.conv2d=function(t,e,n,r,i,o){return void 0===r&&(r="NHWC"),void 0===i&&(i=[1,1]),this.throwIfDisposed(),l.conv2d(this,t,e,n,r,i,o)},t.prototype.conv2dTranspose=function(t,e,n,r,i){return this.throwIfDisposed(),l.conv2dTranspose(this,t,e,n,r,i)},t.prototype.depthwiseConv2D=function(t,e,n,r,i,o){return void 0===r&&(r="NHWC"),void 0===i&&(i=[1,1]),this.throwIfDisposed(),l.depthwiseConv2d(this,t,e,n,r,i,o)},t.prototype.separableConv2d=function(t,e,n,r,i,o){return void 0===i&&(i=[1,1]),void 0===o&&(o="NHWC"),this.throwIfDisposed(),l.separableConv2d(this,t,e,n,r,i,o)},t.prototype.avgPool=function(t,e,n,r){return this.throwIfDisposed(),l.avgPool(this,t,e,n,r)},t.prototype.maxPool=function(t,e,n,r){return this.throwIfDisposed(),l.maxPool(this,t,e,n,r)},t.prototype.localResponseNormalization=function(t,e,n,r){return void 0===t&&(t=5),void 0===e&&(e=1),void 0===n&&(n=1),void 0===r&&(r=.5),l.localResponseNormalization(this,t,e,n,r)},t.prototype.pool=function(t,e,n,r,i){return this.throwIfDisposed(),l.pool(this,t,e,n,r,i)},t.prototype.variable=function(t,e,n){return void 0===t&&(t=!0),this.throwIfDisposed(),h.variable(this,t,e,n)},t.prototype.unsortedSegmentSum=function(t,e){return this.throwIfDisposed(),l.unsortedSegmentSum(this,t,e)},t.prototype.batchToSpaceND=function(t,e){return this.throwIfDisposed(),l.batchToSpaceND(this,t,e)},t.prototype.spaceToBatchND=function(t,e){return this.throwIfDisposed(),l.spaceToBatchND(this,t,e)},t.prototype.topk=function(t,e){return void 0===t&&(t=1),void 0===e&&(e=!0),this.throwIfDisposed(),l.topk(this,t,e)},t.prototype.stridedSlice=function(t,e,n,r,i,o,a,s){return void 0===r&&(r=0),void 0===i&&(i=0),void 0===o&&(o=0),void 0===a&&(a=0),void 0===s&&(s=0),this.throwIfDisposed(),l.stridedSlice(this,t,e,n,r,i,o,a,s)},t.prototype.depthToSpace=function(t,e){return this.throwIfDisposed(),l.depthToSpace(this,t,e)},t.prototype.fft=function(){return this.throwIfDisposed(),l.spectral.fft(this)},t.prototype.ifft=function(){return this.throwIfDisposed(),l.spectral.ifft(this)},t.prototype.rfft=function(){return this.throwIfDisposed(),l.spectral.rfft(this)},t.prototype.irfft=function(){return this.throwIfDisposed(),l.spectral.irfft(this)},t}();e.Tensor=p,Object.defineProperty(p,Symbol.hasInstance,{value:function(t){return!!t&&null!=t.dataId&&null!=t.shape&&null!=t.dtype}});var h=function(t){function e(e,n,r){void 0===n&&(n=!0);var i=t.call(this,e.shape,e.dtype,null,e.dataId)||this;i.trainable=n,i.name=r,null==i.name&&(i.name=u().nextVariableId().toString());try{u().registerVariable(i)}catch(t){throw u().disposeTensor(i),t}return i}return r(e,t),e.variable=function(t,n,r,i){return void 0===n&&(n=!0),null!=i&&i!==t.dtype&&(t=t.asType(i)),new e(t,n,r)},e.prototype.assign=function(t){if(t.dtype!==this.dtype)throw new Error("dtype of the new value ("+t.dtype+") and previous value ("+this.dtype+") must match");if(!Ky.arraysEqual(t.shape,this.shape))throw new Error("shape of the new value ("+t.shape+") and previous value ("+this.shape+") must match");u().disposeTensor(this),this.dataId=t.dataId,u().registerTensor(this)},e}(p);e.Variable=h,Object.defineProperty(h,Symbol.hasInstance,{value:function(t){return t instanceof p&&null!=t.assign&&t.assign instanceof Function}});var f=h.variable;e.variable=f});zy(Yy);Yy.TensorBuffer,Yy.setTensorTracker,Yy.setOpHandler,Yy.setDeprecationWarningFn,Yy.Tensor,Yy.Variable,Yy.variable;var Jy=Py(function(t,e){var n,r,i,o;Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.R0="R0",t.R1="R1",t.R2="R2",t.R3="R3",t.R4="R4",t.R5="R5",t.R6="R6"}(e.Rank||(e.Rank={})),function(t){t.float32="float32",t.int32="int32",t.bool="int32",t.complex64="complex64"}(n||(n={})),function(t){t.float32="float32",t.int32="int32",t.bool="bool",t.complex64="complex64"}(r||(r={})),function(t){t.float32="float32",t.int32="float32",t.bool="float32",t.complex64="complex64"}(i||(i={})),function(t){t.float32="complex64",t.int32="complex64",t.bool="complex64",t.complex64="complex64"}(o||(o={}));var a={float32:i,int32:n,bool:r,complex64:o};function s(t,e){if("string"===t||"string"===e){if("string"===t&&"string"===e)return"string";throw new Error("Can not upcast "+t+" with "+e)}return a[t][e]}e.upcastType=s,e.sumOutType=function(t){return s(t,"int32")}});zy(Jy);Jy.Rank,Jy.upcastType,Jy.sumOutType;var Zy=Py(function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.makeTypesMatch=function(t,e){if(t.dtype===e.dtype)return[t,e];var n=Jy.upcastType(t.dtype,e.dtype);return[t.cast(n),e.cast(n)]},e.assertTypesMatch=function(t,e){Ky.assert(t.dtype===e.dtype,function(){return"The dtypes of the first("+t.dtype+") and second("+e.dtype+") input must match"})},e.isTensorInList=function(t,e){for(var n=0;n<e.length;n++)if(e[n].id===t.id)return!0;return!1},e.flattenNameArrayMap=function(t,e){var n=[];if(t instanceof Yy.Tensor)n.push(t);else for(var r=t,i=0;i<e.length;i++)n.push(r[e[i]]);return n},e.unflattenToNameArrayMap=function(t,e){if(t.length!==e.length)throw new Error("Cannot unflatten Tensor[], keys and arrays are not of same length.");for(var n={},r=0;r<t.length;r++)n[t[r]]=e[r];return n},e.getTensorsInContainer=function(t){var e=[];return function t(e,n,r){if(null!=e)if(e instanceof Yy.Tensor)n.push(e);else if(i=e,Array.isArray(i)||"object"==typeof i){var i,o=e;for(var a in o){var s=o[a];r.has(s)||(r.add(s),t(s,n,r))}}}(t,e,new Set),e}});zy(Zy);Zy.makeTypesMatch,Zy.assertTypesMatch;var Qy=Zy.isTensorInList,tv=(Zy.flattenNameArrayMap,Zy.unflattenToNameArrayMap,Zy.getTensorsInContainer),ev=function(t){return t instanceof Buffer},nv=Py(function(t){"function"==typeof Object.create?t.exports=function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(t,e){t.super_=e;var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t}}),rv=Py(function(t){try{var e=iv;if("function"!=typeof e.inherits)throw"";t.exports=e.inherits}catch(e){t.exports=nv}}),iv=Py(function(t,e){var n=Object.getOwnPropertyDescriptors||function(t){for(var e=Object.keys(t),n={},r=0;r<e.length;r++)n[e[r]]=Object.getOwnPropertyDescriptor(t,e[r]);return n},r=/%[sdj%]/g;e.format=function(t){if(!g(t)){for(var e=[],n=0;n<arguments.length;n++)e.push(a(arguments[n]));return e.join(" ")}n=1;for(var i=arguments,o=i.length,s=String(t).replace(r,function(t){if("%%"===t)return"%";if(n>=o)return t;switch(t){case"%s":return String(i[n++]);case"%d":return Number(i[n++]);case"%j":try{return JSON.stringify(i[n++])}catch(t){return"[Circular]"}default:return t}}),u=i[n];n<o;u=i[++n])d(u)||!b(u)?s+=" "+u:s+=" "+a(u);return s},e.deprecate=function(t,n){if("undefined"!=typeof process&&!0===process.noDeprecation)return t;if("undefined"==typeof process)return function(){return e.deprecate(t,n).apply(this,arguments)};var r=!1;return function(){if(!r){if(process.throwDeprecation)throw new Error(n);process.traceDeprecation?console.trace(n):console.error(n),r=!0}return t.apply(this,arguments)}};var i,o={};function a(t,n){var r={seen:[],stylize:u};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),f(n)?r.showHidden=n:n&&e._extend(r,n),y(r.showHidden)&&(r.showHidden=!1),y(r.depth)&&(r.depth=2),y(r.colors)&&(r.colors=!1),y(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=s),l(r,t,r.depth)}function s(t,e){var n=a.styles[e];return n?"["+a.colors[n][0]+"m"+t+"["+a.colors[n][1]+"m":t}function u(t,e){return t}function l(t,n,r){if(t.customInspect&&n&&N(n.inspect)&&n.inspect!==e.inspect&&(!n.constructor||n.constructor.prototype!==n)){var i=n.inspect(r,t);return g(i)||(i=l(t,i,r)),i}var o=function(t,e){if(y(e))return t.stylize("undefined","undefined");if(g(e)){var n="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(n,"string")}return m(e)?t.stylize(""+e,"number"):f(e)?t.stylize(""+e,"boolean"):d(e)?t.stylize("null","null"):void 0}(t,n);if(o)return o;var a=Object.keys(n),s=function(t){var e={};return a.forEach(function(t,n){e[t]=!0}),e}();if(t.showHidden&&(a=Object.getOwnPropertyNames(n)),x(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return c(n);if(0===a.length){if(N(n)){var u=n.name?": "+n.name:"";return t.stylize("[Function"+u+"]","special")}if(v(n))return t.stylize(RegExp.prototype.toString.call(n),"regexp");if(w(n))return t.stylize(Date.prototype.toString.call(n),"date");if(x(n))return c(n)}var b,S="",C=!1,E=["{","}"];return h(n)&&(C=!0,E=["[","]"]),N(n)&&(S=" [Function"+(n.name?": "+n.name:"")+"]"),v(n)&&(S=" "+RegExp.prototype.toString.call(n)),w(n)&&(S=" "+Date.prototype.toUTCString.call(n)),x(n)&&(S=" "+c(n)),0!==a.length||C&&0!=n.length?r<0?v(n)?t.stylize(RegExp.prototype.toString.call(n),"regexp"):t.stylize("[Object]","special"):(t.seen.push(n),b=C?function(t,e,n,r,i){for(var o=[],a=0,s=e.length;a<s;++a)I(e,String(a))?o.push(p(t,e,n,r,String(a),!0)):o.push("");return i.forEach(function(i){i.match(/^\d+$/)||o.push(p(t,e,n,r,i,!0))}),o}(t,n,r,s,a):a.map(function(e){return p(t,n,r,s,e,C)}),t.seen.pop(),function(t,e,n){return t.reduce(function(t,e){return e.indexOf("\n"),t+e.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60?n[0]+(""===e?"":e+"\n ")+" "+t.join(",\n  ")+" "+n[1]:n[0]+e+" "+t.join(", ")+" "+n[1]}(b,S,E)):E[0]+S+E[1]}function c(t){return"["+Error.prototype.toString.call(t)+"]"}function p(t,e,n,r,i,o){var a,s,u;if((u=Object.getOwnPropertyDescriptor(e,i)||{value:e[i]}).get?s=u.set?t.stylize("[Getter/Setter]","special"):t.stylize("[Getter]","special"):u.set&&(s=t.stylize("[Setter]","special")),I(r,i)||(a="["+i+"]"),s||(t.seen.indexOf(u.value)<0?(s=d(n)?l(t,u.value,null):l(t,u.value,n-1)).indexOf("\n")>-1&&(s=o?s.split("\n").map(function(t){return"  "+t}).join("\n").substr(2):"\n"+s.split("\n").map(function(t){return"   "+t}).join("\n")):s=t.stylize("[Circular]","special")),y(a)){if(o&&i.match(/^\d+$/))return s;(a=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=t.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=t.stylize(a,"string"))}return a+": "+s}function h(t){return Array.isArray(t)}function f(t){return"boolean"==typeof t}function d(t){return null===t}function m(t){return"number"==typeof t}function g(t){return"string"==typeof t}function y(t){return void 0===t}function v(t){return b(t)&&"[object RegExp]"===S(t)}function b(t){return"object"==typeof t&&null!==t}function w(t){return b(t)&&"[object Date]"===S(t)}function x(t){return b(t)&&("[object Error]"===S(t)||t instanceof Error)}function N(t){return"function"==typeof t}function S(t){return Object.prototype.toString.call(t)}function C(t){return t<10?"0"+t.toString(10):t.toString(10)}e.debuglog=function(t){if(y(i)&&(i=process.env.NODE_DEBUG||""),t=t.toUpperCase(),!o[t])if(new RegExp("\\b"+t+"\\b","i").test(i)){var n=process.pid;o[t]=function(){var r=e.format.apply(e,arguments);console.error("%s %d: %s",t,n,r)}}else o[t]=function(){};return o[t]},e.inspect=a,a.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},a.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},e.isArray=h,e.isBoolean=f,e.isNull=d,e.isNullOrUndefined=function(t){return null==t},e.isNumber=m,e.isString=g,e.isSymbol=function(t){return"symbol"==typeof t},e.isUndefined=y,e.isRegExp=v,e.isObject=b,e.isDate=w,e.isError=x,e.isFunction=N,e.isPrimitive=function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t},e.isBuffer=ev;var E=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function I(t,e){return Object.prototype.hasOwnProperty.call(t,e)}e.log=function(){var t,n;console.log("%s - %s",(n=[C((t=new Date).getHours()),C(t.getMinutes()),C(t.getSeconds())].join(":"),[t.getDate(),E[t.getMonth()],n].join(" ")),e.format.apply(e,arguments))},e.inherits=rv,e._extend=function(t,e){if(!e||!b(e))return t;for(var n=Object.keys(e),r=n.length;r--;)t[n[r]]=e[n[r]];return t};var k="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function A(t,e){if(!t){var n=new Error("Promise was rejected with a falsy value");n.reason=t,t=n}return e(t)}e.promisify=function(t){if("function"!=typeof t)throw new TypeError('The "original" argument must be of type Function');if(k&&t[k]){var e;if("function"!=typeof(e=t[k]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(e,k,{value:e,enumerable:!1,writable:!1,configurable:!0}),e}function e(){for(var e,n,r=new Promise(function(t,r){e=t,n=r}),i=[],o=0;o<arguments.length;o++)i.push(arguments[o]);i.push(function(t,r){t?n(t):e(r)});try{t.apply(this,i)}catch(t){n(t)}return r}return Object.setPrototypeOf(e,Object.getPrototypeOf(t)),k&&Object.defineProperty(e,k,{value:e,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(e,n(t))},e.promisify.custom=k,e.callbackify=function(t){if("function"!=typeof t)throw new TypeError('The "original" argument must be of type Function');function e(){for(var e=[],n=0;n<arguments.length;n++)e.push(arguments[n]);var r=e.pop();if("function"!=typeof r)throw new TypeError("The last argument must be of type Function");var i=this,o=function(){return r.apply(i,arguments)};t.apply(this,e).then(function(t){process.nextTick(o,null,t)},function(t){process.nextTick(A,t,o)})}return Object.setPrototypeOf(e,Object.getPrototypeOf(t)),Object.defineProperties(e,n(t)),e}}),ov=(iv.format,iv.deprecate,iv.debuglog,iv.inspect,iv.isArray,iv.isBoolean,iv.isNull,iv.isNullOrUndefined,iv.isNumber,iv.isString,iv.isSymbol,iv.isUndefined,iv.isRegExp,iv.isObject,iv.isDate,iv.isError,iv.isFunction,iv.isPrimitive);iv.isBuffer,iv.log,iv.inherits,iv._extend,iv.promisify,iv.callbackify;function av(t,e,n,r){if(void 0===n&&(n=new Map),void 0===r&&(r=new Set),null==t)return null;if(r.has(t))throw new Error("Circular references are not supported.");if(n.has(t))return n.get(t);var i=e(t);if(i.recurse&&null!==i.value)throw new Error("A deep map function may not return both a value and recurse=true.");if(i.recurse){if(cv(t)){var o=Array.isArray(t)?[]:{};for(var a in r.add(t),t){var s=av(t[a],e,n,r);o[a]=s}return r.delete(t),o}throw new Error("Can't recurse into non-iterable type: "+t)}return n.set(t,i.value),i.value}function sv(t,e){return void 0===e&&(e=uv),function t(e,n,r){void 0===r&&(r=new Set);var i=e[0];if(r.has(i))throw new Error("Circular references are not supported.");var o=n(e);if(o.recurse&&null!==o.value)throw new Error("A deep zip function may not return both a value and recurse=true.");if(o.recurse){if(cv(i)){var a=Array.isArray(i)?[]:{};r.add(i);var s=function(i){var o=t(e.map(function(t){return t[i]}),n,r);a[i]=o};for(var u in i)s(u);return r.delete(i),a}throw new Error("Can't recurse into non-iterable type: "+i)}return o.value}(t,e)}function uv(t){return null===t?null:cv(t[0])?{value:null,recurse:!0}:{value:t,recurse:!1}}function lv(t,e){return My(this,void 0,void 0,function(){var n,r,i,o,a,s;return Ly(this,function(u){switch(u.label){case 0:n=new Map,av(t,e,n),r=0,i=Array.from(n.keys()),u.label=1;case 1:return r<i.length?(o=i[r],(a=n.get(o))instanceof Promise?[4,a]:[3,3]):[3,4];case 2:s=u.sent(),n.set(o,s),u.label=3;case 3:return r++,[3,1];case 4:return[2,av(t,e,n)]}})})}function cv(t){return null!=t&&(Array.isArray(t)||"object"==typeof t&&!(t instanceof ut))}var pv=function(){function t(t){if(this.capacity=t,this.begin=0,this.end=0,null==t)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(t<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(t),this.doubledCapacity=2*t}return t.prototype.wrap=function(t){for(;t<0;)t+=this.doubledCapacity;return t%this.doubledCapacity},t.prototype.get=function(t){if(t<0)throw new RangeError("Can't get item at a negative index.");return this.data[t%this.capacity]},t.prototype.set=function(t,e){if(t<0)throw new RangeError("Can't set item at a negative index.");this.data[t%this.capacity]=e},t.prototype.length=function(){var t=this.end-this.begin;return t<0&&(t=this.doubledCapacity+t),t},t.prototype.isFull=function(){return this.length()===this.capacity},t.prototype.isEmpty=function(){return 0===this.length()},t.prototype.push=function(t){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,t),this.end=this.wrap(this.end+1)},t.prototype.pushAll=function(t){for(var e=0,n=t;e<n.length;e++){var r=n[e];this.push(r)}},t.prototype.pop=function(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);var t=this.get(this.end);return this.set(this.end,void 0),t},t.prototype.unshift=function(t){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,t)},t.prototype.shift=function(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");var t=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),t},t.prototype.shuffleExcise=function(t){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");var e=this.wrap(this.begin+t),n=this.get(e);return this.set(e,this.pop()),n},t}(),hv=function(t){function e(){return t.call(this,e.INITIAL_CAPACITY)||this}return _y(e,t),e.prototype.isFull=function(){return!1},e.prototype.push=function(e){t.prototype.isFull.call(this)&&this.expand(),t.prototype.push.call(this,e)},e.prototype.unshift=function(e){t.prototype.isFull.call(this)&&this.expand(),t.prototype.unshift.call(this,e)},e.prototype.expand=function(){for(var t=2*this.capacity,e=new Array(t),n=this.length(),r=0;r<n;r++)e[r]=this.get(this.wrap(this.begin+r));this.data=e,this.capacity=t,this.doubledCapacity=2*this.capacity,this.begin=0,this.end=n},e.INITIAL_CAPACITY=32,e}(pv);function fv(t){return new vv(t)}function dv(t){return new bv(t)}var mv,gv,yv=function(){function t(){}return t.prototype.collect=function(t,e){return void 0===t&&(t=1e3),void 0===e&&(e=100),My(this,void 0,void 0,function(){var n,r,i,o;return Ly(this,function(a){switch(a.label){case 0:return n=e>0?this.prefetch(e):this,r=[],i=0,[4,n.next()];case 1:o=a.sent(),a.label=2;case 2:return o.done?[3,4]:(r.push(o.value),++i>=t?[2,r]:[4,n.next()]);case 3:return o=a.sent(),[3,2];case 4:return[2,r]}})})},t.prototype.resolveFully=function(){return My(this,void 0,void 0,function(){var t;return Ly(this,function(e){switch(e.label){case 0:return[4,this.next()];case 1:t=e.sent(),e.label=2;case 2:return t.done?[3,4]:[4,this.next()];case 3:return t=e.sent(),[3,2];case 4:return[2]}})})},t.prototype.resolveWhile=function(t){return My(this,void 0,void 0,function(){var e,n;return Ly(this,function(r){switch(r.label){case 0:return[4,this.next()];case 1:e=r.sent(),n=t(e.value),r.label=2;case 2:return e.done||!n?[3,4]:[4,this.next()];case 3:return e=r.sent(),n=t(e.value),[3,2];case 4:return[2]}})})},t.prototype.handleErrors=function(t){return new Iv(this,t)},t.prototype.filter=function(t){return new Cv(this,t)},t.prototype.map=function(t){return new Ev(this,t)},t.prototype.mapAsync=function(t){return new kv(this,t)},t.prototype.serialMapAsync=function(t){return new kv(this,t).serial()},t.prototype.flatmap=function(t){return new Tv(this,t)},t.prototype.forEachAsync=function(t){return My(this,void 0,void 0,function(){return Ly(this,function(e){return[2,this.map(t).resolveFully()]})})},t.prototype.serialForEach=function(t){return My(this,void 0,void 0,function(){return Ly(this,function(e){return[2,this.serialMapAsync(t).resolveWhile(function(t){return!0===t})]})})},t.prototype.rowMajorBatch=function(t,e){return void 0===e&&(e=!0),new Sv(this,t,e)},t.prototype.columnMajorBatch=function(t,e,n){return void 0===e&&(e=!0),void 0===n&&(n=uv),this.rowMajorBatch(t,e).map(function(t){return sv(t,n)})},t.prototype.concatenate=function(t,e){return new Rv(fv([this,t]),e)},t.prototype.take=function(t){return t<0||null==t?this:new Nv(this,t)},t.prototype.skip=function(t){return t<0||null==t?this:new xv(this,t)},t.prototype.prefetch=function(t){return new Ov(this,t)},t.prototype.shuffle=function(t,e){return new _v(this,t,e)},t.prototype.serial=function(){return new wv(this)},t}(),vv=function(t){function e(e){var n=t.call(this)||this;return n.items=e,n.trav=0,n}return _y(e,t),e.prototype.summary=function(){return"Array of "+this.items.length+" items"},e.prototype.next=function(){return My(this,void 0,void 0,function(){var t,e;return Ly(this,function(n){return this.trav>=this.items.length?[2,{value:null,done:!0}]:(t=this.items[this.trav],e=t instanceof ut?Wo(t):t,this.trav++,[2,{value:e,done:!1}])})})},e}(yv),bv=function(t){function e(e){var n=t.call(this)||this;return n.nextFn=e,n}return _y(e,t),e.prototype.summary=function(){return"Function call"},e.prototype.next=function(){return My(this,void 0,void 0,function(){return Ly(this,function(t){try{return[2,this.nextFn()]}catch(t){throw t.message="Error thrown while iterating through a dataset: "+t.message,t}return[2]})})},e}(yv),wv=function(t){function e(e){var n=t.call(this)||this;return n.upstream=e,n.lastRead=Promise.resolve({value:null,done:!1}),n}return _y(e,t),e.prototype.summary=function(){return this.upstream.summary()+" -> Serial"},e.prototype.next=function(){return My(this,void 0,void 0,function(){var t=this;return Ly(this,function(e){return this.lastRead=this.lastRead.then(function(){return t.serialNext()}),[2,this.lastRead]})})},e.prototype.serialNext=function(){return My(this,void 0,void 0,function(){return Ly(this,function(t){return[2,this.upstream.next()]})})},e}(yv),xv=function(t){function e(e,n){var r=t.call(this)||this;return r.upstream=e,r.maxCount=n,r.count=0,r.lastRead=Promise.resolve({value:null,done:!1}),r}return _y(e,t),e.prototype.summary=function(){return this.upstream.summary()+" -> Skip"},e.prototype.next=function(){return My(this,void 0,void 0,function(){var t=this;return Ly(this,function(e){return this.lastRead=this.lastRead.then(function(){return t.serialNext()}),[2,this.lastRead]})})},e.prototype.serialNext=function(){return My(this,void 0,void 0,function(){var t;return Ly(this,function(e){switch(e.label){case 0:return this.count++<this.maxCount?[4,this.upstream.next()]:[3,2];case 1:return(t=e.sent()).done?[2,t]:(Ht(t.value),[3,0]);case 2:return[2,this.upstream.next()]}})})},e}(yv),Nv=function(t){function e(e,n){var r=t.call(this)||this;return r.upstream=e,r.maxCount=n,r.count=0,r}return _y(e,t),e.prototype.summary=function(){return this.upstream.summary()+" -> Take"},e.prototype.next=function(){return My(this,void 0,void 0,function(){return Ly(this,function(t){return this.count++>=this.maxCount?[2,{value:null,done:!0}]:[2,this.upstream.next()]})})},e}(yv),Sv=function(t){function e(e,n,r){void 0===r&&(r=!0);var i=t.call(this)||this;return i.upstream=e,i.batchSize=n,i.enableSmallLastBatch=r,i.lastRead=Promise.resolve({value:null,done:!1}),i}return _y(e,t),e.prototype.summary=function(){return this.upstream.summary()+" -> RowMajorBatch"},e.prototype.next=function(){return My(this,void 0,void 0,function(){var t=this;return Ly(this,function(e){return this.lastRead=this.lastRead.then(function(){return t.serialNext()}),[2,this.lastRead]})})},e.prototype.serialNext=function(){return My(this,void 0,void 0,function(){var t,e;return Ly(this,function(n){switch(n.label){case 0:t=[],n.label=1;case 1:return t.length<this.batchSize?[4,this.upstream.next()]:[3,3];case 2:return(e=n.sent()).done?this.enableSmallLastBatch&&t.length>0?[2,{value:t,done:!1}]:[2,{value:null,done:!0}]:(t.push(e.value),[3,1]);case 3:return[2,{value:t,done:!1}]}})})},e}(yv),Cv=function(t){function e(e,n){var r=t.call(this)||this;return r.upstream=e,r.predicate=n,r.lastRead=Promise.resolve({value:null,done:!1}),r}return _y(e,t),e.prototype.summary=function(){return this.upstream.summary()+" -> Filter"},e.prototype.next=function(){return My(this,void 0,void 0,function(){var t=this;return Ly(this,function(e){return this.lastRead=this.lastRead.then(function(){return t.serialNext()}),[2,this.lastRead]})})},e.prototype.serialNext=function(){return My(this,void 0,void 0,function(){var t;return Ly(this,function(e){switch(e.label){case 0:return[4,this.upstream.next()];case 1:return(t=e.sent()).done||this.predicate(t.value)?[2,t]:(Ht(t.value),[3,0]);case 2:return[2]}})})},e}(yv),Ev=function(t){function e(e,n){var r=t.call(this)||this;return r.upstream=e,r.transform=n,r}return _y(e,t),e.prototype.summary=function(){return this.upstream.summary()+" -> Map"},e.prototype.next=function(){return My(this,void 0,void 0,function(){var t,e,n,r,i,o,a;return Ly(this,function(s){switch(s.label){case 0:return[4,this.upstream.next()];case 1:if((t=s.sent()).done)return[2,{value:null,done:!0}];for(e=tv(t.value),n=this.transform(t.value),r=tv(n),i=0,o=e;i<o.length;i++)a=o[i],Qy(a,r)||a.dispose();return[2,{value:n,done:!1}]}})})},e}(yv),Iv=function(t){function e(e,n){var r=t.call(this)||this;return r.upstream=e,r.handler=n,r.count=0,r.lastRead=Promise.resolve({value:null,done:!1}),r}return _y(e,t),e.prototype.summary=function(){return this.upstream.summary()+" -> handleErrors"},e.prototype.next=function(){return My(this,void 0,void 0,function(){var t=this;return Ly(this,function(e){return this.lastRead=this.lastRead.then(function(){return t.serialNext()}),[2,this.lastRead]})})},e.prototype.serialNext=function(){return My(this,void 0,void 0,function(){var t;return Ly(this,function(e){switch(e.label){case 0:e.label=1;case 1:return e.trys.push([1,3,,4]),[4,this.upstream.next()];case 2:return[2,e.sent()];case 3:return t=e.sent(),this.handler(t)?[3,4]:[2,{value:null,done:!0}];case 4:return[3,0];case 5:return[2]}})})},e}(yv),kv=function(t){function e(e,n){var r=t.call(this)||this;return r.upstream=e,r.transform=n,r}return _y(e,t),e.prototype.summary=function(){return this.upstream.summary()+" -> AsyncMap"},e.prototype.next=function(){return My(this,void 0,void 0,function(){var t,e,n,r,i,o,a;return Ly(this,function(s){switch(s.label){case 0:return[4,this.upstream.next()];case 1:return(t=s.sent()).done?[2,{value:null,done:!0}]:(e=tv(t.value),[4,this.transform(t.value)]);case 2:for(n=s.sent(),r=tv(n),i=0,o=e;i<o.length;i++)a=o[i],Qy(a,r)||a.dispose();return[2,{value:n,done:!1}]}})})},e}(yv),Av=function(t){function e(){var e=t.call(this)||this;return e.outputQueue=new hv,e.lastRead=Promise.resolve({value:null,done:!1}),e}return _y(e,t),e.prototype.next=function(){return My(this,void 0,void 0,function(){var t=this;return Ly(this,function(e){return this.lastRead=this.lastRead.then(function(){return t.serialNext()}),[2,this.lastRead]})})},e.prototype.serialNext=function(){return My(this,void 0,void 0,function(){return Ly(this,function(t){switch(t.label){case 0:return 0!==this.outputQueue.length()?[3,2]:[4,this.pump()];case 1:return t.sent()?[3,0]:[2,{value:null,done:!0}];case 2:return[2,{value:this.outputQueue.shift(),done:!1}]}})})},e}(yv),Tv=function(t){function e(e,n){var r=t.call(this)||this;return r.upstream=e,r.transform=n,r}return _y(e,t),e.prototype.summary=function(){return this.upstream.summary()+" -> Flatmap"},e.prototype.pump=function(){return My(this,void 0,void 0,function(){var t,e,n,r,i,o,a;return Ly(this,function(s){switch(s.label){case 0:return[4,this.upstream.next()];case 1:if((t=s.sent()).done)return[2,!1];for(e=tv(t.value),n=this.transform(t.value),r=tv(n),this.outputQueue.pushAll(n),i=0,o=e;i<o.length;i++)a=o[i],Qy(a,r)||a.dispose();return[2,!0]}})})},e}(Av),Rv=function(t){function e(e,n){var r=t.call(this)||this;return r.baseErrorHandler=n,r.lastRead=null,r.iterator=null,r.moreIterators=e,r}return _y(e,t),e.prototype.summary=function(){return"TODO: fill in upstream of chained summaries -> Chained"},e.prototype.next=function(){return My(this,void 0,void 0,function(){return Ly(this,function(t){return this.lastRead=this.readFromChain(this.lastRead),[2,this.lastRead]})})},e.prototype.readFromChain=function(t){return My(this,void 0,void 0,function(){var e,n;return Ly(this,function(r){switch(r.label){case 0:return[4,t];case 1:return r.sent(),null!=this.iterator?[3,3]:[4,this.moreIterators.next()];case 2:if((e=r.sent()).done)return[2,{value:null,done:!0}];this.iterator=e.value,null!=this.baseErrorHandler&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler)),r.label=3;case 3:return[4,this.iterator.next()];case 4:return(n=r.sent()).done?(this.iterator=null,[2,this.readFromChain(t)]):[2,n]}})})},e}(yv);(gv=mv||(mv={}))[gv.FAIL=0]="FAIL",gv[gv.SHORTEST=1]="SHORTEST",gv[gv.LONGEST=2]="LONGEST";var Dv=function(t){function e(e,n){void 0===n&&(n=mv.FAIL);var r=t.call(this)||this;return r.iterators=e,r.mismatchMode=n,r.count=0,r.currentPromise=null,r}return _y(e,t),e.prototype.summary=function(){return"{TODO: fill in upstream of zip summaries} -> Zip"},e.prototype.nextState=function(t){return My(this,void 0,void 0,function(){function e(t){return t instanceof yv?{value:t.next().then(function(t){return n++,t.done&&r++,t.value}),recurse:!1}:{value:null,recurse:!0}}var n,r,i;return Ly(this,function(o){switch(o.label){case 0:return[4,t];case 1:return o.sent(),n=0,r=0,[4,lv(this.iterators,e)];case 2:if(i=o.sent(),n===r)return[2,{value:null,done:!0}];if(r>0)switch(this.mismatchMode){case mv.FAIL:throw new Error("Zipped streams should have the same length. Mismatched at element "+this.count+".");case mv.SHORTEST:return[2,{value:null,done:!0}];case mv.LONGEST:}return this.count++,[2,{value:i,done:!1}]}})})},e.prototype.next=function(){return My(this,void 0,void 0,function(){return Ly(this,function(t){switch(t.label){case 0:return this.currentPromise=this.nextState(this.currentPromise),[4,this.currentPromise];case 1:return[2,t.sent()]}})})},e}(yv),Ov=function(t){function e(e,n){var r=t.call(this)||this;return r.upstream=e,r.bufferSize=n,r.buffer=new pv(n),r}return _y(e,t),e.prototype.summary=function(){return this.upstream.summary()+" -> Prefetch"},e.prototype.refill=function(){for(;!this.buffer.isFull();){var t=this.upstream.next();this.buffer.push(t)}},e.prototype.next=function(){return this.refill(),this.buffer.shift()},e}(yv),_v=function(t){function e(e,n,r){var i=t.call(this,e,n)||this;return i.upstream=e,i.windowSize=n,i.upstreamExhausted=!1,i.random=Hy(r||X.now().toString()),i.lastRead=Promise.resolve({value:null,done:!1}),i}return _y(e,t),e.prototype.next=function(){return My(this,void 0,void 0,function(){var t=this;return Ly(this,function(e){return this.lastRead=this.lastRead.then(function(){return t.serialNext()}),[2,this.lastRead]})})},e.prototype.randomInt=function(t){return Math.floor(this.random()*t)},e.prototype.chooseIndex=function(){return this.randomInt(this.buffer.length())},e.prototype.serialNext=function(){return My(this,void 0,void 0,function(){var t,e;return Ly(this,function(n){switch(n.label){case 0:this.upstreamExhausted||this.refill(),n.label=1;case 1:return this.buffer.isEmpty()?[3,3]:(t=this.chooseIndex(),[4,this.buffer.shuffleExcise(t)]);case 2:return(e=n.sent()).done?(this.upstreamExhausted=!0,[3,1]):(this.refill(),[2,e]);case 3:return[2,{value:null,done:!0}]}})})},e}(Ov),Mv=function(){function t(){this.size=null}return t.prototype.batch=function(t,e){var n=this;void 0===e&&(e=!0);var r=this;return X.assert(t>0,function(){return"batchSize needs to be positive, but it is\n      "+t}),Lv(function(){return My(n,void 0,void 0,function(){return Ly(this,function(n){switch(n.label){case 0:return[4,r.iterator()];case 1:return[2,n.sent().columnMajorBatch(t,e,Fv)]}})})},this.size===1/0||null==this.size?this.size:e?Math.ceil(this.size/t):Math.floor(this.size/t))},t.prototype.concatenate=function(t){var e=this,n=this;return Lv(function(){return My(e,void 0,void 0,function(){var e,r;return Ly(this,function(i){switch(i.label){case 0:return[4,n.iterator()];case 1:return r=(e=i.sent()).concatenate,[4,t.iterator()];case 2:return[2,r.apply(e,[i.sent()])]}})})},this.size===1/0||t.size===1/0?1/0:null!=this.size&&null!=t.size?this.size+t.size:null)},t.prototype.filter=function(t){var e=this,n=this;return Lv(function(){return My(e,void 0,void 0,function(){return Ly(this,function(e){switch(e.label){case 0:return[4,n.iterator()];case 1:return[2,e.sent().filter(function(e){return qt(function(){return t(e)})})]}})})},this.size===1/0?1/0:null)},t.prototype.forEachAsync=function(t){return My(this,void 0,void 0,function(){return Ly(this,function(e){switch(e.label){case 0:return[4,this.iterator()];case 1:return[2,e.sent().forEachAsync(t)]}})})},t.prototype.forEach=function(t){return My(this,void 0,void 0,function(){return Ly(this,function(e){return Pt("dataset.forEach() is deprecated and will be removed. Please use dataset.forEachAsync() instead"),[2,this.forEachAsync(t)]})})},t.prototype.map=function(t){var e=this,n=this;return Lv(function(){return My(e,void 0,void 0,function(){return Ly(this,function(e){switch(e.label){case 0:return[4,n.iterator()];case 1:return[2,e.sent().map(function(e){return qt(function(){return t(e)})})]}})})},this.size)},t.prototype.mapAsync=function(t){var e=this,n=this;return Lv(function(){return My(e,void 0,void 0,function(){return Ly(this,function(e){switch(e.label){case 0:return[4,n.iterator()];case 1:return[2,e.sent().mapAsync(t)]}})})},this.size)},t.prototype.prefetch=function(t){var e=this;if(null==t)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");var n=this;return Lv(function(){return My(e,void 0,void 0,function(){return Ly(this,function(e){switch(e.label){case 0:return[4,n.iterator()];case 1:return[2,e.sent().prefetch(t)]}})})},this.size)},t.prototype.repeat=function(t){var e=this,n=this;return Lv(function(){return My(e,void 0,void 0,function(){var e=this;return Ly(this,function(r){return[2,function(t,e){return new Rv(t,e)}(dv(function(){return My(e,void 0,void 0,function(){var t;return Ly(this,function(e){switch(e.label){case 0:return t={},[4,n.iterator()];case 1:return[2,(t.value=e.sent(),t.done=!1,t)]}})})}).take(t))]})})},null!=this.size&&t>0?this.size*t:0===t?0:null!=this.size&&(void 0===t||t<0)?1/0:null)},t.prototype.skip=function(t){var e=this,n=this;return Lv(function(){return My(e,void 0,void 0,function(){return Ly(this,function(e){switch(e.label){case 0:return[4,n.iterator()];case 1:return[2,e.sent().skip(t)]}})})},null!=this.size&&t>=0&&this.size>=t?this.size-t:null!=this.size&&(this.size<t||void 0===t||t<0)?0:null)},t.prototype.shuffle=function(t,e,n){var r=this;if(void 0===n&&(n=!0),null==t||t<0)throw null==this.size?new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."):new RangeError("`Dataset.shuffle()` requires bufferSize to be specified.  If your data fits in main memory (for regular JS objects), and/or GPU memory (for `tf.Tensor`s), consider setting bufferSize to the dataset size ("+this.size+" elements)");var i=this,o=Hy(e||X.now().toString());return Lv(function(){return My(r,void 0,void 0,function(){var e;return Ly(this,function(r){switch(r.label){case 0:return e=o.int32(),n&&(e+=o.int32()),[4,i.iterator()];case 1:return[2,r.sent().shuffle(t,e.toString())]}})})},this.size)},t.prototype.take=function(t){var e=this,n=this;return Lv(function(){return My(e,void 0,void 0,function(){return Ly(this,function(e){switch(e.label){case 0:return[4,n.iterator()];case 1:return[2,e.sent().take(t)]}})})},null!=this.size&&this.size>t?t:null!=this.size&&this.size<=t?this.size:null)},t.prototype.toArray=function(){return My(this,void 0,void 0,function(){return Ly(this,function(t){switch(t.label){case 0:return[4,this.iterator()];case 1:return[2,t.sent().collect()]}})})},t.MAX_BUFFER_SIZE=1e4,t}();function Lv(t,e){return void 0===e&&(e=null),new(function(n){function r(){var t=null!==n&&n.apply(this,arguments)||this;return t.size=e,t}return _y(r,n),r.prototype.iterator=function(){return My(this,void 0,void 0,function(){return Ly(this,function(e){return[2,t()]})})},r}(Mv))}function Fv(t){return null===t?null:function(t){return null==t||ov(t)||Array.isArray(t)||"object"==typeof t&&t instanceof ut||$y(t)}(t[0])?{value:function(t){if(0===t.length)throw new Error("Can't make a batch of zero elements.");return t[0]instanceof ut?oa(t):Te(t)}(t),recurse:!1}:{value:null,recurse:!0}}var zv=function(t){function e(e){var n=t.call(this)||this;return n.input=e,n}return _y(e,t),e.prototype.iterator=function(){return My(this,void 0,void 0,function(){var t;return Ly(this,function(e){switch(e.label){case 0:return[4,this.input.iterator()];case 1:return t=e.sent(),[2,t.decodeUTF8().split("\n")]}})})},e}(Mv),Pv=Symbol("out"),Bv=Symbol("field"),Uv=Symbol("quote"),Wv=Symbol("quoteafterquote"),Vv=Symbol("quoteinquote"),jv=function(t){function e(e,n){var r=t.call(this)||this;return r.input=e,r.hasHeader=!0,r.fullColumnNames=null,r.columnNamesValidated=!1,r.columnConfigs=null,r.configuredColumnsOnly=!1,r.delimiter=",",r.base=new zv(e),n||(n={}),r.hasHeader=!1!==n.hasHeader,r.fullColumnNames=n.columnNames,r.columnConfigs=n.columnConfigs,r.configuredColumnsOnly=n.configuredColumnsOnly,r.delimiter=n.delimiter?n.delimiter:",",r}return _y(e,t),e.prototype.columnNames=function(){return My(this,void 0,void 0,function(){return Ly(this,function(t){switch(t.label){case 0:return this.columnNamesValidated?[3,2]:[4,this.setColumnNames()];case 1:t.sent(),t.label=2;case 2:return[2,this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames]}})})},e.prototype.setColumnNames=function(){return My(this,void 0,void 0,function(){var t,e,n,r,i,o,a=this;return Ly(this,function(s){switch(s.label){case 0:return[4,this.maybeReadHeaderLine()];case 1:if(t=s.sent(),!this.fullColumnNames&&!t)throw new Error("Column names must be provided if there is no header line.");if(this.fullColumnNames&&t&&X.assert(t.length===this.fullColumnNames.length,function(){return"The length of provided columnNames ("+a.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+t.length.toString()+")."}),this.fullColumnNames||(this.fullColumnNames=t),e=this.fullColumnNames.reduce(function(t,e){return t[e]=t[e]+1||1,t},{}),n=Object.keys(e).filter(function(t){return e[t]>1}),X.assert(0===n.length,function(){return"Duplicate column names found: "+n.toString()}),this.columnConfigs)for(r=0,i=Object.keys(this.columnConfigs);r<i.length;r++)if(o=i[r],-1===this.fullColumnNames.indexOf(o))throw new Error('The key "'+o+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").");return this.columnNamesValidated=!0,[2]}})})},e.prototype.maybeReadHeaderLine=function(){return My(this,void 0,void 0,function(){var t;return Ly(this,function(e){switch(e.label){case 0:return this.hasHeader?[4,this.base.iterator()]:[3,3];case 1:return[4,e.sent().next()];case 2:if((t=e.sent()).done)throw new Error("No data was found for CSV parsing.");return[2,t.value.split(this.delimiter)];case 3:return[2,null]}})})},e.prototype.iterator=function(){return My(this,void 0,void 0,function(){var t,e=this;return Ly(this,function(n){switch(n.label){case 0:return this.columnNamesValidated?[3,2]:[4,this.setColumnNames()];case 1:n.sent(),n.label=2;case 2:return[4,this.base.iterator()];case 3:return t=n.sent(),this.hasHeader&&(t=t.skip(1)),[2,t.map(function(t){return e.makeDataElement(t)})]}})})},e.prototype.makeDataElement=function(t){for(var e=this.parseRow(t),n={},r={},i=0;i<this.fullColumnNames.length;i++){var o=this.fullColumnNames[i],a=this.columnConfigs?this.columnConfigs[o]:null;if(!this.configuredColumnsOnly||a){var s=e[i],u=null;if(""===s)if(a&&void 0!==a.default)u=a.default;else{if(a&&(a.required||a.isLabel))throw new Error("Required column "+o+" is empty in this line: "+t);u=void 0}else{var l=Number(s);if(isNaN(l))u=a&&"bool"===a.dtype?this.getBoolean(s):s;else if(a&&a.dtype)switch(a.dtype){case"float32":u=l;break;case"int32":u=Math.floor(l);break;case"bool":u=this.getBoolean(s);break;default:u=l}else u=l}a&&a.isLabel?r[o]=u:n[o]=u}}return 0===Object.keys(r).length?n:{xs:n,ys:r}},e.prototype.getBoolean=function(t){return"1"===t||"true"===t.toLowerCase()?1:0},e.prototype.parseRow=function(t){for(var e=[],n=0,r=t.length,i=Bv,o=0;o<r;o++)switch(i){case Pv:switch(t.charAt(o)){case'"':n=o+1,i=Uv;break;case this.delimiter:e.push(""),i=Pv,n=o+1;break;default:i=Bv,n=o}break;case Bv:switch(t.charAt(o)){case this.delimiter:e.push(t.substring(n,o)),i=Pv,n=o+1}break;case Uv:switch(t.charAt(o)){case'"':i=Wv}break;case Wv:switch(t.charAt(o)){case this.delimiter:e.push(t.substring(n,o-1)),i=Pv,n=o+1;break;case'"':i=Uv;break;default:i=Vv}break;case Vv:switch(t.charAt(o)){case'"':i=Uv}}return i===Wv?e.push(t.substring(n,r-1)):e.push(t.substring(n)),e},e}(Mv),qv=function(){},Gv=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return _y(e,t),e.prototype.split=function(t){return new Hv(this,t)},e}(yv),Hv=function(t){function e(e,n){var r=t.call(this)||this;return r.upstream=e,r.impl=new Kv(e,n),r}return _y(e,t),e.prototype.summary=function(){return this.impl.summary()},e.prototype.next=function(){return My(this,void 0,void 0,function(){return Ly(this,function(t){return[2,this.impl.next()]})})},e}(Gv),Kv=function(t){function e(e,n){var r=t.call(this)||this;return r.upstream=e,r.separator=n,r.carryover="",r}return _y(e,t),e.prototype.summary=function(){return this.upstream.summary()+" -> Split('"+this.separator+"')"},e.prototype.pump=function(){return My(this,void 0,void 0,function(){var t,e,n,r,i;return Ly(this,function(o){switch(o.label){case 0:return[4,this.upstream.next()];case 1:if((t=o.sent()).done)return""===this.carryover?[2,!1]:(this.outputQueue.push(this.carryover),this.carryover="",[2,!0]);for((e=t.value.split(this.separator))[0]=this.carryover+e[0],n=0,r=e.slice(0,-1);n<r.length;n++)i=r[n],this.outputQueue.push(i);return this.carryover=e[e.length-1],[2,!0]}})})},e}(Av),$v=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return _y(e,t),e.prototype.decodeUTF8=function(){return new Xv(this)},e}(yv),Xv=function(t){function e(e){var n=t.call(this)||this;return n.upstream=e,n.impl=new Yv(e),n}return _y(e,t),e.prototype.summary=function(){return this.impl.summary()},e.prototype.next=function(){return My(this,void 0,void 0,function(){return Ly(this,function(t){return[2,this.impl.next()]})})},e}(Gv),Yv=function(t){function e(e){var n=t.call(this)||this;if(n.upstream=e,Bt.get("IS_BROWSER"))n.decoder=new TextDecoder("utf-8");else{var r=require("string_decoder").StringDecoder;n.decoder=new r("utf8")}return n}return _y(e,t),e.prototype.summary=function(){return this.upstream.summary()+" -> Utf8"},e.prototype.pump=function(){return My(this,void 0,void 0,function(){var t,e,n;return Ly(this,function(r){switch(r.label){case 0:return[4,this.upstream.next()];case 1:return(t=r.sent()).done?[2,!1]:(e=t.value,n=Bt.get("IS_BROWSER")?this.decoder.decode(e,{stream:!0}):this.decoder.write(Buffer.from(e.buffer)),this.outputQueue.push(n),[2,!0])}})})},e}(Av),Jv=function(t){function e(e,n){void 0===n&&(n={});var r=t.call(this)||this;return r.file=e,r.options=n,X.assert(e instanceof Uint8Array||!!Bt.get("IS_BROWSER")&&(e instanceof File||e instanceof Blob),function(){return"FileChunkIterator only supports File, Blob and Uint8Array right now."}),r.offset=n.offset||0,r.chunkSize=n.chunkSize||1048576,r}return _y(e,t),e.prototype.summary=function(){return"FileChunks "+this.file},e.prototype.next=function(){return My(this,void 0,void 0,function(){var t,e,n=this;return Ly(this,function(r){switch(r.label){case 0:return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?[2,{value:null,done:!0}]:(t=new Promise(function(t,e){var r=n.offset+n.chunkSize;if(n.file instanceof Uint8Array)t(new Uint8Array(n.file.slice(n.offset,r)));else{var i=new FileReader;i.onload=function(n){var r=i.result;if(r instanceof ArrayBuffer&&(r=new Uint8Array(r)),!(r instanceof Uint8Array))return e(new TypeError("FileReader returned unknown type."));t(r)},i.onabort=function(t){return e(new Error("Aborted"))},i.onerror=function(t){return e(new Error(t.type))};var o=n.file.slice(n.offset,r);i.readAsArrayBuffer(o)}n.offset=r}),e={},[4,t]);case 1:return[2,(e.value=r.sent(),e.done=!1,e)]}})})},e}($v);function Zv(t){return"string"==typeof t&&"file://"===t.substr(0,7)}var Qv=function(t){function e(e,n){void 0===n&&(n={});var r=t.call(this)||this;return r.input=e,r.options=n,r}return _y(e,t),e.prototype.iterator=function(){return My(this,void 0,void 0,function(){var t;return Ly(this,function(e){return Zv(this.input)&&Bt.get("IS_NODE")&&(t=require("fs"),this.input=t.readFileSync(this.input.substr(7))),[2,new Jv(this.input,this.options)]})})},e}(qv),tb=function(t){function e(e,n){void 0===n&&(n={});var r=t.call(this)||this;return r.url=e,r.fileOptions=n,r}return _y(e,t),e.prototype.iterator=function(){return My(this,void 0,void 0,function(){return Ly(this,function(t){return Zv(this.url)?[2,new Qv(this.url,this.fileOptions).iterator()]:[2,function(t,e){return void 0===e&&(e={}),My(this,void 0,void 0,function(){var n,r,i,o;return Ly(this,function(a){switch(a.label){case 0:return Bt.get("IS_BROWSER")?[4,fetch(t)]:[3,5];case 1:return(n=a.sent()).ok?[4,n.blob()]:[3,3];case 2:return r=a.sent(),[2,new Jv(r,e)];case 3:throw new Error(n.statusText);case 4:return[3,9];case 5:if(i=require("node-fetch"),"string"!=typeof t)throw new Error("URL must be a string. Request objects are not supported in the node.js environment yet.");return[4,i(t)];case 6:return(n=a.sent()).ok?[4,n.buffer()]:[3,8];case 7:return o=a.sent(),[2,new Jv(o,e)];case 8:throw new Error(n.statusText);case 9:return[2]}})})}(this.url,this.fileOptions)]})})},e}(qv);var eb=Object.freeze({array:function(t){var e=this;return Lv(function(){return My(e,void 0,void 0,function(){return Ly(this,function(e){return[2,fv(t)]})})},t.length)},Dataset:Mv,zip:function(t){var e,n=this;if(!cv(t))throw new Error("The argument to zip() must be an object or array.");if(Array.isArray(t))for(var r=0;r<t.length;r++)e=null==e?t[r].size:Math.min(e,t[r].size);else if(t instanceof Object)for(var i in t)e=null==e?t[i].size:Math.min(e,t[i].size);return Lv(function(){return My(n,void 0,void 0,function(){return Ly(this,function(e){switch(e.label){case 0:return[4,lv(t,function(t){if(t instanceof Mv)return{value:t.iterator(),recurse:!1};if(cv(t))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")})];case 1:return[2,function(t,e){return void 0===e&&(e=mv.FAIL),new Dv(t,e)}(e.sent(),mv.SHORTEST)]}})})},e)},CSVDataset:jv,TextLineDataset:zv,csv:function(t,e){return void 0===e&&(e={}),new jv(new tb(t),e)},func:function(t){var e=this,n=dv(t);return Lv(function(){return My(e,void 0,void 0,function(){return Ly(this,function(t){return[2,n]})})})},generator:function(t){var e=this;return Lv(function(){return My(e,void 0,void 0,function(){var e;return Ly(this,function(n){switch(n.label){case 0:return[4,t()];case 1:return e=n.sent(),[2,dv(function(){return e.next()})]}})})})},FileDataSource:Qv,URLDataSource:tb,version_data:"1.0.0"}),nb={"tfjs-core":"1.0.0","tfjs-data":"1.0.0","tfjs-layers":"1.0.0","tfjs-converter":"1.0.0",tfjs:"1.0.0"};t.data=eb,t.version=nb,t.setBackend=Zc,t.getBackend=Qc,t.disposeVariables=tp,t.memory=ep,t.version_core="1.0.0",t.nextFrame=Fl,t.enableProdMode=Lt,t.enableDebugMode=Ft,t.disableDeprecationWarnings=zt,t.deprecationWarn=Pt,t.browser=Oc,t.environment=Ut,t.io=Ac,t.math=Rc,t.serialization=Fc,t.test_util=Uc,t.util=X,t.webgl=Wc,t.AdadeltaOptimizer=jc,t.AdagradOptimizer=qc,t.AdamOptimizer=Gc,t.AdamaxOptimizer=Hc,t.MomentumOptimizer=$c,t.Optimizer=Vc,t.RMSPropOptimizer=Xc,t.SGDOptimizer=Kc,t.Tensor=ut,t.TensorBuffer=it,t.variable=mt,t.Variable=lt,t.ENV=Bt,t.Environment=_t,t.KernelBackend=Ge,t.DataStorage=qe,t.image=Rl,t.linalg=Sl,t.losses=bl,t.spectral=sl,t.fused=Ol,t.op=Se,t.batchNormalization2d=Ja,t.batchNormalization3d=Za,t.batchNormalization4d=Qa,t.batchNormalization=ts,t.batchNorm=es,t.batchNorm2d=ns,t.batchNorm3d=rs,t.batchNorm4d=is,t.complex=Ie,t.real=ke,t.imag=Ae,t.concat=xo,t.concat1d=No,t.concat2d=So,t.concat3d=Co,t.concat4d=Eo,t.split=Io,t.conv1d=ys,t.conv2d=vs,t.conv3d=bs,t.conv2dDerFilter=ws,t.depthwiseConv2d=xs,t.separableConv2d=Ns,t.conv2dTranspose=Ss,t.matMul=Cs,t.dot=Es,t.outerProduct=Is,t.reverse=ks,t.reverse1d=As,t.reverse2d=Ts,t.reverse3d=Rs,t.reverse4d=Ds,t.maxPool=Ms,t.avgPool=Ls,t.pool=Fs,t.slice=zs,t.slice1d=Ps,t.slice2d=Bs,t.slice3d=Us,t.slice4d=Ws,t.abs=fa,t.acos=da,t.acosh=ma,t.asin=ga,t.asinh=ya,t.atan=va,t.atanh=ba,t.ceil=wa,t.clipByValue=xa,t.cos=Na,t.cosh=Sa,t.erf=Ca,t.exp=Ea,t.expm1=Ia,t.floor=ka,t.log=Aa,t.log1p=Ta,t.logSigmoid=Ra,t.neg=Da,t.reciprocal=Oa,t.round=_a,t.rsqrt=Ma,t.sigmoid=La,t.sign=Fa,t.sin=za,t.sinh=Pa,t.softplus=Ba,t.sqrt=Ua,t.square=Wa,t.step=Va,t.tan=ja,t.tanh=qa,t.all=js,t.any=qs,t.argMax=Gs,t.argMin=Hs,t.logSumExp=Ks,t.max=$s,t.mean=Xs,t.min=Ys,t.moments=Js,t.sum=Zs,t.prod=Qs,t.equal=tu,t.equalStrict=eu,t.greater=nu,t.greaterEqual=ru,t.greaterEqualStrict=iu,t.greaterStrict=ou,t.less=au,t.lessEqual=su,t.lessEqualStrict=uu,t.lessStrict=lu,t.notEqual=cu,t.notEqualStrict=pu,t.add=hu,t.addN=fu,t.addStrict=du,t.atan2=mu,t.div=gu,t.divStrict=yu,t.floorDiv=vu,t.maximum=bu,t.maximumStrict=wu,t.minimum=xu,t.minimumStrict=Nu,t.mod=Su,t.modStrict=Cu,t.mul=Eu,t.mulStrict=Iu,t.pow=ku,t.powStrict=Au,t.squaredDifference=Tu,t.squaredDifferenceStrict=Ru,t.sub=Du,t.subStrict=Ou,t.elu=Bu,t.leakyRelu=Uu,t.prelu=Wu,t.relu=Vu,t.selu=ju,t.logicalAnd=_u,t.logicalNot=Mu,t.logicalOr=Lu,t.logicalXor=Fu,t.where=zu,t.whereAsync=Pu,t.buffer=zo,t.print=Po,t.batchToSpaceND=Bo,t.cast=Uo,t.clone=Wo,t.cumsum=Vo,t.depthToSpace=jo,t.expandDims=qo,t.eye=Go,t.multinomial=Ho,t.oneHot=Ko,t.pad=$o,t.pad1d=Xo,t.pad2d=Yo,t.pad3d=Jo,t.pad4d=Zo,t.rand=Qo,t.randomNormal=ta,t.randomUniform=ea,t.reshape=na,t.spaceToBatchND=ra,t.squeeze=ia,t.stack=oa,t.tile=aa,t.truncatedNormal=sa,t.unstack=ua,t.setdiff1dAsync=la,t.fill=Be,t.linspace=Ue,t.ones=ze,t.range=We,t.scalar=Re,t.tensor=Te,t.tensor1d=De,t.tensor2d=Oe,t.tensor3d=_e,t.tensor4d=Me,t.tensor5d=Le,t.tensor6d=Fe,t.zeros=Pe,t.onesLike=Ve,t.zerosLike=je,t.transpose=qu,t.softmax=Ce,t.logSoftmax=Ee,t.localResponseNormalization=Gu,t.norm=Hu,t.gather=Xu,t.unsortedSegmentSum=Yu,t.basicLSTMCell=Ju,t.multiRNNCell=Zu,t.movingAverage=Qu,t.stridedSlice=tl,t.topk=el,t.scatterND=nl,t.fft=rl,t.ifft=il,t.rfft=ol,t.irfft=al,t.sparseToDense=ul,t.gatherND=ll,t.train=Jc,t.tidy=qt,t.keep=Gt,t.dispose=Ht,t.time=Kt,t.profile=$t,t.customGrad=Vt,t.grad=function(t){return d(U(t),function(){return"The f passed in grad(f) must be a function"}),function(e,n){return d(e instanceof ut,function(){return"The x passed in grad(f)(x) must be a tensor"}),d(null==n||n instanceof ut,function(){return"The dy passed in grad(f)(x, dy) must be a tensor"}),Bt.engine.tidy(function(){var r=Bt.engine.gradients(function(){return t(e)},[e],n),i=r.value,o=r.grads;return null!=n&&m(i.shape,n.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),jt(o),o[0]})}},t.grads=function(t){return d(U(t),function(){return"The f passed in grads(f) must be a function"}),function(e,n){return d(Array.isArray(e)&&e.every(function(t){return t instanceof ut}),function(){return"The args passed in grads(f)(args) must be an array of tensors"}),d(null==n||n instanceof ut,function(){return"The dy passed in grads(f)(args, dy) must be a tensor"}),Bt.engine.tidy(function(){var r=Bt.engine.gradients(function(){return t.apply(void 0,e)},e,n),i=r.value,o=r.grads;return null!=n&&m(i.shape,n.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),jt(o),o})}},t.valueAndGrad=function(t){return d(U(t),function(){return"The f passed in valueAndGrad(f) must be a function"}),function(e,n){d(e instanceof ut,function(){return"The x passed in valueAndGrad(f)(x) must be a tensor"}),d(null==n||n instanceof ut,function(){return"The dy passed in valueAndGrad(f)(x, dy) must be a tensor"});var r=Bt.engine.gradients(function(){return t(e)},[e],n),i=r.grads,o=r.value;return jt(i),{grad:i[0],value:o}}},t.valueAndGrads=function(t){return d(U(t),function(){return"The f passed in valueAndGrads(f) must be a function"}),function(e,n){d(Array.isArray(e)&&e.every(function(t){return t instanceof ut}),function(){return"The args passed in valueAndGrads(f)(args) must be array of tensors"}),d(null==n||n instanceof ut,function(){return"The dy passed in valueAndGrads(f)(args, dy) must be a tensor"});var r=Bt.engine.gradients(function(){return t.apply(void 0,e)},e,n);return null!=n&&m(r.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),jt(r.grads),r}},t.variableGrads=Wt,t.constraints=Kp,t.initializers=Jh,t.layers=Dg,t.metrics=Og,t.models=_g,t.regularizers=Lg,t.CallbackList=wf,t.CustomCallback=Cf,t.History=Sf,t.Callback=Fg,t.InputSpec=uf,t.SymbolicTensor=lf,t.LayersModel=Ld,t.input=Pd,t.loadLayersModel=function(t,e){return null==e&&(e={}),Fd(t,e)},t.model=function(t){return new Ld(t)},t.registerCallbackConstructor=function(t,e){If.registerCallbackConstructor(t,e)},t.sequential=function(t){return new zd(t)},t.RNN=sg,t.Sequential=zd,t.LayerVariable=of,t.version_layers="1.0.0",t.GraphModel=Dy,t.loadGraphModel=function(t,e){return void 0===e&&(e={}),Pg(this,void 0,void 0,function(){var n;return Bg(this,function(r){switch(r.label){case 0:if(null==t)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");return null==e&&(e={}),e.fromTFHub&&null==t.load&&(t.endsWith("/")||(t+="/"),t=""+t+Ry+Ty),[4,(n=new Dy(t,e)).load()];case 1:return r.sent(),[2,n]}})})},t.version_converter="1.0.0",Object.defineProperty(t,"__esModule",{value:!0})});
+//# sourceMappingURL=tf.min.js.map
diff --git a/01_Code/physical_computing_interface/simulation/lib/three.min.js b/01_Code/physical_computing_interface/simulation/lib/three.min.js
new file mode 100644
index 0000000000000000000000000000000000000000..a7d090b82795edc4dad0b10d7a88ed3fa841a45d
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/lib/three.min.js
@@ -0,0 +1,1018 @@
+(function(k,Ba){"object"===typeof exports&&"undefined"!==typeof module?Ba(exports):"function"===typeof define&&define.amd?define(["exports"],Ba):(k=k||self,Ba(k.THREE={}))})(this,function(k){function Ba(){}function B(a,b){this.x=a||0;this.y=b||0}function wa(a,b,c,d){this._x=a||0;this._y=b||0;this._z=c||0;this._w=void 0!==d?d:1}function n(a,b,c){this.x=a||0;this.y=b||0;this.z=c||0}function Z(){this.elements=[1,0,0,0,1,0,0,0,1];0<arguments.length&&console.error("THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.")}
+function Y(a,b,c,d,e,f,g,h,l,m){Object.defineProperty(this,"id",{value:Si++});this.uuid=P.generateUUID();this.name="";this.image=void 0!==a?a:Y.DEFAULT_IMAGE;this.mipmaps=[];this.mapping=void 0!==b?b:Y.DEFAULT_MAPPING;this.wrapS=void 0!==c?c:1001;this.wrapT=void 0!==d?d:1001;this.magFilter=void 0!==e?e:1006;this.minFilter=void 0!==f?f:1008;this.anisotropy=void 0!==l?l:1;this.format=void 0!==g?g:1023;this.type=void 0!==h?h:1009;this.offset=new B(0,0);this.repeat=new B(1,1);this.center=new B(0,0);this.rotation=
+0;this.matrixAutoUpdate=!0;this.matrix=new Z;this.generateMipmaps=!0;this.premultiplyAlpha=!1;this.flipY=!0;this.unpackAlignment=4;this.encoding=void 0!==m?m:3E3;this.version=0;this.onUpdate=null}function da(a,b,c,d){this.x=a||0;this.y=b||0;this.z=c||0;this.w=void 0!==d?d:1}function la(a,b,c){this.width=a;this.height=b;this.scissor=new da(0,0,a,b);this.scissorTest=!1;this.viewport=new da(0,0,a,b);c=c||{};this.texture=new Y(void 0,void 0,c.wrapS,c.wrapT,c.magFilter,c.minFilter,c.format,c.type,c.anisotropy,
+c.encoding);this.texture.image={};this.texture.image.width=a;this.texture.image.height=b;this.texture.generateMipmaps=void 0!==c.generateMipmaps?c.generateMipmaps:!1;this.texture.minFilter=void 0!==c.minFilter?c.minFilter:1006;this.depthBuffer=void 0!==c.depthBuffer?c.depthBuffer:!0;this.stencilBuffer=void 0!==c.stencilBuffer?c.stencilBuffer:!0;this.depthTexture=void 0!==c.depthTexture?c.depthTexture:null}function Sf(a,b,c){la.call(this,a,b,c);this.samples=4}function Q(){this.elements=[1,0,0,0,0,
+1,0,0,0,0,1,0,0,0,0,1];0<arguments.length&&console.error("THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.")}function Pb(a,b,c,d){this._x=a||0;this._y=b||0;this._z=c||0;this._order=d||Pb.DefaultOrder}function Tf(){this.mask=1}function D(){Object.defineProperty(this,"id",{value:Ti++});this.uuid=P.generateUUID();this.name="";this.type="Object3D";this.parent=null;this.children=[];this.up=D.DefaultUp.clone();var a=new n,b=new Pb,c=new wa,d=new n(1,1,1);b._onChange(function(){c.setFromEuler(b,
+!1)});c._onChange(function(){b.setFromQuaternion(c,void 0,!1)});Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:a},rotation:{configurable:!0,enumerable:!0,value:b},quaternion:{configurable:!0,enumerable:!0,value:c},scale:{configurable:!0,enumerable:!0,value:d},modelViewMatrix:{value:new Q},normalMatrix:{value:new Z}});this.matrix=new Q;this.matrixWorld=new Q;this.matrixAutoUpdate=D.DefaultMatrixAutoUpdate;this.matrixWorldNeedsUpdate=!1;this.layers=new Tf;this.visible=!0;
+this.receiveShadow=this.castShadow=!1;this.frustumCulled=!0;this.renderOrder=0;this.userData={}}function wd(){D.call(this);this.type="Scene";this.overrideMaterial=this.fog=this.background=null;this.autoUpdate=!0;"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}function ab(a,b){this.min=void 0!==a?a:new n(Infinity,Infinity,Infinity);this.max=void 0!==b?b:new n(-Infinity,-Infinity,-Infinity)}function Uf(a,b,c,d,e){var f;var g=0;for(f=
+a.length-3;g<=f;g+=3){Qb.fromArray(a,g);var h=e.x*Math.abs(Qb.x)+e.y*Math.abs(Qb.y)+e.z*Math.abs(Qb.z),l=b.dot(Qb),m=c.dot(Qb),r=d.dot(Qb);if(Math.max(-Math.max(l,m,r),Math.min(l,m,r))>h)return!1}return!0}function mb(a,b){this.center=void 0!==a?a:new n;this.radius=void 0!==b?b:0}function Rb(a,b){this.origin=void 0!==a?a:new n;this.direction=void 0!==b?b:new n}function Oa(a,b){this.normal=void 0!==a?a:new n(1,0,0);this.constant=void 0!==b?b:0}function ba(a,b,c){this.a=void 0!==a?a:new n;this.b=void 0!==
+b?b:new n;this.c=void 0!==c?c:new n}function J(a,b,c){return void 0===b&&void 0===c?this.set(a):this.setRGB(a,b,c)}function Vf(a,b,c){0>c&&(c+=1);1<c&&--c;return c<1/6?a+6*(b-a)*c:.5>c?b:c<2/3?a+6*(b-a)*(2/3-c):a}function Wf(a){return.04045>a?.0773993808*a:Math.pow(.9478672986*a+.0521327014,2.4)}function Xf(a){return.0031308>a?12.92*a:1.055*Math.pow(a,.41666)-.055}function yc(a,b,c,d,e,f){this.a=a;this.b=b;this.c=c;this.normal=d&&d.isVector3?d:new n;this.vertexNormals=Array.isArray(d)?d:[];this.color=
+e&&e.isColor?e:new J;this.vertexColors=Array.isArray(e)?e:[];this.materialIndex=void 0!==f?f:0}function O(){Object.defineProperty(this,"id",{value:Ui++});this.uuid=P.generateUUID();this.name="";this.type="Material";this.fog=!0;this.blending=1;this.side=0;this.vertexTangents=this.flatShading=!1;this.vertexColors=0;this.opacity=1;this.transparent=!1;this.blendSrc=204;this.blendDst=205;this.blendEquation=100;this.blendEquationAlpha=this.blendDstAlpha=this.blendSrcAlpha=null;this.depthFunc=3;this.depthWrite=
+this.depthTest=!0;this.stencilWriteMask=255;this.stencilFunc=519;this.stencilRef=0;this.stencilFuncMask=255;this.stencilZPass=this.stencilZFail=this.stencilFail=7680;this.stencilWrite=!1;this.clippingPlanes=null;this.clipShadows=this.clipIntersection=!1;this.shadowSide=null;this.colorWrite=!0;this.precision=null;this.polygonOffset=!1;this.polygonOffsetUnits=this.polygonOffsetFactor=0;this.dithering=!1;this.alphaTest=0;this.premultipliedAlpha=!1;this.toneMapped=this.visible=!0;this.userData={};this.needsUpdate=
+!0}function Ga(a){O.call(this);this.type="MeshBasicMaterial";this.color=new J(16777215);this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.envMap=this.alphaMap=this.specularMap=null;this.combine=0;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphTargets=this.skinning=!1;this.setValues(a)}function N(a,b,c){if(Array.isArray(a))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");
+this.name="";this.array=a;this.itemSize=b;this.count=void 0!==a?a.length/b:0;this.normalized=!0===c;this.usage=35044;this.updateRange={offset:0,count:-1};this.version=0}function xd(a,b,c){N.call(this,new Int8Array(a),b,c)}function yd(a,b,c){N.call(this,new Uint8Array(a),b,c)}function zd(a,b,c){N.call(this,new Uint8ClampedArray(a),b,c)}function Ad(a,b,c){N.call(this,new Int16Array(a),b,c)}function Sb(a,b,c){N.call(this,new Uint16Array(a),b,c)}function Bd(a,b,c){N.call(this,new Int32Array(a),b,c)}function Tb(a,
+b,c){N.call(this,new Uint32Array(a),b,c)}function A(a,b,c){N.call(this,new Float32Array(a),b,c)}function Cd(a,b,c){N.call(this,new Float64Array(a),b,c)}function ih(){this.vertices=[];this.normals=[];this.colors=[];this.uvs=[];this.uvs2=[];this.groups=[];this.morphTargets={};this.skinWeights=[];this.skinIndices=[];this.boundingSphere=this.boundingBox=null;this.groupsNeedUpdate=this.uvsNeedUpdate=this.colorsNeedUpdate=this.normalsNeedUpdate=this.verticesNeedUpdate=!1}function jh(a){if(0===a.length)return-Infinity;
+for(var b=a[0],c=1,d=a.length;c<d;++c)a[c]>b&&(b=a[c]);return b}function E(){Object.defineProperty(this,"id",{value:Vi+=2});this.uuid=P.generateUUID();this.name="";this.type="BufferGeometry";this.index=null;this.attributes={};this.morphAttributes={};this.groups=[];this.boundingSphere=this.boundingBox=null;this.drawRange={start:0,count:Infinity};this.userData={}}function ea(a,b){D.call(this);this.type="Mesh";this.geometry=void 0!==a?a:new E;this.material=void 0!==b?b:new Ga({color:16777215*Math.random()});
+this.drawMode=0;this.updateMorphTargets()}function kh(a,b,c,d,e,f,g,h){if(null===(1===b.side?d.intersectTriangle(g,f,e,!0,h):d.intersectTriangle(e,f,g,2!==b.side,h)))return null;Ee.copy(h);Ee.applyMatrix4(a.matrixWorld);b=c.ray.origin.distanceTo(Ee);return b<c.near||b>c.far?null:{distance:b,point:Ee.clone(),object:a}}function Fe(a,b,c,d,e,f,g,h,l,m,r){Ub.fromBufferAttribute(e,l);Vb.fromBufferAttribute(e,m);Wb.fromBufferAttribute(e,r);e=a.morphTargetInfluences;if(b.morphTargets&&f&&e){Yf.set(0,0,0);
+Zf.set(0,0,0);$f.set(0,0,0);for(var q=0,u=f.length;q<u;q++){var p=e[q],k=f[q];0!==p&&(lh.fromBufferAttribute(k,l),mh.fromBufferAttribute(k,m),nh.fromBufferAttribute(k,r),Yf.addScaledVector(lh.sub(Ub),p),Zf.addScaledVector(mh.sub(Vb),p),$f.addScaledVector(nh.sub(Wb),p))}Ub.add(Yf);Vb.add(Zf);Wb.add($f)}if(a=kh(a,b,c,d,Ub,Vb,Wb,Dd))g&&(zc.fromBufferAttribute(g,l),Ac.fromBufferAttribute(g,m),Bc.fromBufferAttribute(g,r),a.uv=ba.getUV(Dd,Ub,Vb,Wb,zc,Ac,Bc,new B)),h&&(zc.fromBufferAttribute(h,l),Ac.fromBufferAttribute(h,
+m),Bc.fromBufferAttribute(h,r),a.uv2=ba.getUV(Dd,Ub,Vb,Wb,zc,Ac,Bc,new B)),g=new yc(l,m,r),ba.getNormal(Ub,Vb,Wb,g.normal),a.face=g;return a}function C(){Object.defineProperty(this,"id",{value:Wi+=2});this.uuid=P.generateUUID();this.name="";this.type="Geometry";this.vertices=[];this.colors=[];this.faces=[];this.faceVertexUvs=[[]];this.morphTargets=[];this.morphNormals=[];this.skinWeights=[];this.skinIndices=[];this.lineDistances=[];this.boundingSphere=this.boundingBox=null;this.groupsNeedUpdate=this.lineDistancesNeedUpdate=
+this.colorsNeedUpdate=this.normalsNeedUpdate=this.uvsNeedUpdate=this.verticesNeedUpdate=this.elementsNeedUpdate=!1}function Xb(a){var b={},c;for(c in a){b[c]={};for(var d in a[c]){var e=a[c][d];e&&(e.isColor||e.isMatrix3||e.isMatrix4||e.isVector2||e.isVector3||e.isVector4||e.isTexture)?b[c][d]=e.clone():Array.isArray(e)?b[c][d]=e.slice():b[c][d]=e}}return b}function ua(a){for(var b={},c=0;c<a.length;c++){var d=Xb(a[c]),e;for(e in d)b[e]=d[e]}return b}function va(a){O.call(this);this.type="ShaderMaterial";
+this.defines={};this.uniforms={};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.linewidth=1;this.wireframe=!1;this.wireframeLinewidth=1;this.morphNormals=this.morphTargets=this.skinning=this.clipping=this.lights=this.fog=!1;this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1};this.defaultAttributeValues={color:[1,1,
+1],uv:[0,0],uv2:[0,0]};this.index0AttributeName=void 0;this.uniformsNeedUpdate=!1;void 0!==a&&(void 0!==a.attributes&&console.error("THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead."),this.setValues(a))}function bb(){D.call(this);this.type="Camera";this.matrixWorldInverse=new Q;this.projectionMatrix=new Q;this.projectionMatrixInverse=new Q}function U(a,b,c,d){bb.call(this);this.type="PerspectiveCamera";this.fov=void 0!==a?a:50;this.zoom=1;this.near=void 0!==
+c?c:.1;this.far=void 0!==d?d:2E3;this.focus=10;this.aspect=void 0!==b?b:1;this.view=null;this.filmGauge=35;this.filmOffset=0;this.updateProjectionMatrix()}function Cc(a,b,c,d){D.call(this);this.type="CubeCamera";var e=new U(90,1,a,b);e.up.set(0,-1,0);e.lookAt(new n(1,0,0));this.add(e);var f=new U(90,1,a,b);f.up.set(0,-1,0);f.lookAt(new n(-1,0,0));this.add(f);var g=new U(90,1,a,b);g.up.set(0,0,1);g.lookAt(new n(0,1,0));this.add(g);var h=new U(90,1,a,b);h.up.set(0,0,-1);h.lookAt(new n(0,-1,0));this.add(h);
+var l=new U(90,1,a,b);l.up.set(0,-1,0);l.lookAt(new n(0,0,1));this.add(l);var m=new U(90,1,a,b);m.up.set(0,-1,0);m.lookAt(new n(0,0,-1));this.add(m);d=d||{format:1022,magFilter:1006,minFilter:1006};this.renderTarget=new Bb(c,c,d);this.renderTarget.texture.name="CubeCamera";this.update=function(a,b){null===this.parent&&this.updateMatrixWorld();var c=a.getRenderTarget(),d=this.renderTarget,r=d.texture.generateMipmaps;d.texture.generateMipmaps=!1;a.setRenderTarget(d,0);a.render(b,e);a.setRenderTarget(d,
+1);a.render(b,f);a.setRenderTarget(d,2);a.render(b,g);a.setRenderTarget(d,3);a.render(b,h);a.setRenderTarget(d,4);a.render(b,l);d.texture.generateMipmaps=r;a.setRenderTarget(d,5);a.render(b,m);a.setRenderTarget(c)};this.clear=function(a,b,c,d){for(var e=a.getRenderTarget(),f=this.renderTarget,g=0;6>g;g++)a.setRenderTarget(f,g),a.clear(b,c,d);a.setRenderTarget(e)}}function Bb(a,b,c){la.call(this,a,b,c)}function Yb(a,b,c,d,e,f,g,h,l,m,r,q){Y.call(this,null,f,g,h,l,m,d,e,r,q);this.image={data:a||null,
+width:b||1,height:c||1};this.magFilter=void 0!==l?l:1003;this.minFilter=void 0!==m?m:1003;this.flipY=this.generateMipmaps=!1;this.unpackAlignment=1;this.needsUpdate=!0}function Ed(a,b,c,d,e,f){this.planes=[void 0!==a?a:new Oa,void 0!==b?b:new Oa,void 0!==c?c:new Oa,void 0!==d?d:new Oa,void 0!==e?e:new Oa,void 0!==f?f:new Oa]}function ag(){function a(e,f){!1!==c&&(d(e,f),b.requestAnimationFrame(a))}var b=null,c=!1,d=null;return{start:function(){!0!==c&&null!==d&&(b.requestAnimationFrame(a),c=!0)},
+stop:function(){c=!1},setAnimationLoop:function(a){d=a},setContext:function(a){b=a}}}function Xi(a){function b(b,c){var d=b.array,e=b.usage,h=a.createBuffer();a.bindBuffer(c,h);a.bufferData(c,d,e);b.onUploadCallback();c=5126;d instanceof Float32Array?c=5126:d instanceof Float64Array?console.warn("THREE.WebGLAttributes: Unsupported data buffer format: Float64Array."):d instanceof Uint16Array?c=5123:d instanceof Int16Array?c=5122:d instanceof Uint32Array?c=5125:d instanceof Int32Array?c=5124:d instanceof
+Int8Array?c=5120:d instanceof Uint8Array&&(c=5121);return{buffer:h,type:c,bytesPerElement:d.BYTES_PER_ELEMENT,version:b.version}}var c=new WeakMap;return{get:function(a){a.isInterleavedBufferAttribute&&(a=a.data);return c.get(a)},remove:function(b){b.isInterleavedBufferAttribute&&(b=b.data);var d=c.get(b);d&&(a.deleteBuffer(d.buffer),c.delete(b))},update:function(d,e){d.isInterleavedBufferAttribute&&(d=d.data);var f=c.get(d);if(void 0===f)c.set(d,b(d,e));else if(f.version<d.version){var g=d.array,
+h=d.updateRange;a.bindBuffer(e,f.buffer);-1===h.count?a.bufferSubData(e,0,g):(a.bufferSubData(e,h.offset*g.BYTES_PER_ELEMENT,g.subarray(h.offset,h.offset+h.count)),h.count=-1);f.version=d.version}}}}function Fd(a,b,c,d){C.call(this);this.type="PlaneGeometry";this.parameters={width:a,height:b,widthSegments:c,heightSegments:d};this.fromBufferGeometry(new Zb(a,b,c,d));this.mergeVertices()}function Zb(a,b,c,d){E.call(this);this.type="PlaneBufferGeometry";this.parameters={width:a,height:b,widthSegments:c,
+heightSegments:d};a=a||1;b=b||1;var e=a/2,f=b/2;c=Math.floor(c)||1;d=Math.floor(d)||1;var g=c+1,h=d+1,l=a/c,m=b/d,r=[],q=[],u=[],p=[];for(a=0;a<h;a++){var k=a*m-f;for(b=0;b<g;b++)q.push(b*l-e,-k,0),u.push(0,0,1),p.push(b/c),p.push(1-a/d)}for(a=0;a<d;a++)for(b=0;b<c;b++)e=b+g*(a+1),f=b+1+g*(a+1),h=b+1+g*a,r.push(b+g*a,e,h),r.push(e,f,h);this.setIndex(r);this.setAttribute("position",new A(q,3));this.setAttribute("normal",new A(u,3));this.setAttribute("uv",new A(p,2))}function Yi(a,b,c,d){function e(a,
+c){b.buffers.color.setClear(a.r,a.g,a.b,c,d)}var f=new J(0),g=0,h,l,m=null,r=0;return{getClearColor:function(){return f},setClearColor:function(a,b){f.set(a);g=void 0!==b?b:1;e(f,g)},getClearAlpha:function(){return g},setClearAlpha:function(a){g=a;e(f,g)},render:function(b,d,p,k){d=d.background;p=a.vr;(p=p.getSession&&p.getSession())&&"additive"===p.environmentBlendMode&&(d=null);null===d?(e(f,g),m=null,r=0):d&&d.isColor&&(e(d,1),k=!0,m=null,r=0);(a.autoClear||k)&&a.clear(a.autoClearColor,a.autoClearDepth,
+a.autoClearStencil);if(d&&(d.isCubeTexture||d.isWebGLRenderTargetCube)){void 0===l&&(l=new ea(new Gd(1,1,1),new va({type:"BackgroundCubeMaterial",uniforms:Xb(cb.cube.uniforms),vertexShader:cb.cube.vertexShader,fragmentShader:cb.cube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),l.geometry.deleteAttribute("uv"),l.onBeforeRender=function(a,b,c){this.matrixWorld.copyPosition(c.matrixWorld)},Object.defineProperty(l.material,"map",{get:function(){return this.uniforms.tCube.value}}),
+c.update(l));k=d.isWebGLRenderTargetCube?d.texture:d;l.material.uniforms.tCube.value=k;l.material.uniforms.tFlip.value=d.isWebGLRenderTargetCube?1:-1;if(m!==d||r!==k.version)l.material.needsUpdate=!0,m=d,r=k.version;b.unshift(l,l.geometry,l.material,0,0,null)}else if(d&&d.isTexture){void 0===h&&(h=new ea(new Zb(2,2),new va({type:"BackgroundMaterial",uniforms:Xb(cb.background.uniforms),vertexShader:cb.background.vertexShader,fragmentShader:cb.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,
+fog:!1})),h.geometry.deleteAttribute("normal"),Object.defineProperty(h.material,"map",{get:function(){return this.uniforms.t2D.value}}),c.update(h));h.material.uniforms.t2D.value=d;!0===d.matrixAutoUpdate&&d.updateMatrix();h.material.uniforms.uvTransform.value.copy(d.matrix);if(m!==d||r!==d.version)h.material.needsUpdate=!0,m=d,r=d.version;b.unshift(h,h.geometry,h.material,0,0,null)}}}}function Zi(a,b,c,d){var e=d.isWebGL2,f;this.setMode=function(a){f=a};this.render=function(b,d){a.drawArrays(f,b,
+d);c.update(d,f)};this.renderInstances=function(d,h,l,m){if(0!==m){if(e){d=a;var g="drawArraysInstanced"}else if(d=b.get("ANGLE_instanced_arrays"),g="drawArraysInstancedANGLE",null===d){console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");return}d[g](f,h,l,m);c.update(l,f,m)}}}function $i(a,b,c){function d(b){if("highp"===b){if(0<a.getShaderPrecisionFormat(35633,36338).precision&&0<a.getShaderPrecisionFormat(35632,
+36338).precision)return"highp";b="mediump"}return"mediump"===b&&0<a.getShaderPrecisionFormat(35633,36337).precision&&0<a.getShaderPrecisionFormat(35632,36337).precision?"mediump":"lowp"}var e,f="undefined"!==typeof WebGL2RenderingContext&&a instanceof WebGL2RenderingContext||"undefined"!==typeof WebGL2ComputeRenderingContext&&a instanceof WebGL2ComputeRenderingContext,g=void 0!==c.precision?c.precision:"highp",h=d(g);h!==g&&(console.warn("THREE.WebGLRenderer:",g,"not supported, using",h,"instead."),
+g=h);c=!0===c.logarithmicDepthBuffer;h=a.getParameter(34930);var l=a.getParameter(35660),m=a.getParameter(3379),r=a.getParameter(34076),q=a.getParameter(34921),k=a.getParameter(36347),p=a.getParameter(36348),t=a.getParameter(36349),v=0<l,y=f||!!b.get("OES_texture_float"),n=v&&y,x=f?a.getParameter(36183):0;return{isWebGL2:f,getMaxAnisotropy:function(){if(void 0!==e)return e;var c=b.get("EXT_texture_filter_anisotropic");return e=null!==c?a.getParameter(c.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0},getMaxPrecision:d,
+precision:g,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:l,maxTextureSize:m,maxCubemapSize:r,maxAttributes:q,maxVertexUniforms:k,maxVaryings:p,maxFragmentUniforms:t,vertexTextures:v,floatFragmentTextures:y,floatVertexTextures:n,maxSamples:x}}function aj(){function a(){m.value!==d&&(m.value=d,m.needsUpdate=0<e);c.numPlanes=e;c.numIntersection=0}function b(a,b,d,e){var f=null!==a?a.length:0,g=null;if(0!==f){g=m.value;if(!0!==e||null===g){e=d+4*f;b=b.matrixWorldInverse;l.getNormalMatrix(b);
+if(null===g||g.length<e)g=new Float32Array(e);for(e=0;e!==f;++e,d+=4)h.copy(a[e]).applyMatrix4(b,l),h.normal.toArray(g,d),g[d+3]=h.constant}m.value=g;m.needsUpdate=!0}c.numPlanes=f;return g}var c=this,d=null,e=0,f=!1,g=!1,h=new Oa,l=new Z,m={value:null,needsUpdate:!1};this.uniform=m;this.numIntersection=this.numPlanes=0;this.init=function(a,c,g){var h=0!==a.length||c||0!==e||f;f=c;d=b(a,g,0);e=a.length;return h};this.beginShadows=function(){g=!0;b(null)};this.endShadows=function(){g=!1;a()};this.setState=
+function(c,h,l,k,t,v){if(!f||null===c||0===c.length||g&&!l)g?b(null):a();else{l=g?0:e;var r=4*l,q=t.clippingState||null;m.value=q;q=b(c,k,r,v);for(c=0;c!==r;++c)q[c]=d[c];t.clippingState=q;this.numIntersection=h?this.numPlanes:0;this.numPlanes+=l}}}function bj(a){var b={};return{get:function(c){if(void 0!==b[c])return b[c];switch(c){case "WEBGL_depth_texture":var d=a.getExtension("WEBGL_depth_texture")||a.getExtension("MOZ_WEBGL_depth_texture")||a.getExtension("WEBKIT_WEBGL_depth_texture");break;
+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&&console.warn("THREE.WebGLRenderer: "+c+" extension not supported.");return b[c]=d}}}function cj(a,b,c){function d(a){var e=a.target;a=f.get(e);null!==a.index&&b.remove(a.index);for(var h in a.attributes)b.remove(a.attributes[h]);e.removeEventListener("dispose",d);f.delete(e);if(h=g.get(a))b.remove(h),g.delete(a);c.memory.geometries--}function e(a){var c=[],d=a.index,e=a.attributes.position;if(null!==d){var f=d.array;d=d.version;e=0;for(var h=f.length;e<
+h;e+=3){var k=f[e+0],t=f[e+1],v=f[e+2];c.push(k,t,t,v,v,k)}}else for(f=e.array,d=e.version,e=0,h=f.length/3-1;e<h;e+=3)k=e+0,t=e+1,v=e+2,c.push(k,t,t,v,v,k);c=new (65535<jh(c)?Tb:Sb)(c,1);c.version=d;b.update(c,34963);(f=g.get(a))&&b.remove(f);g.set(a,c)}var f=new WeakMap,g=new WeakMap;return{get:function(a,b){var e=f.get(b);if(e)return e;b.addEventListener("dispose",d);b.isBufferGeometry?e=b:b.isGeometry&&(void 0===b._bufferGeometry&&(b._bufferGeometry=(new E).setFromObject(a)),e=b._bufferGeometry);
+f.set(b,e);c.memory.geometries++;return e},update:function(a){var c=a.index,d=a.attributes;null!==c&&b.update(c,34963);for(var e in d)b.update(d[e],34962);a=a.morphAttributes;for(e in a){c=a[e];d=0;for(var f=c.length;d<f;d++)b.update(c[d],34962)}},getWireframeAttribute:function(a){var b=g.get(a);if(b){var c=a.index;null!==c&&b.version<c.version&&e(a)}else e(a);return g.get(a)}}}function dj(a,b,c,d){var e=d.isWebGL2,f,g,h;this.setMode=function(a){f=a};this.setIndex=function(a){g=a.type;h=a.bytesPerElement};
+this.render=function(b,d){a.drawElements(f,d,g,b*h);c.update(d,f)};this.renderInstances=function(d,m,r,q){if(0!==q){if(e){d=a;var l="drawElementsInstanced"}else if(d=b.get("ANGLE_instanced_arrays"),l="drawElementsInstancedANGLE",null===d){console.error("THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");return}d[l](f,r,g,m*h,q);c.update(r,f,q)}}}function ej(a){var b={frame:0,calls:0,triangles:0,points:0,lines:0};
+return{memory:{geometries:0,textures:0},render:b,programs:null,autoReset:!0,reset:function(){b.frame++;b.calls=0;b.triangles=0;b.points=0;b.lines=0},update:function(a,d,e){e=e||1;b.calls++;switch(d){case 4:b.triangles+=a/3*e;break;case 5:case 6:b.triangles+=e*(a-2);break;case 1:b.lines+=a/2*e;break;case 3:b.lines+=e*(a-1);break;case 2:b.lines+=e*a;break;case 0:b.points+=e*a;break;default:console.error("THREE.WebGLInfo: Unknown draw mode:",d)}}}}function fj(a,b){return Math.abs(b[1])-Math.abs(a[1])}
+function gj(a){var b={},c=new Float32Array(8);return{update:function(d,e,f,g){var h=d.morphTargetInfluences,l=h.length;d=b[e.id];if(void 0===d){d=[];for(var m=0;m<l;m++)d[m]=[m,0];b[e.id]=d}var r=f.morphTargets&&e.morphAttributes.position;f=f.morphNormals&&e.morphAttributes.normal;for(m=0;m<l;m++){var q=d[m];0!==q[1]&&(r&&e.deleteAttribute("morphTarget"+m),f&&e.deleteAttribute("morphNormal"+m))}for(m=0;m<l;m++)q=d[m],q[0]=m,q[1]=h[m];d.sort(fj);for(m=0;8>m;m++){if(q=d[m])if(h=q[0],l=q[1]){r&&e.setAttribute("morphTarget"+
+m,r[h]);f&&e.setAttribute("morphNormal"+m,f[h]);c[m]=l;continue}c[m]=0}g.getUniforms().setValue(a,"morphTargetInfluences",c)}}}function hj(a,b,c,d){var e={};return{update:function(a){var f=d.render.frame,h=a.geometry,l=b.get(a,h);e[l.id]!==f&&(h.isGeometry&&l.updateFromObject(a),b.update(l),e[l.id]=f);a.isInstancedMesh&&c.update(a.instanceMatrix,34962);return l},dispose:function(){e={}}}}function nb(a,b,c,d,e,f,g,h,l,m){a=void 0!==a?a:[];Y.call(this,a,void 0!==b?b:301,c,d,e,f,void 0!==g?g:1022,h,
+l,m);this.flipY=!1}function Dc(a,b,c,d){Y.call(this,null);this.image={data:a||null,width:b||1,height:c||1,depth:d||1};this.minFilter=this.magFilter=1003;this.wrapR=1001;this.flipY=this.generateMipmaps=!1;this.needsUpdate=!0}function Ec(a,b,c,d){Y.call(this,null);this.image={data:a||null,width:b||1,height:c||1,depth:d||1};this.minFilter=this.magFilter=1003;this.wrapR=1001;this.flipY=this.generateMipmaps=!1;this.needsUpdate=!0}function Fc(a,b,c){var d=a[0];if(0>=d||0<d)return a;var e=b*c,f=oh[e];void 0===
+f&&(f=new Float32Array(e),oh[e]=f);if(0!==b)for(d.toArray(f,0),d=1,e=0;d!==b;++d)e+=c,a[d].toArray(f,e);return f}function La(a,b){if(a.length!==b.length)return!1;for(var c=0,d=a.length;c<d;c++)if(a[c]!==b[c])return!1;return!0}function Ha(a,b){for(var c=0,d=b.length;c<d;c++)a[c]=b[c]}function ph(a,b){var c=qh[b];void 0===c&&(c=new Int32Array(b),qh[b]=c);for(var d=0;d!==b;++d)c[d]=a.allocateTextureUnit();return c}function ij(a,b){var c=this.cache;c[0]!==b&&(a.uniform1f(this.addr,b),c[0]=b)}function jj(a,
+b){var c=this.cache;if(void 0!==b.x){if(c[0]!==b.x||c[1]!==b.y)a.uniform2f(this.addr,b.x,b.y),c[0]=b.x,c[1]=b.y}else La(c,b)||(a.uniform2fv(this.addr,b),Ha(c,b))}function kj(a,b){var c=this.cache;if(void 0!==b.x){if(c[0]!==b.x||c[1]!==b.y||c[2]!==b.z)a.uniform3f(this.addr,b.x,b.y,b.z),c[0]=b.x,c[1]=b.y,c[2]=b.z}else if(void 0!==b.r){if(c[0]!==b.r||c[1]!==b.g||c[2]!==b.b)a.uniform3f(this.addr,b.r,b.g,b.b),c[0]=b.r,c[1]=b.g,c[2]=b.b}else La(c,b)||(a.uniform3fv(this.addr,b),Ha(c,b))}function lj(a,b){var c=
+this.cache;if(void 0!==b.x){if(c[0]!==b.x||c[1]!==b.y||c[2]!==b.z||c[3]!==b.w)a.uniform4f(this.addr,b.x,b.y,b.z,b.w),c[0]=b.x,c[1]=b.y,c[2]=b.z,c[3]=b.w}else La(c,b)||(a.uniform4fv(this.addr,b),Ha(c,b))}function mj(a,b){var c=this.cache,d=b.elements;void 0===d?La(c,b)||(a.uniformMatrix2fv(this.addr,!1,b),Ha(c,b)):La(c,d)||(rh.set(d),a.uniformMatrix2fv(this.addr,!1,rh),Ha(c,d))}function nj(a,b){var c=this.cache,d=b.elements;void 0===d?La(c,b)||(a.uniformMatrix3fv(this.addr,!1,b),Ha(c,b)):La(c,d)||
+(sh.set(d),a.uniformMatrix3fv(this.addr,!1,sh),Ha(c,d))}function oj(a,b){var c=this.cache,d=b.elements;void 0===d?La(c,b)||(a.uniformMatrix4fv(this.addr,!1,b),Ha(c,b)):La(c,d)||(th.set(d),a.uniformMatrix4fv(this.addr,!1,th),Ha(c,d))}function pj(a,b,c){var d=this.cache,e=c.allocateTextureUnit();d[0]!==e&&(a.uniform1i(this.addr,e),d[0]=e);c.safeSetTexture2D(b||uh,e)}function qj(a,b,c){var d=this.cache,e=c.allocateTextureUnit();d[0]!==e&&(a.uniform1i(this.addr,e),d[0]=e);c.setTexture2DArray(b||rj,e)}
+function sj(a,b,c){var d=this.cache,e=c.allocateTextureUnit();d[0]!==e&&(a.uniform1i(this.addr,e),d[0]=e);c.setTexture3D(b||tj,e)}function uj(a,b,c){var d=this.cache,e=c.allocateTextureUnit();d[0]!==e&&(a.uniform1i(this.addr,e),d[0]=e);c.safeSetTextureCube(b||vh,e)}function vj(a,b){var c=this.cache;c[0]!==b&&(a.uniform1i(this.addr,b),c[0]=b)}function wj(a,b){var c=this.cache;La(c,b)||(a.uniform2iv(this.addr,b),Ha(c,b))}function xj(a,b){var c=this.cache;La(c,b)||(a.uniform3iv(this.addr,b),Ha(c,b))}
+function yj(a,b){var c=this.cache;La(c,b)||(a.uniform4iv(this.addr,b),Ha(c,b))}function zj(a){switch(a){case 5126:return ij;case 35664:return jj;case 35665:return kj;case 35666:return lj;case 35674:return mj;case 35675:return nj;case 35676:return oj;case 35678:case 36198:return pj;case 35679:return sj;case 35680:return uj;case 36289:return qj;case 5124:case 35670:return vj;case 35667:case 35671:return wj;case 35668:case 35672:return xj;case 35669:case 35673:return yj}}function Aj(a,b){a.uniform1fv(this.addr,
+b)}function Bj(a,b){a.uniform1iv(this.addr,b)}function Cj(a,b){a.uniform2iv(this.addr,b)}function Dj(a,b){a.uniform3iv(this.addr,b)}function Ej(a,b){a.uniform4iv(this.addr,b)}function Fj(a,b){b=Fc(b,this.size,2);a.uniform2fv(this.addr,b)}function Gj(a,b){b=Fc(b,this.size,3);a.uniform3fv(this.addr,b)}function Hj(a,b){b=Fc(b,this.size,4);a.uniform4fv(this.addr,b)}function Ij(a,b){b=Fc(b,this.size,4);a.uniformMatrix2fv(this.addr,!1,b)}function Jj(a,b){b=Fc(b,this.size,9);a.uniformMatrix3fv(this.addr,
+!1,b)}function Kj(a,b){b=Fc(b,this.size,16);a.uniformMatrix4fv(this.addr,!1,b)}function Lj(a,b,c){var d=b.length,e=ph(c,d);a.uniform1iv(this.addr,e);for(a=0;a!==d;++a)c.safeSetTexture2D(b[a]||uh,e[a])}function Mj(a,b,c){var d=b.length,e=ph(c,d);a.uniform1iv(this.addr,e);for(a=0;a!==d;++a)c.safeSetTextureCube(b[a]||vh,e[a])}function Nj(a){switch(a){case 5126:return Aj;case 35664:return Fj;case 35665:return Gj;case 35666:return Hj;case 35674:return Ij;case 35675:return Jj;case 35676:return Kj;case 35678:return Lj;
+case 35680:return Mj;case 5124:case 35670:return Bj;case 35667:case 35671:return Cj;case 35668:case 35672:return Dj;case 35669:case 35673:return Ej}}function Oj(a,b,c){this.id=a;this.addr=c;this.cache=[];this.setValue=zj(b.type)}function wh(a,b,c){this.id=a;this.addr=c;this.cache=[];this.size=b.size;this.setValue=Nj(b.type)}function xh(a){this.id=a;this.seq=[];this.map={}}function Cb(a,b){this.seq=[];this.map={};for(var c=a.getProgramParameter(b,35718),d=0;d<c;++d){var e=a.getActiveUniform(b,d),f=
+a.getUniformLocation(b,e.name),g=this,h=e.name,l=h.length;for(bg.lastIndex=0;;){var m=bg.exec(h),r=bg.lastIndex,q=m[1],k=m[3];"]"===m[2]&&(q|=0);if(void 0===k||"["===k&&r+2===l){h=g;e=void 0===k?new Oj(q,e,f):new wh(q,e,f);h.seq.push(e);h.map[e.id]=e;break}else k=g.map[q],void 0===k&&(k=new xh(q),q=g,g=k,q.seq.push(g),q.map[g.id]=g),g=k}}}function yh(a,b,c){b=a.createShader(b);a.shaderSource(b,c);a.compileShader(b);return b}function zh(a){switch(a){case 3E3:return["Linear","( value )"];case 3001:return["sRGB",
+"( value )"];case 3002:return["RGBE","( value )"];case 3004:return["RGBM","( value, 7.0 )"];case 3005:return["RGBM","( value, 16.0 )"];case 3006:return["RGBD","( value, 256.0 )"];case 3007:return["Gamma","( value, float( GAMMA_FACTOR ) )"];case 3003:return["LogLuv","( value )"];default:throw Error("unsupported encoding: "+a);}}function Ah(a,b,c){var d=a.getShaderParameter(b,35713),e=a.getShaderInfoLog(b).trim();if(d&&""===e)return"";a=a.getShaderSource(b).split("\n");for(b=0;b<a.length;b++)a[b]=b+
+1+": "+a[b];a=a.join("\n");return"THREE.WebGLShader: gl.getShaderInfoLog() "+c+"\n"+e+a}function Ge(a,b){b=zh(b);return"vec4 "+a+"( vec4 value ) { return "+b[0]+"ToLinear"+b[1]+"; }"}function Pj(a,b){b=zh(b);return"vec4 "+a+"( vec4 value ) { return LinearTo"+b[0]+b[1]+"; }"}function Qj(a,b){switch(b){case 1:b="Linear";break;case 2:b="Reinhard";break;case 3:b="Uncharted2";break;case 4:b="OptimizedCineon";break;case 5:b="ACESFilmic";break;default:throw Error("unsupported toneMapping: "+b);}return"vec3 "+
+a+"( vec3 color ) { return "+b+"ToneMapping( color ); }"}function Rj(a,b,c){a=a||{};return[a.derivatives||b.envMapCubeUV||b.bumpMap||b.tangentSpaceNormalMap||b.clearcoatNormalMap||b.flatShading?"#extension GL_OES_standard_derivatives : enable":"",(a.fragDepth||b.logarithmicDepthBuffer)&&c.get("EXT_frag_depth")?"#extension GL_EXT_frag_depth : enable":"",a.drawBuffers&&c.get("WEBGL_draw_buffers")?"#extension GL_EXT_draw_buffers : require":"",(a.shaderTextureLOD||b.envMap)&&c.get("EXT_shader_texture_lod")?
+"#extension GL_EXT_shader_texture_lod : enable":""].filter(Hd).join("\n")}function Sj(a){var b=[],c;for(c in a){var d=a[c];!1!==d&&b.push("#define "+c+" "+d)}return b.join("\n")}function Hd(a){return""!==a}function Bh(a,b){return a.replace(/NUM_DIR_LIGHTS/g,b.numDirLights).replace(/NUM_SPOT_LIGHTS/g,b.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g,b.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,b.numPointLights).replace(/NUM_HEMI_LIGHTS/g,b.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,b.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS/g,
+b.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,b.numPointLightShadows)}function Ch(a,b){return a.replace(/NUM_CLIPPING_PLANES/g,b.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,b.numClippingPlanes-b.numClipIntersection)}function cg(a,b){a=S[b];if(void 0===a)throw Error("Can not resolve #include <"+b+">");return a.replace(dg,cg)}function Dh(a,b,c,d){a="";for(b=parseInt(b);b<parseInt(c);b++)a+=d.replace(/\[ i \]/g,"[ "+b+" ]").replace(/UNROLLED_LOOP_INDEX/g,b);return a}function Eh(a){var b=
+"precision "+a.precision+" float;\nprecision "+a.precision+" int;";"highp"===a.precision?b+="\n#define HIGH_PRECISION":"mediump"===a.precision?b+="\n#define MEDIUM_PRECISION":"lowp"===a.precision&&(b+="\n#define LOW_PRECISION");return b}function Tj(a){var b="SHADOWMAP_TYPE_BASIC";1===a.shadowMapType?b="SHADOWMAP_TYPE_PCF":2===a.shadowMapType?b="SHADOWMAP_TYPE_PCF_SOFT":3===a.shadowMapType&&(b="SHADOWMAP_TYPE_VSM");return b}function Uj(a){var b="ENVMAP_TYPE_CUBE";if(a.envMap)switch(a.envMapMode){case 301:case 302:b=
+"ENVMAP_TYPE_CUBE";break;case 306:case 307:b="ENVMAP_TYPE_CUBE_UV";break;case 303:case 304:b="ENVMAP_TYPE_EQUIREC";break;case 305:b="ENVMAP_TYPE_SPHERE"}return b}function Vj(a){var b="ENVMAP_MODE_REFLECTION";if(a.envMap)switch(a.envMapMode){case 302:case 304:b="ENVMAP_MODE_REFRACTION"}return b}function Wj(a){var b="ENVMAP_BLENDING_MULTIPLY";if(a.envMap)switch(a.combine){case 0:b="ENVMAP_BLENDING_MULTIPLY";break;case 1:b="ENVMAP_BLENDING_MIX";break;case 2:b="ENVMAP_BLENDING_ADD"}return b}function Xj(a,
+b,c,d,e,f){var g=a.getContext(),h=d.defines,l=e.vertexShader,m=e.fragmentShader,r=Tj(f),q=Uj(f),k=Vj(f),p=Wj(f),t=0<a.gammaFactor?a.gammaFactor:1,v=f.isWebGL2?"":Rj(d.extensions,f,b),n=Sj(h),w=g.createProgram(),x=f.numMultiviewViews;d.isRawShaderMaterial?(h=[n].filter(Hd).join("\n"),0<h.length&&(h+="\n"),b=[v,n].filter(Hd).join("\n"),0<b.length&&(b+="\n")):(h=[Eh(f),"#define SHADER_NAME "+e.name,n,f.instancing?"#define USE_INSTANCING":"",f.supportsVertexTextures?"#define VERTEX_TEXTURES":"","#define GAMMA_FACTOR "+
+t,"#define MAX_BONES "+f.maxBones,f.useFog&&f.fog?"#define USE_FOG":"",f.useFog&&f.fogExp2?"#define FOG_EXP2":"",f.map?"#define USE_MAP":"",f.envMap?"#define USE_ENVMAP":"",f.envMap?"#define "+k:"",f.lightMap?"#define USE_LIGHTMAP":"",f.aoMap?"#define USE_AOMAP":"",f.emissiveMap?"#define USE_EMISSIVEMAP":"",f.bumpMap?"#define USE_BUMPMAP":"",f.normalMap?"#define USE_NORMALMAP":"",f.normalMap&&f.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",f.normalMap&&f.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":
+"",f.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",f.displacementMap&&f.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",f.specularMap?"#define USE_SPECULARMAP":"",f.roughnessMap?"#define USE_ROUGHNESSMAP":"",f.metalnessMap?"#define USE_METALNESSMAP":"",f.alphaMap?"#define USE_ALPHAMAP":"",f.vertexTangents?"#define USE_TANGENT":"",f.vertexColors?"#define USE_COLOR":"",f.vertexUvs?"#define USE_UV":"",f.flatShading?"#define FLAT_SHADED":"",f.skinning?"#define USE_SKINNING":"",f.useVertexTexture?
+"#define BONE_TEXTURE":"",f.morphTargets?"#define USE_MORPHTARGETS":"",f.morphNormals&&!1===f.flatShading?"#define USE_MORPHNORMALS":"",f.doubleSided?"#define DOUBLE_SIDED":"",f.flipSided?"#define FLIP_SIDED":"",f.shadowMapEnabled?"#define USE_SHADOWMAP":"",f.shadowMapEnabled?"#define "+r:"",f.sizeAttenuation?"#define USE_SIZEATTENUATION":"",f.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",f.logarithmicDepthBuffer&&(f.isWebGL2||b.get("EXT_frag_depth"))?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;",
+"uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#ifdef USE_COLOR","\tattribute vec3 color;","#endif","#ifdef USE_MORPHTARGETS","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;",
+"\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(Hd).join("\n"),b=[v,Eh(f),
+"#define SHADER_NAME "+e.name,n,f.alphaTest?"#define ALPHATEST "+f.alphaTest+(f.alphaTest%1?"":".0"):"","#define GAMMA_FACTOR "+t,f.useFog&&f.fog?"#define USE_FOG":"",f.useFog&&f.fogExp2?"#define FOG_EXP2":"",f.map?"#define USE_MAP":"",f.matcap?"#define USE_MATCAP":"",f.envMap?"#define USE_ENVMAP":"",f.envMap?"#define "+q:"",f.envMap?"#define "+k:"",f.envMap?"#define "+p:"",f.lightMap?"#define USE_LIGHTMAP":"",f.aoMap?"#define USE_AOMAP":"",f.emissiveMap?"#define USE_EMISSIVEMAP":"",f.bumpMap?"#define USE_BUMPMAP":
+"",f.normalMap?"#define USE_NORMALMAP":"",f.normalMap&&f.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",f.normalMap&&f.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",f.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",f.specularMap?"#define USE_SPECULARMAP":"",f.roughnessMap?"#define USE_ROUGHNESSMAP":"",f.metalnessMap?"#define USE_METALNESSMAP":"",f.alphaMap?"#define USE_ALPHAMAP":"",f.sheen?"#define USE_SHEEN":"",f.vertexTangents?"#define USE_TANGENT":"",f.vertexColors?
+"#define USE_COLOR":"",f.vertexUvs?"#define USE_UV":"",f.gradientMap?"#define USE_GRADIENTMAP":"",f.flatShading?"#define FLAT_SHADED":"",f.doubleSided?"#define DOUBLE_SIDED":"",f.flipSided?"#define FLIP_SIDED":"",f.shadowMapEnabled?"#define USE_SHADOWMAP":"",f.shadowMapEnabled?"#define "+r:"",f.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",f.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",f.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",f.logarithmicDepthBuffer&&(f.isWebGL2||
+b.get("EXT_frag_depth"))?"#define USE_LOGDEPTHBUF_EXT":"",(d.extensions&&d.extensions.shaderTextureLOD||f.envMap)&&(f.isWebGL2||b.get("EXT_shader_texture_lod"))?"#define TEXTURE_LOD_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;",0!==f.toneMapping?"#define TONE_MAPPING":"",0!==f.toneMapping?S.tonemapping_pars_fragment:"",0!==f.toneMapping?Qj("toneMapping",f.toneMapping):"",f.dithering?"#define DITHERING":"",f.outputEncoding||f.mapEncoding||f.matcapEncoding||f.envMapEncoding||f.emissiveMapEncoding?
+S.encodings_pars_fragment:"",f.mapEncoding?Ge("mapTexelToLinear",f.mapEncoding):"",f.matcapEncoding?Ge("matcapTexelToLinear",f.matcapEncoding):"",f.envMapEncoding?Ge("envMapTexelToLinear",f.envMapEncoding):"",f.emissiveMapEncoding?Ge("emissiveMapTexelToLinear",f.emissiveMapEncoding):"",f.outputEncoding?Pj("linearToOutputTexel",f.outputEncoding):"",f.depthPacking?"#define DEPTH_PACKING "+d.depthPacking:"","\n"].filter(Hd).join("\n"));l=l.replace(dg,cg);l=Bh(l,f);l=Ch(l,f);m=m.replace(dg,cg);m=Bh(m,
+f);m=Ch(m,f);l=l.replace(Fh,Dh);m=m.replace(Fh,Dh);f.isWebGL2&&!d.isRawShaderMaterial&&(r=!1,q=/^\s*#version\s+300\s+es\s*\n/,d.isShaderMaterial&&null!==l.match(q)&&null!==m.match(q)&&(r=!0,l=l.replace(q,""),m=m.replace(q,"")),h="#version 300 es\n\n#define attribute in\n#define varying out\n#define texture2D texture\n"+h,b=["#version 300 es\n\n#define varying in",r?"":"out highp vec4 pc_fragColor;",r?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth\n#define texture2D texture\n#define textureCube texture\n#define texture2DProj textureProj\n#define texture2DLodEXT textureLod\n#define texture2DProjLodEXT textureProjLod\n#define textureCubeLodEXT textureLod\n#define texture2DGradEXT textureGrad\n#define texture2DProjGradEXT textureProjGrad\n#define textureCubeGradEXT textureGrad"].join("\n")+
+"\n"+b,0<x&&(h=h.replace("#version 300 es\n",["#version 300 es\n\n#extension GL_OVR_multiview2 : require","layout(num_views = "+x+") in;","#define VIEW_ID gl_ViewID_OVR"].join("\n")),h=h.replace("uniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform mat4 viewMatrix;\nuniform mat3 normalMatrix;",["uniform mat4 modelViewMatrices["+x+"];","uniform mat4 projectionMatrices["+x+"];","uniform mat4 viewMatrices["+x+"];","uniform mat3 normalMatrices["+x+"];","#define modelViewMatrix modelViewMatrices[VIEW_ID]\n#define projectionMatrix projectionMatrices[VIEW_ID]\n#define viewMatrix viewMatrices[VIEW_ID]\n#define normalMatrix normalMatrices[VIEW_ID]"].join("\n")),
+b=b.replace("#version 300 es\n","#version 300 es\n\n#extension GL_OVR_multiview2 : require\n#define VIEW_ID gl_ViewID_OVR"),b=b.replace("uniform mat4 viewMatrix;",["uniform mat4 viewMatrices["+x+"];","#define viewMatrix viewMatrices[VIEW_ID]"].join("\n"))));m=b+m;l=yh(g,35633,h+l);m=yh(g,35632,m);g.attachShader(w,l);g.attachShader(w,m);void 0!==d.index0AttributeName?g.bindAttribLocation(w,0,d.index0AttributeName):!0===f.morphTargets&&g.bindAttribLocation(w,0,"position");g.linkProgram(w);if(a.debug.checkShaderErrors){a=
+g.getProgramInfoLog(w).trim();f=g.getShaderInfoLog(l).trim();r=g.getShaderInfoLog(m).trim();k=q=!0;if(!1===g.getProgramParameter(w,35714))q=!1,p=Ah(g,l,"vertex"),t=Ah(g,m,"fragment"),console.error("THREE.WebGLProgram: shader error: ",g.getError(),"35715",g.getProgramParameter(w,35715),"gl.getProgramInfoLog",a,p,t);else if(""!==a)console.warn("THREE.WebGLProgram: gl.getProgramInfoLog()",a);else if(""===f||""===r)k=!1;k&&(this.diagnostics={runnable:q,material:d,programLog:a,vertexShader:{log:f,prefix:h},
+fragmentShader:{log:r,prefix:b}})}g.deleteShader(l);g.deleteShader(m);var F;this.getUniforms=function(){void 0===F&&(F=new Cb(g,w));return F};var H;this.getAttributes=function(){if(void 0===H){for(var a={},b=g.getProgramParameter(w,35721),c=0;c<b;c++){var d=g.getActiveAttrib(w,c).name;a[d]=g.getAttribLocation(w,d)}H=a}return H};this.destroy=function(){g.deleteProgram(w);this.program=void 0};this.name=e.name;this.id=Yj++;this.cacheKey=c;this.usedTimes=1;this.program=w;this.vertexShader=l;this.fragmentShader=
+m;this.numMultiviewViews=x;return this}function Zj(a,b,c){function d(a,b){if(a)a.isTexture?c=a.encoding:a.isWebGLRenderTarget&&(console.warn("THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead."),c=a.texture.encoding);else var c=3E3;3E3===c&&b&&(c=3007);return c}var e=[],f=c.isWebGL2,g=c.logarithmicDepthBuffer,h=c.floatVertexTextures,l=c.precision,m=c.maxVertexUniforms,r=c.vertexTextures,q={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",
+MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"phong",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"},k="precision isWebGL2 supportsVertexTextures outputEncoding instancing numMultiviewViews map mapEncoding matcap matcapEncoding envMap envMapMode envMapEncoding envMapCubeUV lightMap aoMap emissiveMap emissiveMapEncoding bumpMap normalMap objectSpaceNormalMap tangentSpaceNormalMap clearcoatNormalMap displacementMap specularMap roughnessMap metalnessMap gradientMap alphaMap combine vertexColors vertexTangents vertexUvs fog useFog fogExp2 flatShading sizeAttenuation logarithmicDepthBuffer skinning maxBones useVertexTexture morphTargets morphNormals maxMorphTargets maxMorphNormals premultipliedAlpha numDirLights numPointLights numSpotLights numHemiLights numRectAreaLights numDirLightShadows numPointLightShadows numSpotLightShadows shadowMapEnabled shadowMapType toneMapping physicallyCorrectLights alphaTest doubleSided flipSided numClippingPlanes numClipIntersection depthPacking dithering sheen".split(" ");
+this.getParameters=function(b,e,k,u,n,x,F){var t=q[b.type];if(F.isSkinnedMesh){var p=F.skeleton.bones;if(h)p=1024;else{var v=Math.min(Math.floor((m-20)/4),p.length);v<p.length?(console.warn("THREE.WebGLRenderer: Skeleton has "+p.length+" bones. This GPU supports "+v+"."),p=0):p=v}}else p=0;null!==b.precision&&(l=c.getMaxPrecision(b.precision),l!==b.precision&&console.warn("THREE.WebGLProgram.getParameters:",b.precision,"not supported, using",l,"instead."));v=a.getRenderTarget();return{isWebGL2:f,
+shaderID:t,precision:l,instancing:!0===F.isInstancedMesh,supportsVertexTextures:r,numMultiviewViews:v&&v.isWebGLMultiviewRenderTarget?v.numViews:0,outputEncoding:d(v?v.texture:null,a.gammaOutput),map:!!b.map,mapEncoding:d(b.map,a.gammaInput),matcap:!!b.matcap,matcapEncoding:d(b.matcap,a.gammaInput),envMap:!!b.envMap,envMapMode:b.envMap&&b.envMap.mapping,envMapEncoding:d(b.envMap,a.gammaInput),envMapCubeUV:!!b.envMap&&(306===b.envMap.mapping||307===b.envMap.mapping),lightMap:!!b.lightMap,aoMap:!!b.aoMap,
+emissiveMap:!!b.emissiveMap,emissiveMapEncoding:d(b.emissiveMap,a.gammaInput),bumpMap:!!b.bumpMap,normalMap:!!b.normalMap,objectSpaceNormalMap:1===b.normalMapType,tangentSpaceNormalMap:0===b.normalMapType,clearcoatNormalMap:!!b.clearcoatNormalMap,displacementMap:!!b.displacementMap,roughnessMap:!!b.roughnessMap,metalnessMap:!!b.metalnessMap,specularMap:!!b.specularMap,alphaMap:!!b.alphaMap,gradientMap:!!b.gradientMap,sheen:!!b.sheen,combine:b.combine,vertexTangents:b.normalMap&&b.vertexTangents,vertexColors:b.vertexColors,
+vertexUvs:!!b.map||!!b.bumpMap||!!b.normalMap||!!b.specularMap||!!b.alphaMap||!!b.emissiveMap||!!b.roughnessMap||!!b.metalnessMap||!!b.clearcoatNormalMap||!!b.displacementMap,fog:!!u,useFog:b.fog,fogExp2:u&&u.isFogExp2,flatShading:b.flatShading,sizeAttenuation:b.sizeAttenuation,logarithmicDepthBuffer:g,skinning:b.skinning&&0<p,maxBones:p,useVertexTexture:h,morphTargets:b.morphTargets,morphNormals:b.morphNormals,maxMorphTargets:a.maxMorphTargets,maxMorphNormals:a.maxMorphNormals,numDirLights:e.directional.length,
+numPointLights:e.point.length,numSpotLights:e.spot.length,numRectAreaLights:e.rectArea.length,numHemiLights:e.hemi.length,numDirLightShadows:e.directionalShadowMap.length,numPointLightShadows:e.pointShadowMap.length,numSpotLightShadows:e.spotShadowMap.length,numClippingPlanes:n,numClipIntersection:x,dithering:b.dithering,shadowMapEnabled:a.shadowMap.enabled&&0<k.length,shadowMapType:a.shadowMap.type,toneMapping:b.toneMapped?a.toneMapping:0,physicallyCorrectLights:a.physicallyCorrectLights,premultipliedAlpha:b.premultipliedAlpha,
+alphaTest:b.alphaTest,doubleSided:2===b.side,flipSided:1===b.side,depthPacking:void 0!==b.depthPacking?b.depthPacking:!1}};this.getProgramCacheKey=function(b,c){var d=[];c.shaderID?d.push(c.shaderID):(d.push(b.fragmentShader),d.push(b.vertexShader));if(void 0!==b.defines)for(var e in b.defines)d.push(e),d.push(b.defines[e]);for(e=0;e<k.length;e++)d.push(c[k[e]]);d.push(b.onBeforeCompile.toString());d.push(a.gammaOutput);d.push(a.gammaFactor);return d.join()};this.acquireProgram=function(c,d,f,g){for(var h,
+l=0,m=e.length;l<m;l++){var r=e[l];if(r.cacheKey===g){h=r;++h.usedTimes;break}}void 0===h&&(h=new Xj(a,b,g,c,d,f),e.push(h));return h};this.releaseProgram=function(a){if(0===--a.usedTimes){var b=e.indexOf(a);e[b]=e[e.length-1];e.pop();a.destroy()}};this.programs=e}function ak(){var a=new WeakMap;return{get:function(b){var c=a.get(b);void 0===c&&(c={},a.set(b,c));return c},remove:function(b){a.delete(b)},update:function(b,c,d){a.get(b)[c]=d},dispose:function(){a=new WeakMap}}}function bk(a,b){return a.groupOrder!==
+b.groupOrder?a.groupOrder-b.groupOrder:a.renderOrder!==b.renderOrder?a.renderOrder-b.renderOrder:a.program!==b.program?a.program.id-b.program.id:a.material.id!==b.material.id?a.material.id-b.material.id:a.z!==b.z?a.z-b.z:a.id-b.id}function ck(a,b){return a.groupOrder!==b.groupOrder?a.groupOrder-b.groupOrder:a.renderOrder!==b.renderOrder?a.renderOrder-b.renderOrder:a.z!==b.z?b.z-a.z:a.id-b.id}function Gh(){function a(a,d,e,m,r,q){var g=b[c];void 0===g?(g={id:a.id,object:a,geometry:d,material:e,program:e.program||
+f,groupOrder:m,renderOrder:a.renderOrder,z:r,group:q},b[c]=g):(g.id=a.id,g.object=a,g.geometry=d,g.material=e,g.program=e.program||f,g.groupOrder=m,g.renderOrder=a.renderOrder,g.z=r,g.group=q);c++;return g}var b=[],c=0,d=[],e=[],f={id:-1};return{opaque:d,transparent:e,init:function(){c=0;d.length=0;e.length=0},push:function(b,c,f,m,r,q){b=a(b,c,f,m,r,q);(!0===f.transparent?e:d).push(b)},unshift:function(b,c,f,m,r,q){b=a(b,c,f,m,r,q);(!0===f.transparent?e:d).unshift(b)},sort:function(){1<d.length&&
+d.sort(bk);1<e.length&&e.sort(ck)}}}function dk(){function a(c){c=c.target;c.removeEventListener("dispose",a);b.delete(c)}var b=new WeakMap;return{get:function(c,d){var e=b.get(c);if(void 0===e){var f=new Gh;b.set(c,new WeakMap);b.get(c).set(d,f);c.addEventListener("dispose",a)}else f=e.get(d),void 0===f&&(f=new Gh,e.set(d,f));return f},dispose:function(){b=new WeakMap}}}function ek(){var a={};return{get:function(b){if(void 0!==a[b.id])return a[b.id];switch(b.type){case "DirectionalLight":var c={direction:new n,
+color:new J,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new B};break;case "SpotLight":c={position:new n,direction:new n,color:new J,distance:0,coneCos:0,penumbraCos:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new B};break;case "PointLight":c={position:new n,color:new J,distance:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new B,shadowCameraNear:1,shadowCameraFar:1E3};break;case "HemisphereLight":c={direction:new n,skyColor:new J,groundColor:new J};break;
+case "RectAreaLight":c={color:new J,position:new n,halfWidth:new n,halfHeight:new n}}return a[b.id]=c}}}function fk(a,b){return(b.castShadow?1:0)-(a.castShadow?1:0)}function gk(){for(var a=new ek,b={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],
+point:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1},c=0;9>c;c++)b.probe.push(new n);var d=new n,e=new Q,f=new Q;return{setup:function(c,h,l){for(var g=0,r=0,q=0,k=0;9>k;k++)b.probe[k].set(0,0,0);var p=h=0,t=0,v=0,n=0,w=0,x=0,F=0;l=l.matrixWorldInverse;c.sort(fk);k=0;for(var H=c.length;k<H;k++){var z=c[k],Ca=z.color,ia=z.intensity,B=z.distance,ma=z.shadow&&z.shadow.map?z.shadow.map.texture:null;if(z.isAmbientLight)g+=Ca.r*ia,r+=Ca.g*
+ia,q+=Ca.b*ia;else if(z.isLightProbe)for(ma=0;9>ma;ma++)b.probe[ma].addScaledVector(z.sh.coefficients[ma],ia);else if(z.isDirectionalLight){var I=a.get(z);I.color.copy(z.color).multiplyScalar(z.intensity);I.direction.setFromMatrixPosition(z.matrixWorld);d.setFromMatrixPosition(z.target.matrixWorld);I.direction.sub(d);I.direction.transformDirection(l);if(I.shadow=z.castShadow)ia=z.shadow,I.shadowBias=ia.bias,I.shadowRadius=ia.radius,I.shadowMapSize=ia.mapSize,b.directionalShadowMap[h]=ma,b.directionalShadowMatrix[h]=
+z.shadow.matrix,w++;b.directional[h]=I;h++}else if(z.isSpotLight){I=a.get(z);I.position.setFromMatrixPosition(z.matrixWorld);I.position.applyMatrix4(l);I.color.copy(Ca).multiplyScalar(ia);I.distance=B;I.direction.setFromMatrixPosition(z.matrixWorld);d.setFromMatrixPosition(z.target.matrixWorld);I.direction.sub(d);I.direction.transformDirection(l);I.coneCos=Math.cos(z.angle);I.penumbraCos=Math.cos(z.angle*(1-z.penumbra));I.decay=z.decay;if(I.shadow=z.castShadow)ia=z.shadow,I.shadowBias=ia.bias,I.shadowRadius=
+ia.radius,I.shadowMapSize=ia.mapSize,b.spotShadowMap[t]=ma,b.spotShadowMatrix[t]=z.shadow.matrix,F++;b.spot[t]=I;t++}else if(z.isRectAreaLight)I=a.get(z),I.color.copy(Ca).multiplyScalar(ia),I.position.setFromMatrixPosition(z.matrixWorld),I.position.applyMatrix4(l),f.identity(),e.copy(z.matrixWorld),e.premultiply(l),f.extractRotation(e),I.halfWidth.set(.5*z.width,0,0),I.halfHeight.set(0,.5*z.height,0),I.halfWidth.applyMatrix4(f),I.halfHeight.applyMatrix4(f),b.rectArea[v]=I,v++;else if(z.isPointLight){I=
+a.get(z);I.position.setFromMatrixPosition(z.matrixWorld);I.position.applyMatrix4(l);I.color.copy(z.color).multiplyScalar(z.intensity);I.distance=z.distance;I.decay=z.decay;if(I.shadow=z.castShadow)ia=z.shadow,I.shadowBias=ia.bias,I.shadowRadius=ia.radius,I.shadowMapSize=ia.mapSize,I.shadowCameraNear=ia.camera.near,I.shadowCameraFar=ia.camera.far,b.pointShadowMap[p]=ma,b.pointShadowMatrix[p]=z.shadow.matrix,x++;b.point[p]=I;p++}else z.isHemisphereLight&&(I=a.get(z),I.direction.setFromMatrixPosition(z.matrixWorld),
+I.direction.transformDirection(l),I.direction.normalize(),I.skyColor.copy(z.color).multiplyScalar(ia),I.groundColor.copy(z.groundColor).multiplyScalar(ia),b.hemi[n]=I,n++)}b.ambient[0]=g;b.ambient[1]=r;b.ambient[2]=q;c=b.hash;if(c.directionalLength!==h||c.pointLength!==p||c.spotLength!==t||c.rectAreaLength!==v||c.hemiLength!==n||c.numDirectionalShadows!==w||c.numPointShadows!==x||c.numSpotShadows!==F)b.directional.length=h,b.spot.length=t,b.rectArea.length=v,b.point.length=p,b.hemi.length=n,b.directionalShadowMap.length=
+w,b.pointShadowMap.length=x,b.spotShadowMap.length=F,b.directionalShadowMatrix.length=w,b.pointShadowMatrix.length=x,b.spotShadowMatrix.length=F,c.directionalLength=h,c.pointLength=p,c.spotLength=t,c.rectAreaLength=v,c.hemiLength=n,c.numDirectionalShadows=w,c.numPointShadows=x,c.numSpotShadows=F,b.version=hk++},state:b}}function Hh(){var a=new gk,b=[],c=[];return{init:function(){b.length=0;c.length=0},state:{lightsArray:b,shadowsArray:c,lights:a},setupLights:function(d){a.setup(b,c,d)},pushLight:function(a){b.push(a)},
+pushShadow:function(a){c.push(a)}}}function ik(){function a(c){c=c.target;c.removeEventListener("dispose",a);b.delete(c)}var b=new WeakMap;return{get:function(c,d){if(!1===b.has(c)){var e=new Hh;b.set(c,new WeakMap);b.get(c).set(d,e);c.addEventListener("dispose",a)}else!1===b.get(c).has(d)?(e=new Hh,b.get(c).set(d,e)):e=b.get(c).get(d);return e},dispose:function(){b=new WeakMap}}}function Db(a){O.call(this);this.type="MeshDepthMaterial";this.depthPacking=3200;this.morphTargets=this.skinning=!1;this.displacementMap=
+this.alphaMap=this.map=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=!1;this.wireframeLinewidth=1;this.fog=!1;this.setValues(a)}function Eb(a){O.call(this);this.type="MeshDistanceMaterial";this.referencePosition=new n;this.nearDistance=1;this.farDistance=1E3;this.morphTargets=this.skinning=!1;this.displacementMap=this.alphaMap=this.map=null;this.displacementScale=1;this.displacementBias=0;this.fog=!1;this.setValues(a)}function Ih(a,b,c){function d(a,b,c){c=a<<0|b<<1|c<<2;var d=
+q[c];void 0===d&&(d=new Db({depthPacking:3201,morphTargets:a,skinning:b}),q[c]=d);return d}function e(a,b,c){c=a<<0|b<<1|c<<2;var d=k[c];void 0===d&&(d=new Eb({morphTargets:a,skinning:b}),k[c]=d);return d}function f(b,c,f,g,h,l){var m=b.geometry,r=d,q=b.customDepthMaterial;!0===f.isPointLight&&(r=e,q=b.customDistanceMaterial);void 0===q?(q=!1,!0===c.morphTargets&&(!0===m.isBufferGeometry?q=m.morphAttributes&&m.morphAttributes.position&&0<m.morphAttributes.position.length:!0===m.isGeometry&&(q=m.morphTargets&&
+0<m.morphTargets.length)),m=!1,!0===b.isSkinnedMesh&&(!0===c.skinning?m=!0:console.warn("THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:",b)),b=r(q,m,!0===b.isInstancedMesh)):b=q;a.localClippingEnabled&&!0===c.clipShadows&&0!==c.clippingPlanes.length&&(q=b.uuid,r=c.uuid,m=p[q],void 0===m&&(m={},p[q]=m),q=m[r],void 0===q&&(q=b.clone(),m[r]=q),b=q);b.visible=c.visible;b.wireframe=c.wireframe;b.side=3===l?null!==c.shadowSide?c.shadowSide:c.side:null!==c.shadowSide?c.shadowSide:
+t[c.side];b.clipShadows=c.clipShadows;b.clippingPlanes=c.clippingPlanes;b.clipIntersection=c.clipIntersection;b.wireframeLinewidth=c.wireframeLinewidth;b.linewidth=c.linewidth;!0===f.isPointLight&&!0===b.isMeshDistanceMaterial&&(b.referencePosition.setFromMatrixPosition(f.matrixWorld),b.nearDistance=g,b.farDistance=h);return b}function g(c,d,e,l,m){if(!1!==c.visible){if(c.layers.test(d.layers)&&(c.isMesh||c.isLine||c.isPoints)&&(c.castShadow||c.receiveShadow&&3===m)&&(!c.frustumCulled||h.intersectsObject(c))){c.modelViewMatrix.multiplyMatrices(e.matrixWorldInverse,
+c.matrixWorld);var r=b.update(c),q=c.material;if(Array.isArray(q))for(var k=r.groups,u=0,t=k.length;u<t;u++){var p=k[u],v=q[p.materialIndex];v&&v.visible&&(v=f(c,v,l,e.near,e.far,m),a.renderBufferDirect(e,null,r,v,c,p))}else q.visible&&(v=f(c,q,l,e.near,e.far,m),a.renderBufferDirect(e,null,r,v,c,null))}c=c.children;r=0;for(q=c.length;r<q;r++)g(c[r],d,e,l,m)}}var h=new Ed,l=new B,m=new B,r=new da,q=[],k=[],p={},t={0:1,1:0,2:2},v=new va({defines:{SAMPLE_RATE:.25,HALF_SAMPLE_RATE:.125},uniforms:{shadow_pass:{value:null},
+resolution:{value:new B},radius:{value:4}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include <packing>\nvoid main() {\n  float mean = 0.0;\n  float squared_mean = 0.0;\n  \n\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy  ) / resolution ) );\n  for ( float i = -1.0; i < 1.0 ; i += SAMPLE_RATE) {\n    #ifdef HORIZONAL_PASS\n      vec2 distribution = decodeHalfRGBA ( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( i, 0.0 ) * radius ) / resolution ) );\n      mean += distribution.x;\n      squared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n    #else\n      float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0,  i )  * radius ) / resolution ) );\n      mean += depth;\n      squared_mean += depth * depth;\n    #endif\n  }\n  mean = mean * HALF_SAMPLE_RATE;\n  squared_mean = squared_mean * HALF_SAMPLE_RATE;\n  float std_dev = pow( squared_mean - mean * mean, 0.5 );\n  gl_FragColor = encodeHalfRGBA( vec2( mean, std_dev ) );\n}"}),
+n=v.clone();n.defines.HORIZONAL_PASS=1;var w=new E;w.setAttribute("position",new N(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));var x=new ea(w,v),F=this;this.enabled=!1;this.autoUpdate=!0;this.needsUpdate=!1;this.type=1;this.render=function(d,e,f){if(!1!==F.enabled&&(!1!==F.autoUpdate||!1!==F.needsUpdate)&&0!==d.length){var q=a.getRenderTarget(),k=a.getActiveCubeFace(),u=a.getActiveMipmapLevel(),t=a.state;t.setBlending(0);t.buffers.color.setClear(1,1,1,1);t.buffers.depth.setTest(!0);t.setScissorTest(!1);
+for(var p=0,y=d.length;p<y;p++){var w=d[p],z=w.shadow;if(void 0===z)console.warn("THREE.WebGLShadowMap:",w,"has no shadow.");else{l.copy(z.mapSize);var H=z.getFrameExtents();l.multiply(H);m.copy(z.mapSize);if(l.x>c||l.y>c)console.warn("THREE.WebGLShadowMap:",w,"has shadow exceeding max texture size, reducing"),l.x>c&&(m.x=Math.floor(c/H.x),l.x=m.x*H.x,z.mapSize.x=m.x),l.y>c&&(m.y=Math.floor(c/H.y),l.y=m.y*H.y,z.mapSize.y=m.y);null!==z.map||z.isPointLightShadow||3!==this.type||(H={minFilter:1006,magFilter:1006,
+format:1023},z.map=new la(l.x,l.y,H),z.map.texture.name=w.name+".shadowMap",z.mapPass=new la(l.x,l.y,H),z.camera.updateProjectionMatrix());null===z.map&&(H={minFilter:1003,magFilter:1003,format:1023},z.map=new la(l.x,l.y,H),z.map.texture.name=w.name+".shadowMap",z.camera.updateProjectionMatrix());a.setRenderTarget(z.map);a.clear();H=z.getViewportCount();for(var Ca=0;Ca<H;Ca++){var B=z.getViewport(Ca);r.set(m.x*B.x,m.y*B.y,m.x*B.z,m.y*B.w);t.viewport(r);z.updateMatrices(w,Ca);h=z.getFrustum();g(e,
+f,z.camera,w,this.type)}z.isPointLightShadow||3!==this.type||(w=z,z=f,H=b.update(x),v.uniforms.shadow_pass.value=w.map.texture,v.uniforms.resolution.value=w.mapSize,v.uniforms.radius.value=w.radius,a.setRenderTarget(w.mapPass),a.clear(),a.renderBufferDirect(z,null,H,v,x,null),n.uniforms.shadow_pass.value=w.mapPass.texture,n.uniforms.resolution.value=w.mapSize,n.uniforms.radius.value=w.radius,a.setRenderTarget(w.map),a.clear(),a.renderBufferDirect(z,null,H,n,x,null))}}F.needsUpdate=!1;a.setRenderTarget(q,
+k,u)}}}function jk(a,b,c){function d(b,c,d){var e=new Uint8Array(4),f=a.createTexture();a.bindTexture(b,f);a.texParameteri(b,10241,9728);a.texParameteri(b,10240,9728);for(b=0;b<d;b++)a.texImage2D(c+b,0,6408,1,1,0,6408,5121,e);return f}function e(c,d){n[c]=1;0===w[c]&&(a.enableVertexAttribArray(c),w[c]=1);x[c]!==d&&((k?a:b.get("ANGLE_instanced_arrays"))[k?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](c,d),x[c]=d)}function f(b){!0!==F[b]&&(a.enable(b),F[b]=!0)}function g(b){!1!==F[b]&&(a.disable(b),
+F[b]=!1)}function h(b,c,d,e,h,l,m,r){if(0===b)z&&(g(3042),z=!1);else if(z||(f(3042),z=!0),5!==b){if(b!==Ca||r!==E){if(100!==B||100!==I)a.blendEquation(32774),I=B=100;if(r)switch(b){case 1:a.blendFuncSeparate(1,771,1,771);break;case 2:a.blendFunc(1,1);break;case 3:a.blendFuncSeparate(0,0,769,771);break;case 4:a.blendFuncSeparate(0,768,0,770);break;default:console.error("THREE.WebGLState: Invalid blending: ",b)}else switch(b){case 1:a.blendFuncSeparate(770,771,1,771);break;case 2:a.blendFunc(770,1);
+break;case 3:a.blendFunc(0,769);break;case 4:a.blendFunc(0,768);break;default:console.error("THREE.WebGLState: Invalid blending: ",b)}D=Id=ma=A=null;Ca=b;E=r}}else{h=h||c;l=l||d;m=m||e;if(c!==B||h!==I)a.blendEquationSeparate(Gc[c],Gc[h]),B=c,I=h;if(d!==A||e!==ma||l!==Id||m!==D)a.blendFuncSeparate(M[d],M[e],M[l],M[m]),A=d,ma=e,Id=l,D=m;Ca=b;E=null}}function l(b){J!==b&&(b?a.frontFace(2304):a.frontFace(2305),J=b)}function m(b){0!==b?(f(2884),b!==L&&(1===b?a.cullFace(1029):2===b?a.cullFace(1028):a.cullFace(1032))):
+g(2884);L=b}function r(b,c,d){if(b){if(f(32823),C!==c||N!==d)a.polygonOffset(c,d),C=c,N=d}else g(32823)}function q(b){void 0===b&&(b=33984+ha-1);P!==b&&(a.activeTexture(b),P=b)}var k=c.isWebGL2,p=new function(){var b=!1,c=new da,d=null,e=new da(0,0,0,0);return{setMask:function(c){d===c||b||(a.colorMask(c,c,c,c),d=c)},setLocked:function(a){b=a},setClear:function(b,d,f,g,h){!0===h&&(b*=g,d*=g,f*=g);c.set(b,d,f,g);!1===e.equals(c)&&(a.clearColor(b,d,f,g),e.copy(c))},reset:function(){b=!1;d=null;e.set(-1,
+0,0,0)}}},t=new function(){var b=!1,c=null,d=null,e=null;return{setTest:function(a){a?f(2929):g(2929)},setMask:function(d){c===d||b||(a.depthMask(d),c=d)},setFunc:function(b){if(d!==b){if(b)switch(b){case 0:a.depthFunc(512);break;case 1:a.depthFunc(519);break;case 2:a.depthFunc(513);break;case 3:a.depthFunc(515);break;case 4:a.depthFunc(514);break;case 5:a.depthFunc(518);break;case 6:a.depthFunc(516);break;case 7:a.depthFunc(517);break;default:a.depthFunc(515)}else a.depthFunc(515);d=b}},setLocked:function(a){b=
+a},setClear:function(b){e!==b&&(a.clearDepth(b),e=b)},reset:function(){b=!1;e=d=c=null}}},v=new function(){var b=!1,c=null,d=null,e=null,h=null,l=null,m=null,r=null,q=null;return{setTest:function(a){b||(a?f(2960):g(2960))},setMask:function(d){c===d||b||(a.stencilMask(d),c=d)},setFunc:function(b,c,f){if(d!==b||e!==c||h!==f)a.stencilFunc(b,c,f),d=b,e=c,h=f},setOp:function(b,c,d){if(l!==b||m!==c||r!==d)a.stencilOp(b,c,d),l=b,m=c,r=d},setLocked:function(a){b=a},setClear:function(b){q!==b&&(a.clearStencil(b),
+q=b)},reset:function(){b=!1;q=r=m=l=h=e=d=c=null}}};c=a.getParameter(34921);var n=new Uint8Array(c),w=new Uint8Array(c),x=new Uint8Array(c),F={},H=null,z=null,Ca=null,B=null,A=null,ma=null,I=null,Id=null,D=null,E=!1,J=null,L=null,G=null,C=null,N=null,ha=a.getParameter(35661),O=!1;c=0;c=a.getParameter(7938);-1!==c.indexOf("WebGL")?(c=parseFloat(/^WebGL ([0-9])/.exec(c)[1]),O=1<=c):-1!==c.indexOf("OpenGL ES")&&(c=parseFloat(/^OpenGL ES ([0-9])/.exec(c)[1]),O=2<=c);var P=null,Ke={},$b=new da,Jh=new da,
+ob={};ob[3553]=d(3553,3553,1);ob[34067]=d(34067,34069,6);p.setClear(0,0,0,1);t.setClear(1);v.setClear(0);f(2929);t.setFunc(3);l(!1);m(1);f(2884);h(0);var Gc={100:32774,101:32778,102:32779};k?(Gc[103]=32775,Gc[104]=32776):(c=b.get("EXT_blend_minmax"),null!==c&&(Gc[103]=c.MIN_EXT,Gc[104]=c.MIN_EXT));var M={200:0,201:1,202:768,204:770,210:776,208:774,206:772,203:769,205:771,209:775,207:773};return{buffers:{color:p,depth:t,stencil:v},initAttributes:function(){for(var a=0,b=n.length;a<b;a++)n[a]=0},enableAttribute:function(a){e(a,
+0)},enableAttributeAndDivisor:e,disableUnusedAttributes:function(){for(var b=0,c=w.length;b!==c;++b)w[b]!==n[b]&&(a.disableVertexAttribArray(b),w[b]=0)},enable:f,disable:g,useProgram:function(b){return H!==b?(a.useProgram(b),H=b,!0):!1},setBlending:h,setMaterial:function(a,b){2===a.side?g(2884):f(2884);var c=1===a.side;b&&(c=!c);l(c);1===a.blending&&!1===a.transparent?h(0):h(a.blending,a.blendEquation,a.blendSrc,a.blendDst,a.blendEquationAlpha,a.blendSrcAlpha,a.blendDstAlpha,a.premultipliedAlpha);
+t.setFunc(a.depthFunc);t.setTest(a.depthTest);t.setMask(a.depthWrite);p.setMask(a.colorWrite);b=a.stencilWrite;v.setTest(b);b&&(v.setMask(a.stencilWriteMask),v.setFunc(a.stencilFunc,a.stencilRef,a.stencilFuncMask),v.setOp(a.stencilFail,a.stencilZFail,a.stencilZPass));r(a.polygonOffset,a.polygonOffsetFactor,a.polygonOffsetUnits)},setFlipSided:l,setCullFace:m,setLineWidth:function(b){b!==G&&(O&&a.lineWidth(b),G=b)},setPolygonOffset:r,setScissorTest:function(a){a?f(3089):g(3089)},activeTexture:q,bindTexture:function(b,
+c){null===P&&q();var d=Ke[P];void 0===d&&(d={type:void 0,texture:void 0},Ke[P]=d);if(d.type!==b||d.texture!==c)a.bindTexture(b,c||ob[b]),d.type=b,d.texture=c},unbindTexture:function(){var b=Ke[P];void 0!==b&&void 0!==b.type&&(a.bindTexture(b.type,null),b.type=void 0,b.texture=void 0)},compressedTexImage2D:function(){try{a.compressedTexImage2D.apply(a,arguments)}catch(W){console.error("THREE.WebGLState:",W)}},texImage2D:function(){try{a.texImage2D.apply(a,arguments)}catch(W){console.error("THREE.WebGLState:",
+W)}},texImage3D:function(){try{a.texImage3D.apply(a,arguments)}catch(W){console.error("THREE.WebGLState:",W)}},scissor:function(b){!1===$b.equals(b)&&(a.scissor(b.x,b.y,b.z,b.w),$b.copy(b))},viewport:function(b){!1===Jh.equals(b)&&(a.viewport(b.x,b.y,b.z,b.w),Jh.copy(b))},reset:function(){for(var b=0;b<w.length;b++)1===w[b]&&(a.disableVertexAttribArray(b),w[b]=0);F={};P=null;Ke={};L=J=Ca=H=null;p.reset();t.reset();v.reset()}}}function kk(a,b,c,d,e,f,g){function h(a,b){return G?new OffscreenCanvas(a,
+b):document.createElementNS("http://www.w3.org/1999/xhtml","canvas")}function l(a,b,c,d){var e=1;if(a.width>d||a.height>d)e=d/Math.max(a.width,a.height);if(1>e||!0===b){if("undefined"!==typeof HTMLImageElement&&a instanceof HTMLImageElement||"undefined"!==typeof HTMLCanvasElement&&a instanceof HTMLCanvasElement||"undefined"!==typeof ImageBitmap&&a instanceof ImageBitmap)return d=b?P.floorPowerOfTwo:Math.floor,b=d(e*a.width),e=d(e*a.height),void 0===L&&(L=h(b,e)),c=c?h(b,e):L,c.width=b,c.height=e,
+c.getContext("2d").drawImage(a,0,0,b,e),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+a.width+"x"+a.height+") to ("+b+"x"+e+")."),c;"data"in a&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+a.width+"x"+a.height+").")}return a}function m(a){return P.isPowerOfTwo(a.width)&&P.isPowerOfTwo(a.height)}function r(a,b){return a.generateMipmaps&&b&&1003!==a.minFilter&&1006!==a.minFilter}function q(b,c,e,f){a.generateMipmap(b);d.get(c).__maxMipLevel=Math.log(Math.max(e,
+f))*Math.LOG2E}function k(a,c){if(!1===ma)return a;var d=a;6403===a&&(5126===c&&(d=33326),5131===c&&(d=33325),5121===c&&(d=33321));6407===a&&(5126===c&&(d=34837),5131===c&&(d=34843),5121===c&&(d=32849));6408===a&&(5126===c&&(d=34836),5131===c&&(d=34842),5121===c&&(d=32856));33325===d||33326===d||34842===d||34836===d?b.get("EXT_color_buffer_float"):(34843===d||34837===d)&&console.warn("THREE.WebGLRenderer: Floating point textures with RGB format not supported. Please use RGBA instead.");return d}function p(a){return 1003===
+a||1004===a||1005===a?9728:9729}function t(b){b=b.target;b.removeEventListener("dispose",t);var c=d.get(b);void 0!==c.__webglInit&&(a.deleteTexture(c.__webglTexture),d.remove(b));b.isVideoTexture&&J.delete(b);g.memory.textures--}function v(b){b=b.target;b.removeEventListener("dispose",v);var c=d.get(b),e=d.get(b.texture);if(b){void 0!==e.__webglTexture&&a.deleteTexture(e.__webglTexture);b.depthTexture&&b.depthTexture.dispose();if(b.isWebGLRenderTargetCube)for(e=0;6>e;e++)a.deleteFramebuffer(c.__webglFramebuffer[e]),
+c.__webglDepthbuffer&&a.deleteRenderbuffer(c.__webglDepthbuffer[e]);else a.deleteFramebuffer(c.__webglFramebuffer),c.__webglDepthbuffer&&a.deleteRenderbuffer(c.__webglDepthbuffer);if(b.isWebGLMultiviewRenderTarget){a.deleteTexture(c.__webglColorTexture);a.deleteTexture(c.__webglDepthStencilTexture);g.memory.textures-=2;e=0;for(var f=c.__webglViewFramebuffers.length;e<f;e++)a.deleteFramebuffer(c.__webglViewFramebuffers[e])}d.remove(b.texture);d.remove(b)}g.memory.textures--}function n(a,b){var e=d.get(a);
+if(a.isVideoTexture){var f=g.render.frame;J.get(a)!==f&&(J.set(a,f),a.update())}if(0<a.version&&e.__version!==a.version)if(f=a.image,void 0===f)console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined");else if(!1===f.complete)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{z(e,a,b);return}c.activeTexture(33984+b);c.bindTexture(3553,e.__webglTexture)}function w(b,e){if(6===b.image.length){var g=d.get(b);if(0<b.version&&g.__version!==
+b.version){H(g,b);c.activeTexture(33984+e);c.bindTexture(34067,g.__webglTexture);a.pixelStorei(37440,b.flipY);var h=b&&b.isCompressedTexture;e=b.image[0]&&b.image[0].isDataTexture;for(var t=[],u=0;6>u;u++)t[u]=h||e?e?b.image[u].image:b.image[u]:l(b.image[u],!1,!0,Id);var p=t[0],v=m(p)||ma,n=f.convert(b.format),y=f.convert(b.type),w=k(n,y);F(34067,b,v);if(h){for(u=0;6>u;u++){var z=t[u].mipmaps;for(h=0;h<z.length;h++){var x=z[h];1023!==b.format&&1022!==b.format?null!==n?c.compressedTexImage2D(34069+
+u,h,w,x.width,x.height,0,x.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):c.texImage2D(34069+u,h,w,x.width,x.height,0,n,y,x.data)}}g.__maxMipLevel=z.length-1}else{z=b.mipmaps;for(u=0;6>u;u++)if(e)for(c.texImage2D(34069+u,0,w,t[u].width,t[u].height,0,n,y,t[u].data),h=0;h<z.length;h++)x=z[h],x=x.image[u].image,c.texImage2D(34069+u,h+1,w,x.width,x.height,0,n,y,x.data);else for(c.texImage2D(34069+u,0,w,n,y,t[u]),h=0;h<z.length;h++)x=
+z[h],c.texImage2D(34069+u,h+1,w,n,y,x.image[u]);g.__maxMipLevel=z.length}r(b,v)&&q(34067,b,p.width,p.height);g.__version=b.version;if(b.onUpdate)b.onUpdate(b)}else c.activeTexture(33984+e),c.bindTexture(34067,g.__webglTexture)}}function x(a,b){c.activeTexture(33984+b);c.bindTexture(34067,d.get(a).__webglTexture)}function F(c,f,g){g?(a.texParameteri(c,10242,N[f.wrapS]),a.texParameteri(c,10243,N[f.wrapT]),32879!==c&&35866!==c||a.texParameteri(c,32882,N[f.wrapR]),a.texParameteri(c,10240,O[f.magFilter]),
+a.texParameteri(c,10241,O[f.minFilter])):(a.texParameteri(c,10242,33071),a.texParameteri(c,10243,33071),32879!==c&&35866!==c||a.texParameteri(c,32882,33071),1001===f.wrapS&&1001===f.wrapT||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),a.texParameteri(c,10240,p(f.magFilter)),a.texParameteri(c,10241,p(f.minFilter)),1003!==f.minFilter&&1006!==f.minFilter&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter."));
+!(g=b.get("EXT_texture_filter_anisotropic"))||1015===f.type&&null===b.get("OES_texture_float_linear")||1016===f.type&&null===(ma||b.get("OES_texture_half_float_linear"))||!(1<f.anisotropy||d.get(f).__currentAnisotropy)||(a.texParameterf(c,g.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(f.anisotropy,e.getMaxAnisotropy())),d.get(f).__currentAnisotropy=f.anisotropy)}function H(b,c){void 0===b.__webglInit&&(b.__webglInit=!0,c.addEventListener("dispose",t),b.__webglTexture=a.createTexture(),g.memory.textures++)}
+function z(b,d,e){var g=3553;d.isDataTexture2DArray&&(g=35866);d.isDataTexture3D&&(g=32879);H(b,d);c.activeTexture(33984+e);c.bindTexture(g,b.__webglTexture);a.pixelStorei(37440,d.flipY);a.pixelStorei(37441,d.premultiplyAlpha);a.pixelStorei(3317,d.unpackAlignment);e=ma?!1:1001!==d.wrapS||1001!==d.wrapT||1003!==d.minFilter&&1006!==d.minFilter;e=e&&!1===m(d.image);e=l(d.image,e,!1,D);var h=m(e)||ma,u=f.convert(d.format),t=f.convert(d.type),p=k(u,t);F(g,d,h);var v=d.mipmaps;if(d.isDepthTexture){p=6402;
+if(1015===d.type){if(!1===ma)throw Error("Float Depth Texture only supported in WebGL2.0");p=36012}else ma&&(p=33189);1026===d.format&&6402===p&&1012!==d.type&&1014!==d.type&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),d.type=1012,t=f.convert(d.type));1027===d.format&&(p=34041,1020!==d.type&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),d.type=1020,t=f.convert(d.type)));c.texImage2D(3553,
+0,p,e.width,e.height,0,u,t,null)}else if(d.isDataTexture)if(0<v.length&&h){for(var n=0,y=v.length;n<y;n++)g=v[n],c.texImage2D(3553,n,p,g.width,g.height,0,u,t,g.data);d.generateMipmaps=!1;b.__maxMipLevel=v.length-1}else c.texImage2D(3553,0,p,e.width,e.height,0,u,t,e.data),b.__maxMipLevel=0;else if(d.isCompressedTexture){n=0;for(y=v.length;n<y;n++)g=v[n],1023!==d.format&&1022!==d.format?null!==u?c.compressedTexImage2D(3553,n,p,g.width,g.height,0,g.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):
+c.texImage2D(3553,n,p,g.width,g.height,0,u,t,g.data);b.__maxMipLevel=v.length-1}else if(d.isDataTexture2DArray)c.texImage3D(35866,0,p,e.width,e.height,e.depth,0,u,t,e.data),b.__maxMipLevel=0;else if(d.isDataTexture3D)c.texImage3D(32879,0,p,e.width,e.height,e.depth,0,u,t,e.data),b.__maxMipLevel=0;else if(0<v.length&&h){n=0;for(y=v.length;n<y;n++)g=v[n],c.texImage2D(3553,n,p,u,t,g);d.generateMipmaps=!1;b.__maxMipLevel=v.length-1}else c.texImage2D(3553,0,p,u,t,e),b.__maxMipLevel=0;r(d,h)&&q(3553,d,e.width,
+e.height);b.__version=d.version;if(d.onUpdate)d.onUpdate(d)}function B(b,e,g,h){var l=f.convert(e.texture.format),m=f.convert(e.texture.type),r=k(l,m);c.texImage2D(h,0,r,e.width,e.height,0,l,m,null);a.bindFramebuffer(36160,b);a.framebufferTexture2D(36160,g,h,d.get(e.texture).__webglTexture,0);a.bindFramebuffer(36160,null)}function ia(b,c,d){a.bindRenderbuffer(36161,b);if(c.depthBuffer&&!c.stencilBuffer)d?(d=A(c),a.renderbufferStorageMultisample(36161,d,33189,c.width,c.height)):a.renderbufferStorage(36161,
+33189,c.width,c.height),a.framebufferRenderbuffer(36160,36096,36161,b);else if(c.depthBuffer&&c.stencilBuffer)d?(d=A(c),a.renderbufferStorageMultisample(36161,d,35056,c.width,c.height)):a.renderbufferStorage(36161,34041,c.width,c.height),a.framebufferRenderbuffer(36160,33306,36161,b);else{b=f.convert(c.texture.format);var e=f.convert(c.texture.type);b=k(b,e);d?(d=A(c),a.renderbufferStorageMultisample(36161,d,b,c.width,c.height)):a.renderbufferStorage(36161,b,c.width,c.height)}a.bindRenderbuffer(36161,
+null)}function A(a){return ma&&a.isWebGLMultisampleRenderTarget?Math.min(E,a.samples):0}var ma=e.isWebGL2,I=e.maxTextures,Id=e.maxCubemapSize,D=e.maxTextureSize,E=e.maxSamples,J=new WeakMap,L,G="undefined"!==typeof OffscreenCanvas&&null!==(new OffscreenCanvas(1,1)).getContext("2d"),C=0,N={1E3:10497,1001:33071,1002:33648},O={1003:9728,1004:9984,1005:9986,1006:9729,1007:9985,1008:9987},Q=!1,S=!1;this.allocateTextureUnit=function(){var a=C;a>=I&&console.warn("THREE.WebGLTextures: Trying to use "+a+" texture units while this GPU supports only "+
+I);C+=1;return a};this.resetTextureUnits=function(){C=0};this.setTexture2D=n;this.setTexture2DArray=function(a,b){var e=d.get(a);0<a.version&&e.__version!==a.version?z(e,a,b):(c.activeTexture(33984+b),c.bindTexture(35866,e.__webglTexture))};this.setTexture3D=function(a,b){var e=d.get(a);0<a.version&&e.__version!==a.version?z(e,a,b):(c.activeTexture(33984+b),c.bindTexture(32879,e.__webglTexture))};this.setTextureCube=w;this.setTextureCubeDynamic=x;this.setupRenderTarget=function(e){var h=d.get(e),
+l=d.get(e.texture);e.addEventListener("dispose",v);l.__webglTexture=a.createTexture();g.memory.textures++;var u=!0===e.isWebGLRenderTargetCube,t=!0===e.isWebGLMultisampleRenderTarget,p=!0===e.isWebGLMultiviewRenderTarget,y=m(e)||ma;if(u){h.__webglFramebuffer=[];for(var w=0;6>w;w++)h.__webglFramebuffer[w]=a.createFramebuffer()}else if(h.__webglFramebuffer=a.createFramebuffer(),t)if(ma){h.__webglMultisampledFramebuffer=a.createFramebuffer();h.__webglColorRenderbuffer=a.createRenderbuffer();a.bindRenderbuffer(36161,
+h.__webglColorRenderbuffer);t=f.convert(e.texture.format);var z=f.convert(e.texture.type);t=k(t,z);z=A(e);a.renderbufferStorageMultisample(36161,z,t,e.width,e.height);a.bindFramebuffer(36160,h.__webglMultisampledFramebuffer);a.framebufferRenderbuffer(36160,36064,36161,h.__webglColorRenderbuffer);a.bindRenderbuffer(36161,null);e.depthBuffer&&(h.__webglDepthRenderbuffer=a.createRenderbuffer(),ia(h.__webglDepthRenderbuffer,e,!0));a.bindFramebuffer(36160,null)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.");
+else if(p){w=e.width;var x=e.height;t=e.numViews;a.bindFramebuffer(36160,h.__webglFramebuffer);var H=b.get("OVR_multiview2");g.memory.textures+=2;z=a.createTexture();a.bindTexture(35866,z);a.texParameteri(35866,10240,9728);a.texParameteri(35866,10241,9728);a.texImage3D(35866,0,32856,w,x,t,0,6408,5121,null);H.framebufferTextureMultiviewOVR(36160,36064,z,0,0,t);var I=a.createTexture();a.bindTexture(35866,I);a.texParameteri(35866,10240,9728);a.texParameteri(35866,10241,9728);a.texImage3D(35866,0,35056,
+w,x,t,0,34041,34042,null);H.framebufferTextureMultiviewOVR(36160,33306,I,0,0,t);x=Array(t);for(w=0;w<t;++w)x[w]=a.createFramebuffer(),a.bindFramebuffer(36160,x[w]),a.framebufferTextureLayer(36160,36064,z,0,w);h.__webglColorTexture=z;h.__webglDepthStencilTexture=I;h.__webglViewFramebuffers=x;a.bindFramebuffer(36160,null);a.bindTexture(35866,null)}if(u){c.bindTexture(34067,l.__webglTexture);F(34067,e.texture,y);for(w=0;6>w;w++)B(h.__webglFramebuffer[w],e,36064,34069+w);r(e.texture,y)&&q(34067,e.texture,
+e.width,e.height);c.bindTexture(34067,null)}else p||(c.bindTexture(3553,l.__webglTexture),F(3553,e.texture,y),B(h.__webglFramebuffer,e,36064,3553),r(e.texture,y)&&q(3553,e.texture,e.width,e.height),c.bindTexture(3553,null));if(e.depthBuffer){h=d.get(e);l=!0===e.isWebGLRenderTargetCube;if(e.depthTexture){if(l)throw Error("target.depthTexture not supported in Cube render targets");if(e&&e.isWebGLRenderTargetCube)throw Error("Depth Texture with cube render targets is not supported");a.bindFramebuffer(36160,
+h.__webglFramebuffer);if(!e.depthTexture||!e.depthTexture.isDepthTexture)throw Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");d.get(e.depthTexture).__webglTexture&&e.depthTexture.image.width===e.width&&e.depthTexture.image.height===e.height||(e.depthTexture.image.width=e.width,e.depthTexture.image.height=e.height,e.depthTexture.needsUpdate=!0);n(e.depthTexture,0);h=d.get(e.depthTexture).__webglTexture;if(1026===e.depthTexture.format)a.framebufferTexture2D(36160,36096,
+3553,h,0);else if(1027===e.depthTexture.format)a.framebufferTexture2D(36160,33306,3553,h,0);else throw Error("Unknown depthTexture format");}else if(l)for(h.__webglDepthbuffer=[],l=0;6>l;l++)a.bindFramebuffer(36160,h.__webglFramebuffer[l]),h.__webglDepthbuffer[l]=a.createRenderbuffer(),ia(h.__webglDepthbuffer[l],e);else a.bindFramebuffer(36160,h.__webglFramebuffer),h.__webglDepthbuffer=a.createRenderbuffer(),ia(h.__webglDepthbuffer,e);a.bindFramebuffer(36160,null)}};this.updateRenderTargetMipmap=
+function(a){var b=a.texture,e=m(a)||ma;if(r(b,e)){e=a.isWebGLRenderTargetCube?34067:3553;var f=d.get(b).__webglTexture;c.bindTexture(e,f);q(e,b,a.width,a.height);c.bindTexture(e,null)}};this.updateMultisampleRenderTarget=function(b){if(b.isWebGLMultisampleRenderTarget)if(ma){var c=d.get(b);a.bindFramebuffer(36008,c.__webglMultisampledFramebuffer);a.bindFramebuffer(36009,c.__webglFramebuffer);c=b.width;var e=b.height,f=16384;b.depthBuffer&&(f|=256);b.stencilBuffer&&(f|=1024);a.blitFramebuffer(0,0,
+c,e,0,0,c,e,f,9728)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.")};this.safeSetTexture2D=function(a,b){a&&a.isWebGLRenderTarget&&(!1===Q&&(console.warn("THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead."),Q=!0),a=a.texture);n(a,b)};this.safeSetTextureCube=function(a,b){a&&a.isWebGLRenderTargetCube&&(!1===S&&(console.warn("THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead."),
+S=!0),a=a.texture);a&&a.isCubeTexture||Array.isArray(a.image)&&6===a.image.length?w(a,b):x(a,b)}}function Kh(a,b,c){var d=c.isWebGL2;return{convert:function(a){if(1009===a)return 5121;if(1017===a)return 32819;if(1018===a)return 32820;if(1019===a)return 33635;if(1010===a)return 5120;if(1011===a)return 5122;if(1012===a)return 5123;if(1013===a)return 5124;if(1014===a)return 5125;if(1015===a)return 5126;if(1016===a){if(d)return 5131;var c=b.get("OES_texture_half_float");return null!==c?c.HALF_FLOAT_OES:
+null}if(1021===a)return 6406;if(1022===a)return 6407;if(1023===a)return 6408;if(1024===a)return 6409;if(1025===a)return 6410;if(1026===a)return 6402;if(1027===a)return 34041;if(1028===a)return 6403;if(33776===a||33777===a||33778===a||33779===a)if(c=b.get("WEBGL_compressed_texture_s3tc"),null!==c){if(33776===a)return c.COMPRESSED_RGB_S3TC_DXT1_EXT;if(33777===a)return c.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(33778===a)return c.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(33779===a)return c.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;
+if(35840===a||35841===a||35842===a||35843===a)if(c=b.get("WEBGL_compressed_texture_pvrtc"),null!==c){if(35840===a)return c.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(35841===a)return c.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(35842===a)return c.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(35843===a)return c.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(36196===a)return c=b.get("WEBGL_compressed_texture_etc1"),null!==c?c.COMPRESSED_RGB_ETC1_WEBGL:null;if(37808===a||37809===a||37810===a||37811===a||37812===a||37813===
+a||37814===a||37815===a||37816===a||37817===a||37818===a||37819===a||37820===a||37821===a)return c=b.get("WEBGL_compressed_texture_astc"),null!==c?a:null;if(1020===a){if(d)return 34042;c=b.get("WEBGL_depth_texture");return null!==c?c.UNSIGNED_INT_24_8_WEBGL:null}}}}function fg(a,b,c,d){la.call(this,a,b,d);this.stencilBuffer=this.depthBuffer=!1;this.numViews=c}function lk(a,b){function c(a){if(a.isArrayCamera)return a.cameras;r[0]=a;return r}function d(a){if(void 0===a.isArrayCamera)return!0;a=a.cameras;
+if(a.length>p)return!1;for(var b=1,c=a.length;b<c;b++)if(a[0].viewport.z!==a[b].viewport.z||a[0].viewport.w!==a[b].viewport.w)return!1;return!0}var e=a.extensions,f=a.properties,g,h,l,m,r,q,k,p=0;this.isAvailable=function(){if(void 0===k){var a=e.get("OVR_multiview2");if(k=null!==a&&!1===b.getContextAttributes().antialias)for(p=b.getParameter(a.MAX_VIEWS_OVR),g=new fg(0,0,2),q=new B,m=[],l=[],r=[],a=0;a<p;a++)m[a]=new Q,l[a]=new Z}return k};this.attachCamera=function(b){if(!1!==d(b)){(h=a.getRenderTarget())?
+q.set(h.width,h.height):a.getDrawingBufferSize(q);if(b.isArrayCamera){var c=b.cameras[0].viewport;g.setSize(c.z,c.w);g.setNumViews(b.cameras.length)}else g.setSize(q.x,q.y),g.setNumViews(2);a.setRenderTarget(g)}};this.detachCamera=function(c){if(g===a.getRenderTarget()){a.setRenderTarget(h);var d=g,e=d.numViews,l=f.get(d).__webglViewFramebuffers,m=d.width;d=d.height;if(c.isArrayCamera)for(var r=0;r<e;r++){var k=c.cameras[r].viewport,u=k.x,p=k.y,t=u+k.z;k=p+k.w;b.bindFramebuffer(36008,l[r]);b.blitFramebuffer(0,
+0,m,d,u,p,t,k,16384,9728)}else b.bindFramebuffer(36008,l[0]),b.blitFramebuffer(0,0,m,d,0,0,q.x,q.y,16384,9728)}};this.updateCameraProjectionMatricesUniform=function(a,d){a=c(a);for(var e=0;e<a.length;e++)m[e].copy(a[e].projectionMatrix);d.setValue(b,"projectionMatrices",m)};this.updateCameraViewMatricesUniform=function(a,d){a=c(a);for(var e=0;e<a.length;e++)m[e].copy(a[e].matrixWorldInverse);d.setValue(b,"viewMatrices",m)};this.updateObjectMatricesUniforms=function(a,d,e){d=c(d);for(var f=0;f<d.length;f++)m[f].multiplyMatrices(d[f].matrixWorldInverse,
+a.matrixWorld),l[f].getNormalMatrix(m[f]);e.setValue(b,"modelViewMatrices",m);e.setValue(b,"normalMatrices",l)}}function Hc(){D.call(this);this.type="Group"}function Kd(a){U.call(this);this.cameras=a||[]}function Lh(a,b,c){Mh.setFromMatrixPosition(b.matrixWorld);Nh.setFromMatrixPosition(c.matrixWorld);var d=Mh.distanceTo(Nh),e=b.projectionMatrix.elements,f=c.projectionMatrix.elements,g=e[14]/(e[10]-1);c=e[14]/(e[10]+1);var h=(e[9]+1)/e[5],l=(e[9]-1)/e[5],m=(e[8]-1)/e[0],r=(f[8]+1)/f[0];e=g*m;f=g*
+r;r=d/(-m+r);m=r*-m;b.matrixWorld.decompose(a.position,a.quaternion,a.scale);a.translateX(m);a.translateZ(r);a.matrixWorld.compose(a.position,a.quaternion,a.scale);a.matrixWorldInverse.getInverse(a.matrixWorld);b=g+r;g=c+r;a.projectionMatrix.makePerspective(e-m,f+(d-m),h*c/g*b,l*c/g*b,b,g)}function gg(a){function b(){return null!==h&&!0===h.isPresenting}function c(){if(b()){var c=h.getEyeParameters("left");e=2*c.renderWidth*p;f=c.renderHeight*p;Ca=a.getPixelRatio();a.getSize(z);a.setDrawingBufferSize(e,
+f,1);x.viewport.set(0,0,e/2,f);F.viewport.set(e/2,0,e/2,f);A.start();g.dispatchEvent({type:"sessionstart"})}else g.enabled&&a.setDrawingBufferSize(z.width,z.height,Ca),A.stop(),g.dispatchEvent({type:"sessionend"})}function d(a,b){null!==b&&4===b.length&&a.set(b[0]*e,b[1]*f,b[2]*e,b[3]*f)}var e,f,g=this,h=null,l=null,m=null,r=[],q=new Q,k=new Q,p=1,t="local-floor";"undefined"!==typeof window&&"VRFrameData"in window&&(l=new window.VRFrameData,window.addEventListener("vrdisplaypresentchange",c,!1));
+var v=new Q,y=new wa,w=new n,x=new U;x.viewport=new da;x.layers.enable(1);var F=new U;F.viewport=new da;F.layers.enable(2);var H=new Kd([x,F]);H.layers.enable(1);H.layers.enable(2);var z=new B,Ca,ia=[];this.enabled=!1;this.getController=function(a){var b=r[a];void 0===b&&(b=new Hc,b.matrixAutoUpdate=!1,b.visible=!1,r[a]=b);return b};this.getDevice=function(){return h};this.setDevice=function(a){void 0!==a&&(h=a);A.setContext(a)};this.setFramebufferScaleFactor=function(a){p=a};this.setReferenceSpaceType=
+function(a){t=a};this.setPoseTarget=function(a){void 0!==a&&(m=a)};this.getCamera=function(a){var c="local-floor"===t?1.6:0;if(!1===b())return a.position.set(0,c,0),a.rotation.set(0,0,0),a;h.depthNear=a.near;h.depthFar=a.far;h.getFrameData(l);if("local-floor"===t){var e=h.stageParameters;e?q.fromArray(e.sittingToStandingTransform):q.makeTranslation(0,c,0)}c=l.pose;e=null!==m?m:a;e.matrix.copy(q);e.matrix.decompose(e.position,e.quaternion,e.scale);null!==c.orientation&&(y.fromArray(c.orientation),
+e.quaternion.multiply(y));null!==c.position&&(y.setFromRotationMatrix(q),w.fromArray(c.position),w.applyQuaternion(y),e.position.add(w));e.updateMatrixWorld();x.near=a.near;F.near=a.near;x.far=a.far;F.far=a.far;x.matrixWorldInverse.fromArray(l.leftViewMatrix);F.matrixWorldInverse.fromArray(l.rightViewMatrix);k.getInverse(q);"local-floor"===t&&(x.matrixWorldInverse.multiply(k),F.matrixWorldInverse.multiply(k));a=e.parent;null!==a&&(v.getInverse(a.matrixWorld),x.matrixWorldInverse.multiply(v),F.matrixWorldInverse.multiply(v));
+x.matrixWorld.getInverse(x.matrixWorldInverse);F.matrixWorld.getInverse(F.matrixWorldInverse);x.projectionMatrix.fromArray(l.leftProjectionMatrix);F.projectionMatrix.fromArray(l.rightProjectionMatrix);Lh(H,x,F);a=h.getLayers();a.length&&(a=a[0],d(x.viewport,a.leftBounds),d(F.viewport,a.rightBounds));a:for(a=0;a<r.length;a++){c=r[a];b:{e=a;for(var f=navigator.getGamepads&&navigator.getGamepads(),g=0,u=f.length;g<u;g++){var p=f[g];if(p&&("Daydream Controller"===p.id||"Gear VR Controller"===p.id||"Oculus Go Controller"===
+p.id||"OpenVR Gamepad"===p.id||p.id.startsWith("Oculus Touch")||p.id.startsWith("HTC Vive Focus")||p.id.startsWith("Spatial Controller"))){var n=p.hand;if(0===e&&(""===n||"right"===n)||1===e&&"left"===n){e=p;break b}}}e=void 0}if(void 0!==e&&void 0!==e.pose){if(null===e.pose)break a;f=e.pose;!1===f.hasPosition&&c.position.set(.2,-.6,-.05);null!==f.position&&c.position.fromArray(f.position);null!==f.orientation&&c.quaternion.fromArray(f.orientation);c.matrix.compose(c.position,c.quaternion,c.scale);
+c.matrix.premultiply(q);c.matrix.decompose(c.position,c.quaternion,c.scale);c.matrixWorldNeedsUpdate=!0;c.visible=!0;f="Daydream Controller"===e.id?0:1;void 0===ia[a]&&(ia[a]=!1);ia[a]!==e.buttons[f].pressed&&(ia[a]=e.buttons[f].pressed,!0===ia[a]?c.dispatchEvent({type:"selectstart"}):(c.dispatchEvent({type:"selectend"}),c.dispatchEvent({type:"select"})))}else c.visible=!1}return H};this.getStandingMatrix=function(){return q};this.isPresenting=b;var A=new ag;this.setAnimationLoop=function(a){A.setAnimationLoop(a);
+b()&&A.start()};this.submitFrame=function(){b()&&h.submitFrame()};this.dispose=function(){"undefined"!==typeof window&&window.removeEventListener("vrdisplaypresentchange",c)};this.setFrameOfReferenceType=function(){console.warn("THREE.WebVRManager: setFrameOfReferenceType() has been deprecated.")}}function Oh(a,b){function c(){return null!==m&&null!==r}function d(a){for(var b=0;b<p.length;b++)t[b]===a.inputSource&&p[b].dispatchEvent({type:a.type})}function e(){a.setFramebuffer(null);a.setRenderTarget(a.getRenderTarget());
+F.stop();l.dispatchEvent({type:"sessionend"})}function f(a){r=a;F.setContext(m);F.start();l.dispatchEvent({type:"sessionstart"})}function g(){for(var a=0;a<p.length;a++){var b=a;a:{var c=m.inputSources;for(var d=0;d<c.length;d++){var e=c[d],f=e.handedness;if(0===a&&("none"===f||"right"===f)){c=e;break a}if(1===a&&"left"===f){c=e;break a}}c=void 0}t[b]=c}}function h(a,b){null===b?a.matrixWorld.copy(a.matrix):a.matrixWorld.multiplyMatrices(b.matrixWorld,a.matrix);a.matrixWorldInverse.getInverse(a.matrixWorld)}
+var l=this,m=null,r=null,q="local-floor",k=null,p=[],t=[],n=new U;n.layers.enable(1);n.viewport=new da;var y=new U;y.layers.enable(2);y.viewport=new da;var w=new Kd([n,y]);w.layers.enable(1);w.layers.enable(2);this.enabled=!1;this.getController=function(a){var b=p[a];void 0===b&&(b=new Hc,b.matrixAutoUpdate=!1,b.visible=!1,p[a]=b);return b};this.setFramebufferScaleFactor=function(){};this.setReferenceSpaceType=function(a){q=a};this.getSession=function(){return m};this.setSession=function(a){m=a;null!==
+m&&(m.addEventListener("select",d),m.addEventListener("selectstart",d),m.addEventListener("selectend",d),m.addEventListener("end",e),m.updateRenderState({baseLayer:new XRWebGLLayer(m,b)}),m.requestReferenceSpace(q).then(f),m.addEventListener("inputsourceschange",g),g())};this.getCamera=function(a){if(c()){var b=a.parent,d=w.cameras;h(w,b);for(var e=0;e<d.length;e++)h(d[e],b);a.matrixWorld.copy(w.matrixWorld);a=a.children;e=0;for(b=a.length;e<b;e++)a[e].updateMatrixWorld(!0);Lh(w,n,y);return w}return a};
+this.isPresenting=c;var x=null,F=new ag;F.setAnimationLoop(function(b,c){k=c.getViewerPose(r);if(null!==k){var d=k.views,e=m.renderState.baseLayer;a.setFramebuffer(e.framebuffer);for(var f=0;f<d.length;f++){var g=d[f],h=e.getViewport(g),l=w.cameras[f];l.matrix.fromArray(g.transform.inverse.matrix).getInverse(l.matrix);l.projectionMatrix.fromArray(g.projectionMatrix);l.viewport.set(h.x,h.y,h.width,h.height);0===f&&w.matrix.copy(l.matrix)}}for(f=0;f<p.length;f++){d=p[f];if(e=t[f])if(e=c.getPose(e.targetRaySpace,
+r),null!==e){d.matrix.fromArray(e.transform.matrix);d.matrix.decompose(d.position,d.rotation,d.scale);d.visible=!0;continue}d.visible=!1}x&&x(b)});this.setAnimationLoop=function(a){x=a};this.dispose=function(){};this.getStandingMatrix=function(){console.warn("THREE.WebXRManager: getStandingMatrix() is no longer needed.");return new Q};this.getDevice=function(){console.warn("THREE.WebXRManager: getDevice() has been deprecated.")};this.setDevice=function(){console.warn("THREE.WebXRManager: setDevice() has been deprecated.")};
+this.setFrameOfReferenceType=function(){console.warn("THREE.WebXRManager: setFrameOfReferenceType() has been deprecated.")};this.submitFrame=function(){}}function hg(a){var b;function c(){qa=new bj(K);Fa=new $i(K,qa,a);!1===Fa.isWebGL2&&(qa.get("WEBGL_depth_texture"),qa.get("OES_texture_float"),qa.get("OES_texture_half_float"),qa.get("OES_texture_half_float_linear"),qa.get("OES_standard_derivatives"),qa.get("OES_element_index_uint"),qa.get("ANGLE_instanced_arrays"));qa.get("OES_texture_float_linear");
+la=new Kh(K,qa,Fa);aa=new jk(K,qa,Fa);aa.scissor(ob.copy(U).multiplyScalar(fa).floor());aa.viewport(T.copy(ea).multiplyScalar(fa).floor());ca=new ej(K);Z=new ak;ba=new kk(K,qa,aa,Z,Fa,la,ca);ra=new Xi(K);xa=new cj(K,ra,ca);sa=new hj(K,xa,ra,ca);ya=new gj(K);pa=new Zj(C,qa,Fa);wa=new dk;va=new ik;na=new Yi(C,aa,sa,A);Aa=new Zi(K,qa,ca,Fa);Ba=new dj(K,qa,ca,Fa);ca.programs=pa.programs;C.capabilities=Fa;C.extensions=qa;C.properties=Z;C.renderLists=wa;C.state=aa;C.info=ca}function d(a){a.preventDefault();
+console.log("THREE.WebGLRenderer: Context Lost.");N=!0}function e(){console.log("THREE.WebGLRenderer: Context Restored.");N=!1;c()}function f(a){a=a.target;a.removeEventListener("dispose",f);g(a);Z.remove(a)}function g(a){var b=Z.get(a).program;a.program=void 0;void 0!==b&&pa.releaseProgram(b)}function h(a,b){a.render(function(a){C.renderBufferImmediate(a,b)})}function l(a,b,c,d){if(!1!==a.visible){if(a.layers.test(b.layers))if(a.isGroup)c=a.renderOrder;else if(a.isLOD)!0===a.autoUpdate&&a.update(b);
+else if(a.isLight)G.pushLight(a),a.castShadow&&G.pushShadow(a);else if(a.isSprite){if(!a.frustumCulled||eg.intersectsSprite(a)){d&&Fb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Jd);var e=sa.update(a),f=a.material;f.visible&&I.push(a,e,f,c,Fb.z,null)}}else if(a.isImmediateRenderObject)d&&Fb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Jd),I.push(a,null,a.material,c,Fb.z,null);else if(a.isMesh||a.isLine||a.isPoints)if(a.isSkinnedMesh&&a.skeleton.frame!==ca.render.frame&&(a.skeleton.update(),
+a.skeleton.frame=ca.render.frame),!a.frustumCulled||eg.intersectsObject(a))if(d&&Fb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Jd),e=sa.update(a),f=a.material,Array.isArray(f))for(var g=e.groups,h=0,m=g.length;h<m;h++){var r=g[h],q=f[r.materialIndex];q&&q.visible&&I.push(a,e,q,c,Fb.z,r)}else f.visible&&I.push(a,e,f,c,Fb.z,null);a=a.children;h=0;for(m=a.length;h<m;h++)l(a[h],b,c,d)}}function m(a,b,c,d){for(var e=0,f=a.length;e<f;e++){var g=a[e],h=g.object,l=g.geometry,m=void 0===d?g.material:
+d;g=g.group;if(c.isArrayCamera)if($b=c,ja.enabled&&ua.isAvailable())r(h,b,c,l,m,g);else for(var q=c.cameras,k=0,p=q.length;k<p;k++){var u=q[k];h.layers.test(u.layers)&&(aa.viewport(T.copy(u.viewport)),G.setupLights(u),r(h,b,u,l,m,g))}else $b=null,r(h,b,c,l,m,g)}}function r(a,c,d,e,f,g){a.onBeforeRender(C,c,d,e,f,g);G=va.get(c,$b||d);a.modelViewMatrix.multiplyMatrices(d.matrixWorldInverse,a.matrixWorld);a.normalMatrix.getNormalMatrix(a.modelViewMatrix);if(a.isImmediateRenderObject){aa.setMaterial(f);
+var l=k(d,c.fog,f,a);Je=b=null;Y=!1;h(a,l)}else C.renderBufferDirect(d,c.fog,e,f,a,g);a.onAfterRender(C,c,d,e,f,g);G=va.get(c,$b||d)}function q(a,b,c){var d=Z.get(a),e=G.state.lights,h=e.state.version;c=pa.getParameters(a,e.state,G.state.shadowsArray,b,Pa.numPlanes,Pa.numIntersection,c);var l=pa.getProgramCacheKey(a,c),m=d.program,r=!0;if(void 0===m)a.addEventListener("dispose",f);else if(m.cacheKey!==l)g(a);else{if(d.lightsStateVersion!==h)d.lightsStateVersion=h;else if(void 0!==c.shaderID)return;
+r=!1}r&&(c.shaderID?(l=cb[c.shaderID],d.shader={name:a.type,uniforms:Xb(l.uniforms),vertexShader:l.vertexShader,fragmentShader:l.fragmentShader}):d.shader={name:a.type,uniforms:a.uniforms,vertexShader:a.vertexShader,fragmentShader:a.fragmentShader},a.onBeforeCompile(d.shader,C),l=pa.getProgramCacheKey(a,c),m=pa.acquireProgram(a,d.shader,c,l),d.program=m,a.program=m);c=m.getAttributes();if(a.morphTargets)for(l=a.numSupportedMorphTargets=0;l<C.maxMorphTargets;l++)0<=c["morphTarget"+l]&&a.numSupportedMorphTargets++;
+if(a.morphNormals)for(l=a.numSupportedMorphNormals=0;l<C.maxMorphNormals;l++)0<=c["morphNormal"+l]&&a.numSupportedMorphNormals++;c=d.shader.uniforms;if(!a.isShaderMaterial&&!a.isRawShaderMaterial||!0===a.clipping)d.numClippingPlanes=Pa.numPlanes,d.numIntersection=Pa.numIntersection,c.clippingPlanes=Pa.uniform;d.fog=b;d.needsLights=a.isMeshLambertMaterial||a.isMeshPhongMaterial||a.isMeshStandardMaterial||a.isShadowMaterial||a.isShaderMaterial&&!0===a.lights;d.lightsStateVersion=h;d.needsLights&&(c.ambientLightColor.value=
+e.state.ambient,c.lightProbe.value=e.state.probe,c.directionalLights.value=e.state.directional,c.spotLights.value=e.state.spot,c.rectAreaLights.value=e.state.rectArea,c.pointLights.value=e.state.point,c.hemisphereLights.value=e.state.hemi,c.directionalShadowMap.value=e.state.directionalShadowMap,c.directionalShadowMatrix.value=e.state.directionalShadowMatrix,c.spotShadowMap.value=e.state.spotShadowMap,c.spotShadowMatrix.value=e.state.spotShadowMatrix,c.pointShadowMap.value=e.state.pointShadowMap,
+c.pointShadowMatrix.value=e.state.pointShadowMatrix);a=d.program.getUniforms();a=Cb.seqWithValue(a.seq,c);d.uniformsList=a}function k(a,b,c,d){ba.resetTextureUnits();var e=Z.get(c),f=G.state.lights;He&&(ta||a!==X)&&Pa.setState(c.clippingPlanes,c.clipIntersection,c.clipShadows,a,e,a===X&&c.id===ha);!1===c.needsUpdate&&(void 0===e.program?c.needsUpdate=!0:c.fog&&e.fog!==b?c.needsUpdate=!0:e.needsLights&&e.lightsStateVersion!==f.state.version?c.needsUpdate=!0:void 0===e.numClippingPlanes||e.numClippingPlanes===
+Pa.numPlanes&&e.numIntersection===Pa.numIntersection||(c.needsUpdate=!0));c.needsUpdate&&(q(c,b,d),c.needsUpdate=!1);var g=!1,h=!1,l=!1;f=e.program;var m=f.getUniforms(),r=e.shader.uniforms;aa.useProgram(f.program)&&(l=h=g=!0);c.id!==ha&&(ha=c.id,h=!0);if(g||X!==a){0<f.numMultiviewViews?ua.updateCameraProjectionMatricesUniform(a,m):m.setValue(K,"projectionMatrix",a.projectionMatrix);Fa.logarithmicDepthBuffer&&m.setValue(K,"logDepthBufFC",2/(Math.log(a.far+1)/Math.LN2));X!==a&&(X=a,l=h=!0);if(c.isShaderMaterial||
+c.isMeshPhongMaterial||c.isMeshStandardMaterial||c.envMap)g=m.map.cameraPosition,void 0!==g&&g.setValue(K,Fb.setFromMatrixPosition(a.matrixWorld));if(c.isMeshPhongMaterial||c.isMeshLambertMaterial||c.isMeshBasicMaterial||c.isMeshStandardMaterial||c.isShaderMaterial||c.skinning)0<f.numMultiviewViews?ua.updateCameraViewMatricesUniform(a,m):m.setValue(K,"viewMatrix",a.matrixWorldInverse)}if(c.skinning&&(m.setOptional(K,d,"bindMatrix"),m.setOptional(K,d,"bindMatrixInverse"),g=d.skeleton)){var k=g.bones;
+if(Fa.floatVertexTextures){if(void 0===g.boneTexture){k=Math.sqrt(4*k.length);k=P.ceilPowerOfTwo(k);k=Math.max(k,4);var u=new Float32Array(k*k*4);u.set(g.boneMatrices);var n=new Yb(u,k,k,1023,1015);g.boneMatrices=u;g.boneTexture=n;g.boneTextureSize=k}m.setValue(K,"boneTexture",g.boneTexture,ba);m.setValue(K,"boneTextureSize",g.boneTextureSize)}else m.setOptional(K,g,"boneMatrices")}if(h||e.receiveShadow!==d.receiveShadow)e.receiveShadow=d.receiveShadow,m.setValue(K,"receiveShadow",d.receiveShadow);
+if(h){m.setValue(K,"toneMappingExposure",C.toneMappingExposure);m.setValue(K,"toneMappingWhitePoint",C.toneMappingWhitePoint);e.needsLights&&(h=l,r.ambientLightColor.needsUpdate=h,r.lightProbe.needsUpdate=h,r.directionalLights.needsUpdate=h,r.pointLights.needsUpdate=h,r.spotLights.needsUpdate=h,r.rectAreaLights.needsUpdate=h,r.hemisphereLights.needsUpdate=h);b&&c.fog&&(r.fogColor.value.copy(b.color),b.isFog?(r.fogNear.value=b.near,r.fogFar.value=b.far):b.isFogExp2&&(r.fogDensity.value=b.density));
+if(c.isMeshBasicMaterial)p(r,c);else if(c.isMeshLambertMaterial)p(r,c),c.emissiveMap&&(r.emissiveMap.value=c.emissiveMap);else if(c.isMeshPhongMaterial)p(r,c),c.isMeshToonMaterial?(t(r,c),c.gradientMap&&(r.gradientMap.value=c.gradientMap)):t(r,c);else if(c.isMeshStandardMaterial)p(r,c),c.isMeshPhysicalMaterial?(v(r,c),r.reflectivity.value=c.reflectivity,r.clearcoat.value=c.clearcoat,r.clearcoatRoughness.value=c.clearcoatRoughness,c.sheen&&r.sheen.value.copy(c.sheen),c.clearcoatNormalMap&&(r.clearcoatNormalScale.value.copy(c.clearcoatNormalScale),
+r.clearcoatNormalMap.value=c.clearcoatNormalMap,1===c.side&&r.clearcoatNormalScale.value.negate()),r.transparency.value=c.transparency):v(r,c);else if(c.isMeshMatcapMaterial)p(r,c),c.matcap&&(r.matcap.value=c.matcap),c.bumpMap&&(r.bumpMap.value=c.bumpMap,r.bumpScale.value=c.bumpScale,1===c.side&&(r.bumpScale.value*=-1)),c.normalMap&&(r.normalMap.value=c.normalMap,r.normalScale.value.copy(c.normalScale),1===c.side&&r.normalScale.value.negate()),c.displacementMap&&(r.displacementMap.value=c.displacementMap,
+r.displacementScale.value=c.displacementScale,r.displacementBias.value=c.displacementBias);else if(c.isMeshDepthMaterial)p(r,c),c.displacementMap&&(r.displacementMap.value=c.displacementMap,r.displacementScale.value=c.displacementScale,r.displacementBias.value=c.displacementBias);else if(c.isMeshDistanceMaterial)p(r,c),c.displacementMap&&(r.displacementMap.value=c.displacementMap,r.displacementScale.value=c.displacementScale,r.displacementBias.value=c.displacementBias),r.referencePosition.value.copy(c.referencePosition),
+r.nearDistance.value=c.nearDistance,r.farDistance.value=c.farDistance;else if(c.isMeshNormalMaterial)p(r,c),c.bumpMap&&(r.bumpMap.value=c.bumpMap,r.bumpScale.value=c.bumpScale,1===c.side&&(r.bumpScale.value*=-1)),c.normalMap&&(r.normalMap.value=c.normalMap,r.normalScale.value.copy(c.normalScale),1===c.side&&r.normalScale.value.negate()),c.displacementMap&&(r.displacementMap.value=c.displacementMap,r.displacementScale.value=c.displacementScale,r.displacementBias.value=c.displacementBias);else if(c.isLineBasicMaterial)r.diffuse.value.copy(c.color),
+r.opacity.value=c.opacity,c.isLineDashedMaterial&&(r.dashSize.value=c.dashSize,r.totalSize.value=c.dashSize+c.gapSize,r.scale.value=c.scale);else if(c.isPointsMaterial){r.diffuse.value.copy(c.color);r.opacity.value=c.opacity;r.size.value=c.size*fa;r.scale.value=.5*W;c.map&&(r.map.value=c.map);c.alphaMap&&(r.alphaMap.value=c.alphaMap);if(c.map)var y=c.map;else c.alphaMap&&(y=c.alphaMap);void 0!==y&&(!0===y.matrixAutoUpdate&&y.updateMatrix(),r.uvTransform.value.copy(y.matrix))}else if(c.isSpriteMaterial){r.diffuse.value.copy(c.color);
+r.opacity.value=c.opacity;r.rotation.value=c.rotation;c.map&&(r.map.value=c.map);c.alphaMap&&(r.alphaMap.value=c.alphaMap);if(c.map)var w=c.map;else c.alphaMap&&(w=c.alphaMap);void 0!==w&&(!0===w.matrixAutoUpdate&&w.updateMatrix(),r.uvTransform.value.copy(w.matrix))}else c.isShadowMaterial&&(r.color.value.copy(c.color),r.opacity.value=c.opacity);void 0!==r.ltc_1&&(r.ltc_1.value=L.LTC_1);void 0!==r.ltc_2&&(r.ltc_2.value=L.LTC_2);Cb.upload(K,e.uniformsList,r,ba);c.isShaderMaterial&&(c.uniformsNeedUpdate=
+!1)}c.isShaderMaterial&&!0===c.uniformsNeedUpdate&&(Cb.upload(K,e.uniformsList,r,ba),c.uniformsNeedUpdate=!1);c.isSpriteMaterial&&m.setValue(K,"center",d.center);0<f.numMultiviewViews?ua.updateObjectMatricesUniforms(d,a,m):(m.setValue(K,"modelViewMatrix",d.modelViewMatrix),m.setValue(K,"normalMatrix",d.normalMatrix));m.setValue(K,"modelMatrix",d.matrixWorld);return f}function p(a,b){a.opacity.value=b.opacity;b.color&&a.diffuse.value.copy(b.color);b.emissive&&a.emissive.value.copy(b.emissive).multiplyScalar(b.emissiveIntensity);
+b.map&&(a.map.value=b.map);b.alphaMap&&(a.alphaMap.value=b.alphaMap);b.specularMap&&(a.specularMap.value=b.specularMap);b.envMap&&(a.envMap.value=b.envMap,a.flipEnvMap.value=b.envMap.isCubeTexture?-1:1,a.reflectivity.value=b.reflectivity,a.refractionRatio.value=b.refractionRatio,a.maxMipLevel.value=Z.get(b.envMap).__maxMipLevel);b.lightMap&&(a.lightMap.value=b.lightMap,a.lightMapIntensity.value=b.lightMapIntensity);b.aoMap&&(a.aoMap.value=b.aoMap,a.aoMapIntensity.value=b.aoMapIntensity);if(b.map)var c=
+b.map;else b.specularMap?c=b.specularMap:b.displacementMap?c=b.displacementMap:b.normalMap?c=b.normalMap:b.bumpMap?c=b.bumpMap:b.roughnessMap?c=b.roughnessMap:b.metalnessMap?c=b.metalnessMap:b.alphaMap?c=b.alphaMap:b.emissiveMap&&(c=b.emissiveMap);void 0!==c&&(c.isWebGLRenderTarget&&(c=c.texture),!0===c.matrixAutoUpdate&&c.updateMatrix(),a.uvTransform.value.copy(c.matrix))}function t(a,b){a.specular.value.copy(b.specular);a.shininess.value=Math.max(b.shininess,1E-4);b.emissiveMap&&(a.emissiveMap.value=
+b.emissiveMap);b.bumpMap&&(a.bumpMap.value=b.bumpMap,a.bumpScale.value=b.bumpScale,1===b.side&&(a.bumpScale.value*=-1));b.normalMap&&(a.normalMap.value=b.normalMap,a.normalScale.value.copy(b.normalScale),1===b.side&&a.normalScale.value.negate());b.displacementMap&&(a.displacementMap.value=b.displacementMap,a.displacementScale.value=b.displacementScale,a.displacementBias.value=b.displacementBias)}function v(a,b){a.roughness.value=b.roughness;a.metalness.value=b.metalness;b.roughnessMap&&(a.roughnessMap.value=
+b.roughnessMap);b.metalnessMap&&(a.metalnessMap.value=b.metalnessMap);b.emissiveMap&&(a.emissiveMap.value=b.emissiveMap);b.bumpMap&&(a.bumpMap.value=b.bumpMap,a.bumpScale.value=b.bumpScale,1===b.side&&(a.bumpScale.value*=-1));b.normalMap&&(a.normalMap.value=b.normalMap,a.normalScale.value.copy(b.normalScale),1===b.side&&a.normalScale.value.negate());b.displacementMap&&(a.displacementMap.value=b.displacementMap,a.displacementScale.value=b.displacementScale,a.displacementBias.value=b.displacementBias);
+b.envMap&&(a.envMapIntensity.value=b.envMapIntensity)}a=a||{};var y=void 0!==a.canvas?a.canvas:document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),w=void 0!==a.context?a.context:null,x=void 0!==a.alpha?a.alpha:!1,F=void 0!==a.depth?a.depth:!0,H=void 0!==a.stencil?a.stencil:!0,z=void 0!==a.antialias?a.antialias:!1,A=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:!0,D=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,E=void 0!==a.powerPreference?a.powerPreference:"default",
+J=void 0!==a.failIfMajorPerformanceCaveat?a.failIfMajorPerformanceCaveat:!1,I=null,G=null;this.domElement=y;this.debug={checkShaderErrors:!0};this.sortObjects=this.autoClearStencil=this.autoClearDepth=this.autoClearColor=this.autoClear=!0;this.clippingPlanes=[];this.localClippingEnabled=!1;this.gammaFactor=2;this.physicallyCorrectLights=this.gammaOutput=this.gammaInput=!1;this.toneMappingWhitePoint=this.toneMappingExposure=this.toneMapping=1;this.maxMorphTargets=8;this.maxMorphNormals=4;var C=this,
+N=!1,O=null,S=0,V=0,R=null,Ie=null,ha=-1;var Je=b=null;var Y=!1;var X=null,$b=null,T=new da,ob=new da,ka=null,M=y.width,W=y.height,fa=1,ea=new da(0,0,M,W),U=new da(0,0,M,W),oa=!1,eg=new Ed,Pa=new aj,He=!1,ta=!1,Jd=new Q,Fb=new n;try{x={alpha:x,depth:F,stencil:H,antialias:z,premultipliedAlpha:A,preserveDrawingBuffer:D,powerPreference:E,failIfMajorPerformanceCaveat:J,xrCompatible:!0};y.addEventListener("webglcontextlost",d,!1);y.addEventListener("webglcontextrestored",e,!1);var K=w||y.getContext("webgl",
+x)||y.getContext("experimental-webgl",x);if(null===K){if(null!==y.getContext("webgl"))throw Error("Error creating WebGL context with your selected attributes.");throw Error("Error creating WebGL context.");}void 0===K.getShaderPrecisionFormat&&(K.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(Ph){throw console.error("THREE.WebGLRenderer: "+Ph.message),Ph;}var qa,Fa,aa,ca,Z,ba,ra,xa,sa,pa,wa,va,na,ya,Aa,Ba,la;c();var ja="undefined"!==typeof navigator&&"xr"in navigator&&
+"isSessionSupported"in navigator.xr?new Oh(C,K):new gg(C);this.vr=ja;var ua=new lk(C,K),Ea=new Ih(C,sa,Fa.maxTextureSize);this.shadowMap=Ea;this.getContext=function(){return K};this.getContextAttributes=function(){return K.getContextAttributes()};this.forceContextLoss=function(){var a=qa.get("WEBGL_lose_context");a&&a.loseContext()};this.forceContextRestore=function(){var a=qa.get("WEBGL_lose_context");a&&a.restoreContext()};this.getPixelRatio=function(){return fa};this.setPixelRatio=function(a){void 0!==
+a&&(fa=a,this.setSize(M,W,!1))};this.getSize=function(a){void 0===a&&(console.warn("WebGLRenderer: .getsize() now requires a Vector2 as an argument"),a=new B);return a.set(M,W)};this.setSize=function(a,b,c){ja.isPresenting()?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(M=a,W=b,y.width=Math.floor(a*fa),y.height=Math.floor(b*fa),!1!==c&&(y.style.width=a+"px",y.style.height=b+"px"),this.setViewport(0,0,a,b))};this.getDrawingBufferSize=function(a){void 0===a&&
+(console.warn("WebGLRenderer: .getdrawingBufferSize() now requires a Vector2 as an argument"),a=new B);return a.set(M*fa,W*fa).floor()};this.setDrawingBufferSize=function(a,b,c){M=a;W=b;fa=c;y.width=Math.floor(a*c);y.height=Math.floor(b*c);this.setViewport(0,0,a,b)};this.getCurrentViewport=function(a){void 0===a&&(console.warn("WebGLRenderer: .getCurrentViewport() now requires a Vector4 as an argument"),a=new da);return a.copy(T)};this.getViewport=function(a){return a.copy(ea)};this.setViewport=function(a,
+b,c,d){a.isVector4?ea.set(a.x,a.y,a.z,a.w):ea.set(a,b,c,d);aa.viewport(T.copy(ea).multiplyScalar(fa).floor())};this.getScissor=function(a){return a.copy(U)};this.setScissor=function(a,b,c,d){a.isVector4?U.set(a.x,a.y,a.z,a.w):U.set(a,b,c,d);aa.scissor(ob.copy(U).multiplyScalar(fa).floor())};this.getScissorTest=function(){return oa};this.setScissorTest=function(a){aa.setScissorTest(oa=a)};this.getClearColor=function(){return na.getClearColor()};this.setClearColor=function(){na.setClearColor.apply(na,
+arguments)};this.getClearAlpha=function(){return na.getClearAlpha()};this.setClearAlpha=function(){na.setClearAlpha.apply(na,arguments)};this.clear=function(a,b,c){var d=0;if(void 0===a||a)d|=16384;if(void 0===b||b)d|=256;if(void 0===c||c)d|=1024;K.clear(d)};this.clearColor=function(){this.clear(!0,!1,!1)};this.clearDepth=function(){this.clear(!1,!0,!1)};this.clearStencil=function(){this.clear(!1,!1,!0)};this.dispose=function(){y.removeEventListener("webglcontextlost",d,!1);y.removeEventListener("webglcontextrestored",
+e,!1);wa.dispose();va.dispose();Z.dispose();sa.dispose();ja.dispose();za.stop()};this.renderBufferImmediate=function(a,b){aa.initAttributes();var c=Z.get(a);a.hasPositions&&!c.position&&(c.position=K.createBuffer());a.hasNormals&&!c.normal&&(c.normal=K.createBuffer());a.hasUvs&&!c.uv&&(c.uv=K.createBuffer());a.hasColors&&!c.color&&(c.color=K.createBuffer());b=b.getAttributes();a.hasPositions&&(K.bindBuffer(34962,c.position),K.bufferData(34962,a.positionArray,35048),aa.enableAttribute(b.position),
+K.vertexAttribPointer(b.position,3,5126,!1,0,0));a.hasNormals&&(K.bindBuffer(34962,c.normal),K.bufferData(34962,a.normalArray,35048),aa.enableAttribute(b.normal),K.vertexAttribPointer(b.normal,3,5126,!1,0,0));a.hasUvs&&(K.bindBuffer(34962,c.uv),K.bufferData(34962,a.uvArray,35048),aa.enableAttribute(b.uv),K.vertexAttribPointer(b.uv,2,5126,!1,0,0));a.hasColors&&(K.bindBuffer(34962,c.color),K.bufferData(34962,a.colorArray,35048),aa.enableAttribute(b.color),K.vertexAttribPointer(b.color,3,5126,!1,0,0));
+aa.disableUnusedAttributes();K.drawArrays(4,0,a.count);a.count=0};this.renderBufferDirect=function(a,c,d,e,f,g){var h=f.isMesh&&0>f.matrixWorld.determinant();aa.setMaterial(e,h);var l=k(a,c,e,f),m=!1;if(b!==d.id||Je!==l.id||Y!==(!0===e.wireframe))b=d.id,Je=l.id,Y=!0===e.wireframe,m=!0;f.morphTargetInfluences&&(ya.update(f,d,e,l),m=!0);h=d.index;var r=d.attributes.position;c=1;!0===e.wireframe&&(h=xa.getWireframeAttribute(d),c=2);a=Aa;if(null!==h){var q=ra.get(h);a=Ba;a.setIndex(q)}if(m){if(!1!==Fa.isWebGL2||
+!f.isInstancedMesh&&!d.isInstancedBufferGeometry||null!==qa.get("ANGLE_instanced_arrays")){aa.initAttributes();m=d.attributes;l=l.getAttributes();var u=e.defaultAttributeValues;for(H in l){var p=l[H];if(0<=p){var t=m[H];if(void 0!==t){var n=t.normalized,v=t.itemSize,y=ra.get(t);if(void 0!==y){var w=y.buffer,x=y.type;y=y.bytesPerElement;if(t.isInterleavedBufferAttribute){var z=t.data,F=z.stride;t=t.offset;z&&z.isInstancedInterleavedBuffer?(aa.enableAttributeAndDivisor(p,z.meshPerAttribute),void 0===
+d.maxInstancedCount&&(d.maxInstancedCount=z.meshPerAttribute*z.count)):aa.enableAttribute(p);K.bindBuffer(34962,w);K.vertexAttribPointer(p,v,x,n,F*y,t*y)}else t.isInstancedBufferAttribute?(aa.enableAttributeAndDivisor(p,t.meshPerAttribute),void 0===d.maxInstancedCount&&(d.maxInstancedCount=t.meshPerAttribute*t.count)):aa.enableAttribute(p),K.bindBuffer(34962,w),K.vertexAttribPointer(p,v,x,n,0,0)}}else if("instanceMatrix"===H)y=ra.get(f.instanceMatrix),void 0!==y&&(w=y.buffer,x=y.type,aa.enableAttributeAndDivisor(p+
+0,1),aa.enableAttributeAndDivisor(p+1,1),aa.enableAttributeAndDivisor(p+2,1),aa.enableAttributeAndDivisor(p+3,1),K.bindBuffer(34962,w),K.vertexAttribPointer(p+0,4,x,!1,64,0),K.vertexAttribPointer(p+1,4,x,!1,64,16),K.vertexAttribPointer(p+2,4,x,!1,64,32),K.vertexAttribPointer(p+3,4,x,!1,64,48));else if(void 0!==u&&(n=u[H],void 0!==n))switch(n.length){case 2:K.vertexAttrib2fv(p,n);break;case 3:K.vertexAttrib3fv(p,n);break;case 4:K.vertexAttrib4fv(p,n);break;default:K.vertexAttrib1fv(p,n)}}}aa.disableUnusedAttributes()}null!==
+h&&K.bindBuffer(34963,q.buffer)}q=Infinity;null!==h?q=h.count:void 0!==r&&(q=r.count);h=d.drawRange.start*c;r=null!==g?g.start*c:0;var H=Math.max(h,r);g=Math.max(0,Math.min(q,h+d.drawRange.count*c,r+(null!==g?g.count*c:Infinity))-1-H+1);if(0!==g){if(f.isMesh)if(!0===e.wireframe)aa.setLineWidth(e.wireframeLinewidth*(null===R?fa:1)),a.setMode(1);else switch(f.drawMode){case 0:a.setMode(4);break;case 1:a.setMode(5);break;case 2:a.setMode(6)}else f.isLine?(e=e.linewidth,void 0===e&&(e=1),aa.setLineWidth(e*
+(null===R?fa:1)),f.isLineSegments?a.setMode(1):f.isLineLoop?a.setMode(2):a.setMode(3)):f.isPoints?a.setMode(0):f.isSprite&&a.setMode(4);f.isInstancedMesh?a.renderInstances(d,H,g,f.count):d.isInstancedBufferGeometry?a.renderInstances(d,H,g,d.maxInstancedCount):a.render(H,g)}};this.compile=function(a,b){G=va.get(a,b);G.init();a.traverse(function(a){a.isLight&&(G.pushLight(a),a.castShadow&&G.pushShadow(a))});G.setupLights(b);a.traverse(function(b){if(b.material)if(Array.isArray(b.material))for(var c=
+0;c<b.material.length;c++)q(b.material[c],a.fog,b);else q(b.material,a.fog,b)})};var Da=null,za=new ag;za.setAnimationLoop(function(a){ja.isPresenting()||Da&&Da(a)});"undefined"!==typeof window&&za.setContext(window);this.setAnimationLoop=function(a){Da=a;ja.setAnimationLoop(a);za.start()};this.render=function(a,c,d,e){if(void 0!==d){console.warn("THREE.WebGLRenderer.render(): the renderTarget argument has been removed. Use .setRenderTarget() instead.");var f=d}if(void 0!==e){console.warn("THREE.WebGLRenderer.render(): the forceClear argument has been removed. Use .clear() instead.");
+var g=e}c&&c.isCamera?N||(Je=b=null,Y=!1,ha=-1,X=null,!0===a.autoUpdate&&a.updateMatrixWorld(),null===c.parent&&c.updateMatrixWorld(),ja.enabled&&(c=ja.getCamera(c)),G=va.get(a,c),G.init(),a.onBeforeRender(C,a,c,f||R),Jd.multiplyMatrices(c.projectionMatrix,c.matrixWorldInverse),eg.setFromMatrix(Jd),ta=this.localClippingEnabled,He=Pa.init(this.clippingPlanes,ta,c),I=wa.get(a,c),I.init(),l(a,c,0,C.sortObjects),!0===C.sortObjects&&I.sort(),He&&Pa.beginShadows(),Ea.render(G.state.shadowsArray,a,c),G.setupLights(c),
+He&&Pa.endShadows(),this.info.autoReset&&this.info.reset(),void 0!==f&&this.setRenderTarget(f),ja.enabled&&ua.isAvailable()&&ua.attachCamera(c),na.render(I,a,c,g),d=I.opaque,e=I.transparent,a.overrideMaterial?(f=a.overrideMaterial,d.length&&m(d,a,c,f),e.length&&m(e,a,c,f)):(d.length&&m(d,a,c),e.length&&m(e,a,c)),a.onAfterRender(C,a,c),null!==R&&(ba.updateRenderTargetMipmap(R),ba.updateMultisampleRenderTarget(R)),aa.buffers.depth.setTest(!0),aa.buffers.depth.setMask(!0),aa.buffers.color.setMask(!0),
+aa.setPolygonOffset(!1),ja.enabled&&(ua.isAvailable()&&ua.detachCamera(c),ja.submitFrame()),G=I=null):console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.")};this.setFramebuffer=function(a){O!==a&&null===R&&K.bindFramebuffer(36160,a);O=a};this.getActiveCubeFace=function(){return S};this.getActiveMipmapLevel=function(){return V};this.getRenderTarget=function(){return R};this.setRenderTarget=function(a,b,c){R=a;S=b;V=c;a&&void 0===Z.get(a).__webglFramebuffer&&ba.setupRenderTarget(a);
+var d=O,e=!1;a?(d=Z.get(a).__webglFramebuffer,a.isWebGLRenderTargetCube?(d=d[b||0],e=!0):d=a.isWebGLMultisampleRenderTarget?Z.get(a).__webglMultisampledFramebuffer:d,T.copy(a.viewport),ob.copy(a.scissor),ka=a.scissorTest):(T.copy(ea).multiplyScalar(fa).floor(),ob.copy(U).multiplyScalar(fa).floor(),ka=oa);Ie!==d&&(K.bindFramebuffer(36160,d),Ie=d);aa.viewport(T);aa.scissor(ob);aa.setScissorTest(ka);e&&(a=Z.get(a.texture),K.framebufferTexture2D(36160,36064,34069+(b||0),a.__webglTexture,c||0))};this.readRenderTargetPixels=
+function(a,b,c,d,e,f,g){if(a&&a.isWebGLRenderTarget){var h=Z.get(a).__webglFramebuffer;a.isWebGLRenderTargetCube&&void 0!==g&&(h=h[g]);if(h){g=!1;h!==Ie&&(K.bindFramebuffer(36160,h),g=!0);try{var l=a.texture,m=l.format,r=l.type;1023!==m&&la.convert(m)!==K.getParameter(35739)?console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."):1009===r||la.convert(r)===K.getParameter(35738)||1015===r&&(Fa.isWebGL2||qa.get("OES_texture_float")||
+qa.get("WEBGL_color_buffer_float"))||1016===r&&(Fa.isWebGL2?qa.get("EXT_color_buffer_float"):qa.get("EXT_color_buffer_half_float"))?36053===K.checkFramebufferStatus(36160)?0<=b&&b<=a.width-d&&0<=c&&c<=a.height-e&&K.readPixels(b,c,d,e,la.convert(m),la.convert(r),f):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete."):console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.")}finally{g&&
+K.bindFramebuffer(36160,Ie)}}}else console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.")};this.copyFramebufferToTexture=function(a,b,c){void 0===c&&(c=0);var d=Math.pow(2,-c),e=Math.floor(b.image.width*d);d=Math.floor(b.image.height*d);var f=la.convert(b.format);ba.setTexture2D(b,0);K.copyTexImage2D(3553,c,f,a.x,a.y,e,d,0);aa.unbindTexture()};this.copyTextureToTexture=function(a,b,c,d){var e=b.image.width,f=b.image.height,g=la.convert(c.format),
+h=la.convert(c.type);ba.setTexture2D(c,0);b.isDataTexture?K.texSubImage2D(3553,d||0,a.x,a.y,e,f,g,h,b.image.data):K.texSubImage2D(3553,d||0,a.x,a.y,g,h,b.image);aa.unbindTexture()};this.initTexture=function(a){ba.setTexture2D(a,0);aa.unbindTexture()};"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}function Le(a,b){this.name="";this.color=new J(a);this.density=void 0!==b?b:2.5E-4}function Me(a,b,c){this.name="";this.color=new J(a);
+this.near=void 0!==b?b:1;this.far=void 0!==c?c:1E3}function pb(a,b){this.array=a;this.stride=b;this.count=void 0!==a?a.length/b:0;this.usage=35044;this.updateRange={offset:0,count:-1};this.version=0}function Ld(a,b,c,d){this.data=a;this.itemSize=b;this.offset=c;this.normalized=!0===d}function Gb(a){O.call(this);this.type="SpriteMaterial";this.color=new J(16777215);this.alphaMap=this.map=null;this.rotation=0;this.transparent=this.sizeAttenuation=!0;this.setValues(a)}function Md(a){D.call(this);this.type=
+"Sprite";if(void 0===Ic){Ic=new E;var b=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]);b=new pb(b,5);Ic.setIndex([0,1,2,0,2,3]);Ic.setAttribute("position",new Ld(b,3,0,!1));Ic.setAttribute("uv",new Ld(b,2,3,!1))}this.geometry=Ic;this.material=void 0!==a?a:new Gb;this.center=new B(.5,.5)}function Ne(a,b,c,d,e,f){Jc.subVectors(a,c).addScalar(.5).multiply(d);void 0!==e?(Nd.x=f*Jc.x-e*Jc.y,Nd.y=e*Jc.x+f*Jc.y):Nd.copy(Jc);a.copy(b);a.x+=Nd.x;a.y+=Nd.y;a.applyMatrix4(Qh)}function Od(){D.call(this);
+this.type="LOD";Object.defineProperties(this,{levels:{enumerable:!0,value:[]}});this.autoUpdate=!0}function Pd(a,b){a&&a.isGeometry&&console.error("THREE.SkinnedMesh no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");ea.call(this,a,b);this.type="SkinnedMesh";this.bindMode="attached";this.bindMatrix=new Q;this.bindMatrixInverse=new Q}function Oe(a,b){a=a||[];this.bones=a.slice(0);this.boneMatrices=new Float32Array(16*this.bones.length);this.frame=-1;if(void 0===b)this.calculateInverses();
+else if(this.bones.length===b.length)this.boneInverses=b.slice(0);else for(console.warn("THREE.Skeleton boneInverses is the wrong length."),this.boneInverses=[],a=0,b=this.bones.length;a<b;a++)this.boneInverses.push(new Q)}function ig(){D.call(this);this.type="Bone"}function Pe(a,b,c){ea.call(this,a,b);this.instanceMatrix=new N(new Float32Array(16*c),16);this.count=c}function R(a){O.call(this);this.type="LineBasicMaterial";this.color=new J(16777215);this.linewidth=1;this.linejoin=this.linecap="round";
+this.setValues(a)}function ra(a,b,c){1===c&&console.error("THREE.Line: parameter THREE.LinePieces no longer supported. Use THREE.LineSegments instead.");D.call(this);this.type="Line";this.geometry=void 0!==a?a:new E;this.material=void 0!==b?b:new R({color:16777215*Math.random()})}function X(a,b){ra.call(this,a,b);this.type="LineSegments"}function Qe(a,b){ra.call(this,a,b);this.type="LineLoop"}function Qa(a){O.call(this);this.type="PointsMaterial";this.color=new J(16777215);this.alphaMap=this.map=
+null;this.size=1;this.sizeAttenuation=!0;this.morphTargets=!1;this.setValues(a)}function Kc(a,b){D.call(this);this.type="Points";this.geometry=void 0!==a?a:new E;this.material=void 0!==b?b:new Qa({color:16777215*Math.random()});this.updateMorphTargets()}function jg(a,b,c,d,e,f,g){var h=kg.distanceSqToPoint(a);h<c&&(c=new n,kg.closestPointToPoint(a,c),c.applyMatrix4(d),a=e.ray.origin.distanceTo(c),a<e.near||a>e.far||f.push({distance:a,distanceToRay:Math.sqrt(h),point:c,index:b,face:null,object:g}))}
+function lg(a,b,c,d,e,f,g,h,l){Y.call(this,a,b,c,d,e,f,g,h,l);this.format=void 0!==g?g:1022;this.minFilter=void 0!==f?f:1006;this.magFilter=void 0!==e?e:1006;this.generateMipmaps=!1}function Lc(a,b,c,d,e,f,g,h,l,m,r,q){Y.call(this,null,f,g,h,l,m,d,e,r,q);this.image={width:b,height:c};this.mipmaps=a;this.generateMipmaps=this.flipY=!1}function Qd(a,b,c,d,e,f,g,h,l){Y.call(this,a,b,c,d,e,f,g,h,l);this.needsUpdate=!0}function Rd(a,b,c,d,e,f,g,h,l,m){m=void 0!==m?m:1026;if(1026!==m&&1027!==m)throw Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");
+void 0===c&&1026===m&&(c=1012);void 0===c&&1027===m&&(c=1020);Y.call(this,null,d,e,f,g,h,m,c,l);this.image={width:a,height:b};this.magFilter=void 0!==g?g:1003;this.minFilter=void 0!==h?h:1003;this.generateMipmaps=this.flipY=!1}function Mc(a){E.call(this);this.type="WireframeGeometry";var b=[],c,d,e,f=[0,0],g={},h=["a","b","c"];if(a&&a.isGeometry){var l=a.faces;var m=0;for(d=l.length;m<d;m++){var r=l[m];for(c=0;3>c;c++){var q=r[h[c]];var k=r[h[(c+1)%3]];f[0]=Math.min(q,k);f[1]=Math.max(q,k);q=f[0]+
+","+f[1];void 0===g[q]&&(g[q]={index1:f[0],index2:f[1]})}}for(q in g)m=g[q],h=a.vertices[m.index1],b.push(h.x,h.y,h.z),h=a.vertices[m.index2],b.push(h.x,h.y,h.z)}else if(a&&a.isBufferGeometry)if(h=new n,null!==a.index){l=a.attributes.position;r=a.index;var p=a.groups;0===p.length&&(p=[{start:0,count:r.count,materialIndex:0}]);a=0;for(e=p.length;a<e;++a)for(m=p[a],c=m.start,d=m.count,m=c,d=c+d;m<d;m+=3)for(c=0;3>c;c++)q=r.getX(m+c),k=r.getX(m+(c+1)%3),f[0]=Math.min(q,k),f[1]=Math.max(q,k),q=f[0]+","+
+f[1],void 0===g[q]&&(g[q]={index1:f[0],index2:f[1]});for(q in g)m=g[q],h.fromBufferAttribute(l,m.index1),b.push(h.x,h.y,h.z),h.fromBufferAttribute(l,m.index2),b.push(h.x,h.y,h.z)}else for(l=a.attributes.position,m=0,d=l.count/3;m<d;m++)for(c=0;3>c;c++)g=3*m+c,h.fromBufferAttribute(l,g),b.push(h.x,h.y,h.z),g=3*m+(c+1)%3,h.fromBufferAttribute(l,g),b.push(h.x,h.y,h.z);this.setAttribute("position",new A(b,3))}function Nc(a,b,c){C.call(this);this.type="ParametricGeometry";this.parameters={func:a,slices:b,
+stacks:c};this.fromBufferGeometry(new ac(a,b,c));this.mergeVertices()}function ac(a,b,c){E.call(this);this.type="ParametricBufferGeometry";this.parameters={func:a,slices:b,stacks:c};var d=[],e=[],f=[],g=[],h=new n,l=new n,m=new n,r=new n,q=new n,k,p;3>a.length&&console.error("THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter.");var t=b+1;for(k=0;k<=c;k++){var v=k/c;for(p=0;p<=b;p++){var y=p/b;a(y,v,l);e.push(l.x,l.y,l.z);0<=y-1E-5?(a(y-1E-5,v,m),r.subVectors(l,m)):(a(y+
+1E-5,v,m),r.subVectors(m,l));0<=v-1E-5?(a(y,v-1E-5,m),q.subVectors(l,m)):(a(y,v+1E-5,m),q.subVectors(m,l));h.crossVectors(r,q).normalize();f.push(h.x,h.y,h.z);g.push(y,v)}}for(k=0;k<c;k++)for(p=0;p<b;p++)a=k*t+p+1,h=(k+1)*t+p+1,l=(k+1)*t+p,d.push(k*t+p,a,l),d.push(a,h,l);this.setIndex(d);this.setAttribute("position",new A(e,3));this.setAttribute("normal",new A(f,3));this.setAttribute("uv",new A(g,2))}function Sd(a,b,c,d){C.call(this);this.type="PolyhedronGeometry";this.parameters={vertices:a,indices:b,
+radius:c,detail:d};this.fromBufferGeometry(new Ea(a,b,c,d));this.mergeVertices()}function Ea(a,b,c,d){function e(a){h.push(a.x,a.y,a.z)}function f(b,c){b*=3;c.x=a[b+0];c.y=a[b+1];c.z=a[b+2]}function g(a,b,c,d){0>d&&1===a.x&&(l[b]=a.x-1);0===c.x&&0===c.z&&(l[b]=d/2/Math.PI+.5)}E.call(this);this.type="PolyhedronBufferGeometry";this.parameters={vertices:a,indices:b,radius:c,detail:d};c=c||1;d=d||0;var h=[],l=[];(function(a){for(var c=new n,d=new n,g=new n,h=0;h<b.length;h+=3){f(b[h+0],c);f(b[h+1],d);
+f(b[h+2],g);var l,m,k=c,w=d,x=g,F=Math.pow(2,a),H=[];for(m=0;m<=F;m++){H[m]=[];var z=k.clone().lerp(x,m/F),B=w.clone().lerp(x,m/F),A=F-m;for(l=0;l<=A;l++)H[m][l]=0===l&&m===F?z:z.clone().lerp(B,l/A)}for(m=0;m<F;m++)for(l=0;l<2*(F-m)-1;l++)k=Math.floor(l/2),0===l%2?(e(H[m][k+1]),e(H[m+1][k]),e(H[m][k])):(e(H[m][k+1]),e(H[m+1][k+1]),e(H[m+1][k]))}})(d);(function(a){for(var b=new n,c=0;c<h.length;c+=3)b.x=h[c+0],b.y=h[c+1],b.z=h[c+2],b.normalize().multiplyScalar(a),h[c+0]=b.x,h[c+1]=b.y,h[c+2]=b.z})(c);
+(function(){for(var a=new n,b=0;b<h.length;b+=3)a.x=h[b+0],a.y=h[b+1],a.z=h[b+2],l.push(Math.atan2(a.z,-a.x)/2/Math.PI+.5,1-(Math.atan2(-a.y,Math.sqrt(a.x*a.x+a.z*a.z))/Math.PI+.5));a=new n;b=new n;for(var c=new n,d=new n,e=new B,f=new B,k=new B,y=0,w=0;y<h.length;y+=9,w+=6){a.set(h[y+0],h[y+1],h[y+2]);b.set(h[y+3],h[y+4],h[y+5]);c.set(h[y+6],h[y+7],h[y+8]);e.set(l[w+0],l[w+1]);f.set(l[w+2],l[w+3]);k.set(l[w+4],l[w+5]);d.copy(a).add(b).add(c).divideScalar(3);var x=Math.atan2(d.z,-d.x);g(e,w+0,a,x);
+g(f,w+2,b,x);g(k,w+4,c,x)}for(a=0;a<l.length;a+=6)b=l[a+0],c=l[a+2],d=l[a+4],e=Math.min(b,c,d),.9<Math.max(b,c,d)&&.1>e&&(.2>b&&(l[a+0]+=1),.2>c&&(l[a+2]+=1),.2>d&&(l[a+4]+=1))})();this.setAttribute("position",new A(h,3));this.setAttribute("normal",new A(h.slice(),3));this.setAttribute("uv",new A(l,2));0===d?this.computeVertexNormals():this.normalizeNormals()}function Td(a,b){C.call(this);this.type="TetrahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Oc(a,b));this.mergeVertices()}
+function Oc(a,b){Ea.call(this,[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],a,b);this.type="TetrahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Ud(a,b){C.call(this);this.type="OctahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new bc(a,b));this.mergeVertices()}function bc(a,b){Ea.call(this,[1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2],a,b);this.type="OctahedronBufferGeometry";this.parameters=
+{radius:a,detail:b}}function Vd(a,b){C.call(this);this.type="IcosahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Pc(a,b));this.mergeVertices()}function Pc(a,b){var c=(1+Math.sqrt(5))/2;Ea.call(this,[-1,c,0,1,c,0,-1,-c,0,1,-c,0,0,-1,c,0,1,c,0,-1,-c,0,1,-c,c,0,-1,c,0,1,-c,0,-1,-c,0,1],[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],a,b);this.type="IcosahedronBufferGeometry";this.parameters=
+{radius:a,detail:b}}function Wd(a,b){C.call(this);this.type="DodecahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Qc(a,b));this.mergeVertices()}function Qc(a,b){var c=(1+Math.sqrt(5))/2,d=1/c;Ea.call(this,[-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,-d,-c,0,-d,c,0,d,-c,0,d,c,-d,-c,0,-d,c,0,d,-c,0,d,c,0,-c,0,-d,c,0,-d,-c,0,d,c,0,d],[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],a,b);this.type="DodecahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Xd(a,b,c,d,e,f){C.call(this);this.type="TubeGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d,closed:e};void 0!==f&&console.warn("THREE.TubeGeometry: taper has been removed.");a=new cc(a,b,c,d,e);this.tangents=a.tangents;this.normals=
+a.normals;this.binormals=a.binormals;this.fromBufferGeometry(a);this.mergeVertices()}function cc(a,b,c,d,e){function f(e){r=a.getPointAt(e/b,r);var f=g.normals[e];e=g.binormals[e];for(u=0;u<=d;u++){var m=u/d*Math.PI*2,k=Math.sin(m);m=-Math.cos(m);l.x=m*f.x+k*e.x;l.y=m*f.y+k*e.y;l.z=m*f.z+k*e.z;l.normalize();t.push(l.x,l.y,l.z);h.x=r.x+c*l.x;h.y=r.y+c*l.y;h.z=r.z+c*l.z;p.push(h.x,h.y,h.z)}}E.call(this);this.type="TubeBufferGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d,
+closed:e};b=b||64;c=c||1;d=d||8;e=e||!1;var g=a.computeFrenetFrames(b,e);this.tangents=g.tangents;this.normals=g.normals;this.binormals=g.binormals;var h=new n,l=new n,m=new B,r=new n,k,u,p=[],t=[],v=[],y=[];for(k=0;k<b;k++)f(k);f(!1===e?b:0);for(k=0;k<=b;k++)for(u=0;u<=d;u++)m.x=k/b,m.y=u/d,v.push(m.x,m.y);(function(){for(u=1;u<=b;u++)for(k=1;k<=d;k++){var a=(d+1)*u+(k-1),c=(d+1)*u+k,e=(d+1)*(u-1)+k;y.push((d+1)*(u-1)+(k-1),a,e);y.push(a,c,e)}})();this.setIndex(y);this.setAttribute("position",new A(p,
+3));this.setAttribute("normal",new A(t,3));this.setAttribute("uv",new A(v,2))}function Yd(a,b,c,d,e,f,g){C.call(this);this.type="TorusKnotGeometry";this.parameters={radius:a,tube:b,tubularSegments:c,radialSegments:d,p:e,q:f};void 0!==g&&console.warn("THREE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead.");this.fromBufferGeometry(new Rc(a,b,c,d,e,f));this.mergeVertices()}function Rc(a,b,c,d,e,f){function g(a,b,c,d,e){var f=Math.sin(a);b=c/b*a;c=Math.cos(b);e.x=d*
+(2+c)*.5*Math.cos(a);e.y=d*(2+c)*f*.5;e.z=d*Math.sin(b)*.5}E.call(this);this.type="TorusKnotBufferGeometry";this.parameters={radius:a,tube:b,tubularSegments:c,radialSegments:d,p:e,q:f};a=a||1;b=b||.4;c=Math.floor(c)||64;d=Math.floor(d)||8;e=e||2;f=f||3;var h=[],l=[],m=[],r=[],k,u=new n,p=new n,t=new n,v=new n,y=new n,w=new n,x=new n;for(k=0;k<=c;++k){var F=k/c*e*Math.PI*2;g(F,e,f,a,t);g(F+.01,e,f,a,v);w.subVectors(v,t);x.addVectors(v,t);y.crossVectors(w,x);x.crossVectors(y,w);y.normalize();x.normalize();
+for(F=0;F<=d;++F){var H=F/d*Math.PI*2,z=-b*Math.cos(H);H=b*Math.sin(H);u.x=t.x+(z*x.x+H*y.x);u.y=t.y+(z*x.y+H*y.y);u.z=t.z+(z*x.z+H*y.z);l.push(u.x,u.y,u.z);p.subVectors(u,t).normalize();m.push(p.x,p.y,p.z);r.push(k/c);r.push(F/d)}}for(F=1;F<=c;F++)for(k=1;k<=d;k++)a=(d+1)*F+(k-1),b=(d+1)*F+k,e=(d+1)*(F-1)+k,h.push((d+1)*(F-1)+(k-1),a,e),h.push(a,b,e);this.setIndex(h);this.setAttribute("position",new A(l,3));this.setAttribute("normal",new A(m,3));this.setAttribute("uv",new A(r,2))}function Zd(a,b,
+c,d,e){C.call(this);this.type="TorusGeometry";this.parameters={radius:a,tube:b,radialSegments:c,tubularSegments:d,arc:e};this.fromBufferGeometry(new Sc(a,b,c,d,e));this.mergeVertices()}function Sc(a,b,c,d,e){E.call(this);this.type="TorusBufferGeometry";this.parameters={radius:a,tube:b,radialSegments:c,tubularSegments:d,arc:e};a=a||1;b=b||.4;c=Math.floor(c)||8;d=Math.floor(d)||6;e=e||2*Math.PI;var f=[],g=[],h=[],l=[],m=new n,r=new n,k=new n,u,p;for(u=0;u<=c;u++)for(p=0;p<=d;p++){var t=p/d*e,v=u/c*
+Math.PI*2;r.x=(a+b*Math.cos(v))*Math.cos(t);r.y=(a+b*Math.cos(v))*Math.sin(t);r.z=b*Math.sin(v);g.push(r.x,r.y,r.z);m.x=a*Math.cos(t);m.y=a*Math.sin(t);k.subVectors(r,m).normalize();h.push(k.x,k.y,k.z);l.push(p/d);l.push(u/c)}for(u=1;u<=c;u++)for(p=1;p<=d;p++)a=(d+1)*(u-1)+p-1,b=(d+1)*(u-1)+p,e=(d+1)*u+p,f.push((d+1)*u+p-1,a,e),f.push(a,b,e);this.setIndex(f);this.setAttribute("position",new A(g,3));this.setAttribute("normal",new A(h,3));this.setAttribute("uv",new A(l,2))}function Rh(a,b,c,d,e){for(var f,
+g=0,h=b,l=c-d;h<c;h+=d)g+=(a[l]-a[h])*(a[h+1]+a[l+1]),l=h;if(e===0<g)for(e=b;e<c;e+=d)f=Sh(e,a[e],a[e+1],f);else for(e=c-d;e>=b;e-=d)f=Sh(e,a[e],a[e+1],f);f&&dc(f,f.next)&&($d(f),f=f.next);return f}function ae(a,b){if(!a)return a;b||(b=a);do{var c=!1;if(a.steiner||!dc(a,a.next)&&0!==xa(a.prev,a,a.next))a=a.next;else{$d(a);a=b=a.prev;if(a===a.next)break;c=!0}}while(c||a!==b);return b}function be(a,b,c,d,e,f,g){if(a){if(!g&&f){var h=a,l=h;do null===l.z&&(l.z=mg(l.x,l.y,d,e,f)),l.prevZ=l.prev,l=l.nextZ=
+l.next;while(l!==h);l.prevZ.nextZ=null;l.prevZ=null;h=l;var m,r,k,u,p=1;do{l=h;var t=h=null;for(r=0;l;){r++;var n=l;for(m=k=0;m<p&&(k++,n=n.nextZ,n);m++);for(u=p;0<k||0<u&&n;)0!==k&&(0===u||!n||l.z<=n.z)?(m=l,l=l.nextZ,k--):(m=n,n=n.nextZ,u--),t?t.nextZ=m:h=m,m.prevZ=t,t=m;l=n}t.nextZ=null;p*=2}while(1<r)}for(h=a;a.prev!==a.next;){l=a.prev;n=a.next;if(f)t=mk(a,d,e,f);else a:if(t=a,r=t.prev,k=t,p=t.next,0<=xa(r,k,p))t=!1;else{for(m=t.next.next;m!==t.prev;){if(Tc(r.x,r.y,k.x,k.y,p.x,p.y,m.x,m.y)&&0<=
+xa(m.prev,m,m.next)){t=!1;break a}m=m.next}t=!0}if(t)b.push(l.i/c),b.push(a.i/c),b.push(n.i/c),$d(a),h=a=n.next;else if(a=n,a===h){if(!g)be(ae(a),b,c,d,e,f,1);else if(1===g){g=b;h=c;l=a;do n=l.prev,t=l.next.next,!dc(n,t)&&Th(n,l,l.next,t)&&ce(n,t)&&ce(t,n)&&(g.push(n.i/h),g.push(l.i/h),g.push(t.i/h),$d(l),$d(l.next),l=a=t),l=l.next;while(l!==a);a=l;be(a,b,c,d,e,f,2)}else if(2===g)a:{g=a;do{for(h=g.next.next;h!==g.prev;){if(l=g.i!==h.i){l=g;n=h;if(t=l.next.i!==n.i&&l.prev.i!==n.i){b:{t=l;do{if(t.i!==
+l.i&&t.next.i!==l.i&&t.i!==n.i&&t.next.i!==n.i&&Th(t,t.next,l,n)){t=!0;break b}t=t.next}while(t!==l);t=!1}t=!t}if(t=t&&ce(l,n)&&ce(n,l)){t=l;r=!1;k=(l.x+n.x)/2;n=(l.y+n.y)/2;do t.y>n!==t.next.y>n&&t.next.y!==t.y&&k<(t.next.x-t.x)*(n-t.y)/(t.next.y-t.y)+t.x&&(r=!r),t=t.next;while(t!==l);t=r}l=t}if(l){a=Uh(g,h);g=ae(g,g.next);a=ae(a,a.next);be(g,b,c,d,e,f);be(a,b,c,d,e,f);break a}h=h.next}g=g.next}while(g!==a)}break}}}}function mk(a,b,c,d){var e=a.prev,f=a.next;if(0<=xa(e,a,f))return!1;var g=e.x>a.x?
+e.x>f.x?e.x:f.x:a.x>f.x?a.x:f.x,h=e.y>a.y?e.y>f.y?e.y:f.y:a.y>f.y?a.y:f.y,l=mg(e.x<a.x?e.x<f.x?e.x:f.x:a.x<f.x?a.x:f.x,e.y<a.y?e.y<f.y?e.y:f.y:a.y<f.y?a.y:f.y,b,c,d);b=mg(g,h,b,c,d);c=a.prevZ;for(d=a.nextZ;c&&c.z>=l&&d&&d.z<=b;){if(c!==a.prev&&c!==a.next&&Tc(e.x,e.y,a.x,a.y,f.x,f.y,c.x,c.y)&&0<=xa(c.prev,c,c.next))return!1;c=c.prevZ;if(d!==a.prev&&d!==a.next&&Tc(e.x,e.y,a.x,a.y,f.x,f.y,d.x,d.y)&&0<=xa(d.prev,d,d.next))return!1;d=d.nextZ}for(;c&&c.z>=l;){if(c!==a.prev&&c!==a.next&&Tc(e.x,e.y,a.x,a.y,
+f.x,f.y,c.x,c.y)&&0<=xa(c.prev,c,c.next))return!1;c=c.prevZ}for(;d&&d.z<=b;){if(d!==a.prev&&d!==a.next&&Tc(e.x,e.y,a.x,a.y,f.x,f.y,d.x,d.y)&&0<=xa(d.prev,d,d.next))return!1;d=d.nextZ}return!0}function nk(a,b){return a.x-b.x}function ok(a,b){var c=b,d=a.x,e=a.y,f=-Infinity;do{if(e<=c.y&&e>=c.next.y&&c.next.y!==c.y){var g=c.x+(e-c.y)*(c.next.x-c.x)/(c.next.y-c.y);if(g<=d&&g>f){f=g;if(g===d){if(e===c.y)return c;if(e===c.next.y)return c.next}var h=c.x<c.next.x?c:c.next}}c=c.next}while(c!==b);if(!h)return null;
+if(d===f)return h.prev;b=h;g=h.x;var l=h.y,m=Infinity;for(c=h.next;c!==b;){if(d>=c.x&&c.x>=g&&d!==c.x&&Tc(e<l?d:f,e,g,l,e<l?f:d,e,c.x,c.y)){var r=Math.abs(e-c.y)/(d-c.x);(r<m||r===m&&c.x>h.x)&&ce(c,a)&&(h=c,m=r)}c=c.next}return h}function mg(a,b,c,d,e){a=32767*(a-c)*e;b=32767*(b-d)*e;a=(a|a<<8)&16711935;a=(a|a<<4)&252645135;a=(a|a<<2)&858993459;b=(b|b<<8)&16711935;b=(b|b<<4)&252645135;b=(b|b<<2)&858993459;return(a|a<<1)&1431655765|((b|b<<1)&1431655765)<<1}function pk(a){var b=a,c=a;do{if(b.x<c.x||
+b.x===c.x&&b.y<c.y)c=b;b=b.next}while(b!==a);return c}function Tc(a,b,c,d,e,f,g,h){return 0<=(e-g)*(b-h)-(a-g)*(f-h)&&0<=(a-g)*(d-h)-(c-g)*(b-h)&&0<=(c-g)*(f-h)-(e-g)*(d-h)}function xa(a,b,c){return(b.y-a.y)*(c.x-b.x)-(b.x-a.x)*(c.y-b.y)}function dc(a,b){return a.x===b.x&&a.y===b.y}function Th(a,b,c,d){return dc(a,c)&&dc(b,d)||dc(a,d)&&dc(c,b)?!0:0<xa(a,b,c)!==0<xa(a,b,d)&&0<xa(c,d,a)!==0<xa(c,d,b)}function ce(a,b){return 0>xa(a.prev,a,a.next)?0<=xa(a,b,a.next)&&0<=xa(a,a.prev,b):0>xa(a,b,a.prev)||
+0>xa(a,a.next,b)}function Uh(a,b){var c=new ng(a.i,a.x,a.y),d=new ng(b.i,b.x,b.y),e=a.next,f=b.prev;a.next=b;b.prev=a;c.next=e;e.prev=c;d.next=c;c.prev=d;f.next=d;d.prev=f;return d}function Sh(a,b,c,d){a=new ng(a,b,c);d?(a.next=d.next,a.prev=d,d.next.prev=a,d.next=a):(a.prev=a,a.next=a);return a}function $d(a){a.next.prev=a.prev;a.prev.next=a.next;a.prevZ&&(a.prevZ.nextZ=a.nextZ);a.nextZ&&(a.nextZ.prevZ=a.prevZ)}function ng(a,b,c){this.i=a;this.x=b;this.y=c;this.nextZ=this.prevZ=this.z=this.next=
+this.prev=null;this.steiner=!1}function Vh(a){var b=a.length;2<b&&a[b-1].equals(a[0])&&a.pop()}function Wh(a,b){for(var c=0;c<b.length;c++)a.push(b[c].x),a.push(b[c].y)}function ec(a,b){C.call(this);this.type="ExtrudeGeometry";this.parameters={shapes:a,options:b};this.fromBufferGeometry(new db(a,b));this.mergeVertices()}function db(a,b){function c(a){function c(a,b,c){b||console.error("THREE.ExtrudeGeometry: vec does not exist");return b.clone().multiplyScalar(c).add(a)}function g(a,b,c){var d=a.x-
+b.x;var e=a.y-b.y;var f=c.x-a.x;var g=c.y-a.y,h=d*d+e*e;if(Math.abs(d*g-e*f)>Number.EPSILON){var l=Math.sqrt(h),m=Math.sqrt(f*f+g*g);h=b.x-e/l;b=b.y+d/l;g=((c.x-g/m-h)*g-(c.y+f/m-b)*f)/(d*g-e*f);f=h+d*g-a.x;d=b+e*g-a.y;e=f*f+d*d;if(2>=e)return new B(f,d);e=Math.sqrt(e/2)}else a=!1,d>Number.EPSILON?f>Number.EPSILON&&(a=!0):d<-Number.EPSILON?f<-Number.EPSILON&&(a=!0):Math.sign(e)===Math.sign(g)&&(a=!0),a?(f=-e,e=Math.sqrt(h)):(f=d,d=e,e=Math.sqrt(h/2));return new B(f/e,d/e)}function h(a,b){for(M=a.length;0<=
+--M;){var c=M;var f=M-1;0>f&&(f=a.length-1);var g,h=x+2*D;for(g=0;g<h;g++){var l=Y*g,m=Y*(g+1),r=b+f+l,k=b+f+m;m=b+c+m;t(b+c+l);t(r);t(m);t(r);t(k);t(m);l=e.length/3;l=I.generateSideWallUV(d,e,l-6,l-3,l-2,l-1);v(l[0]);v(l[1]);v(l[3]);v(l[1]);v(l[2]);v(l[3])}}}function l(a,b,c){y.push(a);y.push(b);y.push(c)}function k(a,b,c){t(a);t(b);t(c);a=e.length/3;a=I.generateTopUV(d,e,a-3,a-2,a-1);v(a[0]);v(a[1]);v(a[2])}function t(a){e.push(y[3*a]);e.push(y[3*a+1]);e.push(y[3*a+2])}function v(a){f.push(a.x);
+f.push(a.y)}var y=[],w=void 0!==b.curveSegments?b.curveSegments:12,x=void 0!==b.steps?b.steps:1,F=void 0!==b.depth?b.depth:100,H=void 0!==b.bevelEnabled?b.bevelEnabled:!0,z=void 0!==b.bevelThickness?b.bevelThickness:6,A=void 0!==b.bevelSize?b.bevelSize:z-2,C=void 0!==b.bevelOffset?b.bevelOffset:0,D=void 0!==b.bevelSegments?b.bevelSegments:3,E=b.extrudePath,I=void 0!==b.UVGenerator?b.UVGenerator:qk;void 0!==b.amount&&(console.warn("THREE.ExtrudeBufferGeometry: amount has been renamed to depth."),F=
+b.amount);var G=!1;if(E){var J=E.getSpacedPoints(x);G=!0;H=!1;var L=E.computeFrenetFrames(x,!1);var N=new n;var O=new n;var P=new n}H||(C=A=z=D=0);var Q;w=a.extractPoints(w);a=w.shape;var S=w.holes;if(!qb.isClockWise(a)){a=a.reverse();var ha=0;for(Q=S.length;ha<Q;ha++){var R=S[ha];qb.isClockWise(R)&&(S[ha]=R.reverse())}}var Z=qb.triangulateShape(a,S),X=a;ha=0;for(Q=S.length;ha<Q;ha++)R=S[ha],a=a.concat(R);var T,Y=a.length,V,ca=Z.length;w=[];var M=0;var W=X.length;var fa=W-1;for(T=M+1;M<W;M++,fa++,
+T++)fa===W&&(fa=0),T===W&&(T=0),w[M]=g(X[M],X[fa],X[T]);E=[];var da=w.concat();ha=0;for(Q=S.length;ha<Q;ha++){R=S[ha];var ba=[];M=0;W=R.length;fa=W-1;for(T=M+1;M<W;M++,fa++,T++)fa===W&&(fa=0),T===W&&(T=0),ba[M]=g(R[M],R[fa],R[T]);E.push(ba);da=da.concat(ba)}for(fa=0;fa<D;fa++){W=fa/D;var ea=z*Math.cos(W*Math.PI/2);T=A*Math.sin(W*Math.PI/2)+C;M=0;for(W=X.length;M<W;M++){var U=c(X[M],w[M],T);l(U.x,U.y,-ea)}ha=0;for(Q=S.length;ha<Q;ha++)for(R=S[ha],ba=E[ha],M=0,W=R.length;M<W;M++)U=c(R[M],ba[M],T),l(U.x,
+U.y,-ea)}T=A+C;for(M=0;M<Y;M++)U=H?c(a[M],da[M],T):a[M],G?(O.copy(L.normals[0]).multiplyScalar(U.x),N.copy(L.binormals[0]).multiplyScalar(U.y),P.copy(J[0]).add(O).add(N),l(P.x,P.y,P.z)):l(U.x,U.y,0);for(W=1;W<=x;W++)for(M=0;M<Y;M++)U=H?c(a[M],da[M],T):a[M],G?(O.copy(L.normals[W]).multiplyScalar(U.x),N.copy(L.binormals[W]).multiplyScalar(U.y),P.copy(J[W]).add(O).add(N),l(P.x,P.y,P.z)):l(U.x,U.y,F/x*W);for(fa=D-1;0<=fa;fa--){W=fa/D;ea=z*Math.cos(W*Math.PI/2);T=A*Math.sin(W*Math.PI/2)+C;M=0;for(W=X.length;M<
+W;M++)U=c(X[M],w[M],T),l(U.x,U.y,F+ea);ha=0;for(Q=S.length;ha<Q;ha++)for(R=S[ha],ba=E[ha],M=0,W=R.length;M<W;M++)U=c(R[M],ba[M],T),G?l(U.x,U.y+J[x-1].y,J[x-1].x+ea):l(U.x,U.y,F+ea)}(function(){var a=e.length/3;if(H){var b=0*Y;for(M=0;M<ca;M++)V=Z[M],k(V[2]+b,V[1]+b,V[0]+b);b=Y*(x+2*D);for(M=0;M<ca;M++)V=Z[M],k(V[0]+b,V[1]+b,V[2]+b)}else{for(M=0;M<ca;M++)V=Z[M],k(V[2],V[1],V[0]);for(M=0;M<ca;M++)V=Z[M],k(V[0]+Y*x,V[1]+Y*x,V[2]+Y*x)}d.addGroup(a,e.length/3-a,0)})();(function(){var a=e.length/3,b=0;
+h(X,b);b+=X.length;ha=0;for(Q=S.length;ha<Q;ha++)R=S[ha],h(R,b),b+=R.length;d.addGroup(a,e.length/3-a,1)})()}E.call(this);this.type="ExtrudeBufferGeometry";this.parameters={shapes:a,options:b};a=Array.isArray(a)?a:[a];for(var d=this,e=[],f=[],g=0,h=a.length;g<h;g++)c(a[g]);this.setAttribute("position",new A(e,3));this.setAttribute("uv",new A(f,2));this.computeVertexNormals()}function Xh(a,b,c){c.shapes=[];if(Array.isArray(a))for(var d=0,e=a.length;d<e;d++)c.shapes.push(a[d].uuid);else c.shapes.push(a.uuid);
+void 0!==b.extrudePath&&(c.options.extrudePath=b.extrudePath.toJSON());return c}function de(a,b){C.call(this);this.type="TextGeometry";this.parameters={text:a,parameters:b};this.fromBufferGeometry(new Uc(a,b));this.mergeVertices()}function Uc(a,b){b=b||{};var c=b.font;if(!c||!c.isFont)return console.error("THREE.TextGeometry: font parameter is not an instance of THREE.Font."),new C;a=c.generateShapes(a,b.size);b.depth=void 0!==b.height?b.height:50;void 0===b.bevelThickness&&(b.bevelThickness=10);
+void 0===b.bevelSize&&(b.bevelSize=8);void 0===b.bevelEnabled&&(b.bevelEnabled=!1);db.call(this,a,b);this.type="TextBufferGeometry"}function ee(a,b,c,d,e,f,g){C.call(this);this.type="SphereGeometry";this.parameters={radius:a,widthSegments:b,heightSegments:c,phiStart:d,phiLength:e,thetaStart:f,thetaLength:g};this.fromBufferGeometry(new Hb(a,b,c,d,e,f,g));this.mergeVertices()}function Hb(a,b,c,d,e,f,g){E.call(this);this.type="SphereBufferGeometry";this.parameters={radius:a,widthSegments:b,heightSegments:c,
+phiStart:d,phiLength:e,thetaStart:f,thetaLength:g};a=a||1;b=Math.max(3,Math.floor(b)||8);c=Math.max(2,Math.floor(c)||6);d=void 0!==d?d:0;e=void 0!==e?e:2*Math.PI;f=void 0!==f?f:0;g=void 0!==g?g:Math.PI;var h=Math.min(f+g,Math.PI),l,m,r=0,k=[],u=new n,p=new n,t=[],v=[],y=[],w=[];for(m=0;m<=c;m++){var x=[],F=m/c,H=0;0==m&&0==f?H=.5/b:m==c&&h==Math.PI&&(H=-.5/b);for(l=0;l<=b;l++){var z=l/b;u.x=-a*Math.cos(d+z*e)*Math.sin(f+F*g);u.y=a*Math.cos(f+F*g);u.z=a*Math.sin(d+z*e)*Math.sin(f+F*g);v.push(u.x,u.y,
+u.z);p.copy(u).normalize();y.push(p.x,p.y,p.z);w.push(z+H,1-F);x.push(r++)}k.push(x)}for(m=0;m<c;m++)for(l=0;l<b;l++)a=k[m][l+1],d=k[m][l],e=k[m+1][l],g=k[m+1][l+1],(0!==m||0<f)&&t.push(a,d,g),(m!==c-1||h<Math.PI)&&t.push(d,e,g);this.setIndex(t);this.setAttribute("position",new A(v,3));this.setAttribute("normal",new A(y,3));this.setAttribute("uv",new A(w,2))}function fe(a,b,c,d,e,f){C.call(this);this.type="RingGeometry";this.parameters={innerRadius:a,outerRadius:b,thetaSegments:c,phiSegments:d,thetaStart:e,
+thetaLength:f};this.fromBufferGeometry(new Vc(a,b,c,d,e,f));this.mergeVertices()}function Vc(a,b,c,d,e,f){E.call(this);this.type="RingBufferGeometry";this.parameters={innerRadius:a,outerRadius:b,thetaSegments:c,phiSegments:d,thetaStart:e,thetaLength:f};a=a||.5;b=b||1;e=void 0!==e?e:0;f=void 0!==f?f:2*Math.PI;c=void 0!==c?Math.max(3,c):8;d=void 0!==d?Math.max(1,d):1;var g=[],h=[],l=[],m=[],r=a,k=(b-a)/d,u=new n,p=new B,t,v;for(t=0;t<=d;t++){for(v=0;v<=c;v++)a=e+v/c*f,u.x=r*Math.cos(a),u.y=r*Math.sin(a),
+h.push(u.x,u.y,u.z),l.push(0,0,1),p.x=(u.x/b+1)/2,p.y=(u.y/b+1)/2,m.push(p.x,p.y);r+=k}for(t=0;t<d;t++)for(b=t*(c+1),v=0;v<c;v++)a=v+b,e=a+c+1,f=a+c+2,r=a+1,g.push(a,e,r),g.push(e,f,r);this.setIndex(g);this.setAttribute("position",new A(h,3));this.setAttribute("normal",new A(l,3));this.setAttribute("uv",new A(m,2))}function ge(a,b,c,d){C.call(this);this.type="LatheGeometry";this.parameters={points:a,segments:b,phiStart:c,phiLength:d};this.fromBufferGeometry(new Wc(a,b,c,d));this.mergeVertices()}function Wc(a,
+b,c,d){E.call(this);this.type="LatheBufferGeometry";this.parameters={points:a,segments:b,phiStart:c,phiLength:d};b=Math.floor(b)||12;c=c||0;d=d||2*Math.PI;d=P.clamp(d,0,2*Math.PI);var e=[],f=[],g=[],h=1/b,l=new n,m=new B,r;for(r=0;r<=b;r++){var k=c+r*h*d;var u=Math.sin(k),p=Math.cos(k);for(k=0;k<=a.length-1;k++)l.x=a[k].x*u,l.y=a[k].y,l.z=a[k].x*p,f.push(l.x,l.y,l.z),m.x=r/b,m.y=k/(a.length-1),g.push(m.x,m.y)}for(r=0;r<b;r++)for(k=0;k<a.length-1;k++)c=k+r*a.length,h=c+a.length,l=c+a.length+1,m=c+
+1,e.push(c,h,m),e.push(h,l,m);this.setIndex(e);this.setAttribute("position",new A(f,3));this.setAttribute("uv",new A(g,2));this.computeVertexNormals();if(d===2*Math.PI)for(d=this.attributes.normal.array,e=new n,f=new n,g=new n,c=b*a.length*3,k=r=0;r<a.length;r++,k+=3)e.x=d[k+0],e.y=d[k+1],e.z=d[k+2],f.x=d[c+k+0],f.y=d[c+k+1],f.z=d[c+k+2],g.addVectors(e,f).normalize(),d[k+0]=d[c+k+0]=g.x,d[k+1]=d[c+k+1]=g.y,d[k+2]=d[c+k+2]=g.z}function fc(a,b){C.call(this);this.type="ShapeGeometry";"object"===typeof b&&
+(console.warn("THREE.ShapeGeometry: Options parameter has been removed."),b=b.curveSegments);this.parameters={shapes:a,curveSegments:b};this.fromBufferGeometry(new gc(a,b));this.mergeVertices()}function gc(a,b){function c(a){var c,h=e.length/3;a=a.extractPoints(b);var m=a.shape,k=a.holes;!1===qb.isClockWise(m)&&(m=m.reverse());a=0;for(c=k.length;a<c;a++){var r=k[a];!0===qb.isClockWise(r)&&(k[a]=r.reverse())}var n=qb.triangulateShape(m,k);a=0;for(c=k.length;a<c;a++)r=k[a],m=m.concat(r);a=0;for(c=m.length;a<
+c;a++)r=m[a],e.push(r.x,r.y,0),f.push(0,0,1),g.push(r.x,r.y);a=0;for(c=n.length;a<c;a++)m=n[a],d.push(m[0]+h,m[1]+h,m[2]+h),l+=3}E.call(this);this.type="ShapeBufferGeometry";this.parameters={shapes:a,curveSegments:b};b=b||12;var d=[],e=[],f=[],g=[],h=0,l=0;if(!1===Array.isArray(a))c(a);else for(var m=0;m<a.length;m++)c(a[m]),this.addGroup(h,l,m),h+=l,l=0;this.setIndex(d);this.setAttribute("position",new A(e,3));this.setAttribute("normal",new A(f,3));this.setAttribute("uv",new A(g,2))}function Yh(a,
+b){b.shapes=[];if(Array.isArray(a))for(var c=0,d=a.length;c<d;c++)b.shapes.push(a[c].uuid);else b.shapes.push(a.uuid);return b}function Xc(a,b){E.call(this);this.type="EdgesGeometry";this.parameters={thresholdAngle:b};var c=[];b=Math.cos(P.DEG2RAD*(void 0!==b?b:1));var d=[0,0],e={},f=["a","b","c"];if(a.isBufferGeometry){var g=new C;g.fromBufferGeometry(a)}else g=a.clone();g.mergeVertices();g.computeFaceNormals();a=g.vertices;g=g.faces;for(var h=0,l=g.length;h<l;h++)for(var m=g[h],k=0;3>k;k++){var q=
+m[f[k]];var n=m[f[(k+1)%3]];d[0]=Math.min(q,n);d[1]=Math.max(q,n);q=d[0]+","+d[1];void 0===e[q]?e[q]={index1:d[0],index2:d[1],face1:h,face2:void 0}:e[q].face2=h}for(q in e)if(d=e[q],void 0===d.face2||g[d.face1].normal.dot(g[d.face2].normal)<=b)f=a[d.index1],c.push(f.x,f.y,f.z),f=a[d.index2],c.push(f.x,f.y,f.z);this.setAttribute("position",new A(c,3))}function hc(a,b,c,d,e,f,g,h){C.call(this);this.type="CylinderGeometry";this.parameters={radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,
+openEnded:f,thetaStart:g,thetaLength:h};this.fromBufferGeometry(new rb(a,b,c,d,e,f,g,h));this.mergeVertices()}function rb(a,b,c,d,e,f,g,h){function l(c){var e,f=new B,l=new n,r=0,v=!0===c?a:b,x=!0===c?1:-1;var A=t;for(e=1;e<=d;e++)q.push(0,y*x,0),u.push(0,x,0),p.push(.5,.5),t++;var I=t;for(e=0;e<=d;e++){var D=e/d*h+g,E=Math.cos(D);D=Math.sin(D);l.x=v*D;l.y=y*x;l.z=v*E;q.push(l.x,l.y,l.z);u.push(0,x,0);f.x=.5*E+.5;f.y=.5*D*x+.5;p.push(f.x,f.y);t++}for(e=0;e<d;e++)f=A+e,l=I+e,!0===c?k.push(l,l+1,f):
+k.push(l+1,l,f),r+=3;m.addGroup(w,r,!0===c?1:2);w+=r}E.call(this);this.type="CylinderBufferGeometry";this.parameters={radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,openEnded:f,thetaStart:g,thetaLength:h};var m=this;a=void 0!==a?a:1;b=void 0!==b?b:1;c=c||1;d=Math.floor(d)||8;e=Math.floor(e)||1;f=void 0!==f?f:!1;g=void 0!==g?g:0;h=void 0!==h?h:2*Math.PI;var k=[],q=[],u=[],p=[],t=0,v=[],y=c/2,w=0;(function(){var f,l,r=new n,z=new n,B=0,A=(b-a)/c;for(l=0;l<=e;l++){var D=[],E=l/
+e,I=E*(b-a)+a;for(f=0;f<=d;f++){var C=f/d,G=C*h+g,J=Math.sin(G);G=Math.cos(G);z.x=I*J;z.y=-E*c+y;z.z=I*G;q.push(z.x,z.y,z.z);r.set(J,A,G).normalize();u.push(r.x,r.y,r.z);p.push(C,1-E);D.push(t++)}v.push(D)}for(f=0;f<d;f++)for(l=0;l<e;l++)r=v[l+1][f],z=v[l+1][f+1],A=v[l][f+1],k.push(v[l][f],r,A),k.push(r,z,A),B+=6;m.addGroup(w,B,0);w+=B})();!1===f&&(0<a&&l(!0),0<b&&l(!1));this.setIndex(k);this.setAttribute("position",new A(q,3));this.setAttribute("normal",new A(u,3));this.setAttribute("uv",new A(p,
+2))}function he(a,b,c,d,e,f,g){hc.call(this,0,a,b,c,d,e,f,g);this.type="ConeGeometry";this.parameters={radius:a,height:b,radialSegments:c,heightSegments:d,openEnded:e,thetaStart:f,thetaLength:g}}function ie(a,b,c,d,e,f,g){rb.call(this,0,a,b,c,d,e,f,g);this.type="ConeBufferGeometry";this.parameters={radius:a,height:b,radialSegments:c,heightSegments:d,openEnded:e,thetaStart:f,thetaLength:g}}function je(a,b,c,d){C.call(this);this.type="CircleGeometry";this.parameters={radius:a,segments:b,thetaStart:c,
+thetaLength:d};this.fromBufferGeometry(new Yc(a,b,c,d));this.mergeVertices()}function Yc(a,b,c,d){E.call(this);this.type="CircleBufferGeometry";this.parameters={radius:a,segments:b,thetaStart:c,thetaLength:d};a=a||1;b=void 0!==b?Math.max(3,b):8;c=void 0!==c?c:0;d=void 0!==d?d:2*Math.PI;var e=[],f=[],g=[],h=[],l,m=new n,k=new B;f.push(0,0,0);g.push(0,0,1);h.push(.5,.5);var q=0;for(l=3;q<=b;q++,l+=3){var u=c+q/b*d;m.x=a*Math.cos(u);m.y=a*Math.sin(u);f.push(m.x,m.y,m.z);g.push(0,0,1);k.x=(f[l]/a+1)/
+2;k.y=(f[l+1]/a+1)/2;h.push(k.x,k.y)}for(l=1;l<=b;l++)e.push(l,l+1,0);this.setIndex(e);this.setAttribute("position",new A(f,3));this.setAttribute("normal",new A(g,3));this.setAttribute("uv",new A(h,2))}function ic(a){O.call(this);this.type="ShadowMaterial";this.color=new J(0);this.transparent=!0;this.setValues(a)}function Zc(a){va.call(this,a);this.type="RawShaderMaterial"}function eb(a){O.call(this);this.defines={STANDARD:""};this.type="MeshStandardMaterial";this.color=new J(16777215);this.metalness=
+this.roughness=.5;this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new J(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new B(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.envMap=this.alphaMap=this.metalnessMap=this.roughnessMap=null;this.envMapIntensity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=
+1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function jc(a){eb.call(this);this.defines={STANDARD:"",PHYSICAL:""};this.type="MeshPhysicalMaterial";this.reflectivity=.5;this.clearcoatRoughness=this.clearcoat=0;this.sheen=null;this.clearcoatNormalScale=new B(1,1);this.clearcoatNormalMap=null;this.transparency=0;this.setValues(a)}function Ra(a){O.call(this);this.type="MeshPhongMaterial";this.color=new J(16777215);this.specular=
+new J(1118481);this.shininess=30;this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new J(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new B(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.envMap=this.alphaMap=this.specularMap=null;this.combine=0;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=
+1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function kc(a){Ra.call(this);this.defines={TOON:""};this.type="MeshToonMaterial";this.gradientMap=null;this.setValues(a)}function lc(a){O.call(this);this.type="MeshNormalMaterial";this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new B(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=!1;
+this.wireframeLinewidth=1;this.morphNormals=this.morphTargets=this.skinning=this.fog=!1;this.setValues(a)}function mc(a){O.call(this);this.type="MeshLambertMaterial";this.color=new J(16777215);this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new J(0);this.emissiveIntensity=1;this.envMap=this.alphaMap=this.specularMap=this.emissiveMap=null;this.combine=0;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;
+this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function nc(a){O.call(this);this.defines={MATCAP:""};this.type="MeshMatcapMaterial";this.color=new J(16777215);this.bumpMap=this.map=this.matcap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new B(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.alphaMap=null;this.morphNormals=this.morphTargets=this.skinning=
+!1;this.setValues(a)}function oc(a){R.call(this);this.type="LineDashedMaterial";this.scale=1;this.dashSize=3;this.gapSize=1;this.setValues(a)}function Ia(a,b,c,d){this.parameterPositions=a;this._cachedIndex=0;this.resultBuffer=void 0!==d?d:new b.constructor(c);this.sampleValues=b;this.valueSize=c}function Re(a,b,c,d){Ia.call(this,a,b,c,d);this._offsetNext=this._weightNext=this._offsetPrev=this._weightPrev=-0}function ke(a,b,c,d){Ia.call(this,a,b,c,d)}function Se(a,b,c,d){Ia.call(this,a,b,c,d)}function sa(a,
+b,c,d){if(void 0===a)throw Error("THREE.KeyframeTrack: track name is undefined");if(void 0===b||0===b.length)throw Error("THREE.KeyframeTrack: no keyframes in track named "+a);this.name=a;this.times=ta.convertArray(b,this.TimeBufferType);this.values=ta.convertArray(c,this.ValueBufferType);this.setInterpolation(d||this.DefaultInterpolation)}function Te(a,b,c){sa.call(this,a,b,c)}function Ue(a,b,c,d){sa.call(this,a,b,c,d)}function $c(a,b,c,d){sa.call(this,a,b,c,d)}function Ve(a,b,c,d){Ia.call(this,
+a,b,c,d)}function le(a,b,c,d){sa.call(this,a,b,c,d)}function We(a,b,c,d){sa.call(this,a,b,c,d)}function ad(a,b,c,d){sa.call(this,a,b,c,d)}function Ma(a,b,c){this.name=a;this.tracks=c;this.duration=void 0!==b?b:-1;this.uuid=P.generateUUID();0>this.duration&&this.resetDuration()}function rk(a){switch(a.toLowerCase()){case "scalar":case "double":case "float":case "number":case "integer":return $c;case "vector":case "vector2":case "vector3":case "vector4":return ad;case "color":return Ue;case "quaternion":return le;
+case "bool":case "boolean":return Te;case "string":return We}throw Error("THREE.KeyframeTrack: Unsupported typeName: "+a);}function sk(a){if(void 0===a.type)throw Error("THREE.KeyframeTrack: track type undefined, can not parse");var b=rk(a.type);if(void 0===a.times){var c=[],d=[];ta.flattenJSON(a.keys,c,d,"value");a.times=c;a.values=d}return void 0!==b.parse?b.parse(a):new b(a.name,a.times,a.values,a.interpolation)}function og(a,b,c){var d=this,e=!1,f=0,g=0,h=void 0,l=[];this.onStart=void 0;this.onLoad=
+a;this.onProgress=b;this.onError=c;this.itemStart=function(a){g++;if(!1===e&&void 0!==d.onStart)d.onStart(a,f,g);e=!0};this.itemEnd=function(a){f++;if(void 0!==d.onProgress)d.onProgress(a,f,g);if(f===g&&(e=!1,void 0!==d.onLoad))d.onLoad()};this.itemError=function(a){if(void 0!==d.onError)d.onError(a)};this.resolveURL=function(a){return h?h(a):a};this.setURLModifier=function(a){h=a;return this};this.addHandler=function(a,b){l.push(a,b);return this};this.removeHandler=function(a){a=l.indexOf(a);-1!==
+a&&l.splice(a,2);return this};this.getHandler=function(a){for(var b=0,c=l.length;b<c;b+=2){var d=l[b+1];if(l[b].test(a))return d}return null}}function V(a){this.manager=void 0!==a?a:Zh;this.crossOrigin="anonymous";this.resourcePath=this.path=""}function Na(a){V.call(this,a)}function pg(a){V.call(this,a)}function qg(a){V.call(this,a)}function Xe(a){V.call(this,a)}function bd(a){V.call(this,a)}function Ye(a){V.call(this,a)}function Ze(a){V.call(this,a)}function G(){this.type="Curve";this.arcLengthDivisions=
+200}function Ja(a,b,c,d,e,f,g,h){G.call(this);this.type="EllipseCurve";this.aX=a||0;this.aY=b||0;this.xRadius=c||1;this.yRadius=d||1;this.aStartAngle=e||0;this.aEndAngle=f||2*Math.PI;this.aClockwise=g||!1;this.aRotation=h||0}function cd(a,b,c,d,e,f){Ja.call(this,a,b,c,c,d,e,f);this.type="ArcCurve"}function rg(){var a=0,b=0,c=0,d=0;return{initCatmullRom:function(e,f,g,h,l){e=l*(g-e);h=l*(h-f);a=f;b=e;c=-3*f+3*g-2*e-h;d=2*f-2*g+e+h},initNonuniformCatmullRom:function(e,f,g,h,l,m,k){e=((f-e)/l-(g-e)/
+(l+m)+(g-f)/m)*m;h=((g-f)/m-(h-f)/(m+k)+(h-g)/k)*m;a=f;b=e;c=-3*f+3*g-2*e-h;d=2*f-2*g+e+h},calc:function(e){var f=e*e;return a+b*e+c*f+d*f*e}}}function na(a,b,c,d){G.call(this);this.type="CatmullRomCurve3";this.points=a||[];this.closed=b||!1;this.curveType=c||"centripetal";this.tension=d||.5}function $h(a,b,c,d,e){b=.5*(d-b);e=.5*(e-c);var f=a*a;return(2*c-2*d+b+e)*a*f+(-3*c+3*d-2*b-e)*f+b*a+c}function me(a,b,c,d){var e=1-a;return e*e*b+2*(1-a)*a*c+a*a*d}function ne(a,b,c,d,e){var f=1-a,g=1-a;return f*
+f*f*b+3*g*g*a*c+3*(1-a)*a*a*d+a*a*a*e}function Sa(a,b,c,d){G.call(this);this.type="CubicBezierCurve";this.v0=a||new B;this.v1=b||new B;this.v2=c||new B;this.v3=d||new B}function fb(a,b,c,d){G.call(this);this.type="CubicBezierCurve3";this.v0=a||new n;this.v1=b||new n;this.v2=c||new n;this.v3=d||new n}function Da(a,b){G.call(this);this.type="LineCurve";this.v1=a||new B;this.v2=b||new B}function Ta(a,b){G.call(this);this.type="LineCurve3";this.v1=a||new n;this.v2=b||new n}function Ua(a,b,c){G.call(this);
+this.type="QuadraticBezierCurve";this.v0=a||new B;this.v1=b||new B;this.v2=c||new B}function gb(a,b,c){G.call(this);this.type="QuadraticBezierCurve3";this.v0=a||new n;this.v1=b||new n;this.v2=c||new n}function Va(a){G.call(this);this.type="SplineCurve";this.points=a||[]}function sb(){G.call(this);this.type="CurvePath";this.curves=[];this.autoClose=!1}function Wa(a){sb.call(this);this.type="Path";this.currentPoint=new B;a&&this.setFromPoints(a)}function Ib(a){Wa.call(this,a);this.uuid=P.generateUUID();
+this.type="Shape";this.holes=[]}function T(a,b){D.call(this);this.type="Light";this.color=new J(a);this.intensity=void 0!==b?b:1;this.receiveShadow=void 0}function $e(a,b,c){T.call(this,a,c);this.type="HemisphereLight";this.castShadow=void 0;this.position.copy(D.DefaultUp);this.updateMatrix();this.groundColor=new J(b)}function hb(a){this.camera=a;this.bias=0;this.radius=1;this.mapSize=new B(512,512);this.mapPass=this.map=null;this.matrix=new Q;this._frustum=new Ed;this._frameExtents=new B(1,1);this._viewportCount=
+1;this._viewports=[new da(0,0,1,1)]}function af(){hb.call(this,new U(50,1,.5,500))}function bf(a,b,c,d,e,f){T.call(this,a,b);this.type="SpotLight";this.position.copy(D.DefaultUp);this.updateMatrix();this.target=new D;Object.defineProperty(this,"power",{get:function(){return this.intensity*Math.PI},set:function(a){this.intensity=a/Math.PI}});this.distance=void 0!==c?c:0;this.angle=void 0!==d?d:Math.PI/3;this.penumbra=void 0!==e?e:0;this.decay=void 0!==f?f:1;this.shadow=new af}function sg(){hb.call(this,
+new U(90,1,.5,500));this._frameExtents=new B(4,2);this._viewportCount=6;this._viewports=[new da(2,1,1,1),new da(0,1,1,1),new da(3,1,1,1),new da(1,1,1,1),new da(3,0,1,1),new da(1,0,1,1)];this._cubeDirections=[new n(1,0,0),new n(-1,0,0),new n(0,0,1),new n(0,0,-1),new n(0,1,0),new n(0,-1,0)];this._cubeUps=[new n(0,1,0),new n(0,1,0),new n(0,1,0),new n(0,1,0),new n(0,0,1),new n(0,0,-1)]}function cf(a,b,c,d){T.call(this,a,b);this.type="PointLight";Object.defineProperty(this,"power",{get:function(){return 4*
+this.intensity*Math.PI},set:function(a){this.intensity=a/(4*Math.PI)}});this.distance=void 0!==c?c:0;this.decay=void 0!==d?d:1;this.shadow=new sg}function oe(a,b,c,d,e,f){bb.call(this);this.type="OrthographicCamera";this.zoom=1;this.view=null;this.left=void 0!==a?a:-1;this.right=void 0!==b?b:1;this.top=void 0!==c?c:1;this.bottom=void 0!==d?d:-1;this.near=void 0!==e?e:.1;this.far=void 0!==f?f:2E3;this.updateProjectionMatrix()}function df(){hb.call(this,new oe(-5,5,5,-5,.5,500))}function ef(a,b){T.call(this,
+a,b);this.type="DirectionalLight";this.position.copy(D.DefaultUp);this.updateMatrix();this.target=new D;this.shadow=new df}function ff(a,b){T.call(this,a,b);this.type="AmbientLight";this.castShadow=void 0}function gf(a,b,c,d){T.call(this,a,b);this.type="RectAreaLight";this.width=void 0!==c?c:10;this.height=void 0!==d?d:10}function hf(a){V.call(this,a);this.textures={}}function jf(){E.call(this);this.type="InstancedBufferGeometry";this.maxInstancedCount=void 0}function kf(a,b,c,d){"number"===typeof c&&
+(d=c,c=!1,console.error("THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument."));N.call(this,a,b,c);this.meshPerAttribute=d||1}function lf(a){V.call(this,a)}function mf(a){V.call(this,a)}function tg(a){"undefined"===typeof createImageBitmap&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported.");"undefined"===typeof fetch&&console.warn("THREE.ImageBitmapLoader: fetch() not supported.");V.call(this,a);this.options=void 0}function ug(){this.type=
+"ShapePath";this.color=new J;this.subPaths=[];this.currentPath=null}function vg(a){this.type="Font";this.data=a}function wg(a){V.call(this,a)}function nf(a){V.call(this,a)}function of(){this.coefficients=[];for(var a=0;9>a;a++)this.coefficients.push(new n)}function Xa(a,b){T.call(this,void 0,b);this.sh=void 0!==a?a:new of}function xg(a,b,c){Xa.call(this,void 0,c);a=(new J).set(a);c=(new J).set(b);b=new n(a.r,a.g,a.b);a=new n(c.r,c.g,c.b);c=Math.sqrt(Math.PI);var d=c*Math.sqrt(.75);this.sh.coefficients[0].copy(b).add(a).multiplyScalar(c);
+this.sh.coefficients[1].copy(b).sub(a).multiplyScalar(d)}function yg(a,b){Xa.call(this,void 0,b);a=(new J).set(a);this.sh.coefficients[0].set(a.r,a.g,a.b).multiplyScalar(2*Math.sqrt(Math.PI))}function ai(){this.type="StereoCamera";this.aspect=1;this.eyeSep=.064;this.cameraL=new U;this.cameraL.layers.enable(1);this.cameraL.matrixAutoUpdate=!1;this.cameraR=new U;this.cameraR.layers.enable(2);this.cameraR.matrixAutoUpdate=!1;this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}
+function zg(a){this.autoStart=void 0!==a?a:!0;this.elapsedTime=this.oldTime=this.startTime=0;this.running=!1}function Ag(){D.call(this);this.type="AudioListener";this.context=Bg.getContext();this.gain=this.context.createGain();this.gain.connect(this.context.destination);this.filter=null;this.timeDelta=0;this._clock=new zg}function dd(a){D.call(this);this.type="Audio";this.listener=a;this.context=a.context;this.gain=this.context.createGain();this.gain.connect(a.getInput());this.autoplay=!1;this.buffer=
+null;this.detune=0;this.loop=!1;this.offset=this.loopEnd=this.loopStart=0;this.duration=void 0;this.playbackRate=1;this.isPlaying=!1;this.hasPlaybackControl=!0;this.sourceType="empty";this._pausedAt=this._startedAt=0;this.filters=[]}function Cg(a){dd.call(this,a);this.panner=this.context.createPanner();this.panner.panningModel="HRTF";this.panner.connect(this.gain)}function Dg(a,b){this.analyser=a.context.createAnalyser();this.analyser.fftSize=void 0!==b?b:2048;this.data=new Uint8Array(this.analyser.frequencyBinCount);
+a.getOutput().connect(this.analyser)}function Eg(a,b,c){this.binding=a;this.valueSize=c;a=Float64Array;switch(b){case "quaternion":b=this._slerp;break;case "string":case "bool":a=Array;b=this._select;break;default:b=this._lerp}this.buffer=new a(4*c);this._mixBufferRegion=b;this.referenceCount=this.useCount=this.cumulativeWeight=0}function bi(a,b,c){c=c||ya.parseTrackName(b);this._targetGroup=a;this._bindings=a.subscribe_(b,c)}function ya(a,b,c){this.path=b;this.parsedPath=c||ya.parseTrackName(b);
+this.node=ya.findNode(a,this.parsedPath.nodeName)||a;this.rootNode=a}function ci(){this.uuid=P.generateUUID();this._objects=Array.prototype.slice.call(arguments);this.nCachedObjects_=0;var a={};this._indicesByUUID=a;for(var b=0,c=arguments.length;b!==c;++b)a[arguments[b].uuid]=b;this._paths=[];this._parsedPaths=[];this._bindings=[];this._bindingsIndicesByPath={};var d=this;this.stats={objects:{get total(){return d._objects.length},get inUse(){return this.total-d.nCachedObjects_}},get bindingsPerObject(){return d._bindings.length}}}
+function di(a,b,c){this._mixer=a;this._clip=b;this._localRoot=c||null;a=b.tracks;b=a.length;c=Array(b);for(var d={endingStart:2400,endingEnd:2400},e=0;e!==b;++e){var f=a[e].createInterpolant(null);c[e]=f;f.settings=d}this._interpolantSettings=d;this._interpolants=c;this._propertyBindings=Array(b);this._weightInterpolant=this._timeScaleInterpolant=this._byClipCacheIndex=this._cacheIndex=null;this.loop=2201;this._loopCount=-1;this._startTime=null;this.time=0;this._effectiveWeight=this.weight=this._effectiveTimeScale=
+this.timeScale=1;this.repetitions=Infinity;this.paused=!1;this.enabled=!0;this.clampWhenFinished=!1;this.zeroSlopeAtEnd=this.zeroSlopeAtStart=!0}function Fg(a){this._root=a;this._initMemoryManager();this.time=this._accuIndex=0;this.timeScale=1}function pf(a,b){"string"===typeof a&&(console.warn("THREE.Uniform: Type parameter is no longer needed."),a=b);this.value=a}function Gg(a,b,c){pb.call(this,a,b);this.meshPerAttribute=c||1}function ei(a,b,c,d){this.ray=new Rb(a,b);this.near=c||0;this.far=d||
+Infinity;this.camera=null;this.params={Mesh:{},Line:{},LOD:{},Points:{threshold:1},Sprite:{}};Object.defineProperties(this.params,{PointCloud:{get:function(){console.warn("THREE.Raycaster: params.PointCloud has been renamed to params.Points.");return this.Points}}})}function fi(a,b){return a.distance-b.distance}function Hg(a,b,c,d){if(!1!==a.visible&&(a.raycast(b,c),!0===d)){a=a.children;d=0;for(var e=a.length;d<e;d++)Hg(a[d],b,c,!0)}}function gi(a,b,c){this.radius=void 0!==a?a:1;this.phi=void 0!==
+b?b:0;this.theta=void 0!==c?c:0;return this}function hi(a,b,c){this.radius=void 0!==a?a:1;this.theta=void 0!==b?b:0;this.y=void 0!==c?c:0;return this}function Ig(a,b){this.min=void 0!==a?a:new B(Infinity,Infinity);this.max=void 0!==b?b:new B(-Infinity,-Infinity)}function Jg(a,b){this.start=void 0!==a?a:new n;this.end=void 0!==b?b:new n}function pe(a){D.call(this);this.material=a;this.render=function(){}}function qe(a,b,c,d){this.object=a;this.size=void 0!==b?b:1;a=void 0!==c?c:16711680;d=void 0!==
+d?d:1;b=0;(c=this.object.geometry)&&c.isGeometry?b=3*c.faces.length:c&&c.isBufferGeometry&&(b=c.attributes.normal.count);c=new E;b=new A(6*b,3);c.setAttribute("position",b);X.call(this,c,new R({color:a,linewidth:d}));this.matrixAutoUpdate=!1;this.update()}function ed(a,b){D.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=b;a=new E;b=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(var c=0,d=1;32>c;c++,d++){var e=
+c/32*Math.PI*2,f=d/32*Math.PI*2;b.push(Math.cos(e),Math.sin(e),1,Math.cos(f),Math.sin(f),1)}a.setAttribute("position",new A(b,3));b=new R({fog:!1});this.cone=new X(a,b);this.add(this.cone);this.update()}function ii(a){var b=[];a&&a.isBone&&b.push(a);for(var c=0;c<a.children.length;c++)b.push.apply(b,ii(a.children[c]));return b}function fd(a){for(var b=ii(a),c=new E,d=[],e=[],f=new J(0,0,1),g=new J(0,1,0),h=0;h<b.length;h++){var l=b[h];l.parent&&l.parent.isBone&&(d.push(0,0,0),d.push(0,0,0),e.push(f.r,
+f.g,f.b),e.push(g.r,g.g,g.b))}c.setAttribute("position",new A(d,3));c.setAttribute("color",new A(e,3));d=new R({vertexColors:2,depthTest:!1,depthWrite:!1,transparent:!0});X.call(this,c,d);this.root=a;this.bones=b;this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1}function gd(a,b,c){this.light=a;this.light.updateMatrixWorld();this.color=c;a=new Hb(b,4,2);b=new Ga({wireframe:!0,fog:!1});ea.call(this,a,b);this.matrix=this.light.matrixWorld;this.matrixAutoUpdate=!1;this.update()}function hd(a,b){this.type=
+"RectAreaLightHelper";this.light=a;this.color=b;a=new E;a.setAttribute("position",new A([1,1,0,-1,1,0,-1,-1,0,1,-1,0,1,1,0],3));a.computeBoundingSphere();b=new R({fog:!1});ra.call(this,a,b);a=new E;a.setAttribute("position",new A([1,1,0,-1,1,0,-1,-1,0,1,1,0,-1,-1,0,1,-1,0],3));a.computeBoundingSphere();this.add(new ea(a,new Ga({side:1,fog:!1})));this.update()}function id(a,b,c){D.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=c;
+a=new bc(b);a.rotateY(.5*Math.PI);this.material=new Ga({wireframe:!0,fog:!1});void 0===this.color&&(this.material.vertexColors=2);b=a.getAttribute("position");b=new Float32Array(3*b.count);a.setAttribute("color",new N(b,3));this.add(new ea(a,this.material));this.update()}function jd(a,b){this.lightProbe=a;this.size=b;a=new va({defines:{GAMMA_OUTPUT:""},uniforms:{sh:{value:this.lightProbe.sh.coefficients},intensity:{value:this.lightProbe.intensity}},vertexShader:"varying vec3 vNormal;\nvoid main() {\n\tvNormal = normalize( normalMatrix * normal );\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}",
+fragmentShader:"#define RECIPROCAL_PI 0.318309886\nvec3 inverseTransformDirection( in vec3 normal, in mat4 matrix ) {\n\t// matrix is assumed to be orthogonal\n\treturn normalize( ( vec4( normal, 0.0 ) * matrix ).xyz );\n}\nvec3 linearToOutput( in vec3 a ) {\n\t#ifdef GAMMA_OUTPUT\n\t\treturn pow( a, vec3( 1.0 / float( GAMMA_FACTOR ) ) );\n\t#else\n\t\treturn a;\n\t#endif\n}\n// source: https://graphics.stanford.edu/papers/envmap/envmap.pdf\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\t// normal is assumed to have unit length\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\t// band 0\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\t// band 1\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\t// band 2\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nuniform vec3 sh[ 9 ]; // sh coefficients\nuniform float intensity; // light probe intensity\nvarying vec3 vNormal;\nvoid main() {\n\tvec3 normal = normalize( vNormal );\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, sh );\n\tvec3 outgoingLight = RECIPROCAL_PI * irradiance * intensity;\n\toutgoingLight = linearToOutput( outgoingLight );\n\tgl_FragColor = vec4( outgoingLight, 1.0 );\n}"});
+b=new Hb(1,32,16);ea.call(this,b,a);this.onBeforeRender()}function qf(a,b,c,d){a=a||10;b=b||10;c=new J(void 0!==c?c:4473924);d=new J(void 0!==d?d:8947848);var e=b/2,f=a/b,g=a/2;a=[];for(var h=[],l=0,m=0,k=-g;l<=b;l++,k+=f){a.push(-g,0,k,g,0,k);a.push(k,0,-g,k,0,g);var q=l===e?c:d;q.toArray(h,m);m+=3;q.toArray(h,m);m+=3;q.toArray(h,m);m+=3;q.toArray(h,m);m+=3}b=new E;b.setAttribute("position",new A(a,3));b.setAttribute("color",new A(h,3));c=new R({vertexColors:2});X.call(this,b,c)}function rf(a,b,
+c,d,e,f){a=a||10;b=b||16;c=c||8;d=d||64;e=new J(void 0!==e?e:4473924);f=new J(void 0!==f?f:8947848);var g=[],h=[],l;for(l=0;l<=b;l++){var m=l/b*2*Math.PI;var k=Math.sin(m)*a;m=Math.cos(m)*a;g.push(0,0,0);g.push(k,0,m);var q=l&1?e:f;h.push(q.r,q.g,q.b);h.push(q.r,q.g,q.b)}for(l=0;l<=c;l++){q=l&1?e:f;var n=a-a/c*l;for(b=0;b<d;b++)m=b/d*2*Math.PI,k=Math.sin(m)*n,m=Math.cos(m)*n,g.push(k,0,m),h.push(q.r,q.g,q.b),m=(b+1)/d*2*Math.PI,k=Math.sin(m)*n,m=Math.cos(m)*n,g.push(k,0,m),h.push(q.r,q.g,q.b)}a=new E;
+a.setAttribute("position",new A(g,3));a.setAttribute("color",new A(h,3));g=new R({vertexColors:2});X.call(this,a,g)}function kd(a,b,c,d){this.audio=a;this.range=b||1;this.divisionsInnerAngle=c||16;this.divisionsOuterAngle=d||2;a=new E;b=new Float32Array(3*(3*(this.divisionsInnerAngle+2*this.divisionsOuterAngle)+3));a.setAttribute("position",new N(b,3));b=new R({color:65280});c=new R({color:16776960});ra.call(this,a,[c,b]);this.update()}function re(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=0;(c=this.object.geometry)&&c.isGeometry?b=c.faces.length:console.warn("THREE.FaceNormalsHelper: only THREE.Geometry is supported. Use THREE.VertexNormalsHelper, instead.");c=new E;b=new A(6*b,3);c.setAttribute("position",b);X.call(this,c,new R({color:a,linewidth:d}));this.matrixAutoUpdate=!1;this.update()}function ld(a,b,c){D.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=c;void 0===b&&
+(b=1);a=new E;a.setAttribute("position",new A([-b,b,0,b,b,0,b,-b,0,-b,-b,0,-b,b,0],3));b=new R({fog:!1});this.lightPlane=new ra(a,b);this.add(this.lightPlane);a=new E;a.setAttribute("position",new A([0,0,0,0,0,1],3));this.targetLine=new ra(a,b);this.add(this.targetLine);this.update()}function se(a){function b(a,b,d){c(a,d);c(b,d)}function c(a,b){f.push(0,0,0);g.push(b.r,b.g,b.b);void 0===h[a]&&(h[a]=[]);h[a].push(f.length/3-1)}var d=new E,e=new R({color:16777215,vertexColors:1}),f=[],g=[],h={},l=
+new J(16755200),m=new J(16711680),k=new J(43775),q=new J(16777215),n=new J(3355443);b("n1","n2",l);b("n2","n4",l);b("n4","n3",l);b("n3","n1",l);b("f1","f2",l);b("f2","f4",l);b("f4","f3",l);b("f3","f1",l);b("n1","f1",l);b("n2","f2",l);b("n3","f3",l);b("n4","f4",l);b("p","n1",m);b("p","n2",m);b("p","n3",m);b("p","n4",m);b("u1","u2",k);b("u2","u3",k);b("u3","u1",k);b("c","t",q);b("p","c",n);b("cn1","cn2",n);b("cn3","cn4",n);b("cf1","cf2",n);b("cf3","cf4",n);d.setAttribute("position",new A(f,3));d.setAttribute("color",
+new A(g,3));X.call(this,d,e);this.camera=a;this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.pointMap=h;this.update()}function oa(a,b,c,d,e,f,g){sf.set(e,f,g).unproject(d);a=b[a];if(void 0!==a)for(c=c.getAttribute("position"),b=0,d=a.length;b<d;b++)c.setXYZ(a[b],sf.x,sf.y,sf.z)}function tb(a,b){this.object=a;void 0===b&&(b=16776960);a=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]);var c=new Float32Array(24),
+d=new E;d.setIndex(new N(a,1));d.setAttribute("position",new N(c,3));X.call(this,d,new R({color:b}));this.matrixAutoUpdate=!1;this.update()}function te(a,b){this.type="Box3Helper";this.box=a;b=b||16776960;a=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]);var c=new E;c.setIndex(new N(a,1));c.setAttribute("position",new A([1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3));X.call(this,c,new R({color:b}));this.geometry.computeBoundingSphere()}function ue(a,b,c){this.type=
+"PlaneHelper";this.plane=a;this.size=void 0===b?1:b;a=void 0!==c?c:16776960;b=new E;b.setAttribute("position",new A([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,0,1,0,0,0],3));b.computeBoundingSphere();ra.call(this,b,new R({color:a}));b=new E;b.setAttribute("position",new A([1,1,1,-1,1,1,-1,-1,1,1,1,1,-1,-1,1,1,-1,1],3));b.computeBoundingSphere();this.add(new ea(b,new Ga({color:a,opacity:.2,transparent:!0,depthWrite:!1})))}function ub(a,b,c,d,e,f){D.call(this);void 0===a&&(a=new n(0,
+0,1));void 0===b&&(b=new n(0,0,0));void 0===c&&(c=1);void 0===d&&(d=16776960);void 0===e&&(e=.2*c);void 0===f&&(f=.2*e);void 0===tf&&(tf=new E,tf.setAttribute("position",new A([0,0,0,0,1,0],3)),Kg=new rb(0,.5,1,5,1),Kg.translate(0,-.5,0));this.position.copy(b);this.line=new ra(tf,new R({color:d}));this.line.matrixAutoUpdate=!1;this.add(this.line);this.cone=new ea(Kg,new Ga({color:d}));this.cone.matrixAutoUpdate=!1;this.add(this.cone);this.setDirection(a);this.setLength(c,e,f)}function ve(a){a=a||
+1;var b=[0,0,0,a,0,0,0,0,0,0,a,0,0,0,0,0,0,a];a=new E;a.setAttribute("position",new A(b,3));a.setAttribute("color",new A([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));b=new R({vertexColors:2});X.call(this,a,b)}function ji(a){console.warn("THREE.ClosedSplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.");na.call(this,a);this.type="catmullrom";this.closed=!0}function ki(a){console.warn("THREE.SplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.");na.call(this,a);this.type=
+"catmullrom"}function Lg(a){console.warn("THREE.Spline has been removed. Use THREE.CatmullRomCurve3 instead.");na.call(this,a);this.type="catmullrom"}void 0===Number.EPSILON&&(Number.EPSILON=Math.pow(2,-52));void 0===Number.isInteger&&(Number.isInteger=function(a){return"number"===typeof a&&isFinite(a)&&Math.floor(a)===a});void 0===Math.sign&&(Math.sign=function(a){return 0>a?-1:0<a?1:+a});!1==="name"in Function.prototype&&Object.defineProperty(Function.prototype,"name",{get:function(){return this.toString().match(/^\s*function\s*([^\(\s]*)/)[1]}});
+void 0===Object.assign&&(Object.assign=function(a){if(void 0===a||null===a)throw new TypeError("Cannot convert undefined or null to object");for(var b=Object(a),c=1;c<arguments.length;c++){var d=arguments[c];if(void 0!==d&&null!==d)for(var e in d)Object.prototype.hasOwnProperty.call(d,e)&&(b[e]=d[e])}return b});Object.assign(Ba.prototype,{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)},removeEventListener:function(a,b){void 0!==this._listeners&&(a=this._listeners[a],void 0!==a&&(b=a.indexOf(b),-1!==b&&a.splice(b,1)))},dispatchEvent:function(a){if(void 0!==this._listeners){var b=this._listeners[a.type];if(void 0!==b){a.target=this;b=b.slice(0);for(var c=0,d=b.length;c<d;c++)b[c].call(this,a)}}}});for(var pa=[],we=0;256>we;we++)pa[we]=(16>we?"0":"")+
+we.toString(16);var P={DEG2RAD:Math.PI/180,RAD2DEG:180/Math.PI,generateUUID:function(){var a=4294967295*Math.random()|0,b=4294967295*Math.random()|0,c=4294967295*Math.random()|0,d=4294967295*Math.random()|0;return(pa[a&255]+pa[a>>8&255]+pa[a>>16&255]+pa[a>>24&255]+"-"+pa[b&255]+pa[b>>8&255]+"-"+pa[b>>16&15|64]+pa[b>>24&255]+"-"+pa[c&63|128]+pa[c>>8&255]+"-"+pa[c>>16&255]+pa[c>>24&255]+pa[d&255]+pa[d>>8&255]+pa[d>>16&255]+pa[d>>24&255]).toUpperCase()},clamp:function(a,b,c){return Math.max(b,Math.min(c,
+a))},euclideanModulo:function(a,b){return(a%b+b)%b},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},lerp:function(a,b,c){return(1-c)*a+c*b},smoothstep:function(a,b,c){if(a<=b)return 0;if(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)},randInt:function(a,b){return a+Math.floor(Math.random()*(b-a+1))},randFloat:function(a,b){return a+Math.random()*(b-a)},randFloatSpread:function(a){return a*
+(.5-Math.random())},degToRad:function(a){return a*P.DEG2RAD},radToDeg:function(a){return a*P.RAD2DEG},isPowerOfTwo:function(a){return 0===(a&a-1)&&0!==a},ceilPowerOfTwo:function(a){return Math.pow(2,Math.ceil(Math.log(a)/Math.LN2))},floorPowerOfTwo:function(a){return Math.pow(2,Math.floor(Math.log(a)/Math.LN2))}};Object.defineProperties(B.prototype,{width:{get:function(){return this.x},set:function(a){this.x=a}},height:{get:function(){return this.y},set:function(a){this.y=a}}});Object.assign(B.prototype,
+{isVector2:!0,set:function(a,b){this.x=a;this.y=b;return this},setScalar:function(a){this.y=this.x=a;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);}return this},getComponent:function(a){switch(a){case 0:return this.x;case 1:return this.y;default:throw Error("index is out of range: "+a);}},clone:function(){return new this.constructor(this.x,
+this.y)},copy:function(a){this.x=a.x;this.y=a.y;return this},add:function(a,b){if(void 0!==b)return console.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},addScaledVector:function(a,b){this.x+=a.x*b;this.y+=a.y*b;return this},sub:function(a,b){if(void 0!==b)return console.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){return this.multiplyScalar(1/a)},applyMatrix3:function(a){var b=this.x,c=this.y;a=a.elements;this.x=a[0]*b+a[3]*c+a[6];this.y=
+a[1]*b+a[4]*c+a[7];return this},min:function(a){this.x=Math.min(this.x,a.x);this.y=Math.min(this.y,a.y);return this},max:function(a){this.x=Math.max(this.x,a.x);this.y=Math.max(this.y,a.y);return this},clamp:function(a,b){this.x=Math.max(a.x,Math.min(b.x,this.x));this.y=Math.max(a.y,Math.min(b.y,this.y));return this},clampScalar:function(a,b){this.x=Math.max(a,Math.min(b,this.x));this.y=Math.max(a,Math.min(b,this.y));return this},clampLength:function(a,b){var c=this.length();return this.divideScalar(c||
+1).multiplyScalar(Math.max(a,Math.min(b,c)))},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},cross:function(a){return this.x*a.y-this.y*a.x},lengthSq:function(){return this.x*this.x+this.y*this.y},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)},normalize:function(){return this.divideScalar(this.length()||1)},angle:function(){var a=Math.atan2(this.y,this.x);0>a&&(a+=2*Math.PI);return a},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},manhattanDistanceTo:function(a){return Math.abs(this.x-a.x)+Math.abs(this.y-a.y)},setLength:function(a){return this.normalize().multiplyScalar(a)},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){return this.subVectors(b,a).multiplyScalar(c).add(a)},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},fromBufferAttribute:function(a,b,c){void 0!==c&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute().");this.x=a.getX(b);this.y=a.getY(b);return this},rotateAround:function(a,b){var c=Math.cos(b);b=Math.sin(b);var d=this.x-a.x,e=this.y-a.y;this.x=d*c-e*b+a.x;this.y=d*b+e*c+a.y;return this}});Object.assign(wa,{slerp:function(a,b,c,d){return c.copy(a).slerp(b,d)},slerpFlat:function(a,b,c,d,e,f,g){var h=
+c[d+0],l=c[d+1],m=c[d+2];c=c[d+3];d=e[f+0];var k=e[f+1],q=e[f+2];e=e[f+3];if(c!==e||h!==d||l!==k||m!==q){f=1-g;var n=h*d+l*k+m*q+c*e,p=0<=n?1:-1,t=1-n*n;t>Number.EPSILON&&(t=Math.sqrt(t),n=Math.atan2(t,n*p),f=Math.sin(f*n)/t,g=Math.sin(g*n)/t);p*=g;h=h*f+d*p;l=l*f+k*p;m=m*f+q*p;c=c*f+e*p;f===1-g&&(g=1/Math.sqrt(h*h+l*l+m*m+c*c),h*=g,l*=g,m*=g,c*=g)}a[b]=h;a[b+1]=l;a[b+2]=m;a[b+3]=c}});Object.defineProperties(wa.prototype,{x:{get:function(){return this._x},set:function(a){this._x=a;this._onChangeCallback()}},
+y:{get:function(){return this._y},set:function(a){this._y=a;this._onChangeCallback()}},z:{get:function(){return this._z},set:function(a){this._z=a;this._onChangeCallback()}},w:{get:function(){return this._w},set:function(a){this._w=a;this._onChangeCallback()}}});Object.assign(wa.prototype,{isQuaternion:!0,set:function(a,b,c,d){this._x=a;this._y=b;this._z=c;this._w=d;this._onChangeCallback();return this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._w)},copy:function(a){this._x=
+a.x;this._y=a.y;this._z=a.z;this._w=a.w;this._onChangeCallback();return this},setFromEuler:function(a,b){if(!a||!a.isEuler)throw Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");var c=a._x,d=a._y,e=a._z;a=a.order;var f=Math.cos,g=Math.sin,h=f(c/2),l=f(d/2);f=f(e/2);c=g(c/2);d=g(d/2);e=g(e/2);"XYZ"===a?(this._x=c*l*f+h*d*e,this._y=h*d*f-c*l*e,this._z=h*l*e+c*d*f,this._w=h*l*f-c*d*e):"YXZ"===a?(this._x=c*l*f+h*d*e,this._y=h*d*f-c*l*e,this._z=
+h*l*e-c*d*f,this._w=h*l*f+c*d*e):"ZXY"===a?(this._x=c*l*f-h*d*e,this._y=h*d*f+c*l*e,this._z=h*l*e+c*d*f,this._w=h*l*f-c*d*e):"ZYX"===a?(this._x=c*l*f-h*d*e,this._y=h*d*f+c*l*e,this._z=h*l*e-c*d*f,this._w=h*l*f+c*d*e):"YZX"===a?(this._x=c*l*f+h*d*e,this._y=h*d*f+c*l*e,this._z=h*l*e-c*d*f,this._w=h*l*f-c*d*e):"XZY"===a&&(this._x=c*l*f-h*d*e,this._y=h*d*f-c*l*e,this._z=h*l*e+c*d*f,this._w=h*l*f+c*d*e);!1!==b&&this._onChangeCallback();return this},setFromAxisAngle:function(a,b){b/=2;var c=Math.sin(b);
+this._x=a.x*c;this._y=a.y*c;this._z=a.z*c;this._w=Math.cos(b);this._onChangeCallback();return this},setFromRotationMatrix:function(a){var b=a.elements,c=b[0];a=b[4];var d=b[8],e=b[1],f=b[5],g=b[9],h=b[2],l=b[6];b=b[10];var m=c+f+b;0<m?(c=.5/Math.sqrt(m+1),this._w=.25/c,this._x=(l-g)*c,this._y=(d-h)*c,this._z=(e-a)*c):c>f&&c>b?(c=2*Math.sqrt(1+c-f-b),this._w=(l-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+l)/
+c):(c=2*Math.sqrt(1+b-c-f),this._w=(e-a)/c,this._x=(d+h)/c,this._y=(g+l)/c,this._z=.25*c);this._onChangeCallback();return this},setFromUnitVectors:function(a,b){var c=a.dot(b)+1;1E-6>c?(c=0,Math.abs(a.x)>Math.abs(a.z)?(this._x=-a.y,this._y=a.x,this._z=0):(this._x=0,this._y=-a.z,this._z=a.y)):(this._x=a.y*b.z-a.z*b.y,this._y=a.z*b.x-a.x*b.z,this._z=a.x*b.y-a.y*b.x);this._w=c;return this.normalize()},angleTo:function(a){return 2*Math.acos(Math.abs(P.clamp(this.dot(a),-1,1)))},rotateTowards:function(a,
+b){var c=this.angleTo(a);if(0===c)return this;this.slerp(a,Math.min(1,b/c));return this},inverse:function(){return this.conjugate()},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?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(a,b)):this.multiplyQuaternions(this,a)},premultiply:function(a){return this.multiplyQuaternions(a,this)},multiplyQuaternions:function(a,b){var c=a._x,d=a._y,e=a._z;a=a._w;
+var f=b._x,g=b._y,h=b._z;b=b._w;this._x=c*b+a*f+d*h-e*g;this._y=d*b+a*g+e*f-c*h;this._z=e*b+a*h+c*g-d*f;this._w=a*b-c*f-d*g-e*h;this._onChangeCallback();return 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;a=1-g*g;if(a<=Number.EPSILON)return g=1-b,this._w=g*
+f+b*this._w,this._x=g*c+b*this._x,this._y=g*d+b*this._y,this._z=g*e+b*this._z,this.normalize(),this._onChangeCallback(),this;a=Math.sqrt(a);var h=Math.atan2(a,g);g=Math.sin((1-b)*h)/a;b=Math.sin(b*h)/a;this._w=f*g+this._w*b;this._x=c*g+this._x*b;this._y=d*g+this._y*b;this._z=e*g+this._z*b;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(){}});var Mg=new n,li=new wa;Object.assign(n.prototype,{isVector3:!0,set:function(a,b,c){this.x=a;this.y=b;this.z=c;return this},setScalar:function(a){this.z=this.y=this.x=a;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);}return this},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);}},clone:function(){return new this.constructor(this.x,this.y,this.z)},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 console.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},addScaledVector:function(a,b){this.x+=a.x*b;this.y+=a.y*b;this.z+=a.z*b;return this},sub:function(a,b){if(void 0!==b)return console.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 console.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(a){a&&a.isEuler||console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.");return this.applyQuaternion(li.setFromEuler(a))},applyAxisAngle:function(a,b){return this.applyQuaternion(li.setFromAxisAngle(a,b))},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;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,l=a*c+g*b-e*d,m=a*d+e*c-f*b;b=-e*b-f*c-g*d;this.x=h*a+b*-e+l*-g-m*-f;this.y=l*a+b*-f+m*-e-h*-g;this.z=m*a+b*-g+h*-f-l*-e;return this},
+project:function(a){return this.applyMatrix4(a.matrixWorldInverse).applyMatrix4(a.projectionMatrix)},unproject:function(a){return this.applyMatrix4(a.projectionMatrixInverse).applyMatrix4(a.matrixWorld)},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;return this.normalize()},divide:function(a){this.x/=a.x;this.y/=a.y;this.z/=a.z;return this},divideScalar:function(a){return this.multiplyScalar(1/
+a)},min:function(a){this.x=Math.min(this.x,a.x);this.y=Math.min(this.y,a.y);this.z=Math.min(this.z,a.z);return this},max:function(a){this.x=Math.max(this.x,a.x);this.y=Math.max(this.y,a.y);this.z=Math.max(this.z,a.z);return this},clamp:function(a,b){this.x=Math.max(a.x,Math.min(b.x,this.x));this.y=Math.max(a.y,Math.min(b.y,this.y));this.z=Math.max(a.z,Math.min(b.z,this.z));return this},clampScalar:function(a,b){this.x=Math.max(a,Math.min(b,this.x));this.y=Math.max(a,Math.min(b,this.y));this.z=Math.max(a,
+Math.min(b,this.z));return this},clampLength:function(a,b){var c=this.length();return this.divideScalar(c||1).multiplyScalar(Math.max(a,Math.min(b,c)))},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)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+
+Math.abs(this.z)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(a){return this.normalize().multiplyScalar(a)},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){return this.subVectors(b,a).multiplyScalar(c).add(a)},cross:function(a,b){return void 0!==b?(console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(a,b)):this.crossVectors(this,
+a)},crossVectors:function(a,b){var c=a.x,d=a.y;a=a.z;var e=b.x,f=b.y;b=b.z;this.x=d*b-a*f;this.y=a*e-c*b;this.z=c*f-d*e;return this},projectOnVector:function(a){var b=a.dot(this)/a.lengthSq();return this.copy(a).multiplyScalar(b)},projectOnPlane:function(a){Mg.copy(this).projectOnVector(a);return this.sub(Mg)},reflect:function(a){return this.sub(Mg.copy(a).multiplyScalar(2*this.dot(a)))},angleTo:function(a){var b=Math.sqrt(this.lengthSq()*a.lengthSq());0===b&&console.error("THREE.Vector3: angleTo() can't handle zero length vectors.");
+a=this.dot(a)/b;return Math.acos(P.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},manhattanDistanceTo:function(a){return Math.abs(this.x-a.x)+Math.abs(this.y-a.y)+Math.abs(this.z-a.z)},setFromSpherical:function(a){return this.setFromSphericalCoords(a.radius,a.phi,a.theta)},setFromSphericalCoords:function(a,b,c){var d=Math.sin(b)*a;this.x=d*Math.sin(c);this.y=Math.cos(b)*
+a;this.z=d*Math.cos(c);return this},setFromCylindrical:function(a){return this.setFromCylindricalCoords(a.radius,a.theta,a.y)},setFromCylindricalCoords:function(a,b,c){this.x=a*Math.sin(b);this.y=c;this.z=a*Math.cos(b);return this},setFromMatrixPosition:function(a){a=a.elements;this.x=a[12];this.y=a[13];this.z=a[14];return this},setFromMatrixScale:function(a){var b=this.setFromMatrixColumn(a,0).length(),c=this.setFromMatrixColumn(a,1).length();a=this.setFromMatrixColumn(a,2).length();this.x=b;this.y=
+c;this.z=a;return this},setFromMatrixColumn:function(a,b){return this.fromArray(a.elements,4*b)},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},fromBufferAttribute:function(a,b,c){void 0!==c&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute().");
+this.x=a.getX(b);this.y=a.getY(b);this.z=a.getZ(b);return this}});var pc=new n;Object.assign(Z.prototype,{isMatrix3:!0,set:function(a,b,c,d,e,f,g,h,l){var m=this.elements;m[0]=a;m[1]=d;m[2]=g;m[3]=b;m[4]=e;m[5]=h;m[6]=c;m[7]=f;m[8]=l;return this},identity:function(){this.set(1,0,0,0,1,0,0,0,1);return this},clone:function(){return(new this.constructor).fromArray(this.elements)},copy:function(a){var b=this.elements;a=a.elements;b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=
+a[7];b[8]=a[8];return this},setFromMatrix4:function(a){a=a.elements;this.set(a[0],a[4],a[8],a[1],a[5],a[9],a[2],a[6],a[10]);return this},applyToBufferAttribute:function(a){for(var b=0,c=a.count;b<c;b++)pc.x=a.getX(b),pc.y=a.getY(b),pc.z=a.getZ(b),pc.applyMatrix3(this),a.setXYZ(b,pc.x,pc.y,pc.z);return a},multiply:function(a){return this.multiplyMatrices(this,a)},premultiply:function(a){return this.multiplyMatrices(a,this)},multiplyMatrices:function(a,b){var c=a.elements,d=b.elements;b=this.elements;
+a=c[0];var e=c[3],f=c[6],g=c[1],h=c[4],l=c[7],m=c[2],k=c[5];c=c[8];var q=d[0],n=d[3],p=d[6],t=d[1],v=d[4],y=d[7],w=d[2],x=d[5];d=d[8];b[0]=a*q+e*t+f*w;b[3]=a*n+e*v+f*x;b[6]=a*p+e*y+f*d;b[1]=g*q+h*t+l*w;b[4]=g*n+h*v+l*x;b[7]=g*p+h*y+l*d;b[2]=m*q+k*t+c*w;b[5]=m*n+k*v+c*x;b[8]=m*p+k*y+c*d;return this},multiplyScalar:function(a){var b=this.elements;b[0]*=a;b[3]*=a;b[6]*=a;b[1]*=a;b[4]*=a;b[7]*=a;b[2]*=a;b[5]*=a;b[8]*=a;return this},determinant:function(){var a=this.elements,b=a[0],c=a[1],d=a[2],e=a[3],
+f=a[4],g=a[5],h=a[6],l=a[7];a=a[8];return b*f*a-b*g*l-c*e*a+c*g*h+d*e*l-d*f*h},getInverse:function(a,b){a&&a.isMatrix4&&console.error("THREE.Matrix3: .getInverse() no longer takes a Matrix4 argument.");var c=a.elements;a=this.elements;var d=c[0],e=c[1],f=c[2],g=c[3],h=c[4],l=c[5],m=c[6],k=c[7];c=c[8];var q=c*h-l*k,n=l*m-c*g,p=k*g-h*m,t=d*q+e*n+f*p;if(0===t){if(!0===b)throw Error("THREE.Matrix3: .getInverse() can't invert matrix, determinant is 0");console.warn("THREE.Matrix3: .getInverse() can't invert matrix, determinant is 0");
+return this.identity()}b=1/t;a[0]=q*b;a[1]=(f*k-c*e)*b;a[2]=(l*e-f*h)*b;a[3]=n*b;a[4]=(c*d-f*m)*b;a[5]=(f*g-l*d)*b;a[6]=p*b;a[7]=(e*m-k*d)*b;a[8]=(h*d-e*g)*b;return this},transpose:function(){var a=this.elements;var b=a[1];a[1]=a[3];a[3]=b;b=a[2];a[2]=a[6];a[6]=b;b=a[5];a[5]=a[7];a[7]=b;return this},getNormalMatrix:function(a){return this.setFromMatrix4(a).getInverse(this).transpose()},transposeIntoArray:function(a){var b=this.elements;a[0]=b[0];a[1]=b[3];a[2]=b[6];a[3]=b[1];a[4]=b[4];a[5]=b[7];a[6]=
+b[2];a[7]=b[5];a[8]=b[8];return this},setUvTransform:function(a,b,c,d,e,f,g){var h=Math.cos(e);e=Math.sin(e);this.set(c*h,c*e,-c*(h*f+e*g)+f+a,-d*e,d*h,-d*(-e*f+h*g)+g+b,0,0,1)},scale:function(a,b){var c=this.elements;c[0]*=a;c[3]*=a;c[6]*=a;c[1]*=b;c[4]*=b;c[7]*=b;return this},rotate:function(a){var b=Math.cos(a);a=Math.sin(a);var c=this.elements,d=c[0],e=c[3],f=c[6],g=c[1],h=c[4],l=c[7];c[0]=b*d+a*g;c[3]=b*e+a*h;c[6]=b*f+a*l;c[1]=-a*d+b*g;c[4]=-a*e+b*h;c[7]=-a*f+b*l;return this},translate:function(a,
+b){var c=this.elements;c[0]+=a*c[2];c[3]+=a*c[5];c[6]+=a*c[8];c[1]+=b*c[2];c[4]+=b*c[5];c[7]+=b*c[8];return this},equals:function(a){var b=this.elements;a=a.elements;for(var c=0;9>c;c++)if(b[c]!==a[c])return!1;return!0},fromArray:function(a,b){void 0===b&&(b=0);for(var c=0;9>c;c++)this.elements[c]=a[c+b];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);var c=this.elements;a[b]=c[0];a[b+1]=c[1];a[b+2]=c[2];a[b+3]=c[3];a[b+4]=c[4];a[b+5]=c[5];a[b+6]=c[6];a[b+7]=c[7];a[b+8]=c[8];
+return a}});var md,Jb={getDataURL:function(a){if("undefined"==typeof HTMLCanvasElement)return a.src;if(!(a instanceof HTMLCanvasElement)){void 0===md&&(md=document.createElementNS("http://www.w3.org/1999/xhtml","canvas"));md.width=a.width;md.height=a.height;var b=md.getContext("2d");a instanceof ImageData?b.putImageData(a,0,0):b.drawImage(a,0,0,a.width,a.height);a=md}return 2048<a.width||2048<a.height?a.toDataURL("image/jpeg",.6):a.toDataURL("image/png")}},Si=0;Y.DEFAULT_IMAGE=void 0;Y.DEFAULT_MAPPING=
+300;Y.prototype=Object.assign(Object.create(Ba.prototype),{constructor:Y,isTexture:!0,updateMatrix:function(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.name=a.name;this.image=a.image;this.mipmaps=a.mipmaps.slice(0);this.mapping=a.mapping;this.wrapS=a.wrapS;this.wrapT=a.wrapT;this.magFilter=a.magFilter;this.minFilter=a.minFilter;this.anisotropy=
+a.anisotropy;this.format=a.format;this.type=a.type;this.offset.copy(a.offset);this.repeat.copy(a.repeat);this.center.copy(a.center);this.rotation=a.rotation;this.matrixAutoUpdate=a.matrixAutoUpdate;this.matrix.copy(a.matrix);this.generateMipmaps=a.generateMipmaps;this.premultiplyAlpha=a.premultiplyAlpha;this.flipY=a.flipY;this.unpackAlignment=a.unpackAlignment;this.encoding=a.encoding;return this},toJSON:function(a){var b=void 0===a||"string"===typeof a;if(!b&&void 0!==a.textures[this.uuid])return a.textures[this.uuid];
+var c={metadata:{version:4.5,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,type:this.type,encoding:this.encoding,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};
+if(void 0!==this.image){var d=this.image;void 0===d.uuid&&(d.uuid=P.generateUUID());if(!b&&void 0===a.images[d.uuid]){if(Array.isArray(d)){var e=[];for(var f=0,g=d.length;f<g;f++)e.push(Jb.getDataURL(d[f]))}else e=Jb.getDataURL(d);a.images[d.uuid]={uuid:d.uuid,url:e}}c.image=d.uuid}b||(a.textures[this.uuid]=c);return c},dispose:function(){this.dispatchEvent({type:"dispose"})},transformUv:function(a){if(300!==this.mapping)return a;a.applyMatrix3(this.matrix);if(0>a.x||1<a.x)switch(this.wrapS){case 1E3:a.x-=
+Math.floor(a.x);break;case 1001:a.x=0>a.x?0:1;break;case 1002:a.x=1===Math.abs(Math.floor(a.x)%2)?Math.ceil(a.x)-a.x:a.x-Math.floor(a.x)}if(0>a.y||1<a.y)switch(this.wrapT){case 1E3:a.y-=Math.floor(a.y);break;case 1001:a.y=0>a.y?0:1;break;case 1002:a.y=1===Math.abs(Math.floor(a.y)%2)?Math.ceil(a.y)-a.y:a.y-Math.floor(a.y)}this.flipY&&(a.y=1-a.y);return a}});Object.defineProperty(Y.prototype,"needsUpdate",{set:function(a){!0===a&&this.version++}});Object.defineProperties(da.prototype,{width:{get:function(){return this.z},
+set:function(a){this.z=a}},height:{get:function(){return this.w},set:function(a){this.w=a}}});Object.assign(da.prototype,{isVector4:!0,set:function(a,b,c,d){this.x=a;this.y=b;this.z=c;this.w=d;return this},setScalar:function(a){this.w=this.z=this.y=this.x=a;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);}return this},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);}},clone:function(){return new this.constructor(this.x,this.y,this.z,this.w)},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 console.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},addScaledVector:function(a,b){this.x+=a.x*b;this.y+=a.y*b;this.z+=a.z*b;this.w+=a.w*b;return this},sub:function(a,b){if(void 0!==b)return console.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){return this.multiplyScalar(1/a)},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){a=a.elements;var b=a[0];var c=a[4];var d=a[8],e=a[1],f=a[5],g=a[9];var h=a[2];var l=a[6];var m=a[10];if(.01>Math.abs(c-e)&&.01>Math.abs(d-h)&&.01>Math.abs(g-l)){if(.1>Math.abs(c+
+e)&&.1>Math.abs(d+h)&&.1>Math.abs(g+l)&&.1>Math.abs(b+f+m-3))return this.set(1,0,0,0),this;a=Math.PI;b=(b+1)/2;f=(f+1)/2;m=(m+1)/2;c=(c+e)/4;d=(d+h)/4;g=(g+l)/4;b>f&&b>m?.01>b?(l=0,c=h=.707106781):(l=Math.sqrt(b),h=c/l,c=d/l):f>m?.01>f?(l=.707106781,h=0,c=.707106781):(h=Math.sqrt(f),l=c/h,c=g/h):.01>m?(h=l=.707106781,c=0):(c=Math.sqrt(m),l=d/c,h=g/c);this.set(l,h,c,a);return this}a=Math.sqrt((l-g)*(l-g)+(d-h)*(d-h)+(e-c)*(e-c));.001>Math.abs(a)&&(a=1);this.x=(l-g)/a;this.y=(d-h)/a;this.z=(e-c)/a;
+this.w=Math.acos((b+f+m-1)/2);return this},min:function(a){this.x=Math.min(this.x,a.x);this.y=Math.min(this.y,a.y);this.z=Math.min(this.z,a.z);this.w=Math.min(this.w,a.w);return this},max:function(a){this.x=Math.max(this.x,a.x);this.y=Math.max(this.y,a.y);this.z=Math.max(this.z,a.z);this.w=Math.max(this.w,a.w);return this},clamp:function(a,b){this.x=Math.max(a.x,Math.min(b.x,this.x));this.y=Math.max(a.y,Math.min(b.y,this.y));this.z=Math.max(a.z,Math.min(b.z,this.z));this.w=Math.max(a.w,Math.min(b.w,
+this.w));return this},clampScalar:function(a,b){this.x=Math.max(a,Math.min(b,this.x));this.y=Math.max(a,Math.min(b,this.y));this.z=Math.max(a,Math.min(b,this.z));this.w=Math.max(a,Math.min(b,this.w));return this},clampLength:function(a,b){var c=this.length();return this.divideScalar(c||1).multiplyScalar(Math.max(a,Math.min(b,c)))},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)},manhattanLength: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()||1)},setLength:function(a){return this.normalize().multiplyScalar(a)},
+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){return this.subVectors(b,a).multiplyScalar(c).add(a)},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},fromBufferAttribute:function(a,b,c){void 0!==c&&console.warn("THREE.Vector4: offset has been removed from .fromBufferAttribute().");this.x=a.getX(b);this.y=a.getY(b);this.z=a.getZ(b);this.w=a.getW(b);return this}});la.prototype=Object.assign(Object.create(Ba.prototype),{constructor:la,isWebGLRenderTarget:!0,setSize:function(a,b){if(this.width!==a||this.height!==b)this.width=a,this.height=b,this.texture.image.width=a,this.texture.image.height=b,this.dispose();this.viewport.set(0,0,
+a,b);this.scissor.set(0,0,a,b)},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.width=a.width;this.height=a.height;this.viewport.copy(a.viewport);this.texture=a.texture.clone();this.depthBuffer=a.depthBuffer;this.stencilBuffer=a.stencilBuffer;this.depthTexture=a.depthTexture;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});Sf.prototype=Object.assign(Object.create(la.prototype),{constructor:Sf,isWebGLMultisampleRenderTarget:!0,copy:function(a){la.prototype.copy.call(this,
+a);this.samples=a.samples;return this}});var Ka=new n,ca=new Q,tk=new n(0,0,0),uk=new n(1,1,1),Kb=new n,uf=new n,ja=new n;Object.assign(Q.prototype,{isMatrix4:!0,set:function(a,b,c,d,e,f,g,h,l,m,k,q,n,p,t,v){var r=this.elements;r[0]=a;r[4]=b;r[8]=c;r[12]=d;r[1]=e;r[5]=f;r[9]=g;r[13]=h;r[2]=l;r[6]=m;r[10]=k;r[14]=q;r[3]=n;r[7]=p;r[11]=t;r[15]=v;return this},identity:function(){this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);return this},clone:function(){return(new Q).fromArray(this.elements)},copy:function(a){var b=
+this.elements;a=a.elements;b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];b[9]=a[9];b[10]=a[10];b[11]=a[11];b[12]=a[12];b[13]=a[13];b[14]=a[14];b[15]=a[15];return this},copyPosition:function(a){var b=this.elements;a=a.elements;b[12]=a[12];b[13]=a[13];b[14]=a[14];return this},extractBasis:function(a,b,c){a.setFromMatrixColumn(this,0);b.setFromMatrixColumn(this,1);c.setFromMatrixColumn(this,2);return this},makeBasis:function(a,b,c){this.set(a.x,b.x,c.x,0,a.y,
+b.y,c.y,0,a.z,b.z,c.z,0,0,0,0,1);return this},extractRotation:function(a){var b=this.elements,c=a.elements,d=1/Ka.setFromMatrixColumn(a,0).length(),e=1/Ka.setFromMatrixColumn(a,1).length();a=1/Ka.setFromMatrixColumn(a,2).length();b[0]=c[0]*d;b[1]=c[1]*d;b[2]=c[2]*d;b[3]=0;b[4]=c[4]*e;b[5]=c[5]*e;b[6]=c[6]*e;b[7]=0;b[8]=c[8]*a;b[9]=c[9]*a;b[10]=c[10]*a;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return this},makeRotationFromEuler:function(a){a&&a.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");
+var b=this.elements,c=a.x,d=a.y,e=a.z,f=Math.cos(c);c=Math.sin(c);var g=Math.cos(d);d=Math.sin(d);var h=Math.cos(e);e=Math.sin(e);if("XYZ"===a.order){a=f*h;var l=f*e,m=c*h,k=c*e;b[0]=g*h;b[4]=-g*e;b[8]=d;b[1]=l+m*d;b[5]=a-k*d;b[9]=-c*g;b[2]=k-a*d;b[6]=m+l*d;b[10]=f*g}else"YXZ"===a.order?(a=g*h,l=g*e,m=d*h,k=d*e,b[0]=a+k*c,b[4]=m*c-l,b[8]=f*d,b[1]=f*e,b[5]=f*h,b[9]=-c,b[2]=l*c-m,b[6]=k+a*c,b[10]=f*g):"ZXY"===a.order?(a=g*h,l=g*e,m=d*h,k=d*e,b[0]=a-k*c,b[4]=-f*e,b[8]=m+l*c,b[1]=l+m*c,b[5]=f*h,b[9]=
+k-a*c,b[2]=-f*d,b[6]=c,b[10]=f*g):"ZYX"===a.order?(a=f*h,l=f*e,m=c*h,k=c*e,b[0]=g*h,b[4]=m*d-l,b[8]=a*d+k,b[1]=g*e,b[5]=k*d+a,b[9]=l*d-m,b[2]=-d,b[6]=c*g,b[10]=f*g):"YZX"===a.order?(a=f*g,l=f*d,m=c*g,k=c*d,b[0]=g*h,b[4]=k-a*e,b[8]=m*e+l,b[1]=e,b[5]=f*h,b[9]=-c*h,b[2]=-d*h,b[6]=l*e+m,b[10]=a-k*e):"XZY"===a.order&&(a=f*g,l=f*d,m=c*g,k=c*d,b[0]=g*h,b[4]=-e,b[8]=d*h,b[1]=a*e+k,b[5]=f*h,b[9]=l*e-m,b[2]=m*e-l,b[6]=c*h,b[10]=k*e+a);b[3]=0;b[7]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return this},makeRotationFromQuaternion:function(a){return this.compose(tk,
+a,uk)},lookAt:function(a,b,c){var d=this.elements;ja.subVectors(a,b);0===ja.lengthSq()&&(ja.z=1);ja.normalize();Kb.crossVectors(c,ja);0===Kb.lengthSq()&&(1===Math.abs(c.z)?ja.x+=1E-4:ja.z+=1E-4,ja.normalize(),Kb.crossVectors(c,ja));Kb.normalize();uf.crossVectors(ja,Kb);d[0]=Kb.x;d[4]=uf.x;d[8]=ja.x;d[1]=Kb.y;d[5]=uf.y;d[9]=ja.y;d[2]=Kb.z;d[6]=uf.z;d[10]=ja.z;return this},multiply:function(a,b){return void 0!==b?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),
+this.multiplyMatrices(a,b)):this.multiplyMatrices(this,a)},premultiply:function(a){return this.multiplyMatrices(a,this)},multiplyMatrices:function(a,b){var c=a.elements,d=b.elements;b=this.elements;a=c[0];var e=c[4],f=c[8],g=c[12],h=c[1],l=c[5],m=c[9],k=c[13],q=c[2],n=c[6],p=c[10],t=c[14],v=c[3],y=c[7],w=c[11];c=c[15];var x=d[0],B=d[4],H=d[8],z=d[12],A=d[1],D=d[5],E=d[9],C=d[13],I=d[2],G=d[6],J=d[10],L=d[14],N=d[3],O=d[7],P=d[11];d=d[15];b[0]=a*x+e*A+f*I+g*N;b[4]=a*B+e*D+f*G+g*O;b[8]=a*H+e*E+f*J+
+g*P;b[12]=a*z+e*C+f*L+g*d;b[1]=h*x+l*A+m*I+k*N;b[5]=h*B+l*D+m*G+k*O;b[9]=h*H+l*E+m*J+k*P;b[13]=h*z+l*C+m*L+k*d;b[2]=q*x+n*A+p*I+t*N;b[6]=q*B+n*D+p*G+t*O;b[10]=q*H+n*E+p*J+t*P;b[14]=q*z+n*C+p*L+t*d;b[3]=v*x+y*A+w*I+c*N;b[7]=v*B+y*D+w*G+c*O;b[11]=v*H+y*E+w*J+c*P;b[15]=v*z+y*C+w*L+c*d;return this},multiplyScalar:function(a){var b=this.elements;b[0]*=a;b[4]*=a;b[8]*=a;b[12]*=a;b[1]*=a;b[5]*=a;b[9]*=a;b[13]*=a;b[2]*=a;b[6]*=a;b[10]*=a;b[14]*=a;b[3]*=a;b[7]*=a;b[11]*=a;b[15]*=a;return this},applyToBufferAttribute:function(a){for(var b=
+0,c=a.count;b<c;b++)Ka.x=a.getX(b),Ka.y=a.getY(b),Ka.z=a.getZ(b),Ka.applyMatrix4(this),a.setXYZ(b,Ka.x,Ka.y,Ka.z);return a},determinant:function(){var a=this.elements,b=a[0],c=a[4],d=a[8],e=a[12],f=a[1],g=a[5],h=a[9],l=a[13],m=a[2],k=a[6],q=a[10],n=a[14];return a[3]*(+e*h*k-d*l*k-e*g*q+c*l*q+d*g*n-c*h*n)+a[7]*(+b*h*n-b*l*q+e*f*q-d*f*n+d*l*m-e*h*m)+a[11]*(+b*l*k-b*g*n-e*f*k+c*f*n+e*g*m-c*l*m)+a[15]*(-d*g*m-b*h*k+b*g*q+d*f*k-c*f*q+c*h*m)},transpose:function(){var a=this.elements;var b=a[1];a[1]=a[4];
+a[4]=b;b=a[2];a[2]=a[8];a[8]=b;b=a[6];a[6]=a[9];a[9]=b;b=a[3];a[3]=a[12];a[12]=b;b=a[7];a[7]=a[13];a[13]=b;b=a[11];a[11]=a[14];a[14]=b;return this},setPosition:function(a,b,c){var d=this.elements;a.isVector3?(d[12]=a.x,d[13]=a.y,d[14]=a.z):(d[12]=a,d[13]=b,d[14]=c);return this},getInverse:function(a,b){var c=this.elements,d=a.elements;a=d[0];var e=d[1],f=d[2],g=d[3],h=d[4],l=d[5],m=d[6],k=d[7],q=d[8],n=d[9],p=d[10],t=d[11],v=d[12],y=d[13],w=d[14];d=d[15];var x=n*w*k-y*p*k+y*m*t-l*w*t-n*m*d+l*p*d,
+B=v*p*k-q*w*k-v*m*t+h*w*t+q*m*d-h*p*d,H=q*y*k-v*n*k+v*l*t-h*y*t-q*l*d+h*n*d,z=v*n*m-q*y*m-v*l*p+h*y*p+q*l*w-h*n*w,A=a*x+e*B+f*H+g*z;if(0===A){if(!0===b)throw Error("THREE.Matrix4: .getInverse() can't invert matrix, determinant is 0");console.warn("THREE.Matrix4: .getInverse() can't invert matrix, determinant is 0");return this.identity()}b=1/A;c[0]=x*b;c[1]=(y*p*g-n*w*g-y*f*t+e*w*t+n*f*d-e*p*d)*b;c[2]=(l*w*g-y*m*g+y*f*k-e*w*k-l*f*d+e*m*d)*b;c[3]=(n*m*g-l*p*g-n*f*k+e*p*k+l*f*t-e*m*t)*b;c[4]=B*b;c[5]=
+(q*w*g-v*p*g+v*f*t-a*w*t-q*f*d+a*p*d)*b;c[6]=(v*m*g-h*w*g-v*f*k+a*w*k+h*f*d-a*m*d)*b;c[7]=(h*p*g-q*m*g+q*f*k-a*p*k-h*f*t+a*m*t)*b;c[8]=H*b;c[9]=(v*n*g-q*y*g-v*e*t+a*y*t+q*e*d-a*n*d)*b;c[10]=(h*y*g-v*l*g+v*e*k-a*y*k-h*e*d+a*l*d)*b;c[11]=(q*l*g-h*n*g-q*e*k+a*n*k+h*e*t-a*l*t)*b;c[12]=z*b;c[13]=(q*y*f-v*n*f+v*e*p-a*y*p-q*e*w+a*n*w)*b;c[14]=(v*l*f-h*y*f-v*e*m+a*y*m+h*e*w-a*l*w)*b;c[15]=(h*n*f-q*l*f+q*e*m-a*n*m-h*e*p+a*l*p)*b;return this},scale:function(a){var b=this.elements,c=a.x,d=a.y;a=a.z;b[0]*=c;
+b[4]*=d;b[8]*=a;b[1]*=c;b[5]*=d;b[9]*=a;b[2]*=c;b[6]*=d;b[10]*=a;b[3]*=c;b[7]*=d;b[11]*=a;return this},getMaxScaleOnAxis:function(){var a=this.elements;return Math.sqrt(Math.max(a[0]*a[0]+a[1]*a[1]+a[2]*a[2],a[4]*a[4]+a[5]*a[5]+a[6]*a[6],a[8]*a[8]+a[9]*a[9]+a[10]*a[10]))},makeTranslation:function(a,b,c){this.set(1,0,0,a,0,1,0,b,0,0,1,c,0,0,0,1);return this},makeRotationX:function(a){var b=Math.cos(a);a=Math.sin(a);this.set(1,0,0,0,0,b,-a,0,0,a,b,0,0,0,0,1);return this},makeRotationY:function(a){var b=
+Math.cos(a);a=Math.sin(a);this.set(b,0,a,0,0,1,0,0,-a,0,b,0,0,0,0,1);return this},makeRotationZ:function(a){var b=Math.cos(a);a=Math.sin(a);this.set(b,-a,0,0,a,b,0,0,0,0,1,0,0,0,0,1);return this},makeRotationAxis:function(a,b){var c=Math.cos(b);b=Math.sin(b);var d=1-c,e=a.x,f=a.y;a=a.z;var g=d*e,h=d*f;this.set(g*e+c,g*f-b*a,g*a+b*f,0,g*f+b*a,h*f+c,h*a-b*e,0,g*a-b*f,h*a+b*e,d*a*a+c,0,0,0,0,1);return this},makeScale:function(a,b,c){this.set(a,0,0,0,0,b,0,0,0,0,c,0,0,0,0,1);return this},makeShear:function(a,
+b,c){this.set(1,b,c,0,a,1,c,0,a,b,1,0,0,0,0,1);return this},compose:function(a,b,c){var d=this.elements,e=b._x,f=b._y,g=b._z,h=b._w,l=e+e,m=f+f,k=g+g;b=e*l;var n=e*m;e*=k;var u=f*m;f*=k;g*=k;l*=h;m*=h;h*=k;k=c.x;var p=c.y;c=c.z;d[0]=(1-(u+g))*k;d[1]=(n+h)*k;d[2]=(e-m)*k;d[3]=0;d[4]=(n-h)*p;d[5]=(1-(b+g))*p;d[6]=(f+l)*p;d[7]=0;d[8]=(e+m)*c;d[9]=(f-l)*c;d[10]=(1-(b+u))*c;d[11]=0;d[12]=a.x;d[13]=a.y;d[14]=a.z;d[15]=1;return this},decompose:function(a,b,c){var d=this.elements,e=Ka.set(d[0],d[1],d[2]).length(),
+f=Ka.set(d[4],d[5],d[6]).length(),g=Ka.set(d[8],d[9],d[10]).length();0>this.determinant()&&(e=-e);a.x=d[12];a.y=d[13];a.z=d[14];ca.copy(this);a=1/e;d=1/f;var h=1/g;ca.elements[0]*=a;ca.elements[1]*=a;ca.elements[2]*=a;ca.elements[4]*=d;ca.elements[5]*=d;ca.elements[6]*=d;ca.elements[8]*=h;ca.elements[9]*=h;ca.elements[10]*=h;b.setFromRotationMatrix(ca);c.x=e;c.y=f;c.z=g;return this},makePerspective:function(a,b,c,d,e,f){void 0===f&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");
+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/(c-d);g[9]=(c+d)/(c-d);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},makeOrthographic:function(a,b,c,d,e,f){var g=this.elements,h=1/(b-a),l=1/(c-d),m=1/(f-e);g[0]=2*h;g[4]=0;g[8]=0;g[12]=-((b+a)*h);g[1]=0;g[5]=2*l;g[9]=0;g[13]=-((c+d)*l);g[2]=0;g[6]=0;g[10]=-2*m;g[14]=-((f+e)*m);g[3]=0;g[7]=0;g[11]=0;g[15]=1;return this},equals:function(a){var b=this.elements;
+a=a.elements;for(var c=0;16>c;c++)if(b[c]!==a[c])return!1;return!0},fromArray:function(a,b){void 0===b&&(b=0);for(var c=0;16>c;c++)this.elements[c]=a[c+b];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);var c=this.elements;a[b]=c[0];a[b+1]=c[1];a[b+2]=c[2];a[b+3]=c[3];a[b+4]=c[4];a[b+5]=c[5];a[b+6]=c[6];a[b+7]=c[7];a[b+8]=c[8];a[b+9]=c[9];a[b+10]=c[10];a[b+11]=c[11];a[b+12]=c[12];a[b+13]=c[13];a[b+14]=c[14];a[b+15]=c[15];return a}});var mi=new Q,ni=new wa;Pb.RotationOrders=
+"XYZ YZX ZXY XZY YXZ ZYX".split(" ");Pb.DefaultOrder="XYZ";Object.defineProperties(Pb.prototype,{x:{get:function(){return this._x},set:function(a){this._x=a;this._onChangeCallback()}},y:{get:function(){return this._y},set:function(a){this._y=a;this._onChangeCallback()}},z:{get:function(){return this._z},set:function(a){this._z=a;this._onChangeCallback()}},order:{get:function(){return this._order},set:function(a){this._order=a;this._onChangeCallback()}}});Object.assign(Pb.prototype,{isEuler:!0,set:function(a,
+b,c,d){this._x=a;this._y=b;this._z=c;this._order=d||this._order;this._onChangeCallback();return this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._order)},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=P.clamp,e=a.elements;a=e[0];var f=e[4],g=e[8],h=e[1],l=e[5],m=e[9],k=e[2],n=e[6];e=e[10];b=b||this._order;"XYZ"===b?(this._y=Math.asin(d(g,-1,1)),.9999999>Math.abs(g)?
+(this._x=Math.atan2(-m,e),this._z=Math.atan2(-f,a)):(this._x=Math.atan2(n,l),this._z=0)):"YXZ"===b?(this._x=Math.asin(-d(m,-1,1)),.9999999>Math.abs(m)?(this._y=Math.atan2(g,e),this._z=Math.atan2(h,l)):(this._y=Math.atan2(-k,a),this._z=0)):"ZXY"===b?(this._x=Math.asin(d(n,-1,1)),.9999999>Math.abs(n)?(this._y=Math.atan2(-k,e),this._z=Math.atan2(-f,l)):(this._y=0,this._z=Math.atan2(h,a))):"ZYX"===b?(this._y=Math.asin(-d(k,-1,1)),.9999999>Math.abs(k)?(this._x=Math.atan2(n,e),this._z=Math.atan2(h,a)):
+(this._x=0,this._z=Math.atan2(-f,l))):"YZX"===b?(this._z=Math.asin(d(h,-1,1)),.9999999>Math.abs(h)?(this._x=Math.atan2(-m,l),this._y=Math.atan2(-k,a)):(this._x=0,this._y=Math.atan2(g,e))):"XZY"===b?(this._z=Math.asin(-d(f,-1,1)),.9999999>Math.abs(f)?(this._x=Math.atan2(n,l),this._y=Math.atan2(g,a)):(this._x=Math.atan2(-m,e),this._y=0)):console.warn("THREE.Euler: .setFromRotationMatrix() given unsupported order: "+b);this._order=b;!1!==c&&this._onChangeCallback();return this},setFromQuaternion:function(a,
+b,c){mi.makeRotationFromQuaternion(a);return this.setFromRotationMatrix(mi,b,c)},setFromVector3:function(a,b){return this.set(a.x,a.y,a.z,b||this._order)},reorder:function(a){ni.setFromEuler(this);return this.setFromQuaternion(ni,a)},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 n(this._x,this._y,this._z)},_onChange:function(a){this._onChangeCallback=a;return this},_onChangeCallback:function(){}});Object.assign(Tf.prototype,{set:function(a){this.mask=1<<a|0},enable:function(a){this.mask=this.mask|1<<a|0},enableAll:function(){this.mask=-1},toggle:function(a){this.mask^=1<<a|0},disable:function(a){this.mask&=~(1<<a|
+0)},disableAll:function(){this.mask=0},test:function(a){return 0!==(this.mask&a.mask)}});var Ti=0,oi=new n,nd=new wa,vb=new Q,vf=new n,xe=new n,vk=new n,wk=new wa,pi=new n(1,0,0),qi=new n(0,1,0),ri=new n(0,0,1),xk={type:"added"},yk={type:"removed"};D.DefaultUp=new n(0,1,0);D.DefaultMatrixAutoUpdate=!0;D.prototype=Object.assign(Object.create(Ba.prototype),{constructor:D,isObject3D:!0,onBeforeRender:function(){},onAfterRender:function(){},applyMatrix:function(a){this.matrixAutoUpdate&&this.updateMatrix();
+this.matrix.premultiply(a);this.matrix.decompose(this.position,this.quaternion,this.scale)},applyQuaternion:function(a){this.quaternion.premultiply(a);return this},setRotationFromAxisAngle:function(a,b){this.quaternion.setFromAxisAngle(a,b)},setRotationFromEuler:function(a){this.quaternion.setFromEuler(a,!0)},setRotationFromMatrix:function(a){this.quaternion.setFromRotationMatrix(a)},setRotationFromQuaternion:function(a){this.quaternion.copy(a)},rotateOnAxis:function(a,b){nd.setFromAxisAngle(a,b);
+this.quaternion.multiply(nd);return this},rotateOnWorldAxis:function(a,b){nd.setFromAxisAngle(a,b);this.quaternion.premultiply(nd);return this},rotateX:function(a){return this.rotateOnAxis(pi,a)},rotateY:function(a){return this.rotateOnAxis(qi,a)},rotateZ:function(a){return this.rotateOnAxis(ri,a)},translateOnAxis:function(a,b){oi.copy(a).applyQuaternion(this.quaternion);this.position.add(oi.multiplyScalar(b));return this},translateX:function(a){return this.translateOnAxis(pi,a)},translateY:function(a){return this.translateOnAxis(qi,
+a)},translateZ:function(a){return this.translateOnAxis(ri,a)},localToWorld:function(a){return a.applyMatrix4(this.matrixWorld)},worldToLocal:function(a){return a.applyMatrix4(vb.getInverse(this.matrixWorld))},lookAt:function(a,b,c){a.isVector3?vf.copy(a):vf.set(a,b,c);a=this.parent;this.updateWorldMatrix(!0,!1);xe.setFromMatrixPosition(this.matrixWorld);this.isCamera||this.isLight?vb.lookAt(xe,vf,this.up):vb.lookAt(vf,xe,this.up);this.quaternion.setFromRotationMatrix(vb);a&&(vb.extractRotation(a.matrixWorld),
+nd.setFromRotationMatrix(vb),this.quaternion.premultiply(nd.inverse()))},add:function(a){if(1<arguments.length){for(var b=0;b<arguments.length;b++)this.add(arguments[b]);return this}if(a===this)return console.error("THREE.Object3D.add: object can't be added as a child of itself.",a),this;a&&a.isObject3D?(null!==a.parent&&a.parent.remove(a),a.parent=this,this.children.push(a),a.dispatchEvent(xk)):console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.",a);return this},remove:function(a){if(1<
+arguments.length){for(var b=0;b<arguments.length;b++)this.remove(arguments[b]);return this}b=this.children.indexOf(a);-1!==b&&(a.parent=null,this.children.splice(b,1),a.dispatchEvent(yk));return this},attach:function(a){this.updateWorldMatrix(!0,!1);vb.getInverse(this.matrixWorld);null!==a.parent&&(a.parent.updateWorldMatrix(!0,!1),vb.multiply(a.parent.matrixWorld));a.applyMatrix(vb);a.updateWorldMatrix(!1,!1);this.add(a);return this},getObjectById:function(a){return this.getObjectByProperty("id",
+a)},getObjectByName:function(a){return this.getObjectByProperty("name",a)},getObjectByProperty:function(a,b){if(this[a]===b)return this;for(var c=0,d=this.children.length;c<d;c++){var e=this.children[c].getObjectByProperty(a,b);if(void 0!==e)return e}},getWorldPosition:function(a){void 0===a&&(console.warn("THREE.Object3D: .getWorldPosition() target is now required"),a=new n);this.updateMatrixWorld(!0);return a.setFromMatrixPosition(this.matrixWorld)},getWorldQuaternion:function(a){void 0===a&&(console.warn("THREE.Object3D: .getWorldQuaternion() target is now required"),
+a=new wa);this.updateMatrixWorld(!0);this.matrixWorld.decompose(xe,a,vk);return a},getWorldScale:function(a){void 0===a&&(console.warn("THREE.Object3D: .getWorldScale() target is now required"),a=new n);this.updateMatrixWorld(!0);this.matrixWorld.decompose(xe,wk,a);return a},getWorldDirection:function(a){void 0===a&&(console.warn("THREE.Object3D: .getWorldDirection() target is now required"),a=new n);this.updateMatrixWorld(!0);var b=this.matrixWorld.elements;return a.set(b[8],b[9],b[10]).normalize()},
+raycast:function(){},traverse:function(a){a(this);for(var b=this.children,c=0,d=b.length;c<d;c++)b[c].traverse(a)},traverseVisible:function(a){if(!1!==this.visible){a(this);for(var b=this.children,c=0,d=b.length;c<d;c++)b[c].traverseVisible(a)}},traverseAncestors:function(a){var b=this.parent;null!==b&&(a(b),b.traverseAncestors(a))},updateMatrix:function(){this.matrix.compose(this.position,this.quaternion,this.scale);this.matrixWorldNeedsUpdate=!0},updateMatrixWorld:function(a){this.matrixAutoUpdate&&
+this.updateMatrix();if(this.matrixWorldNeedsUpdate||a)null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1,a=!0;for(var b=this.children,c=0,d=b.length;c<d;c++)b[c].updateMatrixWorld(a)},updateWorldMatrix:function(a,b){var c=this.parent;!0===a&&null!==c&&c.updateWorldMatrix(!0,!1);this.matrixAutoUpdate&&this.updateMatrix();null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,
+this.matrix);if(!0===b)for(a=this.children,b=0,c=a.length;b<c;b++)a[b].updateWorldMatrix(!1,!0)},toJSON:function(a){function b(b,c){void 0===b[c.uuid]&&(b[c.uuid]=c.toJSON(a));return c.uuid}function c(a){var b=[],c;for(c in a){var d=a[c];delete d.metadata;b.push(d)}return b}var d=void 0===a||"string"===typeof a,e={};d&&(a={geometries:{},materials:{},textures:{},images:{},shapes:{}},e.metadata={version:4.5,type:"Object",generator:"Object3D.toJSON"});var f={};f.uuid=this.uuid;f.type=this.type;""!==
+this.name&&(f.name=this.name);!0===this.castShadow&&(f.castShadow=!0);!0===this.receiveShadow&&(f.receiveShadow=!0);!1===this.visible&&(f.visible=!1);!1===this.frustumCulled&&(f.frustumCulled=!1);0!==this.renderOrder&&(f.renderOrder=this.renderOrder);"{}"!==JSON.stringify(this.userData)&&(f.userData=this.userData);f.layers=this.layers.mask;f.matrix=this.matrix.toArray();!1===this.matrixAutoUpdate&&(f.matrixAutoUpdate=!1);this.isMesh&&0!==this.drawMode&&(f.drawMode=this.drawMode);this.isInstancedMesh&&
+(f.type="InstancedMesh",f.count=this.count,f.instanceMatrix=this.instanceMatrix.toJSON());if(this.isMesh||this.isLine||this.isPoints){f.geometry=b(a.geometries,this.geometry);var g=this.geometry.parameters;if(void 0!==g&&void 0!==g.shapes)if(g=g.shapes,Array.isArray(g))for(var h=0,l=g.length;h<l;h++)b(a.shapes,g[h]);else b(a.shapes,g)}if(void 0!==this.material)if(Array.isArray(this.material)){g=[];h=0;for(l=this.material.length;h<l;h++)g.push(b(a.materials,this.material[h]));f.material=g}else f.material=
+b(a.materials,this.material);if(0<this.children.length)for(f.children=[],h=0;h<this.children.length;h++)f.children.push(this.children[h].toJSON(a).object);if(d){d=c(a.geometries);h=c(a.materials);l=c(a.textures);var m=c(a.images);g=c(a.shapes);0<d.length&&(e.geometries=d);0<h.length&&(e.materials=h);0<l.length&&(e.textures=l);0<m.length&&(e.images=m);0<g.length&&(e.shapes=g)}e.object=f;return e},clone:function(a){return(new this.constructor).copy(this,a)},copy:function(a,b){void 0===b&&(b=!0);this.name=
+a.name;this.up.copy(a.up);this.position.copy(a.position);this.quaternion.copy(a.quaternion);this.scale.copy(a.scale);this.matrix.copy(a.matrix);this.matrixWorld.copy(a.matrixWorld);this.matrixAutoUpdate=a.matrixAutoUpdate;this.matrixWorldNeedsUpdate=a.matrixWorldNeedsUpdate;this.layers.mask=a.layers.mask;this.visible=a.visible;this.castShadow=a.castShadow;this.receiveShadow=a.receiveShadow;this.frustumCulled=a.frustumCulled;this.renderOrder=a.renderOrder;this.userData=JSON.parse(JSON.stringify(a.userData));
+if(!0===b)for(b=0;b<a.children.length;b++)this.add(a.children[b].clone());return this}});wd.prototype=Object.assign(Object.create(D.prototype),{constructor:wd,isScene:!0,copy:function(a,b){D.prototype.copy.call(this,a,b);null!==a.background&&(this.background=a.background.clone());null!==a.fog&&(this.fog=a.fog.clone());null!==a.overrideMaterial&&(this.overrideMaterial=a.overrideMaterial.clone());this.autoUpdate=a.autoUpdate;this.matrixAutoUpdate=a.matrixAutoUpdate;return this},toJSON:function(a){var b=
+D.prototype.toJSON.call(this,a);null!==this.background&&(b.object.background=this.background.toJSON(a));null!==this.fog&&(b.object.fog=this.fog.toJSON());return b},dispose:function(){this.dispatchEvent({type:"dispose"})}});var wb=[new n,new n,new n,new n,new n,new n,new n,new n],ib=new n,od=new n,pd=new n,qd=new n,Lb=new n,Mb=new n,qc=new n,ye=new n,wf=new n,xf=new n,Qb=new n;Object.assign(ab.prototype,{isBox3:!0,set:function(a,b){this.min.copy(a);this.max.copy(b);return this},setFromArray:function(a){for(var b=
+Infinity,c=Infinity,d=Infinity,e=-Infinity,f=-Infinity,g=-Infinity,h=0,l=a.length;h<l;h+=3){var m=a[h],k=a[h+1],n=a[h+2];m<b&&(b=m);k<c&&(c=k);n<d&&(d=n);m>e&&(e=m);k>f&&(f=k);n>g&&(g=n)}this.min.set(b,c,d);this.max.set(e,f,g);return this},setFromBufferAttribute:function(a){for(var b=Infinity,c=Infinity,d=Infinity,e=-Infinity,f=-Infinity,g=-Infinity,h=0,l=a.count;h<l;h++){var m=a.getX(h),k=a.getY(h),n=a.getZ(h);m<b&&(b=m);k<c&&(c=k);n<d&&(d=n);m>e&&(e=m);k>f&&(f=k);n>g&&(g=n)}this.min.set(b,c,d);
+this.max.set(e,f,g);return this},setFromPoints:function(a){this.makeEmpty();for(var b=0,c=a.length;b<c;b++)this.expandByPoint(a[b]);return this},setFromCenterAndSize:function(a,b){b=ib.copy(b).multiplyScalar(.5);this.min.copy(a).sub(b);this.max.copy(a).add(b);return this},setFromObject:function(a){this.makeEmpty();return this.expandByObject(a)},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.min.copy(a.min);this.max.copy(a.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},isEmpty:function(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z},getCenter:function(a){void 0===a&&(console.warn("THREE.Box3: .getCenter() target is now required"),a=new n);return this.isEmpty()?a.set(0,0,0):a.addVectors(this.min,this.max).multiplyScalar(.5)},getSize:function(a){void 0===a&&(console.warn("THREE.Box3: .getSize() target is now required"),a=new n);return this.isEmpty()?
+a.set(0,0,0):a.subVectors(this.max,this.min)},expandByPoint:function(a){this.min.min(a);this.max.max(a);return this},expandByVector:function(a){this.min.sub(a);this.max.add(a);return this},expandByScalar:function(a){this.min.addScalar(-a);this.max.addScalar(a);return this},expandByObject:function(a){var b;a.updateWorldMatrix(!1,!1);var c=a.geometry;if(void 0!==c)if(c.isGeometry){var d=c.vertices;c=0;for(b=d.length;c<b;c++)ib.copy(d[c]),ib.applyMatrix4(a.matrixWorld),this.expandByPoint(ib)}else if(c.isBufferGeometry&&
+(d=c.attributes.position,void 0!==d))for(c=0,b=d.count;c<b;c++)ib.fromBufferAttribute(d,c).applyMatrix4(a.matrixWorld),this.expandByPoint(ib);a=a.children;c=0;for(b=a.length;c<b;c++)this.expandByObject(a[c]);return this},containsPoint:function(a){return a.x<this.min.x||a.x>this.max.x||a.y<this.min.y||a.y>this.max.y||a.z<this.min.z||a.z>this.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},getParameter:function(a,b){void 0===b&&(console.warn("THREE.Box3: .getParameter() target is now required"),b=new n);return b.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))},intersectsBox:function(a){return a.max.x<this.min.x||a.min.x>this.max.x||a.max.y<this.min.y||a.min.y>this.max.y||a.max.z<this.min.z||a.min.z>this.max.z?!1:!0},intersectsSphere:function(a){this.clampPoint(a.center,ib);return ib.distanceToSquared(a.center)<=
+a.radius*a.radius},intersectsPlane:function(a){if(0<a.normal.x){var b=a.normal.x*this.min.x;var c=a.normal.x*this.max.x}else b=a.normal.x*this.max.x,c=a.normal.x*this.min.x;0<a.normal.y?(b+=a.normal.y*this.min.y,c+=a.normal.y*this.max.y):(b+=a.normal.y*this.max.y,c+=a.normal.y*this.min.y);0<a.normal.z?(b+=a.normal.z*this.min.z,c+=a.normal.z*this.max.z):(b+=a.normal.z*this.max.z,c+=a.normal.z*this.min.z);return b<=-a.constant&&c>=-a.constant},intersectsTriangle:function(a){if(this.isEmpty())return!1;
+this.getCenter(ye);wf.subVectors(this.max,ye);od.subVectors(a.a,ye);pd.subVectors(a.b,ye);qd.subVectors(a.c,ye);Lb.subVectors(pd,od);Mb.subVectors(qd,pd);qc.subVectors(od,qd);a=[0,-Lb.z,Lb.y,0,-Mb.z,Mb.y,0,-qc.z,qc.y,Lb.z,0,-Lb.x,Mb.z,0,-Mb.x,qc.z,0,-qc.x,-Lb.y,Lb.x,0,-Mb.y,Mb.x,0,-qc.y,qc.x,0];if(!Uf(a,od,pd,qd,wf))return!1;a=[1,0,0,0,1,0,0,0,1];if(!Uf(a,od,pd,qd,wf))return!1;xf.crossVectors(Lb,Mb);a=[xf.x,xf.y,xf.z];return Uf(a,od,pd,qd,wf)},clampPoint:function(a,b){void 0===b&&(console.warn("THREE.Box3: .clampPoint() target is now required"),
+b=new n);return b.copy(a).clamp(this.min,this.max)},distanceToPoint:function(a){return ib.copy(a).clamp(this.min,this.max).sub(a).length()},getBoundingSphere:function(a){void 0===a&&console.error("THREE.Box3: .getBoundingSphere() target is now required");this.getCenter(a.center);a.radius=.5*this.getSize(ib).length();return a},intersect:function(a){this.min.max(a.min);this.max.min(a.max);this.isEmpty()&&this.makeEmpty();return this},union:function(a){this.min.min(a.min);this.max.max(a.max);return this},
+applyMatrix4:function(a){if(this.isEmpty())return this;wb[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(a);wb[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(a);wb[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(a);wb[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(a);wb[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(a);wb[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(a);wb[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(a);wb[7].set(this.max.x,this.max.y,
+this.max.z).applyMatrix4(a);this.setFromPoints(wb);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)}});var zk=new ab;Object.assign(mb.prototype,{set:function(a,b){this.center.copy(a);this.radius=b;return this},setFromPoints:function(a,b){var c=this.center;void 0!==b?c.copy(b):zk.setFromPoints(a).getCenter(c);for(var d=b=0,e=a.length;d<e;d++)b=Math.max(b,c.distanceToSquared(a[d]));this.radius=Math.sqrt(b);
+return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.center.copy(a.center);this.radius=a.radius;return this},empty:function(){return 0>=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},intersectsBox:function(a){return a.intersectsSphere(this)},
+intersectsPlane:function(a){return Math.abs(a.distanceToPoint(this.center))<=this.radius},clampPoint:function(a,b){var c=this.center.distanceToSquared(a);void 0===b&&(console.warn("THREE.Sphere: .clampPoint() target is now required"),b=new n);b.copy(a);c>this.radius*this.radius&&(b.sub(this.center).normalize(),b.multiplyScalar(this.radius).add(this.center));return b},getBoundingBox:function(a){void 0===a&&(console.warn("THREE.Sphere: .getBoundingBox() target is now required"),a=new ab);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}});var xb=new n,Ng=new n,yf=new n,Nb=new n,Og=new n,zf=new n,Pg=new n;Object.assign(Rb.prototype,{set:function(a,b){this.origin.copy(a);this.direction.copy(b);return this},clone:function(){return(new this.constructor).copy(this)},
+copy:function(a){this.origin.copy(a.origin);this.direction.copy(a.direction);return this},at:function(a,b){void 0===b&&(console.warn("THREE.Ray: .at() target is now required"),b=new n);return b.copy(this.direction).multiplyScalar(a).add(this.origin)},lookAt:function(a){this.direction.copy(a).sub(this.origin).normalize();return this},recast:function(a){this.origin.copy(this.at(a,xb));return this},closestPointToPoint:function(a,b){void 0===b&&(console.warn("THREE.Ray: .closestPointToPoint() target is now required"),
+b=new n);b.subVectors(a,this.origin);a=b.dot(this.direction);return 0>a?b.copy(this.origin):b.copy(this.direction).multiplyScalar(a).add(this.origin)},distanceToPoint:function(a){return Math.sqrt(this.distanceSqToPoint(a))},distanceSqToPoint:function(a){var b=xb.subVectors(a,this.origin).dot(this.direction);if(0>b)return this.origin.distanceToSquared(a);xb.copy(this.direction).multiplyScalar(b).add(this.origin);return xb.distanceToSquared(a)},distanceSqToSegment:function(a,b,c,d){Ng.copy(a).add(b).multiplyScalar(.5);
+yf.copy(b).sub(a).normalize();Nb.copy(this.origin).sub(Ng);var e=.5*a.distanceTo(b),f=-this.direction.dot(yf),g=Nb.dot(this.direction),h=-Nb.dot(yf),l=Nb.lengthSq(),m=Math.abs(1-f*f);if(0<m){a=f*h-g;b=f*g-h;var k=e*m;0<=a?b>=-k?b<=k?(e=1/m,a*=e,b*=e,f=a*(a+f*b+2*g)+b*(f*a+b+2*h)+l):(b=e,a=Math.max(0,-(f*b+g)),f=-a*a+b*(b+2*h)+l):(b=-e,a=Math.max(0,-(f*b+g)),f=-a*a+b*(b+2*h)+l):b<=-k?(a=Math.max(0,-(-f*e+g)),b=0<a?-e:Math.min(Math.max(-e,-h),e),f=-a*a+b*(b+2*h)+l):b<=k?(a=0,b=Math.min(Math.max(-e,
+-h),e),f=b*(b+2*h)+l):(a=Math.max(0,-(f*e+g)),b=0<a?e:Math.min(Math.max(-e,-h),e),f=-a*a+b*(b+2*h)+l)}else b=0<f?-e:e,a=Math.max(0,-(f*b+g)),f=-a*a+b*(b+2*h)+l;c&&c.copy(this.direction).multiplyScalar(a).add(this.origin);d&&d.copy(yf).multiplyScalar(b).add(Ng);return f},intersectSphere:function(a,b){xb.subVectors(a.center,this.origin);var c=xb.dot(this.direction),d=xb.dot(xb)-c*c;a=a.radius*a.radius;if(d>a)return null;a=Math.sqrt(a-d);d=c-a;c+=a;return 0>d&&0>c?null:0>d?this.at(c,b):this.at(d,b)},
+intersectsSphere:function(a){return this.distanceSqToPoint(a.center)<=a.radius*a.radius},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){a=this.distanceToPlane(a);return null===a?null:this.at(a,b)},intersectsPlane:function(a){var b=a.distanceToPoint(this.origin);return 0===b||0>a.normal.dot(this.direction)*b?!0:!1},intersectBox:function(a,
+b){var c=1/this.direction.x;var d=1/this.direction.y;var e=1/this.direction.z,f=this.origin;if(0<=c){var g=(a.min.x-f.x)*c;c*=a.max.x-f.x}else g=(a.max.x-f.x)*c,c*=a.min.x-f.x;if(0<=d){var h=(a.min.y-f.y)*d;d*=a.max.y-f.y}else h=(a.max.y-f.y)*d,d*=a.min.y-f.y;if(g>d||h>c)return null;if(h>g||g!==g)g=h;if(d<c||c!==c)c=d;0<=e?(h=(a.min.z-f.z)*e,a=(a.max.z-f.z)*e):(h=(a.max.z-f.z)*e,a=(a.min.z-f.z)*e);if(g>a||h>c)return null;if(h>g||g!==g)g=h;if(a<c||c!==c)c=a;return 0>c?null:this.at(0<=g?g:c,b)},intersectsBox:function(a){return null!==
+this.intersectBox(a,xb)},intersectTriangle:function(a,b,c,d,e){Og.subVectors(b,a);zf.subVectors(c,a);Pg.crossVectors(Og,zf);b=this.direction.dot(Pg);if(0<b){if(d)return null;d=1}else if(0>b)d=-1,b=-b;else return null;Nb.subVectors(this.origin,a);a=d*this.direction.dot(zf.crossVectors(Nb,zf));if(0>a)return null;c=d*this.direction.dot(Og.cross(Nb));if(0>c||a+c>b)return null;a=-d*Nb.dot(Pg);return 0>a?null:this.at(a/b,e)},applyMatrix4:function(a){this.origin.applyMatrix4(a);this.direction.transformDirection(a);
+return this},equals:function(a){return a.origin.equals(this.origin)&&a.direction.equals(this.direction)}});var Qg=new n,Ak=new n,Bk=new Z;Object.assign(Oa.prototype,{isPlane:!0,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(a,b,c){b=Qg.subVectors(c,b).cross(Ak.subVectors(a,
+b)).normalize();this.setFromNormalAndCoplanarPoint(b,a);return this},clone:function(){return(new this.constructor).copy(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){void 0===b&&(console.warn("THREE.Plane: .projectPoint() target is now required"),b=new n);return b.copy(this.normal).multiplyScalar(-this.distanceToPoint(a)).add(a)},intersectLine:function(a,b){void 0===b&&(console.warn("THREE.Plane: .intersectLine() target is now required"),b=new n);var c=a.delta(Qg),d=this.normal.dot(c);if(0===d){if(0===this.distanceToPoint(a.start))return b.copy(a.start)}else if(d=-(a.start.dot(this.normal)+this.constant)/d,!(0>d||1<d))return b.copy(c).multiplyScalar(d).add(a.start)},
+intersectsLine:function(a){var b=this.distanceToPoint(a.start);a=this.distanceToPoint(a.end);return 0>b&&0<a||0>a&&0<b},intersectsBox:function(a){return a.intersectsPlane(this)},intersectsSphere:function(a){return a.intersectsPlane(this)},coplanarPoint:function(a){void 0===a&&(console.warn("THREE.Plane: .coplanarPoint() target is now required"),a=new n);return a.copy(this.normal).multiplyScalar(-this.constant)},applyMatrix4:function(a,b){b=b||Bk.getNormalMatrix(a);a=this.coplanarPoint(Qg).applyMatrix4(a);
+b=this.normal.applyMatrix3(b).normalize();this.constant=-a.dot(b);return this},translate:function(a){this.constant-=a.dot(this.normal);return this},equals:function(a){return a.normal.equals(this.normal)&&a.constant===this.constant}});var Ya=new n,yb=new n,Rg=new n,zb=new n,rd=new n,sd=new n,si=new n,Sg=new n,Tg=new n,Ug=new n;Object.assign(ba,{getNormal:function(a,b,c,d){void 0===d&&(console.warn("THREE.Triangle: .getNormal() target is now required"),d=new n);d.subVectors(c,b);Ya.subVectors(a,b);
+d.cross(Ya);a=d.lengthSq();return 0<a?d.multiplyScalar(1/Math.sqrt(a)):d.set(0,0,0)},getBarycoord:function(a,b,c,d,e){Ya.subVectors(d,b);yb.subVectors(c,b);Rg.subVectors(a,b);a=Ya.dot(Ya);b=Ya.dot(yb);c=Ya.dot(Rg);var f=yb.dot(yb);d=yb.dot(Rg);var g=a*f-b*b;void 0===e&&(console.warn("THREE.Triangle: .getBarycoord() target is now required"),e=new n);if(0===g)return e.set(-2,-1,-1);g=1/g;f=(f*c-b*d)*g;a=(a*d-b*c)*g;return e.set(1-f-a,a,f)},containsPoint:function(a,b,c,d){ba.getBarycoord(a,b,c,d,zb);
+return 0<=zb.x&&0<=zb.y&&1>=zb.x+zb.y},getUV:function(a,b,c,d,e,f,g,h){this.getBarycoord(a,b,c,d,zb);h.set(0,0);h.addScaledVector(e,zb.x);h.addScaledVector(f,zb.y);h.addScaledVector(g,zb.z);return h},isFrontFacing:function(a,b,c,d){Ya.subVectors(c,b);yb.subVectors(a,b);return 0>Ya.cross(yb).dot(d)?!0:!1}});Object.assign(ba.prototype,{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},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.a.copy(a.a);this.b.copy(a.b);this.c.copy(a.c);return this},getArea:function(){Ya.subVectors(this.c,this.b);yb.subVectors(this.a,this.b);return.5*Ya.cross(yb).length()},getMidpoint:function(a){void 0===a&&(console.warn("THREE.Triangle: .getMidpoint() target is now required"),a=new n);return a.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)},getNormal:function(a){return ba.getNormal(this.a,this.b,
+this.c,a)},getPlane:function(a){void 0===a&&(console.warn("THREE.Triangle: .getPlane() target is now required"),a=new Oa);return a.setFromCoplanarPoints(this.a,this.b,this.c)},getBarycoord:function(a,b){return ba.getBarycoord(a,this.a,this.b,this.c,b)},getUV:function(a,b,c,d,e){return ba.getUV(a,this.a,this.b,this.c,b,c,d,e)},containsPoint:function(a){return ba.containsPoint(a,this.a,this.b,this.c)},isFrontFacing:function(a){return ba.isFrontFacing(this.a,this.b,this.c,a)},intersectsBox:function(a){return a.intersectsTriangle(this)},
+closestPointToPoint:function(a,b){void 0===b&&(console.warn("THREE.Triangle: .closestPointToPoint() target is now required"),b=new n);var c=this.a,d=this.b,e=this.c;rd.subVectors(d,c);sd.subVectors(e,c);Sg.subVectors(a,c);var f=rd.dot(Sg),g=sd.dot(Sg);if(0>=f&&0>=g)return b.copy(c);Tg.subVectors(a,d);var h=rd.dot(Tg),l=sd.dot(Tg);if(0<=h&&l<=h)return b.copy(d);var m=f*l-h*g;if(0>=m&&0<=f&&0>=h)return d=f/(f-h),b.copy(c).addScaledVector(rd,d);Ug.subVectors(a,e);a=rd.dot(Ug);var k=sd.dot(Ug);if(0<=
+k&&a<=k)return b.copy(e);f=a*g-f*k;if(0>=f&&0<=g&&0>=k)return m=g/(g-k),b.copy(c).addScaledVector(sd,m);g=h*k-a*l;if(0>=g&&0<=l-h&&0<=a-k)return si.subVectors(e,d),m=(l-h)/(l-h+(a-k)),b.copy(d).addScaledVector(si,m);e=1/(g+f+m);d=f*e;m*=e;return b.copy(c).addScaledVector(rd,d).addScaledVector(sd,m)},equals:function(a){return a.a.equals(this.a)&&a.b.equals(this.b)&&a.c.equals(this.c)}});var ti={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,
+black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,
+darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,
+lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,
+mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,
+purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},
+za={h:0,s:0,l:0},Af={h:0,s:0,l:0};Object.assign(J.prototype,{isColor:!0,r:1,g:1,b:1,set:function(a){a&&a.isColor?this.copy(a):"number"===typeof a?this.setHex(a):"string"===typeof a&&this.setStyle(a);return this},setScalar:function(a){this.b=this.g=this.r=a;return this},setHex:function(a){a=Math.floor(a);this.r=(a>>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){a=P.euclideanModulo(a,1);b=P.clamp(b,
+0,1);c=P.clamp(c,0,1);0===b?this.r=this.g=this.b=c:(b=.5>=c?c*(1+b):c+b-c*b,c=2*c-b,this.r=Vf(c,b,a+1/3),this.g=Vf(c,b,a),this.b=Vf(c,b,a-1/3));return this},setStyle:function(a){function b(b){void 0!==b&&1>parseFloat(b)&&console.warn("THREE.Color: Alpha component of "+a+" will be ignored.")}var c;if(c=/^((?:rgb|hsl)a?)\(\s*([^\)]*)\)/.exec(a)){var d=c[2];switch(c[1]){case "rgb":case "rgba":if(c=/^(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(d))return this.r=Math.min(255,parseInt(c[1],
+10))/255,this.g=Math.min(255,parseInt(c[2],10))/255,this.b=Math.min(255,parseInt(c[3],10))/255,b(c[5]),this;if(c=/^(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(d))return this.r=Math.min(100,parseInt(c[1],10))/100,this.g=Math.min(100,parseInt(c[2],10))/100,this.b=Math.min(100,parseInt(c[3],10))/100,b(c[5]),this;break;case "hsl":case "hsla":if(c=/^([0-9]*\.?[0-9]+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(d)){d=parseFloat(c[1])/360;var e=parseInt(c[2],
+10)/100,f=parseInt(c[3],10)/100;b(c[5]);return this.setHSL(d,e,f)}}}else if(c=/^#([A-Fa-f0-9]+)$/.exec(a)){c=c[1];d=c.length;if(3===d)return this.r=parseInt(c.charAt(0)+c.charAt(0),16)/255,this.g=parseInt(c.charAt(1)+c.charAt(1),16)/255,this.b=parseInt(c.charAt(2)+c.charAt(2),16)/255,this;if(6===d)return this.r=parseInt(c.charAt(0)+c.charAt(1),16)/255,this.g=parseInt(c.charAt(2)+c.charAt(3),16)/255,this.b=parseInt(c.charAt(4)+c.charAt(5),16)/255,this}return a&&0<a.length?this.setColorName(a):this},
+setColorName:function(a){var b=ti[a];void 0!==b?this.setHex(b):console.warn("THREE.Color: Unknown color "+a);return this},clone:function(){return new this.constructor(this.r,this.g,this.b)},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);b=0<b?1/b:1;this.r=Math.pow(a.r,b);this.g=Math.pow(a.g,b);this.b=Math.pow(a.b,
+b);return this},convertGammaToLinear:function(a){this.copyGammaToLinear(this,a);return this},convertLinearToGamma:function(a){this.copyLinearToGamma(this,a);return this},copySRGBToLinear:function(a){this.r=Wf(a.r);this.g=Wf(a.g);this.b=Wf(a.b);return this},copyLinearToSRGB:function(a){this.r=Xf(a.r);this.g=Xf(a.g);this.b=Xf(a.b);return this},convertSRGBToLinear:function(){this.copySRGBToLinear(this);return this},convertLinearToSRGB:function(){this.copyLinearToSRGB(this);return this},getHex:function(){return 255*
+this.r<<16^255*this.g<<8^255*this.b<<0},getHexString:function(){return("000000"+this.getHex().toString(16)).slice(-6)},getHSL:function(a){void 0===a&&(console.warn("THREE.Color: .getHSL() target is now required"),a={h:0,s:0,l:0});var b=this.r,c=this.g,d=this.b,e=Math.max(b,c,d),f=Math.min(b,c,d),g,h=(f+e)/2;if(f===e)f=g=0;else{var l=e-f;f=.5>=h?l/(e+f):l/(2-e-f);switch(e){case b:g=(c-d)/l+(c<d?6:0);break;case c:g=(d-b)/l+2;break;case d:g=(b-c)/l+4}g/=6}a.h=g;a.s=f;a.l=h;return a},getStyle:function(){return"rgb("+
+(255*this.r|0)+","+(255*this.g|0)+","+(255*this.b|0)+")"},offsetHSL:function(a,b,c){this.getHSL(za);za.h+=a;za.s+=b;za.l+=c;this.setHSL(za.h,za.s,za.l);return this},add:function(a){this.r+=a.r;this.g+=a.g;this.b+=a.b;return this},addColors:function(a,b){this.r=a.r+b.r;this.g=a.g+b.g;this.b=a.b+b.b;return this},addScalar:function(a){this.r+=a;this.g+=a;this.b+=a;return this},sub:function(a){this.r=Math.max(0,this.r-a.r);this.g=Math.max(0,this.g-a.g);this.b=Math.max(0,this.b-a.b);return this},multiply:function(a){this.r*=
+a.r;this.g*=a.g;this.b*=a.b;return this},multiplyScalar:function(a){this.r*=a;this.g*=a;this.b*=a;return this},lerp:function(a,b){this.r+=(a.r-this.r)*b;this.g+=(a.g-this.g)*b;this.b+=(a.b-this.b)*b;return this},lerpHSL:function(a,b){this.getHSL(za);a.getHSL(Af);a=P.lerp(za.h,Af.h,b);var c=P.lerp(za.s,Af.s,b);b=P.lerp(za.l,Af.l,b);this.setHSL(a,c,b);return this},equals:function(a){return a.r===this.r&&a.g===this.g&&a.b===this.b},fromArray:function(a,b){void 0===b&&(b=0);this.r=a[b];this.g=a[b+1];
+this.b=a[b+2];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this.r;a[b+1]=this.g;a[b+2]=this.b;return a},toJSON:function(){return this.getHex()}});J.NAMES=ti;Object.assign(yc.prototype,{clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.a=a.a;this.b=a.b;this.c=a.c;this.normal.copy(a.normal);this.color.copy(a.color);this.materialIndex=a.materialIndex;for(var b=0,c=a.vertexNormals.length;b<c;b++)this.vertexNormals[b]=a.vertexNormals[b].clone();
+b=0;for(c=a.vertexColors.length;b<c;b++)this.vertexColors[b]=a.vertexColors[b].clone();return this}});var Ui=0;O.prototype=Object.assign(Object.create(Ba.prototype),{constructor:O,isMaterial:!0,onBeforeCompile:function(){},setValues:function(a){if(void 0!==a)for(var b in a){var c=a[b];if(void 0===c)console.warn("THREE.Material: '"+b+"' parameter is undefined.");else if("shading"===b)console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=
+1===c?!0:!1;else{var d=this[b];void 0===d?console.warn("THREE."+this.type+": '"+b+"' is not a property of this material."):d&&d.isColor?d.set(c):d&&d.isVector3&&c&&c.isVector3?d.copy(c):this[b]=c}}},toJSON:function(a){function b(a){var b=[],c;for(c in a){var d=a[c];delete d.metadata;b.push(d)}return b}var c=void 0===a||"string"===typeof a;c&&(a={textures:{},images:{}});var d={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};d.uuid=this.uuid;d.type=this.type;""!==this.name&&(d.name=
+this.name);this.color&&this.color.isColor&&(d.color=this.color.getHex());void 0!==this.roughness&&(d.roughness=this.roughness);void 0!==this.metalness&&(d.metalness=this.metalness);this.sheen&&this.sheen.isColor&&(d.sheen=this.sheen.getHex());this.emissive&&this.emissive.isColor&&(d.emissive=this.emissive.getHex());this.emissiveIntensity&&1!==this.emissiveIntensity&&(d.emissiveIntensity=this.emissiveIntensity);this.specular&&this.specular.isColor&&(d.specular=this.specular.getHex());void 0!==this.shininess&&
+(d.shininess=this.shininess);void 0!==this.clearcoat&&(d.clearcoat=this.clearcoat);void 0!==this.clearcoatRoughness&&(d.clearcoatRoughness=this.clearcoatRoughness);this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(d.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(a).uuid,d.clearcoatNormalScale=this.clearcoatNormalScale.toArray());this.map&&this.map.isTexture&&(d.map=this.map.toJSON(a).uuid);this.matcap&&this.matcap.isTexture&&(d.matcap=this.matcap.toJSON(a).uuid);this.alphaMap&&this.alphaMap.isTexture&&
+(d.alphaMap=this.alphaMap.toJSON(a).uuid);this.lightMap&&this.lightMap.isTexture&&(d.lightMap=this.lightMap.toJSON(a).uuid);this.aoMap&&this.aoMap.isTexture&&(d.aoMap=this.aoMap.toJSON(a).uuid,d.aoMapIntensity=this.aoMapIntensity);this.bumpMap&&this.bumpMap.isTexture&&(d.bumpMap=this.bumpMap.toJSON(a).uuid,d.bumpScale=this.bumpScale);this.normalMap&&this.normalMap.isTexture&&(d.normalMap=this.normalMap.toJSON(a).uuid,d.normalMapType=this.normalMapType,d.normalScale=this.normalScale.toArray());this.displacementMap&&
+this.displacementMap.isTexture&&(d.displacementMap=this.displacementMap.toJSON(a).uuid,d.displacementScale=this.displacementScale,d.displacementBias=this.displacementBias);this.roughnessMap&&this.roughnessMap.isTexture&&(d.roughnessMap=this.roughnessMap.toJSON(a).uuid);this.metalnessMap&&this.metalnessMap.isTexture&&(d.metalnessMap=this.metalnessMap.toJSON(a).uuid);this.emissiveMap&&this.emissiveMap.isTexture&&(d.emissiveMap=this.emissiveMap.toJSON(a).uuid);this.specularMap&&this.specularMap.isTexture&&
+(d.specularMap=this.specularMap.toJSON(a).uuid);this.envMap&&this.envMap.isTexture&&(d.envMap=this.envMap.toJSON(a).uuid,d.reflectivity=this.reflectivity,d.refractionRatio=this.refractionRatio,void 0!==this.combine&&(d.combine=this.combine),void 0!==this.envMapIntensity&&(d.envMapIntensity=this.envMapIntensity));this.gradientMap&&this.gradientMap.isTexture&&(d.gradientMap=this.gradientMap.toJSON(a).uuid);void 0!==this.size&&(d.size=this.size);void 0!==this.sizeAttenuation&&(d.sizeAttenuation=this.sizeAttenuation);
+1!==this.blending&&(d.blending=this.blending);!0===this.flatShading&&(d.flatShading=this.flatShading);0!==this.side&&(d.side=this.side);0!==this.vertexColors&&(d.vertexColors=this.vertexColors);1>this.opacity&&(d.opacity=this.opacity);!0===this.transparent&&(d.transparent=this.transparent);d.depthFunc=this.depthFunc;d.depthTest=this.depthTest;d.depthWrite=this.depthWrite;d.stencilWrite=this.stencilWrite;d.stencilWriteMask=this.stencilWriteMask;d.stencilFunc=this.stencilFunc;d.stencilRef=this.stencilRef;
+d.stencilFuncMask=this.stencilFuncMask;d.stencilFail=this.stencilFail;d.stencilZFail=this.stencilZFail;d.stencilZPass=this.stencilZPass;this.rotation&&0!==this.rotation&&(d.rotation=this.rotation);!0===this.polygonOffset&&(d.polygonOffset=!0);0!==this.polygonOffsetFactor&&(d.polygonOffsetFactor=this.polygonOffsetFactor);0!==this.polygonOffsetUnits&&(d.polygonOffsetUnits=this.polygonOffsetUnits);this.linewidth&&1!==this.linewidth&&(d.linewidth=this.linewidth);void 0!==this.dashSize&&(d.dashSize=this.dashSize);
+void 0!==this.gapSize&&(d.gapSize=this.gapSize);void 0!==this.scale&&(d.scale=this.scale);!0===this.dithering&&(d.dithering=!0);0<this.alphaTest&&(d.alphaTest=this.alphaTest);!0===this.premultipliedAlpha&&(d.premultipliedAlpha=this.premultipliedAlpha);!0===this.wireframe&&(d.wireframe=this.wireframe);1<this.wireframeLinewidth&&(d.wireframeLinewidth=this.wireframeLinewidth);"round"!==this.wireframeLinecap&&(d.wireframeLinecap=this.wireframeLinecap);"round"!==this.wireframeLinejoin&&(d.wireframeLinejoin=
+this.wireframeLinejoin);!0===this.morphTargets&&(d.morphTargets=!0);!0===this.morphNormals&&(d.morphNormals=!0);!0===this.skinning&&(d.skinning=!0);!1===this.visible&&(d.visible=!1);!1===this.toneMapped&&(d.toneMapped=!1);"{}"!==JSON.stringify(this.userData)&&(d.userData=this.userData);c&&(c=b(a.textures),a=b(a.images),0<c.length&&(d.textures=c),0<a.length&&(d.images=a));return d},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.name=a.name;this.fog=a.fog;this.blending=
+a.blending;this.side=a.side;this.flatShading=a.flatShading;this.vertexTangents=a.vertexTangents;this.vertexColors=a.vertexColors;this.opacity=a.opacity;this.transparent=a.transparent;this.blendSrc=a.blendSrc;this.blendDst=a.blendDst;this.blendEquation=a.blendEquation;this.blendSrcAlpha=a.blendSrcAlpha;this.blendDstAlpha=a.blendDstAlpha;this.blendEquationAlpha=a.blendEquationAlpha;this.depthFunc=a.depthFunc;this.depthTest=a.depthTest;this.depthWrite=a.depthWrite;this.stencilWriteMask=a.stencilWriteMask;
+this.stencilFunc=a.stencilFunc;this.stencilRef=a.stencilRef;this.stencilFuncMask=a.stencilFuncMask;this.stencilFail=a.stencilFail;this.stencilZFail=a.stencilZFail;this.stencilZPass=a.stencilZPass;this.stencilWrite=a.stencilWrite;var b=a.clippingPlanes,c=null;if(null!==b){var d=b.length;c=Array(d);for(var e=0;e!==d;++e)c[e]=b[e].clone()}this.clippingPlanes=c;this.clipIntersection=a.clipIntersection;this.clipShadows=a.clipShadows;this.shadowSide=a.shadowSide;this.colorWrite=a.colorWrite;this.precision=
+a.precision;this.polygonOffset=a.polygonOffset;this.polygonOffsetFactor=a.polygonOffsetFactor;this.polygonOffsetUnits=a.polygonOffsetUnits;this.dithering=a.dithering;this.alphaTest=a.alphaTest;this.premultipliedAlpha=a.premultipliedAlpha;this.visible=a.visible;this.toneMapped=a.toneMapped;this.userData=JSON.parse(JSON.stringify(a.userData));return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});Ga.prototype=Object.create(O.prototype);Ga.prototype.constructor=Ga;Ga.prototype.isMeshBasicMaterial=
+!0;Ga.prototype.copy=function(a){O.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.lightMap=a.lightMap;this.lightMapIntensity=a.lightMapIntensity;this.aoMap=a.aoMap;this.aoMapIntensity=a.aoMapIntensity;this.specularMap=a.specularMap;this.alphaMap=a.alphaMap;this.envMap=a.envMap;this.combine=a.combine;this.reflectivity=a.reflectivity;this.refractionRatio=a.refractionRatio;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.wireframeLinecap=a.wireframeLinecap;
+this.wireframeLinejoin=a.wireframeLinejoin;this.skinning=a.skinning;this.morphTargets=a.morphTargets;return this};Object.defineProperty(N.prototype,"needsUpdate",{set:function(a){!0===a&&this.version++}});Object.assign(N.prototype,{isBufferAttribute:!0,onUploadCallback:function(){},setUsage:function(a){this.usage=a;return this},copy:function(a){this.name=a.name;this.array=new a.array.constructor(a.array);this.itemSize=a.itemSize;this.count=a.count;this.normalized=a.normalized;this.usage=a.usage;return this},
+copyAt:function(a,b,c){a*=this.itemSize;c*=b.itemSize;for(var d=0,e=this.itemSize;d<e;d++)this.array[a+d]=b.array[c+d];return this},copyArray:function(a){this.array.set(a);return this},copyColorsArray:function(a){for(var b=this.array,c=0,d=0,e=a.length;d<e;d++){var f=a[d];void 0===f&&(console.warn("THREE.BufferAttribute.copyColorsArray(): color is undefined",d),f=new J);b[c++]=f.r;b[c++]=f.g;b[c++]=f.b}return this},copyVector2sArray:function(a){for(var b=this.array,c=0,d=0,e=a.length;d<e;d++){var f=
+a[d];void 0===f&&(console.warn("THREE.BufferAttribute.copyVector2sArray(): vector is undefined",d),f=new B);b[c++]=f.x;b[c++]=f.y}return this},copyVector3sArray:function(a){for(var b=this.array,c=0,d=0,e=a.length;d<e;d++){var f=a[d];void 0===f&&(console.warn("THREE.BufferAttribute.copyVector3sArray(): vector is undefined",d),f=new n);b[c++]=f.x;b[c++]=f.y;b[c++]=f.z}return this},copyVector4sArray:function(a){for(var b=this.array,c=0,d=0,e=a.length;d<e;d++){var f=a[d];void 0===f&&(console.warn("THREE.BufferAttribute.copyVector4sArray(): vector is undefined",
+d),f=new da);b[c++]=f.x;b[c++]=f.y;b[c++]=f.z;b[c++]=f.w}return this},set:function(a,b){void 0===b&&(b=0);this.array.set(a,b);return this},getX:function(a){return this.array[a*this.itemSize]},setX:function(a,b){this.array[a*this.itemSize]=b;return this},getY:function(a){return this.array[a*this.itemSize+1]},setY:function(a,b){this.array[a*this.itemSize+1]=b;return this},getZ:function(a){return this.array[a*this.itemSize+2]},setZ:function(a,b){this.array[a*this.itemSize+2]=b;return this},getW:function(a){return this.array[a*
+this.itemSize+3]},setW:function(a,b){this.array[a*this.itemSize+3]=b;return this},setXY:function(a,b,c){a*=this.itemSize;this.array[a+0]=b;this.array[a+1]=c;return this},setXYZ:function(a,b,c,d){a*=this.itemSize;this.array[a+0]=b;this.array[a+1]=c;this.array[a+2]=d;return this},setXYZW:function(a,b,c,d,e){a*=this.itemSize;this.array[a+0]=b;this.array[a+1]=c;this.array[a+2]=d;this.array[a+3]=e;return this},onUpload:function(a){this.onUploadCallback=a;return this},clone:function(){return(new this.constructor(this.array,
+this.itemSize)).copy(this)},toJSON:function(){return{itemSize:this.itemSize,type:this.array.constructor.name,array:Array.prototype.slice.call(this.array),normalized:this.normalized}}});xd.prototype=Object.create(N.prototype);xd.prototype.constructor=xd;yd.prototype=Object.create(N.prototype);yd.prototype.constructor=yd;zd.prototype=Object.create(N.prototype);zd.prototype.constructor=zd;Ad.prototype=Object.create(N.prototype);Ad.prototype.constructor=Ad;Sb.prototype=Object.create(N.prototype);Sb.prototype.constructor=
+Sb;Bd.prototype=Object.create(N.prototype);Bd.prototype.constructor=Bd;Tb.prototype=Object.create(N.prototype);Tb.prototype.constructor=Tb;A.prototype=Object.create(N.prototype);A.prototype.constructor=A;Cd.prototype=Object.create(N.prototype);Cd.prototype.constructor=Cd;Object.assign(ih.prototype,{computeGroups:function(a){var b=[],c=void 0;a=a.faces;for(var d=0;d<a.length;d++){var e=a[d];if(e.materialIndex!==c){c=e.materialIndex;void 0!==f&&(f.count=3*d-f.start,b.push(f));var f={start:3*d,materialIndex:c}}}void 0!==
+f&&(f.count=3*d-f.start,b.push(f));this.groups=b},fromGeometry:function(a){var b=a.faces,c=a.vertices,d=a.faceVertexUvs,e=d[0]&&0<d[0].length,f=d[1]&&0<d[1].length,g=a.morphTargets,h=g.length;if(0<h){var l=[];for(var m=0;m<h;m++)l[m]={name:g[m].name,data:[]};this.morphTargets.position=l}var k=a.morphNormals,n=k.length;if(0<n){var u=[];for(m=0;m<n;m++)u[m]={name:k[m].name,data:[]};this.morphTargets.normal=u}var p=a.skinIndices,t=a.skinWeights,v=p.length===c.length,y=t.length===c.length;0<c.length&&
+0===b.length&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(m=0;m<b.length;m++){var w=b[m];this.vertices.push(c[w.a],c[w.b],c[w.c]);var x=w.vertexNormals;3===x.length?this.normals.push(x[0],x[1],x[2]):(x=w.normal,this.normals.push(x,x,x));x=w.vertexColors;3===x.length?this.colors.push(x[0],x[1],x[2]):(x=w.color,this.colors.push(x,x,x));!0===e&&(x=d[0][m],void 0!==x?this.uvs.push(x[0],x[1],x[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",
+m),this.uvs.push(new B,new B,new B)));!0===f&&(x=d[1][m],void 0!==x?this.uvs2.push(x[0],x[1],x[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",m),this.uvs2.push(new B,new B,new B)));for(x=0;x<h;x++){var A=g[x].vertices;l[x].data.push(A[w.a],A[w.b],A[w.c])}for(x=0;x<n;x++)A=k[x].vertexNormals[m],u[x].data.push(A.a,A.b,A.c);v&&this.skinIndices.push(p[w.a],p[w.b],p[w.c]);y&&this.skinWeights.push(t[w.a],t[w.b],t[w.c])}this.computeGroups(a);this.verticesNeedUpdate=a.verticesNeedUpdate;
+this.normalsNeedUpdate=a.normalsNeedUpdate;this.colorsNeedUpdate=a.colorsNeedUpdate;this.uvsNeedUpdate=a.uvsNeedUpdate;this.groupsNeedUpdate=a.groupsNeedUpdate;null!==a.boundingSphere&&(this.boundingSphere=a.boundingSphere.clone());null!==a.boundingBox&&(this.boundingBox=a.boundingBox.clone());return this}});var Vi=1,jb=new Q,Vg=new D,Bf=new n,rc=new ab,Wg=new ab,Za=new n;E.prototype=Object.assign(Object.create(Ba.prototype),{constructor:E,isBufferGeometry:!0,getIndex:function(){return this.index},
+setIndex:function(a){Array.isArray(a)?this.index=new (65535<jh(a)?Tb:Sb)(a,1):this.index=a},getAttribute:function(a){return this.attributes[a]},setAttribute:function(a,b){this.attributes[a]=b;return this},deleteAttribute:function(a){delete this.attributes[a];return this},addGroup:function(a,b,c){this.groups.push({start:a,count:b,materialIndex:void 0!==c?c:0})},clearGroups:function(){this.groups=[]},setDrawRange:function(a,b){this.drawRange.start=a;this.drawRange.count=b},applyMatrix:function(a){var b=
+this.attributes.position;void 0!==b&&(a.applyToBufferAttribute(b),b.needsUpdate=!0);var c=this.attributes.normal;void 0!==c&&(b=(new Z).getNormalMatrix(a),b.applyToBufferAttribute(c),c.needsUpdate=!0);c=this.attributes.tangent;void 0!==c&&(b=(new Z).getNormalMatrix(a),b.applyToBufferAttribute(c),c.needsUpdate=!0);null!==this.boundingBox&&this.computeBoundingBox();null!==this.boundingSphere&&this.computeBoundingSphere();return this},rotateX:function(a){jb.makeRotationX(a);this.applyMatrix(jb);return this},
+rotateY:function(a){jb.makeRotationY(a);this.applyMatrix(jb);return this},rotateZ:function(a){jb.makeRotationZ(a);this.applyMatrix(jb);return this},translate:function(a,b,c){jb.makeTranslation(a,b,c);this.applyMatrix(jb);return this},scale:function(a,b,c){jb.makeScale(a,b,c);this.applyMatrix(jb);return this},lookAt:function(a){Vg.lookAt(a);Vg.updateMatrix();this.applyMatrix(Vg.matrix);return this},center:function(){this.computeBoundingBox();this.boundingBox.getCenter(Bf).negate();this.translate(Bf.x,
+Bf.y,Bf.z);return this},setFromObject:function(a){var b=a.geometry;if(a.isPoints||a.isLine){a=new A(3*b.vertices.length,3);var c=new A(3*b.colors.length,3);this.setAttribute("position",a.copyVector3sArray(b.vertices));this.setAttribute("color",c.copyColorsArray(b.colors));b.lineDistances&&b.lineDistances.length===b.vertices.length&&(a=new A(b.lineDistances.length,1),this.setAttribute("lineDistance",a.copyArray(b.lineDistances)));null!==b.boundingSphere&&(this.boundingSphere=b.boundingSphere.clone());
+null!==b.boundingBox&&(this.boundingBox=b.boundingBox.clone())}else a.isMesh&&b&&b.isGeometry&&this.fromGeometry(b);return this},setFromPoints:function(a){for(var b=[],c=0,d=a.length;c<d;c++){var e=a[c];b.push(e.x,e.y,e.z||0)}this.setAttribute("position",new A(b,3));return this},updateFromObject:function(a){var b=a.geometry;if(a.isMesh){var c=b.__directGeometry;!0===b.elementsNeedUpdate&&(c=void 0,b.elementsNeedUpdate=!1);if(void 0===c)return this.fromGeometry(b);c.verticesNeedUpdate=b.verticesNeedUpdate;
+c.normalsNeedUpdate=b.normalsNeedUpdate;c.colorsNeedUpdate=b.colorsNeedUpdate;c.uvsNeedUpdate=b.uvsNeedUpdate;c.groupsNeedUpdate=b.groupsNeedUpdate;b.verticesNeedUpdate=!1;b.normalsNeedUpdate=!1;b.colorsNeedUpdate=!1;b.uvsNeedUpdate=!1;b.groupsNeedUpdate=!1;b=c}!0===b.verticesNeedUpdate&&(c=this.attributes.position,void 0!==c&&(c.copyVector3sArray(b.vertices),c.needsUpdate=!0),b.verticesNeedUpdate=!1);!0===b.normalsNeedUpdate&&(c=this.attributes.normal,void 0!==c&&(c.copyVector3sArray(b.normals),
+c.needsUpdate=!0),b.normalsNeedUpdate=!1);!0===b.colorsNeedUpdate&&(c=this.attributes.color,void 0!==c&&(c.copyColorsArray(b.colors),c.needsUpdate=!0),b.colorsNeedUpdate=!1);b.uvsNeedUpdate&&(c=this.attributes.uv,void 0!==c&&(c.copyVector2sArray(b.uvs),c.needsUpdate=!0),b.uvsNeedUpdate=!1);b.lineDistancesNeedUpdate&&(c=this.attributes.lineDistance,void 0!==c&&(c.copyArray(b.lineDistances),c.needsUpdate=!0),b.lineDistancesNeedUpdate=!1);b.groupsNeedUpdate&&(b.computeGroups(a.geometry),this.groups=
+b.groups,b.groupsNeedUpdate=!1);return this},fromGeometry:function(a){a.__directGeometry=(new ih).fromGeometry(a);return this.fromDirectGeometry(a.__directGeometry)},fromDirectGeometry:function(a){var b=new Float32Array(3*a.vertices.length);this.setAttribute("position",(new N(b,3)).copyVector3sArray(a.vertices));0<a.normals.length&&(b=new Float32Array(3*a.normals.length),this.setAttribute("normal",(new N(b,3)).copyVector3sArray(a.normals)));0<a.colors.length&&(b=new Float32Array(3*a.colors.length),
+this.setAttribute("color",(new N(b,3)).copyColorsArray(a.colors)));0<a.uvs.length&&(b=new Float32Array(2*a.uvs.length),this.setAttribute("uv",(new N(b,2)).copyVector2sArray(a.uvs)));0<a.uvs2.length&&(b=new Float32Array(2*a.uvs2.length),this.setAttribute("uv2",(new N(b,2)).copyVector2sArray(a.uvs2)));this.groups=a.groups;for(var c in a.morphTargets){b=[];for(var d=a.morphTargets[c],e=0,f=d.length;e<f;e++){var g=d[e],h=new A(3*g.data.length,3);h.name=g.name;b.push(h.copyVector3sArray(g.data))}this.morphAttributes[c]=
+b}0<a.skinIndices.length&&(c=new A(4*a.skinIndices.length,4),this.setAttribute("skinIndex",c.copyVector4sArray(a.skinIndices)));0<a.skinWeights.length&&(c=new A(4*a.skinWeights.length,4),this.setAttribute("skinWeight",c.copyVector4sArray(a.skinWeights)));null!==a.boundingSphere&&(this.boundingSphere=a.boundingSphere.clone());null!==a.boundingBox&&(this.boundingBox=a.boundingBox.clone());return this},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new ab);var a=this.attributes.position,
+b=this.morphAttributes.position;if(void 0!==a){if(this.boundingBox.setFromBufferAttribute(a),b){a=0;for(var c=b.length;a<c;a++)rc.setFromBufferAttribute(b[a]),this.boundingBox.expandByPoint(rc.min),this.boundingBox.expandByPoint(rc.max)}}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The "position" attribute is likely to have NaN values.',
+this)},computeBoundingSphere:function(){null===this.boundingSphere&&(this.boundingSphere=new mb);var a=this.attributes.position,b=this.morphAttributes.position;if(a){var c=this.boundingSphere.center;rc.setFromBufferAttribute(a);if(b)for(var d=0,e=b.length;d<e;d++){var f=b[d];Wg.setFromBufferAttribute(f);rc.expandByPoint(Wg.min);rc.expandByPoint(Wg.max)}rc.getCenter(c);var g=0;d=0;for(e=a.count;d<e;d++)Za.fromBufferAttribute(a,d),g=Math.max(g,c.distanceToSquared(Za));if(b)for(d=0,e=b.length;d<e;d++){f=
+b[d];a=0;for(var h=f.count;a<h;a++)Za.fromBufferAttribute(f,a),g=Math.max(g,c.distanceToSquared(Za))}this.boundingSphere.radius=Math.sqrt(g);isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this)}},computeFaceNormals:function(){},computeVertexNormals:function(){var a=this.index,b=this.attributes;if(b.position){var c=b.position.array;if(void 0===b.normal)this.setAttribute("normal",
+new N(new Float32Array(c.length),3));else for(var d=b.normal.array,e=0,f=d.length;e<f;e++)d[e]=0;d=b.normal.array;var g=new n,h=new n,l=new n,m=new n,k=new n;if(a){var q=a.array;e=0;for(f=a.count;e<f;e+=3){a=3*q[e+0];var u=3*q[e+1];var p=3*q[e+2];g.fromArray(c,a);h.fromArray(c,u);l.fromArray(c,p);m.subVectors(l,h);k.subVectors(g,h);m.cross(k);d[a]+=m.x;d[a+1]+=m.y;d[a+2]+=m.z;d[u]+=m.x;d[u+1]+=m.y;d[u+2]+=m.z;d[p]+=m.x;d[p+1]+=m.y;d[p+2]+=m.z}}else for(e=0,f=c.length;e<f;e+=9)g.fromArray(c,e),h.fromArray(c,
+e+3),l.fromArray(c,e+6),m.subVectors(l,h),k.subVectors(g,h),m.cross(k),d[e]=m.x,d[e+1]=m.y,d[e+2]=m.z,d[e+3]=m.x,d[e+4]=m.y,d[e+5]=m.z,d[e+6]=m.x,d[e+7]=m.y,d[e+8]=m.z;this.normalizeNormals();b.normal.needsUpdate=!0}},merge:function(a,b){if(a&&a.isBufferGeometry){void 0===b&&(b=0,console.warn("THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge."));var c=this.attributes,d;for(d in c)if(void 0!==a.attributes[d]){var e=
+c[d].array,f=a.attributes[d],g=f.array,h=f.itemSize*b;f=Math.min(g.length,e.length-h);for(var l=0;l<f;l++,h++)e[h]=g[l]}return this}console.error("THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.",a)},normalizeNormals:function(){for(var a=this.attributes.normal,b=0,c=a.count;b<c;b++)Za.x=a.getX(b),Za.y=a.getY(b),Za.z=a.getZ(b),Za.normalize(),a.setXYZ(b,Za.x,Za.y,Za.z)},toNonIndexed:function(){function a(a,b){var c=a.array;a=a.itemSize;for(var d=new c.constructor(b.length*
+a),e,f=0,g=0,h=b.length;g<h;g++){e=b[g]*a;for(var l=0;l<a;l++)d[f++]=c[e++]}return new N(d,a)}if(null===this.index)return console.warn("THREE.BufferGeometry.toNonIndexed(): Geometry is already non-indexed."),this;var b=new E,c=this.index.array,d=this.attributes,e;for(e in d){var f=d[e];f=a(f,c);b.setAttribute(e,f)}var g=this.morphAttributes;for(e in g){var h=[],l=g[e];d=0;for(var m=l.length;d<m;d++)f=l[d],f=a(f,c),h.push(f);b.morphAttributes[e]=h}c=this.groups;d=0;for(e=c.length;d<e;d++)f=c[d],b.addGroup(f.start,
+f.count,f.materialIndex);return b},toJSON:function(){var a={metadata:{version:4.5,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};a.uuid=this.uuid;a.type=this.type;""!==this.name&&(a.name=this.name);0<Object.keys(this.userData).length&&(a.userData=this.userData);if(void 0!==this.parameters){var b=this.parameters;for(m in b)void 0!==b[m]&&(a[m]=b[m]);return a}a.data={attributes:{}};b=this.index;null!==b&&(a.data.index={type:b.array.constructor.name,array:Array.prototype.slice.call(b.array)});
+var c=this.attributes;for(m in c){b=c[m];var d=b.toJSON();""!==b.name&&(d.name=b.name);a.data.attributes[m]=d}c={};var e=!1;for(m in this.morphAttributes){for(var f=this.morphAttributes[m],g=[],h=0,l=f.length;h<l;h++)b=f[h],d=b.toJSON(),""!==b.name&&(d.name=b.name),g.push(d);0<g.length&&(c[m]=g,e=!0)}e&&(a.data.morphAttributes=c);var m=this.groups;0<m.length&&(a.data.groups=JSON.parse(JSON.stringify(m)));m=this.boundingSphere;null!==m&&(a.data.boundingSphere={center:m.center.toArray(),radius:m.radius});
+return a},clone:function(){return(new E).copy(this)},copy:function(a){var b;this.index=null;this.attributes={};this.morphAttributes={};this.groups=[];this.boundingSphere=this.boundingBox=null;this.name=a.name;var c=a.index;null!==c&&this.setIndex(c.clone());c=a.attributes;for(g in c)this.setAttribute(g,c[g].clone());var d=a.morphAttributes;for(g in d){var e=[],f=d[g];c=0;for(b=f.length;c<b;c++)e.push(f[c].clone());this.morphAttributes[g]=e}var g=a.groups;c=0;for(b=g.length;c<b;c++)d=g[c],this.addGroup(d.start,
+d.count,d.materialIndex);g=a.boundingBox;null!==g&&(this.boundingBox=g.clone());g=a.boundingSphere;null!==g&&(this.boundingSphere=g.clone());this.drawRange.start=a.drawRange.start;this.drawRange.count=a.drawRange.count;this.userData=a.userData;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});var ui=new Q,sc=new Rb,Xg=new mb,Ub=new n,Vb=new n,Wb=new n,lh=new n,mh=new n,nh=new n,Yf=new n,Zf=new n,$f=new n,zc=new B,Ac=new B,Bc=new B,Dd=new n,Ee=new n;ea.prototype=Object.assign(Object.create(D.prototype),
+{constructor:ea,isMesh:!0,setDrawMode:function(a){this.drawMode=a},copy:function(a){D.prototype.copy.call(this,a);this.drawMode=a.drawMode;void 0!==a.morphTargetInfluences&&(this.morphTargetInfluences=a.morphTargetInfluences.slice());void 0!==a.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},a.morphTargetDictionary));return this},updateMorphTargets:function(){var a=this.geometry;if(a.isBufferGeometry){a=a.morphAttributes;var b=Object.keys(a);if(0<b.length){var c=a[b[0]];if(void 0!==
+c)for(this.morphTargetInfluences=[],this.morphTargetDictionary={},a=0,b=c.length;a<b;a++){var d=c[a].name||String(a);this.morphTargetInfluences.push(0);this.morphTargetDictionary[d]=a}}}else a=a.morphTargets,void 0!==a&&0<a.length&&console.error("THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")},raycast:function(a,b){var c=this.geometry,d=this.material,e=this.matrixWorld;if(void 0!==d&&(null===c.boundingSphere&&c.computeBoundingSphere(),Xg.copy(c.boundingSphere),
+Xg.applyMatrix4(e),!1!==a.ray.intersectsSphere(Xg)&&(ui.getInverse(e),sc.copy(a.ray).applyMatrix4(ui),null===c.boundingBox||!1!==sc.intersectsBox(c.boundingBox))))if(c.isBufferGeometry){var f=c.index;e=c.attributes.position;var g=c.morphAttributes.position,h=c.attributes.uv,l=c.attributes.uv2,m=c.groups,k=c.drawRange,n,u;if(null!==f)if(Array.isArray(d)){var p=0;for(n=m.length;p<n;p++){var t=m[p];var v=d[t.materialIndex];var y=Math.max(t.start,k.start);for(u=c=Math.min(t.start+t.count,k.start+k.count);y<
+u;y+=3){c=f.getX(y);var w=f.getX(y+1);var x=f.getX(y+2);if(c=Fe(this,v,a,sc,e,g,h,l,c,w,x))c.faceIndex=Math.floor(y/3),c.face.materialIndex=t.materialIndex,b.push(c)}}}else for(y=Math.max(0,k.start),c=Math.min(f.count,k.start+k.count),p=y,n=c;p<n;p+=3){if(c=f.getX(p),w=f.getX(p+1),x=f.getX(p+2),c=Fe(this,d,a,sc,e,g,h,l,c,w,x))c.faceIndex=Math.floor(p/3),b.push(c)}else if(void 0!==e)if(Array.isArray(d))for(p=0,n=m.length;p<n;p++)for(t=m[p],v=d[t.materialIndex],y=Math.max(t.start,k.start),u=c=Math.min(t.start+
+t.count,k.start+k.count);y<u;y+=3){if(c=y,w=y+1,x=y+2,c=Fe(this,v,a,sc,e,g,h,l,c,w,x))c.faceIndex=Math.floor(y/3),c.face.materialIndex=t.materialIndex,b.push(c)}else for(y=Math.max(0,k.start),c=Math.min(e.count,k.start+k.count),p=y,n=c;p<n;p+=3)if(c=p,w=p+1,x=p+2,c=Fe(this,d,a,sc,e,g,h,l,c,w,x))c.faceIndex=Math.floor(p/3),b.push(c)}else if(c.isGeometry)for(e=Array.isArray(d),g=c.vertices,h=c.faces,c=c.faceVertexUvs[0],0<c.length&&(f=c),p=0,n=h.length;p<n;p++)if(t=h[p],c=e?d[t.materialIndex]:d,void 0!==
+c&&(l=g[t.a],m=g[t.b],k=g[t.c],c=kh(this,c,a,sc,l,m,k,Dd)))f&&f[p]&&(v=f[p],zc.copy(v[0]),Ac.copy(v[1]),Bc.copy(v[2]),c.uv=ba.getUV(Dd,l,m,k,zc,Ac,Bc,new B)),c.face=t,c.faceIndex=p,b.push(c)},clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});var Wi=0,kb=new Q,Yg=new D,Cf=new n;C.prototype=Object.assign(Object.create(Ba.prototype),{constructor:C,isGeometry:!0,applyMatrix:function(a){for(var b=(new Z).getNormalMatrix(a),c=0,d=this.vertices.length;c<d;c++)this.vertices[c].applyMatrix4(a);
+c=0;for(d=this.faces.length;c<d;c++){a=this.faces[c];a.normal.applyMatrix3(b).normalize();for(var e=0,f=a.vertexNormals.length;e<f;e++)a.vertexNormals[e].applyMatrix3(b).normalize()}null!==this.boundingBox&&this.computeBoundingBox();null!==this.boundingSphere&&this.computeBoundingSphere();this.normalsNeedUpdate=this.verticesNeedUpdate=!0;return this},rotateX:function(a){kb.makeRotationX(a);this.applyMatrix(kb);return this},rotateY:function(a){kb.makeRotationY(a);this.applyMatrix(kb);return this},
+rotateZ:function(a){kb.makeRotationZ(a);this.applyMatrix(kb);return this},translate:function(a,b,c){kb.makeTranslation(a,b,c);this.applyMatrix(kb);return this},scale:function(a,b,c){kb.makeScale(a,b,c);this.applyMatrix(kb);return this},lookAt:function(a){Yg.lookAt(a);Yg.updateMatrix();this.applyMatrix(Yg.matrix);return this},fromBufferGeometry:function(a){function b(a,b,d,e){var f=void 0===h?[]:[c.colors[a].clone(),c.colors[b].clone(),c.colors[d].clone()],k=void 0===g?[]:[(new n).fromArray(g,3*a),
+(new n).fromArray(g,3*b),(new n).fromArray(g,3*d)];e=new yc(a,b,d,k,f,e);c.faces.push(e);void 0!==l&&c.faceVertexUvs[0].push([(new B).fromArray(l,2*a),(new B).fromArray(l,2*b),(new B).fromArray(l,2*d)]);void 0!==m&&c.faceVertexUvs[1].push([(new B).fromArray(m,2*a),(new B).fromArray(m,2*b),(new B).fromArray(m,2*d)])}var c=this,d=null!==a.index?a.index.array:void 0,e=a.attributes;if(void 0===e.position)return console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion."),
+this;var f=e.position.array,g=void 0!==e.normal?e.normal.array:void 0,h=void 0!==e.color?e.color.array:void 0,l=void 0!==e.uv?e.uv.array:void 0,m=void 0!==e.uv2?e.uv2.array:void 0;void 0!==m&&(this.faceVertexUvs[1]=[]);for(e=0;e<f.length;e+=3)c.vertices.push((new n).fromArray(f,e)),void 0!==h&&c.colors.push((new J).fromArray(h,e));var k=a.groups;if(0<k.length)for(e=0;e<k.length;e++){f=k[e];var q=f.start,u=q;for(q+=f.count;u<q;u+=3)void 0!==d?b(d[u],d[u+1],d[u+2],f.materialIndex):b(u,u+1,u+2,f.materialIndex)}else if(void 0!==
+d)for(e=0;e<d.length;e+=3)b(d[e],d[e+1],d[e+2]);else for(e=0;e<f.length/3;e+=3)b(e,e+1,e+2);this.computeFaceNormals();null!==a.boundingBox&&(this.boundingBox=a.boundingBox.clone());null!==a.boundingSphere&&(this.boundingSphere=a.boundingSphere.clone());return this},center:function(){this.computeBoundingBox();this.boundingBox.getCenter(Cf).negate();this.translate(Cf.x,Cf.y,Cf.z);return this},normalize:function(){this.computeBoundingSphere();var a=this.boundingSphere.center,b=this.boundingSphere.radius;
+b=0===b?1:1/b;var c=new Q;c.set(b,0,0,-b*a.x,0,b,0,-b*a.y,0,0,b,-b*a.z,0,0,0,1);this.applyMatrix(c);return this},computeFaceNormals:function(){for(var a=new n,b=new n,c=0,d=this.faces.length;c<d;c++){var e=this.faces[c],f=this.vertices[e.a],g=this.vertices[e.b];a.subVectors(this.vertices[e.c],g);b.subVectors(f,g);a.cross(b);a.normalize();e.normal.copy(a)}},computeVertexNormals:function(a){void 0===a&&(a=!0);var b;var c=Array(this.vertices.length);var d=0;for(b=this.vertices.length;d<b;d++)c[d]=new n;
+if(a){var e=new n,f=new n;a=0;for(d=this.faces.length;a<d;a++){b=this.faces[a];var g=this.vertices[b.a];var h=this.vertices[b.b];var l=this.vertices[b.c];e.subVectors(l,h);f.subVectors(g,h);e.cross(f);c[b.a].add(e);c[b.b].add(e);c[b.c].add(e)}}else for(this.computeFaceNormals(),a=0,d=this.faces.length;a<d;a++)b=this.faces[a],c[b.a].add(b.normal),c[b.b].add(b.normal),c[b.c].add(b.normal);d=0;for(b=this.vertices.length;d<b;d++)c[d].normalize();a=0;for(d=this.faces.length;a<d;a++)b=this.faces[a],g=b.vertexNormals,
+3===g.length?(g[0].copy(c[b.a]),g[1].copy(c[b.b]),g[2].copy(c[b.c])):(g[0]=c[b.a].clone(),g[1]=c[b.b].clone(),g[2]=c[b.c].clone());0<this.faces.length&&(this.normalsNeedUpdate=!0)},computeFlatVertexNormals:function(){var a;this.computeFaceNormals();var b=0;for(a=this.faces.length;b<a;b++){var c=this.faces[b];var d=c.vertexNormals;3===d.length?(d[0].copy(c.normal),d[1].copy(c.normal),d[2].copy(c.normal)):(d[0]=c.normal.clone(),d[1]=c.normal.clone(),d[2]=c.normal.clone())}0<this.faces.length&&(this.normalsNeedUpdate=
+!0)},computeMorphNormals:function(){var a,b;var c=0;for(b=this.faces.length;c<b;c++){var d=this.faces[c];d.__originalFaceNormal?d.__originalFaceNormal.copy(d.normal):d.__originalFaceNormal=d.normal.clone();d.__originalVertexNormals||(d.__originalVertexNormals=[]);var e=0;for(a=d.vertexNormals.length;e<a;e++)d.__originalVertexNormals[e]?d.__originalVertexNormals[e].copy(d.vertexNormals[e]):d.__originalVertexNormals[e]=d.vertexNormals[e].clone()}var f=new C;f.faces=this.faces;e=0;for(a=this.morphTargets.length;e<
+a;e++){if(!this.morphNormals[e]){this.morphNormals[e]={};this.morphNormals[e].faceNormals=[];this.morphNormals[e].vertexNormals=[];d=this.morphNormals[e].faceNormals;var g=this.morphNormals[e].vertexNormals;c=0;for(b=this.faces.length;c<b;c++){var h=new n;var l={a:new n,b:new n,c:new n};d.push(h);g.push(l)}}g=this.morphNormals[e];f.vertices=this.morphTargets[e].vertices;f.computeFaceNormals();f.computeVertexNormals();c=0;for(b=this.faces.length;c<b;c++)d=this.faces[c],h=g.faceNormals[c],l=g.vertexNormals[c],
+h.copy(d.normal),l.a.copy(d.vertexNormals[0]),l.b.copy(d.vertexNormals[1]),l.c.copy(d.vertexNormals[2])}c=0;for(b=this.faces.length;c<b;c++)d=this.faces[c],d.normal=d.__originalFaceNormal,d.vertexNormals=d.__originalVertexNormals},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new ab);this.boundingBox.setFromPoints(this.vertices)},computeBoundingSphere:function(){null===this.boundingSphere&&(this.boundingSphere=new mb);this.boundingSphere.setFromPoints(this.vertices)},merge:function(a,
+b,c){if(a&&a.isGeometry){var d,e=this.vertices.length,f=this.vertices,g=a.vertices,h=this.faces,l=a.faces,m=this.colors,k=a.colors;void 0===c&&(c=0);void 0!==b&&(d=(new Z).getNormalMatrix(b));for(var n=0,u=g.length;n<u;n++){var p=g[n].clone();void 0!==b&&p.applyMatrix4(b);f.push(p)}n=0;for(u=k.length;n<u;n++)m.push(k[n].clone());n=0;for(u=l.length;n<u;n++){g=l[n];var t=g.vertexNormals;k=g.vertexColors;m=new yc(g.a+e,g.b+e,g.c+e);m.normal.copy(g.normal);void 0!==d&&m.normal.applyMatrix3(d).normalize();
+b=0;for(f=t.length;b<f;b++)p=t[b].clone(),void 0!==d&&p.applyMatrix3(d).normalize(),m.vertexNormals.push(p);m.color.copy(g.color);b=0;for(f=k.length;b<f;b++)p=k[b],m.vertexColors.push(p.clone());m.materialIndex=g.materialIndex+c;h.push(m)}n=0;for(u=a.faceVertexUvs.length;n<u;n++)for(c=a.faceVertexUvs[n],void 0===this.faceVertexUvs[n]&&(this.faceVertexUvs[n]=[]),b=0,f=c.length;b<f;b++){d=c[b];e=[];h=0;for(l=d.length;h<l;h++)e.push(d[h].clone());this.faceVertexUvs[n].push(e)}}else console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",
+a)},mergeMesh:function(a){a&&a.isMesh?(a.matrixAutoUpdate&&a.updateMatrix(),this.merge(a.geometry,a.matrix)):console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",a)},mergeVertices:function(){var a={},b=[],c=[],d=Math.pow(10,4),e;var f=0;for(e=this.vertices.length;f<e;f++){var g=this.vertices[f];g=Math.round(g.x*d)+"_"+Math.round(g.y*d)+"_"+Math.round(g.z*d);void 0===a[g]?(a[g]=f,b.push(this.vertices[f]),c[f]=b.length-1):c[f]=c[a[g]]}a=[];f=0;for(e=this.faces.length;f<e;f++)for(d=
+this.faces[f],d.a=c[d.a],d.b=c[d.b],d.c=c[d.c],d=[d.a,d.b,d.c],g=0;3>g;g++)if(d[g]===d[(g+1)%3]){a.push(f);break}for(f=a.length-1;0<=f;f--)for(d=a[f],this.faces.splice(d,1),c=0,e=this.faceVertexUvs.length;c<e;c++)this.faceVertexUvs[c].splice(d,1);f=this.vertices.length-b.length;this.vertices=b;return f},setFromPoints:function(a){this.vertices=[];for(var b=0,c=a.length;b<c;b++){var d=a[b];this.vertices.push(new n(d.x,d.y,d.z||0))}return this},sortFacesByMaterialIndex:function(){for(var a=this.faces,
+b=a.length,c=0;c<b;c++)a[c]._id=c;a.sort(function(a,b){return a.materialIndex-b.materialIndex});var d=this.faceVertexUvs[0],e=this.faceVertexUvs[1],f,g;d&&d.length===b&&(f=[]);e&&e.length===b&&(g=[]);for(c=0;c<b;c++){var h=a[c]._id;f&&f.push(d[h]);g&&g.push(e[h])}f&&(this.faceVertexUvs[0]=f);g&&(this.faceVertexUvs[1]=g)},toJSON:function(){function a(a,b,c){return c?a|1<<b:a&~(1<<b)}function b(a){var b=a.x.toString()+a.y.toString()+a.z.toString();if(void 0!==m[b])return m[b];m[b]=l.length/3;l.push(a.x,
+a.y,a.z);return m[b]}function c(a){var b=a.r.toString()+a.g.toString()+a.b.toString();if(void 0!==n[b])return n[b];n[b]=k.length;k.push(a.getHex());return n[b]}function d(a){var b=a.x.toString()+a.y.toString();if(void 0!==p[b])return p[b];p[b]=u.length/2;u.push(a.x,a.y);return p[b]}var e={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};e.uuid=this.uuid;e.type=this.type;""!==this.name&&(e.name=this.name);if(void 0!==this.parameters){var f=this.parameters,g;for(g in f)void 0!==f[g]&&
+(e[g]=f[g]);return e}f=[];for(g=0;g<this.vertices.length;g++){var h=this.vertices[g];f.push(h.x,h.y,h.z)}h=[];var l=[],m={},k=[],n={},u=[],p={};for(g=0;g<this.faces.length;g++){var t=this.faces[g],v=void 0!==this.faceVertexUvs[0][g],y=0<t.normal.length(),w=0<t.vertexNormals.length,x=1!==t.color.r||1!==t.color.g||1!==t.color.b,B=0<t.vertexColors.length,A=0;A=a(A,0,0);A=a(A,1,!0);A=a(A,2,!1);A=a(A,3,v);A=a(A,4,y);A=a(A,5,w);A=a(A,6,x);A=a(A,7,B);h.push(A);h.push(t.a,t.b,t.c);h.push(t.materialIndex);
+v&&(v=this.faceVertexUvs[0][g],h.push(d(v[0]),d(v[1]),d(v[2])));y&&h.push(b(t.normal));w&&(y=t.vertexNormals,h.push(b(y[0]),b(y[1]),b(y[2])));x&&h.push(c(t.color));B&&(t=t.vertexColors,h.push(c(t[0]),c(t[1]),c(t[2])))}e.data={};e.data.vertices=f;e.data.normals=l;0<k.length&&(e.data.colors=k);0<u.length&&(e.data.uvs=[u]);e.data.faces=h;return e},clone:function(){return(new C).copy(this)},copy:function(a){var b,c,d;this.vertices=[];this.colors=[];this.faces=[];this.faceVertexUvs=[[]];this.morphTargets=
+[];this.morphNormals=[];this.skinWeights=[];this.skinIndices=[];this.lineDistances=[];this.boundingSphere=this.boundingBox=null;this.name=a.name;var e=a.vertices;var f=0;for(b=e.length;f<b;f++)this.vertices.push(e[f].clone());e=a.colors;f=0;for(b=e.length;f<b;f++)this.colors.push(e[f].clone());e=a.faces;f=0;for(b=e.length;f<b;f++)this.faces.push(e[f].clone());f=0;for(b=a.faceVertexUvs.length;f<b;f++){var g=a.faceVertexUvs[f];void 0===this.faceVertexUvs[f]&&(this.faceVertexUvs[f]=[]);e=0;for(c=g.length;e<
+c;e++){var h=g[e],l=[];var m=0;for(d=h.length;m<d;m++)l.push(h[m].clone());this.faceVertexUvs[f].push(l)}}m=a.morphTargets;f=0;for(b=m.length;f<b;f++){d={};d.name=m[f].name;if(void 0!==m[f].vertices)for(d.vertices=[],e=0,c=m[f].vertices.length;e<c;e++)d.vertices.push(m[f].vertices[e].clone());if(void 0!==m[f].normals)for(d.normals=[],e=0,c=m[f].normals.length;e<c;e++)d.normals.push(m[f].normals[e].clone());this.morphTargets.push(d)}m=a.morphNormals;f=0;for(b=m.length;f<b;f++){d={};if(void 0!==m[f].vertexNormals)for(d.vertexNormals=
+[],e=0,c=m[f].vertexNormals.length;e<c;e++)g=m[f].vertexNormals[e],h={},h.a=g.a.clone(),h.b=g.b.clone(),h.c=g.c.clone(),d.vertexNormals.push(h);if(void 0!==m[f].faceNormals)for(d.faceNormals=[],e=0,c=m[f].faceNormals.length;e<c;e++)d.faceNormals.push(m[f].faceNormals[e].clone());this.morphNormals.push(d)}e=a.skinWeights;f=0;for(b=e.length;f<b;f++)this.skinWeights.push(e[f].clone());e=a.skinIndices;f=0;for(b=e.length;f<b;f++)this.skinIndices.push(e[f].clone());e=a.lineDistances;f=0;for(b=e.length;f<
+b;f++)this.lineDistances.push(e[f]);f=a.boundingBox;null!==f&&(this.boundingBox=f.clone());f=a.boundingSphere;null!==f&&(this.boundingSphere=f.clone());this.elementsNeedUpdate=a.elementsNeedUpdate;this.verticesNeedUpdate=a.verticesNeedUpdate;this.uvsNeedUpdate=a.uvsNeedUpdate;this.normalsNeedUpdate=a.normalsNeedUpdate;this.colorsNeedUpdate=a.colorsNeedUpdate;this.lineDistancesNeedUpdate=a.lineDistancesNeedUpdate;this.groupsNeedUpdate=a.groupsNeedUpdate;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});
+var Zg=function(a){function b(b,d,e,f,g,h){a.call(this);this.type="BoxGeometry";this.parameters={width:b,height:d,depth:e,widthSegments:f,heightSegments:g,depthSegments:h};this.fromBufferGeometry(new Gd(b,d,e,f,g,h));this.mergeVertices()}a&&(b.__proto__=a);b.prototype=Object.create(a&&a.prototype);return b.prototype.constructor=b}(C),Gd=function(a){function b(b,d,e,f,g,h){function c(a,b,c,d,e,f,g,h,l,r,A){var w=f/l,y=g/r,x=f/2,z=g/2,B=h/2;g=l+1;var D=r+1,E=f=0,H,F,C=new n;for(F=0;F<D;F++){var G=F*
+y-z;for(H=0;H<g;H++)C[a]=(H*w-x)*d,C[b]=G*e,C[c]=B,q.push(C.x,C.y,C.z),C[a]=0,C[b]=0,C[c]=0<h?1:-1,u.push(C.x,C.y,C.z),p.push(H/l),p.push(1-F/r),f+=1}for(F=0;F<r;F++)for(H=0;H<l;H++)a=t+H+g*(F+1),b=t+(H+1)+g*(F+1),c=t+(H+1)+g*F,k.push(t+H+g*F,a,c),k.push(a,b,c),E+=6;m.addGroup(v,E,A);v+=E;t+=f}a.call(this);this.type="BoxBufferGeometry";this.parameters={width:b,height:d,depth:e,widthSegments:f,heightSegments:g,depthSegments:h};var m=this;b=b||1;d=d||1;e=e||1;f=Math.floor(f)||1;g=Math.floor(g)||1;h=
+Math.floor(h)||1;var k=[],q=[],u=[],p=[],t=0,v=0;c("z","y","x",-1,-1,e,d,b,h,g,0);c("z","y","x",1,-1,e,d,-b,h,g,1);c("x","z","y",1,1,b,e,d,f,h,2);c("x","z","y",1,-1,b,e,-d,f,h,3);c("x","y","z",1,-1,b,d,e,f,g,4);c("x","y","z",-1,-1,b,d,-e,f,g,5);this.setIndex(k);this.setAttribute("position",new A(q,3));this.setAttribute("normal",new A(u,3));this.setAttribute("uv",new A(p,2))}a&&(b.__proto__=a);b.prototype=Object.create(a&&a.prototype);return b.prototype.constructor=b}(E),Ck={clone:Xb,merge:ua};va.prototype=
+Object.create(O.prototype);va.prototype.constructor=va;va.prototype.isShaderMaterial=!0;va.prototype.copy=function(a){O.prototype.copy.call(this,a);this.fragmentShader=a.fragmentShader;this.vertexShader=a.vertexShader;this.uniforms=Xb(a.uniforms);this.defines=Object.assign({},a.defines);this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.lights=a.lights;this.clipping=a.clipping;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;this.extensions=
+a.extensions;return this};va.prototype.toJSON=function(a){var b=O.prototype.toJSON.call(this,a);b.uniforms={};for(var c in this.uniforms){var d=this.uniforms[c].value;b.uniforms[c]=d&&d.isTexture?{type:"t",value:d.toJSON(a).uuid}:d&&d.isColor?{type:"c",value:d.getHex()}:d&&d.isVector2?{type:"v2",value:d.toArray()}:d&&d.isVector3?{type:"v3",value:d.toArray()}:d&&d.isVector4?{type:"v4",value:d.toArray()}:d&&d.isMatrix3?{type:"m3",value:d.toArray()}:d&&d.isMatrix4?{type:"m4",value:d.toArray()}:{value:d}}0<
+Object.keys(this.defines).length&&(b.defines=this.defines);b.vertexShader=this.vertexShader;b.fragmentShader=this.fragmentShader;a={};for(var e in this.extensions)!0===this.extensions[e]&&(a[e]=!0);0<Object.keys(a).length&&(b.extensions=a);return b};bb.prototype=Object.assign(Object.create(D.prototype),{constructor:bb,isCamera:!0,copy:function(a,b){D.prototype.copy.call(this,a,b);this.matrixWorldInverse.copy(a.matrixWorldInverse);this.projectionMatrix.copy(a.projectionMatrix);this.projectionMatrixInverse.copy(a.projectionMatrixInverse);
+return this},getWorldDirection:function(a){void 0===a&&(console.warn("THREE.Camera: .getWorldDirection() target is now required"),a=new n);this.updateMatrixWorld(!0);var b=this.matrixWorld.elements;return a.set(-b[8],-b[9],-b[10]).normalize()},updateMatrixWorld:function(a){D.prototype.updateMatrixWorld.call(this,a);this.matrixWorldInverse.getInverse(this.matrixWorld)},clone:function(){return(new this.constructor).copy(this)}});U.prototype=Object.assign(Object.create(bb.prototype),{constructor:U,isPerspectiveCamera:!0,
+copy:function(a,b){bb.prototype.copy.call(this,a,b);this.fov=a.fov;this.zoom=a.zoom;this.near=a.near;this.far=a.far;this.focus=a.focus;this.aspect=a.aspect;this.view=null===a.view?null:Object.assign({},a.view);this.filmGauge=a.filmGauge;this.filmOffset=a.filmOffset;return this},setFocalLength:function(a){a=.5*this.getFilmHeight()/a;this.fov=2*P.RAD2DEG*Math.atan(a);this.updateProjectionMatrix()},getFocalLength:function(){var a=Math.tan(.5*P.DEG2RAD*this.fov);return.5*this.getFilmHeight()/a},getEffectiveFOV:function(){return 2*
+P.RAD2DEG*Math.atan(Math.tan(.5*P.DEG2RAD*this.fov)/this.zoom)},getFilmWidth:function(){return this.filmGauge*Math.min(this.aspect,1)},getFilmHeight:function(){return this.filmGauge/Math.max(this.aspect,1)},setViewOffset:function(a,b,c,d,e,f){this.aspect=a/b;null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1});this.view.enabled=!0;this.view.fullWidth=a;this.view.fullHeight=b;this.view.offsetX=c;this.view.offsetY=d;this.view.width=e;this.view.height=
+f;this.updateProjectionMatrix()},clearViewOffset:function(){null!==this.view&&(this.view.enabled=!1);this.updateProjectionMatrix()},updateProjectionMatrix:function(){var a=this.near,b=a*Math.tan(.5*P.DEG2RAD*this.fov)/this.zoom,c=2*b,d=this.aspect*c,e=-.5*d,f=this.view;if(null!==this.view&&this.view.enabled){var g=f.fullWidth,h=f.fullHeight;e+=f.offsetX*d/g;b-=f.offsetY*c/h;d*=f.width/g;c*=f.height/h}f=this.filmOffset;0!==f&&(e+=a*f/this.getFilmWidth());this.projectionMatrix.makePerspective(e,e+d,
+b,b-c,a,this.far);this.projectionMatrixInverse.getInverse(this.projectionMatrix)},toJSON:function(a){a=D.prototype.toJSON.call(this,a);a.object.fov=this.fov;a.object.zoom=this.zoom;a.object.near=this.near;a.object.far=this.far;a.object.focus=this.focus;a.object.aspect=this.aspect;null!==this.view&&(a.object.view=Object.assign({},this.view));a.object.filmGauge=this.filmGauge;a.object.filmOffset=this.filmOffset;return a}});Cc.prototype=Object.create(D.prototype);Cc.prototype.constructor=Cc;Bb.prototype=
+Object.create(la.prototype);Bb.prototype.constructor=Bb;Bb.prototype.isWebGLRenderTargetCube=!0;Bb.prototype.fromEquirectangularTexture=function(a,b){this.texture.type=b.type;this.texture.format=b.format;this.texture.encoding=b.encoding;var c=new wd,d=new va({type:"CubemapFromEquirect",uniforms:Xb({tEquirect:{value:null}}),vertexShader:"varying vec3 vWorldDirection;\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n}",
+fragmentShader:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#define RECIPROCAL_PI 0.31830988618\n#define RECIPROCAL_PI2 0.15915494\nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV;\n\tsampleUV.y = asin( clamp( direction.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\tsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n}",side:1,blending:0});d.uniforms.tEquirect.value=b;b=new ea(new Gd(5,
+5,5),d);c.add(b);d=new Cc(1,10,1);d.renderTarget=this;d.renderTarget.texture.name="CubeCameraTexture";d.update(a,c);b.geometry.dispose();b.material.dispose();return this};Yb.prototype=Object.create(Y.prototype);Yb.prototype.constructor=Yb;Yb.prototype.isDataTexture=!0;var td=new mb,Df=new n;Object.assign(Ed.prototype,{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},clone:function(){return(new this.constructor).copy(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],l=c[6],m=c[7],k=c[8],n=c[9],u=c[10],p=c[11],t=c[12],v=c[13],y=c[14];c=c[15];b[0].setComponents(f-a,m-g,p-k,c-t).normalize();b[1].setComponents(f+a,m+g,p+k,c+t).normalize();b[2].setComponents(f+d,m+h,p+n,c+v).normalize();b[3].setComponents(f-d,m-h,p-n,c-v).normalize();b[4].setComponents(f-e,m-l,p-u,c-y).normalize();
+b[5].setComponents(f+e,m+l,p+u,c+y).normalize();return this},intersectsObject:function(a){var b=a.geometry;null===b.boundingSphere&&b.computeBoundingSphere();td.copy(b.boundingSphere).applyMatrix4(a.matrixWorld);return this.intersectsSphere(td)},intersectsSprite:function(a){td.center.set(0,0,0);td.radius=.7071067811865476;td.applyMatrix4(a.matrixWorld);return this.intersectsSphere(td)},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)<
+a)return!1;return!0},intersectsBox:function(a){for(var b=this.planes,c=0;6>c;c++){var d=b[c];Df.x=0<d.normal.x?a.max.x:a.min.x;Df.y=0<d.normal.y?a.max.y:a.min.y;Df.z=0<d.normal.z?a.max.z:a.min.z;if(0>d.distanceToPoint(Df))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}});var S={alphamap_fragment:"#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\n#endif",alphamap_pars_fragment:"#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",
+alphatest_fragment:"#ifdef ALPHATEST\n\tif ( diffuseColor.a < ALPHATEST ) discard;\n#endif",aomap_fragment:"#ifdef USE_AOMAP\n\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\n\t#if defined( USE_ENVMAP ) && defined( STANDARD )\n\t\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.specularRoughness );\n\t#endif\n#endif",
+aomap_pars_fragment:"#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif",begin_vertex:"vec3 transformed = vec3( position );",beginnormal_vertex:"vec3 objectNormal = vec3( normal );\n#ifdef USE_TANGENT\n\tvec3 objectTangent = vec3( tangent.xyz );\n#endif",bsdfs:"vec2 integrateSpecularBRDF( const in float dotNV, const in float roughness ) {\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\treturn vec2( -1.04, 1.04 ) * a004 + r.zw;\n}\nfloat punctualLightIntensityToIrradianceFactor( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\tif( cutoffDistance > 0.0 ) {\n\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t}\n\treturn distanceFalloff;\n#else\n\tif( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t}\n\treturn 1.0;\n#endif\n}\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 specularColor, const in float dotLH ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );\n\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\n}\nvec3 F_Schlick_RoughnessDependent( const in vec3 F0, const in float dotNV, const in float roughness ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotNV - 6.98316 ) * dotNV );\n\tvec3 Fr = max( vec3( 1.0 - roughness ), F0 ) - F0;\n\treturn Fr * fresnel + F0;\n}\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\treturn 1.0 / ( gl * gv );\n}\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( incidentLight.direction + viewDir );\n\tfloat dotNL = saturate( dot( normal, incidentLight.direction ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( G * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE  = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS  = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\nvec3 BRDF_Specular_GGX_Environment( const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\n\treturn specularColor * brdf.x + brdf.y;\n}\nvoid BRDF_Specular_Multiscattering_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\tvec3 F = F_Schlick_RoughnessDependent( specularColor, dotNV, roughness );\n\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\n\tvec3 FssEss = F * brdf.x + brdf.y;\n\tfloat Ess = brdf.x + brdf.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\nfloat G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\n\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\n}\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\n\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie(float roughness, float NoH) {\n\tfloat invAlpha  = 1.0 / roughness;\n\tfloat cos2h = NoH * NoH;\n\tfloat sin2h = max(1.0 - cos2h, 0.0078125);\treturn (2.0 + invAlpha) * pow(sin2h, invAlpha * 0.5) / (2.0 * PI);\n}\nfloat V_Neubelt(float NoV, float NoL) {\n\treturn saturate(1.0 / (4.0 * (NoL + NoV - NoL * NoV)));\n}\nvec3 BRDF_Specular_Sheen( const in float roughness, const in vec3 L, const in GeometricContext geometry, vec3 specularColor ) {\n\tvec3 N = geometry.normal;\n\tvec3 V = geometry.viewDir;\n\tvec3 H = normalize( V + L );\n\tfloat dotNH = saturate( dot( N, H ) );\n\treturn specularColor * D_Charlie( roughness, dotNH ) * V_Neubelt( dot(N, V), dot(N, L) );\n}\n#endif",
+bumpmap_pars_fragment:"#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\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\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {\n\t\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\n\t\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 );\n\t\tfDet *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif",
+clipping_planes_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vViewPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vViewPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\tif ( clipped ) discard;\n\t#endif\n#endif",
+clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\t#if ! defined( STANDARD ) && ! defined( PHONG ) && ! defined( MATCAP )\n\t\tvarying vec3 vViewPosition;\n\t#endif\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0 && ! defined( STANDARD ) && ! defined( PHONG ) && ! defined( MATCAP )\n\tvarying vec3 vViewPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0 && ! defined( STANDARD ) && ! defined( PHONG ) && ! defined( MATCAP )\n\tvViewPosition = - mvPosition.xyz;\n#endif",
+color_fragment:"#ifdef USE_COLOR\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif",color_vertex:"#ifdef USE_COLOR\n\tvColor.xyz = color.xyz;\n#endif",common:"#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI_HALF 1.5707963267949\n#define RECIPROCAL_PI 0.31830988618\n#define RECIPROCAL_PI2 0.15915494\n#define LOG2 1.442695\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement(a) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract(sin(sn) * c);\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat max3( vec3 v ) { return max( max( v.x, v.y ), v.z ); }\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\tfloat distance = dot( planeNormal, point - pointOnPlane );\n\treturn - distance * planeNormal + point;\n}\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn sign( dot( point - pointOnPlane, planeNormal ) );\n}\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat linearToRelativeLuminance( const in vec3 color ) {\n\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\n\treturn dot( weights, color.rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n  return m[ 2 ][ 3 ] == - 1.0;\n}",
+cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n#define cubeUV_textureSize (1024.0)\nint getFaceFromDirection(vec3 direction) {\n\tvec3 absDirection = abs(direction);\n\tint face = -1;\n\tif( absDirection.x > absDirection.z ) {\n\t\tif(absDirection.x > absDirection.y )\n\t\t\tface = direction.x > 0.0 ? 0 : 3;\n\t\telse\n\t\t\tface = direction.y > 0.0 ? 1 : 4;\n\t}\n\telse {\n\t\tif(absDirection.z > absDirection.y )\n\t\t\tface = direction.z > 0.0 ? 2 : 5;\n\t\telse\n\t\t\tface = direction.y > 0.0 ? 1 : 4;\n\t}\n\treturn face;\n}\n#define cubeUV_maxLods1  (log2(cubeUV_textureSize*0.25) - 1.0)\n#define cubeUV_rangeClamp (exp2((6.0 - 1.0) * 2.0))\nvec2 MipLevelInfo( vec3 vec, float roughnessLevel, float roughness ) {\n\tfloat scale = exp2(cubeUV_maxLods1 - roughnessLevel);\n\tfloat dxRoughness = dFdx(roughness);\n\tfloat dyRoughness = dFdy(roughness);\n\tvec3 dx = dFdx( vec * scale * dxRoughness );\n\tvec3 dy = dFdy( vec * scale * dyRoughness );\n\tfloat d = max( dot( dx, dx ), dot( dy, dy ) );\n\td = clamp(d, 1.0, cubeUV_rangeClamp);\n\tfloat mipLevel = 0.5 * log2(d);\n\treturn vec2(floor(mipLevel), fract(mipLevel));\n}\n#define cubeUV_maxLods2 (log2(cubeUV_textureSize*0.25) - 2.0)\n#define cubeUV_rcpTextureSize (1.0 / cubeUV_textureSize)\nvec2 getCubeUV(vec3 direction, float roughnessLevel, float mipLevel) {\n\tmipLevel = roughnessLevel > cubeUV_maxLods2 - 3.0 ? 0.0 : mipLevel;\n\tfloat a = 16.0 * cubeUV_rcpTextureSize;\n\tvec2 exp2_packed = exp2( vec2( roughnessLevel, mipLevel ) );\n\tvec2 rcp_exp2_packed = vec2( 1.0 ) / exp2_packed;\n\tfloat powScale = exp2_packed.x * exp2_packed.y;\n\tfloat scale = rcp_exp2_packed.x * rcp_exp2_packed.y * 0.25;\n\tfloat mipOffset = 0.75*(1.0 - rcp_exp2_packed.y) * rcp_exp2_packed.x;\n\tbool bRes = mipLevel == 0.0;\n\tscale =  bRes && (scale < a) ? a : scale;\n\tvec3 r;\n\tvec2 offset;\n\tint face = getFaceFromDirection(direction);\n\tfloat rcpPowScale = 1.0 / powScale;\n\tif( face == 0) {\n\t\tr = vec3(direction.x, -direction.z, direction.y);\n\t\toffset = vec2(0.0+mipOffset,0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 1) {\n\t\tr = vec3(direction.y, direction.x, direction.z);\n\t\toffset = vec2(scale+mipOffset, 0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 2) {\n\t\tr = vec3(direction.z, direction.x, direction.y);\n\t\toffset = vec2(2.0*scale+mipOffset, 0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 3) {\n\t\tr = vec3(direction.x, direction.z, direction.y);\n\t\toffset = vec2(0.0+mipOffset,0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\telse if( face == 4) {\n\t\tr = vec3(direction.y, direction.x, -direction.z);\n\t\toffset = vec2(scale+mipOffset, 0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\telse {\n\t\tr = vec3(direction.z, -direction.x, direction.y);\n\t\toffset = vec2(2.0*scale+mipOffset, 0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\tr = normalize(r);\n\tfloat texelOffset = 0.5 * cubeUV_rcpTextureSize;\n\tvec2 s = ( r.yz / abs( r.x ) + vec2( 1.0 ) ) * 0.5;\n\tvec2 base = offset + vec2( texelOffset );\n\treturn base + s * ( scale - 2.0 * texelOffset );\n}\n#define cubeUV_maxLods3 (log2(cubeUV_textureSize*0.25) - 3.0)\nvec4 textureCubeUV( sampler2D envMap, vec3 reflectedDirection, float roughness ) {\n\tfloat roughnessVal = roughness* cubeUV_maxLods3;\n\tfloat r1 = floor(roughnessVal);\n\tfloat r2 = r1 + 1.0;\n\tfloat t = fract(roughnessVal);\n\tvec2 mipInfo = MipLevelInfo(reflectedDirection, r1, roughness);\n\tfloat s = mipInfo.y;\n\tfloat level0 = mipInfo.x;\n\tfloat level1 = level0 + 1.0;\n\tlevel1 = level1 > 5.0 ? 5.0 : level1;\n\tlevel0 += min( floor( s + 0.5 ), 5.0 );\n\tvec2 uv_10 = getCubeUV(reflectedDirection, r1, level0);\n\tvec4 color10 = envMapTexelToLinear(texture2D(envMap, uv_10));\n\tvec2 uv_20 = getCubeUV(reflectedDirection, r2, level0);\n\tvec4 color20 = envMapTexelToLinear(texture2D(envMap, uv_20));\n\tvec4 result = mix(color10, color20, t);\n\treturn vec4(result.rgb, 1.0);\n}\n#endif",
+defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\ttransformedNormal = mat3( instanceMatrix ) * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = normalMatrix * objectTangent;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",
+displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",
+encodings_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",encodings_pars_fragment:"\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( gammaFactor ) ), value.a );\n}\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( 1.0 / gammaFactor ) ), value.a );\n}\nvec4 sRGBToLinear( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}\nvec4 RGBEToLinear( in vec4 value ) {\n\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\n}\nvec4 LinearToRGBE( in vec4 value ) {\n\tfloat maxComponent = max( max( value.r, value.g ), value.b );\n\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\n\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\n}\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * value.a * maxRange, 1.0 );\n}\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\n\tM = ceil( M * 255.0 ) / 255.0;\n\treturn vec4( value.rgb / ( M * maxRange ), M );\n}\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\n}\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat D = max( maxRange / maxRGB, 1.0 );\n\tD = min( floor( D ) / 255.0, 1.0 );\n\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\n}\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\nvec4 LinearToLogLuv( in vec4 value )  {\n\tvec3 Xp_Y_XYZp = cLogLuvM * value.rgb;\n\tXp_Y_XYZp = max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) );\n\tvec4 vResult;\n\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\n\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\n\tvResult.w = fract( Le );\n\tvResult.z = ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0;\n\treturn vResult;\n}\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\nvec4 LogLuvToLinear( in vec4 value ) {\n\tfloat Le = value.z * 255.0 + value.w;\n\tvec3 Xp_Y_XYZp;\n\tXp_Y_XYZp.y = exp2( ( Le - 127.0 ) / 2.0 );\n\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\n\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\n\tvec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;\n\treturn vec4( max( vRGB, 0.0 ), 1.0 );\n}",
+envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToVertex = normalize( vWorldPosition - cameraPosition );\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\tvec2 sampleUV;\n\t\treflectVec = normalize( reflectVec );\n\t\tsampleUV.y = asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\t\tsampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\tvec4 envColor = texture2D( envMap, sampleUV );\n\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\treflectVec = normalize( reflectVec );\n\t\tvec3 reflectView = 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#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\tenvColor = envMapTexelToLinear( envColor );\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",
+envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\tuniform int maxMipLevel;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",
+envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#if defined( USE_ENVMAP )\n\t#ifdef ENVMAP_MODE_REFRACTION\n\t\tuniform float refractionRatio;\n\t#endif\n\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\n\t\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, queryVec, 1.0 );\n\t\t#else\n\t\t\tvec4 envMapColor = vec4( 0.0 );\n\t\t#endif\n\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t}\n\tfloat getSpecularMIPLevel( const in float roughness, const in int maxMIPLevel ) {\n\t\tfloat maxMIPLevelScalar = float( maxMIPLevel );\n\t\tfloat sigma = PI * roughness * roughness / ( 1.0 + roughness );\n\t\tfloat desiredMIPLevel = maxMIPLevelScalar + log2( sigma );\n\t\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\n\t}\n\tvec3 getLightProbeIndirectRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in int maxMIPLevel ) {\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t  vec3 reflectVec = reflect( -viewDir, normal );\n\t\t  reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t#else\n\t\t  vec3 reflectVec = refract( -viewDir, normal, refractionRatio );\n\t\t#endif\n\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\tfloat specularMIPLevel = getSpecularMIPLevel( roughness, maxMIPLevel );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, queryReflectVec, roughness );\n\t\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\t\tvec2 sampleUV;\n\t\t\tsampleUV.y = asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\t\t\tsampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = texture2DLodEXT( envMap, sampleUV, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = texture2D( envMap, sampleUV, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\t\tvec3 reflectView = normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0,0.0,1.0 ) );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = texture2DLodEXT( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#endif\n\t\treturn envMapColor.rgb * envMapIntensity;\n\t}\n#endif",
+envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tfogDepth = -mvPosition.z;\n#endif",
+fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float fogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * fogDepth * fogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float fogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",
+gradientmap_pars_fragment:"#ifdef TOON\n\tuniform sampler2D gradientMap;\n\tvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\t\tfloat dotNL = dot( normal, lightDirection );\n\t\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t\t#ifdef USE_GRADIENTMAP\n\t\t\treturn texture2D( gradientMap, coord ).rgb;\n\t\t#else\n\t\t\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\n\t\t#endif\n\t}\n#endif",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\treflectedLight.indirectDiffuse += PI * texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n#endif",
+lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_vertex:"vec3 diffuse = vec3( 1.0 );\nGeometricContext geometry;\ngeometry.position = mvPosition.xyz;\ngeometry.normal = normalize( transformedNormal );\ngeometry.viewDir = normalize( -mvPosition.xyz );\nGeometricContext backGeometry;\nbackGeometry.position = geometry.position;\nbackGeometry.normal = -geometry.normal;\nbackGeometry.viewDir = geometry.viewDir;\nvLightFront = vec3( 0.0 );\nvIndirectFront = vec3( 0.0 );\n#ifdef DOUBLE_SIDED\n\tvLightBack = vec3( 0.0 );\n\tvIndirectBack = vec3( 0.0 );\n#endif\nIncidentLight directLight;\nfloat dotNL;\nvec3 directLightColor_Diffuse;\n#if NUM_POINT_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_DIR_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\tvIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\n\t\t#endif\n\t}\n#endif",
+lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in GeometricContext geometry ) {\n\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treturn irradiance;\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tdirectLight.color = directionalLight.color;\n\t\tdirectLight.direction = directionalLight.direction;\n\t\tdirectLight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t\tfloat shadowCameraNear;\n\t\tfloat shadowCameraFar;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tdirectLight.color = pointLight.color;\n\t\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\n\t\tdirectLight.visible = ( directLight.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight  ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tfloat angleCos = dot( directLight.direction, spotLight.direction );\n\t\tif ( angleCos > spotLight.coneCos ) {\n\t\t\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\t\tdirectLight.color = spotLight.color;\n\t\t\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tdirectLight.visible = true;\n\t\t} else {\n\t\t\tdirectLight.color = vec3( 0.0 );\n\t\t\tdirectLight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {\n\t\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tirradiance *= PI;\n\t\t#endif\n\t\treturn irradiance;\n\t}\n#endif",
+lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct BlinnPhongMaterial {\n\tvec3\tdiffuseColor;\n\tvec3\tspecularColor;\n\tfloat\tspecularShininess;\n\tfloat\tspecularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\t#ifdef TOON\n\t\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\t#else\n\t\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\t\tvec3 irradiance = dotNL * directLight.color;\n\t#endif\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong\n#define Material_LightProbeLOD( material )\t(0)",
+lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nmaterial.specularRoughness = clamp( roughnessFactor, 0.04, 1.0 );\n#ifdef REFLECTIVITY\n\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\n#endif\n#ifdef CLEARCOAT\n\tmaterial.clearcoat = saturate( clearcoat );\tmaterial.clearcoatRoughness = clamp( clearcoatRoughness, 0.04, 1.0 );\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheen;\n#endif",
+lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3\tdiffuseColor;\n\tfloat\tspecularRoughness;\n\tvec3\tspecularColor;\n#ifdef CLEARCOAT\n\tfloat clearcoat;\n\tfloat clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tvec3 sheenColor;\n#endif\n};\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\nfloat clearcoatDHRApprox( const in float roughness, const in float dotNL ) {\n\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.specularRoughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3(    0, 1,    0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\t#ifdef CLEARCOAT\n\t\tfloat ccDotNL = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = ccDotNL * directLight.color;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tccIrradiance *= PI;\n\t\t#endif\n\t\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\n\t\treflectedLight.directSpecular += ccIrradiance * material.clearcoat * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\n\t#else\n\t\tfloat clearcoatDHR = 0.0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_Sheen(\n\t\t\tmaterial.specularRoughness,\n\t\t\tdirectLight.direction,\n\t\t\tgeometry,\n\t\t\tmaterial.sheenColor\n\t\t);\n\t#else\n\t\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.normal, material.specularColor, material.specularRoughness);\n\t#endif\n\treflectedLight.directDiffuse += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef CLEARCOAT\n\t\tfloat ccDotNV = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular += clearcoatRadiance * material.clearcoat * BRDF_Specular_GGX_Environment( geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\n\t\tfloat ccDotNL = ccDotNV;\n\t\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\n\t#else\n\t\tfloat clearcoatDHR = 0.0;\n\t#endif\n\tfloat clearcoatInv = 1.0 - clearcoatDHR;\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\tBRDF_Specular_Multiscattering_Environment( geometry, material.specularColor, material.specularRoughness, singleScattering, multiScattering );\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\n\treflectedLight.indirectSpecular += clearcoatInv * radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",
+lights_fragment_begin:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = normalize( vViewPosition );\n#ifdef CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tdirectLight.color *= all( bvec3( pointLight.shadow, directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tdirectLight.color *= all( bvec3( spotLight.shadow, directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectLight.color *= all( bvec3( directionalLight.shadow, directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t}\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",
+lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec3 lightMapIrradiance = texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tlightMapIrradiance *= PI;\n\t\t#endif\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getLightProbeIndirectIrradiance( geometry, maxMipLevel );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.normal, material.specularRoughness, maxMipLevel );\n\t#ifdef CLEARCOAT\n\t\tclearcoatRadiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness, maxMipLevel );\n\t#endif\n#endif",
+lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",
+logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",
+map_fragment:"#ifdef USE_MAP\n\tvec4 texelColor = texture2D( map, vUv );\n\ttexelColor = mapTexelToLinear( texelColor );\n\tdiffuseColor *= texelColor;\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n#endif\n#ifdef USE_MAP\n\tvec4 mapTexel = texture2D( map, uv );\n\tdiffuseColor *= mapTexelToLinear( mapTexel );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",
+map_particle_pars_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tuniform mat3 uvTransform;\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",
+morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal += ( morphNormal0 - normal ) * morphTargetInfluences[ 0 ];\n\tobjectNormal += ( morphNormal1 - normal ) * morphTargetInfluences[ 1 ];\n\tobjectNormal += ( morphNormal2 - normal ) * morphTargetInfluences[ 2 ];\n\tobjectNormal += ( morphNormal3 - normal ) * morphTargetInfluences[ 3 ];\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\t#ifndef USE_MORPHNORMALS\n\tuniform float morphTargetInfluences[ 8 ];\n\t#else\n\tuniform float morphTargetInfluences[ 4 ];\n\t#endif\n#endif",
+morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed += ( morphTarget0 - position ) * morphTargetInfluences[ 0 ];\n\ttransformed += ( morphTarget1 - position ) * morphTargetInfluences[ 1 ];\n\ttransformed += ( morphTarget2 - position ) * morphTargetInfluences[ 2 ];\n\ttransformed += ( morphTarget3 - position ) * morphTargetInfluences[ 3 ];\n\t#ifndef USE_MORPHNORMALS\n\ttransformed += ( morphTarget4 - position ) * morphTargetInfluences[ 4 ];\n\ttransformed += ( morphTarget5 - position ) * morphTargetInfluences[ 5 ];\n\ttransformed += ( morphTarget6 - position ) * morphTargetInfluences[ 6 ];\n\ttransformed += ( morphTarget7 - position ) * morphTargetInfluences[ 7 ];\n\t#endif\n#endif",
+normal_fragment_begin:"#ifdef FLAT_SHADED\n\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\n\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t#endif\n\t#ifdef USE_TANGENT\n\t\tvec3 tangent = normalize( vTangent );\n\t\tvec3 bitangent = normalize( vBitangent );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\ttangent = tangent * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t\tbitangent = bitangent * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t#endif\n\t#endif\n#endif\nvec3 geometryNormal = normal;",
+normal_fragment_maps:"#ifdef OBJECTSPACE_NORMALMAP\n\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( TANGENTSPACE_NORMALMAP )\n\t#ifdef USE_TANGENT\n\t\tmat3 vTBN = mat3( tangent, bitangent, normal );\n\t\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t\tmapN.xy = normalScale * mapN.xy;\n\t\tnormal = normalize( vTBN * mapN );\n\t#else\n\t\tnormal = perturbNormal2Arb( -vViewPosition, normal, normalScale, normalMap );\n\t#endif\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\n#endif",
+normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec2 normalScale, in sampler2D normalMap ) {\n\t\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\n\t\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.st );\n\t\tfloat scale = sign( st1.t * st0.s - st0.t * st1.s );\n\t\tvec3 S = normalize( ( q0 * st1.t - q1 * st0.t ) * scale );\n\t\tvec3 T = normalize( ( - q0 * st1.s + q1 * st0.s ) * scale );\n\t\tvec3 N = normalize( surf_norm );\n\t\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t\tmapN.xy *= normalScale;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tbool frontFacing = dot( cross( S, T ), N ) > 0.0;\n\t\t\tmapN.xy *= ( float( frontFacing ) * 2.0 - 1.0 );\n\t\t#else\n\t\t\tmapN.xy *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t#endif\n\t\tmat3 tsn = mat3( S, T, N );\n\t\treturn normalize( tsn * mapN );\n\t}\n#endif",
+clearcoat_normal_fragment_begin:"#ifdef CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 vTBN = mat3( tangent, bitangent, clearcoatNormal );\n\t\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t\tmapN.xy = clearcoatNormalScale * mapN.xy;\n\t\tclearcoatNormal = normalize( vTBN * mapN );\n\t#else\n\t\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatNormalScale, clearcoatNormalMap );\n\t#endif\n#endif",
+clearcoat_normalmap_pars_fragment:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256.,  256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec4 encodeHalfRGBA ( vec2 v ) {\n\tvec4 encoded = vec4( 0.0 );\n\tconst vec2 offset = vec2( 1.0 / 255.0, 0.0 );\n\tencoded.xy = vec2( v.x, fract( v.x * 255.0 ) );\n\tencoded.xy = encoded.xy - ( encoded.yy * offset );\n\tencoded.zw = vec2( v.y, fract( v.y * 255.0 ) );\n\tencoded.zw = encoded.zw - ( encoded.ww * offset );\n\treturn encoded;\n}\nvec2 decodeHalfRGBA( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n\treturn linearClipZ * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn (( near + viewZ ) * far ) / (( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\n}",
+premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",
+roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn decodeHalfRGBA( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat texture2DShadowLerp( sampler2D depths, vec2 size, vec2 uv, float compare ) {\n\t\tconst vec2 offset = vec2( 0.0, 1.0 );\n\t\tvec2 texelSize = vec2( 1.0 ) / size;\n\t\tvec2 centroidUV = ( floor( uv * size - 0.5 ) + 0.5 ) * texelSize;\n\t\tfloat lb = texture2DCompare( depths, centroidUV + texelSize * offset.xx, compare );\n\t\tfloat lt = texture2DCompare( depths, centroidUV + texelSize * offset.xy, compare );\n\t\tfloat rb = texture2DCompare( depths, centroidUV + texelSize * offset.yx, compare );\n\t\tfloat rt = texture2DCompare( depths, centroidUV + texelSize * offset.yy, compare );\n\t\tvec2 f = fract( uv * size + 0.5 );\n\t\tfloat a = mix( lb, lt, f.y );\n\t\tfloat b = mix( rb, rt, f.y );\n\t\tfloat c = mix( a, b, f.x );\n\t\treturn c;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\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\t\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\t\tbool frustumTest = all( frustumTestVec );\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tshadow = (\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",
+shadowmap_pars_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",
+shadowmap_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * worldPosition;\n\t}\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * worldPosition;\n\t}\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * worldPosition;\n\t}\n\t#endif\n#endif",
+shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLight directionalLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tshadow *= all( bvec2( directionalLight.shadow, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLight spotLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tshadow *= all( bvec2( spotLight.shadow, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t}\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLight pointLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tshadow *= all( bvec2( pointLight.shadow, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#endif\n\t#endif\n\treturn shadow;\n}",
+skinbase_vertex:"#ifdef USE_SKINNING\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#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\t#ifdef BONE_TEXTURE\n\t\tuniform highp sampler2D boneTexture;\n\t\tuniform int boneTextureSize;\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tfloat j = i * 4.0;\n\t\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\t\ty = dy * ( y + 0.5 );\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\t\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\t\treturn bone;\n\t\t}\n\t#else\n\t\tuniform mat4 boneMatrices[ MAX_BONES ];\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tmat4 bone = boneMatrices[ int(i) ];\n\t\t\treturn bone;\n\t\t}\n\t#endif\n#endif",
+skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\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\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\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\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",
+specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nuniform float toneMappingWhitePoint;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\n#define Uncharted2Helper( x ) max( ( ( x * ( 0.15 * x + 0.10 * 0.50 ) + 0.20 * 0.02 ) / ( x * ( 0.15 * x + 0.50 ) + 0.20 * 0.30 ) ) - 0.02 / 0.30, vec3( 0.0 ) )\nvec3 Uncharted2ToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( Uncharted2Helper( color ) / Uncharted2Helper( vec3( toneMappingWhitePoint ) ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( ( color * ( 2.51 * color + 0.03 ) ) / ( color * ( 2.43 * color + 0.59 ) + 0.14 ) );\n}",
+uv_pars_fragment:"#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif",uv_pars_vertex:"#ifdef USE_UV\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif",uv_vertex:"#ifdef USE_UV\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n#endif",uv2_pars_fragment:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif",uv2_pars_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n#endif",uv2_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = uv2;\n#endif",
+worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_frag:"uniform sampler2D t2D;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\tgl_FragColor = mapTexelToLinear( texColor );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n}",
+background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = mapTexelToLinear( texColor );\n\tgl_FragColor.a *= opacity;\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n}",
+cube_vert:"varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\tgl_Position.z = gl_Position.w;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <logdepthbuf_fragment>\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - gl_FragCoord.z ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( gl_FragCoord.z );\n\t#endif\n}",
+depth_vert:"#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n}",
+distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main () {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",
+distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\tvWorldPosition = worldPosition.xyz;\n}",
+equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV;\n\tsampleUV.y = asin( clamp( direction.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\tsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;\n\tvec4 texColor = texture2D( tEquirect, sampleUV );\n\tgl_FragColor = mapTexelToLinear( texColor );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n}",
+equirect_vert:"varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <color_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <premultiplied_alpha_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}",
+linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <color_vertex>\n\tvLineDistance = scale * lineDistance;\n\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}",
+meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\treflectedLight.indirectDiffuse += texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <premultiplied_alpha_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}",
+meshbasic_vert:"#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_ENVMAP\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}",
+meshlambert_frag:"uniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <fog_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\t#include <emissivemap_fragment>\n\treflectedLight.indirectDiffuse = getAmbientLightIrradiance( ambientLightColor );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;\n\t#else\n\t\treflectedLight.indirectDiffuse += vIndirectFront;\n\t#endif\n\t#include <lightmap_fragment>\n\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\n\t#else\n\t\treflectedLight.directDiffuse = vLightFront;\n\t#endif\n\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",
+meshlambert_vert:"#define LAMBERT\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <lights_lambert_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",
+meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t\tmatcapColor = matcapTexelToLinear( matcapColor );\n\t#else\n\t\tvec4 matcapColor = vec4( 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <premultiplied_alpha_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}",
+meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#ifndef FLAT_SHADED\n\t\tvNormal = normalize( transformedNormal );\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n\tvViewPosition = - mvPosition.xyz;\n}",
+meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <gradientmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <lights_phong_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_phong_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",
+meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",
+meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define REFLECTIVITY\n\t#define CLEARCOAT\n\t#define TRANSPARENCY\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef TRANSPARENCY\n\tuniform float transparency;\n#endif\n#ifdef REFLECTIVITY\n\tuniform float reflectivity;\n#endif\n#ifdef CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheen;\n#endif\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <bsdfs>\n#include <cube_uv_reflection_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_physical_pars_fragment>\n#include <fog_pars_fragment>\n#include <lights_pars_begin>\n#include <lights_physical_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <clearcoat_normalmap_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <roughnessmap_fragment>\n\t#include <metalnessmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <clearcoat_normal_fragment_begin>\n\t#include <clearcoat_normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_physical_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#ifdef TRANSPARENCY\n\t\tdiffuseColor.a *= saturate( 1. - transparency + linearToRelativeLuminance( reflectedLight.directSpecular + reflectedLight.indirectSpecular ) );\n\t#endif\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",
+meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",
+normal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include <packing>\n#include <uv_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n}",
+normal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",
+points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <color_pars_fragment>\n#include <map_particle_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_particle_fragment>\n\t#include <color_fragment>\n\t#include <alphatest_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <premultiplied_alpha_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}",
+points_vert:"uniform float size;\nuniform float scale;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <color_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <fog_vertex>\n}",
+shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\nvoid main() {\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include <fog_fragment>\n}",shadow_vert:"#include <fog_pars_vertex>\n#include <shadowmap_pars_vertex>\nvoid main() {\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",
+sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}",
+sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include <common>\n#include <uv_pars_vertex>\n#include <fog_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}"},
+L={common:{diffuse:{value:new J(15658734)},opacity:{value:1},map:{value:null},uvTransform:{value:new Z},alphaMap:{value:null}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},refractionRatio:{value:.98},maxMipLevel:{value:0}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},
+normalScale:{value:new B(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:2.5E-4},fogNear:{value:1},fogFar:{value:2E3},fogColor:{value:new J(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{},shadow:{},shadowBias:{},
+shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},
+pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}}},points:{diffuse:{value:new J(15658734)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},uvTransform:{value:new Z}},sprite:{diffuse:{value:new J(15658734)},opacity:{value:1},center:{value:new B(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},
+uvTransform:{value:new Z}}},cb={basic:{uniforms:ua([L.common,L.specularmap,L.envmap,L.aomap,L.lightmap,L.fog]),vertexShader:S.meshbasic_vert,fragmentShader:S.meshbasic_frag},lambert:{uniforms:ua([L.common,L.specularmap,L.envmap,L.aomap,L.lightmap,L.emissivemap,L.fog,L.lights,{emissive:{value:new J(0)}}]),vertexShader:S.meshlambert_vert,fragmentShader:S.meshlambert_frag},phong:{uniforms:ua([L.common,L.specularmap,L.envmap,L.aomap,L.lightmap,L.emissivemap,L.bumpmap,L.normalmap,L.displacementmap,L.gradientmap,
+L.fog,L.lights,{emissive:{value:new J(0)},specular:{value:new J(1118481)},shininess:{value:30}}]),vertexShader:S.meshphong_vert,fragmentShader:S.meshphong_frag},standard:{uniforms:ua([L.common,L.envmap,L.aomap,L.lightmap,L.emissivemap,L.bumpmap,L.normalmap,L.displacementmap,L.roughnessmap,L.metalnessmap,L.fog,L.lights,{emissive:{value:new J(0)},roughness:{value:.5},metalness:{value:.5},envMapIntensity:{value:1}}]),vertexShader:S.meshphysical_vert,fragmentShader:S.meshphysical_frag},matcap:{uniforms:ua([L.common,
+L.bumpmap,L.normalmap,L.displacementmap,L.fog,{matcap:{value:null}}]),vertexShader:S.meshmatcap_vert,fragmentShader:S.meshmatcap_frag},points:{uniforms:ua([L.points,L.fog]),vertexShader:S.points_vert,fragmentShader:S.points_frag},dashed:{uniforms:ua([L.common,L.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:S.linedashed_vert,fragmentShader:S.linedashed_frag},depth:{uniforms:ua([L.common,L.displacementmap]),vertexShader:S.depth_vert,fragmentShader:S.depth_frag},normal:{uniforms:ua([L.common,
+L.bumpmap,L.normalmap,L.displacementmap,{opacity:{value:1}}]),vertexShader:S.normal_vert,fragmentShader:S.normal_frag},sprite:{uniforms:ua([L.sprite,L.fog]),vertexShader:S.sprite_vert,fragmentShader:S.sprite_frag},background:{uniforms:{uvTransform:{value:new Z},t2D:{value:null}},vertexShader:S.background_vert,fragmentShader:S.background_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:S.cube_vert,fragmentShader:S.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},
+vertexShader:S.equirect_vert,fragmentShader:S.equirect_frag},distanceRGBA:{uniforms:ua([L.common,L.displacementmap,{referencePosition:{value:new n},nearDistance:{value:1},farDistance:{value:1E3}}]),vertexShader:S.distanceRGBA_vert,fragmentShader:S.distanceRGBA_frag},shadow:{uniforms:ua([L.lights,L.fog,{color:{value:new J(0)},opacity:{value:1}}]),vertexShader:S.shadow_vert,fragmentShader:S.shadow_frag}};cb.physical={uniforms:ua([cb.standard.uniforms,{transparency:{value:0},clearcoat:{value:0},clearcoatRoughness:{value:0},
+sheen:{value:new J(0)},clearcoatNormalScale:{value:new B(1,1)},clearcoatNormalMap:{value:null}}]),vertexShader:S.meshphysical_vert,fragmentShader:S.meshphysical_frag};Fd.prototype=Object.create(C.prototype);Fd.prototype.constructor=Fd;Zb.prototype=Object.create(E.prototype);Zb.prototype.constructor=Zb;nb.prototype=Object.create(Y.prototype);nb.prototype.constructor=nb;nb.prototype.isCubeTexture=!0;Object.defineProperty(nb.prototype,"images",{get:function(){return this.image},set:function(a){this.image=
+a}});Dc.prototype=Object.create(Y.prototype);Dc.prototype.constructor=Dc;Dc.prototype.isDataTexture2DArray=!0;Ec.prototype=Object.create(Y.prototype);Ec.prototype.constructor=Ec;Ec.prototype.isDataTexture3D=!0;var uh=new Y,rj=new Dc,tj=new Ec,vh=new nb,oh=[],qh=[],th=new Float32Array(16),sh=new Float32Array(9),rh=new Float32Array(4);wh.prototype.updateCache=function(a){var b=this.cache;a instanceof Float32Array&&b.length!==a.length&&(this.cache=new Float32Array(a.length));Ha(b,a)};xh.prototype.setValue=
+function(a,b,c){for(var d=this.seq,e=0,f=d.length;e!==f;++e){var g=d[e];g.setValue(a,b[g.id],c)}};var bg=/([\w\d_]+)(\])?(\[|\.)?/g;Cb.prototype.setValue=function(a,b,c,d){b=this.map[b];void 0!==b&&b.setValue(a,c,d)};Cb.prototype.setOptional=function(a,b,c){b=b[c];void 0!==b&&this.setValue(a,c,b)};Cb.upload=function(a,b,c,d){for(var e=0,f=b.length;e!==f;++e){var g=b[e],h=c[g.id];!1!==h.needsUpdate&&g.setValue(a,h.value,d)}};Cb.seqWithValue=function(a,b){for(var c=[],d=0,e=a.length;d!==e;++d){var f=
+a[d];f.id in b&&c.push(f)}return c};var Yj=0,dg=/^[ \t]*#include +<([\w\d./]+)>/gm,Fh=/#pragma unroll_loop[\s]+?for \( int i = (\d+); i < (\d+); i \+\+ \) \{([\s\S]+?)(?=\})\}/g,hk=0;Db.prototype=Object.create(O.prototype);Db.prototype.constructor=Db;Db.prototype.isMeshDepthMaterial=!0;Db.prototype.copy=function(a){O.prototype.copy.call(this,a);this.depthPacking=a.depthPacking;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.map=a.map;this.alphaMap=a.alphaMap;this.displacementMap=a.displacementMap;
+this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;return this};Eb.prototype=Object.create(O.prototype);Eb.prototype.constructor=Eb;Eb.prototype.isMeshDistanceMaterial=!0;Eb.prototype.copy=function(a){O.prototype.copy.call(this,a);this.referencePosition.copy(a.referencePosition);this.nearDistance=a.nearDistance;this.farDistance=a.farDistance;this.skinning=a.skinning;this.morphTargets=a.morphTargets;
+this.map=a.map;this.alphaMap=a.alphaMap;this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;return this};fg.prototype=Object.assign(Object.create(la.prototype),{constructor:fg,isWebGLMultiviewRenderTarget:!0,copy:function(a){la.prototype.copy.call(this,a);this.numViews=a.numViews;return this},setNumViews:function(a){this.numViews!==a&&(this.numViews=a,this.dispose());return this}});Hc.prototype=Object.assign(Object.create(D.prototype),
+{constructor:Hc,isGroup:!0});Kd.prototype=Object.assign(Object.create(U.prototype),{constructor:Kd,isArrayCamera:!0});var Mh=new n,Nh=new n;Object.assign(gg.prototype,Ba.prototype);Object.assign(Oh.prototype,Ba.prototype);Object.assign(Le.prototype,{isFogExp2:!0,clone:function(){return new Le(this.color,this.density)},toJSON:function(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}});Object.assign(Me.prototype,{isFog:!0,clone:function(){return new Me(this.color,this.near,this.far)},
+toJSON:function(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}});Object.defineProperty(pb.prototype,"needsUpdate",{set:function(a){!0===a&&this.version++}});Object.assign(pb.prototype,{isInterleavedBuffer:!0,onUploadCallback:function(){},setUsage:function(a){this.usage=a;return this},copy:function(a){this.array=new a.array.constructor(a.array);this.count=a.count;this.stride=a.stride;this.usage=a.usage;return this},copyAt:function(a,b,c){a*=this.stride;c*=b.stride;for(var d=
+0,e=this.stride;d<e;d++)this.array[a+d]=b.array[c+d];return this},set:function(a,b){void 0===b&&(b=0);this.array.set(a,b);return this},clone:function(){return(new this.constructor).copy(this)},onUpload:function(a){this.onUploadCallback=a;return this}});Object.defineProperties(Ld.prototype,{count:{get:function(){return this.data.count}},array:{get:function(){return this.data.array}}});Object.assign(Ld.prototype,{isInterleavedBufferAttribute:!0,setX:function(a,b){this.data.array[a*this.data.stride+
+this.offset]=b;return this},setY:function(a,b){this.data.array[a*this.data.stride+this.offset+1]=b;return this},setZ:function(a,b){this.data.array[a*this.data.stride+this.offset+2]=b;return this},setW:function(a,b){this.data.array[a*this.data.stride+this.offset+3]=b;return this},getX:function(a){return this.data.array[a*this.data.stride+this.offset]},getY:function(a){return this.data.array[a*this.data.stride+this.offset+1]},getZ:function(a){return this.data.array[a*this.data.stride+this.offset+2]},
+getW:function(a){return this.data.array[a*this.data.stride+this.offset+3]},setXY:function(a,b,c){a=a*this.data.stride+this.offset;this.data.array[a+0]=b;this.data.array[a+1]=c;return this},setXYZ:function(a,b,c,d){a=a*this.data.stride+this.offset;this.data.array[a+0]=b;this.data.array[a+1]=c;this.data.array[a+2]=d;return this},setXYZW:function(a,b,c,d,e){a=a*this.data.stride+this.offset;this.data.array[a+0]=b;this.data.array[a+1]=c;this.data.array[a+2]=d;this.data.array[a+3]=e;return this}});Gb.prototype=
+Object.create(O.prototype);Gb.prototype.constructor=Gb;Gb.prototype.isSpriteMaterial=!0;Gb.prototype.copy=function(a){O.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.alphaMap=a.alphaMap;this.rotation=a.rotation;this.sizeAttenuation=a.sizeAttenuation;return this};var Ic,ze=new n,ud=new n,vd=new n,Jc=new B,Nd=new B,Qh=new Q,Ef=new n,Ae=new n,Ff=new n,vi=new B,$g=new B,wi=new B;Md.prototype=Object.assign(Object.create(D.prototype),{constructor:Md,isSprite:!0,raycast:function(a,
+b){null===a.camera&&console.error('THREE.Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.');ud.setFromMatrixScale(this.matrixWorld);Qh.copy(a.camera.matrixWorld);this.modelViewMatrix.multiplyMatrices(a.camera.matrixWorldInverse,this.matrixWorld);vd.setFromMatrixPosition(this.modelViewMatrix);a.camera.isPerspectiveCamera&&!1===this.material.sizeAttenuation&&ud.multiplyScalar(-vd.z);var c=this.material.rotation;if(0!==c){var d=Math.cos(c);var e=Math.sin(c)}c=this.center;
+Ne(Ef.set(-.5,-.5,0),vd,c,ud,e,d);Ne(Ae.set(.5,-.5,0),vd,c,ud,e,d);Ne(Ff.set(.5,.5,0),vd,c,ud,e,d);vi.set(0,0);$g.set(1,0);wi.set(1,1);var f=a.ray.intersectTriangle(Ef,Ae,Ff,!1,ze);if(null===f&&(Ne(Ae.set(-.5,.5,0),vd,c,ud,e,d),$g.set(0,1),f=a.ray.intersectTriangle(Ef,Ff,Ae,!1,ze),null===f))return;e=a.ray.origin.distanceTo(ze);e<a.near||e>a.far||b.push({distance:e,point:ze.clone(),uv:ba.getUV(ze,Ef,Ae,Ff,vi,$g,wi,new B),face:null,object:this})},clone:function(){return(new this.constructor(this.material)).copy(this)},
+copy:function(a){D.prototype.copy.call(this,a);void 0!==a.center&&this.center.copy(a.center);return this}});var Gf=new n,xi=new n;Od.prototype=Object.assign(Object.create(D.prototype),{constructor:Od,isLOD:!0,copy:function(a){D.prototype.copy.call(this,a,!1);a=a.levels;for(var b=0,c=a.length;b<c;b++){var d=a[b];this.addLevel(d.object.clone(),d.distance)}return this},addLevel:function(a,b){void 0===b&&(b=0);b=Math.abs(b);for(var c=this.levels,d=0;d<c.length&&!(b<c[d].distance);d++);c.splice(d,0,{distance:b,
+object:a});this.add(a);return this},getObjectForDistance:function(a){for(var b=this.levels,c=1,d=b.length;c<d&&!(a<b[c].distance);c++);return b[c-1].object},raycast:function(a,b){Gf.setFromMatrixPosition(this.matrixWorld);var c=a.ray.origin.distanceTo(Gf);this.getObjectForDistance(c).raycast(a,b)},update:function(a){var b=this.levels;if(1<b.length){Gf.setFromMatrixPosition(a.matrixWorld);xi.setFromMatrixPosition(this.matrixWorld);a=Gf.distanceTo(xi);b[0].object.visible=!0;for(var c=1,d=b.length;c<
+d;c++)if(a>=b[c].distance)b[c-1].object.visible=!1,b[c].object.visible=!0;else break;for(;c<d;c++)b[c].object.visible=!1}},toJSON:function(a){a=D.prototype.toJSON.call(this,a);a.object.levels=[];for(var b=this.levels,c=0,d=b.length;c<d;c++){var e=b[c];a.object.levels.push({object:e.object.uuid,distance:e.distance})}return a}});Pd.prototype=Object.assign(Object.create(ea.prototype),{constructor:Pd,isSkinnedMesh:!0,bind:function(a,b){this.skeleton=a;void 0===b&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),
+b=this.matrixWorld);this.bindMatrix.copy(b);this.bindMatrixInverse.getInverse(b)},pose:function(){this.skeleton.pose()},normalizeSkinWeights:function(){for(var a=new da,b=this.geometry.attributes.skinWeight,c=0,d=b.count;c<d;c++){a.x=b.getX(c);a.y=b.getY(c);a.z=b.getZ(c);a.w=b.getW(c);var e=1/a.manhattanLength();Infinity!==e?a.multiplyScalar(e):a.set(1,0,0,0);b.setXYZW(c,a.x,a.y,a.z,a.w)}},updateMatrixWorld:function(a){ea.prototype.updateMatrixWorld.call(this,a);"attached"===this.bindMode?this.bindMatrixInverse.getInverse(this.matrixWorld):
+"detached"===this.bindMode?this.bindMatrixInverse.getInverse(this.bindMatrix):console.warn("THREE.SkinnedMesh: Unrecognized bindMode: "+this.bindMode)},clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});var yi=new Q,Dk=new Q;Object.assign(Oe.prototype,{calculateInverses:function(){this.boneInverses=[];for(var a=0,b=this.bones.length;a<b;a++){var c=new Q;this.bones[a]&&c.getInverse(this.bones[a].matrixWorld);this.boneInverses.push(c)}},pose:function(){var a,b;
+var c=0;for(b=this.bones.length;c<b;c++)(a=this.bones[c])&&a.matrixWorld.getInverse(this.boneInverses[c]);c=0;for(b=this.bones.length;c<b;c++)if(a=this.bones[c])a.parent&&a.parent.isBone?(a.matrix.getInverse(a.parent.matrixWorld),a.matrix.multiply(a.matrixWorld)):a.matrix.copy(a.matrixWorld),a.matrix.decompose(a.position,a.quaternion,a.scale)},update:function(){for(var a=this.bones,b=this.boneInverses,c=this.boneMatrices,d=this.boneTexture,e=0,f=a.length;e<f;e++)yi.multiplyMatrices(a[e]?a[e].matrixWorld:
+Dk,b[e]),yi.toArray(c,16*e);void 0!==d&&(d.needsUpdate=!0)},clone:function(){return new Oe(this.bones,this.boneInverses)},getBoneByName:function(a){for(var b=0,c=this.bones.length;b<c;b++){var d=this.bones[b];if(d.name===a)return d}}});ig.prototype=Object.assign(Object.create(D.prototype),{constructor:ig,isBone:!0});Pe.prototype=Object.assign(Object.create(ea.prototype),{constructor:Pe,isInstancedMesh:!0,raycast:function(){},setMatrixAt:function(a,b){b.toArray(this.instanceMatrix.array,16*a)},updateMorphTargets:function(){}});
+R.prototype=Object.create(O.prototype);R.prototype.constructor=R;R.prototype.isLineBasicMaterial=!0;R.prototype.copy=function(a){O.prototype.copy.call(this,a);this.color.copy(a.color);this.linewidth=a.linewidth;this.linecap=a.linecap;this.linejoin=a.linejoin;return this};var zi=new n,Ai=new n,Bi=new Q,Hf=new Rb,Be=new mb;ra.prototype=Object.assign(Object.create(D.prototype),{constructor:ra,isLine:!0,computeLineDistances:function(){var a=this.geometry;if(a.isBufferGeometry)if(null===a.index){for(var b=
+a.attributes.position,c=[0],d=1,e=b.count;d<e;d++)zi.fromBufferAttribute(b,d-1),Ai.fromBufferAttribute(b,d),c[d]=c[d-1],c[d]+=zi.distanceTo(Ai);a.setAttribute("lineDistance",new A(c,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else if(a.isGeometry)for(b=a.vertices,c=a.lineDistances,c[0]=0,d=1,e=b.length;d<e;d++)c[d]=c[d-1],c[d]+=b[d-1].distanceTo(b[d]);return this},raycast:function(a,b){var c=a.linePrecision,d=this.geometry,
+e=this.matrixWorld;null===d.boundingSphere&&d.computeBoundingSphere();Be.copy(d.boundingSphere);Be.applyMatrix4(e);Be.radius+=c;if(!1!==a.ray.intersectsSphere(Be)){Bi.getInverse(e);Hf.copy(a.ray).applyMatrix4(Bi);c/=(this.scale.x+this.scale.y+this.scale.z)/3;c*=c;var f=new n,g=new n;e=new n;var h=new n,l=this&&this.isLineSegments?2:1;if(d.isBufferGeometry){var m=d.index,k=d.attributes.position.array;if(null!==m){m=m.array;d=0;for(var q=m.length-1;d<q;d+=l){var u=m[d+1];f.fromArray(k,3*m[d]);g.fromArray(k,
+3*u);u=Hf.distanceSqToSegment(f,g,h,e);u>c||(h.applyMatrix4(this.matrixWorld),u=a.ray.origin.distanceTo(h),u<a.near||u>a.far||b.push({distance:u,point:e.clone().applyMatrix4(this.matrixWorld),index:d,face:null,faceIndex:null,object:this}))}}else for(d=0,q=k.length/3-1;d<q;d+=l)f.fromArray(k,3*d),g.fromArray(k,3*d+3),u=Hf.distanceSqToSegment(f,g,h,e),u>c||(h.applyMatrix4(this.matrixWorld),u=a.ray.origin.distanceTo(h),u<a.near||u>a.far||b.push({distance:u,point:e.clone().applyMatrix4(this.matrixWorld),
+index:d,face:null,faceIndex:null,object:this}))}else if(d.isGeometry)for(f=d.vertices,g=f.length,d=0;d<g-1;d+=l)u=Hf.distanceSqToSegment(f[d],f[d+1],h,e),u>c||(h.applyMatrix4(this.matrixWorld),u=a.ray.origin.distanceTo(h),u<a.near||u>a.far||b.push({distance:u,point:e.clone().applyMatrix4(this.matrixWorld),index:d,face:null,faceIndex:null,object:this}))}},clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});var If=new n,Jf=new n;X.prototype=Object.assign(Object.create(ra.prototype),
+{constructor:X,isLineSegments:!0,computeLineDistances:function(){var a=this.geometry;if(a.isBufferGeometry)if(null===a.index){for(var b=a.attributes.position,c=[],d=0,e=b.count;d<e;d+=2)If.fromBufferAttribute(b,d),Jf.fromBufferAttribute(b,d+1),c[d]=0===d?0:c[d-1],c[d+1]=c[d]+If.distanceTo(Jf);a.setAttribute("lineDistance",new A(c,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else if(a.isGeometry)for(b=a.vertices,c=a.lineDistances,
+d=0,e=b.length;d<e;d+=2)If.copy(b[d]),Jf.copy(b[d+1]),c[d]=0===d?0:c[d-1],c[d+1]=c[d]+If.distanceTo(Jf);return this}});Qe.prototype=Object.assign(Object.create(ra.prototype),{constructor:Qe,isLineLoop:!0});Qa.prototype=Object.create(O.prototype);Qa.prototype.constructor=Qa;Qa.prototype.isPointsMaterial=!0;Qa.prototype.copy=function(a){O.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.alphaMap=a.alphaMap;this.size=a.size;this.sizeAttenuation=a.sizeAttenuation;this.morphTargets=
+a.morphTargets;return this};var Ci=new Q,kg=new Rb,Ce=new mb,Kf=new n;Kc.prototype=Object.assign(Object.create(D.prototype),{constructor:Kc,isPoints:!0,raycast:function(a,b){var c=this.geometry,d=this.matrixWorld,e=a.params.Points.threshold;null===c.boundingSphere&&c.computeBoundingSphere();Ce.copy(c.boundingSphere);Ce.applyMatrix4(d);Ce.radius+=e;if(!1!==a.ray.intersectsSphere(Ce))if(Ci.getInverse(d),kg.copy(a.ray).applyMatrix4(Ci),e/=(this.scale.x+this.scale.y+this.scale.z)/3,e*=e,c.isBufferGeometry){var f=
+c.index;c=c.attributes.position.array;if(null!==f){var g=f.array;f=0;for(var h=g.length;f<h;f++){var l=g[f];Kf.fromArray(c,3*l);jg(Kf,l,e,d,a,b,this)}}else for(f=0,g=c.length/3;f<g;f++)Kf.fromArray(c,3*f),jg(Kf,f,e,d,a,b,this)}else for(c=c.vertices,f=0,g=c.length;f<g;f++)jg(c[f],f,e,d,a,b,this)},updateMorphTargets:function(){var a=this.geometry;if(a.isBufferGeometry){a=a.morphAttributes;var b=Object.keys(a);if(0<b.length){var c=a[b[0]];if(void 0!==c)for(this.morphTargetInfluences=[],this.morphTargetDictionary=
+{},a=0,b=c.length;a<b;a++){var d=c[a].name||String(a);this.morphTargetInfluences.push(0);this.morphTargetDictionary[d]=a}}}else a=a.morphTargets,void 0!==a&&0<a.length&&console.error("THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")},clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});lg.prototype=Object.assign(Object.create(Y.prototype),{constructor:lg,isVideoTexture:!0,update:function(){var a=this.image;a.readyState>=
+a.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}});Lc.prototype=Object.create(Y.prototype);Lc.prototype.constructor=Lc;Lc.prototype.isCompressedTexture=!0;Qd.prototype=Object.create(Y.prototype);Qd.prototype.constructor=Qd;Qd.prototype.isCanvasTexture=!0;Rd.prototype=Object.create(Y.prototype);Rd.prototype.constructor=Rd;Rd.prototype.isDepthTexture=!0;Mc.prototype=Object.create(E.prototype);Mc.prototype.constructor=Mc;Nc.prototype=Object.create(C.prototype);Nc.prototype.constructor=Nc;Nc.prototype.toJSON=
+function(){var a=C.prototype.toJSON.call(this);a.func=this.parameters.func.toString();return a};ac.prototype=Object.create(E.prototype);ac.prototype.constructor=ac;ac.prototype.toJSON=function(){var a=E.prototype.toJSON.call(this);a.func=this.parameters.func.toString();return a};Sd.prototype=Object.create(C.prototype);Sd.prototype.constructor=Sd;Ea.prototype=Object.create(E.prototype);Ea.prototype.constructor=Ea;Td.prototype=Object.create(C.prototype);Td.prototype.constructor=Td;Oc.prototype=Object.create(Ea.prototype);
+Oc.prototype.constructor=Oc;Ud.prototype=Object.create(C.prototype);Ud.prototype.constructor=Ud;bc.prototype=Object.create(Ea.prototype);bc.prototype.constructor=bc;Vd.prototype=Object.create(C.prototype);Vd.prototype.constructor=Vd;Pc.prototype=Object.create(Ea.prototype);Pc.prototype.constructor=Pc;Wd.prototype=Object.create(C.prototype);Wd.prototype.constructor=Wd;Qc.prototype=Object.create(Ea.prototype);Qc.prototype.constructor=Qc;Xd.prototype=Object.create(C.prototype);Xd.prototype.constructor=
+Xd;cc.prototype=Object.create(E.prototype);cc.prototype.constructor=cc;cc.prototype.toJSON=function(){var a=E.prototype.toJSON.call(this);a.path=this.parameters.path.toJSON();return a};Yd.prototype=Object.create(C.prototype);Yd.prototype.constructor=Yd;Rc.prototype=Object.create(E.prototype);Rc.prototype.constructor=Rc;Zd.prototype=Object.create(C.prototype);Zd.prototype.constructor=Zd;Sc.prototype=Object.create(E.prototype);Sc.prototype.constructor=Sc;var Ek={triangulate:function(a,b,c){c=c||2;var d=
+b&&b.length,e=d?b[0]*c:a.length,f=Rh(a,0,e,c,!0),g=[];if(!f||f.next===f.prev)return g;var h;if(d){var l=c;d=[];var m;var k=0;for(m=b.length;k<m;k++){var n=b[k]*l;var u=k<m-1?b[k+1]*l:a.length;n=Rh(a,n,u,l,!1);n===n.next&&(n.steiner=!0);d.push(pk(n))}d.sort(nk);for(k=0;k<d.length;k++){b=d[k];l=f;if(l=ok(b,l))b=Uh(l,b),ae(b,b.next);f=ae(f,f.next)}}if(a.length>80*c){var p=h=a[0];var t=d=a[1];for(l=c;l<e;l+=c)k=a[l],b=a[l+1],k<p&&(p=k),b<t&&(t=b),k>h&&(h=k),b>d&&(d=b);h=Math.max(h-p,d-t);h=0!==h?1/h:
+0}be(f,g,c,p,t,h);return g}},qb={area:function(a){for(var b=a.length,c=0,d=b-1,e=0;e<b;d=e++)c+=a[d].x*a[e].y-a[e].x*a[d].y;return.5*c},isClockWise:function(a){return 0>qb.area(a)},triangulateShape:function(a,b){var c=[],d=[],e=[];Vh(a);Wh(c,a);var f=a.length;b.forEach(Vh);for(a=0;a<b.length;a++)d.push(f),f+=b[a].length,Wh(c,b[a]);b=Ek.triangulate(c,d);for(a=0;a<b.length;a+=3)e.push(b.slice(a,a+3));return e}};ec.prototype=Object.create(C.prototype);ec.prototype.constructor=ec;ec.prototype.toJSON=
+function(){var a=C.prototype.toJSON.call(this);return Xh(this.parameters.shapes,this.parameters.options,a)};db.prototype=Object.create(E.prototype);db.prototype.constructor=db;db.prototype.toJSON=function(){var a=E.prototype.toJSON.call(this);return Xh(this.parameters.shapes,this.parameters.options,a)};var qk={generateTopUV:function(a,b,c,d,e){a=b[3*d];d=b[3*d+1];var f=b[3*e];e=b[3*e+1];return[new B(b[3*c],b[3*c+1]),new B(a,d),new B(f,e)]},generateSideWallUV:function(a,b,c,d,e,f){a=b[3*c];var g=b[3*
+c+1];c=b[3*c+2];var h=b[3*d],l=b[3*d+1];d=b[3*d+2];var k=b[3*e],n=b[3*e+1];e=b[3*e+2];var q=b[3*f],u=b[3*f+1];b=b[3*f+2];return.01>Math.abs(g-l)?[new B(a,1-c),new B(h,1-d),new B(k,1-e),new B(q,1-b)]:[new B(g,1-c),new B(l,1-d),new B(n,1-e),new B(u,1-b)]}};de.prototype=Object.create(C.prototype);de.prototype.constructor=de;Uc.prototype=Object.create(db.prototype);Uc.prototype.constructor=Uc;ee.prototype=Object.create(C.prototype);ee.prototype.constructor=ee;Hb.prototype=Object.create(E.prototype);Hb.prototype.constructor=
+Hb;fe.prototype=Object.create(C.prototype);fe.prototype.constructor=fe;Vc.prototype=Object.create(E.prototype);Vc.prototype.constructor=Vc;ge.prototype=Object.create(C.prototype);ge.prototype.constructor=ge;Wc.prototype=Object.create(E.prototype);Wc.prototype.constructor=Wc;fc.prototype=Object.create(C.prototype);fc.prototype.constructor=fc;fc.prototype.toJSON=function(){var a=C.prototype.toJSON.call(this);return Yh(this.parameters.shapes,a)};gc.prototype=Object.create(E.prototype);gc.prototype.constructor=
+gc;gc.prototype.toJSON=function(){var a=E.prototype.toJSON.call(this);return Yh(this.parameters.shapes,a)};Xc.prototype=Object.create(E.prototype);Xc.prototype.constructor=Xc;hc.prototype=Object.create(C.prototype);hc.prototype.constructor=hc;rb.prototype=Object.create(E.prototype);rb.prototype.constructor=rb;he.prototype=Object.create(hc.prototype);he.prototype.constructor=he;ie.prototype=Object.create(rb.prototype);ie.prototype.constructor=ie;je.prototype=Object.create(C.prototype);je.prototype.constructor=
+je;Yc.prototype=Object.create(E.prototype);Yc.prototype.constructor=Yc;var Aa=Object.freeze({WireframeGeometry:Mc,ParametricGeometry:Nc,ParametricBufferGeometry:ac,TetrahedronGeometry:Td,TetrahedronBufferGeometry:Oc,OctahedronGeometry:Ud,OctahedronBufferGeometry:bc,IcosahedronGeometry:Vd,IcosahedronBufferGeometry:Pc,DodecahedronGeometry:Wd,DodecahedronBufferGeometry:Qc,PolyhedronGeometry:Sd,PolyhedronBufferGeometry:Ea,TubeGeometry:Xd,TubeBufferGeometry:cc,TorusKnotGeometry:Yd,TorusKnotBufferGeometry:Rc,
+TorusGeometry:Zd,TorusBufferGeometry:Sc,TextGeometry:de,TextBufferGeometry:Uc,SphereGeometry:ee,SphereBufferGeometry:Hb,RingGeometry:fe,RingBufferGeometry:Vc,PlaneGeometry:Fd,PlaneBufferGeometry:Zb,LatheGeometry:ge,LatheBufferGeometry:Wc,ShapeGeometry:fc,ShapeBufferGeometry:gc,ExtrudeGeometry:ec,ExtrudeBufferGeometry:db,EdgesGeometry:Xc,ConeGeometry:he,ConeBufferGeometry:ie,CylinderGeometry:hc,CylinderBufferGeometry:rb,CircleGeometry:je,CircleBufferGeometry:Yc,BoxGeometry:Zg,BoxBufferGeometry:Gd});
+ic.prototype=Object.create(O.prototype);ic.prototype.constructor=ic;ic.prototype.isShadowMaterial=!0;ic.prototype.copy=function(a){O.prototype.copy.call(this,a);this.color.copy(a.color);return this};Zc.prototype=Object.create(va.prototype);Zc.prototype.constructor=Zc;Zc.prototype.isRawShaderMaterial=!0;eb.prototype=Object.create(O.prototype);eb.prototype.constructor=eb;eb.prototype.isMeshStandardMaterial=!0;eb.prototype.copy=function(a){O.prototype.copy.call(this,a);this.defines={STANDARD:""};this.color.copy(a.color);
+this.roughness=a.roughness;this.metalness=a.metalness;this.map=a.map;this.lightMap=a.lightMap;this.lightMapIntensity=a.lightMapIntensity;this.aoMap=a.aoMap;this.aoMapIntensity=a.aoMapIntensity;this.emissive.copy(a.emissive);this.emissiveMap=a.emissiveMap;this.emissiveIntensity=a.emissiveIntensity;this.bumpMap=a.bumpMap;this.bumpScale=a.bumpScale;this.normalMap=a.normalMap;this.normalMapType=a.normalMapType;this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=
+a.displacementScale;this.displacementBias=a.displacementBias;this.roughnessMap=a.roughnessMap;this.metalnessMap=a.metalnessMap;this.alphaMap=a.alphaMap;this.envMap=a.envMap;this.envMapIntensity=a.envMapIntensity;this.refractionRatio=a.refractionRatio;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.wireframeLinecap=a.wireframeLinecap;this.wireframeLinejoin=a.wireframeLinejoin;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};
+jc.prototype=Object.create(eb.prototype);jc.prototype.constructor=jc;jc.prototype.isMeshPhysicalMaterial=!0;jc.prototype.copy=function(a){eb.prototype.copy.call(this,a);this.defines={STANDARD:"",PHYSICAL:""};this.reflectivity=a.reflectivity;this.clearcoat=a.clearcoat;this.clearcoatRoughness=a.clearcoatRoughness;this.sheen=a.sheen?(this.sheen||new J).copy(a.sheen):null;this.clearcoatNormalMap=a.clearcoatNormalMap;this.clearcoatNormalScale.copy(a.clearcoatNormalScale);this.transparency=a.transparency;
+return this};Ra.prototype=Object.create(O.prototype);Ra.prototype.constructor=Ra;Ra.prototype.isMeshPhongMaterial=!0;Ra.prototype.copy=function(a){O.prototype.copy.call(this,a);this.color.copy(a.color);this.specular.copy(a.specular);this.shininess=a.shininess;this.map=a.map;this.lightMap=a.lightMap;this.lightMapIntensity=a.lightMapIntensity;this.aoMap=a.aoMap;this.aoMapIntensity=a.aoMapIntensity;this.emissive.copy(a.emissive);this.emissiveMap=a.emissiveMap;this.emissiveIntensity=a.emissiveIntensity;
+this.bumpMap=a.bumpMap;this.bumpScale=a.bumpScale;this.normalMap=a.normalMap;this.normalMapType=a.normalMapType;this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.specularMap=a.specularMap;this.alphaMap=a.alphaMap;this.envMap=a.envMap;this.combine=a.combine;this.reflectivity=a.reflectivity;this.refractionRatio=a.refractionRatio;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;
+this.wireframeLinecap=a.wireframeLinecap;this.wireframeLinejoin=a.wireframeLinejoin;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};kc.prototype=Object.create(Ra.prototype);kc.prototype.constructor=kc;kc.prototype.isMeshToonMaterial=!0;kc.prototype.copy=function(a){Ra.prototype.copy.call(this,a);this.gradientMap=a.gradientMap;return this};lc.prototype=Object.create(O.prototype);lc.prototype.constructor=lc;lc.prototype.isMeshNormalMaterial=!0;
+lc.prototype.copy=function(a){O.prototype.copy.call(this,a);this.bumpMap=a.bumpMap;this.bumpScale=a.bumpScale;this.normalMap=a.normalMap;this.normalMapType=a.normalMapType;this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};
+mc.prototype=Object.create(O.prototype);mc.prototype.constructor=mc;mc.prototype.isMeshLambertMaterial=!0;mc.prototype.copy=function(a){O.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.lightMap=a.lightMap;this.lightMapIntensity=a.lightMapIntensity;this.aoMap=a.aoMap;this.aoMapIntensity=a.aoMapIntensity;this.emissive.copy(a.emissive);this.emissiveMap=a.emissiveMap;this.emissiveIntensity=a.emissiveIntensity;this.specularMap=a.specularMap;this.alphaMap=a.alphaMap;this.envMap=
+a.envMap;this.combine=a.combine;this.reflectivity=a.reflectivity;this.refractionRatio=a.refractionRatio;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.wireframeLinecap=a.wireframeLinecap;this.wireframeLinejoin=a.wireframeLinejoin;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};nc.prototype=Object.create(O.prototype);nc.prototype.constructor=nc;nc.prototype.isMeshMatcapMaterial=!0;nc.prototype.copy=function(a){O.prototype.copy.call(this,
+a);this.defines={MATCAP:""};this.color.copy(a.color);this.matcap=a.matcap;this.map=a.map;this.bumpMap=a.bumpMap;this.bumpScale=a.bumpScale;this.normalMap=a.normalMap;this.normalMapType=a.normalMapType;this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.alphaMap=a.alphaMap;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};oc.prototype=
+Object.create(R.prototype);oc.prototype.constructor=oc;oc.prototype.isLineDashedMaterial=!0;oc.prototype.copy=function(a){R.prototype.copy.call(this,a);this.scale=a.scale;this.dashSize=a.dashSize;this.gapSize=a.gapSize;return this};var Fk=Object.freeze({ShadowMaterial:ic,SpriteMaterial:Gb,RawShaderMaterial:Zc,ShaderMaterial:va,PointsMaterial:Qa,MeshPhysicalMaterial:jc,MeshStandardMaterial:eb,MeshPhongMaterial:Ra,MeshToonMaterial:kc,MeshNormalMaterial:lc,MeshLambertMaterial:mc,MeshDepthMaterial:Db,
+MeshDistanceMaterial:Eb,MeshBasicMaterial:Ga,MeshMatcapMaterial:nc,LineDashedMaterial:oc,LineBasicMaterial:R,Material:O}),ta={arraySlice:function(a,b,c){return ta.isTypedArray(a)?new a.constructor(a.subarray(b,void 0!==c?c:a.length)):a.slice(b,c)},convertArray:function(a,b,c){return!a||!c&&a.constructor===b?a:"number"===typeof b.BYTES_PER_ELEMENT?new b(a):Array.prototype.slice.call(a)},isTypedArray:function(a){return ArrayBuffer.isView(a)&&!(a instanceof DataView)},getKeyframeOrder:function(a){for(var b=
+a.length,c=Array(b),d=0;d!==b;++d)c[d]=d;c.sort(function(b,c){return a[b]-a[c]});return c},sortedArray:function(a,b,c){for(var d=a.length,e=new a.constructor(d),f=0,g=0;g!==d;++f)for(var h=c[f]*b,l=0;l!==b;++l)e[g++]=a[h+l];return e},flattenJSON:function(a,b,c,d){for(var e=1,f=a[0];void 0!==f&&void 0===f[d];)f=a[e++];if(void 0!==f){var g=f[d];if(void 0!==g)if(Array.isArray(g)){do g=f[d],void 0!==g&&(b.push(f.time),c.push.apply(c,g)),f=a[e++];while(void 0!==f)}else if(void 0!==g.toArray){do g=f[d],
+void 0!==g&&(b.push(f.time),g.toArray(c,c.length)),f=a[e++];while(void 0!==f)}else{do g=f[d],void 0!==g&&(b.push(f.time),c.push(g)),f=a[e++];while(void 0!==f)}}},subclip:function(a,b,c,d,e){e=e||30;a=a.clone();a.name=b;var f=[];for(b=0;b<a.tracks.length;++b){for(var g=a.tracks[b],h=g.getValueSize(),l=[],k=[],n=0;n<g.times.length;++n){var q=g.times[n]*e;if(!(q<c||q>=d))for(l.push(g.times[n]),q=0;q<h;++q)k.push(g.values[n*h+q])}0!==l.length&&(g.times=ta.convertArray(l,g.times.constructor),g.values=
+ta.convertArray(k,g.values.constructor),f.push(g))}a.tracks=f;c=Infinity;for(b=0;b<a.tracks.length;++b)c>a.tracks[b].times[0]&&(c=a.tracks[b].times[0]);for(b=0;b<a.tracks.length;++b)a.tracks[b].shift(-1*c);a.resetDuration();return a}};Object.assign(Ia.prototype,{evaluate:function(a){var b=this.parameterPositions,c=this._cachedIndex,d=b[c],e=b[c-1];a:{b:{c:{d:if(!(a<d)){for(var f=c+2;;){if(void 0===d){if(a<e)break d;this._cachedIndex=c=b.length;return this.afterEnd_(c-1,a,e)}if(c===f)break;e=d;d=b[++c];
+if(a<d)break b}d=b.length;break c}if(a>=e)break a;else{f=b[1];a<f&&(c=2,e=f);for(f=c-2;;){if(void 0===e)return this._cachedIndex=0,this.beforeStart_(0,a,d);if(c===f)break;d=e;e=b[--c-1];if(a>=e)break b}d=c;c=0}}for(;c<d;)e=c+d>>>1,a<b[e]?d=e:c=e+1;d=b[c];e=b[c-1];if(void 0===e)return this._cachedIndex=0,this.beforeStart_(0,a,d);if(void 0===d)return this._cachedIndex=c=b.length,this.afterEnd_(c-1,e,a)}this._cachedIndex=c;this.intervalChanged_(c,e,d)}return this.interpolate_(c,e,a,d)},settings:null,
+DefaultSettings_:{},getSettings_:function(){return this.settings||this.DefaultSettings_},copySampleValue_:function(a){var b=this.resultBuffer,c=this.sampleValues,d=this.valueSize;a*=d;for(var e=0;e!==d;++e)b[e]=c[a+e];return b},interpolate_:function(){throw Error("call to abstract method");},intervalChanged_:function(){}});Object.assign(Ia.prototype,{beforeStart_:Ia.prototype.copySampleValue_,afterEnd_:Ia.prototype.copySampleValue_});Re.prototype=Object.assign(Object.create(Ia.prototype),{constructor:Re,
+DefaultSettings_:{endingStart:2400,endingEnd:2400},intervalChanged_:function(a,b,c){var d=this.parameterPositions,e=a-2,f=a+1,g=d[e],h=d[f];if(void 0===g)switch(this.getSettings_().endingStart){case 2401:e=a;g=2*b-c;break;case 2402:e=d.length-2;g=b+d[e]-d[e+1];break;default:e=a,g=c}if(void 0===h)switch(this.getSettings_().endingEnd){case 2401:f=a;h=2*c-b;break;case 2402:f=1;h=c+d[1]-d[0];break;default:f=a-1,h=b}a=.5*(c-b);d=this.valueSize;this._weightPrev=a/(b-g);this._weightNext=a/(h-c);this._offsetPrev=
+e*d;this._offsetNext=f*d},interpolate_:function(a,b,c,d){var e=this.resultBuffer,f=this.sampleValues,g=this.valueSize;a*=g;var h=a-g,l=this._offsetPrev,k=this._offsetNext,n=this._weightPrev,q=this._weightNext,u=(c-b)/(d-b);c=u*u;d=c*u;b=-n*d+2*n*c-n*u;n=(1+n)*d+(-1.5-2*n)*c+(-.5+n)*u+1;u=(-1-q)*d+(1.5+q)*c+.5*u;q=q*d-q*c;for(c=0;c!==g;++c)e[c]=b*f[l+c]+n*f[h+c]+u*f[a+c]+q*f[k+c];return e}});ke.prototype=Object.assign(Object.create(Ia.prototype),{constructor:ke,interpolate_:function(a,b,c,d){var e=
+this.resultBuffer,f=this.sampleValues,g=this.valueSize;a*=g;var h=a-g;b=(c-b)/(d-b);c=1-b;for(d=0;d!==g;++d)e[d]=f[h+d]*c+f[a+d]*b;return e}});Se.prototype=Object.assign(Object.create(Ia.prototype),{constructor:Se,interpolate_:function(a){return this.copySampleValue_(a-1)}});Object.assign(sa,{toJSON:function(a){var b=a.constructor;if(void 0!==b.toJSON)b=b.toJSON(a);else{b={name:a.name,times:ta.convertArray(a.times,Array),values:ta.convertArray(a.values,Array)};var c=a.getInterpolation();c!==a.DefaultInterpolation&&
+(b.interpolation=c)}b.type=a.ValueTypeName;return b}});Object.assign(sa.prototype,{constructor:sa,TimeBufferType:Float32Array,ValueBufferType:Float32Array,DefaultInterpolation:2301,InterpolantFactoryMethodDiscrete:function(a){return new Se(this.times,this.values,this.getValueSize(),a)},InterpolantFactoryMethodLinear:function(a){return new ke(this.times,this.values,this.getValueSize(),a)},InterpolantFactoryMethodSmooth:function(a){return new Re(this.times,this.values,this.getValueSize(),a)},setInterpolation:function(a){switch(a){case 2300:var b=
+this.InterpolantFactoryMethodDiscrete;break;case 2301:b=this.InterpolantFactoryMethodLinear;break;case 2302:b=this.InterpolantFactoryMethodSmooth}if(void 0===b){b="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name;if(void 0===this.createInterpolant)if(a!==this.DefaultInterpolation)this.setInterpolation(this.DefaultInterpolation);else throw Error(b);console.warn("THREE.KeyframeTrack:",b);return this}this.createInterpolant=b;return this},getInterpolation:function(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return 2300;
+case this.InterpolantFactoryMethodLinear:return 2301;case this.InterpolantFactoryMethodSmooth:return 2302}},getValueSize:function(){return this.values.length/this.times.length},shift:function(a){if(0!==a)for(var b=this.times,c=0,d=b.length;c!==d;++c)b[c]+=a;return this},scale:function(a){if(1!==a)for(var b=this.times,c=0,d=b.length;c!==d;++c)b[c]*=a;return this},trim:function(a,b){for(var c=this.times,d=c.length,e=0,f=d-1;e!==d&&c[e]<a;)++e;for(;-1!==f&&c[f]>b;)--f;++f;if(0!==e||f!==d)e>=f&&(f=Math.max(f,
+1),e=f-1),a=this.getValueSize(),this.times=ta.arraySlice(c,e,f),this.values=ta.arraySlice(this.values,e*a,f*a);return this},validate:function(){var a=!0,b=this.getValueSize();0!==b-Math.floor(b)&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),a=!1);var c=this.times;b=this.values;var d=c.length;0===d&&(console.error("THREE.KeyframeTrack: Track is empty.",this),a=!1);for(var e=null,f=0;f!==d;f++){var g=c[f];if("number"===typeof g&&isNaN(g)){console.error("THREE.KeyframeTrack: Time is not a valid number.",
+this,f,g);a=!1;break}if(null!==e&&e>g){console.error("THREE.KeyframeTrack: Out of order keys.",this,f,g,e);a=!1;break}e=g}if(void 0!==b&&ta.isTypedArray(b))for(f=0,c=b.length;f!==c;++f)if(d=b[f],isNaN(d)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,f,d);a=!1;break}return a},optimize:function(){for(var a=this.times,b=this.values,c=this.getValueSize(),d=2302===this.getInterpolation(),e=1,f=a.length-1,g=1;g<f;++g){var h=!1,l=a[g];if(l!==a[g+1]&&(1!==g||l!==l[0]))if(d)h=!0;
+else{var k=g*c,n=k-c,q=k+c;for(l=0;l!==c;++l){var u=b[k+l];if(u!==b[n+l]||u!==b[q+l]){h=!0;break}}}if(h){if(g!==e)for(a[e]=a[g],h=g*c,k=e*c,l=0;l!==c;++l)b[k+l]=b[h+l];++e}}if(0<f){a[e]=a[f];h=f*c;k=e*c;for(l=0;l!==c;++l)b[k+l]=b[h+l];++e}e!==a.length&&(this.times=ta.arraySlice(a,0,e),this.values=ta.arraySlice(b,0,e*c));return this},clone:function(){var a=ta.arraySlice(this.times,0),b=ta.arraySlice(this.values,0);a=new this.constructor(this.name,a,b);a.createInterpolant=this.createInterpolant;return a}});
+Te.prototype=Object.assign(Object.create(sa.prototype),{constructor:Te,ValueTypeName:"bool",ValueBufferType:Array,DefaultInterpolation:2300,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0});Ue.prototype=Object.assign(Object.create(sa.prototype),{constructor:Ue,ValueTypeName:"color"});$c.prototype=Object.assign(Object.create(sa.prototype),{constructor:$c,ValueTypeName:"number"});Ve.prototype=Object.assign(Object.create(Ia.prototype),{constructor:Ve,interpolate_:function(a,
+b,c,d){var e=this.resultBuffer,f=this.sampleValues,g=this.valueSize;a*=g;b=(c-b)/(d-b);for(c=a+g;a!==c;a+=4)wa.slerpFlat(e,0,f,a-g,f,a,b);return e}});le.prototype=Object.assign(Object.create(sa.prototype),{constructor:le,ValueTypeName:"quaternion",DefaultInterpolation:2301,InterpolantFactoryMethodLinear:function(a){return new Ve(this.times,this.values,this.getValueSize(),a)},InterpolantFactoryMethodSmooth:void 0});We.prototype=Object.assign(Object.create(sa.prototype),{constructor:We,ValueTypeName:"string",
+ValueBufferType:Array,DefaultInterpolation:2300,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0});ad.prototype=Object.assign(Object.create(sa.prototype),{constructor:ad,ValueTypeName:"vector"});Object.assign(Ma,{parse:function(a){for(var b=[],c=a.tracks,d=1/(a.fps||1),e=0,f=c.length;e!==f;++e)b.push(sk(c[e]).scale(d));return new Ma(a.name,a.duration,b)},toJSON:function(a){var b=[],c=a.tracks;a={name:a.name,duration:a.duration,tracks:b,uuid:a.uuid};for(var d=0,e=c.length;d!==
+e;++d)b.push(sa.toJSON(c[d]));return a},CreateFromMorphTargetSequence:function(a,b,c,d){for(var e=b.length,f=[],g=0;g<e;g++){var h=[],l=[];h.push((g+e-1)%e,g,(g+1)%e);l.push(0,1,0);var k=ta.getKeyframeOrder(h);h=ta.sortedArray(h,1,k);l=ta.sortedArray(l,1,k);d||0!==h[0]||(h.push(e),l.push(l[0]));f.push((new $c(".morphTargetInfluences["+b[g].name+"]",h,l)).scale(1/c))}return new Ma(a,-1,f)},findByName:function(a,b){var c=a;Array.isArray(a)||(c=a.geometry&&a.geometry.animations||a.animations);for(a=
+0;a<c.length;a++)if(c[a].name===b)return c[a];return null},CreateClipsFromMorphTargetSequences:function(a,b,c){for(var d={},e=/^([\w-]*?)([\d]+)$/,f=0,g=a.length;f<g;f++){var h=a[f],l=h.name.match(e);if(l&&1<l.length){var k=l[1];(l=d[k])||(d[k]=l=[]);l.push(h)}}a=[];for(k in d)a.push(Ma.CreateFromMorphTargetSequence(k,d[k],b,c));return a},parseAnimation:function(a,b){if(!a)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;var c=function(a,b,c,d,e){if(0!==c.length){var f=
+[],g=[];ta.flattenJSON(c,f,g,d);0!==f.length&&e.push(new a(b,f,g))}},d=[],e=a.name||"default",f=a.length||-1,g=a.fps||30;a=a.hierarchy||[];for(var h=0;h<a.length;h++){var l=a[h].keys;if(l&&0!==l.length)if(l[0].morphTargets){f={};for(var k=0;k<l.length;k++)if(l[k].morphTargets)for(var n=0;n<l[k].morphTargets.length;n++)f[l[k].morphTargets[n]]=-1;for(var q in f){var u=[],p=[];for(n=0;n!==l[k].morphTargets.length;++n){var t=l[k];u.push(t.time);p.push(t.morphTarget===q?1:0)}d.push(new $c(".morphTargetInfluence["+
+q+"]",u,p))}f=f.length*(g||1)}else k=".bones["+b[h].name+"]",c(ad,k+".position",l,"pos",d),c(le,k+".quaternion",l,"rot",d),c(ad,k+".scale",l,"scl",d)}return 0===d.length?null:new Ma(e,f,d)}});Object.assign(Ma.prototype,{resetDuration:function(){for(var a=0,b=0,c=this.tracks.length;b!==c;++b){var d=this.tracks[b];a=Math.max(a,d.times[d.times.length-1])}this.duration=a;return this},trim:function(){for(var a=0;a<this.tracks.length;a++)this.tracks[a].trim(0,this.duration);return this},validate:function(){for(var a=
+!0,b=0;b<this.tracks.length;b++)a=a&&this.tracks[b].validate();return a},optimize:function(){for(var a=0;a<this.tracks.length;a++)this.tracks[a].optimize();return this},clone:function(){for(var a=[],b=0;b<this.tracks.length;b++)a.push(this.tracks[b].clone());return new Ma(this.name,this.duration,a)}});var tc={enabled:!1,files:{},add:function(a,b){!1!==this.enabled&&(this.files[a]=b)},get:function(a){if(!1!==this.enabled)return this.files[a]},remove:function(a){delete this.files[a]},clear:function(){this.files=
+{}}},Zh=new og;Object.assign(V.prototype,{load:function(){},parse:function(){},setCrossOrigin:function(a){this.crossOrigin=a;return this},setPath:function(a){this.path=a;return this},setResourcePath:function(a){this.resourcePath=a;return this}});var $a={};Na.prototype=Object.assign(Object.create(V.prototype),{constructor:Na,load:function(a,b,c,d){void 0===a&&(a="");void 0!==this.path&&(a=this.path+a);a=this.manager.resolveURL(a);var e=this,f=tc.get(a);if(void 0!==f)return e.manager.itemStart(a),setTimeout(function(){b&&
+b(f);e.manager.itemEnd(a)},0),f;if(void 0!==$a[a])$a[a].push({onLoad:b,onProgress:c,onError:d});else{var g=a.match(/^data:(.*?)(;base64)?,(.*)$/);if(g){c=g[1];var h=!!g[2];g=g[3];g=decodeURIComponent(g);h&&(g=atob(g));try{var l=(this.responseType||"").toLowerCase();switch(l){case "arraybuffer":case "blob":var k=new Uint8Array(g.length);for(h=0;h<g.length;h++)k[h]=g.charCodeAt(h);var n="blob"===l?new Blob([k.buffer],{type:c}):k.buffer;break;case "document":n=(new DOMParser).parseFromString(g,c);break;
+case "json":n=JSON.parse(g);break;default:n=g}setTimeout(function(){b&&b(n);e.manager.itemEnd(a)},0)}catch(u){setTimeout(function(){d&&d(u);e.manager.itemError(a);e.manager.itemEnd(a)},0)}}else{$a[a]=[];$a[a].push({onLoad:b,onProgress:c,onError:d});var q=new XMLHttpRequest;q.open("GET",a,!0);q.addEventListener("load",function(b){var c=this.response,d=$a[a];delete $a[a];if(200===this.status||0===this.status){0===this.status&&console.warn("THREE.FileLoader: HTTP Status 0 received.");tc.add(a,c);for(var f=
+0,g=d.length;f<g;f++){var h=d[f];if(h.onLoad)h.onLoad(c)}}else{f=0;for(g=d.length;f<g;f++)if(h=d[f],h.onError)h.onError(b);e.manager.itemError(a)}e.manager.itemEnd(a)},!1);q.addEventListener("progress",function(b){for(var c=$a[a],d=0,e=c.length;d<e;d++){var f=c[d];if(f.onProgress)f.onProgress(b)}},!1);q.addEventListener("error",function(b){var c=$a[a];delete $a[a];for(var d=0,f=c.length;d<f;d++){var g=c[d];if(g.onError)g.onError(b)}e.manager.itemError(a);e.manager.itemEnd(a)},!1);q.addEventListener("abort",
+function(b){var c=$a[a];delete $a[a];for(var d=0,f=c.length;d<f;d++){var g=c[d];if(g.onError)g.onError(b)}e.manager.itemError(a);e.manager.itemEnd(a)},!1);void 0!==this.responseType&&(q.responseType=this.responseType);void 0!==this.withCredentials&&(q.withCredentials=this.withCredentials);q.overrideMimeType&&q.overrideMimeType(void 0!==this.mimeType?this.mimeType:"text/plain");for(h in this.requestHeader)q.setRequestHeader(h,this.requestHeader[h]);q.send(null)}e.manager.itemStart(a);return q}},setResponseType:function(a){this.responseType=
+a;return this},setWithCredentials:function(a){this.withCredentials=a;return this},setMimeType:function(a){this.mimeType=a;return this},setRequestHeader:function(a){this.requestHeader=a;return this}});pg.prototype=Object.assign(Object.create(V.prototype),{constructor:pg,load:function(a,b,c,d){var e=this,f=new Na(e.manager);f.setPath(e.path);f.load(a,function(a){b(e.parse(JSON.parse(a)))},c,d)},parse:function(a){for(var b=[],c=0;c<a.length;c++){var d=Ma.parse(a[c]);b.push(d)}return b}});qg.prototype=
+Object.assign(Object.create(V.prototype),{constructor:qg,load:function(a,b,c,d){function e(e){l.load(a[e],function(a){a=f.parse(a,!0);g[e]={width:a.width,height:a.height,format:a.format,mipmaps:a.mipmaps};k+=1;6===k&&(1===a.mipmapCount&&(h.minFilter=1006),h.format=a.format,h.needsUpdate=!0,b&&b(h))},c,d)}var f=this,g=[],h=new Lc;h.image=g;var l=new Na(this.manager);l.setPath(this.path);l.setResponseType("arraybuffer");if(Array.isArray(a))for(var k=0,n=0,q=a.length;n<q;++n)e(n);else l.load(a,function(a){a=
+f.parse(a,!0);if(a.isCubemap)for(var c=a.mipmaps.length/a.mipmapCount,d=0;d<c;d++){g[d]={mipmaps:[]};for(var e=0;e<a.mipmapCount;e++)g[d].mipmaps.push(a.mipmaps[d*a.mipmapCount+e]),g[d].format=a.format,g[d].width=a.width,g[d].height=a.height}else h.image.width=a.width,h.image.height=a.height,h.mipmaps=a.mipmaps;1===a.mipmapCount&&(h.minFilter=1006);h.format=a.format;h.needsUpdate=!0;b&&b(h)},c,d);return h}});Xe.prototype=Object.assign(Object.create(V.prototype),{constructor:Xe,load:function(a,b,c,
+d){var e=this,f=new Yb,g=new Na(this.manager);g.setResponseType("arraybuffer");g.setPath(this.path);g.load(a,function(a){if(a=e.parse(a))void 0!==a.image?f.image=a.image:void 0!==a.data&&(f.image.width=a.width,f.image.height=a.height,f.image.data=a.data),f.wrapS=void 0!==a.wrapS?a.wrapS:1001,f.wrapT=void 0!==a.wrapT?a.wrapT:1001,f.magFilter=void 0!==a.magFilter?a.magFilter:1006,f.minFilter=void 0!==a.minFilter?a.minFilter:1006,f.anisotropy=void 0!==a.anisotropy?a.anisotropy:1,void 0!==a.format&&(f.format=
+a.format),void 0!==a.type&&(f.type=a.type),void 0!==a.mipmaps&&(f.mipmaps=a.mipmaps,f.minFilter=1008),1===a.mipmapCount&&(f.minFilter=1006),f.needsUpdate=!0,b&&b(f,a)},c,d);return f}});bd.prototype=Object.assign(Object.create(V.prototype),{constructor:bd,load:function(a,b,c,d){function e(){l.removeEventListener("load",e,!1);l.removeEventListener("error",f,!1);tc.add(a,this);b&&b(this);g.manager.itemEnd(a)}function f(b){l.removeEventListener("load",e,!1);l.removeEventListener("error",f,!1);d&&d(b);
+g.manager.itemError(a);g.manager.itemEnd(a)}void 0!==this.path&&(a=this.path+a);a=this.manager.resolveURL(a);var g=this,h=tc.get(a);if(void 0!==h)return g.manager.itemStart(a),setTimeout(function(){b&&b(h);g.manager.itemEnd(a)},0),h;var l=document.createElementNS("http://www.w3.org/1999/xhtml","img");l.addEventListener("load",e,!1);l.addEventListener("error",f,!1);"data:"!==a.substr(0,5)&&void 0!==this.crossOrigin&&(l.crossOrigin=this.crossOrigin);g.manager.itemStart(a);l.src=a;return l}});Ye.prototype=
+Object.assign(Object.create(V.prototype),{constructor:Ye,load:function(a,b,c,d){function e(c){g.load(a[c],function(a){f.images[c]=a;h++;6===h&&(f.needsUpdate=!0,b&&b(f))},void 0,d)}var f=new nb,g=new bd(this.manager);g.setCrossOrigin(this.crossOrigin);g.setPath(this.path);var h=0;for(c=0;c<a.length;++c)e(c);return f}});Ze.prototype=Object.assign(Object.create(V.prototype),{constructor:Ze,load:function(a,b,c,d){var e=new Y,f=new bd(this.manager);f.setCrossOrigin(this.crossOrigin);f.setPath(this.path);
+f.load(a,function(c){e.image=c;c=0<a.search(/\.jpe?g($|\?)/i)||0===a.search(/^data:image\/jpeg/);e.format=c?1022:1023;e.needsUpdate=!0;void 0!==b&&b(e)},c,d);return e}});Object.assign(G.prototype,{getPoint:function(){console.warn("THREE.Curve: .getPoint() not implemented.");return null},getPointAt:function(a,b){a=this.getUtoTmapping(a);return this.getPoint(a,b)},getPoints:function(a){void 0===a&&(a=5);for(var b=[],c=0;c<=a;c++)b.push(this.getPoint(c/a));return b},getSpacedPoints:function(a){void 0===
+a&&(a=5);for(var b=[],c=0;c<=a;c++)b.push(this.getPointAt(c/a));return b},getLength:function(){var a=this.getLengths();return a[a.length-1]},getLengths:function(a){void 0===a&&(a=this.arcLengthDivisions);if(this.cacheArcLengths&&this.cacheArcLengths.length===a+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;var b=[],c=this.getPoint(0),d,e=0;b.push(0);for(d=1;d<=a;d++){var f=this.getPoint(d/a);e+=f.distanceTo(c);b.push(e);c=f}return this.cacheArcLengths=b},updateArcLengths:function(){this.needsUpdate=
+!0;this.getLengths()},getUtoTmapping:function(a,b){var c=this.getLengths(),d=c.length;b=b?b:a*c[d-1];for(var e=0,f=d-1,g;e<=f;)if(a=Math.floor(e+(f-e)/2),g=c[a]-b,0>g)e=a+1;else if(0<g)f=a-1;else{f=a;break}a=f;if(c[a]===b)return a/(d-1);e=c[a];return(a+(b-e)/(c[a+1]-e))/(d-1)},getTangent:function(a){var b=a-1E-4;a+=1E-4;0>b&&(b=0);1<a&&(a=1);b=this.getPoint(b);return this.getPoint(a).clone().sub(b).normalize()},getTangentAt:function(a){a=this.getUtoTmapping(a);return this.getTangent(a)},computeFrenetFrames:function(a,
+b){var c=new n,d=[],e=[],f=[],g=new n,h=new Q,l;for(l=0;l<=a;l++){var k=l/a;d[l]=this.getTangentAt(k);d[l].normalize()}e[0]=new n;f[0]=new n;l=Number.MAX_VALUE;k=Math.abs(d[0].x);var r=Math.abs(d[0].y),q=Math.abs(d[0].z);k<=l&&(l=k,c.set(1,0,0));r<=l&&(l=r,c.set(0,1,0));q<=l&&c.set(0,0,1);g.crossVectors(d[0],c).normalize();e[0].crossVectors(d[0],g);f[0].crossVectors(d[0],e[0]);for(l=1;l<=a;l++)e[l]=e[l-1].clone(),f[l]=f[l-1].clone(),g.crossVectors(d[l-1],d[l]),g.length()>Number.EPSILON&&(g.normalize(),
+c=Math.acos(P.clamp(d[l-1].dot(d[l]),-1,1)),e[l].applyMatrix4(h.makeRotationAxis(g,c))),f[l].crossVectors(d[l],e[l]);if(!0===b)for(c=Math.acos(P.clamp(e[0].dot(e[a]),-1,1)),c/=a,0<d[0].dot(g.crossVectors(e[0],e[a]))&&(c=-c),l=1;l<=a;l++)e[l].applyMatrix4(h.makeRotationAxis(d[l],c*l)),f[l].crossVectors(d[l],e[l]);return{tangents:d,normals:e,binormals:f}},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.arcLengthDivisions=a.arcLengthDivisions;return this},toJSON:function(){var a=
+{metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};a.arcLengthDivisions=this.arcLengthDivisions;a.type=this.type;return a},fromJSON:function(a){this.arcLengthDivisions=a.arcLengthDivisions;return this}});Ja.prototype=Object.create(G.prototype);Ja.prototype.constructor=Ja;Ja.prototype.isEllipseCurve=!0;Ja.prototype.getPoint=function(a,b){b=b||new B;for(var c=2*Math.PI,d=this.aEndAngle-this.aStartAngle,e=Math.abs(d)<Number.EPSILON;0>d;)d+=c;for(;d>c;)d-=c;d<Number.EPSILON&&(d=e?0:c);!0!==
+this.aClockwise||e||(d=d===c?-c:d-c);c=this.aStartAngle+a*d;a=this.aX+this.xRadius*Math.cos(c);var f=this.aY+this.yRadius*Math.sin(c);0!==this.aRotation&&(c=Math.cos(this.aRotation),d=Math.sin(this.aRotation),e=a-this.aX,f-=this.aY,a=e*c-f*d+this.aX,f=e*d+f*c+this.aY);return b.set(a,f)};Ja.prototype.copy=function(a){G.prototype.copy.call(this,a);this.aX=a.aX;this.aY=a.aY;this.xRadius=a.xRadius;this.yRadius=a.yRadius;this.aStartAngle=a.aStartAngle;this.aEndAngle=a.aEndAngle;this.aClockwise=a.aClockwise;
+this.aRotation=a.aRotation;return this};Ja.prototype.toJSON=function(){var a=G.prototype.toJSON.call(this);a.aX=this.aX;a.aY=this.aY;a.xRadius=this.xRadius;a.yRadius=this.yRadius;a.aStartAngle=this.aStartAngle;a.aEndAngle=this.aEndAngle;a.aClockwise=this.aClockwise;a.aRotation=this.aRotation;return a};Ja.prototype.fromJSON=function(a){G.prototype.fromJSON.call(this,a);this.aX=a.aX;this.aY=a.aY;this.xRadius=a.xRadius;this.yRadius=a.yRadius;this.aStartAngle=a.aStartAngle;this.aEndAngle=a.aEndAngle;
+this.aClockwise=a.aClockwise;this.aRotation=a.aRotation;return this};cd.prototype=Object.create(Ja.prototype);cd.prototype.constructor=cd;cd.prototype.isArcCurve=!0;var Lf=new n,ah=new rg,bh=new rg,ch=new rg;na.prototype=Object.create(G.prototype);na.prototype.constructor=na;na.prototype.isCatmullRomCurve3=!0;na.prototype.getPoint=function(a,b){b=b||new n;var c=this.points,d=c.length;a*=d-(this.closed?0:1);var e=Math.floor(a);a-=e;this.closed?e+=0<e?0:(Math.floor(Math.abs(e)/d)+1)*d:0===a&&e===d-
+1&&(e=d-2,a=1);if(this.closed||0<e)var f=c[(e-1)%d];else Lf.subVectors(c[0],c[1]).add(c[0]),f=Lf;var g=c[e%d];var h=c[(e+1)%d];this.closed||e+2<d?c=c[(e+2)%d]:(Lf.subVectors(c[d-1],c[d-2]).add(c[d-1]),c=Lf);if("centripetal"===this.curveType||"chordal"===this.curveType){var l="chordal"===this.curveType?.5:.25;d=Math.pow(f.distanceToSquared(g),l);e=Math.pow(g.distanceToSquared(h),l);l=Math.pow(h.distanceToSquared(c),l);1E-4>e&&(e=1);1E-4>d&&(d=e);1E-4>l&&(l=e);ah.initNonuniformCatmullRom(f.x,g.x,h.x,
+c.x,d,e,l);bh.initNonuniformCatmullRom(f.y,g.y,h.y,c.y,d,e,l);ch.initNonuniformCatmullRom(f.z,g.z,h.z,c.z,d,e,l)}else"catmullrom"===this.curveType&&(ah.initCatmullRom(f.x,g.x,h.x,c.x,this.tension),bh.initCatmullRom(f.y,g.y,h.y,c.y,this.tension),ch.initCatmullRom(f.z,g.z,h.z,c.z,this.tension));b.set(ah.calc(a),bh.calc(a),ch.calc(a));return b};na.prototype.copy=function(a){G.prototype.copy.call(this,a);this.points=[];for(var b=0,c=a.points.length;b<c;b++)this.points.push(a.points[b].clone());this.closed=
+a.closed;this.curveType=a.curveType;this.tension=a.tension;return this};na.prototype.toJSON=function(){var a=G.prototype.toJSON.call(this);a.points=[];for(var b=0,c=this.points.length;b<c;b++)a.points.push(this.points[b].toArray());a.closed=this.closed;a.curveType=this.curveType;a.tension=this.tension;return a};na.prototype.fromJSON=function(a){G.prototype.fromJSON.call(this,a);this.points=[];for(var b=0,c=a.points.length;b<c;b++){var d=a.points[b];this.points.push((new n).fromArray(d))}this.closed=
+a.closed;this.curveType=a.curveType;this.tension=a.tension;return this};Sa.prototype=Object.create(G.prototype);Sa.prototype.constructor=Sa;Sa.prototype.isCubicBezierCurve=!0;Sa.prototype.getPoint=function(a,b){b=b||new B;var c=this.v0,d=this.v1,e=this.v2,f=this.v3;b.set(ne(a,c.x,d.x,e.x,f.x),ne(a,c.y,d.y,e.y,f.y));return b};Sa.prototype.copy=function(a){G.prototype.copy.call(this,a);this.v0.copy(a.v0);this.v1.copy(a.v1);this.v2.copy(a.v2);this.v3.copy(a.v3);return this};Sa.prototype.toJSON=function(){var a=
+G.prototype.toJSON.call(this);a.v0=this.v0.toArray();a.v1=this.v1.toArray();a.v2=this.v2.toArray();a.v3=this.v3.toArray();return a};Sa.prototype.fromJSON=function(a){G.prototype.fromJSON.call(this,a);this.v0.fromArray(a.v0);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);this.v3.fromArray(a.v3);return this};fb.prototype=Object.create(G.prototype);fb.prototype.constructor=fb;fb.prototype.isCubicBezierCurve3=!0;fb.prototype.getPoint=function(a,b){b=b||new n;var c=this.v0,d=this.v1,e=this.v2,f=this.v3;
+b.set(ne(a,c.x,d.x,e.x,f.x),ne(a,c.y,d.y,e.y,f.y),ne(a,c.z,d.z,e.z,f.z));return b};fb.prototype.copy=function(a){G.prototype.copy.call(this,a);this.v0.copy(a.v0);this.v1.copy(a.v1);this.v2.copy(a.v2);this.v3.copy(a.v3);return this};fb.prototype.toJSON=function(){var a=G.prototype.toJSON.call(this);a.v0=this.v0.toArray();a.v1=this.v1.toArray();a.v2=this.v2.toArray();a.v3=this.v3.toArray();return a};fb.prototype.fromJSON=function(a){G.prototype.fromJSON.call(this,a);this.v0.fromArray(a.v0);this.v1.fromArray(a.v1);
+this.v2.fromArray(a.v2);this.v3.fromArray(a.v3);return this};Da.prototype=Object.create(G.prototype);Da.prototype.constructor=Da;Da.prototype.isLineCurve=!0;Da.prototype.getPoint=function(a,b){b=b||new B;1===a?b.copy(this.v2):(b.copy(this.v2).sub(this.v1),b.multiplyScalar(a).add(this.v1));return b};Da.prototype.getPointAt=function(a,b){return this.getPoint(a,b)};Da.prototype.getTangent=function(){return this.v2.clone().sub(this.v1).normalize()};Da.prototype.copy=function(a){G.prototype.copy.call(this,
+a);this.v1.copy(a.v1);this.v2.copy(a.v2);return this};Da.prototype.toJSON=function(){var a=G.prototype.toJSON.call(this);a.v1=this.v1.toArray();a.v2=this.v2.toArray();return a};Da.prototype.fromJSON=function(a){G.prototype.fromJSON.call(this,a);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);return this};Ta.prototype=Object.create(G.prototype);Ta.prototype.constructor=Ta;Ta.prototype.isLineCurve3=!0;Ta.prototype.getPoint=function(a,b){b=b||new n;1===a?b.copy(this.v2):(b.copy(this.v2).sub(this.v1),
+b.multiplyScalar(a).add(this.v1));return b};Ta.prototype.getPointAt=function(a,b){return this.getPoint(a,b)};Ta.prototype.copy=function(a){G.prototype.copy.call(this,a);this.v1.copy(a.v1);this.v2.copy(a.v2);return this};Ta.prototype.toJSON=function(){var a=G.prototype.toJSON.call(this);a.v1=this.v1.toArray();a.v2=this.v2.toArray();return a};Ta.prototype.fromJSON=function(a){G.prototype.fromJSON.call(this,a);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);return this};Ua.prototype=Object.create(G.prototype);
+Ua.prototype.constructor=Ua;Ua.prototype.isQuadraticBezierCurve=!0;Ua.prototype.getPoint=function(a,b){b=b||new B;var c=this.v0,d=this.v1,e=this.v2;b.set(me(a,c.x,d.x,e.x),me(a,c.y,d.y,e.y));return b};Ua.prototype.copy=function(a){G.prototype.copy.call(this,a);this.v0.copy(a.v0);this.v1.copy(a.v1);this.v2.copy(a.v2);return this};Ua.prototype.toJSON=function(){var a=G.prototype.toJSON.call(this);a.v0=this.v0.toArray();a.v1=this.v1.toArray();a.v2=this.v2.toArray();return a};Ua.prototype.fromJSON=function(a){G.prototype.fromJSON.call(this,
+a);this.v0.fromArray(a.v0);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);return this};gb.prototype=Object.create(G.prototype);gb.prototype.constructor=gb;gb.prototype.isQuadraticBezierCurve3=!0;gb.prototype.getPoint=function(a,b){b=b||new n;var c=this.v0,d=this.v1,e=this.v2;b.set(me(a,c.x,d.x,e.x),me(a,c.y,d.y,e.y),me(a,c.z,d.z,e.z));return b};gb.prototype.copy=function(a){G.prototype.copy.call(this,a);this.v0.copy(a.v0);this.v1.copy(a.v1);this.v2.copy(a.v2);return this};gb.prototype.toJSON=function(){var a=
+G.prototype.toJSON.call(this);a.v0=this.v0.toArray();a.v1=this.v1.toArray();a.v2=this.v2.toArray();return a};gb.prototype.fromJSON=function(a){G.prototype.fromJSON.call(this,a);this.v0.fromArray(a.v0);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);return this};Va.prototype=Object.create(G.prototype);Va.prototype.constructor=Va;Va.prototype.isSplineCurve=!0;Va.prototype.getPoint=function(a,b){b=b||new B;var c=this.points,d=(c.length-1)*a;a=Math.floor(d);d-=a;var e=c[0===a?a:a-1],f=c[a],g=c[a>c.length-
+2?c.length-1:a+1];c=c[a>c.length-3?c.length-1:a+2];b.set($h(d,e.x,f.x,g.x,c.x),$h(d,e.y,f.y,g.y,c.y));return b};Va.prototype.copy=function(a){G.prototype.copy.call(this,a);this.points=[];for(var b=0,c=a.points.length;b<c;b++)this.points.push(a.points[b].clone());return this};Va.prototype.toJSON=function(){var a=G.prototype.toJSON.call(this);a.points=[];for(var b=0,c=this.points.length;b<c;b++)a.points.push(this.points[b].toArray());return a};Va.prototype.fromJSON=function(a){G.prototype.fromJSON.call(this,
+a);this.points=[];for(var b=0,c=a.points.length;b<c;b++){var d=a.points[b];this.points.push((new B).fromArray(d))}return this};var dh=Object.freeze({ArcCurve:cd,CatmullRomCurve3:na,CubicBezierCurve:Sa,CubicBezierCurve3:fb,EllipseCurve:Ja,LineCurve:Da,LineCurve3:Ta,QuadraticBezierCurve:Ua,QuadraticBezierCurve3:gb,SplineCurve:Va});sb.prototype=Object.assign(Object.create(G.prototype),{constructor:sb,add:function(a){this.curves.push(a)},closePath:function(){var a=this.curves[0].getPoint(0),b=this.curves[this.curves.length-
+1].getPoint(1);a.equals(b)||this.curves.push(new Da(b,a))},getPoint:function(a){var b=a*this.getLength(),c=this.getCurveLengths();for(a=0;a<c.length;){if(c[a]>=b)return b=c[a]-b,a=this.curves[a],c=a.getLength(),a.getPointAt(0===c?0:1-b/c);a++}return null},getLength:function(){var a=this.getCurveLengths();return a[a.length-1]},updateArcLengths:function(){this.needsUpdate=!0;this.cacheLengths=null;this.getCurveLengths()},getCurveLengths:function(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;
+for(var a=[],b=0,c=0,d=this.curves.length;c<d;c++)b+=this.curves[c].getLength(),a.push(b);return this.cacheLengths=a},getSpacedPoints:function(a){void 0===a&&(a=40);for(var b=[],c=0;c<=a;c++)b.push(this.getPoint(c/a));this.autoClose&&b.push(b[0]);return b},getPoints:function(a){a=a||12;for(var b=[],c,d=0,e=this.curves;d<e.length;d++){var f=e[d];f=f.getPoints(f&&f.isEllipseCurve?2*a:f&&(f.isLineCurve||f.isLineCurve3)?1:f&&f.isSplineCurve?a*f.points.length:a);for(var g=0;g<f.length;g++){var h=f[g];
+c&&c.equals(h)||(b.push(h),c=h)}}this.autoClose&&1<b.length&&!b[b.length-1].equals(b[0])&&b.push(b[0]);return b},copy:function(a){G.prototype.copy.call(this,a);this.curves=[];for(var b=0,c=a.curves.length;b<c;b++)this.curves.push(a.curves[b].clone());this.autoClose=a.autoClose;return this},toJSON:function(){var a=G.prototype.toJSON.call(this);a.autoClose=this.autoClose;a.curves=[];for(var b=0,c=this.curves.length;b<c;b++)a.curves.push(this.curves[b].toJSON());return a},fromJSON:function(a){G.prototype.fromJSON.call(this,
+a);this.autoClose=a.autoClose;this.curves=[];for(var b=0,c=a.curves.length;b<c;b++){var d=a.curves[b];this.curves.push((new dh[d.type]).fromJSON(d))}return this}});Wa.prototype=Object.assign(Object.create(sb.prototype),{constructor:Wa,setFromPoints:function(a){this.moveTo(a[0].x,a[0].y);for(var b=1,c=a.length;b<c;b++)this.lineTo(a[b].x,a[b].y);return this},moveTo:function(a,b){this.currentPoint.set(a,b);return this},lineTo:function(a,b){var c=new Da(this.currentPoint.clone(),new B(a,b));this.curves.push(c);
+this.currentPoint.set(a,b);return this},quadraticCurveTo:function(a,b,c,d){a=new Ua(this.currentPoint.clone(),new B(a,b),new B(c,d));this.curves.push(a);this.currentPoint.set(c,d);return this},bezierCurveTo:function(a,b,c,d,e,f){a=new Sa(this.currentPoint.clone(),new B(a,b),new B(c,d),new B(e,f));this.curves.push(a);this.currentPoint.set(e,f);return this},splineThru:function(a){var b=[this.currentPoint.clone()].concat(a);b=new Va(b);this.curves.push(b);this.currentPoint.copy(a[a.length-1]);return this},
+arc:function(a,b,c,d,e,f){this.absarc(a+this.currentPoint.x,b+this.currentPoint.y,c,d,e,f);return this},absarc:function(a,b,c,d,e,f){this.absellipse(a,b,c,c,d,e,f);return this},ellipse:function(a,b,c,d,e,f,g,h){this.absellipse(a+this.currentPoint.x,b+this.currentPoint.y,c,d,e,f,g,h);return this},absellipse:function(a,b,c,d,e,f,g,h){a=new Ja(a,b,c,d,e,f,g,h);0<this.curves.length&&(b=a.getPoint(0),b.equals(this.currentPoint)||this.lineTo(b.x,b.y));this.curves.push(a);a=a.getPoint(1);this.currentPoint.copy(a);
+return this},copy:function(a){sb.prototype.copy.call(this,a);this.currentPoint.copy(a.currentPoint);return this},toJSON:function(){var a=sb.prototype.toJSON.call(this);a.currentPoint=this.currentPoint.toArray();return a},fromJSON:function(a){sb.prototype.fromJSON.call(this,a);this.currentPoint.fromArray(a.currentPoint);return this}});Ib.prototype=Object.assign(Object.create(Wa.prototype),{constructor:Ib,getPointsHoles:function(a){for(var b=[],c=0,d=this.holes.length;c<d;c++)b[c]=this.holes[c].getPoints(a);
+return b},extractPoints:function(a){return{shape:this.getPoints(a),holes:this.getPointsHoles(a)}},copy:function(a){Wa.prototype.copy.call(this,a);this.holes=[];for(var b=0,c=a.holes.length;b<c;b++)this.holes.push(a.holes[b].clone());return this},toJSON:function(){var a=Wa.prototype.toJSON.call(this);a.uuid=this.uuid;a.holes=[];for(var b=0,c=this.holes.length;b<c;b++)a.holes.push(this.holes[b].toJSON());return a},fromJSON:function(a){Wa.prototype.fromJSON.call(this,a);this.uuid=a.uuid;this.holes=[];
+for(var b=0,c=a.holes.length;b<c;b++){var d=a.holes[b];this.holes.push((new Wa).fromJSON(d))}return this}});T.prototype=Object.assign(Object.create(D.prototype),{constructor:T,isLight:!0,copy:function(a){D.prototype.copy.call(this,a);this.color.copy(a.color);this.intensity=a.intensity;return this},toJSON:function(a){a=D.prototype.toJSON.call(this,a);a.object.color=this.color.getHex();a.object.intensity=this.intensity;void 0!==this.groundColor&&(a.object.groundColor=this.groundColor.getHex());void 0!==
+this.distance&&(a.object.distance=this.distance);void 0!==this.angle&&(a.object.angle=this.angle);void 0!==this.decay&&(a.object.decay=this.decay);void 0!==this.penumbra&&(a.object.penumbra=this.penumbra);void 0!==this.shadow&&(a.object.shadow=this.shadow.toJSON());return a}});$e.prototype=Object.assign(Object.create(T.prototype),{constructor:$e,isHemisphereLight:!0,copy:function(a){T.prototype.copy.call(this,a);this.groundColor.copy(a.groundColor);return this}});Object.assign(hb.prototype,{_projScreenMatrix:new Q,
+_lightPositionWorld:new n,_lookTarget:new n,getViewportCount:function(){return this._viewportCount},getFrustum:function(){return this._frustum},updateMatrices:function(a){var b=this.camera,c=this.matrix,d=this._projScreenMatrix,e=this._lookTarget,f=this._lightPositionWorld;f.setFromMatrixPosition(a.matrixWorld);b.position.copy(f);e.setFromMatrixPosition(a.target.matrixWorld);b.lookAt(e);b.updateMatrixWorld();d.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);this._frustum.setFromMatrix(d);
+c.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1);c.multiply(b.projectionMatrix);c.multiply(b.matrixWorldInverse)},getViewport:function(a){return this._viewports[a]},getFrameExtents:function(){return this._frameExtents},copy:function(a){this.camera=a.camera.clone();this.bias=a.bias;this.radius=a.radius;this.mapSize.copy(a.mapSize);return this},clone:function(){return(new this.constructor).copy(this)},toJSON:function(){var a={};0!==this.bias&&(a.bias=this.bias);1!==this.radius&&(a.radius=this.radius);if(512!==
+this.mapSize.x||512!==this.mapSize.y)a.mapSize=this.mapSize.toArray();a.camera=this.camera.toJSON(!1).object;delete a.camera.matrix;return a}});af.prototype=Object.assign(Object.create(hb.prototype),{constructor:af,isSpotLightShadow:!0,updateMatrices:function(a){var b=this.camera,c=2*P.RAD2DEG*a.angle,d=this.mapSize.width/this.mapSize.height,e=a.distance||b.far;if(c!==b.fov||d!==b.aspect||e!==b.far)b.fov=c,b.aspect=d,b.far=e,b.updateProjectionMatrix();hb.prototype.updateMatrices.call(this,a)}});bf.prototype=
+Object.assign(Object.create(T.prototype),{constructor:bf,isSpotLight:!0,copy:function(a){T.prototype.copy.call(this,a);this.distance=a.distance;this.angle=a.angle;this.penumbra=a.penumbra;this.decay=a.decay;this.target=a.target.clone();this.shadow=a.shadow.clone();return this}});sg.prototype=Object.assign(Object.create(hb.prototype),{constructor:sg,isPointLightShadow:!0,updateMatrices:function(a,b){void 0===b&&(b=0);var c=this.camera,d=this.matrix,e=this._lightPositionWorld,f=this._lookTarget,g=this._projScreenMatrix;
+e.setFromMatrixPosition(a.matrixWorld);c.position.copy(e);f.copy(c.position);f.add(this._cubeDirections[b]);c.up.copy(this._cubeUps[b]);c.lookAt(f);c.updateMatrixWorld();d.makeTranslation(-e.x,-e.y,-e.z);g.multiplyMatrices(c.projectionMatrix,c.matrixWorldInverse);this._frustum.setFromMatrix(g)}});cf.prototype=Object.assign(Object.create(T.prototype),{constructor:cf,isPointLight:!0,copy:function(a){T.prototype.copy.call(this,a);this.distance=a.distance;this.decay=a.decay;this.shadow=a.shadow.clone();
+return this}});oe.prototype=Object.assign(Object.create(bb.prototype),{constructor:oe,isOrthographicCamera:!0,copy:function(a,b){bb.prototype.copy.call(this,a,b);this.left=a.left;this.right=a.right;this.top=a.top;this.bottom=a.bottom;this.near=a.near;this.far=a.far;this.zoom=a.zoom;this.view=null===a.view?null:Object.assign({},a.view);return this},setViewOffset:function(a,b,c,d,e,f){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1});this.view.enabled=
+!0;this.view.fullWidth=a;this.view.fullHeight=b;this.view.offsetX=c;this.view.offsetY=d;this.view.width=e;this.view.height=f;this.updateProjectionMatrix()},clearViewOffset:function(){null!==this.view&&(this.view.enabled=!1);this.updateProjectionMatrix()},updateProjectionMatrix:function(){var a=(this.right-this.left)/(2*this.zoom),b=(this.top-this.bottom)/(2*this.zoom),c=(this.right+this.left)/2,d=(this.top+this.bottom)/2,e=c-a;c+=a;a=d+b;b=d-b;if(null!==this.view&&this.view.enabled){c=this.zoom/(this.view.width/
+this.view.fullWidth);b=this.zoom/(this.view.height/this.view.fullHeight);var f=(this.right-this.left)/this.view.width;d=(this.top-this.bottom)/this.view.height;e+=this.view.offsetX/c*f;c=e+this.view.width/c*f;a-=this.view.offsetY/b*d;b=a-this.view.height/b*d}this.projectionMatrix.makeOrthographic(e,c,a,b,this.near,this.far);this.projectionMatrixInverse.getInverse(this.projectionMatrix)},toJSON:function(a){a=D.prototype.toJSON.call(this,a);a.object.zoom=this.zoom;a.object.left=this.left;a.object.right=
+this.right;a.object.top=this.top;a.object.bottom=this.bottom;a.object.near=this.near;a.object.far=this.far;null!==this.view&&(a.object.view=Object.assign({},this.view));return a}});df.prototype=Object.assign(Object.create(hb.prototype),{constructor:df,isDirectionalLightShadow:!0,updateMatrices:function(a){hb.prototype.updateMatrices.call(this,a)}});ef.prototype=Object.assign(Object.create(T.prototype),{constructor:ef,isDirectionalLight:!0,copy:function(a){T.prototype.copy.call(this,a);this.target=
+a.target.clone();this.shadow=a.shadow.clone();return this}});ff.prototype=Object.assign(Object.create(T.prototype),{constructor:ff,isAmbientLight:!0});gf.prototype=Object.assign(Object.create(T.prototype),{constructor:gf,isRectAreaLight:!0,copy:function(a){T.prototype.copy.call(this,a);this.width=a.width;this.height=a.height;return this},toJSON:function(a){a=T.prototype.toJSON.call(this,a);a.object.width=this.width;a.object.height=this.height;return a}});hf.prototype=Object.assign(Object.create(V.prototype),
+{constructor:hf,load:function(a,b,c,d){var e=this,f=new Na(e.manager);f.setPath(e.path);f.load(a,function(a){b(e.parse(JSON.parse(a)))},c,d)},parse:function(a){function b(a){void 0===c[a]&&console.warn("THREE.MaterialLoader: Undefined texture",a);return c[a]}var c=this.textures,d=new Fk[a.type];void 0!==a.uuid&&(d.uuid=a.uuid);void 0!==a.name&&(d.name=a.name);void 0!==a.color&&d.color.setHex(a.color);void 0!==a.roughness&&(d.roughness=a.roughness);void 0!==a.metalness&&(d.metalness=a.metalness);void 0!==
+a.sheen&&(d.sheen=(new J).setHex(a.sheen));void 0!==a.emissive&&d.emissive.setHex(a.emissive);void 0!==a.specular&&d.specular.setHex(a.specular);void 0!==a.shininess&&(d.shininess=a.shininess);void 0!==a.clearcoat&&(d.clearcoat=a.clearcoat);void 0!==a.clearcoatRoughness&&(d.clearcoatRoughness=a.clearcoatRoughness);void 0!==a.vertexColors&&(d.vertexColors=a.vertexColors);void 0!==a.fog&&(d.fog=a.fog);void 0!==a.flatShading&&(d.flatShading=a.flatShading);void 0!==a.blending&&(d.blending=a.blending);
+void 0!==a.combine&&(d.combine=a.combine);void 0!==a.side&&(d.side=a.side);void 0!==a.opacity&&(d.opacity=a.opacity);void 0!==a.transparent&&(d.transparent=a.transparent);void 0!==a.alphaTest&&(d.alphaTest=a.alphaTest);void 0!==a.depthTest&&(d.depthTest=a.depthTest);void 0!==a.depthWrite&&(d.depthWrite=a.depthWrite);void 0!==a.colorWrite&&(d.colorWrite=a.colorWrite);void 0!==a.stencilWrite&&(d.stencilWrite=a.stencilWrite);void 0!==a.stencilWriteMask&&(d.stencilWriteMask=a.stencilWriteMask);void 0!==
+a.stencilFunc&&(d.stencilFunc=a.stencilFunc);void 0!==a.stencilRef&&(d.stencilRef=a.stencilRef);void 0!==a.stencilFuncMask&&(d.stencilFuncMask=a.stencilFuncMask);void 0!==a.stencilFail&&(d.stencilFail=a.stencilFail);void 0!==a.stencilZFail&&(d.stencilZFail=a.stencilZFail);void 0!==a.stencilZPass&&(d.stencilZPass=a.stencilZPass);void 0!==a.wireframe&&(d.wireframe=a.wireframe);void 0!==a.wireframeLinewidth&&(d.wireframeLinewidth=a.wireframeLinewidth);void 0!==a.wireframeLinecap&&(d.wireframeLinecap=
+a.wireframeLinecap);void 0!==a.wireframeLinejoin&&(d.wireframeLinejoin=a.wireframeLinejoin);void 0!==a.rotation&&(d.rotation=a.rotation);1!==a.linewidth&&(d.linewidth=a.linewidth);void 0!==a.dashSize&&(d.dashSize=a.dashSize);void 0!==a.gapSize&&(d.gapSize=a.gapSize);void 0!==a.scale&&(d.scale=a.scale);void 0!==a.polygonOffset&&(d.polygonOffset=a.polygonOffset);void 0!==a.polygonOffsetFactor&&(d.polygonOffsetFactor=a.polygonOffsetFactor);void 0!==a.polygonOffsetUnits&&(d.polygonOffsetUnits=a.polygonOffsetUnits);
+void 0!==a.skinning&&(d.skinning=a.skinning);void 0!==a.morphTargets&&(d.morphTargets=a.morphTargets);void 0!==a.morphNormals&&(d.morphNormals=a.morphNormals);void 0!==a.dithering&&(d.dithering=a.dithering);void 0!==a.visible&&(d.visible=a.visible);void 0!==a.toneMapped&&(d.toneMapped=a.toneMapped);void 0!==a.userData&&(d.userData=a.userData);if(void 0!==a.uniforms)for(var e in a.uniforms){var f=a.uniforms[e];d.uniforms[e]={};switch(f.type){case "t":d.uniforms[e].value=b(f.value);break;case "c":d.uniforms[e].value=
+(new J).setHex(f.value);break;case "v2":d.uniforms[e].value=(new B).fromArray(f.value);break;case "v3":d.uniforms[e].value=(new n).fromArray(f.value);break;case "v4":d.uniforms[e].value=(new da).fromArray(f.value);break;case "m3":d.uniforms[e].value=(new Z).fromArray(f.value);case "m4":d.uniforms[e].value=(new Q).fromArray(f.value);break;default:d.uniforms[e].value=f.value}}void 0!==a.defines&&(d.defines=a.defines);void 0!==a.vertexShader&&(d.vertexShader=a.vertexShader);void 0!==a.fragmentShader&&
+(d.fragmentShader=a.fragmentShader);if(void 0!==a.extensions)for(var g in a.extensions)d.extensions[g]=a.extensions[g];void 0!==a.shading&&(d.flatShading=1===a.shading);void 0!==a.size&&(d.size=a.size);void 0!==a.sizeAttenuation&&(d.sizeAttenuation=a.sizeAttenuation);void 0!==a.map&&(d.map=b(a.map));void 0!==a.matcap&&(d.matcap=b(a.matcap));void 0!==a.alphaMap&&(d.alphaMap=b(a.alphaMap),d.transparent=!0);void 0!==a.bumpMap&&(d.bumpMap=b(a.bumpMap));void 0!==a.bumpScale&&(d.bumpScale=a.bumpScale);
+void 0!==a.normalMap&&(d.normalMap=b(a.normalMap));void 0!==a.normalMapType&&(d.normalMapType=a.normalMapType);void 0!==a.normalScale&&(e=a.normalScale,!1===Array.isArray(e)&&(e=[e,e]),d.normalScale=(new B).fromArray(e));void 0!==a.displacementMap&&(d.displacementMap=b(a.displacementMap));void 0!==a.displacementScale&&(d.displacementScale=a.displacementScale);void 0!==a.displacementBias&&(d.displacementBias=a.displacementBias);void 0!==a.roughnessMap&&(d.roughnessMap=b(a.roughnessMap));void 0!==a.metalnessMap&&
+(d.metalnessMap=b(a.metalnessMap));void 0!==a.emissiveMap&&(d.emissiveMap=b(a.emissiveMap));void 0!==a.emissiveIntensity&&(d.emissiveIntensity=a.emissiveIntensity);void 0!==a.specularMap&&(d.specularMap=b(a.specularMap));void 0!==a.envMap&&(d.envMap=b(a.envMap));void 0!==a.envMapIntensity&&(d.envMapIntensity=a.envMapIntensity);void 0!==a.reflectivity&&(d.reflectivity=a.reflectivity);void 0!==a.refractionRatio&&(d.refractionRatio=a.refractionRatio);void 0!==a.lightMap&&(d.lightMap=b(a.lightMap));void 0!==
+a.lightMapIntensity&&(d.lightMapIntensity=a.lightMapIntensity);void 0!==a.aoMap&&(d.aoMap=b(a.aoMap));void 0!==a.aoMapIntensity&&(d.aoMapIntensity=a.aoMapIntensity);void 0!==a.gradientMap&&(d.gradientMap=b(a.gradientMap));void 0!==a.clearcoatNormalMap&&(d.clearcoatNormalMap=b(a.clearcoatNormalMap));void 0!==a.clearcoatNormalScale&&(d.clearcoatNormalScale=(new B).fromArray(a.clearcoatNormalScale));return d},setTextures:function(a){this.textures=a;return this}});var eh={decodeText:function(a){if("undefined"!==
+typeof TextDecoder)return(new TextDecoder).decode(a);for(var b="",c=0,d=a.length;c<d;c++)b+=String.fromCharCode(a[c]);try{return decodeURIComponent(escape(b))}catch(e){return b}},extractUrlBase:function(a){var b=a.lastIndexOf("/");return-1===b?"./":a.substr(0,b+1)}};jf.prototype=Object.assign(Object.create(E.prototype),{constructor:jf,isInstancedBufferGeometry:!0,copy:function(a){E.prototype.copy.call(this,a);this.maxInstancedCount=a.maxInstancedCount;return this},clone:function(){return(new this.constructor).copy(this)},
+toJSON:function(){var a=E.prototype.toJSON.call(this);a.maxInstancedCount=this.maxInstancedCount;a.isInstancedBufferGeometry=!0;return a}});kf.prototype=Object.assign(Object.create(N.prototype),{constructor:kf,isInstancedBufferAttribute:!0,copy:function(a){N.prototype.copy.call(this,a);this.meshPerAttribute=a.meshPerAttribute;return this},toJSON:function(){var a=N.prototype.toJSON.call(this);a.meshPerAttribute=this.meshPerAttribute;a.isInstancedBufferAttribute=!0;return a}});lf.prototype=Object.assign(Object.create(V.prototype),
+{constructor:lf,load:function(a,b,c,d){var e=this,f=new Na(e.manager);f.setPath(e.path);f.load(a,function(a){b(e.parse(JSON.parse(a)))},c,d)},parse:function(a){var b=a.isInstancedBufferGeometry?new jf:new E,c=a.data.index;if(void 0!==c){var d=new fh[c.type](c.array);b.setIndex(new N(d,1))}c=a.data.attributes;for(var e in c){var f=c[e];d=new fh[f.type](f.array);d=new (f.isInstancedBufferAttribute?kf:N)(d,f.itemSize,f.normalized);void 0!==f.name&&(d.name=f.name);b.setAttribute(e,d)}var g=a.data.morphAttributes;
+if(g)for(e in g){var h=g[e],l=[];c=0;for(var k=h.length;c<k;c++)f=h[c],d=new fh[f.type](f.array),d=new N(d,f.itemSize,f.normalized),void 0!==f.name&&(d.name=f.name),l.push(d);b.morphAttributes[e]=l}e=a.data.groups||a.data.drawcalls||a.data.offsets;if(void 0!==e)for(c=0,f=e.length;c!==f;++c)d=e[c],b.addGroup(d.start,d.count,d.materialIndex);c=a.data.boundingSphere;void 0!==c&&(e=new n,void 0!==c.center&&e.fromArray(c.center),b.boundingSphere=new mb(e,c.radius));a.name&&(b.name=a.name);a.userData&&
+(b.userData=a.userData);return b}});var fh={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:"undefined"!==typeof Uint8ClampedArray?Uint8ClampedArray:Uint8Array,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};mf.prototype=Object.assign(Object.create(V.prototype),{constructor:mf,load:function(a,b,c,d){var e=this,f=""===this.path?eh.extractUrlBase(a):this.path;this.resourcePath=this.resourcePath||
+f;f=new Na(e.manager);f.setPath(this.path);f.load(a,function(c){var f=null;try{f=JSON.parse(c)}catch(l){void 0!==d&&d(l);console.error("THREE:ObjectLoader: Can't parse "+a+".",l.message);return}c=f.metadata;void 0===c||void 0===c.type||"geometry"===c.type.toLowerCase()?console.error("THREE.ObjectLoader: Can't load "+a):e.parse(f,b)},c,d)},parse:function(a,b){var c=this.parseShape(a.shapes);c=this.parseGeometries(a.geometries,c);var d=this.parseImages(a.images,function(){void 0!==b&&b(e)});d=this.parseTextures(a.textures,
+d);d=this.parseMaterials(a.materials,d);var e=this.parseObject(a.object,c,d);a.animations&&(e.animations=this.parseAnimations(a.animations));void 0!==a.images&&0!==a.images.length||void 0===b||b(e);return e},parseShape:function(a){var b={};if(void 0!==a)for(var c=0,d=a.length;c<d;c++){var e=(new Ib).fromJSON(a[c]);b[e.uuid]=e}return b},parseGeometries:function(a,b){var c={};if(void 0!==a)for(var d=new lf,e=0,f=a.length;e<f;e++){var g=a[e];switch(g.type){case "PlaneGeometry":case "PlaneBufferGeometry":var h=
+new Aa[g.type](g.width,g.height,g.widthSegments,g.heightSegments);break;case "BoxGeometry":case "BoxBufferGeometry":case "CubeGeometry":h=new Aa[g.type](g.width,g.height,g.depth,g.widthSegments,g.heightSegments,g.depthSegments);break;case "CircleGeometry":case "CircleBufferGeometry":h=new Aa[g.type](g.radius,g.segments,g.thetaStart,g.thetaLength);break;case "CylinderGeometry":case "CylinderBufferGeometry":h=new Aa[g.type](g.radiusTop,g.radiusBottom,g.height,g.radialSegments,g.heightSegments,g.openEnded,
+g.thetaStart,g.thetaLength);break;case "ConeGeometry":case "ConeBufferGeometry":h=new Aa[g.type](g.radius,g.height,g.radialSegments,g.heightSegments,g.openEnded,g.thetaStart,g.thetaLength);break;case "SphereGeometry":case "SphereBufferGeometry":h=new Aa[g.type](g.radius,g.widthSegments,g.heightSegments,g.phiStart,g.phiLength,g.thetaStart,g.thetaLength);break;case "DodecahedronGeometry":case "DodecahedronBufferGeometry":case "IcosahedronGeometry":case "IcosahedronBufferGeometry":case "OctahedronGeometry":case "OctahedronBufferGeometry":case "TetrahedronGeometry":case "TetrahedronBufferGeometry":h=
+new Aa[g.type](g.radius,g.detail);break;case "RingGeometry":case "RingBufferGeometry":h=new Aa[g.type](g.innerRadius,g.outerRadius,g.thetaSegments,g.phiSegments,g.thetaStart,g.thetaLength);break;case "TorusGeometry":case "TorusBufferGeometry":h=new Aa[g.type](g.radius,g.tube,g.radialSegments,g.tubularSegments,g.arc);break;case "TorusKnotGeometry":case "TorusKnotBufferGeometry":h=new Aa[g.type](g.radius,g.tube,g.tubularSegments,g.radialSegments,g.p,g.q);break;case "TubeGeometry":case "TubeBufferGeometry":h=
+new Aa[g.type]((new dh[g.path.type]).fromJSON(g.path),g.tubularSegments,g.radius,g.radialSegments,g.closed);break;case "LatheGeometry":case "LatheBufferGeometry":h=new Aa[g.type](g.points,g.segments,g.phiStart,g.phiLength);break;case "PolyhedronGeometry":case "PolyhedronBufferGeometry":h=new Aa[g.type](g.vertices,g.indices,g.radius,g.details);break;case "ShapeGeometry":case "ShapeBufferGeometry":h=[];for(var l=0,k=g.shapes.length;l<k;l++){var n=b[g.shapes[l]];h.push(n)}h=new Aa[g.type](h,g.curveSegments);
+break;case "ExtrudeGeometry":case "ExtrudeBufferGeometry":h=[];l=0;for(k=g.shapes.length;l<k;l++)n=b[g.shapes[l]],h.push(n);l=g.options.extrudePath;void 0!==l&&(g.options.extrudePath=(new dh[l.type]).fromJSON(l));h=new Aa[g.type](h,g.options);break;case "ParametricGeometry":case "ParametricBufferGeometry":h=(new Function("return "+g.func))();h=new Aa[g.type](h,g.slices,g.stacks);break;case "BufferGeometry":case "InstancedBufferGeometry":h=d.parse(g);break;case "Geometry":"THREE"in window&&"LegacyJSONLoader"in
+THREE?h=(new THREE.LegacyJSONLoader).parse(g,this.resourcePath).geometry:console.error('THREE.ObjectLoader: You have to import LegacyJSONLoader in order load geometry data of type "Geometry".');break;default:console.warn('THREE.ObjectLoader: Unsupported geometry type "'+g.type+'"');continue}h.uuid=g.uuid;void 0!==g.name&&(h.name=g.name);!0===h.isBufferGeometry&&void 0!==g.userData&&(h.userData=g.userData);c[g.uuid]=h}return c},parseMaterials:function(a,b){var c={},d={};if(void 0!==a){var e=new hf;
+e.setTextures(b);b=0;for(var f=a.length;b<f;b++){var g=a[b];if("MultiMaterial"===g.type){for(var h=[],l=0;l<g.materials.length;l++){var k=g.materials[l];void 0===c[k.uuid]&&(c[k.uuid]=e.parse(k));h.push(c[k.uuid])}d[g.uuid]=h}else void 0===c[g.uuid]&&(c[g.uuid]=e.parse(g)),d[g.uuid]=c[g.uuid]}}return d},parseAnimations:function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c],e=Ma.parse(d);void 0!==d.uuid&&(e.uuid=d.uuid);b.push(e)}return b},parseImages:function(a,b){function c(a){d.manager.itemStart(a);
+return f.load(a,function(){d.manager.itemEnd(a)},void 0,function(){d.manager.itemError(a);d.manager.itemEnd(a)})}var d=this,e={};if(void 0!==a&&0<a.length){b=new og(b);var f=new bd(b);f.setCrossOrigin(this.crossOrigin);b=0;for(var g=a.length;b<g;b++){var h=a[b],l=h.url;if(Array.isArray(l)){e[h.uuid]=[];for(var k=0,n=l.length;k<n;k++){var q=l[k];q=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(q)?q:d.resourcePath+q;e[h.uuid].push(c(q))}}else q=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(h.url)?h.url:d.resourcePath+h.url,e[h.uuid]=
+c(q)}}return e},parseTextures:function(a,b){function c(a,b){if("number"===typeof a)return a;console.warn("THREE.ObjectLoader.parseTexture: Constant should be in numeric form.",a);return b[a]}var d={};if(void 0!==a)for(var e=0,f=a.length;e<f;e++){var g=a[e];void 0===g.image&&console.warn('THREE.ObjectLoader: No "image" specified for',g.uuid);void 0===b[g.image]&&console.warn("THREE.ObjectLoader: Undefined image",g.image);var h=Array.isArray(b[g.image])?new nb(b[g.image]):new Y(b[g.image]);h.needsUpdate=
+!0;h.uuid=g.uuid;void 0!==g.name&&(h.name=g.name);void 0!==g.mapping&&(h.mapping=c(g.mapping,Gk));void 0!==g.offset&&h.offset.fromArray(g.offset);void 0!==g.repeat&&h.repeat.fromArray(g.repeat);void 0!==g.center&&h.center.fromArray(g.center);void 0!==g.rotation&&(h.rotation=g.rotation);void 0!==g.wrap&&(h.wrapS=c(g.wrap[0],Di),h.wrapT=c(g.wrap[1],Di));void 0!==g.format&&(h.format=g.format);void 0!==g.type&&(h.type=g.type);void 0!==g.encoding&&(h.encoding=g.encoding);void 0!==g.minFilter&&(h.minFilter=
+c(g.minFilter,Ei));void 0!==g.magFilter&&(h.magFilter=c(g.magFilter,Ei));void 0!==g.anisotropy&&(h.anisotropy=g.anisotropy);void 0!==g.flipY&&(h.flipY=g.flipY);void 0!==g.premultiplyAlpha&&(h.premultiplyAlpha=g.premultiplyAlpha);void 0!==g.unpackAlignment&&(h.unpackAlignment=g.unpackAlignment);d[g.uuid]=h}return d},parseObject:function(a,b,c){function d(a){void 0===b[a]&&console.warn("THREE.ObjectLoader: Undefined geometry",a);return b[a]}function e(a){if(void 0!==a){if(Array.isArray(a)){for(var b=
+[],d=0,e=a.length;d<e;d++){var f=a[d];void 0===c[f]&&console.warn("THREE.ObjectLoader: Undefined material",f);b.push(c[f])}return b}void 0===c[a]&&console.warn("THREE.ObjectLoader: Undefined material",a);return c[a]}}switch(a.type){case "Scene":var f=new wd;void 0!==a.background&&Number.isInteger(a.background)&&(f.background=new J(a.background));void 0!==a.fog&&("Fog"===a.fog.type?f.fog=new Me(a.fog.color,a.fog.near,a.fog.far):"FogExp2"===a.fog.type&&(f.fog=new Le(a.fog.color,a.fog.density)));break;
+case "PerspectiveCamera":f=new U(a.fov,a.aspect,a.near,a.far);void 0!==a.focus&&(f.focus=a.focus);void 0!==a.zoom&&(f.zoom=a.zoom);void 0!==a.filmGauge&&(f.filmGauge=a.filmGauge);void 0!==a.filmOffset&&(f.filmOffset=a.filmOffset);void 0!==a.view&&(f.view=Object.assign({},a.view));break;case "OrthographicCamera":f=new oe(a.left,a.right,a.top,a.bottom,a.near,a.far);void 0!==a.zoom&&(f.zoom=a.zoom);void 0!==a.view&&(f.view=Object.assign({},a.view));break;case "AmbientLight":f=new ff(a.color,a.intensity);
+break;case "DirectionalLight":f=new ef(a.color,a.intensity);break;case "PointLight":f=new cf(a.color,a.intensity,a.distance,a.decay);break;case "RectAreaLight":f=new gf(a.color,a.intensity,a.width,a.height);break;case "SpotLight":f=new bf(a.color,a.intensity,a.distance,a.angle,a.penumbra,a.decay);break;case "HemisphereLight":f=new $e(a.color,a.groundColor,a.intensity);break;case "SkinnedMesh":console.warn("THREE.ObjectLoader.parseObject() does not support SkinnedMesh yet.");case "Mesh":f=d(a.geometry);
+var g=e(a.material);f=f.bones&&0<f.bones.length?new Pd(f,g):new ea(f,g);break;case "InstancedMesh":f=d(a.geometry);g=e(a.material);var h=a.instanceMatrix;f=new Pe(f,g,a.count);f.instanceMatrix=new N(new Float32Array(h.array),16);break;case "LOD":f=new Od;break;case "Line":f=new ra(d(a.geometry),e(a.material),a.mode);break;case "LineLoop":f=new Qe(d(a.geometry),e(a.material));break;case "LineSegments":f=new X(d(a.geometry),e(a.material));break;case "PointCloud":case "Points":f=new Kc(d(a.geometry),
+e(a.material));break;case "Sprite":f=new Md(e(a.material));break;case "Group":f=new Hc;break;default:f=new D}f.uuid=a.uuid;void 0!==a.name&&(f.name=a.name);void 0!==a.matrix?(f.matrix.fromArray(a.matrix),void 0!==a.matrixAutoUpdate&&(f.matrixAutoUpdate=a.matrixAutoUpdate),f.matrixAutoUpdate&&f.matrix.decompose(f.position,f.quaternion,f.scale)):(void 0!==a.position&&f.position.fromArray(a.position),void 0!==a.rotation&&f.rotation.fromArray(a.rotation),void 0!==a.quaternion&&f.quaternion.fromArray(a.quaternion),
+void 0!==a.scale&&f.scale.fromArray(a.scale));void 0!==a.castShadow&&(f.castShadow=a.castShadow);void 0!==a.receiveShadow&&(f.receiveShadow=a.receiveShadow);a.shadow&&(void 0!==a.shadow.bias&&(f.shadow.bias=a.shadow.bias),void 0!==a.shadow.radius&&(f.shadow.radius=a.shadow.radius),void 0!==a.shadow.mapSize&&f.shadow.mapSize.fromArray(a.shadow.mapSize),void 0!==a.shadow.camera&&(f.shadow.camera=this.parseObject(a.shadow.camera)));void 0!==a.visible&&(f.visible=a.visible);void 0!==a.frustumCulled&&
+(f.frustumCulled=a.frustumCulled);void 0!==a.renderOrder&&(f.renderOrder=a.renderOrder);void 0!==a.userData&&(f.userData=a.userData);void 0!==a.layers&&(f.layers.mask=a.layers);void 0!==a.drawMode&&f.setDrawMode(a.drawMode);if(void 0!==a.children)for(h=a.children,g=0;g<h.length;g++)f.add(this.parseObject(h[g],b,c));if("LOD"===a.type)for(a=a.levels,h=0;h<a.length;h++){g=a[h];var l=f.getObjectByProperty("uuid",g.object);void 0!==l&&f.addLevel(l,g.distance)}return f}});var Gk={UVMapping:300,CubeReflectionMapping:301,
+CubeRefractionMapping:302,EquirectangularReflectionMapping:303,EquirectangularRefractionMapping:304,SphericalReflectionMapping:305,CubeUVReflectionMapping:306,CubeUVRefractionMapping:307},Di={RepeatWrapping:1E3,ClampToEdgeWrapping:1001,MirroredRepeatWrapping:1002},Ei={NearestFilter:1003,NearestMipmapNearestFilter:1004,NearestMipmapLinearFilter:1005,LinearFilter:1006,LinearMipmapNearestFilter:1007,LinearMipmapLinearFilter:1008};tg.prototype=Object.assign(Object.create(V.prototype),{constructor:tg,
+setOptions:function(a){this.options=a;return this},load:function(a,b,c,d){void 0===a&&(a="");void 0!==this.path&&(a=this.path+a);a=this.manager.resolveURL(a);var e=this,f=tc.get(a);if(void 0!==f)return e.manager.itemStart(a),setTimeout(function(){b&&b(f);e.manager.itemEnd(a)},0),f;fetch(a).then(function(a){return a.blob()}).then(function(a){return void 0===e.options?createImageBitmap(a):createImageBitmap(a,e.options)}).then(function(c){tc.add(a,c);b&&b(c);e.manager.itemEnd(a)}).catch(function(b){d&&
+d(b);e.manager.itemError(a);e.manager.itemEnd(a)});e.manager.itemStart(a)}});Object.assign(ug.prototype,{moveTo:function(a,b){this.currentPath=new Wa;this.subPaths.push(this.currentPath);this.currentPath.moveTo(a,b);return this},lineTo:function(a,b){this.currentPath.lineTo(a,b);return this},quadraticCurveTo:function(a,b,c,d){this.currentPath.quadraticCurveTo(a,b,c,d);return this},bezierCurveTo:function(a,b,c,d,e,f){this.currentPath.bezierCurveTo(a,b,c,d,e,f);return this},splineThru:function(a){this.currentPath.splineThru(a);
+return this},toShapes:function(a,b){function c(a){for(var b=[],c=0,d=a.length;c<d;c++){var e=a[c],f=new Ib;f.curves=e.curves;b.push(f)}return b}function d(a,b){for(var c=b.length,d=!1,e=c-1,f=0;f<c;e=f++){var g=b[e],h=b[f],l=h.x-g.x,k=h.y-g.y;if(Math.abs(k)>Number.EPSILON){if(0>k&&(g=b[f],l=-l,h=b[e],k=-k),!(a.y<g.y||a.y>h.y))if(a.y===g.y){if(a.x===g.x)return!0}else{e=k*(a.x-g.x)-l*(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=qb.isClockWise,f=this.subPaths;if(0===f.length)return[];if(!0===b)return c(f);b=[];if(1===f.length){var g=f[0];var h=new Ib;h.curves=g.curves;b.push(h);return b}var l=!e(f[0].getPoints());l=a?!l:l;h=[];var k=[],n=[],q=0;k[q]=void 0;n[q]=[];for(var u=0,p=f.length;u<p;u++){g=f[u];var t=g.getPoints();var v=e(t);(v=a?!v:v)?(!l&&k[q]&&q++,k[q]={s:new Ib,p:t},k[q].s.curves=g.curves,l&&q++,n[q]=[]):n[q].push({h:g,p:t[0]})}if(!k[0])return c(f);if(1<k.length){u=!1;a=[];e=0;for(f=k.length;e<f;e++)h[e]=
+[];e=0;for(f=k.length;e<f;e++)for(g=n[e],v=0;v<g.length;v++){l=g[v];q=!0;for(t=0;t<k.length;t++)d(l.p,k[t].p)&&(e!==t&&a.push({froms:e,tos:t,hole:v}),q?(q=!1,h[t].push(l)):u=!0);q&&h[e].push(l)}0<a.length&&(u||(n=h))}u=0;for(e=k.length;u<e;u++)for(h=k[u].s,b.push(h),a=n[u],f=0,g=a.length;f<g;f++)h.holes.push(a[f].h);return b}});Object.assign(vg.prototype,{isFont:!0,generateShapes:function(a,b){void 0===b&&(b=100);var c=[],d=b;b=this.data;var e=Array.from?Array.from(a):String(a).split("");d/=b.resolution;
+var f=(b.boundingBox.yMax-b.boundingBox.yMin+b.underlineThickness)*d;a=[];for(var g=0,h=0,l=0;l<e.length;l++){var k=e[l];if("\n"===k)g=0,h-=f;else{var n=k;k=d;var q=g,u=h,p=b,t=p.glyphs[n]||p.glyphs["?"];if(t){n=new ug;if(t.o){p=t._cachedOutline||(t._cachedOutline=t.o.split(" "));for(var v=0,y=p.length;v<y;)switch(p[v++]){case "m":var w=p[v++]*k+q;var x=p[v++]*k+u;n.moveTo(w,x);break;case "l":w=p[v++]*k+q;x=p[v++]*k+u;n.lineTo(w,x);break;case "q":var A=p[v++]*k+q;var B=p[v++]*k+u;var z=p[v++]*k+q;
+var C=p[v++]*k+u;n.quadraticCurveTo(z,C,A,B);break;case "b":A=p[v++]*k+q,B=p[v++]*k+u,z=p[v++]*k+q,C=p[v++]*k+u,w=p[v++]*k+q,x=p[v++]*k+u,n.bezierCurveTo(z,C,w,x,A,B)}}k={offsetX:t.ha*k,path:n}}else console.error('THREE.Font: character "'+n+'" does not exists in font family '+p.familyName+"."),k=void 0;g+=k.offsetX;a.push(k.path)}}b=0;for(e=a.length;b<e;b++)Array.prototype.push.apply(c,a[b].toShapes());return c}});wg.prototype=Object.assign(Object.create(V.prototype),{constructor:wg,load:function(a,
+b,c,d){var e=this,f=new Na(this.manager);f.setPath(this.path);f.load(a,function(a){try{var c=JSON.parse(a)}catch(l){console.warn("THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead."),c=JSON.parse(a.substring(65,a.length-2))}a=e.parse(c);b&&b(a)},c,d)},parse:function(a){return new vg(a)}});var Mf,Bg={getContext:function(){void 0===Mf&&(Mf=new (window.AudioContext||window.webkitAudioContext));return Mf},setContext:function(a){Mf=a}};nf.prototype=Object.assign(Object.create(V.prototype),
+{constructor:nf,load:function(a,b,c,d){var e=new Na(this.manager);e.setResponseType("arraybuffer");e.setPath(this.path);e.load(a,function(a){a=a.slice(0);Bg.getContext().decodeAudioData(a,function(a){b(a)})},c,d)}});Object.assign(of.prototype,{isSphericalHarmonics3:!0,set:function(a){for(var b=0;9>b;b++)this.coefficients[b].copy(a[b]);return this},zero:function(){for(var a=0;9>a;a++)this.coefficients[a].set(0,0,0);return this},getAt:function(a,b){var c=a.x,d=a.y;a=a.z;var e=this.coefficients;b.copy(e[0]).multiplyScalar(.282095);
+b.addScale(e[1],.488603*d);b.addScale(e[2],.488603*a);b.addScale(e[3],.488603*c);b.addScale(e[4],1.092548*c*d);b.addScale(e[5],1.092548*d*a);b.addScale(e[6],.315392*(3*a*a-1));b.addScale(e[7],1.092548*c*a);b.addScale(e[8],.546274*(c*c-d*d));return b},getIrradianceAt:function(a,b){var c=a.x,d=a.y;a=a.z;var e=this.coefficients;b.copy(e[0]).multiplyScalar(.886227);b.addScale(e[1],1.023328*d);b.addScale(e[2],1.023328*a);b.addScale(e[3],1.023328*c);b.addScale(e[4],.858086*c*d);b.addScale(e[5],.858086*
+d*a);b.addScale(e[6],.743125*a*a-.247708);b.addScale(e[7],.858086*c*a);b.addScale(e[8],.429043*(c*c-d*d));return b},add:function(a){for(var b=0;9>b;b++)this.coefficients[b].add(a.coefficients[b]);return this},scale:function(a){for(var b=0;9>b;b++)this.coefficients[b].multiplyScalar(a);return this},lerp:function(a,b){for(var c=0;9>c;c++)this.coefficients[c].lerp(a.coefficients[c],b);return this},equals:function(a){for(var b=0;9>b;b++)if(!this.coefficients[b].equals(a.coefficients[b]))return!1;return!0},
+copy:function(a){return this.set(a.coefficients)},clone:function(){return(new this.constructor).copy(this)},fromArray:function(a,b){void 0===b&&(b=0);for(var c=this.coefficients,d=0;9>d;d++)c[d].fromArray(a,b+3*d);return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);for(var c=this.coefficients,d=0;9>d;d++)c[d].toArray(a,b+3*d);return a}});Object.assign(of,{getBasisAt:function(a,b){var c=a.x,d=a.y;a=a.z;b[0]=.282095;b[1]=.488603*d;b[2]=.488603*a;b[3]=.488603*c;b[4]=1.092548*c*d;
+b[5]=1.092548*d*a;b[6]=.315392*(3*a*a-1);b[7]=1.092548*c*a;b[8]=.546274*(c*c-d*d)}});Xa.prototype=Object.assign(Object.create(T.prototype),{constructor:Xa,isLightProbe:!0,copy:function(a){T.prototype.copy.call(this,a);this.sh.copy(a.sh);this.intensity=a.intensity;return this},toJSON:function(a){return T.prototype.toJSON.call(this,a)}});xg.prototype=Object.assign(Object.create(Xa.prototype),{constructor:xg,isHemisphereLightProbe:!0,copy:function(a){Xa.prototype.copy.call(this,a);return this},toJSON:function(a){return Xa.prototype.toJSON.call(this,
+a)}});yg.prototype=Object.assign(Object.create(Xa.prototype),{constructor:yg,isAmbientLightProbe:!0,copy:function(a){Xa.prototype.copy.call(this,a);return this},toJSON:function(a){return Xa.prototype.toJSON.call(this,a)}});var Fi=new Q,Gi=new Q;Object.assign(ai.prototype,{update:function(a){var b=this._cache;if(b.focus!==a.focus||b.fov!==a.fov||b.aspect!==a.aspect*this.aspect||b.near!==a.near||b.far!==a.far||b.zoom!==a.zoom||b.eyeSep!==this.eyeSep){b.focus=a.focus;b.fov=a.fov;b.aspect=a.aspect*this.aspect;
+b.near=a.near;b.far=a.far;b.zoom=a.zoom;b.eyeSep=this.eyeSep;var c=a.projectionMatrix.clone(),d=b.eyeSep/2,e=d*b.near/b.focus,f=b.near*Math.tan(P.DEG2RAD*b.fov*.5)/b.zoom;Gi.elements[12]=-d;Fi.elements[12]=d;d=-f*b.aspect+e;var g=f*b.aspect+e;c.elements[0]=2*b.near/(g-d);c.elements[8]=(g+d)/(g-d);this.cameraL.projectionMatrix.copy(c);d=-f*b.aspect-e;g=f*b.aspect-e;c.elements[0]=2*b.near/(g-d);c.elements[8]=(g+d)/(g-d);this.cameraR.projectionMatrix.copy(c)}this.cameraL.matrixWorld.copy(a.matrixWorld).multiply(Gi);
+this.cameraR.matrixWorld.copy(a.matrixWorld).multiply(Fi)}});Object.assign(zg.prototype,{start:function(){this.oldTime=this.startTime=("undefined"===typeof performance?Date:performance).now();this.elapsedTime=0;this.running=!0},stop:function(){this.getElapsedTime();this.autoStart=this.running=!1},getElapsedTime:function(){this.getDelta();return this.elapsedTime},getDelta:function(){var a=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){var b=("undefined"===typeof performance?
+Date:performance).now();a=(b-this.oldTime)/1E3;this.oldTime=b;this.elapsedTime+=a}return a}});var uc=new n,Hi=new wa,Hk=new n,vc=new n;Ag.prototype=Object.assign(Object.create(D.prototype),{constructor:Ag,getInput:function(){return this.gain},removeFilter:function(){null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null);return this},getFilter:function(){return this.filter},setFilter:function(a){null!==
+this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination);this.filter=a;this.gain.connect(this.filter);this.filter.connect(this.context.destination);return this},getMasterVolume:function(){return this.gain.gain.value},setMasterVolume:function(a){this.gain.gain.setTargetAtTime(a,this.context.currentTime,.01);return this},updateMatrixWorld:function(a){D.prototype.updateMatrixWorld.call(this,a);a=this.context.listener;
+var b=this.up;this.timeDelta=this._clock.getDelta();this.matrixWorld.decompose(uc,Hi,Hk);vc.set(0,0,-1).applyQuaternion(Hi);if(a.positionX){var c=this.context.currentTime+this.timeDelta;a.positionX.linearRampToValueAtTime(uc.x,c);a.positionY.linearRampToValueAtTime(uc.y,c);a.positionZ.linearRampToValueAtTime(uc.z,c);a.forwardX.linearRampToValueAtTime(vc.x,c);a.forwardY.linearRampToValueAtTime(vc.y,c);a.forwardZ.linearRampToValueAtTime(vc.z,c);a.upX.linearRampToValueAtTime(b.x,c);a.upY.linearRampToValueAtTime(b.y,
+c);a.upZ.linearRampToValueAtTime(b.z,c)}else a.setPosition(uc.x,uc.y,uc.z),a.setOrientation(vc.x,vc.y,vc.z,b.x,b.y,b.z)}});dd.prototype=Object.assign(Object.create(D.prototype),{constructor:dd,getOutput:function(){return this.gain},setNodeSource:function(a){this.hasPlaybackControl=!1;this.sourceType="audioNode";this.source=a;this.connect();return this},setMediaElementSource:function(a){this.hasPlaybackControl=!1;this.sourceType="mediaNode";this.source=this.context.createMediaElementSource(a);this.connect();
+return this},setMediaStreamSource:function(a){this.hasPlaybackControl=!1;this.sourceType="mediaStreamNode";this.source=this.context.createMediaStreamSource(a);this.connect();return this},setBuffer:function(a){this.buffer=a;this.sourceType="buffer";this.autoplay&&this.play();return this},play:function(a){void 0===a&&(a=0);if(!0===this.isPlaying)console.warn("THREE.Audio: Audio is already playing.");else if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");
+else return this._startedAt=this.context.currentTime+a,a=this.context.createBufferSource(),a.buffer=this.buffer,a.loop=this.loop,a.loopStart=this.loopStart,a.loopEnd=this.loopEnd,a.onended=this.onEnded.bind(this),a.start(this._startedAt,this._pausedAt+this.offset,this.duration),this.isPlaying=!0,this.source=a,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()},pause:function(){if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");
+else return!0===this.isPlaying&&(this._pausedAt=(this.context.currentTime-this._startedAt)*this.playbackRate,this.source.stop(),this.source.onended=null,this.isPlaying=!1),this},stop:function(){if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");else return this._pausedAt=0,this.source.stop(),this.source.onended=null,this.isPlaying=!1,this},connect:function(){if(0<this.filters.length){this.source.connect(this.filters[0]);for(var a=1,b=this.filters.length;a<
+b;a++)this.filters[a-1].connect(this.filters[a]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this},disconnect:function(){if(0<this.filters.length){this.source.disconnect(this.filters[0]);for(var a=1,b=this.filters.length;a<b;a++)this.filters[a-1].disconnect(this.filters[a]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this},getFilters:function(){return this.filters},
+setFilters:function(a){a||(a=[]);!0===this.isPlaying?(this.disconnect(),this.filters=a,this.connect()):this.filters=a;return this},setDetune:function(a){this.detune=a;if(void 0!==this.source.detune)return!0===this.isPlaying&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01),this},getDetune:function(){return this.detune},getFilter:function(){return this.getFilters()[0]},setFilter:function(a){return this.setFilters(a?[a]:[])},setPlaybackRate:function(a){if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");
+else return this.playbackRate=a,!0===this.isPlaying&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01),this},getPlaybackRate:function(){return this.playbackRate},onEnded:function(){this.isPlaying=!1},getLoop:function(){return!1===this.hasPlaybackControl?(console.warn("THREE.Audio: this Audio has no playback control."),!1):this.loop},setLoop:function(a){if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");else return this.loop=
+a,!0===this.isPlaying&&(this.source.loop=this.loop),this},setLoopStart:function(a){this.loopStart=a;return this},setLoopEnd:function(a){this.loopEnd=a;return this},getVolume:function(){return this.gain.gain.value},setVolume:function(a){this.gain.gain.setTargetAtTime(a,this.context.currentTime,.01);return this}});var wc=new n,Ii=new wa,Ik=new n,xc=new n;Cg.prototype=Object.assign(Object.create(dd.prototype),{constructor:Cg,getOutput:function(){return this.panner},getRefDistance:function(){return this.panner.refDistance},
+setRefDistance:function(a){this.panner.refDistance=a;return this},getRolloffFactor:function(){return this.panner.rolloffFactor},setRolloffFactor:function(a){this.panner.rolloffFactor=a;return this},getDistanceModel:function(){return this.panner.distanceModel},setDistanceModel:function(a){this.panner.distanceModel=a;return this},getMaxDistance:function(){return this.panner.maxDistance},setMaxDistance:function(a){this.panner.maxDistance=a;return this},setDirectionalCone:function(a,b,c){this.panner.coneInnerAngle=
+a;this.panner.coneOuterAngle=b;this.panner.coneOuterGain=c;return this},updateMatrixWorld:function(a){D.prototype.updateMatrixWorld.call(this,a);if(!0!==this.hasPlaybackControl||!1!==this.isPlaying)if(this.matrixWorld.decompose(wc,Ii,Ik),xc.set(0,0,1).applyQuaternion(Ii),a=this.panner,a.positionX){var b=this.context.currentTime+this.listener.timeDelta;a.positionX.linearRampToValueAtTime(wc.x,b);a.positionY.linearRampToValueAtTime(wc.y,b);a.positionZ.linearRampToValueAtTime(wc.z,b);a.orientationX.linearRampToValueAtTime(xc.x,
+b);a.orientationY.linearRampToValueAtTime(xc.y,b);a.orientationZ.linearRampToValueAtTime(xc.z,b)}else a.setPosition(wc.x,wc.y,wc.z),a.setOrientation(xc.x,xc.y,xc.z)}});Object.assign(Dg.prototype,{getFrequencyData:function(){this.analyser.getByteFrequencyData(this.data);return this.data},getAverageFrequency:function(){for(var a=0,b=this.getFrequencyData(),c=0;c<b.length;c++)a+=b[c];return a/b.length}});Object.assign(Eg.prototype,{accumulate:function(a,b){var c=this.buffer,d=this.valueSize;a=a*d+d;
+var e=this.cumulativeWeight;if(0===e){for(e=0;e!==d;++e)c[a+e]=c[e];e=b}else e+=b,this._mixBufferRegion(c,a,0,b/e,d);this.cumulativeWeight=e},apply:function(a){var b=this.valueSize,c=this.buffer;a=a*b+b;var d=this.cumulativeWeight,e=this.binding;this.cumulativeWeight=0;1>d&&this._mixBufferRegion(c,a,3*b,1-d,b);d=b;for(var f=b+b;d!==f;++d)if(c[d]!==c[d+b]){e.setValue(c,a);break}},saveOriginalState:function(){var a=this.buffer,b=this.valueSize,c=3*b;this.binding.getValue(a,c);for(var d=b;d!==c;++d)a[d]=
+a[c+d%b];this.cumulativeWeight=0},restoreOriginalState:function(){this.binding.setValue(this.buffer,3*this.valueSize)},_select:function(a,b,c,d,e){if(.5<=d)for(d=0;d!==e;++d)a[b+d]=a[c+d]},_slerp:function(a,b,c,d){wa.slerpFlat(a,b,a,b,a,c,d)},_lerp:function(a,b,c,d,e){for(var f=1-d,g=0;g!==e;++g){var h=b+g;a[h]=a[h]*f+a[c+g]*d}}});var Jk=/[\[\]\.:\/]/g,Kk="[^"+"\\[\\]\\.:\\/".replace("\\.","")+"]",Lk=/((?:WC+[\/:])*)/.source.replace("WC","[^\\[\\]\\.:\\/]"),Mk=/(WCOD+)?/.source.replace("WCOD",Kk),
+Nk=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC","[^\\[\\]\\.:\\/]"),Ok=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC","[^\\[\\]\\.:\\/]"),Pk=new RegExp("^"+Lk+Mk+Nk+Ok+"$"),Qk=["material","materials","bones"];Object.assign(bi.prototype,{getValue:function(a,b){this.bind();var c=this._bindings[this._targetGroup.nCachedObjects_];void 0!==c&&c.getValue(a,b)},setValue:function(a,b){for(var c=this._bindings,d=this._targetGroup.nCachedObjects_,e=c.length;d!==e;++d)c[d].setValue(a,b)},bind:function(){for(var a=
+this._bindings,b=this._targetGroup.nCachedObjects_,c=a.length;b!==c;++b)a[b].bind()},unbind:function(){for(var a=this._bindings,b=this._targetGroup.nCachedObjects_,c=a.length;b!==c;++b)a[b].unbind()}});Object.assign(ya,{Composite:bi,create:function(a,b,c){return a&&a.isAnimationObjectGroup?new ya.Composite(a,b,c):new ya(a,b,c)},sanitizeNodeName:function(a){return a.replace(/\s/g,"_").replace(Jk,"")},parseTrackName:function(a){var b=Pk.exec(a);if(!b)throw Error("PropertyBinding: Cannot parse trackName: "+
+a);b={nodeName:b[2],objectName:b[3],objectIndex:b[4],propertyName:b[5],propertyIndex:b[6]};var c=b.nodeName&&b.nodeName.lastIndexOf(".");if(void 0!==c&&-1!==c){var d=b.nodeName.substring(c+1);-1!==Qk.indexOf(d)&&(b.nodeName=b.nodeName.substring(0,c),b.objectName=d)}if(null===b.propertyName||0===b.propertyName.length)throw Error("PropertyBinding: can not parse propertyName from trackName: "+a);return b},findNode:function(a,b){if(!b||""===b||"root"===b||"."===b||-1===b||b===a.name||b===a.uuid)return a;
+if(a.skeleton){var c=a.skeleton.getBoneByName(b);if(void 0!==c)return c}if(a.children){var d=function(a){for(var c=0;c<a.length;c++){var e=a[c];if(e.name===b||e.uuid===b||(e=d(e.children)))return e}return null};if(a=d(a.children))return a}return null}});Object.assign(ya.prototype,{_getValue_unavailable:function(){},_setValue_unavailable:function(){},BindingType:{Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},Versioning:{None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},GetterByBindingType:[function(a,
+b){a[b]=this.node[this.propertyName]},function(a,b){for(var c=this.resolvedProperty,d=0,e=c.length;d!==e;++d)a[b++]=c[d]},function(a,b){a[b]=this.resolvedProperty[this.propertyIndex]},function(a,b){this.resolvedProperty.toArray(a,b)}],SetterByBindingTypeAndVersioning:[[function(a,b){this.targetObject[this.propertyName]=a[b]},function(a,b){this.targetObject[this.propertyName]=a[b];this.targetObject.needsUpdate=!0},function(a,b){this.targetObject[this.propertyName]=a[b];this.targetObject.matrixWorldNeedsUpdate=
+!0}],[function(a,b){for(var c=this.resolvedProperty,d=0,e=c.length;d!==e;++d)c[d]=a[b++]},function(a,b){for(var c=this.resolvedProperty,d=0,e=c.length;d!==e;++d)c[d]=a[b++];this.targetObject.needsUpdate=!0},function(a,b){for(var c=this.resolvedProperty,d=0,e=c.length;d!==e;++d)c[d]=a[b++];this.targetObject.matrixWorldNeedsUpdate=!0}],[function(a,b){this.resolvedProperty[this.propertyIndex]=a[b]},function(a,b){this.resolvedProperty[this.propertyIndex]=a[b];this.targetObject.needsUpdate=!0},function(a,
+b){this.resolvedProperty[this.propertyIndex]=a[b];this.targetObject.matrixWorldNeedsUpdate=!0}],[function(a,b){this.resolvedProperty.fromArray(a,b)},function(a,b){this.resolvedProperty.fromArray(a,b);this.targetObject.needsUpdate=!0},function(a,b){this.resolvedProperty.fromArray(a,b);this.targetObject.matrixWorldNeedsUpdate=!0}]],getValue:function(a,b){this.bind();this.getValue(a,b)},setValue:function(a,b){this.bind();this.setValue(a,b)},bind:function(){var a=this.node,b=this.parsedPath,c=b.objectName,
+d=b.propertyName,e=b.propertyIndex;a||(this.node=a=ya.findNode(this.rootNode,b.nodeName)||this.rootNode);this.getValue=this._getValue_unavailable;this.setValue=this._setValue_unavailable;if(a){if(c){var f=b.objectIndex;switch(c){case "materials":if(!a.material){console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);return}if(!a.material.materials){console.error("THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",
+this);return}a=a.material.materials;break;case "bones":if(!a.skeleton){console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);return}a=a.skeleton.bones;for(c=0;c<a.length;c++)if(a[c].name===f){f=c;break}break;default:if(void 0===a[c]){console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.",this);return}a=a[c]}if(void 0!==f){if(void 0===a[f]){console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",
+this,a);return}a=a[f]}}f=a[d];if(void 0===f)console.error("THREE.PropertyBinding: Trying to update property for track: "+b.nodeName+"."+d+" but it wasn't found.",a);else{b=this.Versioning.None;this.targetObject=a;void 0!==a.needsUpdate?b=this.Versioning.NeedsUpdate:void 0!==a.matrixWorldNeedsUpdate&&(b=this.Versioning.MatrixWorldNeedsUpdate);c=this.BindingType.Direct;if(void 0!==e){if("morphTargetInfluences"===d){if(!a.geometry){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",
+this);return}if(a.geometry.isBufferGeometry){if(!a.geometry.morphAttributes){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);return}for(c=0;c<this.node.geometry.morphAttributes.position.length;c++)if(a.geometry.morphAttributes.position[c].name===e){e=c;break}}else{if(!a.geometry.morphTargets){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphTargets.",
+this);return}for(c=0;c<this.node.geometry.morphTargets.length;c++)if(a.geometry.morphTargets[c].name===e){e=c;break}}}c=this.BindingType.ArrayElement;this.resolvedProperty=f;this.propertyIndex=e}else void 0!==f.fromArray&&void 0!==f.toArray?(c=this.BindingType.HasFromToArray,this.resolvedProperty=f):Array.isArray(f)?(c=this.BindingType.EntireArray,this.resolvedProperty=f):this.propertyName=d;this.getValue=this.GetterByBindingType[c];this.setValue=this.SetterByBindingTypeAndVersioning[c][b]}}else console.error("THREE.PropertyBinding: Trying to update node for track: "+
+this.path+" but it wasn't found.")},unbind:function(){this.node=null;this.getValue=this._getValue_unbound;this.setValue=this._setValue_unbound}});Object.assign(ya.prototype,{_getValue_unbound:ya.prototype.getValue,_setValue_unbound:ya.prototype.setValue});Object.assign(ci.prototype,{isAnimationObjectGroup:!0,add:function(){for(var a=this._objects,b=a.length,c=this.nCachedObjects_,d=this._indicesByUUID,e=this._paths,f=this._parsedPaths,g=this._bindings,h=g.length,k=void 0,m=0,n=arguments.length;m!==
+n;++m){var q=arguments[m],u=q.uuid,p=d[u];if(void 0===p){p=b++;d[u]=p;a.push(q);u=0;for(var t=h;u!==t;++u)g[u].push(new ya(q,e[u],f[u]))}else if(p<c){k=a[p];var v=--c;t=a[v];d[t.uuid]=p;a[p]=t;d[u]=v;a[v]=q;u=0;for(t=h;u!==t;++u){var y=g[u],w=y[p];y[p]=y[v];void 0===w&&(w=new ya(q,e[u],f[u]));y[v]=w}}else a[p]!==k&&console.error("THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.")}this.nCachedObjects_=
+c},remove:function(){for(var a=this._objects,b=this.nCachedObjects_,c=this._indicesByUUID,d=this._bindings,e=d.length,f=0,g=arguments.length;f!==g;++f){var h=arguments[f],k=h.uuid,m=c[k];if(void 0!==m&&m>=b){var n=b++,q=a[n];c[q.uuid]=m;a[m]=q;c[k]=n;a[n]=h;h=0;for(k=e;h!==k;++h){q=d[h];var u=q[m];q[m]=q[n];q[n]=u}}}this.nCachedObjects_=b},uncache:function(){for(var a=this._objects,b=a.length,c=this.nCachedObjects_,d=this._indicesByUUID,e=this._bindings,f=e.length,g=0,h=arguments.length;g!==h;++g){var k=
+arguments[g].uuid,m=d[k];if(void 0!==m)if(delete d[k],m<c){k=--c;var n=a[k],q=--b,u=a[q];d[n.uuid]=m;a[m]=n;d[u.uuid]=k;a[k]=u;a.pop();n=0;for(u=f;n!==u;++n){var p=e[n],t=p[q];p[m]=p[k];p[k]=t;p.pop()}}else for(q=--b,u=a[q],d[u.uuid]=m,a[m]=u,a.pop(),n=0,u=f;n!==u;++n)p=e[n],p[m]=p[q],p.pop()}this.nCachedObjects_=c},subscribe_:function(a,b){var c=this._bindingsIndicesByPath,d=c[a],e=this._bindings;if(void 0!==d)return e[d];var f=this._paths,g=this._parsedPaths,h=this._objects,k=this.nCachedObjects_,
+m=Array(h.length);d=e.length;c[a]=d;f.push(a);g.push(b);e.push(m);c=k;for(d=h.length;c!==d;++c)m[c]=new ya(h[c],a,b);return m},unsubscribe_:function(a){var b=this._bindingsIndicesByPath,c=b[a];if(void 0!==c){var d=this._paths,e=this._parsedPaths,f=this._bindings,g=f.length-1,h=f[g];b[a[g]]=c;f[c]=h;f.pop();e[c]=e[g];e.pop();d[c]=d[g];d.pop()}}});Object.assign(di.prototype,{play:function(){this._mixer._activateAction(this);return this},stop:function(){this._mixer._deactivateAction(this);return this.reset()},
+reset:function(){this.paused=!1;this.enabled=!0;this.time=0;this._loopCount=-1;this._startTime=null;return this.stopFading().stopWarping()},isRunning:function(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)},isScheduled:function(){return this._mixer._isActiveAction(this)},startAt:function(a){this._startTime=a;return this},setLoop:function(a,b){this.loop=a;this.repetitions=b;return this},setEffectiveWeight:function(a){this.weight=a;
+this._effectiveWeight=this.enabled?a:0;return this.stopFading()},getEffectiveWeight:function(){return this._effectiveWeight},fadeIn:function(a){return this._scheduleFading(a,0,1)},fadeOut:function(a){return this._scheduleFading(a,1,0)},crossFadeFrom:function(a,b,c){a.fadeOut(b);this.fadeIn(b);if(c){c=this._clip.duration;var d=a._clip.duration,e=c/d;a.warp(1,d/c,b);this.warp(e,1,b)}return this},crossFadeTo:function(a,b,c){return a.crossFadeFrom(this,b,c)},stopFading:function(){var a=this._weightInterpolant;
+null!==a&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(a));return this},setEffectiveTimeScale:function(a){this.timeScale=a;this._effectiveTimeScale=this.paused?0:a;return this.stopWarping()},getEffectiveTimeScale:function(){return this._effectiveTimeScale},setDuration:function(a){this.timeScale=this._clip.duration/a;return this.stopWarping()},syncWith:function(a){this.time=a.time;this.timeScale=a.timeScale;return this.stopWarping()},halt:function(a){return this.warp(this._effectiveTimeScale,
+0,a)},warp:function(a,b,c){var d=this._mixer,e=d.time,f=this._timeScaleInterpolant,g=this.timeScale;null===f&&(this._timeScaleInterpolant=f=d._lendControlInterpolant());d=f.parameterPositions;f=f.sampleValues;d[0]=e;d[1]=e+c;f[0]=a/g;f[1]=b/g;return this},stopWarping:function(){var a=this._timeScaleInterpolant;null!==a&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(a));return this},getMixer:function(){return this._mixer},getClip:function(){return this._clip},getRoot:function(){return this._localRoot||
+this._mixer._root},_update:function(a,b,c,d){if(this.enabled){var e=this._startTime;if(null!==e){b=(a-e)*c;if(0>b||0===c)return;this._startTime=null;b*=c}b*=this._updateTimeScale(a);c=this._updateTime(b);a=this._updateWeight(a);if(0<a){b=this._interpolants;e=this._propertyBindings;for(var f=0,g=b.length;f!==g;++f)b[f].evaluate(c),e[f].accumulate(d,a)}}else this._updateWeight(a)},_updateWeight:function(a){var b=0;if(this.enabled){b=this.weight;var c=this._weightInterpolant;if(null!==c){var d=c.evaluate(a)[0];
+b*=d;a>c.parameterPositions[1]&&(this.stopFading(),0===d&&(this.enabled=!1))}}return this._effectiveWeight=b},_updateTimeScale:function(a){var b=0;if(!this.paused){b=this.timeScale;var c=this._timeScaleInterpolant;if(null!==c){var d=c.evaluate(a)[0];b*=d;a>c.parameterPositions[1]&&(this.stopWarping(),0===b?this.paused=!0:this.timeScale=b)}}return this._effectiveTimeScale=b},_updateTime:function(a){var b=this.time+a,c=this._clip.duration,d=this.loop,e=this._loopCount,f=2202===d;if(0===a)return-1===
+e?b:f&&1===(e&1)?c-b:b;if(2200===d)a:{if(-1===e&&(this._loopCount=0,this._setEndings(!0,!0,!1)),b>=c)b=c;else if(0>b)b=0;else{this.time=b;break a}this.clampWhenFinished?this.paused=!0:this.enabled=!1;this.time=b;this._mixer.dispatchEvent({type:"finished",action:this,direction:0>a?-1:1})}else{-1===e&&(0<=a?(e=0,this._setEndings(!0,0===this.repetitions,f)):this._setEndings(0===this.repetitions,!0,f));if(b>=c||0>b){d=Math.floor(b/c);b-=c*d;e+=Math.abs(d);var g=this.repetitions-e;0>=g?(this.clampWhenFinished?
+this.paused=!0:this.enabled=!1,this.time=b=0<a?c:0,this._mixer.dispatchEvent({type:"finished",action:this,direction:0<a?1:-1})):(1===g?(a=0>a,this._setEndings(a,!a,f)):this._setEndings(!1,!1,f),this._loopCount=e,this.time=b,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:d}))}else this.time=b;if(f&&1===(e&1))return c-b}return b},_setEndings:function(a,b,c){var d=this._interpolantSettings;c?(d.endingStart=2401,d.endingEnd=2401):(d.endingStart=a?this.zeroSlopeAtStart?2401:2400:2402,d.endingEnd=
+b?this.zeroSlopeAtEnd?2401:2400:2402)},_scheduleFading:function(a,b,c){var d=this._mixer,e=d.time,f=this._weightInterpolant;null===f&&(this._weightInterpolant=f=d._lendControlInterpolant());d=f.parameterPositions;f=f.sampleValues;d[0]=e;f[0]=b;d[1]=e+a;f[1]=c;return this}});Fg.prototype=Object.assign(Object.create(Ba.prototype),{constructor:Fg,_bindAction:function(a,b){var c=a._localRoot||this._root,d=a._clip.tracks,e=d.length,f=a._propertyBindings;a=a._interpolants;var g=c.uuid,h=this._bindingsByRootAndName,
+k=h[g];void 0===k&&(k={},h[g]=k);for(h=0;h!==e;++h){var m=d[h],n=m.name,q=k[n];if(void 0===q){q=f[h];if(void 0!==q){null===q._cacheIndex&&(++q.referenceCount,this._addInactiveBinding(q,g,n));continue}q=new Eg(ya.create(c,n,b&&b._propertyBindings[h].binding.parsedPath),m.ValueTypeName,m.getValueSize());++q.referenceCount;this._addInactiveBinding(q,g,n)}f[h]=q;a[h].resultBuffer=q.buffer}},_activateAction:function(a){if(!this._isActiveAction(a)){if(null===a._cacheIndex){var b=(a._localRoot||this._root).uuid,
+c=a._clip.uuid,d=this._actionsByClip[c];this._bindAction(a,d&&d.knownActions[0]);this._addInactiveAction(a,c,b)}b=a._propertyBindings;c=0;for(d=b.length;c!==d;++c){var e=b[c];0===e.useCount++&&(this._lendBinding(e),e.saveOriginalState())}this._lendAction(a)}},_deactivateAction:function(a){if(this._isActiveAction(a)){for(var b=a._propertyBindings,c=0,d=b.length;c!==d;++c){var e=b[c];0===--e.useCount&&(e.restoreOriginalState(),this._takeBackBinding(e))}this._takeBackAction(a)}},_initMemoryManager:function(){this._actions=
+[];this._nActiveActions=0;this._actionsByClip={};this._bindings=[];this._nActiveBindings=0;this._bindingsByRootAndName={};this._controlInterpolants=[];this._nActiveControlInterpolants=0;var a=this;this.stats={actions:{get total(){return a._actions.length},get inUse(){return a._nActiveActions}},bindings:{get total(){return a._bindings.length},get inUse(){return a._nActiveBindings}},controlInterpolants:{get total(){return a._controlInterpolants.length},get inUse(){return a._nActiveControlInterpolants}}}},
+_isActiveAction:function(a){a=a._cacheIndex;return null!==a&&a<this._nActiveActions},_addInactiveAction:function(a,b,c){var d=this._actions,e=this._actionsByClip,f=e[b];void 0===f?(f={knownActions:[a],actionByRoot:{}},a._byClipCacheIndex=0,e[b]=f):(b=f.knownActions,a._byClipCacheIndex=b.length,b.push(a));a._cacheIndex=d.length;d.push(a);f.actionByRoot[c]=a},_removeInactiveAction:function(a){var b=this._actions,c=b[b.length-1],d=a._cacheIndex;c._cacheIndex=d;b[d]=c;b.pop();a._cacheIndex=null;b=a._clip.uuid;
+c=this._actionsByClip;d=c[b];var e=d.knownActions,f=e[e.length-1],g=a._byClipCacheIndex;f._byClipCacheIndex=g;e[g]=f;e.pop();a._byClipCacheIndex=null;delete d.actionByRoot[(a._localRoot||this._root).uuid];0===e.length&&delete c[b];this._removeInactiveBindingsForAction(a)},_removeInactiveBindingsForAction:function(a){a=a._propertyBindings;for(var b=0,c=a.length;b!==c;++b){var d=a[b];0===--d.referenceCount&&this._removeInactiveBinding(d)}},_lendAction:function(a){var b=this._actions,c=a._cacheIndex,
+d=this._nActiveActions++,e=b[d];a._cacheIndex=d;b[d]=a;e._cacheIndex=c;b[c]=e},_takeBackAction:function(a){var b=this._actions,c=a._cacheIndex,d=--this._nActiveActions,e=b[d];a._cacheIndex=d;b[d]=a;e._cacheIndex=c;b[c]=e},_addInactiveBinding:function(a,b,c){var d=this._bindingsByRootAndName,e=d[b],f=this._bindings;void 0===e&&(e={},d[b]=e);e[c]=a;a._cacheIndex=f.length;f.push(a)},_removeInactiveBinding:function(a){var b=this._bindings,c=a.binding,d=c.rootNode.uuid;c=c.path;var e=this._bindingsByRootAndName,
+f=e[d],g=b[b.length-1];a=a._cacheIndex;g._cacheIndex=a;b[a]=g;b.pop();delete f[c];0===Object.keys(f).length&&delete e[d]},_lendBinding:function(a){var b=this._bindings,c=a._cacheIndex,d=this._nActiveBindings++,e=b[d];a._cacheIndex=d;b[d]=a;e._cacheIndex=c;b[c]=e},_takeBackBinding:function(a){var b=this._bindings,c=a._cacheIndex,d=--this._nActiveBindings,e=b[d];a._cacheIndex=d;b[d]=a;e._cacheIndex=c;b[c]=e},_lendControlInterpolant:function(){var a=this._controlInterpolants,b=this._nActiveControlInterpolants++,
+c=a[b];void 0===c&&(c=new ke(new Float32Array(2),new Float32Array(2),1,this._controlInterpolantsResultBuffer),c.__cacheIndex=b,a[b]=c);return c},_takeBackControlInterpolant:function(a){var b=this._controlInterpolants,c=a.__cacheIndex,d=--this._nActiveControlInterpolants,e=b[d];a.__cacheIndex=d;b[d]=a;e.__cacheIndex=c;b[c]=e},_controlInterpolantsResultBuffer:new Float32Array(1),clipAction:function(a,b){var c=b||this._root,d=c.uuid;c="string"===typeof a?Ma.findByName(c,a):a;a=null!==c?c.uuid:a;var e=
+this._actionsByClip[a],f=null;if(void 0!==e){f=e.actionByRoot[d];if(void 0!==f)return f;f=e.knownActions[0];null===c&&(c=f._clip)}if(null===c)return null;b=new di(this,c,b);this._bindAction(b,f);this._addInactiveAction(b,a,d);return b},existingAction:function(a,b){var c=b||this._root;b=c.uuid;c="string"===typeof a?Ma.findByName(c,a):a;a=this._actionsByClip[c?c.uuid:a];return void 0!==a?a.actionByRoot[b]||null:null},stopAllAction:function(){for(var a=this._actions,b=this._nActiveActions,c=this._bindings,
+d=this._nActiveBindings,e=this._nActiveBindings=this._nActiveActions=0;e!==b;++e)a[e].reset();for(e=0;e!==d;++e)c[e].useCount=0;return this},update:function(a){a*=this.timeScale;for(var b=this._actions,c=this._nActiveActions,d=this.time+=a,e=Math.sign(a),f=this._accuIndex^=1,g=0;g!==c;++g)b[g]._update(d,a,e,f);a=this._bindings;b=this._nActiveBindings;for(g=0;g!==b;++g)a[g].apply(f);return this},setTime:function(a){for(var b=this.time=0;b<this._actions.length;b++)this._actions[b].time=0;return this.update(a)},
+getRoot:function(){return this._root},uncacheClip:function(a){var b=this._actions;a=a.uuid;var c=this._actionsByClip,d=c[a];if(void 0!==d){d=d.knownActions;for(var e=0,f=d.length;e!==f;++e){var g=d[e];this._deactivateAction(g);var h=g._cacheIndex,k=b[b.length-1];g._cacheIndex=null;g._byClipCacheIndex=null;k._cacheIndex=h;b[h]=k;b.pop();this._removeInactiveBindingsForAction(g)}delete c[a]}},uncacheRoot:function(a){a=a.uuid;var b=this._actionsByClip;for(d in b){var c=b[d].actionByRoot[a];void 0!==c&&
+(this._deactivateAction(c),this._removeInactiveAction(c))}var d=this._bindingsByRootAndName[a];if(void 0!==d)for(var e in d)a=d[e],a.restoreOriginalState(),this._removeInactiveBinding(a)},uncacheAction:function(a,b){a=this.existingAction(a,b);null!==a&&(this._deactivateAction(a),this._removeInactiveAction(a))}});pf.prototype.clone=function(){return new pf(void 0===this.value.clone?this.value:this.value.clone())};Gg.prototype=Object.assign(Object.create(pb.prototype),{constructor:Gg,isInstancedInterleavedBuffer:!0,
+copy:function(a){pb.prototype.copy.call(this,a);this.meshPerAttribute=a.meshPerAttribute;return this}});Object.assign(ei.prototype,{linePrecision:1,set:function(a,b){this.ray.set(a,b)},setFromCamera:function(a,b){b&&b.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(b.matrixWorld),this.ray.direction.set(a.x,a.y,.5).unproject(b).sub(this.ray.origin).normalize(),this.camera=b):b&&b.isOrthographicCamera?(this.ray.origin.set(a.x,a.y,(b.near+b.far)/(b.near-b.far)).unproject(b),this.ray.direction.set(0,
+0,-1).transformDirection(b.matrixWorld),this.camera=b):console.error("THREE.Raycaster: Unsupported camera type.")},intersectObject:function(a,b,c){c=c||[];Hg(a,this,c,b);c.sort(fi);return c},intersectObjects:function(a,b,c){c=c||[];if(!1===Array.isArray(a))return console.warn("THREE.Raycaster.intersectObjects: objects is not an Array."),c;for(var d=0,e=a.length;d<e;d++)Hg(a[d],this,c,b);c.sort(fi);return c}});Object.assign(gi.prototype,{set:function(a,b,c){this.radius=a;this.phi=b;this.theta=c;return this},
+clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.radius=a.radius;this.phi=a.phi;this.theta=a.theta;return this},makeSafe:function(){this.phi=Math.max(1E-6,Math.min(Math.PI-1E-6,this.phi));return this},setFromVector3:function(a){return this.setFromCartesianCoords(a.x,a.y,a.z)},setFromCartesianCoords:function(a,b,c){this.radius=Math.sqrt(a*a+b*b+c*c);0===this.radius?this.phi=this.theta=0:(this.theta=Math.atan2(a,c),this.phi=Math.acos(P.clamp(b/this.radius,-1,1)));return this}});
+Object.assign(hi.prototype,{set:function(a,b,c){this.radius=a;this.theta=b;this.y=c;return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.radius=a.radius;this.theta=a.theta;this.y=a.y;return this},setFromVector3:function(a){return this.setFromCartesianCoords(a.x,a.y,a.z)},setFromCartesianCoords:function(a,b,c){this.radius=Math.sqrt(a*a+c*c);this.theta=Math.atan2(a,c);this.y=b;return this}});var Ji=new B;Object.assign(Ig.prototype,{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;b<c;b++)this.expandByPoint(a[b]);return this},setFromCenterAndSize:function(a,b){b=Ji.copy(b).multiplyScalar(.5);this.min.copy(a).sub(b);this.max.copy(a).add(b);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.min.copy(a.min);this.max.copy(a.max);return this},makeEmpty:function(){this.min.x=this.min.y=Infinity;this.max.x=this.max.y=-Infinity;return this},isEmpty:function(){return this.max.x<
+this.min.x||this.max.y<this.min.y},getCenter:function(a){void 0===a&&(console.warn("THREE.Box2: .getCenter() target is now required"),a=new B);return this.isEmpty()?a.set(0,0):a.addVectors(this.min,this.max).multiplyScalar(.5)},getSize:function(a){void 0===a&&(console.warn("THREE.Box2: .getSize() target is now required"),a=new B);return this.isEmpty()?a.set(0,0):a.subVectors(this.max,this.min)},expandByPoint:function(a){this.min.min(a);this.max.max(a);return this},expandByVector:function(a){this.min.sub(a);
+this.max.add(a);return this},expandByScalar:function(a){this.min.addScalar(-a);this.max.addScalar(a);return this},containsPoint:function(a){return a.x<this.min.x||a.x>this.max.x||a.y<this.min.y||a.y>this.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},getParameter:function(a,b){void 0===b&&(console.warn("THREE.Box2: .getParameter() target is now required"),b=new B);return b.set((a.x-this.min.x)/(this.max.x-this.min.x),
+(a.y-this.min.y)/(this.max.y-this.min.y))},intersectsBox:function(a){return a.max.x<this.min.x||a.min.x>this.max.x||a.max.y<this.min.y||a.min.y>this.max.y?!1:!0},clampPoint:function(a,b){void 0===b&&(console.warn("THREE.Box2: .clampPoint() target is now required"),b=new B);return b.copy(a).clamp(this.min,this.max)},distanceToPoint:function(a){return Ji.copy(a).clamp(this.min,this.max).sub(a).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)}});var Ki=new n,Nf=new n;Object.assign(Jg.prototype,{set:function(a,b){this.start.copy(a);this.end.copy(b);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.start.copy(a.start);this.end.copy(a.end);return this},getCenter:function(a){void 0===a&&(console.warn("THREE.Line3: .getCenter() target is now required"),
+a=new n);return a.addVectors(this.start,this.end).multiplyScalar(.5)},delta:function(a){void 0===a&&(console.warn("THREE.Line3: .delta() target is now required"),a=new n);return a.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){void 0===b&&(console.warn("THREE.Line3: .at() target is now required"),b=new n);return this.delta(b).multiplyScalar(a).add(this.start)},closestPointToPointParameter:function(a,
+b){Ki.subVectors(a,this.start);Nf.subVectors(this.end,this.start);a=Nf.dot(Nf);a=Nf.dot(Ki)/a;b&&(a=P.clamp(a,0,1));return a},closestPointToPoint:function(a,b,c){a=this.closestPointToPointParameter(a,b);void 0===c&&(console.warn("THREE.Line3: .closestPointToPoint() target is now required"),c=new n);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)}});
+pe.prototype=Object.create(D.prototype);pe.prototype.constructor=pe;pe.prototype.isImmediateRenderObject=!0;var lb=new n,Ab=new n,gh=new Z,Rk=["a","b","c"];qe.prototype=Object.create(X.prototype);qe.prototype.constructor=qe;qe.prototype.update=function(){this.object.updateMatrixWorld(!0);gh.getNormalMatrix(this.object.matrixWorld);var a=this.object.matrixWorld,b=this.geometry.attributes.position,c=this.object.geometry;if(c&&c.isGeometry)for(var d=c.vertices,e=c.faces,f=c=0,g=e.length;f<g;f++)for(var h=
+e[f],k=0,m=h.vertexNormals.length;k<m;k++){var n=h.vertexNormals[k];lb.copy(d[h[Rk[k]]]).applyMatrix4(a);Ab.copy(n).applyMatrix3(gh).normalize().multiplyScalar(this.size).add(lb);b.setXYZ(c,lb.x,lb.y,lb.z);c+=1;b.setXYZ(c,Ab.x,Ab.y,Ab.z);c+=1}else if(c&&c.isBufferGeometry)for(d=c.attributes.position,e=c.attributes.normal,k=c=0,m=d.count;k<m;k++)lb.set(d.getX(k),d.getY(k),d.getZ(k)).applyMatrix4(a),Ab.set(e.getX(k),e.getY(k),e.getZ(k)),Ab.applyMatrix3(gh).normalize().multiplyScalar(this.size).add(lb),
+b.setXYZ(c,lb.x,lb.y,lb.z),c+=1,b.setXYZ(c,Ab.x,Ab.y,Ab.z),c+=1;b.needsUpdate=!0};var Li=new n;ed.prototype=Object.create(D.prototype);ed.prototype.constructor=ed;ed.prototype.dispose=function(){this.cone.geometry.dispose();this.cone.material.dispose()};ed.prototype.update=function(){this.light.updateMatrixWorld();var a=this.light.distance?this.light.distance:1E3,b=a*Math.tan(this.light.angle);this.cone.scale.set(b,b,a);Li.setFromMatrixPosition(this.light.target.matrixWorld);this.cone.lookAt(Li);
+void 0!==this.color?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)};var Ob=new n,Of=new Q,hh=new Q;fd.prototype=Object.create(X.prototype);fd.prototype.constructor=fd;fd.prototype.updateMatrixWorld=function(a){var b=this.bones,c=this.geometry,d=c.getAttribute("position");hh.getInverse(this.root.matrixWorld);for(var e=0,f=0;e<b.length;e++){var g=b[e];g.parent&&g.parent.isBone&&(Of.multiplyMatrices(hh,g.matrixWorld),Ob.setFromMatrixPosition(Of),d.setXYZ(f,Ob.x,
+Ob.y,Ob.z),Of.multiplyMatrices(hh,g.parent.matrixWorld),Ob.setFromMatrixPosition(Of),d.setXYZ(f+1,Ob.x,Ob.y,Ob.z),f+=2)}c.getAttribute("position").needsUpdate=!0;D.prototype.updateMatrixWorld.call(this,a)};gd.prototype=Object.create(ea.prototype);gd.prototype.constructor=gd;gd.prototype.dispose=function(){this.geometry.dispose();this.material.dispose()};gd.prototype.update=function(){void 0!==this.color?this.material.color.set(this.color):this.material.color.copy(this.light.color)};hd.prototype=Object.create(ra.prototype);
+hd.prototype.constructor=hd;hd.prototype.update=function(){this.scale.set(.5*this.light.width,.5*this.light.height,1);if(void 0!==this.color)this.material.color.set(this.color),this.children[0].material.color.set(this.color);else{this.material.color.copy(this.light.color).multiplyScalar(this.light.intensity);var a=this.material.color,b=Math.max(a.r,a.g,a.b);1<b&&a.multiplyScalar(1/b);this.children[0].material.color.copy(this.material.color)}};hd.prototype.dispose=function(){this.geometry.dispose();
+this.material.dispose();this.children[0].geometry.dispose();this.children[0].material.dispose()};var Sk=new n,Mi=new J,Ni=new J;id.prototype=Object.create(D.prototype);id.prototype.constructor=id;id.prototype.dispose=function(){this.children[0].geometry.dispose();this.children[0].material.dispose()};id.prototype.update=function(){var a=this.children[0];if(void 0!==this.color)this.material.color.set(this.color);else{var b=a.geometry.getAttribute("color");Mi.copy(this.light.color);Ni.copy(this.light.groundColor);
+for(var c=0,d=b.count;c<d;c++){var e=c<d/2?Mi:Ni;b.setXYZ(c,e.r,e.g,e.b)}b.needsUpdate=!0}a.lookAt(Sk.setFromMatrixPosition(this.light.matrixWorld).negate())};jd.prototype=Object.create(ea.prototype);jd.prototype.constructor=jd;jd.prototype.dispose=function(){this.geometry.dispose();this.material.dispose()};jd.prototype.onBeforeRender=function(){this.position.copy(this.lightProbe.position);this.scale.set(1,1,1).multiplyScalar(this.size);this.material.uniforms.intensity.value=this.lightProbe.intensity};
+qf.prototype=Object.assign(Object.create(X.prototype),{constructor:qf,copy:function(a){X.prototype.copy.call(this,a);this.geometry.copy(a.geometry);this.material.copy(a.material);return this},clone:function(){return(new this.constructor).copy(this)}});rf.prototype=Object.create(X.prototype);rf.prototype.constructor=rf;kd.prototype=Object.create(ra.prototype);kd.prototype.constructor=kd;kd.prototype.update=function(){function a(a,b,d,e){d=(b-a)/d;p.setXYZ(k,0,0,0);m++;for(n=a;n<b;n+=d)q=k+m,p.setXYZ(q,
+Math.sin(n)*c,0,Math.cos(n)*c),p.setXYZ(q+1,Math.sin(Math.min(n+d,b))*c,0,Math.cos(Math.min(n+d,b))*c),p.setXYZ(q+2,0,0,0),m+=3;u.addGroup(k,m,e);k+=m;m=0}var b=this.audio,c=this.range,d=this.divisionsInnerAngle,e=this.divisionsOuterAngle,f=P.degToRad(b.panner.coneInnerAngle);b=P.degToRad(b.panner.coneOuterAngle);var g=f/2,h=b/2,k=0,m=0,n,q,u=this.geometry,p=u.attributes.position;u.clearGroups();a(-h,-g,e,0);a(-g,g,d,1);a(g,h,e,0);p.needsUpdate=!0;f===b&&(this.material[0].visible=!1)};kd.prototype.dispose=
+function(){this.geometry.dispose();this.material[0].dispose();this.material[1].dispose()};var De=new n,Pf=new n,Oi=new Z;re.prototype=Object.create(X.prototype);re.prototype.constructor=re;re.prototype.update=function(){this.object.updateMatrixWorld(!0);Oi.getNormalMatrix(this.object.matrixWorld);var a=this.object.matrixWorld,b=this.geometry.attributes.position,c=this.object.geometry,d=c.vertices;c=c.faces;for(var e=0,f=0,g=c.length;f<g;f++){var h=c[f],k=h.normal;De.copy(d[h.a]).add(d[h.b]).add(d[h.c]).divideScalar(3).applyMatrix4(a);
+Pf.copy(k).applyMatrix3(Oi).normalize().multiplyScalar(this.size).add(De);b.setXYZ(e,De.x,De.y,De.z);e+=1;b.setXYZ(e,Pf.x,Pf.y,Pf.z);e+=1}b.needsUpdate=!0};var Pi=new n,Qf=new n,Qi=new n;ld.prototype=Object.create(D.prototype);ld.prototype.constructor=ld;ld.prototype.dispose=function(){this.lightPlane.geometry.dispose();this.lightPlane.material.dispose();this.targetLine.geometry.dispose();this.targetLine.material.dispose()};ld.prototype.update=function(){Pi.setFromMatrixPosition(this.light.matrixWorld);
+Qf.setFromMatrixPosition(this.light.target.matrixWorld);Qi.subVectors(Qf,Pi);this.lightPlane.lookAt(Qf);void 0!==this.color?(this.lightPlane.material.color.set(this.color),this.targetLine.material.color.set(this.color)):(this.lightPlane.material.color.copy(this.light.color),this.targetLine.material.color.copy(this.light.color));this.targetLine.lookAt(Qf);this.targetLine.scale.z=Qi.length()};var sf=new n,ka=new bb;se.prototype=Object.create(X.prototype);se.prototype.constructor=se;se.prototype.update=
+function(){var a=this.geometry,b=this.pointMap;ka.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse);oa("c",b,a,ka,0,0,-1);oa("t",b,a,ka,0,0,1);oa("n1",b,a,ka,-1,-1,-1);oa("n2",b,a,ka,1,-1,-1);oa("n3",b,a,ka,-1,1,-1);oa("n4",b,a,ka,1,1,-1);oa("f1",b,a,ka,-1,-1,1);oa("f2",b,a,ka,1,-1,1);oa("f3",b,a,ka,-1,1,1);oa("f4",b,a,ka,1,1,1);oa("u1",b,a,ka,.7,1.1,-1);oa("u2",b,a,ka,-.7,1.1,-1);oa("u3",b,a,ka,0,2,-1);oa("cf1",b,a,ka,-1,0,1);oa("cf2",b,a,ka,1,0,1);oa("cf3",b,a,ka,0,-1,1);oa("cf4",
+b,a,ka,0,1,1);oa("cn1",b,a,ka,-1,0,-1);oa("cn2",b,a,ka,1,0,-1);oa("cn3",b,a,ka,0,-1,-1);oa("cn4",b,a,ka,0,1,-1);a.getAttribute("position").needsUpdate=!0};var Rf=new ab;tb.prototype=Object.create(X.prototype);tb.prototype.constructor=tb;tb.prototype.update=function(a){void 0!==a&&console.warn("THREE.BoxHelper: .update() has no longer arguments.");void 0!==this.object&&Rf.setFromObject(this.object);if(!Rf.isEmpty()){a=Rf.min;var b=Rf.max,c=this.geometry.attributes.position,d=c.array;d[0]=b.x;d[1]=
+b.y;d[2]=b.z;d[3]=a.x;d[4]=b.y;d[5]=b.z;d[6]=a.x;d[7]=a.y;d[8]=b.z;d[9]=b.x;d[10]=a.y;d[11]=b.z;d[12]=b.x;d[13]=b.y;d[14]=a.z;d[15]=a.x;d[16]=b.y;d[17]=a.z;d[18]=a.x;d[19]=a.y;d[20]=a.z;d[21]=b.x;d[22]=a.y;d[23]=a.z;c.needsUpdate=!0;this.geometry.computeBoundingSphere()}};tb.prototype.setFromObject=function(a){this.object=a;this.update();return this};tb.prototype.copy=function(a){X.prototype.copy.call(this,a);this.object=a.object;return this};tb.prototype.clone=function(){return(new this.constructor).copy(this)};
+te.prototype=Object.create(X.prototype);te.prototype.constructor=te;te.prototype.updateMatrixWorld=function(a){var b=this.box;b.isEmpty()||(b.getCenter(this.position),b.getSize(this.scale),this.scale.multiplyScalar(.5),D.prototype.updateMatrixWorld.call(this,a))};ue.prototype=Object.create(ra.prototype);ue.prototype.constructor=ue;ue.prototype.updateMatrixWorld=function(a){var b=-this.plane.constant;1E-8>Math.abs(b)&&(b=1E-8);this.scale.set(.5*this.size,.5*this.size,b);this.children[0].material.side=
+0>b?1:0;this.lookAt(this.plane.normal);D.prototype.updateMatrixWorld.call(this,a)};var Ri=new n,tf,Kg;ub.prototype=Object.create(D.prototype);ub.prototype.constructor=ub;ub.prototype.setDirection=function(a){.99999<a.y?this.quaternion.set(0,0,0,1):-.99999>a.y?this.quaternion.set(1,0,0,0):(Ri.set(a.z,0,-a.x).normalize(),this.quaternion.setFromAxisAngle(Ri,Math.acos(a.y)))};ub.prototype.setLength=function(a,b,c){void 0===b&&(b=.2*a);void 0===c&&(c=.2*b);this.line.scale.set(1,Math.max(1E-4,a-b),1);this.line.updateMatrix();
+this.cone.scale.set(c,b,c);this.cone.position.y=a;this.cone.updateMatrix()};ub.prototype.setColor=function(a){this.line.material.color.set(a);this.cone.material.color.set(a)};ub.prototype.copy=function(a){D.prototype.copy.call(this,a,!1);this.line.copy(a.line);this.cone.copy(a.cone);return this};ub.prototype.clone=function(){return(new this.constructor).copy(this)};ve.prototype=Object.create(X.prototype);ve.prototype.constructor=ve;G.create=function(a,b){console.log("THREE.Curve.create() has been deprecated");
+a.prototype=Object.create(G.prototype);a.prototype.constructor=a;a.prototype.getPoint=b;return a};Object.assign(sb.prototype,{createPointsGeometry:function(a){console.warn("THREE.CurvePath: .createPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");a=this.getPoints(a);return this.createGeometry(a)},createSpacedPointsGeometry:function(a){console.warn("THREE.CurvePath: .createSpacedPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");
+a=this.getSpacedPoints(a);return this.createGeometry(a)},createGeometry:function(a){console.warn("THREE.CurvePath: .createGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");for(var b=new C,c=0,d=a.length;c<d;c++){var e=a[c];b.vertices.push(new n(e.x,e.y,e.z||0))}return b}});Object.assign(Wa.prototype,{fromPoints:function(a){console.warn("THREE.Path: .fromPoints() has been renamed to .setFromPoints().");return this.setFromPoints(a)}});ji.prototype=Object.create(na.prototype);
+ki.prototype=Object.create(na.prototype);Lg.prototype=Object.create(na.prototype);Object.assign(Lg.prototype,{initFromArray:function(){console.error("THREE.Spline: .initFromArray() has been removed.")},getControlPointsArray:function(){console.error("THREE.Spline: .getControlPointsArray() has been removed.")},reparametrizeByArcLength:function(){console.error("THREE.Spline: .reparametrizeByArcLength() has been removed.")}});qf.prototype.setColors=function(){console.error("THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.")};
+fd.prototype.update=function(){console.error("THREE.SkeletonHelper: update() no longer needs to be called.")};Object.assign(V.prototype,{extractUrlBase:function(a){console.warn("THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead.");return eh.extractUrlBase(a)}});V.Handlers={add:function(){console.error("THREE.Loader: Handlers.add() has been removed. Use LoadingManager.addHandler() instead.")},get:function(){console.error("THREE.Loader: Handlers.get() has been removed. Use LoadingManager.getHandler() instead.")}};
+Object.assign(mf.prototype,{setTexturePath:function(a){console.warn("THREE.ObjectLoader: .setTexturePath() has been renamed to .setResourcePath().");return this.setResourcePath(a)}});Object.assign(Ig.prototype,{center:function(a){console.warn("THREE.Box2: .center() has been renamed to .getCenter().");return this.getCenter(a)},empty:function(){console.warn("THREE.Box2: .empty() has been renamed to .isEmpty().");return this.isEmpty()},isIntersectionBox:function(a){console.warn("THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox().");
+return this.intersectsBox(a)},size:function(a){console.warn("THREE.Box2: .size() has been renamed to .getSize().");return this.getSize(a)}});Object.assign(ab.prototype,{center:function(a){console.warn("THREE.Box3: .center() has been renamed to .getCenter().");return this.getCenter(a)},empty:function(){console.warn("THREE.Box3: .empty() has been renamed to .isEmpty().");return this.isEmpty()},isIntersectionBox:function(a){console.warn("THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox().");
+return this.intersectsBox(a)},isIntersectionSphere:function(a){console.warn("THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere().");return this.intersectsSphere(a)},size:function(a){console.warn("THREE.Box3: .size() has been renamed to .getSize().");return this.getSize(a)}});Jg.prototype.center=function(a){console.warn("THREE.Line3: .center() has been renamed to .getCenter().");return this.getCenter(a)};Object.assign(P,{random16:function(){console.warn("THREE.Math: .random16() has been deprecated. Use Math.random() instead.");
+return Math.random()},nearestPowerOfTwo:function(a){console.warn("THREE.Math: .nearestPowerOfTwo() has been renamed to .floorPowerOfTwo().");return P.floorPowerOfTwo(a)},nextPowerOfTwo:function(a){console.warn("THREE.Math: .nextPowerOfTwo() has been renamed to .ceilPowerOfTwo().");return P.ceilPowerOfTwo(a)}});Object.assign(Z.prototype,{flattenToArrayOffset:function(a,b){console.warn("THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.");return this.toArray(a,b)},multiplyVector3:function(a){console.warn("THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.");
+return a.applyMatrix3(this)},multiplyVector3Array:function(){console.error("THREE.Matrix3: .multiplyVector3Array() has been removed.")},applyToBuffer:function(a){console.warn("THREE.Matrix3: .applyToBuffer() has been removed. Use matrix.applyToBufferAttribute( attribute ) instead.");return this.applyToBufferAttribute(a)},applyToVector3Array:function(){console.error("THREE.Matrix3: .applyToVector3Array() has been removed.")}});Object.assign(Q.prototype,{extractPosition:function(a){console.warn("THREE.Matrix4: .extractPosition() has been renamed to .copyPosition().");
+return this.copyPosition(a)},flattenToArrayOffset:function(a,b){console.warn("THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.");return this.toArray(a,b)},getPosition:function(){console.warn("THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.");return(new n).setFromMatrixColumn(this,3)},setRotationFromQuaternion:function(a){console.warn("THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion().");
+return this.makeRotationFromQuaternion(a)},multiplyToArray:function(){console.warn("THREE.Matrix4: .multiplyToArray() has been removed.")},multiplyVector3:function(a){console.warn("THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead.");return a.applyMatrix4(this)},multiplyVector4:function(a){console.warn("THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead.");return a.applyMatrix4(this)},multiplyVector3Array:function(){console.error("THREE.Matrix4: .multiplyVector3Array() has been removed.")},
+rotateAxis:function(a){console.warn("THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead.");a.transformDirection(this)},crossVector:function(a){console.warn("THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead.");return a.applyMatrix4(this)},translate:function(){console.error("THREE.Matrix4: .translate() has been removed.")},rotateX:function(){console.error("THREE.Matrix4: .rotateX() has been removed.")},rotateY:function(){console.error("THREE.Matrix4: .rotateY() has been removed.")},
+rotateZ:function(){console.error("THREE.Matrix4: .rotateZ() has been removed.")},rotateByAxis:function(){console.error("THREE.Matrix4: .rotateByAxis() has been removed.")},applyToBuffer:function(a){console.warn("THREE.Matrix4: .applyToBuffer() has been removed. Use matrix.applyToBufferAttribute( attribute ) instead.");return this.applyToBufferAttribute(a)},applyToVector3Array:function(){console.error("THREE.Matrix4: .applyToVector3Array() has been removed.")},makeFrustum:function(a,b,c,d,e,f){console.warn("THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead.");
+return this.makePerspective(a,b,d,c,e,f)}});Oa.prototype.isIntersectionLine=function(a){console.warn("THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine().");return this.intersectsLine(a)};wa.prototype.multiplyVector3=function(a){console.warn("THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.");return a.applyQuaternion(this)};Object.assign(Rb.prototype,{isIntersectionBox:function(a){console.warn("THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox().");
+return this.intersectsBox(a)},isIntersectionPlane:function(a){console.warn("THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane().");return this.intersectsPlane(a)},isIntersectionSphere:function(a){console.warn("THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere().");return this.intersectsSphere(a)}});Object.assign(ba.prototype,{area:function(){console.warn("THREE.Triangle: .area() has been renamed to .getArea().");return this.getArea()},barycoordFromPoint:function(a,
+b){console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().");return this.getBarycoord(a,b)},midpoint:function(a){console.warn("THREE.Triangle: .midpoint() has been renamed to .getMidpoint().");return this.getMidpoint(a)},normal:function(a){console.warn("THREE.Triangle: .normal() has been renamed to .getNormal().");return this.getNormal(a)},plane:function(a){console.warn("THREE.Triangle: .plane() has been renamed to .getPlane().");return this.getPlane(a)}});Object.assign(ba,
+{barycoordFromPoint:function(a,b,c,d,e){console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().");return ba.getBarycoord(a,b,c,d,e)},normal:function(a,b,c,d){console.warn("THREE.Triangle: .normal() has been renamed to .getNormal().");return ba.getNormal(a,b,c,d)}});Object.assign(Ib.prototype,{extractAllPoints:function(a){console.warn("THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead.");return this.extractPoints(a)},extrude:function(a){console.warn("THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead.");
+return new ec(this,a)},makeGeometry:function(a){console.warn("THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead.");return new fc(this,a)}});Object.assign(B.prototype,{fromAttribute:function(a,b,c){console.warn("THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute().");return this.fromBufferAttribute(a,b,c)},distanceToManhattan:function(a){console.warn("THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo().");return this.manhattanDistanceTo(a)},
+lengthManhattan:function(){console.warn("THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength().");return this.manhattanLength()}});Object.assign(n.prototype,{setEulerFromRotationMatrix:function(){console.error("THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.")},setEulerFromQuaternion:function(){console.error("THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.")},getPositionFromMatrix:function(a){console.warn("THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition().");
+return this.setFromMatrixPosition(a)},getScaleFromMatrix:function(a){console.warn("THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale().");return this.setFromMatrixScale(a)},getColumnFromMatrix:function(a,b){console.warn("THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn().");return this.setFromMatrixColumn(b,a)},applyProjection:function(a){console.warn("THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead.");return this.applyMatrix4(a)},
+fromAttribute:function(a,b,c){console.warn("THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute().");return this.fromBufferAttribute(a,b,c)},distanceToManhattan:function(a){console.warn("THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo().");return this.manhattanDistanceTo(a)},lengthManhattan:function(){console.warn("THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength().");return this.manhattanLength()}});Object.assign(da.prototype,
+{fromAttribute:function(a,b,c){console.warn("THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute().");return this.fromBufferAttribute(a,b,c)},lengthManhattan:function(){console.warn("THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength().");return this.manhattanLength()}});Object.assign(C.prototype,{computeTangents:function(){console.error("THREE.Geometry: .computeTangents() has been removed.")},computeLineDistances:function(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")}});
+Object.assign(D.prototype,{getChildByName:function(a){console.warn("THREE.Object3D: .getChildByName() has been renamed to .getObjectByName().");return this.getObjectByName(a)},renderDepth:function(){console.warn("THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.")},translate:function(a,b){console.warn("THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead.");return this.translateOnAxis(b,a)},getWorldRotation:function(){console.error("THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.")}});
+Object.defineProperties(D.prototype,{eulerOrder:{get:function(){console.warn("THREE.Object3D: .eulerOrder is now .rotation.order.");return this.rotation.order},set:function(a){console.warn("THREE.Object3D: .eulerOrder is now .rotation.order.");this.rotation.order=a}},useQuaternion:{get:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")},set:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")}}});
+Object.defineProperties(Od.prototype,{objects:{get:function(){console.warn("THREE.LOD: .objects has been renamed to .levels.");return this.levels}}});Object.defineProperty(Oe.prototype,"useVertexTexture",{get:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")},set:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")}});Pd.prototype.initBones=function(){console.error("THREE.SkinnedMesh: initBones() has been removed.")};Object.defineProperty(G.prototype,
+"__arcLengthDivisions",{get:function(){console.warn("THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions.");return this.arcLengthDivisions},set:function(a){console.warn("THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions.");this.arcLengthDivisions=a}});U.prototype.setLens=function(a,b){console.warn("THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup.");void 0!==b&&(this.filmGauge=b);this.setFocalLength(a)};Object.defineProperties(T.prototype,
+{onlyShadow:{set:function(){console.warn("THREE.Light: .onlyShadow has been removed.")}},shadowCameraFov:{set:function(a){console.warn("THREE.Light: .shadowCameraFov is now .shadow.camera.fov.");this.shadow.camera.fov=a}},shadowCameraLeft:{set:function(a){console.warn("THREE.Light: .shadowCameraLeft is now .shadow.camera.left.");this.shadow.camera.left=a}},shadowCameraRight:{set:function(a){console.warn("THREE.Light: .shadowCameraRight is now .shadow.camera.right.");this.shadow.camera.right=a}},shadowCameraTop:{set:function(a){console.warn("THREE.Light: .shadowCameraTop is now .shadow.camera.top.");
+this.shadow.camera.top=a}},shadowCameraBottom:{set:function(a){console.warn("THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom.");this.shadow.camera.bottom=a}},shadowCameraNear:{set:function(a){console.warn("THREE.Light: .shadowCameraNear is now .shadow.camera.near.");this.shadow.camera.near=a}},shadowCameraFar:{set:function(a){console.warn("THREE.Light: .shadowCameraFar is now .shadow.camera.far.");this.shadow.camera.far=a}},shadowCameraVisible:{set:function(){console.warn("THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.")}},
+shadowBias:{set:function(a){console.warn("THREE.Light: .shadowBias is now .shadow.bias.");this.shadow.bias=a}},shadowDarkness:{set:function(){console.warn("THREE.Light: .shadowDarkness has been removed.")}},shadowMapWidth:{set:function(a){console.warn("THREE.Light: .shadowMapWidth is now .shadow.mapSize.width.");this.shadow.mapSize.width=a}},shadowMapHeight:{set:function(a){console.warn("THREE.Light: .shadowMapHeight is now .shadow.mapSize.height.");this.shadow.mapSize.height=a}}});Object.defineProperties(N.prototype,
+{length:{get:function(){console.warn("THREE.BufferAttribute: .length has been deprecated. Use .count instead.");return this.array.length}},dynamic:{get:function(){console.warn("THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.");return 35048===this.usage},set:function(){console.warn("THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.");this.setUsage(35048)}}});Object.assign(N.prototype,{setDynamic:function(a){console.warn("THREE.BufferAttribute: .setDynamic() has been deprecated. Use .setUsage() instead.");
+this.setUsage(!0===a?35048:35044);return this},copyIndicesArray:function(){console.error("THREE.BufferAttribute: .copyIndicesArray() has been removed.")},setArray:function(){console.error("THREE.BufferAttribute: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers")}});Object.assign(E.prototype,{addIndex:function(a){console.warn("THREE.BufferGeometry: .addIndex() has been renamed to .setIndex().");this.setIndex(a)},addAttribute:function(a,b,c){console.warn("THREE.BufferGeometry: .addAttribute() has been renamed to .setAttribute().");
+return b&&b.isBufferAttribute||b&&b.isInterleavedBufferAttribute?"index"===a?(console.warn("THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute."),this.setIndex(b),this):this.setAttribute(a,b):(console.warn("THREE.BufferGeometry: .addAttribute() now expects ( name, attribute )."),this.setAttribute(a,new N(b,c)))},addDrawCall:function(a,b,c){void 0!==c&&console.warn("THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset.");console.warn("THREE.BufferGeometry: .addDrawCall() is now .addGroup().");
+this.addGroup(a,b)},clearDrawCalls:function(){console.warn("THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups().");this.clearGroups()},computeTangents:function(){console.warn("THREE.BufferGeometry: .computeTangents() has been removed.")},computeOffsets:function(){console.warn("THREE.BufferGeometry: .computeOffsets() has been removed.")},removeAttribute:function(a){console.warn("THREE.BufferGeometry: .removeAttribute() has been renamed to .deleteAttribute().");return this.deleteAttribute(a)}});
+Object.defineProperties(E.prototype,{drawcalls:{get:function(){console.error("THREE.BufferGeometry: .drawcalls has been renamed to .groups.");return this.groups}},offsets:{get:function(){console.warn("THREE.BufferGeometry: .offsets has been renamed to .groups.");return this.groups}}});Object.defineProperties(pb.prototype,{dynamic:{get:function(){console.warn("THREE.InterleavedBuffer: .length has been deprecated. Use .usage instead.");return 35048===this.usage},set:function(a){console.warn("THREE.InterleavedBuffer: .length has been deprecated. Use .usage instead.");
+this.setUsage(a)}}});Object.assign(pb.prototype,{setDynamic:function(a){console.warn("THREE.InterleavedBuffer: .setDynamic() has been deprecated. Use .setUsage() instead.");this.setUsage(!0===a?35048:35044);return this},setArray:function(){console.error("THREE.InterleavedBuffer: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers")}});Object.assign(db.prototype,{getArrays:function(){console.error("THREE.ExtrudeBufferGeometry: .getArrays() has been removed.")},
+addShapeList:function(){console.error("THREE.ExtrudeBufferGeometry: .addShapeList() has been removed.")},addShape:function(){console.error("THREE.ExtrudeBufferGeometry: .addShape() has been removed.")}});Object.defineProperties(pf.prototype,{dynamic:{set:function(){console.warn("THREE.Uniform: .dynamic has been removed. Use object.onBeforeRender() instead.")}},onUpdate:{value:function(){console.warn("THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead.");return this}}});
+Object.defineProperties(O.prototype,{wrapAround:{get:function(){console.warn("THREE.Material: .wrapAround has been removed.")},set:function(){console.warn("THREE.Material: .wrapAround has been removed.")}},overdraw:{get:function(){console.warn("THREE.Material: .overdraw has been removed.")},set:function(){console.warn("THREE.Material: .overdraw has been removed.")}},wrapRGB:{get:function(){console.warn("THREE.Material: .wrapRGB has been removed.");return new J}},shading:{get:function(){console.error("THREE."+
+this.type+": .shading has been removed. Use the boolean .flatShading instead.")},set:function(a){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead.");this.flatShading=1===a}},stencilMask:{get:function(){console.warn("THREE."+this.type+": .stencilMask has been removed. Use .stencilFuncMask instead.");return this.stencilFuncMask},set:function(a){console.warn("THREE."+this.type+": .stencilMask has been removed. Use .stencilFuncMask instead.");this.stencilFuncMask=
+a}}});Object.defineProperties(Ra.prototype,{metal:{get:function(){console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead.");return!1},set:function(){console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead")}}});Object.defineProperties(va.prototype,{derivatives:{get:function(){console.warn("THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives.");return this.extensions.derivatives},
+set:function(a){console.warn("THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives.");this.extensions.derivatives=a}}});Object.assign(hg.prototype,{clearTarget:function(a,b,c,d){console.warn("THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead.");this.setRenderTarget(a);this.clear(b,c,d)},animate:function(a){console.warn("THREE.WebGLRenderer: .animate() is now .setAnimationLoop().");this.setAnimationLoop(a)},getCurrentRenderTarget:function(){console.warn("THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget().");
+return this.getRenderTarget()},getMaxAnisotropy:function(){console.warn("THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy().");return this.capabilities.getMaxAnisotropy()},getPrecision:function(){console.warn("THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision.");return this.capabilities.precision},resetGLState:function(){console.warn("THREE.WebGLRenderer: .resetGLState() is now .state.reset().");return this.state.reset()},supportsFloatTextures:function(){console.warn("THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' ).");
+return this.extensions.get("OES_texture_float")},supportsHalfFloatTextures:function(){console.warn("THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' ).");return this.extensions.get("OES_texture_half_float")},supportsStandardDerivatives:function(){console.warn("THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' ).");return this.extensions.get("OES_standard_derivatives")},supportsCompressedTextureS3TC:function(){console.warn("THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( 'WEBGL_compressed_texture_s3tc' ).");
+return this.extensions.get("WEBGL_compressed_texture_s3tc")},supportsCompressedTexturePVRTC:function(){console.warn("THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( 'WEBGL_compressed_texture_pvrtc' ).");return this.extensions.get("WEBGL_compressed_texture_pvrtc")},supportsBlendMinMax:function(){console.warn("THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( 'EXT_blend_minmax' ).");return this.extensions.get("EXT_blend_minmax")},supportsVertexTextures:function(){console.warn("THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures.");
+return this.capabilities.vertexTextures},supportsInstancedArrays:function(){console.warn("THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( 'ANGLE_instanced_arrays' ).");return this.extensions.get("ANGLE_instanced_arrays")},enableScissorTest:function(a){console.warn("THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest().");this.setScissorTest(a)},initMaterial:function(){console.warn("THREE.WebGLRenderer: .initMaterial() has been removed.")},addPrePlugin:function(){console.warn("THREE.WebGLRenderer: .addPrePlugin() has been removed.")},
+addPostPlugin:function(){console.warn("THREE.WebGLRenderer: .addPostPlugin() has been removed.")},updateShadowMap:function(){console.warn("THREE.WebGLRenderer: .updateShadowMap() has been removed.")},setFaceCulling:function(){console.warn("THREE.WebGLRenderer: .setFaceCulling() has been removed.")},allocTextureUnit:function(){console.warn("THREE.WebGLRenderer: .allocTextureUnit() has been removed.")},setTexture:function(){console.warn("THREE.WebGLRenderer: .setTexture() has been removed.")},setTexture2D:function(){console.warn("THREE.WebGLRenderer: .setTexture2D() has been removed.")},
+setTextureCube:function(){console.warn("THREE.WebGLRenderer: .setTextureCube() has been removed.")},getActiveMipMapLevel:function(){console.warn("THREE.WebGLRenderer: .getActiveMipMapLevel() is now .getActiveMipmapLevel().");return this.getActiveMipmapLevel()}});Object.defineProperties(hg.prototype,{shadowMapEnabled:{get:function(){return this.shadowMap.enabled},set:function(a){console.warn("THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled.");this.shadowMap.enabled=a}},shadowMapType:{get:function(){return this.shadowMap.type},
+set:function(a){console.warn("THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type.");this.shadowMap.type=a}},shadowMapCullFace:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.")}},context:{get:function(){console.warn("THREE.WebGLRenderer: .context has been removed. Use .getContext() instead.");return this.getContext()}}});
+Object.defineProperties(Ih.prototype,{cullFace:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.")}},renderReverseSided:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.")}},
+renderSingleSided:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.")}}});Object.defineProperties(Bb.prototype,{activeCubeFace:{set:function(){console.warn("THREE.WebGLRenderTargetCube: .activeCubeFace has been removed. It is now the second parameter of WebGLRenderer.setRenderTarget().")}},
+activeMipMapLevel:{set:function(){console.warn("THREE.WebGLRenderTargetCube: .activeMipMapLevel has been removed. It is now the third parameter of WebGLRenderer.setRenderTarget().")}}});Object.defineProperties(la.prototype,{wrapS:{get:function(){console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.");return this.texture.wrapS},set:function(a){console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.");this.texture.wrapS=a}},wrapT:{get:function(){console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.");
+return this.texture.wrapT},set:function(a){console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.");this.texture.wrapT=a}},magFilter:{get:function(){console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.");return this.texture.magFilter},set:function(a){console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.");this.texture.magFilter=a}},minFilter:{get:function(){console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.");return this.texture.minFilter},
+set:function(a){console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.");this.texture.minFilter=a}},anisotropy:{get:function(){console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.");return this.texture.anisotropy},set:function(a){console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.");this.texture.anisotropy=a}},offset:{get:function(){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset.");return this.texture.offset},
+set:function(a){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset.");this.texture.offset=a}},repeat:{get:function(){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat.");return this.texture.repeat},set:function(a){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat.");this.texture.repeat=a}},format:{get:function(){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format.");return this.texture.format},set:function(a){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format.");
+this.texture.format=a}},type:{get:function(){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type.");return this.texture.type},set:function(a){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type.");this.texture.type=a}},generateMipmaps:{get:function(){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.");return this.texture.generateMipmaps},set:function(a){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.");
+this.texture.generateMipmaps=a}}});Object.defineProperties(gg.prototype,{standing:{set:function(){console.warn("THREE.WebVRManager: .standing has been removed.")}},userHeight:{set:function(){console.warn("THREE.WebVRManager: .userHeight has been removed.")}}});Object.defineProperties(dd.prototype,{load:{value:function(a){console.warn("THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.");var b=this;(new nf).load(a,function(a){b.setBuffer(a)});return this}},startTime:{set:function(){console.warn("THREE.Audio: .startTime is now .play( delay ).")}}});
+Dg.prototype.getData=function(){console.warn("THREE.AudioAnalyser: .getData() is now .getFrequencyData().");return this.getFrequencyData()};Cc.prototype.updateCubeMap=function(a,b){console.warn("THREE.CubeCamera: .updateCubeMap() is now .update().");return this.update(a,b)};Jb.crossOrigin=void 0;Jb.loadTexture=function(a,b,c,d){console.warn("THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.");var e=new Ze;e.setCrossOrigin(this.crossOrigin);a=e.load(a,c,void 0,d);
+b&&(a.mapping=b);return a};Jb.loadTextureCube=function(a,b,c,d){console.warn("THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.");var e=new Ye;e.setCrossOrigin(this.crossOrigin);a=e.load(a,c,void 0,d);b&&(a.mapping=b);return a};Jb.loadCompressedTexture=function(){console.error("THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.")};Jb.loadCompressedTextureCube=function(){console.error("THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.")};
+"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:"110dev"}}));k.ACESFilmicToneMapping=5;k.AddEquation=100;k.AddOperation=2;k.AdditiveBlending=2;k.AlphaFormat=1021;k.AlwaysDepth=1;k.AlwaysStencilFunc=519;k.AmbientLight=ff;k.AmbientLightProbe=yg;k.AnimationClip=Ma;k.AnimationLoader=pg;k.AnimationMixer=Fg;k.AnimationObjectGroup=ci;k.AnimationUtils=ta;k.ArcCurve=cd;k.ArrayCamera=Kd;k.ArrowHelper=ub;k.Audio=dd;k.AudioAnalyser=Dg;k.AudioContext=
+Bg;k.AudioListener=Ag;k.AudioLoader=nf;k.AxesHelper=ve;k.AxisHelper=function(a){console.warn("THREE.AxisHelper has been renamed to THREE.AxesHelper.");return new ve(a)};k.BackSide=1;k.BasicDepthPacking=3200;k.BasicShadowMap=0;k.BinaryTextureLoader=function(a){console.warn("THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader.");return new Xe(a)};k.Bone=ig;k.BooleanKeyframeTrack=Te;k.BoundingBoxHelper=function(a,b){console.warn("THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead.");
+return new tb(a,b)};k.Box2=Ig;k.Box3=ab;k.Box3Helper=te;k.BoxBufferGeometry=Gd;k.BoxGeometry=Zg;k.BoxHelper=tb;k.BufferAttribute=N;k.BufferGeometry=E;k.BufferGeometryLoader=lf;k.ByteType=1010;k.Cache=tc;k.Camera=bb;k.CameraHelper=se;k.CanvasRenderer=function(){console.error("THREE.CanvasRenderer has been removed")};k.CanvasTexture=Qd;k.CatmullRomCurve3=na;k.CineonToneMapping=4;k.CircleBufferGeometry=Yc;k.CircleGeometry=je;k.ClampToEdgeWrapping=1001;k.Clock=zg;k.ClosedSplineCurve3=ji;k.Color=J;k.ColorKeyframeTrack=
+Ue;k.CompressedTexture=Lc;k.CompressedTextureLoader=qg;k.ConeBufferGeometry=ie;k.ConeGeometry=he;k.CubeCamera=Cc;k.CubeGeometry=Zg;k.CubeReflectionMapping=301;k.CubeRefractionMapping=302;k.CubeTexture=nb;k.CubeTextureLoader=Ye;k.CubeUVReflectionMapping=306;k.CubeUVRefractionMapping=307;k.CubicBezierCurve=Sa;k.CubicBezierCurve3=fb;k.CubicInterpolant=Re;k.CullFaceBack=1;k.CullFaceFront=2;k.CullFaceFrontBack=3;k.CullFaceNone=0;k.Curve=G;k.CurvePath=sb;k.CustomBlending=5;k.CylinderBufferGeometry=rb;k.CylinderGeometry=
+hc;k.Cylindrical=hi;k.DataTexture=Yb;k.DataTexture2DArray=Dc;k.DataTexture3D=Ec;k.DataTextureLoader=Xe;k.DecrementStencilOp=7683;k.DecrementWrapStencilOp=34056;k.DefaultLoadingManager=Zh;k.DepthFormat=1026;k.DepthStencilFormat=1027;k.DepthTexture=Rd;k.DirectionalLight=ef;k.DirectionalLightHelper=ld;k.DirectionalLightShadow=df;k.DiscreteInterpolant=Se;k.DodecahedronBufferGeometry=Qc;k.DodecahedronGeometry=Wd;k.DoubleSide=2;k.DstAlphaFactor=206;k.DstColorFactor=208;k.DynamicBufferAttribute=function(a,
+b){console.warn("THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setDynamic( true ) instead.");return(new N(a,b)).setDynamic(!0)};k.DynamicCopyUsage=35050;k.DynamicDrawUsage=35048;k.DynamicReadUsage=35049;k.EdgesGeometry=Xc;k.EdgesHelper=function(a,b){console.warn("THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead.");return new X(new Xc(a.geometry),new R({color:void 0!==b?b:16777215}))};k.EllipseCurve=Ja;k.EqualDepth=4;k.EqualStencilFunc=514;k.EquirectangularReflectionMapping=
+303;k.EquirectangularRefractionMapping=304;k.Euler=Pb;k.EventDispatcher=Ba;k.ExtrudeBufferGeometry=db;k.ExtrudeGeometry=ec;k.Face3=yc;k.Face4=function(a,b,c,d,e,f,g){console.warn("THREE.Face4 has been removed. A THREE.Face3 will be created instead.");return new yc(a,b,c,e,f,g)};k.FaceColors=1;k.FaceNormalsHelper=re;k.FileLoader=Na;k.FlatShading=1;k.Float32Attribute=function(a,b){console.warn("THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead.");return new A(a,
+b)};k.Float32BufferAttribute=A;k.Float64Attribute=function(a,b){console.warn("THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead.");return new Cd(a,b)};k.Float64BufferAttribute=Cd;k.FloatType=1015;k.Fog=Me;k.FogExp2=Le;k.Font=vg;k.FontLoader=wg;k.FrontFaceDirectionCCW=1;k.FrontFaceDirectionCW=0;k.FrontSide=0;k.Frustum=Ed;k.GammaEncoding=3007;k.Geometry=C;k.GeometryUtils={merge:function(a,b,c){console.warn("THREE.GeometryUtils: .merge() has been moved to Geometry. Use geometry.merge( geometry2, matrix, materialIndexOffset ) instead.");
+if(b.isMesh){b.matrixAutoUpdate&&b.updateMatrix();var d=b.matrix;b=b.geometry}a.merge(b,d,c)},center:function(a){console.warn("THREE.GeometryUtils: .center() has been moved to Geometry. Use geometry.center() instead.");return a.center()}};k.GreaterDepth=6;k.GreaterEqualDepth=5;k.GreaterEqualStencilFunc=518;k.GreaterStencilFunc=516;k.GridHelper=qf;k.Group=Hc;k.HalfFloatType=1016;k.HemisphereLight=$e;k.HemisphereLightHelper=id;k.HemisphereLightProbe=xg;k.IcosahedronBufferGeometry=Pc;k.IcosahedronGeometry=
+Vd;k.ImageBitmapLoader=tg;k.ImageLoader=bd;k.ImageUtils=Jb;k.ImmediateRenderObject=pe;k.IncrementStencilOp=7682;k.IncrementWrapStencilOp=34055;k.InstancedBufferAttribute=kf;k.InstancedBufferGeometry=jf;k.InstancedInterleavedBuffer=Gg;k.InstancedMesh=Pe;k.Int16Attribute=function(a,b){console.warn("THREE.Int16Attribute has been removed. Use new THREE.Int16BufferAttribute() instead.");return new Ad(a,b)};k.Int16BufferAttribute=Ad;k.Int32Attribute=function(a,b){console.warn("THREE.Int32Attribute has been removed. Use new THREE.Int32BufferAttribute() instead.");
+return new Bd(a,b)};k.Int32BufferAttribute=Bd;k.Int8Attribute=function(a,b){console.warn("THREE.Int8Attribute has been removed. Use new THREE.Int8BufferAttribute() instead.");return new xd(a,b)};k.Int8BufferAttribute=xd;k.IntType=1013;k.InterleavedBuffer=pb;k.InterleavedBufferAttribute=Ld;k.Interpolant=Ia;k.InterpolateDiscrete=2300;k.InterpolateLinear=2301;k.InterpolateSmooth=2302;k.InvertStencilOp=5386;k.JSONLoader=function(){console.error("THREE.JSONLoader has been removed.")};k.KeepStencilOp=7680;
+k.KeyframeTrack=sa;k.LOD=Od;k.LatheBufferGeometry=Wc;k.LatheGeometry=ge;k.Layers=Tf;k.LensFlare=function(){console.error("THREE.LensFlare has been moved to /examples/js/objects/Lensflare.js")};k.LessDepth=2;k.LessEqualDepth=3;k.LessEqualStencilFunc=515;k.LessStencilFunc=513;k.Light=T;k.LightProbe=Xa;k.LightProbeHelper=jd;k.LightShadow=hb;k.Line=ra;k.Line3=Jg;k.LineBasicMaterial=R;k.LineCurve=Da;k.LineCurve3=Ta;k.LineDashedMaterial=oc;k.LineLoop=Qe;k.LinePieces=1;k.LineSegments=X;k.LineStrip=0;k.LinearEncoding=
+3E3;k.LinearFilter=1006;k.LinearInterpolant=ke;k.LinearMipMapLinearFilter=1008;k.LinearMipMapNearestFilter=1007;k.LinearMipmapLinearFilter=1008;k.LinearMipmapNearestFilter=1007;k.LinearToneMapping=1;k.Loader=V;k.LoaderUtils=eh;k.LoadingManager=og;k.LogLuvEncoding=3003;k.LoopOnce=2200;k.LoopPingPong=2202;k.LoopRepeat=2201;k.LuminanceAlphaFormat=1025;k.LuminanceFormat=1024;k.MOUSE={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2};k.Material=O;k.MaterialLoader=hf;k.Math=P;k.Matrix3=Z;k.Matrix4=Q;k.MaxEquation=
+104;k.Mesh=ea;k.MeshBasicMaterial=Ga;k.MeshDepthMaterial=Db;k.MeshDistanceMaterial=Eb;k.MeshFaceMaterial=function(a){console.warn("THREE.MeshFaceMaterial has been removed. Use an Array instead.");return a};k.MeshLambertMaterial=mc;k.MeshMatcapMaterial=nc;k.MeshNormalMaterial=lc;k.MeshPhongMaterial=Ra;k.MeshPhysicalMaterial=jc;k.MeshStandardMaterial=eb;k.MeshToonMaterial=kc;k.MinEquation=103;k.MirroredRepeatWrapping=1002;k.MixOperation=1;k.MultiMaterial=function(a){void 0===a&&(a=[]);console.warn("THREE.MultiMaterial has been removed. Use an Array instead.");
+a.isMultiMaterial=!0;a.materials=a;a.clone=function(){return a.slice()};return a};k.MultiplyBlending=4;k.MultiplyOperation=0;k.NearestFilter=1003;k.NearestMipMapLinearFilter=1005;k.NearestMipMapNearestFilter=1004;k.NearestMipmapLinearFilter=1005;k.NearestMipmapNearestFilter=1004;k.NeverDepth=0;k.NeverStencilFunc=512;k.NoBlending=0;k.NoColors=0;k.NoToneMapping=0;k.NormalBlending=1;k.NotEqualDepth=7;k.NotEqualStencilFunc=517;k.NumberKeyframeTrack=$c;k.Object3D=D;k.ObjectLoader=mf;k.ObjectSpaceNormalMap=
+1;k.OctahedronBufferGeometry=bc;k.OctahedronGeometry=Ud;k.OneFactor=201;k.OneMinusDstAlphaFactor=207;k.OneMinusDstColorFactor=209;k.OneMinusSrcAlphaFactor=205;k.OneMinusSrcColorFactor=203;k.OrthographicCamera=oe;k.PCFShadowMap=1;k.PCFSoftShadowMap=2;k.ParametricBufferGeometry=ac;k.ParametricGeometry=Nc;k.Particle=function(a){console.warn("THREE.Particle has been renamed to THREE.Sprite.");return new Md(a)};k.ParticleBasicMaterial=function(a){console.warn("THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial.");
+return new Qa(a)};k.ParticleSystem=function(a,b){console.warn("THREE.ParticleSystem has been renamed to THREE.Points.");return new Kc(a,b)};k.ParticleSystemMaterial=function(a){console.warn("THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial.");return new Qa(a)};k.Path=Wa;k.PerspectiveCamera=U;k.Plane=Oa;k.PlaneBufferGeometry=Zb;k.PlaneGeometry=Fd;k.PlaneHelper=ue;k.PointCloud=function(a,b){console.warn("THREE.PointCloud has been renamed to THREE.Points.");return new Kc(a,b)};k.PointCloudMaterial=
+function(a){console.warn("THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial.");return new Qa(a)};k.PointLight=cf;k.PointLightHelper=gd;k.Points=Kc;k.PointsMaterial=Qa;k.PolarGridHelper=rf;k.PolyhedronBufferGeometry=Ea;k.PolyhedronGeometry=Sd;k.PositionalAudio=Cg;k.PositionalAudioHelper=kd;k.PropertyBinding=ya;k.PropertyMixer=Eg;k.QuadraticBezierCurve=Ua;k.QuadraticBezierCurve3=gb;k.Quaternion=wa;k.QuaternionKeyframeTrack=le;k.QuaternionLinearInterpolant=Ve;k.REVISION="110dev";k.RGBADepthPacking=
+3201;k.RGBAFormat=1023;k.RGBA_ASTC_10x10_Format=37819;k.RGBA_ASTC_10x5_Format=37816;k.RGBA_ASTC_10x6_Format=37817;k.RGBA_ASTC_10x8_Format=37818;k.RGBA_ASTC_12x10_Format=37820;k.RGBA_ASTC_12x12_Format=37821;k.RGBA_ASTC_4x4_Format=37808;k.RGBA_ASTC_5x4_Format=37809;k.RGBA_ASTC_5x5_Format=37810;k.RGBA_ASTC_6x5_Format=37811;k.RGBA_ASTC_6x6_Format=37812;k.RGBA_ASTC_8x5_Format=37813;k.RGBA_ASTC_8x6_Format=37814;k.RGBA_ASTC_8x8_Format=37815;k.RGBA_PVRTC_2BPPV1_Format=35843;k.RGBA_PVRTC_4BPPV1_Format=35842;
+k.RGBA_S3TC_DXT1_Format=33777;k.RGBA_S3TC_DXT3_Format=33778;k.RGBA_S3TC_DXT5_Format=33779;k.RGBDEncoding=3006;k.RGBEEncoding=3002;k.RGBEFormat=1023;k.RGBFormat=1022;k.RGBM16Encoding=3005;k.RGBM7Encoding=3004;k.RGB_ETC1_Format=36196;k.RGB_PVRTC_2BPPV1_Format=35841;k.RGB_PVRTC_4BPPV1_Format=35840;k.RGB_S3TC_DXT1_Format=33776;k.RawShaderMaterial=Zc;k.Ray=Rb;k.Raycaster=ei;k.RectAreaLight=gf;k.RectAreaLightHelper=hd;k.RedFormat=1028;k.ReinhardToneMapping=2;k.RepeatWrapping=1E3;k.ReplaceStencilOp=7681;
+k.ReverseSubtractEquation=102;k.RingBufferGeometry=Vc;k.RingGeometry=fe;k.Scene=wd;k.SceneUtils={createMultiMaterialObject:function(){console.error("THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js")},detach:function(){console.error("THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js")},attach:function(){console.error("THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js")}};k.ShaderChunk=S;k.ShaderLib=cb;k.ShaderMaterial=va;k.ShadowMaterial=ic;k.Shape=
+Ib;k.ShapeBufferGeometry=gc;k.ShapeGeometry=fc;k.ShapePath=ug;k.ShapeUtils=qb;k.ShortType=1011;k.Skeleton=Oe;k.SkeletonHelper=fd;k.SkinnedMesh=Pd;k.SmoothShading=2;k.Sphere=mb;k.SphereBufferGeometry=Hb;k.SphereGeometry=ee;k.Spherical=gi;k.SphericalHarmonics3=of;k.SphericalReflectionMapping=305;k.Spline=Lg;k.SplineCurve=Va;k.SplineCurve3=ki;k.SpotLight=bf;k.SpotLightHelper=ed;k.SpotLightShadow=af;k.Sprite=Md;k.SpriteMaterial=Gb;k.SrcAlphaFactor=204;k.SrcAlphaSaturateFactor=210;k.SrcColorFactor=202;
+k.StaticCopyUsage=35046;k.StaticDrawUsage=35044;k.StaticReadUsage=35045;k.StereoCamera=ai;k.StreamCopyUsage=35042;k.StreamDrawUsage=35040;k.StreamReadUsage=35041;k.StringKeyframeTrack=We;k.SubtractEquation=101;k.SubtractiveBlending=3;k.TOUCH={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3};k.TangentSpaceNormalMap=0;k.TetrahedronBufferGeometry=Oc;k.TetrahedronGeometry=Td;k.TextBufferGeometry=Uc;k.TextGeometry=de;k.Texture=Y;k.TextureLoader=Ze;k.TorusBufferGeometry=Sc;k.TorusGeometry=Zd;k.TorusKnotBufferGeometry=
+Rc;k.TorusKnotGeometry=Yd;k.Triangle=ba;k.TriangleFanDrawMode=2;k.TriangleStripDrawMode=1;k.TrianglesDrawMode=0;k.TubeBufferGeometry=cc;k.TubeGeometry=Xd;k.UVMapping=300;k.Uint16Attribute=function(a,b){console.warn("THREE.Uint16Attribute has been removed. Use new THREE.Uint16BufferAttribute() instead.");return new Sb(a,b)};k.Uint16BufferAttribute=Sb;k.Uint32Attribute=function(a,b){console.warn("THREE.Uint32Attribute has been removed. Use new THREE.Uint32BufferAttribute() instead.");return new Tb(a,
+b)};k.Uint32BufferAttribute=Tb;k.Uint8Attribute=function(a,b){console.warn("THREE.Uint8Attribute has been removed. Use new THREE.Uint8BufferAttribute() instead.");return new yd(a,b)};k.Uint8BufferAttribute=yd;k.Uint8ClampedAttribute=function(a,b){console.warn("THREE.Uint8ClampedAttribute has been removed. Use new THREE.Uint8ClampedBufferAttribute() instead.");return new zd(a,b)};k.Uint8ClampedBufferAttribute=zd;k.Uncharted2ToneMapping=3;k.Uniform=pf;k.UniformsLib=L;k.UniformsUtils=Ck;k.UnsignedByteType=
+1009;k.UnsignedInt248Type=1020;k.UnsignedIntType=1014;k.UnsignedShort4444Type=1017;k.UnsignedShort5551Type=1018;k.UnsignedShort565Type=1019;k.UnsignedShortType=1012;k.VSMShadowMap=3;k.Vector2=B;k.Vector3=n;k.Vector4=da;k.VectorKeyframeTrack=ad;k.Vertex=function(a,b,c){console.warn("THREE.Vertex has been removed. Use THREE.Vector3 instead.");return new n(a,b,c)};k.VertexColors=2;k.VertexNormalsHelper=qe;k.VideoTexture=lg;k.WebGLMultisampleRenderTarget=Sf;k.WebGLRenderTarget=la;k.WebGLRenderTargetCube=
+Bb;k.WebGLRenderer=hg;k.WebGLUtils=Kh;k.WireframeGeometry=Mc;k.WireframeHelper=function(a,b){console.warn("THREE.WireframeHelper has been removed. Use THREE.WireframeGeometry instead.");return new X(new Mc(a.geometry),new R({color:void 0!==b?b:16777215}))};k.WrapAroundEnding=2402;k.XHRLoader=function(a){console.warn("THREE.XHRLoader has been renamed to THREE.FileLoader.");return new Na(a)};k.ZeroCurvatureEnding=2400;k.ZeroFactor=200;k.ZeroSlopeEnding=2401;k.ZeroStencilOp=0;k.sRGBEncoding=3001;Object.defineProperty(k,
+"__esModule",{value:!0})});
diff --git a/01_Code/physical_computing_interface/simulation/package-lock.json b/01_Code/physical_computing_interface/simulation/package-lock.json
new file mode 100644
index 0000000000000000000000000000000000000000..467c6d885eff7ffbce8b062fcc575bbcc2d2d06b
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/package-lock.json
@@ -0,0 +1,1039 @@
+{
+  "requires": true,
+  "lockfileVersion": 1,
+  "dependencies": {
+    "@tensorflow/tfjs": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npmjs.org/@tensorflow/tfjs/-/tfjs-1.3.2.tgz",
+      "integrity": "sha512-2QrKHtM6DraAgWL9DJwluz+/CJ5EbPN9tdNAFGq83fSUm3cNEK37UPsWdQ1QXXBqMczg1uyLEmPgFq6Lsy2/Vg==",
+      "requires": {
+        "@tensorflow/tfjs-converter": "1.3.2",
+        "@tensorflow/tfjs-core": "1.3.2",
+        "@tensorflow/tfjs-data": "1.3.2",
+        "@tensorflow/tfjs-layers": "1.3.2"
+      }
+    },
+    "@tensorflow/tfjs-converter": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-converter/-/tfjs-converter-1.3.2.tgz",
+      "integrity": "sha512-HTGT5sinSzayH/RXwoeebtc5pwTU9E3JzlcLfBa0HZVkkeKadhtzqh3QH+BFuuNsvX691AiIHv4P7SylUu1XQg=="
+    },
+    "@tensorflow/tfjs-core": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-1.3.2.tgz",
+      "integrity": "sha512-42WlbkbD10F11qN7k+GMjdPB62DGGnz7czkvk+lT501qWUrQI8swTjZfgMijcTWyQSeJuLa97EOL9n/Gn3Yfpw==",
+      "requires": {
+        "@types/offscreencanvas": "~2019.3.0",
+        "@types/seedrandom": "2.4.27",
+        "@types/webgl-ext": "0.0.30",
+        "@types/webgl2": "0.0.4",
+        "node-fetch": "~2.1.2",
+        "seedrandom": "2.4.3"
+      }
+    },
+    "@tensorflow/tfjs-data": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-data/-/tfjs-data-1.3.2.tgz",
+      "integrity": "sha512-1Ed6rb1OAcQc70jQqAN6UYch56p7FHafQ4cDzEDoS1tgfn0Of6Gb3KETa0RJMIpWvlrr/Oa5qwqDk8Tlusn7+Q==",
+      "requires": {
+        "@types/node-fetch": "^2.1.2",
+        "node-fetch": "~2.1.2"
+      }
+    },
+    "@tensorflow/tfjs-layers": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-layers/-/tfjs-layers-1.3.2.tgz",
+      "integrity": "sha512-Y+zsoXlXWYopv+u3woMgE18TsEtzcRUVdgMQxuQm1FGRFAltyKxHzVO44b/nVdC59kRHIv0wrLU4G2hSQlprqA=="
+    },
+    "@tensorflow/tfjs-node": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-node/-/tfjs-node-1.3.2.tgz",
+      "integrity": "sha512-inWEd+WmVUU/UdLjYSNugTAa2MBuKUd6QtcGDk8u1+yV54/ulxYQlsITB4g/6KPnABlnpM49J342pt+/j2Z8uA==",
+      "requires": {
+        "@tensorflow/tfjs": "1.3.2",
+        "adm-zip": "^0.4.11",
+        "google-protobuf": "^3.9.2",
+        "https-proxy-agent": "^2.2.1",
+        "node-pre-gyp": "0.13.0",
+        "progress": "^2.0.0",
+        "rimraf": "^2.6.2",
+        "tar": "^4.4.6"
+      }
+    },
+    "@types/node": {
+      "version": "12.12.14",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.14.tgz",
+      "integrity": "sha512-u/SJDyXwuihpwjXy7hOOghagLEV1KdAST6syfnOk6QZAMzZuWZqXy5aYYZbh8Jdpd4escVFP0MvftHNDb9pruA=="
+    },
+    "@types/node-fetch": {
+      "version": "2.5.4",
+      "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.4.tgz",
+      "integrity": "sha512-Oz6id++2qAOFuOlE1j0ouk1dzl3mmI1+qINPNBhi9nt/gVOz0G+13Ao6qjhdF0Ys+eOkhu6JnFmt38bR3H0POQ==",
+      "requires": {
+        "@types/node": "*"
+      }
+    },
+    "@types/offscreencanvas": {
+      "version": "2019.3.0",
+      "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.3.0.tgz",
+      "integrity": "sha512-esIJx9bQg+QYF0ra8GnvfianIY8qWB0GBx54PK5Eps6m+xTj86KLavHv6qDhzKcu5UUOgNfJ2pWaIIV7TRUd9Q=="
+    },
+    "@types/seedrandom": {
+      "version": "2.4.27",
+      "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-2.4.27.tgz",
+      "integrity": "sha1-nbVjk33YaRX2kJK8QyWdL0hXjkE="
+    },
+    "@types/webgl-ext": {
+      "version": "0.0.30",
+      "resolved": "https://registry.npmjs.org/@types/webgl-ext/-/webgl-ext-0.0.30.tgz",
+      "integrity": "sha512-LKVgNmBxN0BbljJrVUwkxwRYqzsAEPcZOe6S2T6ZaBDIrFp0qu4FNlpc5sM1tGbXUYFgdVQIoeLk1Y1UoblyEg=="
+    },
+    "@types/webgl2": {
+      "version": "0.0.4",
+      "resolved": "https://registry.npmjs.org/@types/webgl2/-/webgl2-0.0.4.tgz",
+      "integrity": "sha512-PACt1xdErJbMUOUweSrbVM7gSIYm1vTncW2hF6Os/EeWi6TXYAYMPp+8v6rzHmypE5gHrxaxZNXgMkJVIdZpHw=="
+    },
+    "abbrev": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+      "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
+    },
+    "accepts": {
+      "version": "1.3.7",
+      "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
+      "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
+      "requires": {
+        "mime-types": "~2.1.24",
+        "negotiator": "0.6.2"
+      }
+    },
+    "adm-zip": {
+      "version": "0.4.13",
+      "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.13.tgz",
+      "integrity": "sha512-fERNJX8sOXfel6qCBCMPvZLzENBEhZTzKqg6vrOW5pvoEaQuJhRU4ndTAh6lHOxn1I6jnz2NHra56ZODM751uw=="
+    },
+    "agent-base": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
+      "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==",
+      "requires": {
+        "es6-promisify": "^5.0.0"
+      }
+    },
+    "ansi-regex": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+      "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+    },
+    "aproba": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+      "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
+    },
+    "are-we-there-yet": {
+      "version": "1.1.5",
+      "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
+      "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
+      "requires": {
+        "delegates": "^1.0.0",
+        "readable-stream": "^2.0.6"
+      }
+    },
+    "array-flatten": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+      "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
+    },
+    "balanced-match": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+      "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+    },
+    "body-parser": {
+      "version": "1.19.0",
+      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
+      "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
+      "requires": {
+        "bytes": "3.1.0",
+        "content-type": "~1.0.4",
+        "debug": "2.6.9",
+        "depd": "~1.1.2",
+        "http-errors": "1.7.2",
+        "iconv-lite": "0.4.24",
+        "on-finished": "~2.3.0",
+        "qs": "6.7.0",
+        "raw-body": "2.4.0",
+        "type-is": "~1.6.17"
+      }
+    },
+    "brace-expansion": {
+      "version": "1.1.11",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+      "requires": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "bytes": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
+      "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
+    },
+    "chownr": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz",
+      "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw=="
+    },
+    "code-point-at": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+      "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
+    },
+    "concat-map": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+    },
+    "console-control-strings": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+      "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
+    },
+    "content-disposition": {
+      "version": "0.5.3",
+      "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
+      "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
+      "requires": {
+        "safe-buffer": "5.1.2"
+      }
+    },
+    "content-type": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+      "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
+    },
+    "cookie": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
+      "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
+    },
+    "cookie-signature": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+      "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
+    },
+    "core-util-is": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+    },
+    "debug": {
+      "version": "2.6.9",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+      "requires": {
+        "ms": "2.0.0"
+      }
+    },
+    "deep-extend": {
+      "version": "0.6.0",
+      "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+      "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
+    },
+    "delegates": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+      "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
+    },
+    "depd": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+      "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
+    },
+    "destroy": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+      "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
+    },
+    "detect-libc": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+      "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups="
+    },
+    "edit-json-file": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npmjs.org/edit-json-file/-/edit-json-file-1.3.2.tgz",
+      "integrity": "sha512-0I7+oa195vpuiO/pOvO0F+ngoFLyU5dn0Zbr56D9lER1lwxq0ZM1jhCtTUqs4lvEPBUopnK9CHszRkfnqNi2Rg==",
+      "requires": {
+        "find-value": "^1.0.3",
+        "iterate-object": "^1.3.2",
+        "r-json": "^1.2.5",
+        "set-value": "^3.0.1",
+        "w-json": "^1.3.5"
+      }
+    },
+    "ee-first": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+      "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
+    },
+    "encodeurl": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+      "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
+    },
+    "es6-promise": {
+      "version": "4.2.8",
+      "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
+      "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
+    },
+    "es6-promisify": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
+      "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
+      "requires": {
+        "es6-promise": "^4.0.3"
+      }
+    },
+    "escape-html": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+      "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
+    },
+    "etag": {
+      "version": "1.8.1",
+      "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+      "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
+    },
+    "express": {
+      "version": "4.17.1",
+      "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
+      "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
+      "requires": {
+        "accepts": "~1.3.7",
+        "array-flatten": "1.1.1",
+        "body-parser": "1.19.0",
+        "content-disposition": "0.5.3",
+        "content-type": "~1.0.4",
+        "cookie": "0.4.0",
+        "cookie-signature": "1.0.6",
+        "debug": "2.6.9",
+        "depd": "~1.1.2",
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "etag": "~1.8.1",
+        "finalhandler": "~1.1.2",
+        "fresh": "0.5.2",
+        "merge-descriptors": "1.0.1",
+        "methods": "~1.1.2",
+        "on-finished": "~2.3.0",
+        "parseurl": "~1.3.3",
+        "path-to-regexp": "0.1.7",
+        "proxy-addr": "~2.0.5",
+        "qs": "6.7.0",
+        "range-parser": "~1.2.1",
+        "safe-buffer": "5.1.2",
+        "send": "0.17.1",
+        "serve-static": "1.14.1",
+        "setprototypeof": "1.1.1",
+        "statuses": "~1.5.0",
+        "type-is": "~1.6.18",
+        "utils-merge": "1.0.1",
+        "vary": "~1.1.2"
+      }
+    },
+    "finalhandler": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+      "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+      "requires": {
+        "debug": "2.6.9",
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "on-finished": "~2.3.0",
+        "parseurl": "~1.3.3",
+        "statuses": "~1.5.0",
+        "unpipe": "~1.0.0"
+      }
+    },
+    "find-value": {
+      "version": "1.0.11",
+      "resolved": "https://registry.npmjs.org/find-value/-/find-value-1.0.11.tgz",
+      "integrity": "sha512-ECGsf/85PJgK/kOv6q1/MA1pawuBvQi12td/7MQHakfE7/P2jFgUeo0BL1dbAF97DPOTrtsrFBHkwBnPMWZiKg=="
+    },
+    "forwarded": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
+      "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
+    },
+    "fresh": {
+      "version": "0.5.2",
+      "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+      "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
+    },
+    "fs-minipass": {
+      "version": "1.2.7",
+      "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
+      "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
+      "requires": {
+        "minipass": "^2.6.0"
+      }
+    },
+    "fs.realpath": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+    },
+    "gauge": {
+      "version": "2.7.4",
+      "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+      "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+      "requires": {
+        "aproba": "^1.0.3",
+        "console-control-strings": "^1.0.0",
+        "has-unicode": "^2.0.0",
+        "object-assign": "^4.1.0",
+        "signal-exit": "^3.0.0",
+        "string-width": "^1.0.1",
+        "strip-ansi": "^3.0.1",
+        "wide-align": "^1.1.0"
+      }
+    },
+    "glob": {
+      "version": "7.1.6",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+      "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+      "requires": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^3.0.4",
+        "once": "^1.3.0",
+        "path-is-absolute": "^1.0.0"
+      }
+    },
+    "google-protobuf": {
+      "version": "3.11.0",
+      "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.11.0.tgz",
+      "integrity": "sha512-Pni0ZGKZc/FpaRiz2n11+FfjzeuoUpnMdtuqoBUandjsEPsLDLh5C0yacl/bgNAFaZkyUgIGcGowW34u6mVWPw=="
+    },
+    "has-unicode": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+      "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
+    },
+    "http-errors": {
+      "version": "1.7.2",
+      "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
+      "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
+      "requires": {
+        "depd": "~1.1.2",
+        "inherits": "2.0.3",
+        "setprototypeof": "1.1.1",
+        "statuses": ">= 1.5.0 < 2",
+        "toidentifier": "1.0.0"
+      }
+    },
+    "https-proxy-agent": {
+      "version": "2.2.4",
+      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz",
+      "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==",
+      "requires": {
+        "agent-base": "^4.3.0",
+        "debug": "^3.1.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.2.6",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "ms": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+          "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+        }
+      }
+    },
+    "iconv-lite": {
+      "version": "0.4.24",
+      "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+      "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+      "requires": {
+        "safer-buffer": ">= 2.1.2 < 3"
+      }
+    },
+    "ignore-walk": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz",
+      "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==",
+      "requires": {
+        "minimatch": "^3.0.4"
+      }
+    },
+    "inflight": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+      "requires": {
+        "once": "^1.3.0",
+        "wrappy": "1"
+      }
+    },
+    "inherits": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+    },
+    "ini": {
+      "version": "1.3.5",
+      "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+      "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
+    },
+    "ipaddr.js": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
+      "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA=="
+    },
+    "is-fullwidth-code-point": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+      "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+      "requires": {
+        "number-is-nan": "^1.0.0"
+      }
+    },
+    "is-plain-object": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+      "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+      "requires": {
+        "isobject": "^3.0.1"
+      }
+    },
+    "isarray": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+    },
+    "isobject": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+      "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+    },
+    "iterate-object": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmjs.org/iterate-object/-/iterate-object-1.3.3.tgz",
+      "integrity": "sha512-DximWbkke36cnrSfNJv6bgcB2QOMV9PRD2FiowwzCoMsh8RupFLdbNIzWe+cVDWT+NIMNJgGlB1dGxP6kpzGtA=="
+    },
+    "media-typer": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+      "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
+    },
+    "merge-descriptors": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+      "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
+    },
+    "methods": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+      "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
+    },
+    "mime": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+      "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
+    },
+    "mime-db": {
+      "version": "1.42.0",
+      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz",
+      "integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ=="
+    },
+    "mime-types": {
+      "version": "2.1.25",
+      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz",
+      "integrity": "sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==",
+      "requires": {
+        "mime-db": "1.42.0"
+      }
+    },
+    "minimatch": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+      "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+      "requires": {
+        "brace-expansion": "^1.1.7"
+      }
+    },
+    "minimist": {
+      "version": "0.0.8",
+      "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+      "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
+    },
+    "minipass": {
+      "version": "2.9.0",
+      "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
+      "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
+      "requires": {
+        "safe-buffer": "^5.1.2",
+        "yallist": "^3.0.0"
+      }
+    },
+    "minizlib": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
+      "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
+      "requires": {
+        "minipass": "^2.9.0"
+      }
+    },
+    "mkdirp": {
+      "version": "0.5.1",
+      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+      "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+      "requires": {
+        "minimist": "0.0.8"
+      }
+    },
+    "ms": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+      "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+    },
+    "needle": {
+      "version": "2.4.0",
+      "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz",
+      "integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==",
+      "requires": {
+        "debug": "^3.2.6",
+        "iconv-lite": "^0.4.4",
+        "sax": "^1.2.4"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.2.6",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "ms": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+          "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+        }
+      }
+    },
+    "negotiator": {
+      "version": "0.6.2",
+      "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
+      "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
+    },
+    "node-fetch": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz",
+      "integrity": "sha1-q4hOjn5X44qUR1POxwb3iNF2i7U="
+    },
+    "node-pre-gyp": {
+      "version": "0.13.0",
+      "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.13.0.tgz",
+      "integrity": "sha512-Md1D3xnEne8b/HGVQkZZwV27WUi1ZRuZBij24TNaZwUPU3ZAFtvT6xxJGaUVillfmMKnn5oD1HoGsp2Ftik7SQ==",
+      "requires": {
+        "detect-libc": "^1.0.2",
+        "mkdirp": "^0.5.1",
+        "needle": "^2.2.1",
+        "nopt": "^4.0.1",
+        "npm-packlist": "^1.1.6",
+        "npmlog": "^4.0.2",
+        "rc": "^1.2.7",
+        "rimraf": "^2.6.1",
+        "semver": "^5.3.0",
+        "tar": "^4"
+      }
+    },
+    "nopt": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz",
+      "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
+      "requires": {
+        "abbrev": "1",
+        "osenv": "^0.1.4"
+      }
+    },
+    "npm-bundled": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz",
+      "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g=="
+    },
+    "npm-packlist": {
+      "version": "1.4.6",
+      "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.6.tgz",
+      "integrity": "sha512-u65uQdb+qwtGvEJh/DgQgW1Xg7sqeNbmxYyrvlNznaVTjV3E5P6F/EFjM+BVHXl7JJlsdG8A64M0XI8FI/IOlg==",
+      "requires": {
+        "ignore-walk": "^3.0.1",
+        "npm-bundled": "^1.0.1"
+      }
+    },
+    "npmlog": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+      "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+      "requires": {
+        "are-we-there-yet": "~1.1.2",
+        "console-control-strings": "~1.1.0",
+        "gauge": "~2.7.3",
+        "set-blocking": "~2.0.0"
+      }
+    },
+    "number-is-nan": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+      "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
+    },
+    "object-assign": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+      "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+    },
+    "on-finished": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+      "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+      "requires": {
+        "ee-first": "1.1.1"
+      }
+    },
+    "once": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+      "requires": {
+        "wrappy": "1"
+      }
+    },
+    "os-homedir": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+      "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
+    },
+    "os-tmpdir": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+      "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
+    },
+    "osenv": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+      "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
+      "requires": {
+        "os-homedir": "^1.0.0",
+        "os-tmpdir": "^1.0.0"
+      }
+    },
+    "parseurl": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+      "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
+    },
+    "path-is-absolute": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+      "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+    },
+    "path-to-regexp": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+      "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
+    },
+    "process-nextick-args": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+      "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+    },
+    "progress": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+      "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
+    },
+    "proxy-addr": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
+      "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
+      "requires": {
+        "forwarded": "~0.1.2",
+        "ipaddr.js": "1.9.0"
+      }
+    },
+    "qs": {
+      "version": "6.7.0",
+      "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+      "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
+    },
+    "r-json": {
+      "version": "1.2.9",
+      "resolved": "https://registry.npmjs.org/r-json/-/r-json-1.2.9.tgz",
+      "integrity": "sha512-E5u25XBE7PpZmH5XwtthAmNvSLMTygDQMpcPtCTUBdvwPaqgIYJrxlRQJhG55Sgz7uC0Tuyh5nqNrsDT3uiefA=="
+    },
+    "range-parser": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+      "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
+    },
+    "raw-body": {
+      "version": "2.4.0",
+      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
+      "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
+      "requires": {
+        "bytes": "3.1.0",
+        "http-errors": "1.7.2",
+        "iconv-lite": "0.4.24",
+        "unpipe": "1.0.0"
+      }
+    },
+    "rc": {
+      "version": "1.2.8",
+      "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+      "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+      "requires": {
+        "deep-extend": "^0.6.0",
+        "ini": "~1.3.0",
+        "minimist": "^1.2.0",
+        "strip-json-comments": "~2.0.1"
+      },
+      "dependencies": {
+        "minimist": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+        }
+      }
+    },
+    "readable-stream": {
+      "version": "2.3.6",
+      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+      "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+      "requires": {
+        "core-util-is": "~1.0.0",
+        "inherits": "~2.0.3",
+        "isarray": "~1.0.0",
+        "process-nextick-args": "~2.0.0",
+        "safe-buffer": "~5.1.1",
+        "string_decoder": "~1.1.1",
+        "util-deprecate": "~1.0.1"
+      }
+    },
+    "rimraf": {
+      "version": "2.7.1",
+      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+      "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+      "requires": {
+        "glob": "^7.1.3"
+      }
+    },
+    "safe-buffer": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+      "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+    },
+    "safer-buffer": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+    },
+    "sax": {
+      "version": "1.2.4",
+      "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+      "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
+    },
+    "seedrandom": {
+      "version": "2.4.3",
+      "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.3.tgz",
+      "integrity": "sha1-JDhQTa0zkXMUv/GKxNeU8W1qrsw="
+    },
+    "semver": {
+      "version": "5.7.1",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+      "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+    },
+    "send": {
+      "version": "0.17.1",
+      "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
+      "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
+      "requires": {
+        "debug": "2.6.9",
+        "depd": "~1.1.2",
+        "destroy": "~1.0.4",
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "etag": "~1.8.1",
+        "fresh": "0.5.2",
+        "http-errors": "~1.7.2",
+        "mime": "1.6.0",
+        "ms": "2.1.1",
+        "on-finished": "~2.3.0",
+        "range-parser": "~1.2.1",
+        "statuses": "~1.5.0"
+      },
+      "dependencies": {
+        "ms": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
+        }
+      }
+    },
+    "serve-static": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
+      "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
+      "requires": {
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "parseurl": "~1.3.3",
+        "send": "0.17.1"
+      }
+    },
+    "set-blocking": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+      "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
+    },
+    "set-value": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/set-value/-/set-value-3.0.1.tgz",
+      "integrity": "sha512-w6n3GUPYAWQj4ZyHWzD7K2FnFXHx9OTwJYbWg+6nXjG8sCLfs9DGv+KlqglKIIJx+ks7MlFuwFW2RBPb+8V+xg==",
+      "requires": {
+        "is-plain-object": "^2.0.4"
+      }
+    },
+    "setprototypeof": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
+      "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
+    },
+    "signal-exit": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+      "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
+    },
+    "statuses": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+      "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
+    },
+    "string-width": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+      "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+      "requires": {
+        "code-point-at": "^1.0.0",
+        "is-fullwidth-code-point": "^1.0.0",
+        "strip-ansi": "^3.0.0"
+      }
+    },
+    "string_decoder": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+      "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+      "requires": {
+        "safe-buffer": "~5.1.0"
+      }
+    },
+    "strip-ansi": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+      "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+      "requires": {
+        "ansi-regex": "^2.0.0"
+      }
+    },
+    "strip-json-comments": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+      "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
+    },
+    "tar": {
+      "version": "4.4.13",
+      "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz",
+      "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==",
+      "requires": {
+        "chownr": "^1.1.1",
+        "fs-minipass": "^1.2.5",
+        "minipass": "^2.8.6",
+        "minizlib": "^1.2.1",
+        "mkdirp": "^0.5.0",
+        "safe-buffer": "^5.1.2",
+        "yallist": "^3.0.3"
+      }
+    },
+    "three": {
+      "version": "0.110.0",
+      "resolved": "https://registry.npmjs.org/three/-/three-0.110.0.tgz",
+      "integrity": "sha512-wlurH8XBO9Sd5VIw8nBa+taLR20kqaI4e9FiuMh6tqK8eOS2q2R+ZoUyufbyDTVTHhs8GiTbv0r2CMLkwerFJg=="
+    },
+    "toidentifier": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
+      "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
+    },
+    "type-is": {
+      "version": "1.6.18",
+      "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+      "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+      "requires": {
+        "media-typer": "0.3.0",
+        "mime-types": "~2.1.24"
+      }
+    },
+    "unpipe": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+      "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
+    },
+    "util-deprecate": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+    },
+    "utils-merge": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+      "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
+    },
+    "vary": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+      "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
+    },
+    "w-json": {
+      "version": "1.3.9",
+      "resolved": "https://registry.npmjs.org/w-json/-/w-json-1.3.9.tgz",
+      "integrity": "sha512-9hvWhnNZ5J3ypOJt2LzmAQBl1NrQBZED/E8MwkZQ+lGTq51hyR9zeH0dgaJzLfzOVoTbxe/yPqL10c5WVsHvbg=="
+    },
+    "wide-align": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+      "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+      "requires": {
+        "string-width": "^1.0.2 || 2"
+      }
+    },
+    "wrappy": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+    },
+    "yallist": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+      "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
+    }
+  }
+}
diff --git a/01_Code/physical_computing_interface/simulation/visualization/geometry.js b/01_Code/physical_computing_interface/simulation/visualization/geometry.js
new file mode 100644
index 0000000000000000000000000000000000000000..214eb64b4c02d040ec22f8fe912f6d7c0f15f8bd
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/visualization/geometry.js
@@ -0,0 +1,620 @@
+// let _rhino3dm = null;
+// // wait for the rhino3dm web assembly to load asynchronously
+// rhino3dm().then(function(m) {// todo change call to app.js
+// 	_rhino3dm = m; // global
+// 	initRhino3dm(1,10,createVoxelnotRhino,true,true);
+// 	//saveJSON();
+// });
+
+// initialize 
+function initRhino3dm(latticeSize,voxelSize,voxelBuilder,addForces,solve) {//later change type to dictiary
+	console.log("Loaded RhinoScript");
+    
+    // var voxelSize=10.0;
+    // var latticeSize=5;
+
+    createLattice(voxelSize,latticeSize,latticeSize,latticeSize,voxelBuilder);
+
+	restrainBelow(-voxelSize/2);
+	if(addForces){ //don't add forces chiral //todo fix
+		addForceAbove(0.75*voxelSize*latticeSize,{x:0,y:-400,z:0});
+	}
+    
+    if(solve){
+        solveFea();
+	}
+	
+}
+
+////////////////////////////////////////////////////////////
+function createLattice(size,sizeX,sizeY,sizeZ,voxelBuilder){
+
+    for(var i=0;i<sizeX;i++){
+        for(var j=0;j<sizeY;j++){
+            for(var k=0;k<sizeZ;k++){
+                voxelBuilder(size,new THREE.Vector3(i*size,j*size,k*size));
+            }
+        }
+    }
+    
+
+}
+function simulate(size,timeline,voxelBuilder ){
+	init();
+	console.log(timeline.length)
+	for(var i=0;i<timeline.length;i++){ //TODO LATER CHANGE TO OCCUPANCY
+		console.log(timeline[i]);
+		voxelBuilder(size,new THREE.Vector3(timeline[i].x*size,timeline[i].y*size,timeline[i].z*size));
+	}
+	drawStructure();
+	colorEdges();
+	animate();
+}
+
+function createVoxel(size,position){
+    
+
+    var sphere = new _rhino3dm.Sphere([0,0,0], size/2);
+    var box = sphere.toBrep().getBoundingBox();
+    // console.log(box.min)
+    box = box.toBrep();
+    
+    for(var i=0; i<6;i++){//for each face
+
+        // var restrained=false;
+        // var force=new THREE.Vector3(0,0,0);
+        // if(i==0){
+        //     restrained=true;
+        // }
+        // if(i==2){
+        //     force=new THREE.Vector3(0,-200,0);
+        //     // restrained=true;
+        // }
+        nodesIndices=[];
+        var face=box.faces().get(i);
+        
+        
+		nodesIndices.push(checkandAdd(add(position,toPosition(face.pointAt(size  , size/2)))));
+        nodesIndices.push(checkandAdd(add(position,toPosition(face.pointAt(size/2, 0     )))));
+        nodesIndices.push(checkandAdd(add(position,toPosition(face.pointAt(0     , size/2)))));
+        nodesIndices.push(checkandAdd(add(position,toPosition(face.pointAt(size/2, size  )))));
+        
+        linkNodes(nodesIndices);
+		
+	}
+}
+
+function createChiralVoxel(size,position){
+    
+
+    var sphere = new _rhino3dm.Sphere([0,0,0], size/2);
+    var box = sphere.toBrep().getBoundingBox();
+    // console.log(box.min)
+    box = box.toBrep();
+    
+    for(var i=0; i<6;i++){//for each face
+
+        var nodesIndices=[];
+        var face=box.faces().get(i);
+        
+        
+		nodesIndices.push(checkandAdd(add(position,toPosition(face.pointAt(size  , size/2)))));
+        nodesIndices.push(checkandAdd(add(position,toPosition(face.pointAt(size/2, 0     )))));
+        nodesIndices.push(checkandAdd(add(position,toPosition(face.pointAt(0     , size/2)))));
+        nodesIndices.push(checkandAdd(add(position,toPosition(face.pointAt(size/2, size  )))));
+        
+        // linkNodes(nodesIndices);
+
+        var n=8;
+        var c= new _rhino3dm.Circle(size/3.5);
+		c=c.toNurbsCurve();
+		var rot=[1,0,0];
+        
+        var nodesIndices1=[];
+		
+		c.domain=[0,1];
+		// console.log(rot);
+		// console.log(c.tangentAt(i*1/4+1/4));
+		rot=c.tangentAt(i*1/4+1/4);
+		if(i>3){
+			rot=face.normalAt(0, 0);
+		}
+		c.rotate(Math.PI/2,rot , [0,0,0]);
+		c.translate(face.pointAt(size/2, size/2));
+		for(var ii=0; ii<n;ii++){//for each face
+            // createNode(toPosition(c.pointAt(ii*1/n)),'e',false,[]);
+            nodesIndices1.push(checkandAdd(add(position,toPosition(c.pointAt(ii*1/n)))));
+        }
+        linkNodes(nodesIndices1);
+
+        if(i==0){
+            addEdge(nodesIndices[0], nodesIndices1[1], 1.0, 0.284 , 30.0e6);
+            addEdge(nodesIndices[1], nodesIndices1[3], 1.0, 0.284 , 30.0e6);
+            addEdge(nodesIndices[2], nodesIndices1[5], 1.0, 0.284 , 30.0e6);
+            addEdge(nodesIndices[3], nodesIndices1[7], 1.0, 0.284 , 30.0e6);
+
+        }else if(i==1){
+            addEdge(nodesIndices[3], nodesIndices1[1], 1.0, 0.284 , 30.0e6);
+            addEdge(nodesIndices[0], nodesIndices1[3], 1.0, 0.284 , 30.0e6);
+            addEdge(nodesIndices[1], nodesIndices1[5], 1.0, 0.284 , 30.0e6);
+            addEdge(nodesIndices[2], nodesIndices1[7], 1.0, 0.284 , 30.0e6);
+
+        }else if(i==2){
+            addEdge(nodesIndices[0], nodesIndices1[5], 1.0, 0.284 , 30.0e6);
+            addEdge(nodesIndices[1], nodesIndices1[7], 1.0, 0.284 , 30.0e6);
+            addEdge(nodesIndices[2], nodesIndices1[1], 1.0, 0.284 , 30.0e6);
+            addEdge(nodesIndices[3], nodesIndices1[3], 1.0, 0.284 , 30.0e6);
+
+            var force=new THREE.Vector3(0,-400,0);
+            addForce('n'+nodesIndices[0],force);
+            addForce('n'+nodesIndices[1],force);
+            addForce('n'+nodesIndices[2],force);
+            addForce('n'+nodesIndices[3],force);
+
+        }else if(i==3){
+
+            addEdge(nodesIndices[3], nodesIndices1[5], 1.0, 0.284 , 30.0e6);
+            addEdge(nodesIndices[0], nodesIndices1[7], 1.0, 0.284 , 30.0e6);
+            addEdge(nodesIndices[1], nodesIndices1[1], 1.0, 0.284 , 30.0e6);
+            addEdge(nodesIndices[2], nodesIndices1[3], 1.0, 0.284 , 30.0e6);
+        }else if(i==4){
+            addEdge(nodesIndices[0], nodesIndices1[5], 1.0, 0.284 , 30.0e6);
+            addEdge(nodesIndices[1], nodesIndices1[7], 1.0, 0.284 , 30.0e6);
+            addEdge(nodesIndices[2], nodesIndices1[1], 1.0, 0.284 , 30.0e6);
+            addEdge(nodesIndices[3], nodesIndices1[3], 1.0, 0.284 , 30.0e6);
+        }else if(i==5){
+            addEdge(nodesIndices[0], nodesIndices1[5], 1.0, 0.284 , 30.0e6);
+            addEdge(nodesIndices[1], nodesIndices1[3], 1.0, 0.284 , 30.0e6);
+            addEdge(nodesIndices[2], nodesIndices1[1], 1.0, 0.284 , 30.0e6);
+            addEdge(nodesIndices[3], nodesIndices1[7], 1.0, 0.284 , 30.0e6);
+        }
+	}
+}
+
+/////////////////
+function createOldVoxelnotRhino(size,position){
+	addNode(position.clone().add(new THREE.Vector3(0,0,0)),true, new THREE.Vector3(0,0,0));
+
+	addNode(position.clone().add(new THREE.Vector3(-size, size*1.5,-size)),false, new THREE.Vector3(0,-200,0));
+	addNode(position.clone().add(new THREE.Vector3(-size, size*1.5, size)),false, new THREE.Vector3(0,-200,0));
+	addNode(position.clone().add(new THREE.Vector3( size, size*1.5, size)),false, new THREE.Vector3(0,-200,0));
+	addNode(position.clone().add(new THREE.Vector3( size, size*1.5,-size)),false, new THREE.Vector3(0,-200,0));
+
+	addNode(position.clone().add(new THREE.Vector3(0, size*1.5*2,0)),false, new THREE.Vector3(0,-400,0));
+
+	addEdge(0, 1, 1.0, 0.284 , 30.0e6);
+	addEdge(0, 2, 1.0, 0.284 , 30.0e6);
+	addEdge(0, 3, 1.0, 0.284 , 30.0e6);
+	addEdge(0, 4, 1.0, 0.284 , 30.0e6);
+  
+	addEdge(1, 2, 1.0, 0.284 , 30.0e6);
+	addEdge(2, 3, 1.0, 0.284 , 30.0e6);
+	addEdge(3, 4, 1.0, 0.284 , 30.0e6);
+	addEdge(4, 1, 1.0, 0.284 , 30.0e6);
+  
+	addEdge(5, 1, 1.0, 0.284 , 30.0e6);
+	addEdge(5, 2, 1.0, 0.284 , 30.0e6);
+	addEdge(5, 3, 1.0, 0.284 , 30.0e6);
+	addEdge(5, 4, 1.0, 0.284 , 30.0e6);
+	
+	
+	
+	// console.log(setup)
+}
+
+function createVoxelnotRhino(size,position){
+	//down square
+	addNode(position.clone().add(new THREE.Vector3(-size, 0,-size)),true, new THREE.Vector3(0,0,0));//0
+	addNode(position.clone().add(new THREE.Vector3(-size, 0,    0)),true, new THREE.Vector3(0,0,0));//1//mid
+	addNode(position.clone().add(new THREE.Vector3(-size, 0, size)),true, new THREE.Vector3(0,0,0));//2
+	addNode(position.clone().add(new THREE.Vector3(    0, 0, size)),true, new THREE.Vector3(0,0,0));//3//mid
+	addNode(position.clone().add(new THREE.Vector3( size, 0, size)),true, new THREE.Vector3(0,0,0));//4
+	addNode(position.clone().add(new THREE.Vector3( size, 0,    0)),true, new THREE.Vector3(0,0,0));//5//mid
+	addNode(position.clone().add(new THREE.Vector3( size, 0,-size)),true, new THREE.Vector3(0,0,0));//6
+	addNode(position.clone().add(new THREE.Vector3(    0, 0,-size)),true, new THREE.Vector3(0,0,0));//7//mid
+	
+	addEdge(0, 1, 1.0, 0.284 , 30.0e6);
+	addEdge(1, 2, 1.0, 0.284 , 30.0e6);
+	addEdge(2, 3, 1.0, 0.284 , 30.0e6);
+	addEdge(3, 4, 1.0, 0.284 , 30.0e6);
+	addEdge(4, 5, 1.0, 0.284 , 30.0e6);
+	addEdge(5, 6, 1.0, 0.284 , 30.0e6);
+	addEdge(6, 7, 1.0, 0.284 , 30.0e6);
+	addEdge(7, 0, 1.0, 0.284 , 30.0e6);
+
+	addEdge(1, 3, 1.0, 0.284 , 30.0e6);
+	addEdge(3, 5, 1.0, 0.284 , 30.0e6);
+	addEdge(5, 7, 1.0, 0.284 , 30.0e6);
+	addEdge(7, 1, 1.0, 0.284 , 30.0e6);
+
+	//up square
+	addNode(position.clone().add(new THREE.Vector3(-size, size*2,-size)),false, new THREE.Vector3(0,-400,0));//0+8
+	addNode(position.clone().add(new THREE.Vector3(-size, size*2,    0)),false, new THREE.Vector3(0,-400,0));//1+8//mid
+	addNode(position.clone().add(new THREE.Vector3(-size, size*2, size)),false, new THREE.Vector3(0,-400,0));//2+8
+	addNode(position.clone().add(new THREE.Vector3(    0, size*2, size)),false, new THREE.Vector3(0,-400,0));//3+8//mid
+	addNode(position.clone().add(new THREE.Vector3( size, size*2, size)),false, new THREE.Vector3(0,-400,0));//4+8
+	addNode(position.clone().add(new THREE.Vector3( size, size*2,    0)),false, new THREE.Vector3(0,-400,0));//5+8//mid
+	addNode(position.clone().add(new THREE.Vector3( size, size*2,-size)),false, new THREE.Vector3(0,-400,0));//6+8
+	addNode(position.clone().add(new THREE.Vector3(    0, size*2,-size)),false, new THREE.Vector3(0,-400,0));//7+8//mid
+	
+	addEdge(0+8, 1+8, 1.0, 0.284 , 30.0e6);
+	addEdge(1+8, 2+8, 1.0, 0.284 , 30.0e6);
+	addEdge(2+8, 3+8, 1.0, 0.284 , 30.0e6);
+	addEdge(3+8, 4+8, 1.0, 0.284 , 30.0e6);
+	addEdge(4+8, 5+8, 1.0, 0.284 , 30.0e6);
+	addEdge(5+8, 6+8, 1.0, 0.284 , 30.0e6);
+	addEdge(6+8, 7+8, 1.0, 0.284 , 30.0e6);
+	addEdge(7+8, 0+8, 1.0, 0.284 , 30.0e6);
+
+	addEdge(1+8, 3+8, 1.0, 0.284 , 30.0e6);
+	addEdge(3+8, 5+8, 1.0, 0.284 , 30.0e6);
+	addEdge(5+8, 7+8, 1.0, 0.284 , 30.0e6);
+	addEdge(7+8, 1+8, 1.0, 0.284 , 30.0e6);
+	
+	//left square
+
+	addNode(position.clone().add(new THREE.Vector3(-size, size,-size)),false, new THREE.Vector3(0,0,0));//0+16
+	addNode(position.clone().add(new THREE.Vector3( size, size,-size)),false, new THREE.Vector3(0,0,0));//1+16
+	
+	addEdge(0, 16, 1.0, 0.284 , 30.0e6);
+	addEdge(16, 8, 1.0, 0.284 , 30.0e6);
+
+	addEdge(6, 17, 1.0, 0.284 , 30.0e6);
+	addEdge(17, 14, 1.0, 0.284 , 30.0e6);
+
+	addEdge(16, 07, 1.0, 0.284 , 30.0e6);
+	addEdge(15, 16, 1.0, 0.284 , 30.0e6);
+	addEdge(17, 15, 1.0, 0.284 , 30.0e6);
+	addEdge(07, 17, 1.0, 0.284 , 30.0e6);
+
+	//right square
+	addNode(position.clone().add(new THREE.Vector3(-size, size, size)),false, new THREE.Vector3(0,0,0));//0+18
+	addNode(position.clone().add(new THREE.Vector3( size, size, size)),false, new THREE.Vector3(0,0,0));//1+18
+
+	addEdge(2, 18, 1.0, 0.284 , 30.0e6);
+	addEdge(18, 10, 1.0, 0.284 , 30.0e6);
+
+	addEdge(4, 19, 1.0, 0.284 , 30.0e6);
+	addEdge(19, 12, 1.0, 0.284 , 30.0e6);
+
+	addEdge(18, 03, 1.0, 0.284 , 30.0e6);
+	addEdge(11, 18, 1.0, 0.284 , 30.0e6);
+	addEdge(19, 11, 1.0, 0.284 , 30.0e6);
+	addEdge(03, 19, 1.0, 0.284 , 30.0e6);
+
+	//front square
+	addEdge(16, 01, 1.0, 0.284 , 30.0e6);
+	addEdge(09, 16, 1.0, 0.284 , 30.0e6);
+	addEdge(18, 09, 1.0, 0.284 , 30.0e6);
+	addEdge(01, 18, 1.0, 0.284 , 30.0e6);
+
+
+	//back square
+	addEdge(17, 05, 1.0, 0.284 , 30.0e6);
+	addEdge(13, 17, 1.0, 0.284 , 30.0e6);
+	addEdge(19, 13, 1.0, 0.284 , 30.0e6);
+	addEdge(05, 19, 1.0, 0.284 , 30.0e6);
+	
+}
+
+function createSimpleSetupnotRhino(size,position){
+	addNode(position.clone().add(new THREE.Vector3(-0, 2*size,-0)),true, new THREE.Vector3(0,0,0));//0
+	addNode(position.clone().add(new THREE.Vector3(-0,      0,-0)),true, new THREE.Vector3(0,0,0));//0
+	addNode(position.clone().add(new THREE.Vector3(2*size, size,)),false, new THREE.Vector3(0,-200,0));//0
+
+	addEdge(0, 2, 1.0, 0.284 , 30.0e6);
+	addEdge(1, 2, 2.0, 0.284 , 30.0e6);
+	
+}
+
+///old setups
+var setupSimple={
+	nodes: [
+	{
+		id: 'n0', 
+		parent: '11',
+		degrees_of_freedom:[0,1,2,3,4,5] ,
+		restrained_degrees_of_freedom:[true,true,true,true,true,true],
+		position: { x: 0, y: 10,z:0 },
+		force:{ x: 0, y: 0,z:0 },
+		displacement: { x: 0, y: -0,z:0 },
+		angle: { x: 0, y: 0,z:0 }
+	},
+	{
+		id: 'n1', 
+		parent: '11',
+		degrees_of_freedom:[6,7,8,9,10,11]  ,
+		restrained_degrees_of_freedom:[true,true,true,true,true,true],
+		position: { x: 0, y: 0,z:0  },
+		force:{ x: 0, y: 0 },
+		displacement: { x: 0, y: 0,z:0 },
+		angle: { x: 0, y: 0,z:0 }
+	},
+	{
+		id: 'n2',
+		parent: '11',
+		degrees_of_freedom:[12,13,14,15,16,17,18]  ,
+		restrained_degrees_of_freedom:[false,false,false,false,false,false],
+		position: { x: 10, y: 5,z:0  },
+		force:{ x: 0, y: -200,z:0 },
+		displacement: { x: 0, y: 0,z:0 },
+		angle: { x: 0, y: 0,z:0 }
+	}
+		],
+	edges: [
+		{ id: 'e0', source: 0, target: 2 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0 },
+		{ id: 'e1', source: 1, target: 2 ,area:2.0,density:0.284,stiffness:30.0e6,stress:0}
+	],
+
+	//material properties - AISI 1095 Carbon Steel (Spring Steel)
+	ndofs   : 3*6,
+
+	animation :  {
+	
+		showDisplacement : true,
+		exageration : 10000,
+		speed:3.0
+		
+	},
+	viz :  {
+	
+		
+		minStress:-500,
+		maxStress: 500,
+		colorMaps:[YlGnBu, winter, coolwarm,jet],
+		colorMap:0,
+		
+	},
+	solve: solveFea,
+	bar:false
+	
+};
+
+var oldVoxel={
+	nodes: [
+	{
+	  id: 'n0', 
+	  parent: '11',
+	  degrees_of_freedom:[0,1,2] , //todo automate
+	  restrained_degrees_of_freedom:[true,true,true],
+	  position: { x: 0, y: 0,z:0 },
+	  force:{ x: 0, y: 0,z:0 },
+	  displacement: { x: 0, y: 0,z:0 }
+	},
+	{
+		id: 'n1', 
+		parent: '11',
+		degrees_of_freedom:[3,4,5]  ,
+		restrained_degrees_of_freedom:[false,false,false],
+		position: { x: -5, y: 7.5,z:-5  },
+		force:{ x: 0, y: -200,z:0 },
+		displacement: { x: 0, y: 0,z:0 }
+	},
+	{
+		id: 'n2',
+		parent: '11',
+		degrees_of_freedom:[6,7,8]  ,
+		restrained_degrees_of_freedom:[false,false,false],
+		position: { x: -5, y: 7.5,z:5  },
+		force:{ x: 0, y: -200,z:0 },
+		displacement: { x: 0, y: 0,z:0 }
+	},
+	{
+		id: 'n3',
+		parent: '11',
+		degrees_of_freedom:[9,10,11]  ,
+		restrained_degrees_of_freedom:[false,false,false],
+		position: { x: 5, y: 7.5,z:5  },
+		force:{ x: 0, y:-200,z:0 },
+		displacement: { x: 0, y: 0,z:0 }
+	},
+	{
+		id: 'n4',
+		parent: '11',
+		degrees_of_freedom:[12,13,14]  ,
+		restrained_degrees_of_freedom:[false,false,false],
+		position: { x: 5, y: 7.5,z: -5  },
+		force:{ x: 0, y: -200,z:0 },
+		displacement: { x: 0, y: 0,z:0 }
+	},
+	{
+		id: 'n5',
+		parent: '11',
+		degrees_of_freedom:[15,16,17]  ,
+		restrained_degrees_of_freedom:[false,false,false],
+		position: { x: 0, y: 15,z: 0  },
+		force:{ x: 0, y: -400,z:0 },
+		displacement: { x: 0, y: 0,z:0 }
+	}
+  	],
+	edges: [
+		{ id: 'e0', source: 0, target: 1 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0 },
+		{ id: 'e1', source: 0, target: 2 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0 },
+		{ id: 'e2', source: 0, target: 3 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0 },
+		{ id: 'e3', source: 0, target: 4 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0 },
+
+		{ id: 'e4', source: 1, target: 2 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0 },
+		{ id: 'e5', source: 2, target: 3 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0 },
+		{ id: 'e6', source: 3, target: 4 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0 },
+		{ id: 'e7', source: 4, target: 1 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0 },
+
+		{ id: 'e8', source: 5, target: 1 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0 },
+		{ id: 'e9', source: 5, target: 2 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0 },
+		{ id: 'e10', source: 5, target: 3 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0 },
+		{ id: 'e11', source: 5, target: 4 ,area:1.0,density:0.284,stiffness:30.0e6,stress:0 },
+
+	],
+	//material properties - AISI 1095 Carbon Steel (Spring Steel)
+	ndofs   : 6*3,
+
+	animation :  {
+	
+		showDisplacement : true,
+		exageration : 10000,
+		speed:3.0
+		
+	},
+	viz :  {
+	
+		
+		minStress:-500,
+		maxStress: 500,
+		colorMaps:[YlGnBu, winter, coolwarm,jet],
+		colorMap:0,
+		
+	},
+	solve: solveFea,
+	bar:true
+	
+};
+
+var setupEmpty={//empty
+	nodes: [
+		],
+	edges: [
+		],
+
+	//material properties - AISI 1095 Carbon Steel (Spring Steel)
+	ndofs   : 3*6,
+
+	animation :  {
+	
+		showDisplacement : true,
+		exageration : 2000,
+		speed:3.0
+		
+	},
+	viz :  {
+	
+		
+		minStress:-500,
+		maxStress: 500,
+		colorMaps:[coolwarm,YlGnBu, winter ,jet],
+		colorMap:0,
+		
+	},
+	solve: solveFea,
+	bar:false
+	
+};
+
+/////////////////////drawing utils//////////////////////
+
+function addNode(position,restrained,force){
+	var bar=setup.bar;
+	var numNode=setup.nodes.length;
+	setup.nodes.push({
+		id: 'n'+numNode, 
+		parent: '11',
+		degrees_of_freedom:[numNode*3,numNode*3+1,numNode*3+2] , 
+		restrained_degrees_of_freedom:[restrained,restrained,restrained],
+		position: toPos(position),
+		force:toPos(force),
+		displacement: { x: 0, y: 0,z:0 },
+        angle: { x: 0, y: 0,z:0 }
+    });
+    
+	setup.nodes[numNode].id='n'+numNode;
+	setup.nodes[numNode].position=toPos(position);
+	setup.nodes[numNode].force=toPos(force);
+	setup.nodes[numNode].degrees_of_freedom=[numNode*3,numNode*3+1,numNode*3+2];
+	setup.nodes[numNode].restrained_degrees_of_freedom=[restrained,restrained,restrained];
+	setup.ndofs = 3 * setup.nodes.length;
+	if(!bar){
+		setup.nodes[numNode].degrees_of_freedom=[numNode*6,numNode*6+1,numNode*6+2,numNode*6+3,numNode*6+4,numNode*6+5];
+		if(restrained){
+			restrained=[true,true,true,true,true,true];
+		}else{
+			restrained=[false,false,false,false,false,false];
+		}
+		setup.nodes[numNode].restrained_degrees_of_freedom=restrained;
+		setup.ndofs = 6 * setup.nodes.length;
+	}
+}
+
+function addEdge(source,target,area,density,stiffness){
+    if (edgeNeeded(source,target)){
+        var numEdge=setup.edges.length;
+
+        setup.edges.push({ id: 'e'+numEdge, source: source, target: target ,area:area,density:density,stiffness:stiffness,stress:0 });
+
+        // setup.edges[numEdge].id='e'+numEdge;
+        // setup.edges[numEdge].source=source;
+        // setup.edges[numEdge].target=target;
+        // setup.edges[numEdge].area=area;
+        // setup.edges[numEdge].density=density;
+        // setup.edges[numEdge].stiffness=stiffness;
+
+    }
+	
+}
+
+function checkandAdd(pos){
+    var restrained=false;
+    var force= new THREE.Vector3(0,0,0);
+    var node=nodeAt(setup,pos);
+    if(typeof node === 'undefined'){ //doesn't exist
+        addNode(toThreeVec(pos),restrained, force);
+        return parseInt(setup.nodes[setup.nodes.length-1].id.substring(1));
+        
+    }else{
+
+        // setup.nodes.find(v => v.name === node.name).enabled = false;
+        // if(restrained){
+        //     restrain(node.id)
+        // }
+        // addForce(node.id,force);
+        return parseInt(node.id.substring(1));//return name
+    }
+    
+}
+
+function linkNodes(nodesIndices){ //create square/circle 
+    for(var i=0;i<nodesIndices.length-1;i++){
+        addEdge(nodesIndices[i], nodesIndices[i+1], 1.0, 0.284 , 30.0e6);
+
+    }
+    addEdge(nodesIndices[nodesIndices.length-1], nodesIndices[0], 1.0, 0.284 , 30.0e6);
+}
+
+function restrain(name){
+    var restrained;
+    if(!setup.bar){
+        restrained=[true,true,true,true,true,true];
+    }else{
+        restrained=[true,true,true];
+    }
+    setup.nodes.find(v => v.id === name).restrained_degrees_of_freedom=restrained;
+    
+}
+
+function addForce(name,force){
+    var node=setup.nodes.find(v => v.id === name);
+    node.force.x += force.x;
+    node.force.y += force.y;
+    node.force.z += force.z;
+}
+
+function restrainBelow(y){
+    for(var i=0;i<setup.nodes.length;i++){
+        if(setup.nodes[i].position.y<=y){
+            if(setup.bar){
+                setup.nodes[i].restrained_degrees_of_freedom=[true,true,true];
+            }else{
+                setup.nodes[i].restrained_degrees_of_freedom=[true,true,true,true,true,true];
+            }
+        }
+    }
+}
+
+function addForceAbove(y,force){
+    for(var i=0;i<setup.nodes.length;i++){
+        if(setup.nodes[i].position.y>=y){
+            setup.nodes[i].force.x += force.x;
+            setup.nodes[i].force.y += force.y;
+            setup.nodes[i].force.z += force.z;
+        }
+    }
+}
+
+////////////
\ No newline at end of file
diff --git a/01_Code/physical_computing_interface/simulation/visualization/main.js b/01_Code/physical_computing_interface/simulation/visualization/main.js
new file mode 100644
index 0000000000000000000000000000000000000000..91f0247fe6b61bbed16b6bbbd35704bce1dd4cbf
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/visualization/main.js
@@ -0,0 +1,379 @@
+var color1= 0xffffff; /*white*/
+var color2= 0x020227;  /*kohly*/
+var color3= 0x1c5c61; /*teal*/
+var color4= "#fa6e70"; //red/orange
+var color5="#380152"; //purple
+var color6="#696767"; //grey
+var setup;
+var simulationContainerName="simulation";
+var simulationContainerName1="webgl1";
+var simulationContainer1=document.getElementById( simulationContainerName1 );
+var simulationContainer=document.getElementById( simulationContainerName );
+
+
+
+function gui(){
+	var gui = new dat.GUI();
+	var f1 = gui.addFolder('Displacement Animation');
+	f1.add(setup.animation, 'showDisplacement');
+	f1.add(setup.animation, 'exageration', 0, 10000);
+	f1.add(setup.animation, 'speed', 0, 5);
+
+	var f2 = gui.addFolder('Stresses Visualization');
+	f2.add(setup.viz, 'minStress', -1000, 0).listen();
+	f2.add(setup.viz, 'maxStress', 0, 1000).listen();
+	f2.add(setup.viz, 'colorMap', {coolwarm:0, YlGnBu:1, winter:2,jet:3});
+
+	// gui.add(setup, 'solve');
+
+	for (j in f2.__controllers) f2.__controllers[j].onChange (colorEdges);
+	
+}
+
+var line, renderer, scene, camera, camera2, controls;
+var line1;
+var matLineBasic, matLineDashed;
+var stats;
+// var gui;
+// viewport
+// var insetWidth;
+// var insetHeight;
+var counter=0;
+var clock = new THREE.Clock();
+
+function init() {
+	renderer = new THREE.WebGLRenderer( { antialias: true } );
+	renderer.setPixelRatio( window.devicePixelRatio );
+	renderer.setClearColor( color1, 1.0 );
+	renderer.setSize( getWidth(), getHeight() );
+	simulationContainer1.appendChild( renderer.domElement );
+	scene = new THREE.Scene();
+	camera = new THREE.PerspectiveCamera( 40, getWidth() / getHeight(), 1, 1000 );
+	camera.position.set( - 40, 0, 60 );
+
+	controls = new THREE.OrbitControls( camera, renderer.domElement );
+	controls.minDistance = 10;
+	controls.maxDistance = 500;
+	matLineBasic = new THREE.LineMaterial( {
+		color: 0xffffff,
+		linewidth: 5, // in pixels
+		vertexColors: THREE.VertexColors,
+		//resolution:  // to be set by renderer, eventually
+		dashed: false,
+		visible:false
+	} );
+	// matLineDashed = new THREE.LineMaterial( {
+	// 	color: 0xffffff,
+	// 	linewidth: 5, // in pixels
+	// 	vertexColors: THREE.VertexColors,
+	// 	//resolution:  // to be set by renderer, eventually
+	// 	dashed: true,
+	// 	dashSize : 1.0,
+	// 	gapSize : 1.0
+
+	// } );
+	
+	// matLineDashed.defines.USE_DASH = ""; 
+	matLineDashed = new THREE.LineMaterial( {
+		color: 0xffffff,
+		linewidth: 5, // in pixels
+		vertexColors: THREE.VertexColors,
+		//resolution:  // to be set by renderer, eventually
+		dashed: false
+	} );
+
+	
+	
+	
+	
+	
+
+	var helper = new THREE.GridHelper( 50, 50 );
+    helper.position.y = -5;
+    helper.material.opacity = 0.5;
+    helper.material.transparent = true;
+	// scene.add( helper );
+	
+	// draw forces
+	
+	// draw degrees of freedom
+	simulationContainer.addEventListener( 'resize', onWindowResize, false );
+	onWindowResize();
+
+	// gui();
+	
+	
+}
+//////////////////////Threejs utils//////////////////////////////////////
+
+function drawStructure(){
+	//draw edges
+	for(var i=0;i<setup.edges.length;i++){
+		createEdge(setup.nodes[setup.edges[i].source].position,setup.nodes[setup.edges[i].target].position,setup.edges[i].id),false;
+		createEdge(setup.nodes[setup.edges[i].source].position,setup.nodes[setup.edges[i].target].position,setup.edges[i].id,true);
+	}
+	
+	// draw nodes
+	for(var i=0;i<setup.nodes.length;i++){
+		createNode(setup.nodes[i].position,setup.nodes[i].id,false,setup.nodes[i].restrained_degrees_of_freedom[0]);
+		createNode(setup.nodes[i].position,setup.nodes[i].id,true,setup.nodes[i].restrained_degrees_of_freedom[0]);
+	}
+
+	drawForces();
+}
+
+function createEdge(fromPoint,toPoint,name,displacement){
+
+	fromPoint=toThreeVec(fromPoint);
+	toPoint=toThreeVec(toPoint);
+	var positions = [];
+	var colors = [];
+	var points =[fromPoint,toPoint];
+
+	var spline = new THREE.CatmullRomCurve3( points );
+	var divisions = Math.round( 12 * points.length );
+
+	var color = new THREE.Color();
+
+	for ( var i = 0, l = divisions; i <= l; i ++ ) {
+		var point = spline.getPoint( i / l );
+		positions.push( point.x, point.y, point.z );
+		
+		// color.setHSL( i / l, 1.0, 0.5 );
+		color=interpolateLinearly(i / l, setup.viz.colorMaps[setup.viz.colorMap]);
+		// color=interpolateLinearly(i / l, coolwarm);
+		colors.push( color[0], color[1], color[2]);
+	}
+
+	var geometry = new THREE.LineGeometry();
+	geometry.setPositions( positions );
+	geometry.setColors( colors );
+	
+	
+	var line;
+	if(displacement){
+		line = new THREE.Line2( geometry, matLineDashed );
+	}else{
+		line = new THREE.Line2( geometry, matLineBasic );
+	}
+	line.computeLineDistances();
+	line.scale.set( 1, 1, 1 );
+	
+	if(displacement){
+		line.name='d'+name;
+	}else{
+		line.name=name;
+	}
+	
+	scene.add( line );
+
+}
+
+function createNode(point,name,displacement,restrained){
+	var geometry = new THREE.BoxGeometry( 1, 1, 1 );
+	var material;
+
+	if(restrained){
+		material = new THREE.MeshBasicMaterial( {color: color4} );
+	}else{
+		material = new THREE.MeshBasicMaterial( {color: color3} );
+	}
+
+	if(displacement){
+		material.transparent=true;
+		material.opacity=0.7;
+	}else{
+		material.transparent=true;
+		material.opacity=0.0;
+
+	}
+	var cube = new THREE.Mesh( geometry, material );
+	cube.position.set(point.x, point.y, point.z);
+	cube.scale.set(0.5, 0.5,0.5);
+	
+	if(displacement){
+		cube.name='d'+name;
+	}else{
+		cube.name=name;
+	}
+	scene.add( cube );
+
+}
+
+function editEdge(fromPoint,toPoint,name){
+	var edge = scene.getObjectByName(name);
+	var positions = [];
+	var points =[fromPoint,toPoint];
+
+	var spline = new THREE.CatmullRomCurve3( points );
+	var divisions = Math.round( 12 * points.length );
+
+	// var color = new THREE.Color();
+
+	for ( var i = 0, l = divisions; i <=l; i ++ ) {
+		var point = spline.getPoint( i / l );
+		positions.push( point.x, point.y, point.z );
+		
+	}
+	// edge.geometry.setDrawRange( 0, newValue );
+	// edge.geometry.setPositions( positions );
+	// edge.geometry.attributes.position.needsUpdate = true; 
+	edge.geometry.setPositions( positions );
+	// geometry.setColors( colors );
+	
+	
+}
+
+function drawForces(){
+	for(var i=0;i<setup.nodes.length;i++){
+		
+		var dx=0.1;
+		var o=toThreeVec(setup.nodes[i].position);
+		var dir = toThreeVec(setup.nodes[i].force);
+		var length = dir.length ();
+		dir.normalize();
+		var scale=0.002;
+		if(length!=0){
+			var arrowhelper=new THREE.ArrowHelper( dir, o.sub(dir), scale*length, color4 ,scale*length, scale*length);
+			// var arrowhelper=new THREE.ArrowHelper( dir, o.sub(dir), scale*length, color5);
+			scene.add(arrowhelper);
+		}
+	}
+}
+
+///////
+function animate() {
+	requestAnimationFrame( animate );
+	// main scene
+	onWindowResize() ;
+
+	renderer.setClearColor( color1, 1 );
+	renderer.setViewport( 0, 0, getWidth(), getHeight() );
+	
+	// renderer will set this eventually
+	matLineBasic.resolution.set(  getWidth(), getHeight() ); // resolution of the viewport
+	matLineDashed.resolution.set( getWidth(),getHeight() ); // resolution of the viewport
+	renderer.render( scene, camera );
+
+	var timeElapsed = clock.getElapsedTime();
+	var speed=setup.animation.speed;
+	var exageration=setup.animation.exageration;
+	// var exageration=0.01;
+	
+	if(setup.animation.showDisplacement){
+		//displacement animation edges
+		for(var i=0;i<setup.edges.length;i++){
+			var fromPoint=new THREE.Vector3(0,0,0);
+			var toPoint=new THREE.Vector3(0,0,0);
+			var node1=setup.nodes[setup.edges[i].source];
+			var node2=setup.nodes[setup.edges[i].target];
+			fromPoint.x = node1.position.x+node1.displacement.x*exageration+ Math.sin(timeElapsed*speed)* node1.displacement.x*exageration ;
+			fromPoint.y = node1.position.y+node1.displacement.y*exageration+ Math.sin(timeElapsed*speed)* node1.displacement.y*exageration ;
+			fromPoint.z = node1.position.z+node1.displacement.z*exageration+ Math.sin(timeElapsed*speed)* node1.displacement.z*exageration ;
+			toPoint.x   = node2.position.x+node2.displacement.x*exageration+ Math.sin(timeElapsed*speed)* node2.displacement.x*exageration ;
+			toPoint.y   = node2.position.y+node2.displacement.y*exageration+ Math.sin(timeElapsed*speed)* node2.displacement.y*exageration ;
+			toPoint.z   = node2.position.z+node2.displacement.z*exageration+ Math.sin(timeElapsed*speed)* node2.displacement.z*exageration ;
+
+			editEdge(fromPoint,toPoint,'d'+setup.edges[i].id);
+			
+		}
+		//displacement animation nodes
+		for(var i=0;i<setup.nodes.length;i++){
+			var node = scene.getObjectByName('d'+setup.nodes[i].id);
+			// var origPos=toThreeVec(setup.nodes[i].position);
+			// var displacement=toThreeVec(setup.nodes[i].displacement).multiplyScalar(exageration);
+			// var currPos=origPos.clone().addVectors(displacement,displacement.clone().multiplyScalar(Math.sin(timeElapsed*speed)));
+			// nodeD.position.set(currPos.x,currPos.y,currPos.z);
+			node.position.x = setup.nodes[i].position.x+setup.nodes[i].displacement.x*exageration+ Math.sin(timeElapsed*speed)* setup.nodes[i].displacement.x*exageration ;
+			node.position.y = setup.nodes[i].position.y+setup.nodes[i].displacement.y*exageration+ Math.sin(timeElapsed*speed)* setup.nodes[i].displacement.y*exageration ;
+			node.position.z = setup.nodes[i].position.z+setup.nodes[i].displacement.z*exageration+ Math.sin(timeElapsed*speed)* setup.nodes[i].displacement.z*exageration ;
+
+			node.rotation.x = 0+setup.nodes[i].angle.x*exageration+ Math.sin(timeElapsed*speed)* setup.nodes[i].angle.x*exageration ;
+			node.rotation.y = 0+setup.nodes[i].angle.y*exageration+ Math.sin(timeElapsed*speed)* setup.nodes[i].angle.y*exageration ;
+			node.rotation.z = 0+setup.nodes[i].angle.z*exageration+ Math.sin(timeElapsed*speed)* setup.nodes[i].angle.z*exageration ;
+		
+		}
+
+	}
+	
+}
+
+function animateEuler() {
+	requestAnimationFrame( animateEuler );
+	// main scene
+	renderer.setClearColor( color2, 1 );
+	renderer.setViewport( 0, 0, getWidth(), getHeight() );
+	// renderer will set this eventually
+	matLineBasic.resolution.set(  getWidth(), getHeight() ); // resolution of the viewport
+	matLineDashed.resolution.set( getWidth(), getHeight() ); // resolution of the viewport
+	renderer.render( scene, camera );
+
+	var timeElapsed = clock.getElapsedTime();
+	var speed=setup.animation.speed;
+	var exageration=setup.animation.exageration;
+	// var exageration=0.01;
+
+	doTimeStep(setup,dt);
+
+	if(setup.animation.showDisplacement){
+		//displacement animation edges
+		// for(var i=0;i<setup.edges.length;i++){
+		// 	var fromPoint=new THREE.Vector3(0,0,0);
+		// 	var toPoint=new THREE.Vector3(0,0,0);
+		// 	var node1=setup.nodes[setup.edges[i].source];
+		// 	var node2=setup.nodes[setup.edges[i].target];
+		// 	fromPoint.x = node1.position.x+node1.displacement.x*exageration+ Math.sin(timeElapsed*speed)* node1.displacement.x*exageration ;
+		// 	fromPoint.y = node1.position.y+node1.displacement.y*exageration+ Math.sin(timeElapsed*speed)* node1.displacement.y*exageration ;
+		// 	fromPoint.z = node1.position.z+node1.displacement.z*exageration+ Math.sin(timeElapsed*speed)* node1.displacement.z*exageration ;
+		// 	toPoint.x   = node2.position.x+node2.displacement.x*exageration+ Math.sin(timeElapsed*speed)* node2.displacement.x*exageration ;
+		// 	toPoint.y   = node2.position.y+node2.displacement.y*exageration+ Math.sin(timeElapsed*speed)* node2.displacement.y*exageration ;
+		// 	toPoint.z   = node2.position.z+node2.displacement.z*exageration+ Math.sin(timeElapsed*speed)* node2.displacement.z*exageration ;
+
+		// 	editEdge(fromPoint,toPoint,'d'+setup.edges[i].id);
+			
+		// }
+		//displacement animation nodes
+		for(var i=0;i<setup.nodes.length;i++){
+			var node = scene.getObjectByName('d'+setup.nodes[i].id);
+			// var origPos=toThreeVec(setup.nodes[i].position);
+			// var displacement=toThreeVec(setup.nodes[i].displacement).multiplyScalar(exageration);
+			// var currPos=origPos.clone().addVectors(displacement,displacement.clone().multiplyScalar(Math.sin(timeElapsed*speed)));
+			// nodeD.position.set(currPos.x,currPos.y,currPos.z);
+			node.position.x = setup.nodes[i].currPosition.x;
+			node.position.y = setup.nodes[i].currPosition.y;
+			node.position.z = setup.nodes[i].currPosition.z;
+
+			// node.rotation.x = 0+setup.nodes[i].angle.x*exageration+ Math.sin(timeElapsed*speed)* setup.nodes[i].angle.x*exageration ;
+			// node.rotation.y = 0+setup.nodes[i].angle.y*exageration+ Math.sin(timeElapsed*speed)* setup.nodes[i].angle.y*exageration ;
+			// node.rotation.z = 0+setup.nodes[i].angle.z*exageration+ Math.sin(timeElapsed*speed)* setup.nodes[i].angle.z*exageration ;
+		
+		}
+
+	}
+	
+}
+
+function onWindowResize() {
+	camera.aspect = getWidth() / getHeight();
+	camera.updateProjectionMatrix();
+	renderer.setSize( getWidth(), getHeight() );
+}
+
+var getWidth=function(){
+    // return container.style.width;
+    return $('#'+simulationContainerName).width() ;
+};
+
+var getHeight=function(){
+    // return container.style.height;
+    return $('#'+simulationContainerName).height() ;
+};
+
+
+
+
+
+
+
+
+
diff --git a/01_Code/physical_computing_interface/simulation/visualization/utils.js b/01_Code/physical_computing_interface/simulation/visualization/utils.js
new file mode 100644
index 0000000000000000000000000000000000000000..8da5e8594ac94caeb4473dbd3f17ea3ba317871f
--- /dev/null
+++ b/01_Code/physical_computing_interface/simulation/visualization/utils.js
@@ -0,0 +1,267 @@
+////////////utils/////////////////////
+function map (value, x1, y1, x2, y2) {
+	return (value - x1) * (y2 - x2) / (y1 - x1) + x2;
+}
+
+function enforceBounds(x) {
+	if (x < 0) {
+		return 0;
+	} else if (x > 1){
+		return 1;
+	} else {
+		return x;
+	}
+}
+
+function interpolateLinearly(x, values) {
+	// Split values into four lists
+	var x_values = [];
+	var r_values = [];
+	var g_values = [];
+	var b_values = [];
+	for (i in values) {
+		x_values.push(values[i][0]);
+		r_values.push(values[i][1][0]);
+		g_values.push(values[i][1][1]);
+		b_values.push(values[i][1][2]);
+	}
+	var i = 1;
+	while (x_values[i] < x) {
+		i = i+1;
+	}
+	i = i-1;
+	var width = Math.abs(x_values[i] - x_values[i+1]);
+	var scaling_factor = (x - x_values[i]) / width;
+	// Get the new color values though interpolation
+	var r = r_values[i] + scaling_factor * (r_values[i+1] - r_values[i])
+	var g = g_values[i] + scaling_factor * (g_values[i+1] - g_values[i])
+	var b = b_values[i] + scaling_factor * (b_values[i+1] - b_values[i])
+	return [enforceBounds(r), enforceBounds(g), enforceBounds(b)];
+}
+
+function toThreeVec(point){
+	return new THREE.Vector3(point.x,point.y,point.z);
+}
+
+function toPosition(array){
+	return { x:array[0] ,y:array[1],z:array[2]};
+
+}
+
+function toTf3D(point){
+	return tf.tensor([point.x,point.y,point.z]);
+
+}
+
+function toPos(point){
+	return { x:point.x ,y:point.y,z:point.z};
+
+}
+
+function tf_delete(tensor,remove_indices,axis){
+	var unstacked=tf.unstack(tensor,axis);
+	var newTensor=[];
+	for(var i=0;i<unstacked.length;i++){
+		if(!remove_indices.includes(i)){
+			newTensor.push(unstacked[i]);
+		}
+	}
+	return tf.stack(newTensor,axis);
+}
+
+function add(p1,p2){
+    return {x:p1.x+p2.x,y:p1.y+p2.y,z:p1.z+p2.z};
+}
+
+//////////nodes///////////////
+
+function nodeAt(setup,pos){
+    return setup.nodes.find(node => node.position.x==pos.x && node.position.y== pos.y && node.position.z== pos.z);
+    return setup.nodes.filter(node => node.position.x==pos.x && node.position.y== pos.y && node.position.z== pos.z);
+}
+function getNodebyName(setup,name){
+    return setup.nodes.find(node => node.name===name);
+}
+function edgeNeeded(source,target){
+    var e=setup.edges.find(edge => (edge.source===source && edge.target===target) || (edge.source===target && edge.target===source));
+    var b=(typeof e === 'undefined');
+    return b;
+}
+
+////////////////
+
+function updateDisplacement(X){
+	var count=0;
+	for(var i=0;i<setup.nodes.length;i++){
+		if(!setup.nodes[i].restrained_degrees_of_freedom[0]){
+			setup.nodes[i].displacement.x =X[count++];
+		}
+		if(!setup.nodes[i].restrained_degrees_of_freedom[1]){
+			setup.nodes[i].displacement.y =X[count++];
+		}
+		if(!setup.nodes[i].restrained_degrees_of_freedom[2]){
+			setup.nodes[i].displacement.z =X[count++];
+		}
+		if(!setup.bar){
+			if(!setup.nodes[i].restrained_degrees_of_freedom[3]){
+				setup.nodes[i].angle.x =X[count++];
+			}
+			if(!setup.nodes[i].restrained_degrees_of_freedom[4]){
+				setup.nodes[i].angle.y =X[count++];
+			}
+			if(!setup.nodes[i].restrained_degrees_of_freedom[5]){
+				setup.nodes[i].angle.z =X[count++];
+			}
+		}
+	}
+}
+
+function updateStresses(S){
+	
+	setup.viz.minStress=Math.min(...S)*1.1;
+	setup.viz.maxStress=Math.max(...S)*1.1;
+
+	var count=0;
+	for(var ii=0;ii<setup.edges.length;ii++){
+		var element=setup.edges[ii];
+		element.stress=S[ii];
+	}
+	if(!node){
+		colorEdges();
+	}
+	
+}
+
+function colorEdges(){
+	for(var ii=0;ii<setup.edges.length;ii++){
+		var element=setup.edges[ii];
+		colorEdge(element.stress,element.id);
+		colorEdge(element.stress,'d'+element.id);
+	}
+}
+
+function colorEdge(val,name){
+	
+	var colors = [];
+	var val=map(val,setup.viz.minStress,setup.viz.maxStress,1.0,0.0);
+	var divisions = Math.round( 12 * 2 );
+
+	for ( var i = 0, l = divisions; i <= l; i ++ ) {
+		color=interpolateLinearly(val, setup.viz.colorMaps[setup.viz.colorMap]);
+		colors.push( color[0], color[1], color[2]);
+	}
+	var edge = scene.getObjectByName(name);
+	edge.geometry.setColors( colors );
+
+}
+
+//////////inverse///////////////
+// Lower Upper Solver
+function lusolve(A, b, update) {
+	var lu = ludcmp(A, update)
+	if (lu === undefined){
+		console.log("Singular Matrix!")
+		return // Singular Matrix!
+	} 
+	return lubksb(lu, b, update)
+}
+ 
+// Lower Upper Decomposition
+function ludcmp(A, update) {
+	// A is a matrix that we want to decompose into Lower and Upper matrices.
+	var d = true;
+	var n = A.length;
+	// var n= A.shape[0];
+	var idx = new Array(n) // Output vector with row permutations from partial pivoting
+	var vv = new Array(n)  // Scaling information
+ 
+	for (var i=0; i<n; i++) {
+		var max = 0
+		for (var j=0; j<n; j++) {
+			var temp = Math.abs(A[i][j])
+			if (temp > max) max = temp
+		}
+		if (max == 0) return // Singular Matrix!
+		vv[i] = 1 / max // Scaling
+	}
+ 
+	if (!update) { // make a copy of A 
+		var Acpy = new Array(n)
+		for (var i=0; i<n; i++) {		
+			var Ai = A[i] 
+			Acpyi = new Array(Ai.length)
+			for (j=0; j<Ai.length; j+=1) Acpyi[j] = Ai[j]
+			Acpy[i] = Acpyi
+		}
+		A = Acpy
+	}
+ 
+	var tiny = 1e-20 // in case pivot element is zero
+	for (var i=0; ; i++) {
+		for (var j=0; j<i; j++) {
+			var sum = A[j][i]
+			for (var k=0; k<j; k++) sum -= A[j][k] * A[k][i];
+			A[j][i] = sum
+		}
+		var jmax = 0
+		var max = 0;
+		for (var j=i; j<n; j++) {
+			var sum = A[j][i]
+			for (var k=0; k<i; k++) sum -= A[j][k] * A[k][i];
+			A[j][i] = sum
+			var temp = vv[j] * Math.abs(sum)
+			if (temp >= max) {
+				max = temp
+				jmax = j
+			}
+		}
+		if (i <= jmax) {
+			for (var j=0; j<n; j++) {
+				var temp = A[jmax][j]
+				A[jmax][j] = A[i][j]
+				A[i][j] = temp
+			}
+			d = !d;
+			vv[jmax] = vv[i]
+		}
+		idx[i] = jmax;
+		if (i == n-1) break;
+		var temp = A[i][i]
+		if (temp == 0) A[i][i] = temp = tiny
+		temp = 1 / temp
+		for (var j=i+1; j<n; j++) A[j][i] *= temp
+	}
+	return {A:A, idx:idx, d:d}
+}
+ 
+// Lower Upper Back Substitution
+function lubksb(lu, b, update) {
+	// solves the set of n linear equations A*x = b.
+	// lu is the object containing A, idx and d as determined by the routine ludcmp.
+	var A = lu.A
+	var idx = lu.idx
+	var n = idx.length
+ 
+	if (!update) { // make a copy of b
+		var bcpy = new Array(n) 
+		for (var i=0; i<b.length; i+=1) bcpy[i] = b[i]
+		b = bcpy
+	}
+ 
+	for (var ii=-1, i=0; i<n; i++) {
+		var ix = idx[i]
+		var sum = b[ix]
+		b[ix] = b[i]
+		if (ii > -1)
+			for (var j=ii; j<i; j++) sum -= A[i][j] * b[j]
+		else if (sum)
+			ii = i
+		b[i] = sum
+	}
+	for (var i=n-1; i>=0; i--) {
+		var sum = b[i]
+		for (var j=i+1; j<n; j++) sum -= A[i][j] * b[j]
+		b[i] = sum / A[i][i]
+	}
+	return b // solution vector x
+}
\ No newline at end of file
diff --git a/01_Code/physical_computing_interface/style.css b/01_Code/physical_computing_interface/style.css
index 106c2044b7b4f242ad93857a4e2f193ef7b9de4a..441e38d8dc098c82ea9a279ad432ec533dede4aa 100644
--- a/01_Code/physical_computing_interface/style.css
+++ b/01_Code/physical_computing_interface/style.css
@@ -94,6 +94,14 @@ body,html{width:100%;height:100%;padding:0;margin:0;}
     color: var(--color2);
 }
 
+#webgl1{
+    top:100;
+    bottom: var(--bottom);
+    overflow-y: hidden;
+    font-family: var(--font);
+    color: var(--color2);
+}
+
 #graph{
     background-color: var(--color2);
     /* background-image: linear-gradient(+90deg, #ffffff, #ffffff); */