├── .gitignore ├── svg ├── center.svg ├── clear.svg └── github.svg ├── index.html ├── license.md ├── readme.md ├── css └── main.css └── js ├── main.js ├── connectome.js └── constants.js /.gitignore: -------------------------------------------------------------------------------- 1 | weights.txt 2 | extract_weights_to_json.py 3 | .vscode/ 4 | -------------------------------------------------------------------------------- /svg/center.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 10 | 11 | -------------------------------------------------------------------------------- /svg/clear.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 10 | 11 | -------------------------------------------------------------------------------- /svg/github.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | GitHub icon 8 | 14 | 15 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | C. Elegans Sim 6 | 7 | 8 | 9 | 10 | 11 |
12 | 16 | 17 | 18 | 19 |
20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /license.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) [2017] [Seth Miller] 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # worm-sim 2 | 3 | The tiny worm C. elegans is one of the simplest multicellular organisms, and one of the only organisms in the world to have its connectome (neuron map) completed. 4 | 5 | Despite being so simple, C. elegans exhibits several complex behaviors. They will attempt to move towards food when they sense it, and move around obstacles when they make contact. After viewing a [video](https://www.youtube.com/watch?v=YWQnzylhgHc) of a connectome being used to simulate a worm brain and control a GoPiGo robot, I wanted to see if something similar could be done in the browser. 6 | 7 | In this demo, hunger neurons are continuously stimulated. If the worm nears food, food sensing neurons are stimulated. If the worm reaches the edge of the window, nose touch sensory neurons are stimulated. 8 | 9 | ## Usage 10 | Head on over to [heyseth.github.io/worm-sim/](https://heyseth.github.io/worm-sim/) and watch the worm wriggle around. Click to place down food. The green dots at the top are a visual representation of the connectome, with each dot representing a neuron (increased opacity = increased activity). There are buttons to hide the connectome, reset the worm's position, and to clear placed down food. 11 | 12 | To reiterate, the worm you see on your screen is being controlled entirely by a simulated virtual worm brain. Very cool if you ask me! 13 | 14 | ## License 15 | 16 | This project is licensed under the MIT License - see the license.md file for details. 17 | 18 | ## Acknowledgments 19 | Huge thanks to: 20 | * Timothy Busbice, Gabriel Garrett, Geoffrey Churchill, and all other contributors to the [GoPiGo Connectome](https://github.com/Connectome/GoPiGo). 21 | * [Zach Rispoli](https://github.com/zrispo), for porting the connectome to JavaScript. 22 | * [ARTsinn](http://jsfiddle.net/user/ARTsinn/fiddles/), for their awesome canvas worm demo, which served as inspiration for this project. 23 | -------------------------------------------------------------------------------- /css/main.css: -------------------------------------------------------------------------------- 1 | html, 2 | body { 3 | margin: 0; 4 | padding: 0; 5 | overflow: hidden; 6 | } 7 | 8 | canvas { 9 | display: block; 10 | background-color: #222; 11 | } 12 | 13 | .brainNode { 14 | border-radius: 50%; 15 | display: inline-block; 16 | height: 3vmin; 17 | width: 3vmin; 18 | text-align: center; 19 | transition: opacity .5s; 20 | /* trigger hardware acceleration */ 21 | -webkit-transform: translate3d(0, 0, 0); 22 | -webkit-transform: translateZ(0); 23 | -webkit-transform-style: preserve-3d; 24 | will-change: transform; 25 | -webkit-backface-visibility: hidden; 26 | } 27 | 28 | #nodeHolder { 29 | position: absolute; 30 | top: 0; 31 | transition: opacity .5s; 32 | line-height: 0; 33 | } 34 | 35 | .switch { 36 | position: relative; 37 | display: inline-block; 38 | width: 60px; 39 | height: 34px; 40 | } 41 | 42 | .switch input { 43 | display: none; 44 | } 45 | 46 | .slider { 47 | position: absolute; 48 | cursor: pointer; 49 | top: 0; 50 | left: 0; 51 | right: 0; 52 | bottom: 0; 53 | background-color: #ccc; 54 | -webkit-transition: .4s; 55 | transition: .4s; 56 | } 57 | 58 | .slider:before { 59 | position: absolute; 60 | content: ""; 61 | height: 26px; 62 | width: 26px; 63 | left: 4px; 64 | bottom: 4px; 65 | background-color: white; 66 | -webkit-transition: .4s; 67 | transition: .4s; 68 | } 69 | 70 | input:checked+.slider { 71 | background-color: #55FF55; 72 | } 73 | 74 | input:focus+.slider { 75 | box-shadow: 0 0 1px #55FF55; 76 | } 77 | 78 | input:checked+.slider:before { 79 | -webkit-transform: translateX(26px); 80 | -ms-transform: translateX(26px); 81 | transform: translateX(26px); 82 | } 83 | 84 | .slider.round { 85 | border-radius: 34px; 86 | } 87 | 88 | .slider.round:before { 89 | border-radius: 50%; 90 | } 91 | 92 | #toggleConnectome { 93 | position: absolute; 94 | bottom: 10px; 95 | left: 10px; 96 | z-index: 10; 97 | } 98 | 99 | #githubButton { 100 | position: absolute; 101 | display: inline-block; 102 | height: 30px; 103 | bottom: 10px; 104 | right: 10px; 105 | } 106 | 107 | #buttons { 108 | position: absolute; 109 | display: inline-block; 110 | bottom: 0px; 111 | left: calc(50% - 40px); 112 | cursor: pointer; 113 | } 114 | 115 | .noselect { 116 | -webkit-touch-callout: none; 117 | -webkit-user-select: none; 118 | -khtml-user-select: none; 119 | -moz-user-select: none; 120 | -ms-user-select: none; 121 | user-select: none; 122 | } -------------------------------------------------------------------------------- /js/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Main script file for the worm simulation. 3 | * @description This script contains functions and logic for controlling the behavior of a worm simulation. 4 | * The simulation includes a worm-like creature that moves towards a target, interacts with food, and updates its brain. 5 | * It also includes an inverse kinematics chain for drawing the worm's body. 6 | * The script uses the BRAIN object for brain simulation and manipulation. 7 | * The canvas element with id "canvas" is used for rendering the simulation. 8 | * The script also includes utility functions for drawing shapes and handling user input. 9 | * {@link ISimulateBrain} interface is used to simulate the brain of the worm. 10 | * {@link IKSegment} class is used to create segments for the inverse kinematics chain. 11 | * {@link IKChain} class is used to create a chain of segments for the inverse kinematics chain. 12 | * @see {@link BRAIN} object for brain simulation and manipulation. 13 | */ 14 | document.getElementById('clearButton').onclick = function () { 15 | food = []; 16 | }; 17 | 18 | document.getElementById('centerButton').onclick = function () { 19 | target.x = window.innerWidth / 2; 20 | target.y = window.innerHeight / 2; 21 | }; 22 | 23 | var facingDir = 0; 24 | var targetDir = 0; 25 | var speed = 0; 26 | var targetSpeed = 0; 27 | var speedChangeInterval = 0; 28 | var food = []; 29 | 30 | function toggleConnectome() { 31 | document.getElementById('nodeHolder').style.opacity = 32 | document.getElementById('connectomeCheckbox').checked ? '1' : '0'; 33 | } 34 | 35 | BRAIN.setup(); 36 | 37 | // Create a box for each post-synaptic neuron 38 | for (var ps in BRAIN.connectome) { 39 | var nameBox = document.createElement('span'); 40 | //nameBox.innerHTML = ps; 41 | document.getElementById('nodeHolder').appendChild(nameBox); 42 | 43 | var newBox = document.createElement('span'); 44 | newBox.cols = 3; 45 | newBox.rows = 1; 46 | newBox.id = ps; 47 | newBox.className = 'brainNode'; 48 | document.getElementById('nodeHolder').appendChild(newBox); 49 | } 50 | 51 | /** 52 | * Updates the brain of the worm. 53 | * This function updates the brain's state, updates the visual representation of the post-synaptic connections, 54 | * calculates the new direction and speed of the worm based on the accumulated left and right inputs. 55 | */ 56 | function updateBrain() { 57 | BRAIN.update(); 58 | for (var postSynaptic in BRAIN.connectome) { 59 | var psBox = document.getElementById(postSynaptic); 60 | var neuron = BRAIN.postSynaptic[postSynaptic][BRAIN.thisState]; 61 | 62 | psBox.style.backgroundColor = '#55FF55'; 63 | psBox.style.opacity = Math.min(1, neuron / 50); 64 | } 65 | let scalingFactor = 20; 66 | let newDir = (BRAIN.accumleft - BRAIN.accumright) / scalingFactor; 67 | targetDir = facingDir + newDir * Math.PI; 68 | //targetDir = facingDir + calculateFinalDirection(BRAIN.accumleft/200, BRAIN.accumright/200); 69 | targetSpeed = 70 | (Math.abs(BRAIN.accumleft) + Math.abs(BRAIN.accumright)) / 71 | (scalingFactor * 5); 72 | speedChangeInterval = (targetSpeed - speed) / (scalingFactor * 1.5); 73 | } 74 | 75 | BRAIN.randExcite(); 76 | setInterval(updateBrain, 500); 77 | 78 | function calculateFinalDirection(leftPercentage, rightPercentage) { 79 | const maxTurnAngle = Math.PI / 2; // 90 degrees in radians 80 | const leftTurnAngle = leftPercentage * maxTurnAngle; 81 | const rightTurnAngle = rightPercentage * maxTurnAngle; 82 | 83 | const finalDirection = rightTurnAngle - leftTurnAngle; 84 | 85 | return finalDirection; 86 | } 87 | 88 | //http://jsfiddle.net/user/ARTsinn/fiddles/ 89 | 90 | /** 91 | * Represents an Inverse Kinematics (IK) segment. 92 | * @constructor 93 | * @param {number} size - The size of the segment. 94 | * @param {Object} head - The position of the segment's head. 95 | * @param {number} head.x - The x-coordinate of the head. 96 | * @param {number} head.y - The y-coordinate of the head. 97 | * @param {Object} tail - The position of the segment's tail. 98 | * @param {number} tail.x - The x-coordinate of the tail. 99 | * @param {number} tail.y - The y-coordinate of the tail. 100 | */ 101 | var IKSegment = function (size, head, tail) { 102 | this.size = size; 103 | this.head = head || { 104 | x: 0.0, 105 | y: 0.0, 106 | }; 107 | this.tail = tail || { 108 | x: this.head.x + size, 109 | y: this.head.y + size, 110 | }; 111 | 112 | this.update = function () { 113 | // Position derivitives 114 | var dx = this.head.x - this.tail.x; 115 | var dy = this.head.y - this.tail.y; 116 | 117 | // Distance between head and tail 118 | var dist = Math.sqrt(dx * dx + dy * dy); 119 | // Force of the spring (Hook's Law) 120 | var force = 0.5 - (this.size / dist) * 0.5; 121 | var strength = 0.998; // No springiness 122 | 123 | // Dampening 124 | force *= 0.99; 125 | 126 | // Force vectors 127 | var fx = force * dx; 128 | var fy = force * dy; 129 | 130 | // Update head and tail positions 131 | this.tail.x += fx * strength * 2.0; 132 | this.tail.y += fy * strength * 2.0; 133 | this.head.x -= fx * (1.0 - strength) * 2.0; 134 | this.head.y -= fy * (1.0 - strength) * 2.0; 135 | }; 136 | }; 137 | 138 | /** 139 | * Represents an inverse kinematics chain. It is a collection of IK segments. 140 | * @constructor 141 | * @param {number} size - The number of links in the chain. 142 | * @param {number} interval - The interval between each link. 143 | */ 144 | var IKChain = function (size, interval) { 145 | this.links = new Array(size); 146 | 147 | this.update = function (target) { 148 | var link = this.links[0]; 149 | 150 | link.head.x = target.x; 151 | link.head.y = target.y; 152 | 153 | for (var i = 0, n = this.links.length; i < n; ++i) { 154 | this.links[i].update(); 155 | } 156 | }; 157 | 158 | var point = { 159 | x: 0, 160 | y: 0, 161 | }; 162 | 163 | for (var i = 0, n = this.links.length; i < n; ++i) { 164 | var link = (this.links[i] = new IKSegment(interval, point)); 165 | link.head.x = Math.random() * 500; 166 | link.head.y = Math.random() * 500; 167 | link.tail.x = Math.random() * 500; 168 | link.tail.y = Math.random() * 500; 169 | point = link.tail; 170 | } 171 | }; 172 | 173 | /* Test */ 174 | 175 | /** 176 | * Draws a circle on the canvas. 177 | * 178 | * @param {CanvasRenderingContext2D} ctx - The rendering context of the canvas. 179 | * @param {number} x - The x-coordinate of the center of the circle. 180 | * @param {number} y - The y-coordinate of the center of the circle. 181 | * @param {number} r - The radius of the circle. 182 | * @param {string} [c] - The color of the circle. If not provided, a default color will be used. 183 | */ 184 | function circle(ctx, x, y, r, c) { 185 | ctx.beginPath(); 186 | ctx.arc(x, y, r, 0, Math.PI * 2, false); 187 | ctx.closePath(); 188 | if (c) { 189 | ctx.fillStyle = c; 190 | ctx.fill(); 191 | } else { 192 | ctx.strokeStyle = 'rgba(255,255,255,0.1)'; 193 | ctx.stroke(); 194 | } 195 | } 196 | 197 | /** 198 | * Draws a line on the canvas context. 199 | * 200 | * @param {CanvasRenderingContext2D} ctx - The canvas rendering context. 201 | * @param {number} x1 - The x-coordinate of the starting point of the line. 202 | * @param {number} y1 - The y-coordinate of the starting point of the line. 203 | * @param {number} x2 - The x-coordinate of the ending point of the line. 204 | * @param {number} y2 - The y-coordinate of the ending point of the line. 205 | */ 206 | function line(ctx, x1, y1, x2, y2) { 207 | ctx.moveTo(x1, y1); 208 | ctx.lineTo(x2, y2); 209 | ctx.strokeStyle = 'rgba(255,255,255,0.5)'; 210 | ctx.stroke(); 211 | } 212 | 213 | var canvas = document.getElementById('canvas'); 214 | var ctx = canvas.getContext('2d'); 215 | 216 | canvas.addEventListener('mousedown', addFood, false); 217 | 218 | /** 219 | * Adds food to the game at the specified coordinates. 220 | * @param {MouseEvent} event - The mouse event object containing the coordinates of the click. 221 | */ 222 | function addFood(event) { 223 | var x = event.x; 224 | var y = event.y; 225 | 226 | x -= canvas.offsetLeft; 227 | y -= canvas.offsetTop; 228 | 229 | food.push({ x: x, y: y }); 230 | } 231 | 232 | /** 233 | * Draws the food on the canvas. 234 | */ 235 | function drawFood() { 236 | for (var i = 0; i < food.length; i++) { 237 | circle(ctx, food[i].x, food[i].y, 10, 'rgb(251,192,45)'); 238 | } 239 | } 240 | 241 | var target = { 242 | x: window.innerWidth / 2, 243 | y: window.innerHeight / 2, 244 | }; 245 | 246 | var chain = new IKChain(200, 1); 247 | 248 | function update() { 249 | speed += speedChangeInterval; 250 | 251 | var facingMinusTarget = facingDir - targetDir; 252 | var angleDiff = facingMinusTarget; 253 | 254 | // Calculate the smallest angle difference between the facing direction and the target direction 255 | if (Math.abs(facingMinusTarget) > 180) { 256 | if (facingDir > targetDir) { 257 | angleDiff = -1 * (360 - facingDir + targetDir); 258 | } else { 259 | angleDiff = 360 - targetDir + facingDir; 260 | } 261 | } 262 | 263 | // Rotate the worm towards the target direction 264 | if (angleDiff > 0) { 265 | facingDir -= 0.1; 266 | } else if (angleDiff < 0) { 267 | facingDir += 0.1; 268 | } 269 | 270 | // Resolve the x and y components of the speed vector and update the worm's position 271 | target.x += Math.cos(facingDir) * speed; 272 | target.y -= Math.sin(facingDir) * speed; 273 | 274 | // Prevent x from going off the screen 275 | if (target.x < 0) { 276 | target.x = 0; 277 | BRAIN.stimulateNoseTouchNeurons = true; 278 | } else if (target.x > window.innerWidth) { 279 | target.x = window.innerWidth; 280 | BRAIN.stimulateNoseTouchNeurons = true; 281 | } 282 | 283 | // Prevent y from going off the screen 284 | if (target.y < 0) { 285 | target.y = 0; 286 | BRAIN.stimulateNoseTouchNeurons = true; 287 | } else if (target.y > window.innerHeight) { 288 | target.y = window.innerHeight; 289 | BRAIN.stimulateNoseTouchNeurons = true; 290 | } 291 | 292 | // Check if the worm is near food 293 | for (var i = 0; i < food.length; i++) { 294 | if ( 295 | Math.hypot( 296 | Math.round(target.x) - food[i].x, 297 | Math.round(target.y) - food[i].y, 298 | ) <= 50 299 | ) { 300 | // simulate food sense if food nearby 301 | BRAIN.stimulateFoodSenseNeurons = true; 302 | 303 | if ( 304 | Math.hypot( 305 | Math.round(target.x) - food[i].x, 306 | Math.round(target.y) - food[i].y, 307 | ) <= 20 308 | ) { 309 | // eat food if close enough 310 | food.splice(i, 1); 311 | } 312 | } 313 | } 314 | 315 | // Reset neuron stimulation after 2 seconds 316 | setTimeout(function () { 317 | BRAIN.stimulateHungerNeurons = true; 318 | BRAIN.stimulateNoseTouchNeurons = false; 319 | BRAIN.stimulateFoodSenseNeurons = false; 320 | }, 2000); 321 | 322 | // Update IK chain 323 | chain.update(target); 324 | } 325 | 326 | /** 327 | * Draws the worm simulation on the canvas. 328 | */ 329 | function draw() { 330 | ctx.clearRect(0, 0, canvas.width, canvas.height); 331 | drawFood(); 332 | 333 | circle(ctx, target.x, target.y, 5, 'rgba(255,255,255,0.1)'); 334 | 335 | var link = chain.links[0]; 336 | var p1 = link.head, 337 | p2 = link.tail; 338 | 339 | ctx.beginPath(); 340 | ctx.moveTo(p1.x, p1.y); 341 | ctx.strokeStyle = 'white'; 342 | ctx.lineWidth = 20; 343 | ctx.lineJoin = 'round'; 344 | ctx.lineCap = 'round'; 345 | 346 | for (var i = 0, n = chain.links.length; i < n; ++i) { 347 | link = chain.links[i]; 348 | p1 = link.head; 349 | p2 = link.tail; 350 | ctx.lineTo(p1.x, p1.y); 351 | ctx.lineTo(p2.x, p2.y); 352 | } 353 | 354 | ctx.stroke(); 355 | } 356 | 357 | (function resize() { 358 | canvas.width = window.innerWidth; 359 | canvas.height = window.innerHeight; 360 | window.onresize = resize; 361 | })(); 362 | 363 | setInterval(function () { 364 | update(); 365 | draw(); 366 | }, 1e3 / 60); 367 | -------------------------------------------------------------------------------- /js/connectome.js: -------------------------------------------------------------------------------- 1 | /* C. Elegans Connectome ported to Javascript 2 | /* Based on the python GoPiGo Connectome by Timothy Busbice, Gabriel Garrett, Geoffrey Churchill 3 | /* Find it here: https://github.com/Connectome/GoPiGo 4 | /* Pls do not remove this header - zrispo 5 | */ 6 | 7 | var BRAIN = {}; 8 | 9 | // Import the weights from the weights.js file so it works in the browser 10 | BRAIN.weights = weights; 11 | 12 | // A method that accepts the preSynaptic neuron and updates the postSynaptic neurons with the weighted values 13 | BRAIN.dendriteAccumulate = function (preSynaptic) { 14 | // Loop through the postSynaptic neurons 15 | for (var postSynaptic in BRAIN.weights[preSynaptic]) { 16 | // Update the postSynaptic neurons with the weighted values 17 | BRAIN.postSynaptic[postSynaptic][BRAIN.nextState] += 18 | BRAIN.weights[preSynaptic][postSynaptic]; 19 | } 20 | }; 21 | 22 | /* Note: The way these work is sort of confusing 23 | * After every update, the value in nextState is copied into thisState, 24 | * and thisState and nextState are swapped (so after the first update, thisState = 1, and nextState = 0) */ 25 | BRAIN.thisState = 0; 26 | BRAIN.nextState = 1; 27 | 28 | /* Maximum accumulated value that must be exceeded before the Neurite will fire */ 29 | BRAIN.fireThreshold = 30; 30 | 31 | /* Accumulators are used to decide the value to send to the Left and Right motors of the GoPiGo robot */ 32 | /* Since this is the javascript version, you can use these to control whatever you want! */ 33 | BRAIN.accumleft = 0; 34 | BRAIN.accumright = 0; 35 | 36 | /* Used to remove from Axon firing since muscles cannot fire. */ 37 | BRAIN.muscles = ['MVU', 'MVL', 'MDL', 'MVR', 'MDR']; 38 | 39 | BRAIN.muscleList = [ 40 | 'MDL07', 41 | 'MDL08', 42 | 'MDL09', 43 | 'MDL10', 44 | 'MDL11', 45 | 'MDL12', 46 | 'MDL13', 47 | 'MDL14', 48 | 'MDL15', 49 | 'MDL16', 50 | 'MDL17', 51 | 'MDL18', 52 | 'MDL19', 53 | 'MDL20', 54 | 'MDL21', 55 | 'MDL22', 56 | 'MDL23', 57 | 'MVL07', 58 | 'MVL08', 59 | 'MVL09', 60 | 'MVL10', 61 | 'MVL11', 62 | 'MVL12', 63 | 'MVL13', 64 | 'MVL14', 65 | 'MVL15', 66 | 'MVL16', 67 | 'MVL17', 68 | 'MVL18', 69 | 'MVL19', 70 | 'MVL20', 71 | 'MVL21', 72 | 'MVL22', 73 | 'MVL23', 74 | 'MDR07', 75 | 'MDR08', 76 | 'MDR09', 77 | 'MDR10', 78 | 'MDR11', 79 | 'MDR12', 80 | 'MDR13', 81 | 'MDR14', 82 | 'MDR15', 83 | 'MDR16', 84 | 'MDR17', 85 | 'MDR18', 86 | 'MDR19', 87 | 'MDR20', 88 | 'MDL21', 89 | 'MDR22', 90 | 'MDR23', 91 | 'MVR07', 92 | 'MVR08', 93 | 'MVR09', 94 | 'MVR10', 95 | 'MVR11', 96 | 'MVR12', 97 | 'MVR13', 98 | 'MVR14', 99 | 'MVR15', 100 | 'MVR16', 101 | 'MVR17', 102 | 'MVR18', 103 | 'MVR19', 104 | 'MVR20', 105 | 'MVL21', 106 | 'MVR22', 107 | 'MVR23', 108 | ]; 109 | 110 | BRAIN.mLeft = [ 111 | 'MDL07', 112 | 'MDL08', 113 | 'MDL09', 114 | 'MDL10', 115 | 'MDL11', 116 | 'MDL12', 117 | 'MDL13', 118 | 'MDL14', 119 | 'MDL15', 120 | 'MDL16', 121 | 'MDL17', 122 | 'MDL18', 123 | 'MDL19', 124 | 'MDL20', 125 | 'MDL21', 126 | 'MDL22', 127 | 'MDL23', 128 | 'MVL07', 129 | 'MVL08', 130 | 'MVL09', 131 | 'MVL10', 132 | 'MVL11', 133 | 'MVL12', 134 | 'MVL13', 135 | 'MVL14', 136 | 'MVL15', 137 | 'MVL16', 138 | 'MVL17', 139 | 'MVL18', 140 | 'MVL19', 141 | 'MVL20', 142 | 'MVL21', 143 | 'MVL22', 144 | 'MVL23', 145 | ]; 146 | BRAIN.mRight = [ 147 | 'MDR07', 148 | 'MDR08', 149 | 'MDR09', 150 | 'MDR10', 151 | 'MDR11', 152 | 'MDR12', 153 | 'MDR13', 154 | 'MDR14', 155 | 'MDR15', 156 | 'MDR16', 157 | 'MDR17', 158 | 'MDR18', 159 | 'MDR19', 160 | 'MDR20', 161 | 'MDL21', 162 | 'MDR22', 163 | 'MDR23', 164 | 'MVR07', 165 | 'MVR08', 166 | 'MVR09', 167 | 'MVR10', 168 | 'MVR11', 169 | 'MVR12', 170 | 'MVR13', 171 | 'MVR14', 172 | 'MVR15', 173 | 'MVR16', 174 | 'MVR17', 175 | 'MVR18', 176 | 'MVR19', 177 | 'MVR20', 178 | 'MVL21', 179 | 'MVR22', 180 | 'MVR23', 181 | ]; 182 | /* Used to accumulate muscle weighted values in body muscles 07-23 = worm locomotion */ 183 | BRAIN.musDleft = [ 184 | 'MDL07', 185 | 'MDL08', 186 | 'MDL09', 187 | 'MDL10', 188 | 'MDL11', 189 | 'MDL12', 190 | 'MDL13', 191 | 'MDL14', 192 | 'MDL15', 193 | 'MDL16', 194 | 'MDL17', 195 | 'MDL18', 196 | 'MDL19', 197 | 'MDL20', 198 | 'MDL21', 199 | 'MDL22', 200 | 'MDL23', 201 | ]; 202 | BRAIN.musVleft = [ 203 | 'MVL07', 204 | 'MVL08', 205 | 'MVL09', 206 | 'MVL10', 207 | 'MVL11', 208 | 'MVL12', 209 | 'MVL13', 210 | 'MVL14', 211 | 'MVL15', 212 | 'MVL16', 213 | 'MVL17', 214 | 'MVL18', 215 | 'MVL19', 216 | 'MVL20', 217 | 'MVL21', 218 | 'MVL22', 219 | 'MVL23', 220 | ]; 221 | BRAIN.musDright = [ 222 | 'MDR07', 223 | 'MDR08', 224 | 'MDR09', 225 | 'MDR10', 226 | 'MDR11', 227 | 'MDR12', 228 | 'MDR13', 229 | 'MDR14', 230 | 'MDR15', 231 | 'MDR16', 232 | 'MDR17', 233 | 'MDR18', 234 | 'MDR19', 235 | 'MDR20', 236 | 'MDL21', 237 | 'MDR22', 238 | 'MDR23', 239 | ]; 240 | BRAIN.musVright = [ 241 | 'MVR07', 242 | 'MVR08', 243 | 'MVR09', 244 | 'MVR10', 245 | 'MVR11', 246 | 'MVR12', 247 | 'MVR13', 248 | 'MVR14', 249 | 'MVR15', 250 | 'MVR16', 251 | 'MVR17', 252 | 'MVR18', 253 | 'MVR19', 254 | 'MVR20', 255 | 'MVL21', 256 | 'MVR22', 257 | 'MVR23', 258 | ]; 259 | 260 | /* Use these to stimulate nose and food sensing neurons */ 261 | BRAIN.stimulateHungerNeurons = true; 262 | BRAIN.stimulateNoseTouchNeurons = false; 263 | BRAIN.stimulateFoodSenseNeurons = false; 264 | 265 | // we want each simualtion to be slightly different 266 | BRAIN.randExcite = function () { 267 | for (var i = 0; i < 40; i++) { 268 | BRAIN.dendriteAccumulate( 269 | Object.keys(BRAIN.connectome)[ 270 | Math.floor(Math.random() * Object.keys(BRAIN.connectome).length) 271 | ], 272 | ); 273 | } 274 | }; 275 | 276 | BRAIN.setup = function () { 277 | /* The postSynaptic dictionary contains the accumulated weighted values as the 278 | * connectome is executed */ 279 | BRAIN.postSynaptic = {}; 280 | 281 | /* This is the full C Elegans Connectome as expresed in the form of the connectome 282 | * neurite and the postSynaptic neurites. */ 283 | BRAIN.connectome = {}; 284 | 285 | // For each neuron in weights.json, add a function to the connectome that invokes dendriteAccumulate 286 | for (var preSynaptic in BRAIN.weights) { 287 | BRAIN.connectome[preSynaptic] = function () { 288 | BRAIN.dendriteAccumulate(preSynaptic); 289 | }; 290 | } 291 | 292 | BRAIN.postSynaptic['ADAL'] = [0, 0]; 293 | BRAIN.postSynaptic['ADAR'] = [0, 0]; 294 | BRAIN.postSynaptic['ADEL'] = [0, 0]; 295 | BRAIN.postSynaptic['ADER'] = [0, 0]; 296 | BRAIN.postSynaptic['ADFL'] = [0, 0]; 297 | BRAIN.postSynaptic['ADFR'] = [0, 0]; 298 | BRAIN.postSynaptic['ADLL'] = [0, 0]; 299 | BRAIN.postSynaptic['ADLR'] = [0, 0]; 300 | BRAIN.postSynaptic['AFDL'] = [0, 0]; 301 | BRAIN.postSynaptic['AFDR'] = [0, 0]; 302 | BRAIN.postSynaptic['AIAL'] = [0, 0]; 303 | BRAIN.postSynaptic['AIAR'] = [0, 0]; 304 | BRAIN.postSynaptic['AIBL'] = [0, 0]; 305 | BRAIN.postSynaptic['AIBR'] = [0, 0]; 306 | BRAIN.postSynaptic['AIML'] = [0, 0]; 307 | BRAIN.postSynaptic['AIMR'] = [0, 0]; 308 | BRAIN.postSynaptic['AINL'] = [0, 0]; 309 | BRAIN.postSynaptic['AINR'] = [0, 0]; 310 | BRAIN.postSynaptic['AIYL'] = [0, 0]; 311 | BRAIN.postSynaptic['AIYR'] = [0, 0]; 312 | BRAIN.postSynaptic['AIZL'] = [0, 0]; 313 | BRAIN.postSynaptic['AIZR'] = [0, 0]; 314 | BRAIN.postSynaptic['ALA'] = [0, 0]; 315 | BRAIN.postSynaptic['ALML'] = [0, 0]; 316 | BRAIN.postSynaptic['ALMR'] = [0, 0]; 317 | BRAIN.postSynaptic['ALNL'] = [0, 0]; 318 | BRAIN.postSynaptic['ALNR'] = [0, 0]; 319 | BRAIN.postSynaptic['AQR'] = [0, 0]; 320 | BRAIN.postSynaptic['AS1'] = [0, 0]; 321 | BRAIN.postSynaptic['AS10'] = [0, 0]; 322 | BRAIN.postSynaptic['AS11'] = [0, 0]; 323 | BRAIN.postSynaptic['AS2'] = [0, 0]; 324 | BRAIN.postSynaptic['AS3'] = [0, 0]; 325 | BRAIN.postSynaptic['AS4'] = [0, 0]; 326 | BRAIN.postSynaptic['AS5'] = [0, 0]; 327 | BRAIN.postSynaptic['AS6'] = [0, 0]; 328 | BRAIN.postSynaptic['AS7'] = [0, 0]; 329 | BRAIN.postSynaptic['AS8'] = [0, 0]; 330 | BRAIN.postSynaptic['AS9'] = [0, 0]; 331 | BRAIN.postSynaptic['ASEL'] = [0, 0]; 332 | BRAIN.postSynaptic['ASER'] = [0, 0]; 333 | BRAIN.postSynaptic['ASGL'] = [0, 0]; 334 | BRAIN.postSynaptic['ASGR'] = [0, 0]; 335 | BRAIN.postSynaptic['ASHL'] = [0, 0]; 336 | BRAIN.postSynaptic['ASHR'] = [0, 0]; 337 | BRAIN.postSynaptic['ASIL'] = [0, 0]; 338 | BRAIN.postSynaptic['ASIR'] = [0, 0]; 339 | BRAIN.postSynaptic['ASJL'] = [0, 0]; 340 | BRAIN.postSynaptic['ASJR'] = [0, 0]; 341 | BRAIN.postSynaptic['ASKL'] = [0, 0]; 342 | BRAIN.postSynaptic['ASKR'] = [0, 0]; 343 | BRAIN.postSynaptic['AUAL'] = [0, 0]; 344 | BRAIN.postSynaptic['AUAR'] = [0, 0]; 345 | BRAIN.postSynaptic['AVAL'] = [0, 0]; 346 | BRAIN.postSynaptic['AVAR'] = [0, 0]; 347 | BRAIN.postSynaptic['AVBL'] = [0, 0]; 348 | BRAIN.postSynaptic['AVBR'] = [0, 0]; 349 | BRAIN.postSynaptic['AVDL'] = [0, 0]; 350 | BRAIN.postSynaptic['AVDR'] = [0, 0]; 351 | BRAIN.postSynaptic['AVEL'] = [0, 0]; 352 | BRAIN.postSynaptic['AVER'] = [0, 0]; 353 | BRAIN.postSynaptic['AVFL'] = [0, 0]; 354 | BRAIN.postSynaptic['AVFR'] = [0, 0]; 355 | BRAIN.postSynaptic['AVG'] = [0, 0]; 356 | BRAIN.postSynaptic['AVHL'] = [0, 0]; 357 | BRAIN.postSynaptic['AVHR'] = [0, 0]; 358 | BRAIN.postSynaptic['AVJL'] = [0, 0]; 359 | BRAIN.postSynaptic['AVJR'] = [0, 0]; 360 | BRAIN.postSynaptic['AVKL'] = [0, 0]; 361 | BRAIN.postSynaptic['AVKR'] = [0, 0]; 362 | BRAIN.postSynaptic['AVL'] = [0, 0]; 363 | BRAIN.postSynaptic['AVM'] = [0, 0]; 364 | BRAIN.postSynaptic['AWAL'] = [0, 0]; 365 | BRAIN.postSynaptic['AWAR'] = [0, 0]; 366 | BRAIN.postSynaptic['AWBL'] = [0, 0]; 367 | BRAIN.postSynaptic['AWBR'] = [0, 0]; 368 | BRAIN.postSynaptic['AWCL'] = [0, 0]; 369 | BRAIN.postSynaptic['AWCR'] = [0, 0]; 370 | BRAIN.postSynaptic['BAGL'] = [0, 0]; 371 | BRAIN.postSynaptic['BAGR'] = [0, 0]; 372 | BRAIN.postSynaptic['BDUL'] = [0, 0]; 373 | BRAIN.postSynaptic['BDUR'] = [0, 0]; 374 | BRAIN.postSynaptic['CEPDL'] = [0, 0]; 375 | BRAIN.postSynaptic['CEPDR'] = [0, 0]; 376 | BRAIN.postSynaptic['CEPVL'] = [0, 0]; 377 | BRAIN.postSynaptic['CEPVR'] = [0, 0]; 378 | BRAIN.postSynaptic['DA1'] = [0, 0]; 379 | BRAIN.postSynaptic['DA2'] = [0, 0]; 380 | BRAIN.postSynaptic['DA3'] = [0, 0]; 381 | BRAIN.postSynaptic['DA4'] = [0, 0]; 382 | BRAIN.postSynaptic['DA5'] = [0, 0]; 383 | BRAIN.postSynaptic['DA6'] = [0, 0]; 384 | BRAIN.postSynaptic['DA7'] = [0, 0]; 385 | BRAIN.postSynaptic['DA8'] = [0, 0]; 386 | BRAIN.postSynaptic['DA9'] = [0, 0]; 387 | BRAIN.postSynaptic['DB1'] = [0, 0]; 388 | BRAIN.postSynaptic['DB2'] = [0, 0]; 389 | BRAIN.postSynaptic['DB3'] = [0, 0]; 390 | BRAIN.postSynaptic['DB4'] = [0, 0]; 391 | BRAIN.postSynaptic['DB5'] = [0, 0]; 392 | BRAIN.postSynaptic['DB6'] = [0, 0]; 393 | BRAIN.postSynaptic['DB7'] = [0, 0]; 394 | BRAIN.postSynaptic['DD1'] = [0, 0]; 395 | BRAIN.postSynaptic['DD2'] = [0, 0]; 396 | BRAIN.postSynaptic['DD3'] = [0, 0]; 397 | BRAIN.postSynaptic['DD4'] = [0, 0]; 398 | BRAIN.postSynaptic['DD5'] = [0, 0]; 399 | BRAIN.postSynaptic['DD6'] = [0, 0]; 400 | BRAIN.postSynaptic['DVA'] = [0, 0]; 401 | BRAIN.postSynaptic['DVB'] = [0, 0]; 402 | BRAIN.postSynaptic['DVC'] = [0, 0]; 403 | BRAIN.postSynaptic['FLPL'] = [0, 0]; 404 | BRAIN.postSynaptic['FLPR'] = [0, 0]; 405 | BRAIN.postSynaptic['HSNL'] = [0, 0]; 406 | BRAIN.postSynaptic['HSNR'] = [0, 0]; 407 | BRAIN.postSynaptic['I1L'] = [0, 0]; 408 | BRAIN.postSynaptic['I1R'] = [0, 0]; 409 | BRAIN.postSynaptic['I2L'] = [0, 0]; 410 | BRAIN.postSynaptic['I2R'] = [0, 0]; 411 | BRAIN.postSynaptic['I3'] = [0, 0]; 412 | BRAIN.postSynaptic['I4'] = [0, 0]; 413 | BRAIN.postSynaptic['I5'] = [0, 0]; 414 | BRAIN.postSynaptic['I6'] = [0, 0]; 415 | BRAIN.postSynaptic['IL1DL'] = [0, 0]; 416 | BRAIN.postSynaptic['IL1DR'] = [0, 0]; 417 | BRAIN.postSynaptic['IL1L'] = [0, 0]; 418 | BRAIN.postSynaptic['IL1R'] = [0, 0]; 419 | BRAIN.postSynaptic['IL1VL'] = [0, 0]; 420 | BRAIN.postSynaptic['IL1VR'] = [0, 0]; 421 | BRAIN.postSynaptic['IL2L'] = [0, 0]; 422 | BRAIN.postSynaptic['IL2R'] = [0, 0]; 423 | BRAIN.postSynaptic['IL2DL'] = [0, 0]; 424 | BRAIN.postSynaptic['IL2DR'] = [0, 0]; 425 | BRAIN.postSynaptic['IL2VL'] = [0, 0]; 426 | BRAIN.postSynaptic['IL2VR'] = [0, 0]; 427 | BRAIN.postSynaptic['LUAL'] = [0, 0]; 428 | BRAIN.postSynaptic['LUAR'] = [0, 0]; 429 | BRAIN.postSynaptic['M1'] = [0, 0]; 430 | BRAIN.postSynaptic['M2L'] = [0, 0]; 431 | BRAIN.postSynaptic['M2R'] = [0, 0]; 432 | BRAIN.postSynaptic['M3L'] = [0, 0]; 433 | BRAIN.postSynaptic['M3R'] = [0, 0]; 434 | BRAIN.postSynaptic['M4'] = [0, 0]; 435 | BRAIN.postSynaptic['M5'] = [0, 0]; 436 | BRAIN.postSynaptic['MANAL'] = [0, 0]; 437 | BRAIN.postSynaptic['MCL'] = [0, 0]; 438 | BRAIN.postSynaptic['MCR'] = [0, 0]; 439 | BRAIN.postSynaptic['MDL01'] = [0, 0]; 440 | BRAIN.postSynaptic['MDL02'] = [0, 0]; 441 | BRAIN.postSynaptic['MDL03'] = [0, 0]; 442 | BRAIN.postSynaptic['MDL04'] = [0, 0]; 443 | BRAIN.postSynaptic['MDL05'] = [0, 0]; 444 | BRAIN.postSynaptic['MDL06'] = [0, 0]; 445 | BRAIN.postSynaptic['MDL07'] = [0, 0]; 446 | BRAIN.postSynaptic['MDL08'] = [0, 0]; 447 | BRAIN.postSynaptic['MDL09'] = [0, 0]; 448 | BRAIN.postSynaptic['MDL10'] = [0, 0]; 449 | BRAIN.postSynaptic['MDL11'] = [0, 0]; 450 | BRAIN.postSynaptic['MDL12'] = [0, 0]; 451 | BRAIN.postSynaptic['MDL13'] = [0, 0]; 452 | BRAIN.postSynaptic['MDL14'] = [0, 0]; 453 | BRAIN.postSynaptic['MDL15'] = [0, 0]; 454 | BRAIN.postSynaptic['MDL16'] = [0, 0]; 455 | BRAIN.postSynaptic['MDL17'] = [0, 0]; 456 | BRAIN.postSynaptic['MDL18'] = [0, 0]; 457 | BRAIN.postSynaptic['MDL19'] = [0, 0]; 458 | BRAIN.postSynaptic['MDL20'] = [0, 0]; 459 | BRAIN.postSynaptic['MDL21'] = [0, 0]; 460 | BRAIN.postSynaptic['MDL22'] = [0, 0]; 461 | BRAIN.postSynaptic['MDL23'] = [0, 0]; 462 | BRAIN.postSynaptic['MDL24'] = [0, 0]; 463 | BRAIN.postSynaptic['MDR01'] = [0, 0]; 464 | BRAIN.postSynaptic['MDR02'] = [0, 0]; 465 | BRAIN.postSynaptic['MDR03'] = [0, 0]; 466 | BRAIN.postSynaptic['MDR04'] = [0, 0]; 467 | BRAIN.postSynaptic['MDR05'] = [0, 0]; 468 | BRAIN.postSynaptic['MDR06'] = [0, 0]; 469 | BRAIN.postSynaptic['MDR07'] = [0, 0]; 470 | BRAIN.postSynaptic['MDR08'] = [0, 0]; 471 | BRAIN.postSynaptic['MDR09'] = [0, 0]; 472 | BRAIN.postSynaptic['MDR10'] = [0, 0]; 473 | BRAIN.postSynaptic['MDR11'] = [0, 0]; 474 | BRAIN.postSynaptic['MDR12'] = [0, 0]; 475 | BRAIN.postSynaptic['MDR13'] = [0, 0]; 476 | BRAIN.postSynaptic['MDR14'] = [0, 0]; 477 | BRAIN.postSynaptic['MDR15'] = [0, 0]; 478 | BRAIN.postSynaptic['MDR16'] = [0, 0]; 479 | BRAIN.postSynaptic['MDR17'] = [0, 0]; 480 | BRAIN.postSynaptic['MDR18'] = [0, 0]; 481 | BRAIN.postSynaptic['MDR19'] = [0, 0]; 482 | BRAIN.postSynaptic['MDR20'] = [0, 0]; 483 | BRAIN.postSynaptic['MDR21'] = [0, 0]; 484 | BRAIN.postSynaptic['MDR22'] = [0, 0]; 485 | BRAIN.postSynaptic['MDR23'] = [0, 0]; 486 | BRAIN.postSynaptic['MDR24'] = [0, 0]; 487 | BRAIN.postSynaptic['MI'] = [0, 0]; 488 | BRAIN.postSynaptic['MVL01'] = [0, 0]; 489 | BRAIN.postSynaptic['MVL02'] = [0, 0]; 490 | BRAIN.postSynaptic['MVL03'] = [0, 0]; 491 | BRAIN.postSynaptic['MVL04'] = [0, 0]; 492 | BRAIN.postSynaptic['MVL05'] = [0, 0]; 493 | BRAIN.postSynaptic['MVL06'] = [0, 0]; 494 | BRAIN.postSynaptic['MVL07'] = [0, 0]; 495 | BRAIN.postSynaptic['MVL08'] = [0, 0]; 496 | BRAIN.postSynaptic['MVL09'] = [0, 0]; 497 | BRAIN.postSynaptic['MVL10'] = [0, 0]; 498 | BRAIN.postSynaptic['MVL11'] = [0, 0]; 499 | BRAIN.postSynaptic['MVL12'] = [0, 0]; 500 | BRAIN.postSynaptic['MVL13'] = [0, 0]; 501 | BRAIN.postSynaptic['MVL14'] = [0, 0]; 502 | BRAIN.postSynaptic['MVL15'] = [0, 0]; 503 | BRAIN.postSynaptic['MVL16'] = [0, 0]; 504 | BRAIN.postSynaptic['MVL17'] = [0, 0]; 505 | BRAIN.postSynaptic['MVL18'] = [0, 0]; 506 | BRAIN.postSynaptic['MVL19'] = [0, 0]; 507 | BRAIN.postSynaptic['MVL20'] = [0, 0]; 508 | BRAIN.postSynaptic['MVL21'] = [0, 0]; 509 | BRAIN.postSynaptic['MVL22'] = [0, 0]; 510 | BRAIN.postSynaptic['MVL23'] = [0, 0]; 511 | BRAIN.postSynaptic['MVR01'] = [0, 0]; 512 | BRAIN.postSynaptic['MVR02'] = [0, 0]; 513 | BRAIN.postSynaptic['MVR03'] = [0, 0]; 514 | BRAIN.postSynaptic['MVR04'] = [0, 0]; 515 | BRAIN.postSynaptic['MVR05'] = [0, 0]; 516 | BRAIN.postSynaptic['MVR06'] = [0, 0]; 517 | BRAIN.postSynaptic['MVR07'] = [0, 0]; 518 | BRAIN.postSynaptic['MVR08'] = [0, 0]; 519 | BRAIN.postSynaptic['MVR09'] = [0, 0]; 520 | BRAIN.postSynaptic['MVR10'] = [0, 0]; 521 | BRAIN.postSynaptic['MVR11'] = [0, 0]; 522 | BRAIN.postSynaptic['MVR12'] = [0, 0]; 523 | BRAIN.postSynaptic['MVR13'] = [0, 0]; 524 | BRAIN.postSynaptic['MVR14'] = [0, 0]; 525 | BRAIN.postSynaptic['MVR15'] = [0, 0]; 526 | BRAIN.postSynaptic['MVR16'] = [0, 0]; 527 | BRAIN.postSynaptic['MVR17'] = [0, 0]; 528 | BRAIN.postSynaptic['MVR18'] = [0, 0]; 529 | BRAIN.postSynaptic['MVR19'] = [0, 0]; 530 | BRAIN.postSynaptic['MVR20'] = [0, 0]; 531 | BRAIN.postSynaptic['MVR21'] = [0, 0]; 532 | BRAIN.postSynaptic['MVR22'] = [0, 0]; 533 | BRAIN.postSynaptic['MVR23'] = [0, 0]; 534 | BRAIN.postSynaptic['MVR24'] = [0, 0]; 535 | BRAIN.postSynaptic['MVULVA'] = [0, 0]; 536 | BRAIN.postSynaptic['NSML'] = [0, 0]; 537 | BRAIN.postSynaptic['NSMR'] = [0, 0]; 538 | BRAIN.postSynaptic['OLLL'] = [0, 0]; 539 | BRAIN.postSynaptic['OLLR'] = [0, 0]; 540 | BRAIN.postSynaptic['OLQDL'] = [0, 0]; 541 | BRAIN.postSynaptic['OLQDR'] = [0, 0]; 542 | BRAIN.postSynaptic['OLQVL'] = [0, 0]; 543 | BRAIN.postSynaptic['OLQVR'] = [0, 0]; 544 | BRAIN.postSynaptic['PDA'] = [0, 0]; 545 | BRAIN.postSynaptic['PDB'] = [0, 0]; 546 | BRAIN.postSynaptic['PDEL'] = [0, 0]; 547 | BRAIN.postSynaptic['PDER'] = [0, 0]; 548 | BRAIN.postSynaptic['PHAL'] = [0, 0]; 549 | BRAIN.postSynaptic['PHAR'] = [0, 0]; 550 | BRAIN.postSynaptic['PHBL'] = [0, 0]; 551 | BRAIN.postSynaptic['PHBR'] = [0, 0]; 552 | BRAIN.postSynaptic['PHCL'] = [0, 0]; 553 | BRAIN.postSynaptic['PHCR'] = [0, 0]; 554 | BRAIN.postSynaptic['PLML'] = [0, 0]; 555 | BRAIN.postSynaptic['PLMR'] = [0, 0]; 556 | BRAIN.postSynaptic['PLNL'] = [0, 0]; 557 | BRAIN.postSynaptic['PLNR'] = [0, 0]; 558 | BRAIN.postSynaptic['PQR'] = [0, 0]; 559 | BRAIN.postSynaptic['PVCL'] = [0, 0]; 560 | BRAIN.postSynaptic['PVCR'] = [0, 0]; 561 | BRAIN.postSynaptic['PVDL'] = [0, 0]; 562 | BRAIN.postSynaptic['PVDR'] = [0, 0]; 563 | BRAIN.postSynaptic['PVM'] = [0, 0]; 564 | BRAIN.postSynaptic['PVNL'] = [0, 0]; 565 | BRAIN.postSynaptic['PVNR'] = [0, 0]; 566 | BRAIN.postSynaptic['PVPL'] = [0, 0]; 567 | BRAIN.postSynaptic['PVPR'] = [0, 0]; 568 | BRAIN.postSynaptic['PVQL'] = [0, 0]; 569 | BRAIN.postSynaptic['PVQR'] = [0, 0]; 570 | BRAIN.postSynaptic['PVR'] = [0, 0]; 571 | BRAIN.postSynaptic['PVT'] = [0, 0]; 572 | BRAIN.postSynaptic['PVWL'] = [0, 0]; 573 | BRAIN.postSynaptic['PVWR'] = [0, 0]; 574 | BRAIN.postSynaptic['RIAL'] = [0, 0]; 575 | BRAIN.postSynaptic['RIAR'] = [0, 0]; 576 | BRAIN.postSynaptic['RIBL'] = [0, 0]; 577 | BRAIN.postSynaptic['RIBR'] = [0, 0]; 578 | BRAIN.postSynaptic['RICL'] = [0, 0]; 579 | BRAIN.postSynaptic['RICR'] = [0, 0]; 580 | BRAIN.postSynaptic['RID'] = [0, 0]; 581 | BRAIN.postSynaptic['RIFL'] = [0, 0]; 582 | BRAIN.postSynaptic['RIFR'] = [0, 0]; 583 | BRAIN.postSynaptic['RIGL'] = [0, 0]; 584 | BRAIN.postSynaptic['RIGR'] = [0, 0]; 585 | BRAIN.postSynaptic['RIH'] = [0, 0]; 586 | BRAIN.postSynaptic['RIML'] = [0, 0]; 587 | BRAIN.postSynaptic['RIMR'] = [0, 0]; 588 | BRAIN.postSynaptic['RIPL'] = [0, 0]; 589 | BRAIN.postSynaptic['RIPR'] = [0, 0]; 590 | BRAIN.postSynaptic['RIR'] = [0, 0]; 591 | BRAIN.postSynaptic['RIS'] = [0, 0]; 592 | BRAIN.postSynaptic['RIVL'] = [0, 0]; 593 | BRAIN.postSynaptic['RIVR'] = [0, 0]; 594 | BRAIN.postSynaptic['RMDDL'] = [0, 0]; 595 | BRAIN.postSynaptic['RMDDR'] = [0, 0]; 596 | BRAIN.postSynaptic['RMDL'] = [0, 0]; 597 | BRAIN.postSynaptic['RMDR'] = [0, 0]; 598 | BRAIN.postSynaptic['RMDVL'] = [0, 0]; 599 | BRAIN.postSynaptic['RMDVR'] = [0, 0]; 600 | BRAIN.postSynaptic['RMED'] = [0, 0]; 601 | BRAIN.postSynaptic['RMEL'] = [0, 0]; 602 | BRAIN.postSynaptic['RMER'] = [0, 0]; 603 | BRAIN.postSynaptic['RMEV'] = [0, 0]; 604 | BRAIN.postSynaptic['RMFL'] = [0, 0]; 605 | BRAIN.postSynaptic['RMFR'] = [0, 0]; 606 | BRAIN.postSynaptic['RMGL'] = [0, 0]; 607 | BRAIN.postSynaptic['RMGR'] = [0, 0]; 608 | BRAIN.postSynaptic['RMHL'] = [0, 0]; 609 | BRAIN.postSynaptic['RMHR'] = [0, 0]; 610 | BRAIN.postSynaptic['SAADL'] = [0, 0]; 611 | BRAIN.postSynaptic['SAADR'] = [0, 0]; 612 | BRAIN.postSynaptic['SAAVL'] = [0, 0]; 613 | BRAIN.postSynaptic['SAAVR'] = [0, 0]; 614 | BRAIN.postSynaptic['SABD'] = [0, 0]; 615 | BRAIN.postSynaptic['SABVL'] = [0, 0]; 616 | BRAIN.postSynaptic['SABVR'] = [0, 0]; 617 | BRAIN.postSynaptic['SDQL'] = [0, 0]; 618 | BRAIN.postSynaptic['SDQR'] = [0, 0]; 619 | BRAIN.postSynaptic['SIADL'] = [0, 0]; 620 | BRAIN.postSynaptic['SIADR'] = [0, 0]; 621 | BRAIN.postSynaptic['SIAVL'] = [0, 0]; 622 | BRAIN.postSynaptic['SIAVR'] = [0, 0]; 623 | BRAIN.postSynaptic['SIBDL'] = [0, 0]; 624 | BRAIN.postSynaptic['SIBDR'] = [0, 0]; 625 | BRAIN.postSynaptic['SIBVL'] = [0, 0]; 626 | BRAIN.postSynaptic['SIBVR'] = [0, 0]; 627 | BRAIN.postSynaptic['SMBDL'] = [0, 0]; 628 | BRAIN.postSynaptic['SMBDR'] = [0, 0]; 629 | BRAIN.postSynaptic['SMBVL'] = [0, 0]; 630 | BRAIN.postSynaptic['SMBVR'] = [0, 0]; 631 | BRAIN.postSynaptic['SMDDL'] = [0, 0]; 632 | BRAIN.postSynaptic['SMDDR'] = [0, 0]; 633 | BRAIN.postSynaptic['SMDVL'] = [0, 0]; 634 | BRAIN.postSynaptic['SMDVR'] = [0, 0]; 635 | BRAIN.postSynaptic['URADL'] = [0, 0]; 636 | BRAIN.postSynaptic['URADR'] = [0, 0]; 637 | BRAIN.postSynaptic['URAVL'] = [0, 0]; 638 | BRAIN.postSynaptic['URAVR'] = [0, 0]; 639 | BRAIN.postSynaptic['URBL'] = [0, 0]; 640 | BRAIN.postSynaptic['URBR'] = [0, 0]; 641 | BRAIN.postSynaptic['URXL'] = [0, 0]; 642 | BRAIN.postSynaptic['URXR'] = [0, 0]; 643 | BRAIN.postSynaptic['URYDL'] = [0, 0]; 644 | BRAIN.postSynaptic['URYDR'] = [0, 0]; 645 | BRAIN.postSynaptic['URYVL'] = [0, 0]; 646 | BRAIN.postSynaptic['URYVR'] = [0, 0]; 647 | BRAIN.postSynaptic['VA1'] = [0, 0]; 648 | BRAIN.postSynaptic['VA10'] = [0, 0]; 649 | BRAIN.postSynaptic['VA11'] = [0, 0]; 650 | BRAIN.postSynaptic['VA12'] = [0, 0]; 651 | BRAIN.postSynaptic['VA2'] = [0, 0]; 652 | BRAIN.postSynaptic['VA3'] = [0, 0]; 653 | BRAIN.postSynaptic['VA4'] = [0, 0]; 654 | BRAIN.postSynaptic['VA5'] = [0, 0]; 655 | BRAIN.postSynaptic['VA6'] = [0, 0]; 656 | BRAIN.postSynaptic['VA7'] = [0, 0]; 657 | BRAIN.postSynaptic['VA8'] = [0, 0]; 658 | BRAIN.postSynaptic['VA9'] = [0, 0]; 659 | BRAIN.postSynaptic['VB1'] = [0, 0]; 660 | BRAIN.postSynaptic['VB10'] = [0, 0]; 661 | BRAIN.postSynaptic['VB11'] = [0, 0]; 662 | BRAIN.postSynaptic['VB2'] = [0, 0]; 663 | BRAIN.postSynaptic['VB3'] = [0, 0]; 664 | BRAIN.postSynaptic['VB4'] = [0, 0]; 665 | BRAIN.postSynaptic['VB5'] = [0, 0]; 666 | BRAIN.postSynaptic['VB6'] = [0, 0]; 667 | BRAIN.postSynaptic['VB7'] = [0, 0]; 668 | BRAIN.postSynaptic['VB8'] = [0, 0]; 669 | BRAIN.postSynaptic['VB9'] = [0, 0]; 670 | BRAIN.postSynaptic['VC1'] = [0, 0]; 671 | BRAIN.postSynaptic['VC2'] = [0, 0]; 672 | BRAIN.postSynaptic['VC3'] = [0, 0]; 673 | BRAIN.postSynaptic['VC4'] = [0, 0]; 674 | BRAIN.postSynaptic['VC5'] = [0, 0]; 675 | BRAIN.postSynaptic['VC6'] = [0, 0]; 676 | BRAIN.postSynaptic['VD1'] = [0, 0]; 677 | BRAIN.postSynaptic['VD10'] = [0, 0]; 678 | BRAIN.postSynaptic['VD11'] = [0, 0]; 679 | BRAIN.postSynaptic['VD12'] = [0, 0]; 680 | BRAIN.postSynaptic['VD13'] = [0, 0]; 681 | BRAIN.postSynaptic['VD2'] = [0, 0]; 682 | BRAIN.postSynaptic['VD3'] = [0, 0]; 683 | BRAIN.postSynaptic['VD4'] = [0, 0]; 684 | BRAIN.postSynaptic['VD5'] = [0, 0]; 685 | BRAIN.postSynaptic['VD6'] = [0, 0]; 686 | BRAIN.postSynaptic['VD7'] = [0, 0]; 687 | BRAIN.postSynaptic['VD8'] = [0, 0]; 688 | BRAIN.postSynaptic['VD9'] = [0, 0]; 689 | }; 690 | 691 | BRAIN.update = function () { 692 | if (BRAIN.stimulateHungerNeurons) { 693 | BRAIN.dendriteAccumulate('RIML'); 694 | BRAIN.dendriteAccumulate('RIMR'); 695 | BRAIN.dendriteAccumulate('RICL'); 696 | BRAIN.dendriteAccumulate('RICR'); 697 | BRAIN.runconnectome(); 698 | } 699 | if (BRAIN.stimulateNoseTouchNeurons) { 700 | BRAIN.dendriteAccumulate('FLPR'); 701 | BRAIN.dendriteAccumulate('FLPL'); 702 | BRAIN.dendriteAccumulate('ASHL'); 703 | BRAIN.dendriteAccumulate('ASHR'); 704 | BRAIN.dendriteAccumulate('IL1VL'); 705 | BRAIN.dendriteAccumulate('IL1VR'); 706 | BRAIN.dendriteAccumulate('OLQDL'); 707 | BRAIN.dendriteAccumulate('OLQDR'); 708 | BRAIN.dendriteAccumulate('OLQVR'); 709 | BRAIN.dendriteAccumulate('OLQVL'); 710 | BRAIN.runconnectome(); 711 | } 712 | if (BRAIN.stimulateFoodSenseNeurons) { 713 | BRAIN.dendriteAccumulate('ADFL'); 714 | BRAIN.dendriteAccumulate('ADFR'); 715 | BRAIN.dendriteAccumulate('ASGR'); 716 | BRAIN.dendriteAccumulate('ASGL'); 717 | BRAIN.dendriteAccumulate('ASIL'); 718 | BRAIN.dendriteAccumulate('ASIR'); 719 | BRAIN.dendriteAccumulate('ASJR'); 720 | BRAIN.dendriteAccumulate('ASJL'); 721 | BRAIN.runconnectome(); 722 | } 723 | 724 | //RIML RIMR RICL RICR hunger neurons 725 | //PVDL PVDR nociceptors 726 | //ASEL ASER gustatory neurons 727 | }; 728 | 729 | BRAIN.runconnectome = function () { 730 | for (var ps in BRAIN.postSynaptic) { 731 | /* Muscles cannot fire, make sure they don't */ 732 | if ( 733 | BRAIN.muscles.indexOf(ps.substring(0, 3)) == -1 && 734 | BRAIN.postSynaptic[ps][BRAIN.thisState] > BRAIN.fireThreshold 735 | ) { 736 | BRAIN.fireNeuron(ps); 737 | } 738 | } 739 | 740 | BRAIN.motorcontrol(); 741 | 742 | for (var ps in BRAIN.postSynaptic) { 743 | BRAIN.postSynaptic[ps][BRAIN.thisState] = 744 | BRAIN.postSynaptic[ps][BRAIN.nextState]; 745 | } 746 | 747 | var temp = BRAIN.thisState; 748 | BRAIN.thisState = BRAIN.nextState; 749 | BRAIN.nextState = temp; 750 | }; 751 | 752 | BRAIN.fireNeuron = function (fneuron) { 753 | /* The threshold has been exceeded and we fire the neurite */ 754 | if (fneuron !== 'MVULVA') { 755 | BRAIN.dendriteAccumulate(fneuron); 756 | BRAIN.postSynaptic[fneuron][BRAIN.nextState] = 0; 757 | } 758 | }; 759 | 760 | BRAIN.motorcontrol = function () { 761 | /* accumulate left and right muscles and the accumulated values are 762 | used to move the left and right motors of the robot */ 763 | 764 | BRAIN.accumleft = 0; 765 | BRAIN.accumright = 0; 766 | 767 | for (var m = 0; m < BRAIN.muscleList.length; m++) { 768 | var muscleName = BRAIN.muscleList[m]; 769 | 770 | if (BRAIN.mLeft.indexOf(muscleName) != -1) { 771 | BRAIN.accumleft += BRAIN.postSynaptic[muscleName][BRAIN.nextState]; 772 | BRAIN.postSynaptic[muscleName][BRAIN.nextState] = 0; 773 | } else if (BRAIN.mRight.indexOf(muscleName) != -1) { 774 | BRAIN.accumright += BRAIN.postSynaptic[muscleName][BRAIN.nextState]; 775 | BRAIN.postSynaptic[muscleName][BRAIN.nextState] = 0; 776 | } 777 | } 778 | }; 779 | -------------------------------------------------------------------------------- /js/constants.js: -------------------------------------------------------------------------------- 1 | var weights = { 2 | ADAL: { 3 | ADAR: 2, 4 | ADFL: 1, 5 | AIBL: 1, 6 | AIBR: 2, 7 | ASHL: 1, 8 | AVAR: 2, 9 | AVBL: 4, 10 | AVBR: 7, 11 | AVDL: 1, 12 | AVDR: 2, 13 | AVEL: 1, 14 | AVJR: 5, 15 | FLPR: 1, 16 | PVQL: 1, 17 | RICL: 1, 18 | RICR: 1, 19 | RIML: 3, 20 | RIPL: 1, 21 | SMDVR: 2, 22 | }, 23 | ADAR: { 24 | ADAL: 1, 25 | ADFR: 1, 26 | AIBL: 1, 27 | AIBR: 1, 28 | ASHR: 1, 29 | AVAL: 1, 30 | AVBL: 1, 31 | AVBR: 5, 32 | AVDL: 2, 33 | AVEL: 1, 34 | AVJL: 3, 35 | PVQR: 1, 36 | RICL: 1, 37 | RIMR: 5, 38 | RIPR: 1, 39 | RIVR: 1, 40 | SMDVL: 2, 41 | }, 42 | ADEL: { 43 | ADAL: 1, 44 | ADER: 1, 45 | AINL: 1, 46 | AVAL: 2, 47 | AVAR: 3, 48 | AVEL: 1, 49 | AVKR: 1, 50 | AVL: 1, 51 | BDUL: 1, 52 | CEPDL: 1, 53 | FLPL: 1, 54 | IL1L: 1, 55 | IL2L: 1, 56 | MDL05: 1, 57 | OLLL: 1, 58 | RIAL: 1, 59 | RIFL: 1, 60 | RIGL: 5, 61 | RIGR: 3, 62 | RIH: 2, 63 | RIVL: 1, 64 | RIVR: 1, 65 | RMDL: 2, 66 | RMGL: 1, 67 | RMHL: 1, 68 | SIADR: 1, 69 | SIBDR: 1, 70 | SMBDR: 1, 71 | URBL: 1, 72 | }, 73 | ADER: { 74 | ADAR: 1, 75 | ADEL: 2, 76 | ALA: 1, 77 | AVAL: 5, 78 | AVAR: 1, 79 | AVDR: 2, 80 | AVER: 1, 81 | AVJR: 1, 82 | AVKL: 2, 83 | AVKR: 1, 84 | CEPDR: 1, 85 | FLPL: 1, 86 | FLPR: 1, 87 | OLLR: 2, 88 | PVR: 1, 89 | RIGL: 7, 90 | RIGR: 4, 91 | RIH: 1, 92 | RMDR: 2, 93 | SAAVR: 1, 94 | }, 95 | ADFL: { 96 | ADAL: 2, 97 | AIZL: 12, 98 | AUAL: 5, 99 | OLQVL: 1, 100 | RIAL: 15, 101 | RIGL: 1, 102 | RIR: 2, 103 | SMBVL: 2, 104 | }, 105 | ADFR: { 106 | ADAR: 2, 107 | AIAR: 1, 108 | AIYR: 1, 109 | AIZR: 8, 110 | ASHR: 1, 111 | AUAR: 4, 112 | AWBR: 1, 113 | PVPR: 1, 114 | RIAR: 16, 115 | RIGR: 3, 116 | RIR: 3, 117 | SMBDR: 1, 118 | SMBVR: 2, 119 | URXR: 1, 120 | }, 121 | ADLL: { 122 | ADLR: 1, 123 | AIAL: 6, 124 | AIBL: 7, 125 | AIBR: 1, 126 | ALA: 2, 127 | ASER: 3, 128 | ASHL: 2, 129 | AVAL: 2, 130 | AVAR: 3, 131 | AVBL: 2, 132 | AVDL: 1, 133 | AVDR: 1, 134 | AVJL: 1, 135 | AVJR: 3, 136 | AWBL: 2, 137 | OLQVL: 2, 138 | RIPL: 1, 139 | RMGL: 1, 140 | }, 141 | ADLR: { 142 | ADLL: 1, 143 | AIAR: 10, 144 | AIBR: 10, 145 | ASER: 1, 146 | ASHR: 3, 147 | AVAR: 2, 148 | AVBL: 1, 149 | AVBR: 2, 150 | AVDL: 5, 151 | AVDR: 2, 152 | AVJR: 1, 153 | AWCR: 3, 154 | OLLR: 1, 155 | PVCL: 1, 156 | RICL: 1, 157 | RICR: 1, 158 | }, 159 | AFDL: { AFDR: 1, AIBL: 1, AINR: 1, AIYL: 7 }, 160 | AFDR: { AFDL: 1, AIBR: 1, AIYR: 13, ASER: 1 }, 161 | AIAL: { 162 | ADAL: 1, 163 | AIAR: 1, 164 | AIBL: 10, 165 | AIML: 2, 166 | AIZL: 1, 167 | ASER: 3, 168 | ASGL: 1, 169 | ASHL: 1, 170 | ASIL: 2, 171 | ASKL: 3, 172 | AWAL: 1, 173 | AWCR: 1, 174 | HSNL: 1, 175 | RIFL: 1, 176 | RMGL: 1, 177 | }, 178 | AIAR: { 179 | ADAR: 1, 180 | ADFR: 1, 181 | ADLR: 2, 182 | AIAL: 1, 183 | AIBR: 14, 184 | AIZR: 1, 185 | ASER: 1, 186 | ASGR: 1, 187 | ASIR: 2, 188 | AWAR: 2, 189 | AWCL: 1, 190 | AWCR: 3, 191 | RIFR: 2, 192 | }, 193 | AIBL: { 194 | AFDL: 1, 195 | AIYL: 1, 196 | ASER: 1, 197 | AVAL: 2, 198 | AVBL: 5, 199 | DVC: 1, 200 | FLPL: 1, 201 | PVT: 1, 202 | RIBR: 4, 203 | RIFL: 1, 204 | RIGR: 3, 205 | RIML: 2, 206 | RIMR: 1, 207 | RIVL: 1, 208 | SAADL: 2, 209 | SAADR: 2, 210 | SMDDR: 4, 211 | }, 212 | AIBR: { 213 | AFDR: 1, 214 | AVAR: 1, 215 | AVBR: 3, 216 | AVEL: 1, 217 | DB1: 1, 218 | DVC: 2, 219 | PVT: 1, 220 | RIAL: 1, 221 | RIBL: 4, 222 | RIGL: 3, 223 | RIML: 1, 224 | RIMR: 1, 225 | RIS: 1, 226 | RIVR: 1, 227 | SAADL: 1, 228 | SMDDL: 3, 229 | SMDVL: 1, 230 | VB1: 3, 231 | }, 232 | AIML: { 233 | AIAL: 5, 234 | ALML: 1, 235 | ASGL: 2, 236 | ASKL: 2, 237 | AVBR: 2, 238 | AVDL: 1, 239 | AVDR: 1, 240 | AVER: 1, 241 | AVFL: 4, 242 | AVFR: 1, 243 | AVHL: 2, 244 | AVHR: 1, 245 | AVJL: 1, 246 | PVQL: 1, 247 | RIFL: 1, 248 | SIBDR: 1, 249 | SMBVL: 1, 250 | }, 251 | AIMR: { 252 | AIAR: 5, 253 | ASGR: 2, 254 | ASJR: 2, 255 | ASKR: 3, 256 | AVDR: 1, 257 | AVFL: 1, 258 | AVFR: 1, 259 | HSNL: 1, 260 | HSNR: 2, 261 | OLQDR: 1, 262 | PVNR: 1, 263 | RIFR: 1, 264 | RMGR: 1, 265 | }, 266 | AINL: { 267 | ADEL: 1, 268 | AFDR: 5, 269 | AINR: 2, 270 | ASEL: 3, 271 | ASGR: 2, 272 | AUAR: 2, 273 | BAGL: 3, 274 | RIBL: 1, 275 | RIBR: 2, 276 | }, 277 | AINR: { 278 | AFDL: 4, 279 | AFDR: 1, 280 | AIAL: 2, 281 | AIBL: 2, 282 | AINL: 2, 283 | ASEL: 1, 284 | ASER: 1, 285 | ASGL: 1, 286 | AUAL: 1, 287 | AUAR: 1, 288 | BAGR: 3, 289 | RIBL: 2, 290 | RID: 1, 291 | }, 292 | AIYL: { 293 | AIYR: 1, 294 | AIZL: 13, 295 | AWAL: 3, 296 | AWCL: 1, 297 | AWCR: 1, 298 | HSNR: 1, 299 | RIAL: 7, 300 | RIBL: 4, 301 | RIML: 1, 302 | }, 303 | AIYR: { 304 | ADFR: 1, 305 | AIYL: 1, 306 | AIZR: 8, 307 | AWAR: 1, 308 | HSNL: 1, 309 | RIAR: 6, 310 | RIBR: 2, 311 | RIMR: 1, 312 | }, 313 | AIZL: { 314 | AIAL: 3, 315 | AIBL: 2, 316 | AIBR: 8, 317 | AIZR: 2, 318 | ASEL: 1, 319 | ASGL: 1, 320 | ASHL: 1, 321 | AVER: 5, 322 | DVA: 1, 323 | RIAL: 8, 324 | RIGL: 1, 325 | RIML: 4, 326 | SMBDL: 9, 327 | SMBVL: 7, 328 | VB2: 1, 329 | }, 330 | AIZR: { 331 | AIAR: 1, 332 | AIBL: 8, 333 | AIBR: 1, 334 | AIZL: 2, 335 | ASGR: 1, 336 | ASHR: 1, 337 | AVEL: 4, 338 | AVER: 1, 339 | AWAR: 1, 340 | DVA: 1, 341 | RIAR: 7, 342 | RIMR: 4, 343 | SMBDR: 5, 344 | SMBVR: 3, 345 | SMDDR: 1, 346 | }, 347 | ALA: { ADEL: 1, AVAL: 1, AVEL: 2, AVER: 1, RID: 1, RMDR: 1 }, 348 | ALML: { 349 | AVDR: 1, 350 | AVEL: 1, 351 | AVM: 1, 352 | BDUL: 6, 353 | CEPDL: 3, 354 | CEPVL: 2, 355 | PVCL: 2, 356 | PVCR: 1, 357 | PVR: 1, 358 | RMDDR: 1, 359 | RMGL: 1, 360 | SDQL: 1, 361 | }, 362 | ALMR: { 363 | AVM: 1, 364 | BDUR: 5, 365 | CEPDR: 1, 366 | CEPVR: 1, 367 | PVCR: 3, 368 | RMDDL: 1, 369 | SIADL: 1, 370 | }, 371 | ALNL: { SAAVL: 3, SMBDR: 1, SMDVL: 1 }, 372 | ALNR: { 373 | ADER: 1, 374 | RMHR: 1, 375 | SAAVR: 2, 376 | SMBDL: 2, 377 | SMDDR: 1, 378 | SMDVL: 1, 379 | }, 380 | AQR: { 381 | AVAL: 1, 382 | AVAR: 3, 383 | AVBL: 1, 384 | AVBR: 4, 385 | AVDL: 1, 386 | AVDR: 1, 387 | AVJL: 1, 388 | AVKL: 2, 389 | AVKR: 1, 390 | BAGL: 2, 391 | BAGR: 2, 392 | PVCR: 2, 393 | PVPL: 7, 394 | PVPR: 9, 395 | RIAL: 3, 396 | RIAR: 1, 397 | RIGL: 2, 398 | RIGR: 1, 399 | URXL: 1, 400 | }, 401 | AS1: { 402 | AVAL: 3, 403 | AVAR: 2, 404 | DA1: 2, 405 | MDL05: 3, 406 | MDL08: 3, 407 | MDR05: 3, 408 | MDR08: 4, 409 | VA3: 1, 410 | VD1: 5, 411 | VD2: 1, 412 | }, 413 | AS2: { 414 | DA2: 1, 415 | DB1: 1, 416 | DD1: 1, 417 | MDL07: 3, 418 | MDL08: 2, 419 | MDR07: 3, 420 | MDR08: 3, 421 | VA4: 2, 422 | VD2: 10, 423 | }, 424 | AS3: { 425 | AVAL: 2, 426 | AVAR: 1, 427 | DA2: 1, 428 | DA3: 1, 429 | DD1: 1, 430 | MDL09: 3, 431 | MDL10: 3, 432 | MDR09: 3, 433 | MDR10: 3, 434 | VA5: 2, 435 | VD2: 1, 436 | VD3: 15, 437 | }, 438 | AS4: { 439 | AS5: 1, 440 | DA3: 1, 441 | MDL11: 2, 442 | MDL12: 2, 443 | MDR11: 3, 444 | MDR12: 2, 445 | VD4: 11, 446 | }, 447 | AS5: { 448 | AVAL: 1, 449 | AVAR: 1, 450 | DD2: 1, 451 | MDL11: 2, 452 | MDL14: 3, 453 | MDR11: 2, 454 | MDR14: 3, 455 | VA7: 1, 456 | VD5: 9, 457 | }, 458 | AS6: { 459 | AVAL: 1, 460 | AVAR: 1, 461 | AVBR: 1, 462 | DA5: 2, 463 | MDL13: 3, 464 | MDL14: 2, 465 | MDR13: 3, 466 | MDR14: 2, 467 | VA8: 1, 468 | VD6: 13, 469 | }, 470 | AS7: { 471 | AVAL: 6, 472 | AVAR: 5, 473 | AVBL: 2, 474 | AVBR: 2, 475 | MDL13: 2, 476 | MDL16: 3, 477 | MDR13: 2, 478 | MDR16: 3, 479 | }, 480 | AS8: { 481 | AVAL: 4, 482 | AVAR: 3, 483 | MDL15: 2, 484 | MDL18: 3, 485 | MDR15: 2, 486 | MDR18: 3, 487 | }, 488 | AS9: { 489 | AVAL: 4, 490 | AVAR: 2, 491 | DVB: 7, 492 | MDL17: 2, 493 | MDL20: 3, 494 | MDR17: 2, 495 | MDR20: 3, 496 | }, 497 | AS10: { 498 | AVAL: 1, 499 | AVAR: 1, 500 | MDL19: 3, 501 | MDL20: 2, 502 | MDR19: 3, 503 | MDR20: 2, 504 | }, 505 | AS11: { 506 | MDL21: 1, 507 | MDL22: 1, 508 | MDL23: 1, 509 | MDL24: 1, 510 | MDR21: 1, 511 | MDR22: 1, 512 | MDR23: 1, 513 | MDR24: 1, 514 | PDA: 1, 515 | PDB: 2, 516 | VD13: 2, 517 | }, 518 | ASEL: { 519 | ADFR: 1, 520 | AIAL: 3, 521 | AIBL: 7, 522 | AIBR: 2, 523 | AIYL: 13, 524 | AIYR: 6, 525 | AWCL: 4, 526 | AWCR: 1, 527 | RIAR: 1, 528 | }, 529 | ASER: { 530 | AFDL: 1, 531 | AFDR: 2, 532 | AIAL: 1, 533 | AIAR: 3, 534 | AIBL: 2, 535 | AIBR: 10, 536 | AIYL: 2, 537 | AIYR: 14, 538 | AWAR: 1, 539 | AWCL: 1, 540 | AWCR: 1, 541 | }, 542 | ASGL: { AIAL: 9, AIBL: 3, AINR: 2, AIZL: 1, ASKL: 1 }, 543 | ASGR: { AIAR: 10, AIBR: 2, AINL: 1, AIYR: 1, AIZR: 1 }, 544 | ASHL: { 545 | ADAL: 2, 546 | ADFL: 3, 547 | AIAL: 7, 548 | AIBL: 5, 549 | AIZL: 1, 550 | ASHR: 1, 551 | ASKL: 1, 552 | AVAL: 2, 553 | AVBL: 6, 554 | AVDL: 2, 555 | AVDR: 2, 556 | RIAL: 4, 557 | RICL: 2, 558 | RIML: 1, 559 | RIPL: 1, 560 | RMGL: 1, 561 | }, 562 | ASHR: { 563 | ADAR: 3, 564 | ADFR: 2, 565 | AIAR: 10, 566 | AIBR: 3, 567 | AIZR: 1, 568 | ASHL: 1, 569 | ASKR: 1, 570 | AVAR: 5, 571 | AVBR: 3, 572 | AVDL: 5, 573 | AVDR: 1, 574 | AVER: 3, 575 | HSNR: 1, 576 | PVPR: 1, 577 | RIAR: 2, 578 | RICR: 2, 579 | RMGR: 1, 580 | }, 581 | ASIL: { 582 | AIAL: 2, 583 | AIBL: 1, 584 | AIYL: 2, 585 | AIZL: 1, 586 | ASER: 1, 587 | ASIR: 1, 588 | ASKL: 2, 589 | AWCL: 1, 590 | AWCR: 1, 591 | RIBL: 1, 592 | }, 593 | ASIR: { 594 | AIAL: 1, 595 | AIAR: 2, 596 | AIBR: 1, 597 | ASEL: 2, 598 | ASHR: 1, 599 | ASIL: 1, 600 | AWCL: 1, 601 | AWCR: 1, 602 | }, 603 | ASJL: { ASJR: 1, ASKL: 4, HSNL: 1, HSNR: 1, PVQL: 14 }, 604 | ASJR: { ASJL: 1, ASKR: 4, HSNR: 1, PVQR: 13 }, 605 | ASKL: { 606 | AIAL: 11, 607 | AIBL: 2, 608 | AIML: 2, 609 | ASKR: 1, 610 | PVQL: 5, 611 | RMGL: 1, 612 | }, 613 | ASKR: { 614 | AIAR: 11, 615 | AIMR: 1, 616 | ASHR: 1, 617 | ASKL: 1, 618 | AWAR: 1, 619 | CEPVR: 1, 620 | PVQR: 4, 621 | RIFR: 1, 622 | RMGR: 1, 623 | }, 624 | AUAL: { 625 | AINR: 1, 626 | AUAR: 1, 627 | AVAL: 3, 628 | AVDR: 1, 629 | AVEL: 3, 630 | AWBL: 1, 631 | RIAL: 5, 632 | RIBL: 9, 633 | }, 634 | AUAR: { 635 | AINL: 1, 636 | AIYR: 1, 637 | AUAL: 1, 638 | AVAR: 1, 639 | AVER: 4, 640 | AWBR: 1, 641 | RIAR: 6, 642 | RIBR: 13, 643 | URXR: 1, 644 | }, 645 | AVAL: { 646 | AS1: 3, 647 | AS10: 3, 648 | AS11: 4, 649 | AS2: 1, 650 | AS3: 3, 651 | AS4: 1, 652 | AS5: 4, 653 | AS6: 1, 654 | AS7: 14, 655 | AS8: 9, 656 | AS9: 12, 657 | AVAR: 7, 658 | AVBR: 1, 659 | AVDL: 1, 660 | AVHL: 1, 661 | AVJL: 2, 662 | DA1: 4, 663 | DA2: 4, 664 | DA3: 6, 665 | DA4: 10, 666 | DA5: 8, 667 | DA6: 21, 668 | DA7: 4, 669 | DA8: 4, 670 | DA9: 3, 671 | DB5: 2, 672 | DB6: 4, 673 | FLPL: 1, 674 | LUAL: 2, 675 | PVCL: 12, 676 | PVCR: 11, 677 | PVPL: 1, 678 | RIMR: 3, 679 | SABD: 4, 680 | SABVR: 1, 681 | SDQR: 1, 682 | URYDL: 1, 683 | URYVR: 1, 684 | VA1: 3, 685 | VA10: 6, 686 | VA11: 7, 687 | VA12: 2, 688 | VA2: 5, 689 | VA3: 3, 690 | VA4: 3, 691 | VA5: 8, 692 | VA6: 10, 693 | VA7: 2, 694 | VA8: 19, 695 | VA9: 8, 696 | VB9: 5, 697 | }, 698 | AVAR: { 699 | ADER: 1, 700 | AS1: 3, 701 | AS10: 2, 702 | AS11: 6, 703 | AS2: 2, 704 | AS3: 2, 705 | AS4: 1, 706 | AS5: 2, 707 | AS6: 3, 708 | AS7: 8, 709 | AS8: 9, 710 | AS9: 6, 711 | AVAL: 6, 712 | AVBL: 1, 713 | AVDL: 1, 714 | AVDR: 2, 715 | AVEL: 2, 716 | AVER: 2, 717 | DA1: 8, 718 | DA2: 4, 719 | DA3: 5, 720 | DA4: 8, 721 | DA5: 7, 722 | DA6: 13, 723 | DA7: 3, 724 | DA8: 9, 725 | DA9: 2, 726 | DB3: 1, 727 | DB5: 3, 728 | DB6: 5, 729 | LUAL: 1, 730 | LUAR: 3, 731 | PDEL: 1, 732 | PDER: 1, 733 | PVCL: 7, 734 | PVCR: 8, 735 | RIGL: 1, 736 | RIML: 2, 737 | RIMR: 1, 738 | SABD: 1, 739 | SABVL: 6, 740 | SABVR: 1, 741 | URYDR: 1, 742 | URYVL: 1, 743 | VA10: 5, 744 | VA11: 15, 745 | VA12: 1, 746 | VA2: 2, 747 | VA3: 7, 748 | VA4: 5, 749 | VA5: 4, 750 | VA6: 5, 751 | VA7: 4, 752 | VA8: 16, 753 | VB9: 10, 754 | VD13: 2, 755 | }, 756 | AVBL: { 757 | AQR: 1, 758 | AS10: 1, 759 | AS3: 1, 760 | AS4: 1, 761 | AS5: 1, 762 | AS6: 1, 763 | AS7: 2, 764 | AS9: 1, 765 | AVAL: 7, 766 | AVAR: 7, 767 | AVBR: 4, 768 | AVDL: 1, 769 | AVDR: 2, 770 | AVEL: 1, 771 | AVER: 2, 772 | AVL: 1, 773 | DB3: 1, 774 | DB4: 1, 775 | DB5: 1, 776 | DB6: 2, 777 | DB7: 2, 778 | DVA: 1, 779 | PVNR: 1, 780 | RIBL: 1, 781 | RIBR: 1, 782 | RID: 1, 783 | SDQR: 1, 784 | SIBVL: 1, 785 | VA10: 1, 786 | VA2: 1, 787 | VA7: 1, 788 | VB1: 1, 789 | VB10: 2, 790 | VB11: 2, 791 | VB2: 4, 792 | VB4: 1, 793 | VB5: 1, 794 | VB6: 1, 795 | VB7: 2, 796 | VB8: 7, 797 | VB9: 1, 798 | VC3: 1, 799 | }, 800 | AVBR: { 801 | AS1: 1, 802 | AS10: 1, 803 | AS3: 1, 804 | AS4: 1, 805 | AS5: 1, 806 | AS6: 2, 807 | AS7: 3, 808 | AVAL: 6, 809 | AVAR: 7, 810 | AVBL: 4, 811 | DA5: 1, 812 | DB1: 3, 813 | DB2: 1, 814 | DB3: 1, 815 | DB4: 1, 816 | DB5: 1, 817 | DB6: 1, 818 | DB7: 1, 819 | DD1: 1, 820 | DVA: 1, 821 | HSNR: 1, 822 | PVNL: 2, 823 | RIBL: 1, 824 | RIBR: 1, 825 | RID: 2, 826 | SIBVL: 1, 827 | VA4: 1, 828 | VA8: 1, 829 | VA9: 2, 830 | VB10: 1, 831 | VB11: 1, 832 | VB2: 1, 833 | VB3: 1, 834 | VB4: 1, 835 | VB6: 2, 836 | VB7: 2, 837 | VB8: 3, 838 | VB9: 6, 839 | VD10: 1, 840 | VD3: 1, 841 | }, 842 | AVDL: { 843 | ADAR: 2, 844 | AS1: 1, 845 | AS10: 1, 846 | AS11: 2, 847 | AS4: 1, 848 | AS5: 1, 849 | AVAL: 13, 850 | AVAR: 19, 851 | AVM: 2, 852 | DA1: 1, 853 | DA2: 1, 854 | DA3: 4, 855 | DA4: 1, 856 | DA5: 1, 857 | DA8: 1, 858 | FLPL: 1, 859 | FLPR: 1, 860 | LUAL: 1, 861 | PVCL: 1, 862 | SABD: 1, 863 | SABVL: 1, 864 | SABVR: 1, 865 | VA5: 1, 866 | }, 867 | AVDR: { 868 | ADAL: 2, 869 | ADLL: 1, 870 | AS10: 1, 871 | AS5: 1, 872 | AVAL: 16, 873 | AVAR: 15, 874 | AVBL: 1, 875 | AVDL: 2, 876 | AVJL: 2, 877 | DA1: 2, 878 | DA2: 1, 879 | DA3: 1, 880 | DA4: 1, 881 | DA5: 2, 882 | DA8: 1, 883 | DA9: 1, 884 | DB4: 1, 885 | DVC: 1, 886 | FLPR: 1, 887 | LUAL: 2, 888 | PQR: 1, 889 | SABD: 1, 890 | SABVL: 3, 891 | SABVR: 1, 892 | VA11: 1, 893 | VA2: 1, 894 | VA3: 2, 895 | VA6: 1, 896 | }, 897 | AVEL: { 898 | AS1: 1, 899 | AVAL: 12, 900 | AVAR: 7, 901 | AVER: 1, 902 | DA1: 5, 903 | DA2: 1, 904 | DA3: 3, 905 | DA4: 1, 906 | PVCR: 1, 907 | PVT: 1, 908 | RIML: 2, 909 | RIMR: 3, 910 | RMDVR: 1, 911 | RMEV: 1, 912 | SABD: 6, 913 | SABVL: 7, 914 | SABVR: 3, 915 | VA1: 5, 916 | VA3: 3, 917 | VD2: 1, 918 | VD3: 1, 919 | }, 920 | AVER: { 921 | AS1: 3, 922 | AS2: 2, 923 | AS3: 1, 924 | AVAL: 7, 925 | AVAR: 16, 926 | AVDR: 1, 927 | AVEL: 1, 928 | DA1: 5, 929 | DA2: 3, 930 | DA3: 1, 931 | DB3: 1, 932 | RIML: 3, 933 | RIMR: 2, 934 | RMDVL: 1, 935 | RMDVR: 1, 936 | RMEV: 1, 937 | SABD: 2, 938 | SABVL: 3, 939 | SABVR: 3, 940 | VA1: 1, 941 | VA2: 1, 942 | VA3: 2, 943 | VA4: 1, 944 | VA5: 1, 945 | }, 946 | AVFL: { 947 | AVBL: 1, 948 | AVBR: 2, 949 | AVFR: 30, 950 | AVG: 1, 951 | AVHL: 4, 952 | AVHR: 7, 953 | AVJL: 1, 954 | AVJR: 1, 955 | AVL: 1, 956 | HSNL: 1, 957 | MVL11: 1, 958 | MVL12: 1, 959 | PDER: 1, 960 | PVNL: 2, 961 | PVQL: 1, 962 | PVQR: 2, 963 | VB1: 1, 964 | }, 965 | AVFR: { 966 | ASJL: 1, 967 | ASKL: 1, 968 | AVBL: 1, 969 | AVBR: 5, 970 | AVFL: 24, 971 | AVHL: 4, 972 | AVHR: 2, 973 | AVJL: 1, 974 | AVJR: 1, 975 | HSNR: 1, 976 | MVL14: 2, 977 | MVR14: 2, 978 | PVQL: 1, 979 | VC4: 1, 980 | VD11: 1, 981 | }, 982 | AVG: { 983 | AVAR: 3, 984 | AVBL: 1, 985 | AVBR: 2, 986 | AVDR: 1, 987 | AVEL: 1, 988 | AVER: 1, 989 | AVFL: 1, 990 | AVJL: 1, 991 | AVL: 1, 992 | DA8: 1, 993 | PHAL: 2, 994 | PVCL: 1, 995 | PVNR: 1, 996 | PVPR: 1, 997 | PVQR: 1, 998 | PVT: 1, 999 | RIFL: 1, 1000 | RIFR: 1, 1001 | VA11: 1, 1002 | }, 1003 | AVHL: { 1004 | ADFR: 3, 1005 | AVBL: 1, 1006 | AVBR: 1, 1007 | AVDL: 1, 1008 | AVFL: 2, 1009 | AVFR: 5, 1010 | AVHR: 2, 1011 | AVJL: 1, 1012 | AWBR: 1, 1013 | PHBR: 1, 1014 | PVPR: 2, 1015 | PVQL: 1, 1016 | PVQR: 2, 1017 | RIMR: 1, 1018 | RIR: 3, 1019 | SMBDR: 1, 1020 | SMBVR: 1, 1021 | VD1: 1, 1022 | }, 1023 | AVHR: { 1024 | ADLL: 1, 1025 | ADLR: 2, 1026 | AQR: 2, 1027 | AVBL: 2, 1028 | AVBR: 1, 1029 | AVDR: 1, 1030 | AVFL: 1, 1031 | AVFR: 2, 1032 | AVHL: 2, 1033 | AVJR: 4, 1034 | PVNL: 1, 1035 | PVPL: 3, 1036 | RIGL: 1, 1037 | RIR: 4, 1038 | SMBDL: 1, 1039 | SMBVL: 1, 1040 | }, 1041 | AVJL: { 1042 | AVAL: 2, 1043 | AVAR: 1, 1044 | AVBL: 1, 1045 | AVBR: 4, 1046 | AVDL: 1, 1047 | AVDR: 2, 1048 | AVEL: 1, 1049 | AVFR: 1, 1050 | AVHL: 2, 1051 | AVJR: 4, 1052 | HSNR: 1, 1053 | PLMR: 2, 1054 | PVCL: 2, 1055 | PVCR: 5, 1056 | PVNR: 1, 1057 | RIFR: 1, 1058 | RIS: 2, 1059 | }, 1060 | AVJR: { 1061 | AVAL: 1, 1062 | AVAR: 1, 1063 | AVBL: 3, 1064 | AVBR: 1, 1065 | AVDL: 1, 1066 | AVDR: 3, 1067 | AVER: 3, 1068 | AVJL: 5, 1069 | PVCL: 3, 1070 | PVCR: 4, 1071 | PVQR: 1, 1072 | SABVL: 1, 1073 | }, 1074 | AVKL: { 1075 | ADER: 1, 1076 | AQR: 2, 1077 | AVBL: 1, 1078 | AVEL: 2, 1079 | AVER: 1, 1080 | AVKR: 2, 1081 | AVM: 1, 1082 | DVA: 1, 1083 | PDEL: 3, 1084 | PDER: 1, 1085 | PVM: 1, 1086 | PVPL: 1, 1087 | PVPR: 1, 1088 | PVT: 2, 1089 | RICL: 1, 1090 | RICR: 1, 1091 | RIGL: 1, 1092 | RIML: 2, 1093 | RIMR: 1, 1094 | RMFR: 1, 1095 | SAADR: 1, 1096 | SIAVR: 1, 1097 | SMBDL: 1, 1098 | SMBDR: 1, 1099 | SMBVR: 1, 1100 | SMDDR: 1, 1101 | VB1: 4, 1102 | VB10: 1, 1103 | }, 1104 | AVKR: { 1105 | ADEL: 1, 1106 | AQR: 1, 1107 | AVKL: 2, 1108 | BDUL: 1, 1109 | MVL10: 1, 1110 | PVPL: 6, 1111 | PVQL: 1, 1112 | RICL: 1, 1113 | RIGR: 1, 1114 | RIML: 2, 1115 | RIMR: 2, 1116 | RMDR: 1, 1117 | RMFL: 1, 1118 | SAADL: 1, 1119 | SMBDL: 2, 1120 | SMBDR: 2, 1121 | SMBVR: 1, 1122 | SMDDL: 1, 1123 | SMDDR: 2, 1124 | }, 1125 | AVL: { 1126 | AVEL: 1, 1127 | AVFR: 1, 1128 | DA2: 1, 1129 | DD1: 1, 1130 | DD6: 2, 1131 | DVB: 1, 1132 | DVC: 9, 1133 | HSNR: 1, 1134 | MVL10: -5, 1135 | MVR10: -5, 1136 | PVM: 1, 1137 | PVPR: 1, 1138 | PVWL: 1, 1139 | SABD: 5, 1140 | SABVL: 4, 1141 | SABVR: 3, 1142 | VD12: 4, 1143 | }, 1144 | AVM: { 1145 | ADER: 1, 1146 | ALML: 1, 1147 | ALMR: 1, 1148 | AVBL: 6, 1149 | AVBR: 6, 1150 | AVDL: 2, 1151 | AVJR: 1, 1152 | BDUL: 3, 1153 | BDUR: 2, 1154 | DA1: 1, 1155 | PVCL: 4, 1156 | PVCR: 5, 1157 | PVNL: 1, 1158 | PVR: 3, 1159 | RID: 1, 1160 | SIBVL: 1, 1161 | VA1: 2, 1162 | }, 1163 | AWAL: { 1164 | ADAL: 1, 1165 | AFDL: 5, 1166 | AIAL: 1, 1167 | AIYL: 1, 1168 | AIZL: 10, 1169 | ASEL: 4, 1170 | ASGL: 1, 1171 | AWAR: 1, 1172 | AWBL: 1, 1173 | }, 1174 | AWAR: { 1175 | ADFR: 3, 1176 | AFDR: 7, 1177 | AIAR: 1, 1178 | AIYR: 2, 1179 | AIZR: 1, 1180 | ASEL: 1, 1181 | ASER: 2, 1182 | AUAR: 1, 1183 | AWAL: 1, 1184 | AWBR: 1, 1185 | RIFR: 2, 1186 | RIGR: 1, 1187 | RIR: 2, 1188 | }, 1189 | AWBL: { 1190 | ADFL: 9, 1191 | AIBR: 1, 1192 | AIZL: 9, 1193 | AUAL: 1, 1194 | AVBL: 1, 1195 | AWBR: 1, 1196 | RIAL: 3, 1197 | RMGL: 1, 1198 | SMBDL: 1, 1199 | }, 1200 | AWBR: { 1201 | ADFR: 4, 1202 | AIZR: 4, 1203 | ASGR: 1, 1204 | ASHR: 2, 1205 | AUAR: 1, 1206 | AVBR: 2, 1207 | AWBL: 1, 1208 | RIAR: 1, 1209 | RICL: 1, 1210 | RIR: 2, 1211 | RMGR: 1, 1212 | SMBVR: 1, 1213 | }, 1214 | AWCL: { 1215 | AIAL: 2, 1216 | AIAR: 4, 1217 | AIBL: 1, 1218 | AIBR: 1, 1219 | AIYL: 10, 1220 | ASEL: 1, 1221 | AVAL: 1, 1222 | AWCR: 1, 1223 | RIAL: 3, 1224 | }, 1225 | AWCR: { 1226 | AIAR: 1, 1227 | AIBR: 4, 1228 | AIYL: 4, 1229 | AIYR: 9, 1230 | ASEL: 1, 1231 | ASGR: 1, 1232 | AWCL: 5, 1233 | }, 1234 | BAGL: { 1235 | AIBL: 1, 1236 | AVAR: 1, 1237 | AVEL: 1, 1238 | AVER: 4, 1239 | BAGR: 2, 1240 | RIAR: 5, 1241 | RIBL: 1, 1242 | RIBR: 7, 1243 | RIGL: 1, 1244 | RIGR: 1, 1245 | RIR: 1, 1246 | }, 1247 | BAGR: { 1248 | AIYL: 1, 1249 | AVAL: 1, 1250 | AVEL: 2, 1251 | BAGL: 1, 1252 | RIAL: 5, 1253 | RIBL: 4, 1254 | RIGL: 1, 1255 | RIR: 1, 1256 | }, 1257 | BDUL: { 1258 | ADEL: 3, 1259 | AVHL: 1, 1260 | AVJR: 1, 1261 | HSNL: 1, 1262 | PVNL: 2, 1263 | PVNR: 2, 1264 | SAADL: 1, 1265 | URADL: 1, 1266 | }, 1267 | BDUR: { 1268 | ADER: 1, 1269 | ALMR: 1, 1270 | AVAL: 3, 1271 | AVHL: 1, 1272 | AVJL: 2, 1273 | HSNR: 4, 1274 | PVCL: 1, 1275 | PVNL: 2, 1276 | PVNR: 1, 1277 | SDQL: 1, 1278 | URADR: 1, 1279 | }, 1280 | CEPDL: { 1281 | AVER: 5, 1282 | IL1DL: 4, 1283 | OLLL: 2, 1284 | OLQDL: 1, 1285 | RIBL: 2, 1286 | RICL: 1, 1287 | RICR: 2, 1288 | RIH: 1, 1289 | RIPL: 2, 1290 | RIS: 1, 1291 | RMDVL: 3, 1292 | RMGL: 4, 1293 | RMHR: 4, 1294 | SIADR: 1, 1295 | SMBDR: 1, 1296 | URADL: 2, 1297 | URBL: 4, 1298 | URYDL: 2, 1299 | }, 1300 | CEPDR: { 1301 | AVEL: 6, 1302 | BDUR: 1, 1303 | IL1DR: 5, 1304 | IL1R: 1, 1305 | OLLR: 8, 1306 | OLQDR: 2, 1307 | RIBR: 1, 1308 | RICL: 4, 1309 | RICR: 3, 1310 | RIH: 1, 1311 | RIS: 1, 1312 | RMDDL: 1, 1313 | RMDVR: 2, 1314 | RMGR: 1, 1315 | RMHL: 4, 1316 | RMHR: 1, 1317 | SIADL: 1, 1318 | SMBDR: 1, 1319 | URADR: 1, 1320 | URBR: 2, 1321 | URYDR: 1, 1322 | }, 1323 | CEPVL: { 1324 | ADLL: 1, 1325 | AVER: 3, 1326 | IL1VL: 2, 1327 | MVL03: 1, 1328 | OLLL: 4, 1329 | OLQVL: 1, 1330 | RICL: 7, 1331 | RICR: 4, 1332 | RIH: 1, 1333 | RIPL: 1, 1334 | RMDDL: 4, 1335 | RMHL: 1, 1336 | SIAVL: 1, 1337 | URAVL: 2, 1338 | }, 1339 | CEPVR: { 1340 | ASGR: 1, 1341 | AVEL: 5, 1342 | IL1VR: 1, 1343 | IL2VR: 2, 1344 | MVR04: 1, 1345 | OLLR: 7, 1346 | OLQVR: 1, 1347 | RICL: 2, 1348 | RICR: 2, 1349 | RIH: 1, 1350 | RIPR: 1, 1351 | RIVL: 1, 1352 | RMDDR: 2, 1353 | RMHR: 2, 1354 | SIAVR: 2, 1355 | URAVR: 1, 1356 | }, 1357 | DA1: { 1358 | AVAL: 2, 1359 | AVAR: 6, 1360 | DA4: 1, 1361 | DD1: 4, 1362 | MDL08: 8, 1363 | MDR08: 8, 1364 | SABVL: 2, 1365 | SABVR: 3, 1366 | VD1: 17, 1367 | VD2: 1, 1368 | }, 1369 | DA2: { 1370 | AS2: 2, 1371 | AS3: 1, 1372 | AVAL: 2, 1373 | AVAR: 2, 1374 | DD1: 1, 1375 | MDL07: 2, 1376 | MDL08: 1, 1377 | MDL09: 2, 1378 | MDL10: 2, 1379 | MDR07: 2, 1380 | MDR08: 2, 1381 | MDR09: 2, 1382 | MDR10: 2, 1383 | SABVL: 1, 1384 | VA1: 2, 1385 | VD1: 2, 1386 | VD2: 11, 1387 | VD3: 5, 1388 | }, 1389 | DA3: { 1390 | AS4: 2, 1391 | AVAR: 2, 1392 | DA4: 2, 1393 | DB3: 1, 1394 | DD2: 1, 1395 | MDL09: 5, 1396 | MDL10: 5, 1397 | MDL12: 5, 1398 | MDR09: 5, 1399 | MDR10: 5, 1400 | MDR12: 5, 1401 | VD3: 25, 1402 | VD4: 6, 1403 | }, 1404 | DA4: { 1405 | AVAL: 3, 1406 | AVAR: 2, 1407 | DA1: 1, 1408 | DA3: 1, 1409 | DB3: 2, 1410 | DD2: 1, 1411 | MDL11: 4, 1412 | MDL12: 4, 1413 | MDL14: 5, 1414 | MDR11: 4, 1415 | MDR12: 4, 1416 | MDR14: 5, 1417 | VB6: 1, 1418 | VD4: 12, 1419 | VD5: 15, 1420 | }, 1421 | DA5: { 1422 | AS6: 2, 1423 | AVAL: 1, 1424 | AVAR: 5, 1425 | DB4: 1, 1426 | MDL13: 5, 1427 | MDL14: 4, 1428 | MDR13: 5, 1429 | MDR14: 4, 1430 | VA4: 1, 1431 | VA5: 2, 1432 | VD5: 1, 1433 | VD6: 16, 1434 | }, 1435 | DA6: { 1436 | AVAL: 10, 1437 | AVAR: 2, 1438 | MDL11: 6, 1439 | MDL12: 4, 1440 | MDL13: 4, 1441 | MDL14: 4, 1442 | MDL16: 4, 1443 | MDR11: 4, 1444 | MDR12: 4, 1445 | MDR13: 4, 1446 | MDR14: 4, 1447 | MDR16: 4, 1448 | VD4: 4, 1449 | VD5: 3, 1450 | VD6: 3, 1451 | }, 1452 | DA7: { 1453 | AVAL: 2, 1454 | MDL15: 4, 1455 | MDL17: 4, 1456 | MDL18: 4, 1457 | MDR15: 4, 1458 | MDR17: 4, 1459 | MDR18: 4, 1460 | }, 1461 | DA8: { 1462 | AVAR: 1, 1463 | DA9: 1, 1464 | MDL17: 4, 1465 | MDL19: 4, 1466 | MDL20: 4, 1467 | MDR17: 4, 1468 | MDR19: 4, 1469 | MDR20: 4, 1470 | }, 1471 | DA9: { 1472 | DA8: 1, 1473 | DD6: 1, 1474 | MDL19: 4, 1475 | MDL21: 4, 1476 | MDL22: 4, 1477 | MDL23: 4, 1478 | MDL24: 4, 1479 | MDR19: 4, 1480 | MDR21: 4, 1481 | MDR22: 4, 1482 | MDR23: 4, 1483 | MDR24: 4, 1484 | PDA: 1, 1485 | PHCL: 1, 1486 | RID: 1, 1487 | VD13: 1, 1488 | }, 1489 | DB1: { 1490 | AIBR: 1, 1491 | AS1: 1, 1492 | AS2: 1, 1493 | AS3: 1, 1494 | AVBR: 3, 1495 | DB2: 1, 1496 | DB4: 1, 1497 | DD1: 10, 1498 | DVA: 1, 1499 | MDL07: 1, 1500 | MDL08: 1, 1501 | MDR07: 1, 1502 | MDR08: 1, 1503 | RID: 1, 1504 | RIS: 1, 1505 | VB3: 1, 1506 | VB4: 1, 1507 | VD1: 21, 1508 | VD2: 15, 1509 | VD3: 1, 1510 | }, 1511 | DB2: { 1512 | AVBR: 1, 1513 | DA3: 5, 1514 | DB1: 1, 1515 | DB3: 6, 1516 | DD2: 3, 1517 | MDL09: 3, 1518 | MDL10: 3, 1519 | MDL11: 3, 1520 | MDL12: 3, 1521 | MDR09: 3, 1522 | MDR10: 3, 1523 | MDR11: 3, 1524 | MDR12: 3, 1525 | VB1: 2, 1526 | VD3: 23, 1527 | VD4: 14, 1528 | VD5: 1, 1529 | }, 1530 | DB3: { 1531 | AS4: 1, 1532 | AS5: 1, 1533 | AVBL: 1, 1534 | AVBR: 1, 1535 | DA4: 1, 1536 | DB2: 6, 1537 | DB4: 1, 1538 | DD2: 4, 1539 | DD3: 10, 1540 | MDL11: 3, 1541 | MDL12: 3, 1542 | MDL13: 4, 1543 | MDL14: 3, 1544 | MDR11: 3, 1545 | MDR12: 3, 1546 | MDR13: 4, 1547 | MDR14: 3, 1548 | VD4: 9, 1549 | VD5: 26, 1550 | VD6: 7, 1551 | }, 1552 | DB4: { 1553 | AVBL: 1, 1554 | AVBR: 1, 1555 | DB1: 1, 1556 | DB3: 1, 1557 | DD3: 3, 1558 | MDL13: 2, 1559 | MDL14: 2, 1560 | MDL16: 2, 1561 | MDR13: 2, 1562 | MDR14: 2, 1563 | MDR16: 2, 1564 | VB2: 1, 1565 | VB4: 1, 1566 | VD6: 13, 1567 | }, 1568 | DB5: { 1569 | AVAR: 2, 1570 | AVBL: 1, 1571 | AVBR: 1, 1572 | MDL15: 2, 1573 | MDL17: 2, 1574 | MDL18: 2, 1575 | MDR15: 2, 1576 | MDR17: 2, 1577 | MDR18: 2, 1578 | }, 1579 | DB6: { 1580 | AVAL: 3, 1581 | AVBL: 2, 1582 | AVBR: 1, 1583 | MDL17: 2, 1584 | MDL19: 2, 1585 | MDL20: 2, 1586 | MDR17: 2, 1587 | MDR19: 2, 1588 | MDR20: 2, 1589 | }, 1590 | DB7: { 1591 | AVBL: 2, 1592 | AVBR: 1, 1593 | MDL19: 2, 1594 | MDL21: 2, 1595 | MDL22: 2, 1596 | MDL23: 2, 1597 | MDL24: 2, 1598 | MDR19: 2, 1599 | MDR21: 2, 1600 | MDR22: 2, 1601 | MDR23: 2, 1602 | MDR24: 2, 1603 | VD13: 2, 1604 | }, 1605 | DD1: { 1606 | AVBR: 1, 1607 | DD2: 3, 1608 | MDL07: -6, 1609 | MDL08: -6, 1610 | MDL09: -7, 1611 | MDL10: -6, 1612 | MDR07: -6, 1613 | MDR08: -6, 1614 | MDR09: -7, 1615 | MDR10: -6, 1616 | VD1: 4, 1617 | VD2: 2, 1618 | }, 1619 | DD2: { 1620 | DA3: 1, 1621 | DD1: 1, 1622 | DD3: 2, 1623 | MDL09: -6, 1624 | MDL11: -7, 1625 | MDL12: -6, 1626 | MDR09: -6, 1627 | MDR11: -7, 1628 | MDR12: -6, 1629 | VD3: 1, 1630 | VD4: 3, 1631 | }, 1632 | DD3: { 1633 | DD2: 2, 1634 | DD4: 1, 1635 | MDL11: -7, 1636 | MDL13: -9, 1637 | MDL14: -7, 1638 | MDR11: -7, 1639 | MDR13: -9, 1640 | MDR14: -7, 1641 | }, 1642 | DD4: { 1643 | DD3: 1, 1644 | MDL13: -7, 1645 | MDL15: -7, 1646 | MDL16: -7, 1647 | MDR13: -7, 1648 | MDR15: -7, 1649 | MDR16: -7, 1650 | VC3: 1, 1651 | VD8: 1, 1652 | }, 1653 | DD5: { 1654 | MDL17: -7, 1655 | MDL18: -7, 1656 | MDL20: -7, 1657 | MDR17: -7, 1658 | MDR18: -7, 1659 | MDR20: -7, 1660 | VB8: 1, 1661 | VD10: 1, 1662 | VD9: 1, 1663 | }, 1664 | DD6: { 1665 | MDL19: -7, 1666 | MDL21: -7, 1667 | MDL22: -7, 1668 | MDL23: -7, 1669 | MDL24: -7, 1670 | MDR19: -7, 1671 | MDR21: -7, 1672 | MDR22: -7, 1673 | MDR23: -7, 1674 | MDR24: -7, 1675 | }, 1676 | DVA: { 1677 | AIZL: 3, 1678 | AQR: 4, 1679 | AUAL: 1, 1680 | AUAR: 1, 1681 | AVAL: 3, 1682 | AVAR: 1, 1683 | AVBL: 2, 1684 | AVBR: 1, 1685 | AVEL: 9, 1686 | AVER: 5, 1687 | DB1: 1, 1688 | DB2: 1, 1689 | DB3: 2, 1690 | DB4: 1, 1691 | DB5: 1, 1692 | DB6: 2, 1693 | DB7: 1, 1694 | PDEL: 3, 1695 | PVCL: 1, 1696 | PVCR: 1, 1697 | PVR: 2, 1698 | RIAL: 1, 1699 | RIAR: 1, 1700 | RIMR: 1, 1701 | RIR: 3, 1702 | SAADR: 1, 1703 | SAAVL: 1, 1704 | SAAVR: 1, 1705 | SABD: 1, 1706 | SMBDL: 3, 1707 | SMBDR: 2, 1708 | SMBVL: 3, 1709 | SMBVR: 2, 1710 | VA12: 1, 1711 | VA2: 1, 1712 | VB1: 1, 1713 | VB11: 2, 1714 | }, 1715 | DVB: { 1716 | AS9: 7, 1717 | AVL: 1, 1718 | DA8: 2, 1719 | DD6: 3, 1720 | DVC: 3, 1721 | PDA: 1, 1722 | PHCL: 1, 1723 | PVPL: 1, 1724 | VA9: 1, 1725 | VB9: 1, 1726 | }, 1727 | DVC: { 1728 | AIBL: 2, 1729 | AIBR: 5, 1730 | AVAL: 5, 1731 | AVAR: 7, 1732 | AVBL: 1, 1733 | AVKL: 2, 1734 | AVKR: 1, 1735 | AVL: 9, 1736 | PVPL: 2, 1737 | PVPR: 13, 1738 | PVT: 1, 1739 | RIBL: 1, 1740 | RIBR: 1, 1741 | RIGL: 5, 1742 | RIGR: 5, 1743 | RMFL: 2, 1744 | RMFR: 4, 1745 | VA9: 1, 1746 | VD1: 5, 1747 | VD10: 4, 1748 | }, 1749 | FLPL: { 1750 | ADEL: 2, 1751 | ADER: 2, 1752 | AIBL: 1, 1753 | AIBR: 2, 1754 | AVAL: 15, 1755 | AVAR: 17, 1756 | AVBL: 4, 1757 | AVBR: 5, 1758 | AVDL: 7, 1759 | AVDR: 13, 1760 | DVA: 1, 1761 | FLPR: 3, 1762 | RIH: 1, 1763 | }, 1764 | FLPR: { 1765 | ADER: 1, 1766 | AIBR: 1, 1767 | AVAL: 12, 1768 | AVAR: 5, 1769 | AVBL: 5, 1770 | AVBR: 1, 1771 | AVDL: 1, 1772 | AVDR: 2, 1773 | AVEL: 4, 1774 | AVER: 2, 1775 | AVJR: 1, 1776 | DVA: 1, 1777 | FLPL: 4, 1778 | PVCL: 2, 1779 | VB1: 1, 1780 | }, 1781 | HSNL: { 1782 | AIAL: 1, 1783 | AIZL: 2, 1784 | AIZR: 1, 1785 | ASHL: 1, 1786 | ASHR: 2, 1787 | ASJR: 1, 1788 | ASKL: 1, 1789 | AVDR: 2, 1790 | AVFL: 6, 1791 | AVJL: 1, 1792 | AWBL: 1, 1793 | AWBR: 2, 1794 | HSNR: 1, 1795 | MVULVA: 7, 1796 | RIFL: 3, 1797 | RIML: 2, 1798 | SABVL: 2, 1799 | VC5: 3, 1800 | }, 1801 | HSNR: { 1802 | AIBL: 1, 1803 | AIBR: 1, 1804 | AIZL: 1, 1805 | AIZR: 1, 1806 | AS5: 1, 1807 | ASHL: 2, 1808 | AVDR: 1, 1809 | AVFL: 1, 1810 | AVJL: 1, 1811 | AVL: 1, 1812 | AWBL: 1, 1813 | BDUR: 1, 1814 | DA5: 1, 1815 | DA6: 1, 1816 | HSNL: 2, 1817 | MVULVA: 6, 1818 | PVNR: 2, 1819 | PVQR: 1, 1820 | RIFR: 4, 1821 | RMGR: 1, 1822 | SABD: 1, 1823 | SABVR: 1, 1824 | VA6: 1, 1825 | VC2: 3, 1826 | VC3: 1, 1827 | VD4: 2, 1828 | }, 1829 | I1L: { I1R: 1, I3: 1, I5: 1, RIPL: 1, RIPR: 1 }, 1830 | I1R: { I1L: 1, I3: 1, I5: 1, RIPL: 1, RIPR: 1 }, 1831 | I2L: { I1L: 1, I1R: 1, M1: 4 }, 1832 | I2R: { I1L: 1, I1R: 1, M1: 4 }, 1833 | I3: { M1: 4, M2L: 2, M2R: 2 }, 1834 | I4: { I2L: 5, I2R: 5, I5: 2, M1: 4 }, 1835 | I5: { I1L: 4, I1R: 3, M1: 2, M5: 2, MI: 4 }, 1836 | I6: { 1837 | I2L: 2, 1838 | I2R: 2, 1839 | I3: 1, 1840 | M4: 1, 1841 | M5: 2, 1842 | NSML: 2, 1843 | NSMR: 2, 1844 | }, 1845 | IL1DL: { 1846 | IL1DR: 1, 1847 | IL1L: 1, 1848 | MDL01: 1, 1849 | MDL02: 1, 1850 | MDL04: 2, 1851 | OLLL: 1, 1852 | PVR: 1, 1853 | RIH: 1, 1854 | RIPL: 2, 1855 | RMDDR: 1, 1856 | RMDVL: 4, 1857 | RMEV: 1, 1858 | URYDL: 1, 1859 | }, 1860 | IL1DR: { 1861 | IL1DL: 1, 1862 | IL1R: 1, 1863 | MDR01: 4, 1864 | MDR02: 3, 1865 | OLLR: 1, 1866 | RIPR: 5, 1867 | RMDVR: 5, 1868 | RMEV: 1, 1869 | }, 1870 | IL1L: { 1871 | AVER: 2, 1872 | IL1DL: 2, 1873 | IL1VL: 1, 1874 | MDL01: 3, 1875 | MDL03: 3, 1876 | MDL05: 4, 1877 | MVL01: 3, 1878 | MVL03: 3, 1879 | RMDDL: 5, 1880 | RMDL: 1, 1881 | RMDR: 3, 1882 | RMDVL: 4, 1883 | RMDVR: 2, 1884 | RMER: 1, 1885 | }, 1886 | IL1R: { 1887 | AVEL: 1, 1888 | AVER: 1, 1889 | IL1DR: 2, 1890 | IL1VR: 1, 1891 | MDR01: 3, 1892 | MDR03: 3, 1893 | MVR01: 3, 1894 | MVR03: 3, 1895 | RMDDL: 3, 1896 | RMDDR: 2, 1897 | RMDL: 4, 1898 | RMDR: 2, 1899 | RMDVL: 1, 1900 | RMDVR: 4, 1901 | RMEL: 2, 1902 | RMHL: 1, 1903 | URXR: 2, 1904 | }, 1905 | IL1VL: { 1906 | IL1L: 2, 1907 | IL1VR: 1, 1908 | MVL01: 5, 1909 | MVL02: 4, 1910 | RIPL: 4, 1911 | RMDDL: 5, 1912 | RMED: 1, 1913 | URYVL: 1, 1914 | }, 1915 | IL1VR: { 1916 | IL1R: 2, 1917 | IL1VL: 1, 1918 | IL2R: 1, 1919 | IL2VR: 1, 1920 | MVR01: 5, 1921 | MVR02: 5, 1922 | RIPR: 6, 1923 | RMDDR: 10, 1924 | RMER: 1, 1925 | }, 1926 | IL2DL: { 1927 | AUAL: 1, 1928 | IL1DL: 7, 1929 | OLQDL: 2, 1930 | RIBL: 1, 1931 | RIPL: 10, 1932 | RMEL: 4, 1933 | RMER: 3, 1934 | URADL: 3, 1935 | }, 1936 | IL2DR: { 1937 | CEPDR: 1, 1938 | IL1DR: 7, 1939 | RICR: 1, 1940 | RIPR: 11, 1941 | RMED: 1, 1942 | RMEL: 2, 1943 | RMER: 2, 1944 | RMEV: 1, 1945 | URADR: 3, 1946 | }, 1947 | IL2L: { 1948 | ADEL: 2, 1949 | AVEL: 1, 1950 | IL1L: 1, 1951 | OLQDL: 5, 1952 | OLQVL: 8, 1953 | RICL: 1, 1954 | RIH: 7, 1955 | RMDL: 3, 1956 | RMDR: 1, 1957 | RMER: 2, 1958 | RMEV: 2, 1959 | RMGL: 1, 1960 | URXL: 2, 1961 | }, 1962 | IL2R: { 1963 | ADER: 1, 1964 | IL1R: 1, 1965 | IL1VR: 1, 1966 | OLLR: 1, 1967 | OLQDR: 2, 1968 | OLQVR: 7, 1969 | RIH: 6, 1970 | RMDL: 1, 1971 | RMEL: 2, 1972 | RMEV: 1, 1973 | RMGR: 1, 1974 | URBR: 1, 1975 | URXR: 1, 1976 | }, 1977 | IL2VL: { 1978 | BAGR: 1, 1979 | IL1VL: 7, 1980 | IL2L: 1, 1981 | OLQVL: 1, 1982 | RIAL: 1, 1983 | RIH: 2, 1984 | RIPL: 1, 1985 | RMEL: 1, 1986 | RMER: 4, 1987 | RMEV: 1, 1988 | URAVL: 3, 1989 | }, 1990 | IL2VR: { 1991 | IL1VR: 6, 1992 | OLQVR: 1, 1993 | RIAR: 2, 1994 | RIH: 3, 1995 | RIPR: 15, 1996 | RMEL: 3, 1997 | RMER: 2, 1998 | RMEV: 3, 1999 | URAVR: 4, 2000 | URXR: 1, 2001 | }, 2002 | LUAL: { 2003 | AVAL: 6, 2004 | AVAR: 6, 2005 | AVDL: 4, 2006 | AVDR: 2, 2007 | AVJL: 1, 2008 | PHBL: 1, 2009 | PLML: 1, 2010 | PVNL: 1, 2011 | PVR: 1, 2012 | PVWL: 1, 2013 | }, 2014 | LUAR: { 2015 | AVAL: 3, 2016 | AVAR: 7, 2017 | AVDL: 1, 2018 | AVDR: 3, 2019 | AVJR: 1, 2020 | PLMR: 1, 2021 | PQR: 1, 2022 | PVCR: 3, 2023 | PVR: 2, 2024 | PVWL: 1, 2025 | }, 2026 | M1: { I2L: 2, I2R: 2, I3: 1, I4: 1 }, 2027 | M2L: { I1L: 3, I1R: 3, I3: 3, M2R: 1, M5: 1, MI: 4 }, 2028 | M2R: { 2029 | I1L: 3, 2030 | I1R: 3, 2031 | I3: 3, 2032 | M3L: 1, 2033 | M3R: 1, 2034 | M5: 1, 2035 | MI: 4, 2036 | }, 2037 | M3L: { 2038 | I1L: 4, 2039 | I1R: 4, 2040 | I4: 2, 2041 | I5: 3, 2042 | I6: 1, 2043 | M1: 2, 2044 | M3R: 1, 2045 | MCL: 1, 2046 | MCR: 1, 2047 | MI: 2, 2048 | NSML: 2, 2049 | NSMR: 3, 2050 | }, 2051 | M3R: { 2052 | I1L: 4, 2053 | I1R: 4, 2054 | I3: 2, 2055 | I4: 6, 2056 | I5: 3, 2057 | I6: 1, 2058 | M1: 2, 2059 | M3L: 1, 2060 | MCL: 1, 2061 | MCR: 1, 2062 | MI: 2, 2063 | NSML: 2, 2064 | NSMR: 3, 2065 | }, 2066 | M4: { 2067 | I3: 1, 2068 | I5: 13, 2069 | I6: 3, 2070 | M2L: 1, 2071 | M2R: 1, 2072 | M4: 6, 2073 | M5: 1, 2074 | NSML: 1, 2075 | NSMR: 1, 2076 | }, 2077 | M5: { I5: 1, I6: 1, M1: 2, M2L: 2, M2R: 2, M5: 4 }, 2078 | MCL: { 2079 | I1L: 3, 2080 | I1R: 3, 2081 | I2L: 1, 2082 | I2R: 1, 2083 | I3: 1, 2084 | M1: 2, 2085 | M2L: 2, 2086 | M2R: 2, 2087 | }, 2088 | MCR: { I1L: 3, I1R: 3, I3: 1, M1: 2, M2L: 2, M2R: 2 }, 2089 | MI: { 2090 | I1L: 1, 2091 | I1R: 1, 2092 | I3: 1, 2093 | I4: 1, 2094 | I5: 2, 2095 | M1: 1, 2096 | M2L: 2, 2097 | M2R: 2, 2098 | M3L: 1, 2099 | M3R: 1, 2100 | MCL: 2, 2101 | MCR: 2, 2102 | }, 2103 | NSML: { 2104 | I1L: 1, 2105 | I1R: 2, 2106 | I2L: 6, 2107 | I2R: 6, 2108 | I3: 2, 2109 | I4: 3, 2110 | I5: 2, 2111 | I6: 2, 2112 | M3L: 2, 2113 | M3R: 2, 2114 | }, 2115 | NSMR: { 2116 | I1L: 2, 2117 | I1R: 2, 2118 | I2L: 6, 2119 | I2R: 6, 2120 | I3: 2, 2121 | I4: 3, 2122 | I5: 2, 2123 | I6: 2, 2124 | M3L: 2, 2125 | M3R: 2, 2126 | }, 2127 | OLLL: { 2128 | AVER: 21, 2129 | CEPDL: 3, 2130 | CEPVL: 4, 2131 | IL1DL: 1, 2132 | IL1VL: 2, 2133 | OLLR: 2, 2134 | RIBL: 8, 2135 | RIGL: 1, 2136 | RMDDL: 7, 2137 | RMDL: 2, 2138 | RMDVL: 1, 2139 | RMEL: 2, 2140 | SMDDL: 3, 2141 | SMDDR: 4, 2142 | SMDVR: 4, 2143 | URYDL: 1, 2144 | }, 2145 | OLLR: { 2146 | AVEL: 16, 2147 | CEPDR: 1, 2148 | CEPVR: 6, 2149 | IL1DR: 3, 2150 | IL1VR: 1, 2151 | IL2R: 1, 2152 | OLLL: 2, 2153 | RIBR: 10, 2154 | RIGR: 1, 2155 | RMDDR: 10, 2156 | RMDL: 3, 2157 | RMDVR: 3, 2158 | RMER: 2, 2159 | SMDDR: 1, 2160 | SMDVL: 4, 2161 | SMDVR: 3, 2162 | }, 2163 | OLQDL: { 2164 | CEPDL: 1, 2165 | RIBL: 2, 2166 | RICR: 1, 2167 | RIGL: 1, 2168 | RMDDR: 4, 2169 | RMDVL: 1, 2170 | SIBVL: 3, 2171 | URBL: 1, 2172 | }, 2173 | OLQDR: { 2174 | CEPDR: 2, 2175 | RIBR: 2, 2176 | RICL: 1, 2177 | RICR: 1, 2178 | RIGR: 1, 2179 | RIH: 1, 2180 | RMDDL: 3, 2181 | RMDVR: 1, 2182 | RMHR: 1, 2183 | SIBVR: 2, 2184 | URBR: 1, 2185 | }, 2186 | OLQVL: { 2187 | ADLL: 1, 2188 | CEPVL: 1, 2189 | IL1VL: 1, 2190 | IL2VL: 1, 2191 | RIBL: 1, 2192 | RICL: 1, 2193 | RIGL: 1, 2194 | RIH: 1, 2195 | RIPL: 1, 2196 | RMDDL: 1, 2197 | RMDVR: 4, 2198 | SIBDL: 3, 2199 | URBL: 1, 2200 | }, 2201 | OLQVR: { 2202 | CEPVR: 1, 2203 | IL1VR: 1, 2204 | RIBR: 1, 2205 | RICR: 1, 2206 | RIGR: 1, 2207 | RIH: 2, 2208 | RIPR: 2, 2209 | RMDDR: 1, 2210 | RMDVL: 4, 2211 | RMER: 1, 2212 | SIBDR: 4, 2213 | URBR: 1, 2214 | }, 2215 | PDA: { AS11: 1, DA9: 1, DD6: 1, MDL21: 2, PVNR: 1, VD13: 3 }, 2216 | PDB: { AS11: 2, MVL22: 1, MVR21: 1, RID: 2, VD13: 2 }, 2217 | PDEL: { 2218 | AVKL: 6, 2219 | DVA: 24, 2220 | PDER: 3, 2221 | PVCR: 1, 2222 | PVM: 1, 2223 | PVR: 2, 2224 | VA9: 1, 2225 | VD11: 1, 2226 | }, 2227 | PDER: { 2228 | AVKL: 16, 2229 | DVA: 35, 2230 | PDEL: 3, 2231 | PVCL: 1, 2232 | PVCR: 1, 2233 | PVM: 1, 2234 | VA8: 1, 2235 | VD9: 1, 2236 | }, 2237 | PHAL: { 2238 | AVDR: 1, 2239 | AVFL: 3, 2240 | AVG: 5, 2241 | AVHL: 1, 2242 | AVHR: 1, 2243 | DVA: 2, 2244 | PHAR: 2, 2245 | PHBL: 5, 2246 | PHBR: 5, 2247 | PVQL: 2, 2248 | }, 2249 | PHAR: { 2250 | AVG: 3, 2251 | AVHR: 1, 2252 | DA8: 1, 2253 | DVA: 1, 2254 | PHAL: 2, 2255 | PHBL: 1, 2256 | PHBR: 5, 2257 | PVPL: 3, 2258 | PVQL: 2, 2259 | }, 2260 | PHBL: { 2261 | AVAL: 9, 2262 | AVAR: 6, 2263 | AVDL: 1, 2264 | PHBR: 3, 2265 | PVCL: 13, 2266 | VA12: 1, 2267 | }, 2268 | PHBR: { 2269 | AVAL: 7, 2270 | AVAR: 7, 2271 | AVDL: 1, 2272 | AVDR: 1, 2273 | AVFL: 1, 2274 | AVHL: 1, 2275 | DA8: 1, 2276 | PHBL: 3, 2277 | PVCL: 6, 2278 | PVCR: 3, 2279 | VA12: 2, 2280 | }, 2281 | PHCL: { 2282 | AVAL: 1, 2283 | DA9: 1, 2284 | DVA: 6, 2285 | LUAL: 1, 2286 | PHCR: 1, 2287 | PLML: 1, 2288 | PVCL: 2, 2289 | VA12: 3, 2290 | }, 2291 | PHCR: { 2292 | AVHR: 1, 2293 | DA9: 2, 2294 | DVA: 8, 2295 | LUAR: 1, 2296 | PHCL: 2, 2297 | PVCR: 9, 2298 | VA12: 2, 2299 | }, 2300 | PLML: { HSNL: 1, LUAL: 1, PHCL: 1, PVCL: 1 }, 2301 | PLMR: { 2302 | AS6: 1, 2303 | AVAL: 4, 2304 | AVAR: 1, 2305 | AVDL: 1, 2306 | AVDR: 4, 2307 | DVA: 5, 2308 | HSNR: 1, 2309 | LUAR: 1, 2310 | PDEL: 2, 2311 | PDER: 3, 2312 | PVCL: 2, 2313 | PVCR: 1, 2314 | PVR: 2, 2315 | }, 2316 | PLNL: { SAADL: 5, SMBVL: 6 }, 2317 | PLNR: { SAADR: 4, SMBVR: 6 }, 2318 | PQR: { 2319 | AVAL: 8, 2320 | AVAR: 11, 2321 | AVDL: 7, 2322 | AVDR: 6, 2323 | AVG: 1, 2324 | LUAR: 1, 2325 | PVNL: 1, 2326 | PVPL: 4, 2327 | }, 2328 | PVCL: { 2329 | AS1: 1, 2330 | AVAL: 3, 2331 | AVAR: 4, 2332 | AVBL: 5, 2333 | AVBR: 12, 2334 | AVDL: 5, 2335 | AVDR: 2, 2336 | AVEL: 3, 2337 | AVER: 1, 2338 | AVJL: 4, 2339 | AVJR: 2, 2340 | DA2: 1, 2341 | DA5: 1, 2342 | DA6: 1, 2343 | DB2: 3, 2344 | DB3: 4, 2345 | DB4: 3, 2346 | DB5: 2, 2347 | DB6: 2, 2348 | DB7: 3, 2349 | DVA: 5, 2350 | PLML: 1, 2351 | PVCR: 7, 2352 | RID: 5, 2353 | RIS: 2, 2354 | SIBVL: 2, 2355 | VB10: 3, 2356 | VB11: 1, 2357 | VB3: 1, 2358 | VB4: 1, 2359 | VB5: 1, 2360 | VB6: 2, 2361 | VB8: 1, 2362 | VB9: 2, 2363 | }, 2364 | PVCR: { 2365 | AQR: 1, 2366 | AS2: 1, 2367 | AVAL: 12, 2368 | AVAR: 10, 2369 | AVBL: 8, 2370 | AVBR: 6, 2371 | AVDL: 5, 2372 | AVDR: 1, 2373 | AVEL: 1, 2374 | AVER: 1, 2375 | AVJL: 3, 2376 | AVL: 1, 2377 | DA9: 1, 2378 | DB2: 1, 2379 | DB3: 3, 2380 | DB4: 4, 2381 | DB5: 1, 2382 | DB6: 2, 2383 | DB7: 1, 2384 | FLPL: 1, 2385 | LUAR: 1, 2386 | PDEL: 2, 2387 | PHCR: 1, 2388 | PLMR: 1, 2389 | PVCL: 8, 2390 | PVDL: 1, 2391 | PVR: 1, 2392 | PVWL: 2, 2393 | PVWR: 2, 2394 | RID: 5, 2395 | SIBVR: 2, 2396 | VA8: 2, 2397 | VA9: 1, 2398 | VB10: 1, 2399 | VB4: 3, 2400 | VB6: 2, 2401 | VB7: 3, 2402 | VB8: 1, 2403 | }, 2404 | PVDL: { AVAL: 6, AVAR: 6, DD5: 1, PVCL: 1, PVCR: 6, VD10: 6 }, 2405 | PVDR: { 2406 | AVAL: 6, 2407 | AVAR: 9, 2408 | DVA: 3, 2409 | PVCL: 13, 2410 | PVCR: 10, 2411 | PVDL: 1, 2412 | VA9: 1, 2413 | }, 2414 | PVM: { 2415 | AVKL: 11, 2416 | AVL: 1, 2417 | AVM: 1, 2418 | DVA: 3, 2419 | PDEL: 1, 2420 | PDER: 1, 2421 | PVCL: 2, 2422 | PVR: 1, 2423 | }, 2424 | PVNL: { 2425 | AVAL: 2, 2426 | AVBR: 3, 2427 | AVDL: 3, 2428 | AVDR: 3, 2429 | AVEL: 1, 2430 | AVFR: 1, 2431 | AVG: 1, 2432 | AVJL: 5, 2433 | AVJR: 5, 2434 | AVL: 2, 2435 | BDUL: 1, 2436 | BDUR: 2, 2437 | DD1: 2, 2438 | MVL09: 3, 2439 | PQR: 1, 2440 | PVCL: 1, 2441 | PVNR: 5, 2442 | PVQR: 1, 2443 | PVT: 1, 2444 | PVWL: 1, 2445 | RIFL: 1, 2446 | }, 2447 | PVNR: { 2448 | AVAL: 2, 2449 | AVBL: 1, 2450 | AVBR: 2, 2451 | AVDR: 1, 2452 | AVEL: 3, 2453 | AVJL: 4, 2454 | AVJR: 1, 2455 | AVL: 2, 2456 | BDUL: 1, 2457 | BDUR: 2, 2458 | DD3: 1, 2459 | HSNR: 2, 2460 | MVL12: 1, 2461 | MVL13: 2, 2462 | PQR: 2, 2463 | PVCL: 1, 2464 | PVNL: 1, 2465 | PVT: 2, 2466 | PVWL: 2, 2467 | VC2: 1, 2468 | VC3: 1, 2469 | VD12: 1, 2470 | VD6: 1, 2471 | VD7: 1, 2472 | }, 2473 | PVPL: { 2474 | ADAL: 1, 2475 | AQR: 8, 2476 | AVAL: 2, 2477 | AVAR: 1, 2478 | AVBL: 5, 2479 | AVBR: 6, 2480 | AVDR: 2, 2481 | AVER: 1, 2482 | AVHR: 1, 2483 | AVKL: 1, 2484 | AVKR: 6, 2485 | DVC: 2, 2486 | PHAR: 3, 2487 | PQR: 4, 2488 | PVCR: 3, 2489 | PVPR: 1, 2490 | PVT: 1, 2491 | RIGL: 2, 2492 | VD13: 2, 2493 | VD3: 1, 2494 | }, 2495 | PVPR: { 2496 | ADFR: 1, 2497 | AQR: 11, 2498 | ASHR: 1, 2499 | AVAL: 1, 2500 | AVAR: 2, 2501 | AVBL: 4, 2502 | AVBR: 5, 2503 | AVHL: 3, 2504 | AVKL: 1, 2505 | AVL: 4, 2506 | DD2: 1, 2507 | DVC: 14, 2508 | PVCL: 4, 2509 | PVCR: 7, 2510 | PVPL: 1, 2511 | PVQR: 1, 2512 | RIAR: 2, 2513 | RIGR: 1, 2514 | RIMR: 1, 2515 | RMGR: 1, 2516 | VD4: 1, 2517 | VD5: 1, 2518 | }, 2519 | PVQL: { 2520 | ADAL: 1, 2521 | AIAL: 3, 2522 | ASJL: 1, 2523 | ASKL: 5, 2524 | HSNL: 2, 2525 | PVQR: 2, 2526 | RMGL: 1, 2527 | }, 2528 | PVQR: { 2529 | ADAR: 1, 2530 | AIAR: 7, 2531 | ASER: 1, 2532 | ASKR: 8, 2533 | AVBL: 1, 2534 | AVFL: 1, 2535 | AVFR: 1, 2536 | AVL: 1, 2537 | AWAR: 2, 2538 | DD1: 1, 2539 | DVC: 1, 2540 | HSNR: 1, 2541 | PVNL: 1, 2542 | PVQL: 1, 2543 | PVT: 1, 2544 | RIFR: 1, 2545 | VD1: 1, 2546 | }, 2547 | PVR: { 2548 | ADAL: 1, 2549 | ALML: 1, 2550 | AS6: 1, 2551 | AVBL: 4, 2552 | AVBR: 4, 2553 | AVJL: 3, 2554 | AVJR: 2, 2555 | AVKL: 1, 2556 | DA9: 1, 2557 | DB2: 1, 2558 | DB3: 1, 2559 | DVA: 3, 2560 | IL1DL: 1, 2561 | IL1DR: 1, 2562 | IL1VL: 1, 2563 | IL1VR: 1, 2564 | LUAL: 1, 2565 | LUAR: 1, 2566 | PDEL: 1, 2567 | PDER: 1, 2568 | PLMR: 2, 2569 | PVCR: 1, 2570 | RIPL: 3, 2571 | RIPR: 3, 2572 | SABD: 1, 2573 | URADL: 1, 2574 | }, 2575 | PVT: { 2576 | AIBL: 3, 2577 | AIBR: 5, 2578 | AVKL: 9, 2579 | AVKR: 7, 2580 | AVL: 2, 2581 | DVC: 2, 2582 | PVPL: 1, 2583 | RIBL: 1, 2584 | RIBR: 1, 2585 | RIGL: 2, 2586 | RIGR: 3, 2587 | RIH: 1, 2588 | RMEV: 1, 2589 | RMFL: 2, 2590 | RMFR: 3, 2591 | SMBDR: 1, 2592 | }, 2593 | PVWL: { AVJL: 1, PVCR: 2, PVT: 2, PVWR: 1, VA12: 1 }, 2594 | PVWR: { AVAR: 1, AVDR: 1, PVCR: 2, PVT: 1, VA12: 1 }, 2595 | RIAL: { 2596 | CEPVL: 1, 2597 | RIAR: 1, 2598 | RIVL: 2, 2599 | RIVR: 4, 2600 | RMDDL: 12, 2601 | RMDDR: 7, 2602 | RMDL: 6, 2603 | RMDR: 6, 2604 | RMDVL: 9, 2605 | RMDVR: 11, 2606 | SIADL: 2, 2607 | SMDDL: 8, 2608 | SMDDR: 10, 2609 | SMDVL: 6, 2610 | SMDVR: 11, 2611 | }, 2612 | RIAR: { 2613 | CEPVR: 1, 2614 | IL1R: 1, 2615 | RIAL: 4, 2616 | RIVL: 1, 2617 | RMDDL: 10, 2618 | RMDDR: 11, 2619 | RMDL: 3, 2620 | RMDR: 8, 2621 | RMDVL: 12, 2622 | RMDVR: 10, 2623 | SAADR: 1, 2624 | SIADL: 1, 2625 | SIADR: 1, 2626 | SIAVL: 1, 2627 | SMDDL: 7, 2628 | SMDDR: 7, 2629 | SMDVL: 13, 2630 | SMDVR: 7, 2631 | }, 2632 | RIBL: { 2633 | AIBR: 2, 2634 | AUAL: 1, 2635 | AVAL: 1, 2636 | AVBL: 1, 2637 | AVBR: 2, 2638 | AVDR: 1, 2639 | AVEL: 1, 2640 | AVER: 5, 2641 | BAGR: 1, 2642 | OLQDL: 2, 2643 | OLQVL: 1, 2644 | PVT: 1, 2645 | RIAL: 3, 2646 | RIBL: 1, 2647 | RIBR: 3, 2648 | RIGL: 1, 2649 | SIADL: 1, 2650 | SIAVL: 1, 2651 | SIBDL: 1, 2652 | SIBVL: 1, 2653 | SIBVR: 1, 2654 | SMBDL: 1, 2655 | SMDDL: 1, 2656 | SMDVR: 4, 2657 | }, 2658 | RIBR: { 2659 | AIBL: 1, 2660 | AIZR: 1, 2661 | AVAR: 2, 2662 | AVBL: 1, 2663 | AVBR: 1, 2664 | AVEL: 3, 2665 | AVER: 1, 2666 | BAGL: 1, 2667 | OLQDR: 2, 2668 | OLQVR: 1, 2669 | PVT: 1, 2670 | RIAR: 2, 2671 | RIBL: 3, 2672 | RIBR: 1, 2673 | RIGR: 2, 2674 | RIH: 1, 2675 | SIADR: 1, 2676 | SIAVR: 1, 2677 | SIBDR: 1, 2678 | SIBVR: 1, 2679 | SMBDR: 1, 2680 | SMDDL: 2, 2681 | SMDDR: 1, 2682 | SMDVL: 2, 2683 | }, 2684 | RICL: { 2685 | ADAR: 1, 2686 | ASHL: 2, 2687 | AVAL: 5, 2688 | AVAR: 6, 2689 | AVKL: 1, 2690 | AVKR: 2, 2691 | AWBR: 1, 2692 | RIML: 1, 2693 | RIMR: 3, 2694 | RIVR: 1, 2695 | RMFR: 1, 2696 | SMBDL: 2, 2697 | SMDDL: 3, 2698 | SMDDR: 3, 2699 | SMDVR: 1, 2700 | }, 2701 | RICR: { 2702 | ADAR: 1, 2703 | ASHR: 2, 2704 | AVAL: 5, 2705 | AVAR: 5, 2706 | AVKL: 1, 2707 | SMBDR: 1, 2708 | SMDDL: 4, 2709 | SMDDR: 3, 2710 | SMDVL: 2, 2711 | SMDVR: 1, 2712 | }, 2713 | RID: { 2714 | ALA: 1, 2715 | AS2: 1, 2716 | AVBL: 1, 2717 | AVBR: 2, 2718 | DA6: 3, 2719 | DA9: 1, 2720 | DB1: 1, 2721 | DD1: 4, 2722 | DD2: 4, 2723 | DD3: 3, 2724 | MDL14: -2, 2725 | MDL21: -3, 2726 | PDB: 2, 2727 | VD13: 1, 2728 | VD5: 1, 2729 | }, 2730 | RIFL: { 2731 | ALML: 2, 2732 | AVBL: 10, 2733 | AVBR: 1, 2734 | AVG: 1, 2735 | AVHR: 1, 2736 | AVJR: 2, 2737 | PVPL: 3, 2738 | RIML: 4, 2739 | VD1: 1, 2740 | }, 2741 | RIFR: { 2742 | ASHR: 2, 2743 | AVBL: 1, 2744 | AVBR: 17, 2745 | AVFL: 1, 2746 | AVG: 1, 2747 | AVHL: 1, 2748 | AVJL: 1, 2749 | AVJR: 2, 2750 | HSNR: 1, 2751 | PVCL: 1, 2752 | PVCR: 1, 2753 | PVPR: 4, 2754 | RIMR: 4, 2755 | RIPR: 1, 2756 | }, 2757 | RIGL: { 2758 | AIBR: 3, 2759 | AIZR: 1, 2760 | ALNL: 1, 2761 | AQR: 2, 2762 | AVEL: 1, 2763 | AVER: 1, 2764 | AVKL: 1, 2765 | AVKR: 2, 2766 | BAGR: 2, 2767 | DVC: 1, 2768 | OLLL: 1, 2769 | OLQDL: 1, 2770 | OLQVL: 1, 2771 | RIBL: 2, 2772 | RIGR: 3, 2773 | RIR: 2, 2774 | RMEL: 2, 2775 | RMHR: 3, 2776 | URYDL: 1, 2777 | URYVL: 1, 2778 | VB2: 1, 2779 | VD1: 2, 2780 | }, 2781 | RIGR: { 2782 | AIBL: 3, 2783 | ALNR: 1, 2784 | AQR: 1, 2785 | AVER: 2, 2786 | AVKL: 4, 2787 | AVKR: 2, 2788 | BAGL: 1, 2789 | OLLR: 1, 2790 | OLQDR: 1, 2791 | OLQVR: 1, 2792 | RIBR: 2, 2793 | RIGL: 3, 2794 | RIR: 1, 2795 | RMHL: 4, 2796 | URYDR: 1, 2797 | URYVR: 1, 2798 | }, 2799 | RIH: { 2800 | ADFR: 1, 2801 | AIZL: 4, 2802 | AIZR: 4, 2803 | AUAR: 1, 2804 | BAGR: 1, 2805 | CEPDL: 2, 2806 | CEPDR: 2, 2807 | CEPVL: 2, 2808 | CEPVR: 2, 2809 | FLPL: 1, 2810 | IL2L: 2, 2811 | IL2R: 1, 2812 | OLQDL: 4, 2813 | OLQDR: 2, 2814 | OLQVL: 1, 2815 | OLQVR: 6, 2816 | RIAL: 10, 2817 | RIAR: 8, 2818 | RIBL: 5, 2819 | RIBR: 4, 2820 | RIPL: 4, 2821 | RIPR: 6, 2822 | RMER: 2, 2823 | RMEV: 1, 2824 | URYVR: 1, 2825 | }, 2826 | RIML: { 2827 | AIBR: 1, 2828 | AIYL: 1, 2829 | AVAL: 1, 2830 | AVAR: 2, 2831 | AVBL: 2, 2832 | AVBR: 3, 2833 | AVEL: 2, 2834 | AVER: 3, 2835 | MDR05: 2, 2836 | MVR05: 2, 2837 | RIBL: 1, 2838 | RIS: 1, 2839 | RMDL: 1, 2840 | RMDR: 1, 2841 | RMFR: 1, 2842 | SAADR: 1, 2843 | SAAVL: 3, 2844 | SAAVR: 2, 2845 | SMDDR: 5, 2846 | SMDVL: 1, 2847 | }, 2848 | RIMR: { 2849 | ADAR: 1, 2850 | AIBL: 1, 2851 | AIYR: 1, 2852 | AVAL: 5, 2853 | AVAR: 1, 2854 | AVBL: 2, 2855 | AVBR: 5, 2856 | AVEL: 3, 2857 | AVER: 2, 2858 | AVJL: 1, 2859 | AVKL: 1, 2860 | MDL05: 1, 2861 | MDL07: 1, 2862 | MVL05: 1, 2863 | MVL07: 1, 2864 | RIBR: 1, 2865 | RIS: 2, 2866 | RMDL: 1, 2867 | RMDR: 1, 2868 | RMFL: 1, 2869 | RMFR: 1, 2870 | SAAVL: 3, 2871 | SAAVR: 3, 2872 | SMDDL: 2, 2873 | SMDDR: 4, 2874 | }, 2875 | RIPL: { OLQDL: 1, OLQDR: 1, RMED: 1 }, 2876 | RIPR: { OLQDL: 1, OLQDR: 1, RMED: 1 }, 2877 | RIR: { 2878 | AFDR: 1, 2879 | AIZL: 3, 2880 | AIZR: 5, 2881 | AUAL: 1, 2882 | AWBR: 1, 2883 | BAGL: 1, 2884 | BAGR: 2, 2885 | DVA: 2, 2886 | HSNL: 1, 2887 | PVPL: 1, 2888 | RIAL: 5, 2889 | RIAR: 1, 2890 | RIGL: 1, 2891 | URXL: 5, 2892 | URXR: 1, 2893 | }, 2894 | RIS: { 2895 | AIBR: 1, 2896 | AVEL: 7, 2897 | AVER: 7, 2898 | AVJL: 1, 2899 | AVKL: 1, 2900 | AVKR: 4, 2901 | AVL: 2, 2902 | CEPDR: 1, 2903 | CEPVL: 2, 2904 | CEPVR: 1, 2905 | DB1: 1, 2906 | OLLR: 1, 2907 | RIBL: 3, 2908 | RIBR: 5, 2909 | RIML: 2, 2910 | RIMR: 5, 2911 | RMDDL: 1, 2912 | RMDL: 2, 2913 | RMDR: 4, 2914 | SMDDL: 1, 2915 | SMDDR: 3, 2916 | SMDVL: 1, 2917 | SMDVR: 1, 2918 | URYVR: 1, 2919 | }, 2920 | RIVL: { 2921 | AIBL: 1, 2922 | MVR05: -2, 2923 | MVR06: -2, 2924 | MVR08: -3, 2925 | RIAL: 1, 2926 | RIAR: 1, 2927 | RIVR: 2, 2928 | RMDL: 2, 2929 | SAADR: 3, 2930 | SDQR: 2, 2931 | SIAVR: 2, 2932 | SMDDR: 1, 2933 | SMDVL: 1, 2934 | }, 2935 | RIVR: { 2936 | AIBR: 1, 2937 | MVL05: -2, 2938 | MVL06: -2, 2939 | MVL08: -2, 2940 | MVR04: -2, 2941 | MVR06: -2, 2942 | RIAL: 2, 2943 | RIAR: 1, 2944 | RIVL: 2, 2945 | RMDDL: 1, 2946 | RMDR: 1, 2947 | RMDVR: 1, 2948 | RMEV: 1, 2949 | SAADL: 2, 2950 | SDQR: 2, 2951 | SIAVL: 2, 2952 | SMDDL: 2, 2953 | SMDVR: 4, 2954 | }, 2955 | RMDDL: { 2956 | MDR01: 1, 2957 | MDR02: 1, 2958 | MDR03: 1, 2959 | MDR04: 1, 2960 | MDR08: 2, 2961 | MVR01: 1, 2962 | OLQVL: 1, 2963 | RMDL: 1, 2964 | RMDVL: 1, 2965 | RMDVR: 7, 2966 | SMDDL: 1, 2967 | }, 2968 | RMDDR: { 2969 | MDL01: 1, 2970 | MDL02: 1, 2971 | MDL03: 2, 2972 | MDL04: 1, 2973 | MDR04: 1, 2974 | MVR01: 1, 2975 | MVR02: 1, 2976 | OLQVR: 1, 2977 | RMDVL: 12, 2978 | RMDVR: 1, 2979 | SAADR: 1, 2980 | SMDDR: 1, 2981 | URYDL: 1, 2982 | }, 2983 | RMDL: { 2984 | MDL03: 1, 2985 | MDL05: 2, 2986 | MDR01: 1, 2987 | MDR03: 1, 2988 | MVL01: 1, 2989 | MVR01: 1, 2990 | MVR03: 1, 2991 | MVR05: 2, 2992 | MVR07: 1, 2993 | OLLR: 2, 2994 | RIAL: 4, 2995 | RIAR: 3, 2996 | RMDDL: 1, 2997 | RMDDR: 1, 2998 | RMDR: 3, 2999 | RMDVL: 1, 3000 | RMER: 1, 3001 | RMFL: 1, 3002 | }, 3003 | RMDR: { 3004 | AVKL: 1, 3005 | MDL03: 1, 3006 | MDL05: 1, 3007 | MDR05: 1, 3008 | MVL03: 1, 3009 | MVL05: 1, 3010 | RIAL: 3, 3011 | RIAR: 7, 3012 | RIMR: 2, 3013 | RIS: 1, 3014 | RMDDL: 1, 3015 | RMDL: 1, 3016 | RMDVR: 1, 3017 | }, 3018 | RMDVL: { 3019 | AVER: 1, 3020 | MDR01: 1, 3021 | MVL04: 1, 3022 | MVR01: 1, 3023 | MVR02: 1, 3024 | MVR03: 1, 3025 | MVR04: 1, 3026 | MVR05: 1, 3027 | MVR06: 1, 3028 | MVR08: 1, 3029 | OLQDL: 1, 3030 | RMDDL: 1, 3031 | RMDDR: 6, 3032 | RMDL: 1, 3033 | RMDVR: 1, 3034 | SAAVL: 1, 3035 | SMDVL: 1, 3036 | }, 3037 | RMDVR: { 3038 | AVEL: 1, 3039 | AVER: 1, 3040 | MDL01: 1, 3041 | MVL01: 1, 3042 | MVL02: 1, 3043 | MVL03: 1, 3044 | MVL04: 1, 3045 | MVL05: 1, 3046 | MVL06: 1, 3047 | MVL08: 1, 3048 | MVR04: 1, 3049 | MVR06: 1, 3050 | MVR08: 1, 3051 | OLQDR: 1, 3052 | RMDDL: 4, 3053 | RMDDR: 1, 3054 | RMDR: 1, 3055 | RMDVL: 1, 3056 | SAAVR: 1, 3057 | SIBDR: 1, 3058 | SIBVR: 1, 3059 | SMDVR: 1, 3060 | }, 3061 | RMED: { 3062 | IL1VL: 1, 3063 | MVL02: -4, 3064 | MVL04: -4, 3065 | MVL06: -4, 3066 | MVR02: -4, 3067 | MVR04: -4, 3068 | RIBL: 1, 3069 | RIBR: 1, 3070 | RIPL: 1, 3071 | RIPR: 1, 3072 | RMEV: 2, 3073 | }, 3074 | RMEL: { 3075 | MDR01: -5, 3076 | MDR03: -5, 3077 | MVR01: -5, 3078 | MVR03: -5, 3079 | RIGL: 1, 3080 | RMEV: 1, 3081 | }, 3082 | RMER: { MDL01: -7, MDL03: -7, MVL01: -7, RMEV: 1 }, 3083 | RMEV: { 3084 | AVEL: 1, 3085 | AVER: 1, 3086 | IL1DL: 1, 3087 | IL1DR: 1, 3088 | MDL02: -3, 3089 | MDL04: -3, 3090 | MDL06: -3, 3091 | MDR02: -3, 3092 | MDR04: -3, 3093 | RMED: 2, 3094 | RMEL: 1, 3095 | RMER: 1, 3096 | SMDDR: 1, 3097 | }, 3098 | RMFL: { 3099 | AVKL: 4, 3100 | AVKR: 4, 3101 | MDR03: 1, 3102 | MVR01: 1, 3103 | MVR03: 1, 3104 | PVT: 1, 3105 | RIGR: 1, 3106 | RMDR: 3, 3107 | RMGR: 1, 3108 | URBR: 1, 3109 | }, 3110 | RMFR: { AVKL: 3, AVKR: 3, RMDL: 2 }, 3111 | RMGL: { 3112 | ADAL: 1, 3113 | ADLL: 1, 3114 | AIBR: 1, 3115 | ALML: 1, 3116 | ALNL: 1, 3117 | ASHL: 2, 3118 | ASKL: 2, 3119 | AVAL: 1, 3120 | AVBR: 2, 3121 | AVEL: 2, 3122 | AWBL: 1, 3123 | CEPDL: 1, 3124 | IL2L: 1, 3125 | MDL05: 2, 3126 | MVL05: 2, 3127 | RID: 1, 3128 | RMDL: 1, 3129 | RMDR: 3, 3130 | RMDVL: 3, 3131 | RMHL: 3, 3132 | RMHR: 1, 3133 | SIAVL: 1, 3134 | SIBVL: 3, 3135 | SIBVR: 1, 3136 | SMBVL: 1, 3137 | URXL: 2, 3138 | }, 3139 | RMGR: { 3140 | ADAR: 1, 3141 | AIMR: 1, 3142 | ALNR: 1, 3143 | ASHR: 2, 3144 | ASKR: 1, 3145 | AVAR: 1, 3146 | AVBR: 1, 3147 | AVDL: 1, 3148 | AVER: 3, 3149 | AVJL: 1, 3150 | AWBR: 1, 3151 | IL2R: 1, 3152 | MDR05: 1, 3153 | MVR05: 1, 3154 | MVR07: 1, 3155 | RIR: 1, 3156 | RMDL: 4, 3157 | RMDR: 2, 3158 | RMDVR: 5, 3159 | RMHR: 1, 3160 | URXR: 2, 3161 | }, 3162 | RMHL: { 3163 | MDR01: 2, 3164 | MDR03: 3, 3165 | MVR01: 2, 3166 | RMDR: 1, 3167 | RMGL: 3, 3168 | SIBVR: 1, 3169 | }, 3170 | RMHR: { 3171 | MDL01: 2, 3172 | MDL03: 2, 3173 | MDL05: 2, 3174 | MVL01: 2, 3175 | RMER: 1, 3176 | RMGL: 1, 3177 | RMGR: 1, 3178 | }, 3179 | SAADL: { 3180 | AIBL: 1, 3181 | AVAL: 6, 3182 | RIML: 3, 3183 | RIMR: 6, 3184 | RMGR: 1, 3185 | SMBDL: 1, 3186 | }, 3187 | SAADR: { 3188 | AIBR: 1, 3189 | AVAR: 3, 3190 | OLLL: 1, 3191 | RIML: 4, 3192 | RIMR: 5, 3193 | RMDDR: 1, 3194 | RMFL: 1, 3195 | RMGL: 1, 3196 | }, 3197 | SAAVL: { 3198 | AIBL: 1, 3199 | ALNL: 1, 3200 | AVAL: 16, 3201 | OLLR: 1, 3202 | RIML: 2, 3203 | RIMR: 12, 3204 | RMDVL: 2, 3205 | RMFR: 2, 3206 | SMBVR: 3, 3207 | SMDDR: 8, 3208 | }, 3209 | SAAVR: { 3210 | AVAR: 13, 3211 | RIML: 5, 3212 | RIMR: 2, 3213 | RMDVR: 1, 3214 | SMBVL: 2, 3215 | SMDDL: 6, 3216 | }, 3217 | SABD: { AVAL: 4, VA2: 4, VA3: 2, VA4: 1 }, 3218 | SABVL: { AVAR: 3, DA1: 2, DA2: 1 }, 3219 | SABVR: { AVAL: 1, AVAR: 1, DA1: 3 }, 3220 | SDQL: { 3221 | ALML: 2, 3222 | AVAL: 1, 3223 | AVAR: 3, 3224 | AVEL: 1, 3225 | FLPL: 1, 3226 | RICR: 1, 3227 | RIS: 3, 3228 | RMFL: 1, 3229 | SDQR: 1, 3230 | }, 3231 | SDQR: { 3232 | ADLL: 1, 3233 | AIBL: 2, 3234 | AVAL: 3, 3235 | AVBL: 7, 3236 | AVBR: 4, 3237 | DVA: 3, 3238 | RICR: 1, 3239 | RIVL: 2, 3240 | RIVR: 2, 3241 | RMHL: 2, 3242 | RMHR: 1, 3243 | SDQL: 1, 3244 | SIBVL: 1, 3245 | }, 3246 | SIADL: { RIBL: 1 }, 3247 | SIADR: { RIBR: 1 }, 3248 | SIAVL: { RIBL: 1 }, 3249 | SIAVR: { RIBR: 1 }, 3250 | SIBDL: { RIBL: 1, SIBVL: 1 }, 3251 | SIBDR: { AIML: 1, RIBR: 1, SIBVR: 1 }, 3252 | SIBVL: { AVBL: 1, AVBR: 1, RIBL: 1, SDQR: 1, SIBDL: 1 }, 3253 | SIBVR: { RIBL: 1, RIBR: 1, RMHL: 1, SIBDR: 1 }, 3254 | SMBDL: { 3255 | AVAR: 1, 3256 | AVKL: 1, 3257 | AVKR: 1, 3258 | MDR01: 2, 3259 | MDR02: 2, 3260 | MDR03: 2, 3261 | MDR04: 2, 3262 | MDR06: 3, 3263 | RIBL: 1, 3264 | RMED: 3, 3265 | SAADL: 1, 3266 | SAAVR: 1, 3267 | }, 3268 | SMBDR: { 3269 | ALNL: 1, 3270 | AVAL: 1, 3271 | AVKL: 1, 3272 | AVKR: 2, 3273 | MDL02: 1, 3274 | MDL03: 1, 3275 | MDL04: 1, 3276 | MDL06: 2, 3277 | MDR04: 1, 3278 | MDR08: 1, 3279 | RIBR: 1, 3280 | RMED: 4, 3281 | SAAVL: 3, 3282 | }, 3283 | SMBVL: { 3284 | MVL01: 1, 3285 | MVL02: 1, 3286 | MVL03: 1, 3287 | MVL04: 1, 3288 | MVL05: 1, 3289 | MVL06: 1, 3290 | MVL08: 1, 3291 | PLNL: 1, 3292 | RMEV: 5, 3293 | SAADL: 3, 3294 | SAAVR: 2, 3295 | }, 3296 | SMBVR: { 3297 | AVKL: 1, 3298 | AVKR: 1, 3299 | MVR01: 1, 3300 | MVR02: 1, 3301 | MVR03: 1, 3302 | MVR04: 1, 3303 | MVR06: 1, 3304 | MVR07: 1, 3305 | RMEV: 3, 3306 | SAADR: 4, 3307 | SAAVL: 3, 3308 | }, 3309 | SMDDL: { 3310 | MDL04: 1, 3311 | MDL06: 1, 3312 | MDL08: 1, 3313 | MDR02: 1, 3314 | MDR03: 1, 3315 | MDR04: 1, 3316 | MDR05: 1, 3317 | MDR06: 1, 3318 | MDR07: 1, 3319 | MVL02: 1, 3320 | MVL04: 1, 3321 | RIAL: 1, 3322 | RIAR: 1, 3323 | RIBL: 1, 3324 | RIBR: 1, 3325 | RIS: 1, 3326 | RMDDL: 1, 3327 | SMDVR: 2, 3328 | }, 3329 | SMDDR: { 3330 | MDL04: 1, 3331 | MDL05: 1, 3332 | MDL06: 1, 3333 | MDL08: 1, 3334 | MDR04: 1, 3335 | MDR06: 1, 3336 | MVR02: 1, 3337 | RIAL: 2, 3338 | RIAR: 1, 3339 | RIBR: 1, 3340 | RIS: 1, 3341 | RMDDR: 1, 3342 | VD1: 1, 3343 | }, 3344 | SMDVL: { 3345 | MVL03: 1, 3346 | MVL06: 1, 3347 | MVR02: 1, 3348 | MVR03: 1, 3349 | MVR04: 1, 3350 | MVR06: 1, 3351 | PVR: 1, 3352 | RIAL: 3, 3353 | RIAR: 8, 3354 | RIBR: 2, 3355 | RIS: 1, 3356 | RIVL: 2, 3357 | RMDDR: 1, 3358 | RMDVL: 1, 3359 | SMDDR: 4, 3360 | SMDVR: 1, 3361 | }, 3362 | SMDVR: { 3363 | MVL02: 1, 3364 | MVL03: 1, 3365 | MVL04: 1, 3366 | MVR07: 1, 3367 | RIAL: 7, 3368 | RIAR: 5, 3369 | RIBL: 2, 3370 | RIVR: 2, 3371 | RMDDL: 1, 3372 | RMDVR: 1, 3373 | SMDDL: 2, 3374 | SMDVL: 1, 3375 | VB1: 1, 3376 | }, 3377 | URADL: { 3378 | IL1DL: 2, 3379 | MDL02: 2, 3380 | MDL03: 2, 3381 | MDL04: 2, 3382 | RIPL: 3, 3383 | RMEL: 1, 3384 | }, 3385 | URADR: { 3386 | IL1DR: 1, 3387 | MDR01: 3, 3388 | MDR02: 2, 3389 | MDR03: 3, 3390 | RIPR: 3, 3391 | RMDVR: 1, 3392 | RMED: 1, 3393 | RMER: 1, 3394 | URYDR: 1, 3395 | }, 3396 | URAVL: { 3397 | MVL01: 2, 3398 | MVL02: 2, 3399 | MVL03: 3, 3400 | MVL04: 2, 3401 | RIPL: 3, 3402 | RMEL: 1, 3403 | RMER: 1, 3404 | RMEV: 2, 3405 | }, 3406 | URAVR: { 3407 | IL1R: 1, 3408 | MVR01: 2, 3409 | MVR02: 2, 3410 | MVR03: 2, 3411 | MVR04: 2, 3412 | RIPR: 3, 3413 | RMDVL: 1, 3414 | RMER: 2, 3415 | RMEV: 2, 3416 | }, 3417 | URBL: { 3418 | AVBL: 1, 3419 | CEPDL: 1, 3420 | IL1L: 1, 3421 | OLQDL: 1, 3422 | OLQVL: 1, 3423 | RICR: 1, 3424 | RMDDR: 1, 3425 | SIAVL: 1, 3426 | SMBDR: 1, 3427 | URXL: 2, 3428 | }, 3429 | URBR: { 3430 | ADAR: 1, 3431 | AVBR: 1, 3432 | CEPDR: 1, 3433 | IL1R: 3, 3434 | IL2R: 1, 3435 | OLQDR: 1, 3436 | OLQVR: 1, 3437 | RICR: 1, 3438 | RMDL: 1, 3439 | RMDR: 1, 3440 | RMFL: 1, 3441 | SIAVR: 2, 3442 | SMBDL: 1, 3443 | URXR: 4, 3444 | }, 3445 | URXL: { 3446 | ASHL: 1, 3447 | AUAL: 5, 3448 | AVBL: 1, 3449 | AVEL: 4, 3450 | AVJR: 1, 3451 | RIAL: 8, 3452 | RICL: 1, 3453 | RIGL: 3, 3454 | RMGL: 1, 3455 | }, 3456 | URXR: { 3457 | AUAR: 4, 3458 | AVBL: 1, 3459 | AVBR: 2, 3460 | AVER: 2, 3461 | IL2R: 1, 3462 | OLQVR: 1, 3463 | RIAR: 3, 3464 | RIGR: 2, 3465 | RIPR: 3, 3466 | RMDR: 1, 3467 | RMGR: 2, 3468 | SIAVR: 1, 3469 | }, 3470 | URYDL: { 3471 | AVAL: 1, 3472 | AVER: 2, 3473 | RIBL: 1, 3474 | RIGL: 1, 3475 | RMDDR: 4, 3476 | RMDVL: 6, 3477 | SMDDL: 1, 3478 | SMDDR: 1, 3479 | }, 3480 | URYDR: { 3481 | AVAR: 1, 3482 | AVEL: 2, 3483 | AVER: 2, 3484 | RIBR: 1, 3485 | RIGR: 1, 3486 | RMDDL: 3, 3487 | RMDVR: 5, 3488 | SMDDL: 4, 3489 | }, 3490 | URYVL: { 3491 | AVAR: 1, 3492 | AVBR: 1, 3493 | AVER: 5, 3494 | IL1VL: 1, 3495 | RIAL: 1, 3496 | RIBL: 2, 3497 | RIGL: 1, 3498 | RIH: 1, 3499 | RIS: 1, 3500 | RMDDL: 4, 3501 | RMDVR: 2, 3502 | SIBVR: 1, 3503 | SMDVR: 4, 3504 | }, 3505 | URYVR: { 3506 | AVAL: 2, 3507 | AVEL: 6, 3508 | IL1VR: 1, 3509 | RIAR: 1, 3510 | RIBR: 1, 3511 | RIGR: 1, 3512 | RMDDR: 6, 3513 | RMDVL: 4, 3514 | SIBDR: 1, 3515 | SIBVL: 1, 3516 | SMDVL: 3, 3517 | }, 3518 | VA1: { 3519 | AVAL: 3, 3520 | DA2: 2, 3521 | DD1: 9, 3522 | MVL07: 3, 3523 | MVL08: 3, 3524 | MVR07: 3, 3525 | MVR08: 3, 3526 | VD1: 2, 3527 | }, 3528 | VA2: { 3529 | AVAL: 5, 3530 | DD1: 13, 3531 | MVL07: 5, 3532 | MVL10: 5, 3533 | MVR07: 5, 3534 | MVR10: 5, 3535 | SABD: 3, 3536 | VA3: 2, 3537 | VB1: 2, 3538 | VD1: 1, 3539 | VD2: 11, 3540 | }, 3541 | VA3: { 3542 | AS1: 1, 3543 | AVAL: 1, 3544 | AVAR: 2, 3545 | DD1: 18, 3546 | DD2: 11, 3547 | MVL09: 5, 3548 | MVL10: 5, 3549 | MVL12: 5, 3550 | MVR09: 5, 3551 | MVR10: 5, 3552 | MVR12: 5, 3553 | SABD: 2, 3554 | VA4: 1, 3555 | VD2: 3, 3556 | VD3: 3, 3557 | }, 3558 | VA4: { 3559 | AS2: 2, 3560 | AVAL: 1, 3561 | AVAR: 2, 3562 | AVDL: 1, 3563 | DA5: 1, 3564 | DD2: 21, 3565 | MVL11: 6, 3566 | MVL12: 6, 3567 | MVR11: 6, 3568 | MVR12: 6, 3569 | SABD: 1, 3570 | VB3: 2, 3571 | VD4: 3, 3572 | }, 3573 | VA5: { 3574 | AS3: 2, 3575 | AVAL: 5, 3576 | AVAR: 3, 3577 | DA5: 2, 3578 | DD2: 5, 3579 | DD3: 13, 3580 | MVL11: 5, 3581 | MVL14: 5, 3582 | MVR11: 5, 3583 | MVR14: 5, 3584 | VD5: 2, 3585 | }, 3586 | VA6: { 3587 | AVAL: 6, 3588 | AVAR: 2, 3589 | DD3: 24, 3590 | MVL13: 5, 3591 | MVL14: 5, 3592 | MVR13: 5, 3593 | MVR14: 5, 3594 | VB5: 2, 3595 | VD5: 1, 3596 | VD6: 2, 3597 | }, 3598 | VA7: { 3599 | AS5: 1, 3600 | AVAL: 2, 3601 | AVAR: 4, 3602 | DD3: 3, 3603 | DD4: 12, 3604 | MVL13: 4, 3605 | MVL15: 4, 3606 | MVL16: 4, 3607 | MVR13: 4, 3608 | MVR15: 4, 3609 | MVR16: 4, 3610 | MVULVA: 4, 3611 | VB3: 1, 3612 | VD7: 9, 3613 | }, 3614 | VA8: { 3615 | AS6: 1, 3616 | AVAL: 10, 3617 | AVAR: 4, 3618 | AVBR: 1, 3619 | DD4: 21, 3620 | MVL15: 6, 3621 | MVL16: 6, 3622 | MVR15: 6, 3623 | MVR16: 6, 3624 | PDER: 1, 3625 | PVCR: 2, 3626 | VA8: 1, 3627 | VA9: 1, 3628 | VB6: 1, 3629 | VB8: 3, 3630 | VB9: 3, 3631 | VD7: 5, 3632 | VD8: 1, 3633 | }, 3634 | VA9: { 3635 | AVAL: 1, 3636 | AVBR: 1, 3637 | DD4: 3, 3638 | DD5: 15, 3639 | DVB: 1, 3640 | DVC: 1, 3641 | MVL15: 5, 3642 | MVL18: 5, 3643 | MVR15: 5, 3644 | MVR18: 5, 3645 | PVCR: 1, 3646 | PVT: 1, 3647 | VB8: 1, 3648 | VB9: 4, 3649 | VD7: 1, 3650 | VD9: 10, 3651 | }, 3652 | VA10: { 3653 | AVAL: 1, 3654 | AVAR: 1, 3655 | MVL17: 5, 3656 | MVL18: 5, 3657 | MVR17: 5, 3658 | MVR18: 5, 3659 | }, 3660 | VA11: { 3661 | AVAL: 1, 3662 | AVAR: 7, 3663 | DD6: 10, 3664 | MVL19: 5, 3665 | MVL20: 5, 3666 | MVR19: 5, 3667 | MVR20: 5, 3668 | PVNR: 2, 3669 | VB10: 1, 3670 | VD12: 4, 3671 | }, 3672 | VA12: { 3673 | AS11: 2, 3674 | AVAR: 1, 3675 | DA8: 3, 3676 | DA9: 5, 3677 | DB7: 4, 3678 | DD6: 2, 3679 | LUAL: 2, 3680 | MVL21: 5, 3681 | MVL22: 5, 3682 | MVL23: 5, 3683 | MVR21: 5, 3684 | MVR22: 5, 3685 | MVR23: 5, 3686 | MVR24: 5, 3687 | PHCL: 1, 3688 | PHCR: 1, 3689 | PVCL: 2, 3690 | PVCR: 3, 3691 | VA11: 1, 3692 | VB11: 1, 3693 | VD12: 3, 3694 | VD13: 11, 3695 | }, 3696 | VB1: { 3697 | AIBR: 1, 3698 | AVBL: 1, 3699 | AVKL: 4, 3700 | DB2: 2, 3701 | DD1: 1, 3702 | DVA: 1, 3703 | MVL07: 1, 3704 | MVL08: 1, 3705 | MVR07: 1, 3706 | MVR08: 1, 3707 | RIML: 2, 3708 | RMFL: 2, 3709 | SAADL: 9, 3710 | SAADR: 2, 3711 | SABD: 1, 3712 | SMDVR: 1, 3713 | VA1: 3, 3714 | VA3: 1, 3715 | VB2: 4, 3716 | VD1: 3, 3717 | VD2: 1, 3718 | }, 3719 | VB2: { 3720 | AVBL: 3, 3721 | AVBR: 1, 3722 | DB4: 1, 3723 | DD1: 20, 3724 | DD2: 1, 3725 | MVL07: 4, 3726 | MVL09: 4, 3727 | MVL10: 4, 3728 | MVL12: 4, 3729 | MVR07: 4, 3730 | MVR09: 4, 3731 | MVR10: 4, 3732 | MVR12: 4, 3733 | RIGL: 1, 3734 | VA2: 1, 3735 | VB1: 4, 3736 | VB3: 1, 3737 | VB5: 1, 3738 | VB7: 2, 3739 | VC2: 1, 3740 | VD2: 9, 3741 | VD3: 3, 3742 | }, 3743 | VB3: { 3744 | AVBR: 1, 3745 | DB1: 1, 3746 | DD2: 37, 3747 | MVL11: 6, 3748 | MVL12: 6, 3749 | MVL14: 6, 3750 | MVR11: 6, 3751 | MVR12: 6, 3752 | MVR14: 6, 3753 | VA4: 1, 3754 | VA7: 1, 3755 | VB2: 1, 3756 | }, 3757 | VB4: { 3758 | AVBL: 1, 3759 | AVBR: 1, 3760 | DB1: 1, 3761 | DB4: 1, 3762 | DD2: 6, 3763 | DD3: 16, 3764 | MVL11: 5, 3765 | MVL14: 5, 3766 | MVR11: 5, 3767 | MVR14: 5, 3768 | VB5: 1, 3769 | }, 3770 | VB5: { 3771 | AVBL: 1, 3772 | DD3: 27, 3773 | MVL13: 6, 3774 | MVL14: 6, 3775 | MVR13: 6, 3776 | MVR14: 6, 3777 | VB2: 1, 3778 | VB4: 1, 3779 | VB6: 8, 3780 | }, 3781 | VB6: { 3782 | AVBL: 1, 3783 | AVBR: 2, 3784 | DA4: 1, 3785 | DD4: 30, 3786 | MVL15: 6, 3787 | MVL16: 6, 3788 | MVR15: 6, 3789 | MVR16: 6, 3790 | MVULVA: 6, 3791 | VA8: 1, 3792 | VB5: 1, 3793 | VB7: 1, 3794 | VD6: 1, 3795 | VD7: 8, 3796 | }, 3797 | VB7: { AVBL: 2, AVBR: 2, DD4: 2, MVL15: 5, MVR15: 5, VB2: 2 }, 3798 | VB8: { 3799 | AVBL: 7, 3800 | AVBR: 3, 3801 | DD5: 30, 3802 | MVL17: 5, 3803 | MVL18: 5, 3804 | MVL20: 5, 3805 | MVR17: 5, 3806 | MVR18: 5, 3807 | MVR20: 5, 3808 | VA8: 3, 3809 | VA9: 1, 3810 | VB9: 6, 3811 | VD10: 1, 3812 | VD9: 10, 3813 | }, 3814 | VB9: { 3815 | AVAL: 5, 3816 | AVAR: 4, 3817 | AVBL: 1, 3818 | AVBR: 6, 3819 | DD5: 8, 3820 | DVB: 1, 3821 | MVL17: 6, 3822 | MVL20: 6, 3823 | MVR17: 6, 3824 | MVR20: 6, 3825 | PVCL: 2, 3826 | VA8: 3, 3827 | VA9: 4, 3828 | VB8: 3, 3829 | VD10: 5, 3830 | }, 3831 | VB10: { 3832 | AVBL: 2, 3833 | AVBR: 1, 3834 | AVKL: 1, 3835 | DD6: 9, 3836 | MVL19: 5, 3837 | MVL20: 5, 3838 | MVR19: 5, 3839 | MVR20: 5, 3840 | PVCL: 1, 3841 | PVT: 1, 3842 | VD11: 1, 3843 | VD12: 2, 3844 | }, 3845 | VB11: { 3846 | AVBL: 2, 3847 | AVBR: 1, 3848 | DD6: 7, 3849 | MVL21: 5, 3850 | MVL22: 5, 3851 | MVL23: 5, 3852 | MVR21: 5, 3853 | MVR22: 5, 3854 | MVR23: 5, 3855 | MVR24: 5, 3856 | PVCR: 1, 3857 | VA12: 2, 3858 | }, 3859 | VC1: { 3860 | AVL: 2, 3861 | DD1: 7, 3862 | DD2: 6, 3863 | DD3: 6, 3864 | DVC: 1, 3865 | MVULVA: 6, 3866 | PVT: 2, 3867 | VC2: 9, 3868 | VC3: 3, 3869 | VD1: 5, 3870 | VD2: 1, 3871 | VD3: 1, 3872 | VD4: 2, 3873 | VD5: 5, 3874 | VD6: 1, 3875 | }, 3876 | VC2: { 3877 | DB4: 1, 3878 | DD1: 6, 3879 | DD2: 4, 3880 | DD3: 9, 3881 | DVC: 1, 3882 | MVULVA: 10, 3883 | PVCR: 1, 3884 | PVQR: 1, 3885 | PVT: 2, 3886 | VC1: 10, 3887 | VC3: 6, 3888 | VD1: 2, 3889 | VD2: 2, 3890 | VD4: 5, 3891 | VD5: 5, 3892 | VD6: 1, 3893 | }, 3894 | VC3: { 3895 | AVL: 1, 3896 | DD1: 2, 3897 | DD2: 4, 3898 | DD3: 5, 3899 | DD4: 13, 3900 | DVC: 1, 3901 | HSNR: 1, 3902 | MVULVA: 11, 3903 | PVNR: 1, 3904 | PVPR: 1, 3905 | PVQR: 4, 3906 | VC1: 4, 3907 | VC2: 3, 3908 | VC4: 1, 3909 | VC5: 2, 3910 | VD1: 1, 3911 | VD2: 1, 3912 | VD3: 1, 3913 | VD4: 2, 3914 | VD5: 4, 3915 | VD6: 4, 3916 | VD7: 5, 3917 | }, 3918 | VC4: { 3919 | AVBL: 1, 3920 | AVFR: 1, 3921 | AVHR: 1, 3922 | MVULVA: 7, 3923 | VC1: 1, 3924 | VC3: 5, 3925 | VC5: 2, 3926 | }, 3927 | VC5: { 3928 | AVFL: 1, 3929 | AVFR: 1, 3930 | DVC: 2, 3931 | HSNL: 1, 3932 | MVULVA: 2, 3933 | OLLR: 1, 3934 | PVT: 1, 3935 | URBL: 3, 3936 | VC3: 3, 3937 | VC4: 2, 3938 | }, 3939 | VC6: { MVULVA: 1 }, 3940 | VD1: { 3941 | DD1: 5, 3942 | DVC: 5, 3943 | MVL05: -5, 3944 | MVL08: -5, 3945 | MVR05: -5, 3946 | MVR08: -5, 3947 | RIFL: 1, 3948 | RIGL: 2, 3949 | SMDDR: 1, 3950 | VA1: 2, 3951 | VA2: 1, 3952 | VC1: 1, 3953 | VD2: 7, 3954 | }, 3955 | VD2: { 3956 | AS1: 1, 3957 | DD1: 3, 3958 | MVL07: -7, 3959 | MVL10: -7, 3960 | MVR07: -7, 3961 | MVR10: -7, 3962 | VA2: 9, 3963 | VB2: 3, 3964 | VD1: 7, 3965 | VD3: 2, 3966 | }, 3967 | VD3: { 3968 | MVL09: -7, 3969 | MVL12: -9, 3970 | MVR09: -7, 3971 | MVR12: -7, 3972 | PVPL: 1, 3973 | VA3: 2, 3974 | VB2: 2, 3975 | VD2: 2, 3976 | VD4: 1, 3977 | }, 3978 | VD4: { 3979 | DD2: 2, 3980 | MVL11: -9, 3981 | MVL12: -9, 3982 | MVR11: -9, 3983 | MVR12: -9, 3984 | PVPR: 1, 3985 | VD3: 1, 3986 | VD5: 1, 3987 | }, 3988 | VD5: { 3989 | AVAR: 1, 3990 | MVL14: -17, 3991 | MVR14: -17, 3992 | PVPR: 1, 3993 | VA5: 2, 3994 | VB4: 2, 3995 | VD4: 1, 3996 | VD6: 2, 3997 | }, 3998 | VD6: { 3999 | AVAL: 1, 4000 | MVL13: -7, 4001 | MVL14: -7, 4002 | MVL16: -7, 4003 | MVR13: -7, 4004 | MVR14: -7, 4005 | MVR16: -7, 4006 | VA6: 1, 4007 | VB5: 2, 4008 | VD5: 2, 4009 | VD7: 1, 4010 | }, 4011 | VD7: { 4012 | MVL15: -7, 4013 | MVL16: -7, 4014 | MVR15: -7, 4015 | MVR16: -7, 4016 | MVULVA: -15, 4017 | VA9: 1, 4018 | VD6: 1, 4019 | }, 4020 | VD8: { DD4: 2, MVL15: -18, MVR15: -18, VA8: 5 }, 4021 | VD9: { 4022 | MVL17: -10, 4023 | MVL18: -10, 4024 | MVR17: -10, 4025 | MVR18: -10, 4026 | PDER: 1, 4027 | VD10: 5, 4028 | }, 4029 | VD10: { 4030 | AVBR: 1, 4031 | DD5: 2, 4032 | DVC: 4, 4033 | MVL17: -9, 4034 | MVL20: -9, 4035 | MVR17: -9, 4036 | MVR20: -9, 4037 | VB9: 2, 4038 | VD9: 5, 4039 | }, 4040 | VD11: { 4041 | AVAR: 2, 4042 | MVL19: -9, 4043 | MVL20: -9, 4044 | MVR19: -9, 4045 | MVR20: -9, 4046 | VA11: 1, 4047 | VB10: 1, 4048 | }, 4049 | VD12: { 4050 | MVL19: -5, 4051 | MVL21: -5, 4052 | MVR19: -5, 4053 | MVR22: -5, 4054 | VA11: 3, 4055 | VA12: 2, 4056 | VB10: 1, 4057 | VB11: 1, 4058 | }, 4059 | VD13: { 4060 | AVAR: 2, 4061 | MVL21: -9, 4062 | MVL22: -9, 4063 | MVL23: -9, 4064 | MVR21: -9, 4065 | MVR22: -9, 4066 | MVR23: -9, 4067 | MVR24: -9, 4068 | PVCL: 1, 4069 | PVCR: 1, 4070 | PVPL: 2, 4071 | VA12: 1, 4072 | }, 4073 | }; 4074 | --------------------------------------------------------------------------------