exelixis-galaxy
Version:
Interactive phylogenetic tree viewer for the web
12,603 lines • 1.1 MB
JavaScript
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
var pics = require("./pics").ensembl_pics;
//Options structure for the tree
var exeOpts = {
el : document.getElementById("yourDiv"),
tree : {
data : "(homo_sapiens:12,(mus_musculus:12,(danio_rerio:13,(pan_troglodytes:9,(taeniopygia_guttata:10,callithrix_jacchus:11):12):12):10);",
width : 500,
height : 12,
scale : false,
layoutInput : "vertical",
},
label : {
fontsize : 12,
usePics : false,
pics : {
pictureSource : pics,
pictureWidth : 30,
pictureHeight : 40,
},
},
nodes : {
toggle : false, //allows onClickEvent
select: false, //allows selections
size : 5,
fill : "grey",
stroke : "black",
selectedFill : "steelblue",
selectedSize : 4,
},
};
/**
* @parse user input and save it into exe.opts
*
*/
var parseOpts = function(opts, savedOpts) {
if(savedOpts === undefined) {
savedOpts = exeOpts;
}
if(opts === undefined) {
opts = exeOpts;
}
if(opts.tree === undefined) {
opts.tree = exeOpts.tree;
}
if(opts.label === undefined) {
opts.label = exeOpts.label;
}
if(opts.label.pics === undefined) {
opts.label.pics = exeOpts.label.pics;
}
if(opts.nodes === undefined) {
opts.nodes = exeOpts.nodes;
}
//tree stuff
var data = opts.tree.data || savedOpts.tree.data;
var width = opts.tree.width || savedOpts.tree.width;
var height = opts.tree.height || savedOpts.tree.height;
var scale = opts.tree.scale || savedOpts.tree.scale;
var layoutInput = opts.tree.layoutInput || savedOpts.tree.layoutInput;
var tree = {
data : data,
width : width,
height : height,
scale : scale,
layoutInput : layoutInput,
}
//el stuff
var el = opts.el || document.getElementById("yourDiv");
var el = el;
//label stuff
var fontsize = opts.label.fontsize || savedOpts.label.fontsize;
var usePics = opts.label.usePics || savedOpts.label.usePics;
//pics stuff
var exePics = savedOpts.label.pics;
var optsPics = opts.label.pics; //reducing long strings
var pictureHeight = optsPics.pictureHeight || exePics.pictureHeight;
var pictureWidth = optsPics.pictureWidth || exePics.pictureWidth;
var pictureSource = optsPics.pictureSource || exePics.pictureSource;
var pics = {
pictureHeight : pictureHeight,
pictureSource : pictureSource,
pictureWidth : pictureWidth,
}
//nodes stuff
var size = opts.nodes.size || savedOpts.nodes.size;
var fill = opts.nodes.fill || savedOpts.nodes.fill;
var stroke = opts.nodes.stroke || savedOpts.nodes.stroke;
var selectedSize = opts.nodes.selectedSize || savedOpts.nodes.selectedSize;
var selectedFill = opts.nodes.selectedFill || savedOpts.nodes.selectedFill;
var toggle = opts.nodes.toggle || savedOpts.nodes.toggle;
var select = opts.nodes.select || savedOpts.nodes.select;
var nodes = {
size : size,
stroke : stroke,
fill : fill,
selectedFill : selectedFill,
selectedSize : selectedSize,
toggle : toggle,
select : select,
}
var parsedOpts = {
tree : tree,
el : el,
label : {
fontsize : fontsize,
usePics : usePics,
pics : pics,
},
nodes : nodes,
};
return parsedOpts;
}
module.exports = {
opts : exeOpts,
parseOpts : parseOpts,
};
},{"./pics":2}],2:[function(require,module,exports){
var pics = {"Sorex_araneus":"data:image/png;base64,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\n","Drosophila_melanogaster":"data:image/png;base64,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\n","Gorilla_gorilla":"data:image/png;base64,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\n","Anolis_carolinensis":"data:image/png;base64,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\n","Ochotona_princeps":"data:image/png;base64,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\n","Saccharomyces_cerevisiae":"data:image/png;base64,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\n","Ailuropoda_melanoleuca":"data:image/png;base64,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RQfbCwsQASOzphMfAAAUE0lEQVRYw02Zecyn13XXz3Lvs/6Wd19nH4/3sccz3rIYL1HcEEpwSkAgTBcRARIoBRVaCSkKIoLihkLVBIlK4LglQgRo6hYrraXUiRM7jRsvY49n7LE9i+fd5t3f97c82733HP74jSPOX4/uP/c8957zPed8Ln77fz37T/7plyamJ6umMWRDEN/IXadPfemffemWY8faaeKa6sFPPOiqipKYiBenxr/1zDePH72pGQ5UPKGgKjIhsTKjsWIYkBGZCAEAEZevffi3nnhie1AfWVj47N/82yt7l1Yune27eH1n2Mryvd7u7n6f40QBy0FhvvKv/013ctw3TpxzJoDTJMumF+Y7nYnglLvpH//f57Z3dtIsiZwEX83ddmxmfh4IgIlNBIQSAokiAIggAKkBIkAYeQMAT/2737x45crE1PzllaWd9dW5maO97tJ85m872Gmn7evr7ThHD7K1tbG67qiqq6quKu9cCOp8IPAqi4uLibWs0u7Q2xcuNqER1CY4Z+jln7723rlzEBkmAARQYVAGADaYJmoNECgCAIoIAPzFj1/6H9/+n2PjU3VVRmRee+3VdneKda4Z4mA/+EZamVnd2H7v4hU/gJNHjpooS7H2zrsotq4ukySqyoJDMMYAGwNw/u03QiMEBKoMZmN38Nr5C2ceegiYQAERMLKqosyCDMCECKqAqiAA/Du/9R9FyXkfR1Hjw/Lyqha9j33ske99778bwh++df7y1dXt/cKYSMW144iCF2tMZCIFwCQeliVZYwx38sxa/Prv/teLF99ttVugICq7u7sP3n/fZ3/+rwMApCmmKaSZRonGGdqE2RLeMCI2bP/LN77+ox/+qNXpCELjamNxYrK7tnT5vgfuff86P/vSK2+9t1KJZHmWJEmatxoEw0TOVXXdMBsiAJU4jtI43t9eP/vqK89/9znflAjqvKsaPzE9/S9+/V8eODAvjSMkQUBEQhIRRAQERERABQWAYX/wnWe/Owhhggi8T5NkbqLtq2Jlecnt7z98/8c/+PA1jAQVySASWJOQ6VBd1957JAQVBAJAAhwWfW/s+rD+y7OvMjMiMtsjR4/+h6997bFHHi2GwyBBQEcbA8IohEemoKIKosX+MM1yL752DROr6u6gz1G0sbPdG+6cuvvuudmjSqAMaJAtMXqEhgKA8wG8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\n","Pongo_abelii":"data:image/png;base64,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\n","Tursiops_truncatus":"data:image/png;base64,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\n","Tupaia_belangeri":"data:image/png;base64,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\n","Microtus_ochrogaster":"data:image/png;base64,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\n","Erinaceus_europaeus":"data:image/png;base64,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\n","Vicugna_pacos":"data:image/png;base64,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\n","Pteropus_vampyrus":"data:image/png;base64,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\n","Oreochromis_niloticus":"data:image/png;base64,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\n","Procavia_capensis":"data:image/png;base64,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\n","Xenopus_tropicalis":"data:image/png;base64,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\n","Chlorocebus_sabaeus":"data:image/png;base64,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\n","Gallus_gallus":"data:image/png;base64,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\n","Xiphophorus_maculatus":"data:image/png;base64,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\n","Bos_taurus":"data:image/png;base64,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\n","Sus_scrofa":"data:image/png;base64,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\n","Echinops_telfairi":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAAAXNSR0IArs4c6QAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9wBGhA2A6ffiwAAABToSURBVFjDlXhZkB3HdWVmZdZeb3+v39LLe93oBntHA2iQ2EmQhDSkCHE4HFMSJVoO0cuHPYvCM14i7HDYPzPhcIzlH4eXmJFtjYYSLVq0NCTHIEGgQWIltm40et9fv32pt9VelekPkBBlUrTmRH3ciKyqe/OemxF5DpQVCfycoABAACEkhGKGgS5lALFZRAlkIAsAANSlwAEA3n8dAkgBvf8hoYSBzEcrnwUI/v/BARDDiPWJRsewIdO0HfKv5ZAk0TAMQv/1nzMQgJ/nuY8DE2NPnDppA8AgbzCpjKTDPUE+xiLmE5uTJam/t+dBPJjpwwiDnyMRguB+W8FnB/dRqavT+8YPTI4VcwU/MGJhbDtEYLm2YdsUAAAkQaAeIYDKknjq0WP3llYgpY7j1NUmoZRQCj8iH/yMXOhB1fTTggdACEEAZegtL6yEIrEXvnRmazNbKrfDAb5SVi0beCzrETKU6cMYtzXNsiwGcZ5ra4bBQOgSIslSoivWbLU/dVB+0qGPL8PPmixIKYlz+KlHhhZn53ay5UefOaMZRm9I+Nznn/hgdl21rfst/LWXX1JkeX1zW+t0Aj6l2W4zDHzuzNPNZrtQKCW6ooZuEEo/NjTwowMDwGdTxmI8MTGmt/XDk5OFWsXzvKZHQpLy/T/9vfzmklXPf/0XjkNqje4ZOPzw9NtXZ23X9QVC65ubv/kbv1Islte3tzGHXcdxPTI6MQ4p3drJnjx+JMKiaq0WDvl9Em97VFZky7J+QsXPogwAQAj51W98/d+dOXX4odFUV6S6ufTF00eK9ZZoW7/+8rMSLfk9yzAM29QzydSJ6Sme5RRMfRjuZHNfeeH5XD6/sZUdGR5ybOfW7VnXc587/Vh/tPvYxGA3a/7HF7/2xaMPA47/4O4C/GzK7tck8DyFzNzsnZeeOpbkbbWaD8jwxScn9g9GX/3B/+0bGO4/sO/cufMYMDKfAobTF4s9eviA1m4dnz4oYXjn7twXz3xhKNObSCReeOZz3/ilr375C6fHe/p8VjvJyqTZjHfFAiyVQqHzt+46jvOT7J9k6j5Ylgv4w1997vEXnpgIGI2uvUO5Qk5x20vbW7vr5YQ/nNk3qfGsnlNTPXs6asOt14k/5km869CQIho2dlwUCgQYEQLqij65puZuvH2F08xovBv7mXNvfXcgk3Hl0F++fmm1rD7Iix8QRH+6JsexeeCMdMcPPTzxyl/8edL2Tv/Cs8XluYP9Y0/+2/DivWVzq9ju2LGJTDAWaHbqbDyKhSBmWCQwmMfdPUGKIghAD8B8fbu5U2FcOJRIEUJhp9bZrT08chxxTBFjwMCP84M+ztQDpBKx55898/ljU5Wtu7mFOZYh1y5cqORL+w4doDZfqTZdD8mIjydTmOUN3QsEugnFXZEuSY6UC3mGhY1Oq1RVGcCW6gVRlNvtJqWcX/Tzoj+XXRCp++gjJy1XJ/GBN69cBxDatg0ezNDHoSjKmccf/9Kzz/7Rb/3uxNjoQ4enQ/5YcW1nd27t9R9f19Xdh1LR/PqC5Bcq21uQB6mhQaPRJpBRlEC1UKmVSu2mxvEsRrijN3XXcV03Hk2all6utUzDZqBn2yTRkyjl1hOx/qYY+Ovv/X1XJNTuaB91CDLdYT/jWDwBMVn4b7//X//zi18+NNifW1vqlIqZvkwq3T8w9Ygv1TPc34tMXS1ux3tD1EWcEhQ5ZjPbIIiReB8n+i3LA4SGYl0Iw6bRqFYrwxPTATm0tD7HCRJyYEDEllrkMdc0zbf+8X/17T14tVS5cOmqY1oMi13PAwBABYD/9IvPOx6pFtci8cTknj5kG6XiblgUrN1sONXtjyfHTj2ZGD9aq9XU3Up1bT7WJbG+QLXU8YkKYTheDCSicY7zUYyrxa1KabdSyDM83C7lUj3jG+vLp544jUR+9ur1LlFEle1rd95Xpk8+Nj1RWsn+j394441rd0QGjowMxeNdN2bvol975uSBh9KHp6cmpo/UCtm52x8Yusbolm13pIgi++y4BMxKyTabqZHJSGa0q8vXqjUFmfUp4XbDwBAkenprjebZ988LmOmUG81aHRKoGh2X48PxQCCaSsSTy0vzCNp+t7wxe+340dMnv/q1oC9eU+uvvftmRWu3O2atprIsOzy0B738zGNDmTHXbpdL2fmb1zhWkBnKOCbgMB8Jeh4DdVtvNm+8e7aVrfbvG125e62c3/YpIZdwzVKeF3y+QOy//OHv/58LZ48fPiy5ADIOF+A1FzRtg1W46aPT2Z2NzfNvjw9k2LAQDUQVNi53DWJB8rTma++elcNB6rDNTqtYriyvbeCd1cVWqeyy5Gsvf7mwu7WwuOkg1rQcllgM0IjFGESDDNWbZO3KzOiRI55uWE0dQ9DoVPOF0uDYw7tbhX84N9OTiHYFA0T3iNZ0gTs2MtK8fmNzYVNh5ABjsZ1icf1eeHh/5tgB0QsAoAOjmk4lFcJfmV1//pnT127frat1FmP0F3/yR4h1AkH/m2+cazXp+OT+ocGp2OBYKDkYiaa7wmmH5XSLHR7ZVyrt2gzGCEHDiCbjxCTlXH5P/4gSTU2PDT999ESIx/6gbBFdkcKmBxKxJPLEgKgU87tKJMWKwsBIulOvGttrgt2qtmo2xRvV+uXbs8RzX/rS87u5AosxZgV08skz6/N3Vteyu2rhqWe+GY0PuboHJYHzS52WVt/coUT1qpV3rr6TdNqnDpxcvXMnt5oV+EAIk7Za7won9+/duz1/S6s2OJ+SSiQAUFTdEEU53Gol02nM8UN7erKz52/+8NX5qzOjU0dQIKZ0JXLm0tpuPpWIL69vfed7rx2a3v/OuzOYs60Lb7x++eLM0UNHJieHs9n51GA/EDiAMaNIgWAg0J00m0Vta/3EiSeG943uZAsd3RBF5JFOx9NNr1FvFJv1EsthBzLAIZYpqGoZQB5hrmcgI7CI8Vq33n4dNKuF3drIY2dM11tdWx8JRXyJ7ps3b1IkYoQ2d7KlStXzXPSVk6OlSnFrZenK9Q82V+7NvPcecTrjx49Qz4Es8kzX0JtM2Fddu/vOq38jRaKpaLKjVrHMQ8FHEIacoLCy0TI4n4AobTheoLfbJyrUtfV2U283eIJovaOZToNSpX+oBMWZa5fSvX3BwZGqYSxs5Co1FTLQcRzHdT2PoPFuNLb/wND0Ed32TLVSaFvn/uny0QP7kwOTxGUds00AkUKJN/7sj9uF7bGpA4WNUrNR8se7EeWSvYNyOOViPwBUECAXiIiBcDAeKVUK1LLau7v9kfDm6gIggA8E06Ojd1fn37941tJayfSAIPpeP3v+4rWbluP4fLKuGx/eh56eGv7uK68me4cefepMqaY6Fj0yPrG7dHfs5OeFZJLhRU72ew01wLDtduvKjYvLd6/3Dw8HglG9Q7eK+b7+jMjJxXqV4QhUfCJi89lsu9NKJkKri3OOadYbjY3WbmZwyDC0N996LRAIJxOpcFckmEgtZSuHpvevrq5RSiGErutCANC3//h3071dM+++3zZRSXenBnrt3L2ljQV/PLJn/wkGIxdAYFqRvaPDk/uzS7f1Vmti6hDwB1rNTlBWbs7PCRzv83EthkCEg/6Ao5mtWmk3v4H9/mhfwgbMwuaW6Tg3blzaLRX37O2HiOnKDN9Y3vm77/19U204rttodRiGcT0PAoCePbTXk3CpWMLB3lOfO1HJbl780XkRg+U7d/IrswGJjXV3I0kAxCaud/X8257L+pJ+PuTTNCO3XRR8ok+W+3p7RQFBkdEMB2jG/PxN13ViycR6rrSxuZ7P77Z1vVSpCTzy8Vw00dexvW+/8sNyrV5TG5phUkrvV0MBwF17BoVo6IPba++9N6O3i43cuuNj/d3hUIBd/MdX77314+i+ydGJQ0+9+FWJF9o1++zVK0//8vOeZ4aj/lx2l7VFVydbSxuGqbYJGw2nDEvL7M3cuDV7b2XFo8B2bJcC2zT2ZNK7W2vxVE//cP/NlUJdbfwLQXH/QoZ+8StPs5zY/9Ce/kz38aOP8U5LDIdPnTwqe5rM8tRys6srS+9dSUbZvpNPqnl19vblxx99Ip7q7qidZCTasdzs2rqIiNquxIJxl1oWphiz62trkiy121UZYw4xeludGh7BHN47/cjZq4v/dO69fLEoSqIkia5HAAD0Ix2CpvsiLZNOHpqaGB2xAQVB/9Txw7X11aULd6rFSjAYVFiBAg8AcvDoISnZJ3heKNrtl7t6U0nT01mblsutjqUGQ5wrIELx+PBIuVDUtJok+nz+GC/wLIKVYp7HQk960CVgYX3r4pVbDIKUgOE9A8VS+f7FoysaVhQf+pPf+dWxg4c7ar24el3L1YPxeKeWrW2sXrxy89hTZ+rtltFSeUlaXFzzKfxDk6NatdKsVDudaqmUnbtz2zHdVHqwUNr+4MKFcCTpUrq+vJDdzVdbtXKpMD6xP1vIl6o78e49k1NTA/vGL166fO369bLarjcalm2VSxVCPpT8/eneQCCIm6oW43z1+tL3//yv+7r3YkU68oWTY0cODz3+bwKx3pmXXhqOdNm6JjP4+tvv9vSlq6VtYnocTO5urvhioZZrxn0SZvhsuWyd+39CKCEo4udPntq5sHT9xp14IhWPxk2tlu7rr3W05vzC3HZl5tbiQF9PMKCsb+04xHugL+4trgAA0GSQvvvWW1jgpk88GfJxeisbGRhNje/PTD2mVytri+scVjSzHfRzpKXjkJhd36Y2aKvNdHd6I7vRcgADmM3N1UTIz0mRVCrVabezuZ3VlQWIxUi8Z/rguEvITrlxb2Pzf3//h5dvzRFCbMv+7W/+h3R/+ubtWfDTyh19+2+/0zs8FO1NhBSHY+mxzz2uNfVgT78gCxxghjIDjVapqluCoMT7uz3GEJHY1KFldAo7K7lqXZB9nN83f+caBMhFXl2teLZRq+RTqfjo8N7eZF9TtzjJ91d/892ZO8uFWoMQAgGwXXfu3qJtW5rWMU3r4zIV3jj/g+L8RdlpaI3G5r17NQO++BvfVJJBp9RiA718Ku6ZnfLtxdxGdn7ualcMEUeMxfrKtdalK2/39aYPPvJwtty4evkiYgFhOb8U8ol4N7fTmx4Q/LLesZY2i/OrW8t1nX7ikN93gx7I/A87NOjVunzgxz94WxCTfXv3VJvl9PAeoDeDni7E45AXwuE+Xywc7c5ArV1tVTKZh+SQUG01a+WCwPmVoPTezHmGQSyHTM3kiGNRB4s+B3gEcrnttZXlzXXVdn5abH2qGPxQSn/37761tLJ2fW751//gdw6dOia1dpKZ/g7llKDMCLzh8dmt1aZWkxnGR5EHnXIp11G17c3NQq3SG09s5XYoYhgGWaaLBU6WWNfyDM8VBcnUtHazBj1iaY5GgPcJgwV+IgAAwNLCD8r11vjYxOrVi7d+9KPhiWHPHynns8cembSkYMPgiOYIjCfz0tqtJdnnt4k5c+VylPO3dM1mSL68QwkxPOISwmPEUUogAKKfMrhRzVerRUSA63GXc5ZqOj+POYZLC3cKpU67ZM2fezMWl9c38sXa4nMv/fuN9ZXURCgsi5pml3dz651aVOnJl/IjUwcQvX139d7wwEhLbUhS0NDaMb9MXJtYNmUBhUzbtGuNelWtWRRRx2MRur99+jMo+yl/aDTIKKa1PDcvCMJzv/SNkS+88MiZp9cW7r7yV9/xMB8MxrV8yR+L8EKQGrRtNJZX7vl8fhYQta4ShCBmPNd1KIUMFgTe5+eR5HvvxtLlxWJbdx2XGC7Ntdy65nyqpfEvXBcAADrZH6mo5We+/kK6p+fS+5f7hqcahZ3C3ZUTZ04PHzm4Ob9RydUymb5AoIsCZFluMVfW2roS7q6rTYSQ6Jf9omhqDUwZLEmSQFW9tVbWqy3TdKjnAsuidcNzPs3A+6RVBwFAXzs9cfDEMSxy67fPtnMLs3eux9IjmZGeQjbfKjR79uzLpMcNU6tXcmrTZhgpmcywYqChlduuzgcCAgNYjtMtVw75E7FIwBec31URC2WWabTNpkM1AmwAEAAYAAyAhKHMsSGe9fNcUOD9PMsyAHrkwclHf/s/v9Uk/tLOytT+/aWtgisH9x/+4sx3XokG0729owILLI/THANBiTqIx0IoEbeNTkevEwKhZ3UF4zaybc/CIuuX5c2qprZtHmMKHEBc13Es98NS/Ah2STgalNIxpSsSiEWUaEiOhuSwwgd4iAHjuMSjFKNIPM2LsQB/9YevLS/mX/7vv1ldXe8bnBraN9UoVvWGhsQOS4RgIr1tbq/PXurxBta271ZqlX2j4w6xPYJD/hTAy07b1Aht6A7Pi8CFUZ8C4kRWBLVlE8PQLY/HNCxBQcS8iESJwQxLAYEQEk6QWQAYzaEeo1E01ROLJvzX3/ixurYYVvyW58my4gDXqNctzbNNW1Bkx4K6Qzpqg2OhEuRdR1vZ2GoYak93XyIcZfxMqVLRm41So1WuaSwDHde0LYtSIIisLEkYY5GlkKUEQEHACCGIWMRiAhCglDLI9TzH1l3P0wyKh1LBxXdmfIRLTk1phiUIbLNTG06EdSh4Gu+ZvNk0/clerdbioeaPBBqNyv6Dj5imaXPEIUbL5qKhGA9wjdJSw2y2W54iQJvYDqUAQAZB4GGMLIZxbIJZVnepY7oUugAABiIAGZZDoshZJs+bnsK5aEIRolwq0Z1QK0WfP1o33bDiZxyRVWQss6bDZHezwDDtlhoO8ZIUvD13I5FJ+/2BYn6nf2DIsBhAieN5a1u7altrtNuOY1qeCynjuYxLKKUuhh5iMIbEdmzLdjFDMbU812UAwAhASBkCAYAssYBL8WOTD1MIL16aCce69k0dtlyP93GW6rbanURy7662lUykidYqVdWO1xo9mfQtR7Y3dlP9KeSXoMj52VC+ltveyTUa9Uq10WrpLGYgxtijFEGMKCewgBUQSzmeZZgWAawssgxwCQUeIAyEPGYRZCEExFWCwMEOcNa2t8PJSCqdcSD0gKeWau1KleOE5fpNFvOeVi9Va6ZtQkuZvzs7dmhs9c5GubQdC3YxHrCspqG2q/Wqa7Q92wCYIRAAy3YpwAxCgEKAIWIQAphFGAYABJhDEELbsXgscBzPCQJmIIMYCDFitX8GOaJPjj4R6cYAAAAASUVORK5CYII=\n","Microcebus_murinus":"data:image/png;base64,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\n","Taeniopygia_guttata":"data:image/png;base64,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\n","Takifugu_rubripes":"data:image/png;base64,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\n","Oryzias_latipes":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAKQ2lDQ1BJQ0MgcHJvZmlsZQAAeNqdU3dYk/cWPt/3ZQ9WQtjwsZdsgQAiI6wIyBBZohCSAGGEEBJAxYWIClYUFRGcSFXEgtUKSJ2I4qAouGdBiohai1VcOO4f3Ke1fXrv7e371/u855zn/M55zw+AERImkeaiagA5UoU8Otgfj09IxMm9gAIVSOAEIBDmy8JnBcUAAPADeXh+dLA//AGvbwACAHDVLiQSx+H/g7pQJlcAIJEA4CIS5wsBkFIAyC5UyBQAyBgAsFOzZAoAlAAAbHl8QiIAqg0A7PRJPgUA2KmT3BcA2KIcqQgAjQEAmShHJAJAuwBgVYFSLALAwgCgrEAiLgTArgGAWbYyRwKAvQUAdo5YkA9AYACAmUIszAAgOAIAQx4TzQMgTAOgMNK/4KlfcIW4SAEAwMuVzZdL0jMUuJXQGnfy8ODiIeLCbLFCYRcpEGYJ5CKcl5sjE0jnA0zODAAAGvnRwf44P5Dn5uTh5mbnbO/0xaL+a/BvIj4h8d/+vIwCBAAQTs/v2l/l5dYDcMcBsHW/a6lbANpWAGjf+V0z2wmgWgrQevmLeTj8QB6eoVDIPB0cCgsL7SViob0w44s+/zPhb+CLfvb8QB7+23rwAHGaQJmtwKOD/XFhbnauUo7nywRCMW735yP+x4V//Y4p0eI0sVwsFYrxWIm4UCJNx3m5UpFEIcmV4hLpfzLxH5b9CZN3DQCshk/ATrYHtctswH7uAQKLDljSdgBAfvMtjBoLkQAQZzQyefcAAJO/+Y9AKwEAzZek4wAAvOgYXKiUF0zGCAAARKCBKrBBBwzBFKzADpzBHbzAFwJhBkRADCTAPBBCBuSAHAqhGJZBGVTAOtgEtbADGqARmuEQtMExOA3n4BJcgetwFwZgGJ7CGLyGCQRByAgTYSE6iBFijtgizggXmY4EImFINJKApCDpiBRRIsXIcqQCqUJqkV1II/ItchQ5jVxA+pDbyCAyivyKvEcxlIGyUQPUAnVAuagfGorGoHPRdDQPXYCWomvRGrQePYC2oqfRS+h1dAB9io5jgNExDmaM2WFcjIdFYIlYGibHFmPlWDVWjzVjHVg3dhUbwJ5h7wgkAouAE+wIXoQQwmyCkJBHWExYQ6gl7CO0EroIVwmDhDHCJyKTqE+0JXoS+cR4YjqxkFhGrCbuIR4hniVeJw4TX5NIJA7JkuROCiElkDJJC0lrSNtILaRTpD7SEGmcTCbrkG3J3uQIsoCsIJeRt5APkE+S+8nD5LcUOsWI4kwJoiRSpJQSSjVlP+UEpZ8yQpmgqlHNqZ7UCKqIOp9aSW2gdlAvU4epEzR1miXNmxZDy6Qto9XQmmlnafdoL+l0ugndgx5Fl9CX0mvoB+nn6YP0dwwNhg2Dx0hiKBlrGXsZpxi3GS+ZTKYF05eZyFQw1zIbmWeYD5hvVVgq9ip8FZHKEpU6lVaVfpXnqlRVc1U/1XmqC1SrVQ+rXlZ9pkZVs1DjqQnUFqvVqR1Vu6k2rs5Sd1KPUM9RX6O+X/2C+mMNsoaFRqCGSKNUY7fGGY0hFsYyZfFYQtZyVgPrLGuYTWJbsvnsTHYF+xt2L3tMU0NzqmasZpFmneZxzQEOxrHg8DnZnErOIc4NznstAy0/LbHWaq1mrX6tN9p62r7aYu1y7Rbt69rvdXCdQJ0snfU6bTr3dQm6NrpRuoW623XP6j7TY+t56Qn1yvUO6d3RR/Vt9KP1F+rv1u/RHzcwNAg2kBlsMThj8MyQY+hrmGm40fCE4agRy2i6kcRoo9FJoye4Ju6HZ+M1eBc+ZqxvHGKsNN5l3Gs8YWJpMtukxKTF5L4pzZRrmma60bTTdMzMyCzcrNisyeyOOdWca55hvtm82/yNhaVFnMVKizaLx5balnzLBZZNlvesmFY+VnlW9VbXrEnWXOss623WV2xQG1ebDJs6m8u2qK2brcR2m23fFOIUjynSKfVTbtox7PzsCuya7AbtOfZh9iX2bfbPHcwcEh3WO3Q7fHJ0dcx2bHC866ThNMOpxKnD6VdnG2ehc53zNRemS5DLEpd2lxdTbaeKp26fesuV5RruutK10/Wjm7ub3K3ZbdTdzD3Ffav7TS6bG8ldwz3vQfTw91jicczjnaebp8LzkOcvXnZeWV77vR5Ps5wmntYwbcjbxFvgvct7YDo+PWX6zukDPsY+Ap96n4e+pr4i3z2+I37Wfpl+B/ye+zv6y/2P+L/hefIW8U4FYAHBAeUBvYEagbMDawMfBJkEpQc1BY0FuwYvDD4VQgwJDVkfcpNvwBfyG/ljM9xnLJrRFcoInRVaG/owzCZMHtYRjobPCN8Qfm+m+UzpzLYIiOBHbIi4H2kZmRf5fRQpKjKqLupRtFN0cXT3LNas5Fn7Z72O8Y+pjLk722q2cnZnrGpsUmxj7Ju4gLiquIF4h/hF8ZcSdBMkCe2J5MTYxD2J43MC52yaM5zkmlSWdGOu5dyiuRfm6c7Lnnc8WTVZkHw4hZgSl7I/5YMgQlAvGE/lp25NHRPyhJuFT0W+oo2iUbG3uEo8kuadVpX2ON07fUP6aIZPRnXGMwlPUit5kRmSuSPzTVZE1t6sz9lx2S05lJyUnKNSDWmWtCvXMLcot09mKyuTDeR55m3KG5OHyvfkI/lz89sVbIVM0aO0Uq5QDhZML6greFsYW3i4SL1IWtQz32b+6vkjC4IWfL2QsFC4sLPYuHhZ8eAiv0W7FiOLUxd3LjFdUrpkeGnw0n3LaMuylv1Q4lhSVfJqedzyjlKD0qWlQyuCVzSVqZTJy26u9Fq5YxVhlWRV72qX1VtWfyoXlV+scKyorviwRrjm4ldOX9V89Xlt2treSrfK7etI66Trbqz3Wb+vSr1qQdXQhvANrRvxjeUbX21K3nShemr1js20zcrNAzVhNe1bzLas2/KhNqP2ep1/XctW/a2rt77ZJtrWv913e/MOgx0VO97vlOy8tSt4V2u9RX31btLugt2PGmIbur/mft24R3dPxZ6Pe6V7B/ZF7+tqdG9s3K+/v7IJbVI2jR5IOnDlm4Bv2pvtmne1cFoqDsJB5cEn36Z8e+NQ6KHOw9zDzd+Zf7f1COtIeSvSOr91rC2jbaA9ob3v6IyjnR1eHUe+t/9+7zHjY3XHNY9XnqCdKD3x+eSCk+OnZKeenU4/PdSZ3Hn3TPyZa11RXb1nQ8+ePxd07ky3X/fJ897nj13wvHD0Ivdi2yW3S609rj1HfnD94UivW2/rZffL7Vc8rnT0Tes70e/Tf/pqwNVz1/jXLl2feb3vxuwbt24m3Ry4Jbr1+Hb27Rd3Cu5M3F16j3iv/L7a/eoH+g/qf7T+sWXAbeD4YMBgz8NZD+8OCYee/pT/04fh0kfMR9UjRiONj50fHxsNGr3yZM6T4aeypxPPyn5W/3nrc6vn3/3i+0vPWPzY8Av5i8+/rnmp83Lvq6mvOscjxx+8znk98ab8rc7bfe+477rfx70fmSj8QP5Q89H6Y8en0E/3Pud8/vwv94Tz+4A5JREAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfcBh0KABydjdWPAAAQB0lEQVRYwy3YTa9t6XXV8THmfJ611t7n7b7UtWNsGVIERALCHRCigZDSi0Qjosl3ox2JNJBBQiYJtmKEjXCFyHaw46TKZbvquqp8676cc8/Ze631zDkHjUp3dP+j9eO/+Nd/MKyloiENJlljmdlImBQssRNFhoTmczlCe0tDwcyAJm2OGJzgxlitXEaWwVq1QGTRQczoodqxO81TSYHOStBSMCRVopuTLs0wQwPcjSuwAg2YwA4jsiiJkITBiCmMUjI3BUh5q6peycqCs8jqBUirDTgoKFGhvVBdQo6tyjhlIUFqNO5NCbUCbVi4wlSCigDNvAXLXGQlCIOjADM6UqXakaEiqMrMtSWANhQjBTUjVBHIHWlpFaCqZUVGIiWTuQyZG1lNckE5UhCZVEt2EpDMTJJVHgxbsgzBBM1AJICCs4CSBDhIYaIVxpbpZXJzSKjdShUpmc07k5LDh3agIGyyljZblvaQgVBWys0Uuc108zLAxIKyCcIYsXvVUKaIGlY5mze6QBJOdgLQyILoSQMJzFILUQ7zAhp7KxSHO6oyUESDmlGsrFSryQKqKmGyqYDkGLk3YhBeFWRNvoyaSlVeBjZQsKxCA0AoVMqCEQTNIIHqpMICMDWKo8vIWYRVOVtUdjOWh1xGV4oQESLFGizzHAMUJ0fASvtsNdmU8rVyg4oEaLDmbmZC7aqoIhwAqBJZ1spIJrNrdNjgRHNkVCaAouCFTEtVqkJCoHar8gwMgySFZMFKS7A8zWANiZ1RaMlelCk7maVsfi9Z7o0oQRBIlHvJzAuAKoRkCuU0eBq8cUpqIm3EbhLVgbUSoCNNUhaAVJZMBacqo5p7olK7DaP5EFRpKBasbIjlkOKLYYVK1QXKEgCUqmQE1qrNVPRGEbHFOIPJTmsgpawOK6HwxUurl5TMqKw9uKlHebjk2fp0DShrtIHWUWXlKBUDcKNKqWiEUFCZ4EVZEaNQKaBEEgUJICWRAFEVsYWa9+Oih1OMcOLQp31syjgRAoxmTidWFcVmRlZrupAxvKkyWWl5UU61zT2xATBzqEAxFCgplCC79Rk5Ygw0CqmIyEGC5tmagMoEyFxNIqqgzFNVSQj7u/KQMmAwM6YgjtPDa8jovS1UVrIYADSEFOTeDFYSUIn0wp5I5jQ5IPduk43YSoMMyIYrqvqa5urecmwjAYoQRZoEF8sqAA+FAZCVA6oiquDWE8IICxSABpVpsBRrkxmcpGqLOAOCESbvVjkUg4D1Ps1LSSFWn4IkagIVY1vPSiSSEKKqKuWlhEZrsNkL9AQiNQoZlaMBLBEhjBaRorUEoPQ2cliODkKx7gNAB5IRGTa8uXbbG8y61xiUyQ3CpTyVg5mklRPqpYSlUVZWOZm8FOgV4F5C0XmAjTG8eSiCKWWDWm57b1OxZm4swjEzFkvZuHCZ4BxJO+WItUkoaV33epD2tN7RuMVpOI0GlqN17wOrGSk1KJTF3MCFjWE5dhmruU0FsPY2kefYQfdCGNq/+1dPLo+VrkO/mGCCHQ5t8l4oq/RGoRAM4rTlw93pYV3PgyPHumns4+6k+1Pc7e3NCFQfe25YCTW6qWCQ2aC89aCUA5bNteBw2iu0K5K01sWsLIpo//KfX1uzKo8crKCmVIQZ6ROqYFJgqE/tqW/29zrrGpaKfUYg9rsHrau2bfvNvT65q8/e5Js3AwODLlqwHga33eLhlMUk0DHtOms/eXW3yjo1zWFL88pisd1u8myoOcsEN3jGWpZmPUq0plzBXkkNBDSzZlsNVdV786dP94tlsmzaHgqT+uM1GDW2wv7AEVhr/uTu4fWrh5dv8PzNNk29qr98u8Uapy0u3CZQiYHsqCi0jJ0qMScjTKZ9QcB32nBg9k6UT3LfpvlRKT0eqA0Ib0tfLrS9dJ7pk817rzxeoV8uGbzf+Jv46rj+veXpu787TqfnP354/eG+vpnb3JZnr0/7y1v8pz/721/+6uVx6aoCPVvDFm22nAydmxtBTazJqlm596nZ3KN3my96m6/cH4/1nCP7oS1LZU5jRLiNMzu75Njvttfrvt6I049/c/Ofnx/qJv/xN3x/6Lj9+u8d/GuXn5axLxeHa3ty7f/hDy7/6Dt//eGHnxx7K5NRZWxP+0DDhI2gy2cWD9NhmY6Hw7JcNKbXWSNQo8bp9PkqgANbhHIbDw9t6X16Ak5hNbTWGabjz0/HP/5hvr+9/kfoL9/7VMf2/sfri+vj77/75WeP7Vx77nuO17/z6OHf/9tv/Me7uHvx6345NXiq2qWQRevz3Jdlnievy5sjXFPTPvrbrSsWjAfcv9nefrrfN+uP8vXAeHExSZHjcJHqo842X3ibkbvWy7/69X63t69f7j/65h//4v2ff+133/3yP/vGTz67/tLNb/+bJ/P+9sHsCO6j29z92Hnu87Qc93UtVdtzOkzH5djfeXo5N7+/f8iBbeW9sO575JE2Z7LShdvmNULjpCXn/faOUzu9WGvL8znH1Oev3sxE3t/e3emdi3d+/clnH7z/YUP75IPnT77ylXFhn92etq13TDZd7uTdVt/8n9+/fbhdLo4Z8sI0L+3Jo+vj5WGe6cDb03Z/PxIa8LUY+z75to2AaTleZe3n0xqnt7XHHnkcTsPdFnXKGL0OY38x3i5+LE3IdR3XN8/+/j/5p68++vzm6dXjy3e25dGTw9JqlBI1pr780X/57nv/78N3rm5UZyUX64Fo7nOWv7wdW9YOy5wiBHIvxjDTGCovnE/n/f5+fX3O3XJn3NZjs8XigTZuzxePrkK2/vqsZzea7MuqK/jHD/vv/+EfLv3xxx/+1Cfvl8/efXrUeIg2k8t//db3v/ve+1fzZWZBWcVTpqj2/C5n8gyCRuubrHI3MStH2IgQBwZjP489tntB3AbXXWu3G/nh4hGW5dVoXK7q/u1lv9nQ+fDiH94c94uLj59/ejiuPF7ePLr6B+9cPm572LRcPfvWt//yf3zvh8syLd73DFgDCohuU9vQ1y03+eStqKJn9X3sVtpHbqktclv3HHKbcXxUNW11d257SJNPe/qtjoq+pGmk3v/4ye/8No7+JdP8+PJ1Pns4x8311Vdu8mq6W9rih5vvfPcn3/rv3++Td/SqABOktyU0ttraebOITMReIBmj9k0D2va4H7ZGROJu5flhvVrst770zvHysU/HqLaf719WPm6Xcm2jMOa6erq9eBmfvr34+lfp+K358LX5wq5rshHrbZntmP/sT37wp9/+S3o79gvsKAxr9DAoiEKhQS4WcouqSB9bPJzGXdU5fB8ZMaq4Fu6j4lRf3mK+2JebY7d33nymN6dzTz15+uj+dg0/XDz+6vz03WbkfAwO2wr3LwqDi8/Xx5Mt3/xvP/jOez86zJe999iHIkNyOARggDp4byyWfA1jxVa4H7hf/aF4TnW3AvZMGo+HI2Pcnreb8GY6XF2f1eLzz80RHMs102qZ7PJwPXl/iLUZ+nKRt+fjcqjD8WevTn/+g//1f//6J4eLq9lpyDTtrqkIVloXF8sHq2qnbT2nndMrtdNebLENHax3t2rNbC48bDEWXyp5N8bter6cLySfjtf+qLVt3bT1i+NxucA47WvgcLnMBzteunuAn758+e3//b0f/fL5edumZV7IHJsZprZUVXqV0FCpvVAFtFfbdg6P7FlzQpKH1qxqLfdUYbpervbcRuY0LxMVEOfFal6c61Gaj3PTcnW9HI4H02y17XX3sN6/Or149eqD5x/97PlHn7z4zdSPF1MzQyQgGjlGaQzvlppKahaBWqmWfuXuOaCUVR0oXlwgxoh16m5KerHaBVrrrWbavLDPh/matZvFzcXNkydPrc/7Nm5fvPg/P/urn/7iV29P53Xk67cPY2xqnC4uDV2ZgT0NC5s3O8fu89RlUpk5kCZ6Vfvyk69p7qfUuq9j2wRD2Hlft/2MxNybJKDNhWledJx698N8NTV3tJunX82qnz7/1a8/+eznP//FB7/86PXDKbMmbzC6Y56ay1OmVumtEjMJY5iRcLOkWaZJQxC0sLXpYiGxTMq562apnMYq0aL2qCxz47z4ZLnKkBTRD53HrmT7m198+Od/8cMPfvHJWDcYnTgsR+ALG5N7DMHKVEhp1O5ywByVuXuJMYa3SWayNBqnnmw//eXzC9d1v7+5urq6fspm0T3pzpsynmKvQEtgngwbWVNnxf7Tv/3wL37y/t988NG6jovD5XRxTFUvUrWhTBJUNk3lxi0MKLMqU9At6Uo5J4EsCbbVcJoAofz1a33+5k153p/x5n5fM7d9E2V96to9771W15ba99xuX7354Jcffe+9H3/ru+99/PELwo/LZFQxKQ1FYTQj3WEoWaX22ulygJlOm6Y5J8WoJp5ULhpkFMFzpZxtubl88uzZ240ff/rqdP/8tK2FPMy9HY+Xc3tyMR8vjhr1+au7zx7Ot7cPp7v7PaIty+V8jEqZKKPQgUGlOdRYcgi5C6IMopmhOUh6mcq9jT3cSWNWFACmm5XYqvVX93F//+rtqze1Q0aQr8fD4Au0vrApMyuEIuhsPvXrec7IIObmPaPMKxWVhmxshRLAVCfTrUa2dpDVoEnVECyTstyAIL3ILHmRBMm2P9x/9OZz5ZjapfUSo7mhLZc5JSlmTTN2BtKtLWW7IkDZFyraBCtJzER0JwUZNksjjaS1xh5VWeHmVTyv5c5Oem9bVGYA7nSYp3ZHtsg1jV12nJdVsUZUZa8oolLmbNYENFUQK3Mya0Iih1iqXWmUA+7OZplWGvAiZudsGAtspUlQRlZmSQDdlNXQNm1gAZ3gAdpLpiRh4DRiN8LNkKYABLpDzPNeSji1b11weGUW+igyzaqjZIScKooq984ZYDAGamUVo5AUWqETZiJVKLpN1l2eqlGjIg2wbppyo/JhrHnevYCG3RWwhK9QsApZNYCC8n5smyS0VHXE0ZusBQsgQVV1oVcDZBb0WhU7q4giCBLuNNDSUJUUy+AsLxQxEY1uMo9IlyEGNVfPdARcJXOjYJFOn/rRVe5YVZHj6BOtgJjlG4pSlap1R2dgMkBK5mwoMADjF3hmBmVxwKnsJod6n1iWSllZx+TqoLnkRCFVudBnMzNKNFq5o0/pnu4lJEommG+tPSgjg6W9ohQkZJae3lwkEkhUJI0mqCoUO1KqiSZoqwKaQlW5KwXzZ8++FjVIlhnIUCKTytSgt0qQKjNKQiQ0WN6agRSsINECDWgkHGUwEoUim7dG36OGUqrKMloKO2oSDYiqLIS5YhQCRKbMKLMWaGvayHJhan1iM3muq6WYZEJ/R6neWzc4ioQpyxMkgiS9t4lgQXRHBSrKGw0dbmWFDEOChEGE0MBmMoUZ5n6Y2kSaDTDKWM2/sMAvcE1goU0HGAS25k2oEkRL5ahSD7DMC9qhgJ+JrQBhr72a5rlVjRpnY8lklJmzskNeAACJAtmbOd3DbEM28v8DtP7Bbm9DajEAAAAASUVORK5CYII=\n","Anas_platyrhynchos":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAKRWlDQ1BJQ0MgcHJvZmlsZQAAeNqdU2dUU+kWPffe9EJLiICUS29SFQggUkKLgBSRJiohCRBKiCGh2RVRwRFFRQQbyKCIA46OgIwVUSwMigrYB+Qhoo6Do4iKyvvhe6Nr1rz35s3+tdc+56zznbPPB8AIDJZIM1E1gAypQh4R4IPHxMbh5C5AgQokcAAQCLNkIXP9IwEA+H48PCsiwAe+AAF40wsIAMBNm8AwHIf/D+pCmVwBgIQBwHSROEsIgBQAQHqOQqYAQEYBgJ2YJlMAoAQAYMtjYuMAUC0AYCd/5tMAgJ34mXsBAFuUIRUBoJEAIBNliEQAaDsArM9WikUAWDAAFGZLxDkA2C0AMElXZkgAsLcAwM4QC7IACAwAMFGIhSkABHsAYMgjI3gAhJkAFEbyVzzxK64Q5yoAAHiZsjy5JDlFgVsILXEHV1cuHijOSRcrFDZhAmGaQC7CeZkZMoE0D+DzzAAAoJEVEeCD8/14zg6uzs42jrYOXy3qvwb/ImJi4/7lz6twQAAA4XR+0f4sL7MagDsGgG3+oiXuBGheC6B194tmsg9AtQCg6dpX83D4fjw8RaGQudnZ5eTk2ErEQlthyld9/mfCX8BX/Wz5fjz89/XgvuIkgTJdgUcE+ODCzPRMpRzPkgmEYtzmj0f8twv//B3TIsRJYrlYKhTjURJxjkSajPMypSKJQpIpxSXS/2Ti3yz7Az7fNQCwaj4Be5EtqF1jA/ZLJxBYdMDi9wAA8rtvwdQoCAOAaIPhz3f/7z/9R6AlAIBmSZJxAABeRCQuVMqzP8cIAABEoIEqsEEb9MEYLMAGHMEF3MEL/GA2hEIkxMJCEEIKZIAccmAprIJCKIbNsB0qYC/UQB00wFFohpNwDi7CVbgOPXAP+mEInsEovIEJBEHICBNhIdqIAWKKWCOOCBeZhfghwUgEEoskIMmIFFEiS5E1SDFSilQgVUgd8j1yAjmHXEa6kTvIADKC/Ia8RzGUgbJRPdQMtUO5qDcahEaiC9BkdDGajxagm9BytBo9jDah59CraA/ajz5DxzDA6BgHM8RsMC7Gw0KxOCwJk2PLsSKsDKvGGrBWrAO7ifVjz7F3BBKBRcAJNgR3QiBhHkFIWExYTthIqCAcJDQR2gk3CQOEUcInIpOoS7QmuhH5xBhiMjGHWEgsI9YSjxMvEHuIQ8Q3JBKJQzInuZACSbGkVNIS0kbSblIj6SypmzRIGiOTydpka7IHOZQsICvIheSd5MPkM+Qb5CHyWwqdYkBxpPhT4ihSympKGeUQ5TTlBmWYMkFVo5pS3aihVBE1j1pCraG2Uq9Rh6gTNHWaOc2DFklLpa2ildMaaBdo92mv6HS6Ed2VHk6X0FfSy+lH6JfoA/R3DA2GFYPHiGcoGZsYBxhnGXcYr5hMphnTixnHVDA3MeuY55kPmW9VWCq2KnwVkcoKlUqVJpUbKi9Uqaqmqt6qC1XzVctUj6leU32uRlUzU+OpCdSWq1WqnVDrUxtTZ6k7qIeqZ6hvVD+kfln9iQZZw0zDT0OkUaCxX+O8xiALYxmzeCwhaw2rhnWBNcQmsc3ZfHYqu5j9HbuLPaqpoTlDM0ozV7NS85RmPwfjmHH4nHROCecop5fzforeFO8p4ikbpjRMuTFlXGuqlpeWWKtIq1GrR+u9Nq7tp52mvUW7WfuBDkHHSidcJ0dnj84FnedT2VPdpwqnFk09OvWuLqprpRuhu0R3v26n7pievl6Ankxvp955vef6HH0v/VT9bfqn9UcMWAazDCQG2wzOGDzFNXFvPB0vx9vxUUNdw0BDpWGVYZfhhJG50Tyj1UaNRg+MacZc4yTjbcZtxqMmBiYhJktN6k3umlJNuaYppjtMO0zHzczNos3WmTWbPTHXMueb55vXm9+3YFp4Wiy2qLa4ZUmy5FqmWe62vG6FWjlZpVhVWl2zRq2drSXWu627pxGnuU6TTque1mfDsPG2ybaptxmw5dgG2662bbZ9YWdiF2e3xa7D7pO9k326fY39PQcNh9kOqx1aHX5ztHIUOlY63prOnO4/fcX0lukvZ1jPEM/YM+O2E8spxGmdU5vTR2cXZ7lzg/OIi4lLgssulz4umxvG3ci95Ep09XFd4XrS9Z2bs5vC7ajbr+427mnuh9yfzDSfKZ5ZM3PQw8hD4FHl0T8Ln5Uwa9+sfk9DT4FntecjL2MvkVet17C3pXeq92HvFz72PnKf4z7jPDfeMt5ZX8w3wLfIt8tPw2+eX4XfQ38j/2T/ev/RAKeAJQFnA4mBQYFbAvv4enwhv44/Ottl9rLZ7UGMoLlBFUGPgq2C5cGtIWjI7JCtIffnmM6RzmkOhVB+6NbQB2HmYYvDfgwnhYeFV4Y/jnCIWBrRMZc1d9HcQ3PfRPpElkTem2cxTzmvLUo1Kj6qLmo82je6NLo/xi5mWczVWJ1YSWxLHDkuKq42bmy+3/zt84fineIL43sXmC/IXXB5oc7C9IWnFqkuEiw6lkBMiE44lPBBECqoFowl8hN3JY4KecIdwmciL9E20YjYQ1wqHk7ySCpNepLskbw1eSTFM6Us5bmEJ6mQvEwNTN2bOp4WmnYgbTI9Or0xg5KRkHFCqiFNk7Zn6mfmZnbLrGWFsv7Fbou3Lx6VB8lrs5CsBVktCrZCpuhUWijXKgeyZ2VXZr/Nico5lqueK83tzLPK25A3nO+f/+0SwhLhkralhktXLR1Y5r2sajmyPHF52wrjFQUrhlYGrDy4irYqbdVPq+1Xl65+vSZ6TWuBXsHKgsG1AWvrC1UK5YV969zX7V1PWC9Z37Vh+oadGz4ViYquFNsXlxV/2CjceOUbh2/Kv5nclLSpq8S5ZM9m0mbp5t4tnlsOlqqX5pcObg3Z2rQN31a07fX2Rdsvl80o27uDtkO5o788uLxlp8nOzTs/VKRU9FT6VDbu0t21Ydf4btHuG3u89jTs1dtbvPf9Psm+21UBVU3VZtVl+0n7s/c/romq6fiW+21drU5tce3HA9ID/QcjDrbXudTVHdI9VFKP1ivrRw7HH77+ne93LQ02DVWNnMbiI3BEeeTp9wnf9x4NOtp2jHus4QfTH3YdZx0vakKa8ppGm1Oa+1tiW7pPzD7R1ureevxH2x8PnDQ8WXlK81TJadrpgtOTZ/LPjJ2VnX1+LvncYNuitnvnY87fag9v77oQdOHSRf+L5zu8O85c8rh08rLb5RNXuFearzpfbep06jz+k9NPx7ucu5quuVxrue56vbV7ZvfpG543zt30vXnxFv/W1Z45Pd2983pv98X39d8W3X5yJ/3Oy7vZdyfurbxPvF/0QO1B2UPdh9U/W/7c2O/cf2rAd6Dz0dxH9waFg8/+kfWPD0MFj5mPy4YNhuueOD45OeI/cv3p/KdDz2TPJp4X/qL+y64XFi9++NXr187RmNGhl/KXk79tfKX96sDrGa/bxsLGHr7JeDMxXvRW++3Bd9x3He+j3w9P5Hwgfyj/aPmx9VPQp/uTGZOT/wQDmPP87zWUggAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sLCxEGNQnxWr4AABLlSURBVFjDXXl5jCbXcV9VvaO7v/7OmZ3Z2YtcUlxSpEjasqWQFmXqigUhQGAplm0YSZxIDizaf8SMYkDIAeSAHEQ2giCKrCgHHICIDduwqViKkpChZP6hyIdIIhQp0rsUr+XO7szOzDff2cd7r6ryR3MXQaqBRqMbr6pe/arqVVXj67u7iCgiAACA1gIRIel8NqvbejGfxxTLvIxtaEOrqlmWEVHmsyzrI1gFVRFQYREFAEIyBADMrKoAgIhEJCKICACqaoxRVSKCG4Q3iMjatm27V957AEgpVNW6DW2MCQCY1dtM1PhiaDz3igIQmdk5JywsAQHJkHOZUe00EJGUkt4gY0xK6aZIVWXmTg9V7V6KiDEGEUWiZeaUUkppMBj0+2UI2tSt8x6UQgg7J08hQl0nZi6KHiJ03JmFmVUFETlySskYY4zpxHQ7vCmvM0lH+P/QTbN1dwBQBbterztGs9lsvV6rMosSa4yc5708L5h5MMibpr25jIhUFUBvGrxD/CZMN1HonjuUO11FRESY+aZanW1SSjFGEbFE1FkYEWOMAIJIImIMhRAOD4+IyBiLSJ03WGv1Bjr/376dc52undU7JW7yN8Z476213afOhJ0expgOaBGx4/G4W8/M3UZVRUQRSZURQRVifJvjTffsdt/x7XjBjZWIaK211nYiRYSIOhExxm5Xna4dyp3DdJ8AwC6XSyLqUEOElKSTBICIpoNGRFNKnBIjKgCoqKpopxkhojXWWKuIKUYRRqROJwCw1gCgtVaEY4wKoKIxxg5W55y11hiTZRkzxxjtzaB4OwpYRQQUkAiJCFFAEcFZI0qEBIrWWnLO2wwVBBhAUgwxtjEGNBaQALRzFFUVAQRw3lrj8uxtcUKKACwcQxSrnaWttc46KyJ5nltr305FnCSmGCNrIjCACCqWXF6WkZnruJou96bTvfWinsewbETbyai88x233XP3Hcbi0WLVxmiMKDCn5GyRVFU5JRBON/zdZN4jKnNKnIQlxCgqnZPazs8BQEGZJUOy3rnMIxFZU1WV80UQ/PPnX3j+hRfeeOWV4/3DqHIc6qODA2SQpLGNoQnvefd7H/nFRx7+wANNs6yaFZG4vgU1KWpMKcaUOHVRZ4yNKSCKiKTEzElEFVSRUAVfuHix874ucIxoiG1MCRBZZPvk9puXL/+Hx377T599pg1tmfVQmLxftXVc1SSoovW6kSir5Qpi9Ymf+pkv/Pq/ZGnrZmUtGEPWOWYjDCLcXTEmEUESRLiZDrr4zbIMX7x0qW1bEVFVEfWWDBEgskp/MHjp5Zf/yT/7p5f3rpw6ewbRNJGbkIpe2TZxebRMTej3coltqNcIzCEuZtMffc/7vvKVfz8YlvPFIaIYi0gFkiPCLt/UdW2IstwRobWu85bOHESIL1y82EHGHcUgIkm43+8frxaf/tSnr+xeOXXrtqJmRT95J1lmnCeGumnWy2VBDgNX81k9W2jkVKWUqnvuvvexx35nNC4Xy6lKZPKKBrRzXgghIqJzJs+zLPM38gC+bbkfXL7cZSREBEAAUWVAyor8c5/73B9+9fGdnVPZuBdSI5ZgUmQ7o6yXSQxcRxJojus0q00tR2/utcuaEAgpcbj33vuffOKbVbUIsY4AikiACooAChhjSCkAgPfOOe+cc86piKhSd4AXReGcI0LnLJHZOnHi2eee+6Ovf81lzua2CpxMXqNwAW4rb4q2oWVom9nuwezyLtbt0bXdWK08sEhKHBD9iy9+7/Of/xe33Hp7G1KKkkK7rqplXScl73zZGw4Gg7JfkEGWGELTtFWShAT43IvPI5K1hsiIiEjMs0wY/+anPv3Md75dnt0oJ/2qleLExGxYLSnf6hPz4tKVdGzD1bmt125Srldr08KwN5gfz+q2BQBQQBg89fTTP3T/rdeuHxmoYnIVJoyaYVLbNwbzjAAwxMAswoxIpECqwMwhRGYW4cTJWvflL3/5mW9/2wwK732KiXxKWW1GJi+NNrVUDbICtjTBsGHyk/2yl/WNObe1tbO11Wnj0Cgsf/VXP7uYrcuNjDJXeD902vdt2UtFDs7ZLhvnWZ5nGRHFGGJI5jO//EtdVhURa93Wic0fXHrlC1/4jcViXk6GQMiainHGfVybVPSLpmrqKvT7YzPIs0mxdXanje30zb122i6OZyJx3UQAMihki6tXXh0N8ne88771CoSjCpMUIC4lYmFE6I76LuaNMYaM7fV63fHWJfXE/M1vfeut11/PRyMADTEgAlkz3NiYe62BoBxS3yXby0pvZ2u+clTPQm+yxaFqalnMV13yYxUiBdB6/oNbNqevrG2rPonmzudWnCQhE1O6WUgZY3zmjSe7XC5vFFNkDM5msyeeeAIArHMiDKj9/mBRN/0go81NcNaU5TIymdxStj6YLl+6qiLG5OI0NMH6oUijjKCsmgDg5ef/Ry/dd9fOh968XhzXqZKmauoeoC9yn2cq2rZt0zTdQZu7jPr9Ms9zIqrrCkBff+21559/HgwJszHGGNu2rVqqmgra1klUbVymw8KHi9fXf7HP8zYtgyzW0AbVGNGr99ZZa6ywAMDf++WHrn3/qb/7c79Aqz+5dTx3KREMyZYKwMzOu35/kGVZjGE+n0+Pjm2MMp0eEcJgODx39txXH/8DbhIghLZRUVt6VO/zLHKI1RJMnz0N+q5649Vrf3qJ99dkDCG01dKAJSLBVhQjC2lS0btuG993IcfZ8Yff76T9xq2bD6d421G9gZiR6REWsU1I0VnT6w1EOLSNBUZLdjDMB4PBidH4+PAIAAwBSAQl5kiM0Kr1mmKrfhupsFU4vHSJeO4nPWkMt0mta1IiMoQ1NA4VGBQAPvHRnQGr0K0//7dOJl9z++K5k3sn+bZVtbMI41Ab7/tAQURzN3AZiLYWub3v7ncyxqaJAlBXDQAgkiGjRDExV2s/o0HWc6opLLa2s+svXmyOluPReDlrYkqOjKAAKYBi8KQtAjPAX7rrxE9/7Lyu59hMlq+9LL398tTY0cLn2i9XO3Siald7B5PA20JeuJVaBNgsjvaPZ9P9/WuX33prMtn+vd/73UsXL3UVIYsoKBpyJKJtskw9HpShvrabza0matsQ64SiqkmUFRCVC9trpb37/MYt53pltlpM37C5FRdsgd5Yjcz1NMwutvNnvT8cDrKjwxmRMc4zC5Ixq+OD7z7z59f3d1eLxWQ8/qOvfe3q7lVEUgUEAFIyaCyqVSzd5PQQ9NjU7fzNiqMioBGHKs4bThFUNXGQ9tT22S/9xy/98Hs+8n9eaBdhnPzGxbcWb12vrh5cPV7s5RmUuU88v37lTediv6xBEXC7DljVa3vm9NmyzGYHe2+E+sXtbUmhK+sMGgVWUQ3SGsl6RY5Zs78IbtZjJwTeGQ4RCYxF6wxAsZ7V73v44U984icf/PEHt07c2Tbt3T/y/lARpcN6eX1v96Xj2XN7V77/nefecLh7+tx4PDzRm75mimt1asYn78DyhMMMH/ihezZG5ahvJbTz48Uzr187mq6tyVWFJYJV9GTKrL/ZwxIx5zyvh73e9Fpcz1piyyvACEXPDodD53tf/LePfeDhB166+Cy3nmwjSsJDhQQCRs2gl0laXN97dffKK/PjvdVqOpm48Xh0+ux7t3Z+tOKEBHjhzMZwMNgY56e3N1ez5VPPXZqvWiKrgCoKhtGoK/N8lKHTpE1Rss+wbalZiVefKoAIWWZ3Tp7ev360XqQv/bvHHv7wu48Pdh0w6CAK12ntMicpqnqictDv570sVQFJqmohySgY1Wg9GmPM+e28TaFqQr8/nGxsXtk9XlSVogARgEVVVE2SUgwcxKBJSVjUOoEKKUHXUgqb6dEK1a3Xi//69d/fuf38u9/9wHoZyRhXZKiQWrbGWWtVU9usQ1PF1CgoIjEwWQHkEEKMwdx5dpx5DyJvvPbqYj53eX9/OgMlAAJgBAYAENAIkoQMCTMzTYb9atampMKagoY6goIzPuv3E+r/+oPHN8blX/3Yx9brKgiQNZaMMRYRc++73pKIRBgJs9x7Z713zlljiO67//7JZDIaDa3zq9W6V1oDiIAICMoKoAoG0ABoBKlEGyyNi2t2xjvjQTHFJCwEWNfr5WKdZvOTZzY/+pEPheXx0f6e976uGhYGhJRS3TRt24YQ6rqu63q9Xq9X6xiTKiASkaEqJFa8vLs32T41OnnGIPa9UWBURgI0gIgogIIkFOskrYZ1Wk3r3PVQDDA6dM6YFGNdrVM1/4f/6B/sXt5977ve9a8+/8//zW/8+t5bVyajUTdwKYrCWuu9z7LMOdc9dI22MSbP86IozChP4+FwOBqKmt2r1yblQIWnqxpRDRlEEFEFMACIIArGEhCoal2F0IojqwKhjTGy9+6xx/7Lo7/y6NNP/vdf/Pm/8dx3n23auHt198GHHsryvKu6ACDL8jzPu3GUiIhojKGu67ZtU0rmHSfs7edO1ctFClGZ1/PV+fO3sKTjZS1qEQ0Ao4ICKAISAILNDVnkgMgUQ2jrhIof//hP/vHTT1+45dxvfeWLjz766MH1o+3J9sZ4tFrMplX14EPvV5HhcJDnmbUGALz3Ra/Is8w557wjpKZp2rY17zrVq1aLyXiwt391OOxVVUiit184P1uu1+u1AlkLqipdx2BADaDFNnCqJbUsDB/7Kx994oknH3nkl1576aW//smPf/Xxx8ty4ExmEXPvrMH9o9l4tHH3PXd3dfLbsykBFQVAQApt63w2GAwUxNx5Znw0W2RlnhW0XM4Go01A07Rhe/tESO1yuRYAY8AY7OaFxlFcsLYAAu9730Pf+J/f+Oyjf/9gf/e3fvOLv/KZv3P9+pEqOiSDQEQKYMn20M+ms3t/+EfUurpthRlFQkh13YoIAKXE63WlosJiT+6cWNfrl198dTIuzuxs1tFG54BQQM9sTtq6Ppo3iQFAEQAQhtnoxz740F/75CdP7+z8xEc+9MfffOpf/9qvfevJJ6eHx5Nh0SszIkuE5kZ7HlPymbl6+Y0/+87//vGf+MsxtGgIDTrrAbAbwaiI9y6EmFJrq3axfWJSHy+gCS4lQNmcjIbj0dWDw9jgj91/F5A9mq32rx8cHU0VzQcfePBnf/pnLr91dX6w/zv/+T899fX/Bsznzp4d5cWyXnfTNxFwzosIIgFACI2x7oVnvvuBD3/YWgOgwhzaCtAYQwCYRDmxIWPyHP/xZz64f2Xv1ZdeH+T+5NZwGX0dYTwZs8JwY2JthoaystcfDpqW33zt8qVLr86my7ppaw4qOvJFYb3PssHGZNXWVVWJSIzRIFoyw8FQVb2DExsnyPd/6m9/6uw7L0RJo7xX9Moo3DaNilrnmNPbM7XPPvKzuTd713ZDWw2H/YNFU0W2zk42N+qmqusqy13kliGd2t667fy5erWsV/MiM86azFjvLFmDRIlTiImFVZVFiMgQua66Nrw5HBCDWnPrXXceHh9Vy9VytSKiXq+X5RnemNkxJ0Kbl+PBnffebkuaN1VErBPXKQaVOoasn/vCD0YTa4uqbjimuy7cceHO2/tl5hF7RZ71C3HIDgUQWFW6yAHvHBE1TcMp9cvcgFiVVFXGYtfJxxiOjg4OD6+nFJ0zee6LwjvnLIJa40+fOx1i+P73Xok4AuvK0QStPXXmtCEEFQPWuIxMVtXBen9ye2s9nxU2r9o0awIDhJgyJGdNSkQIhhwiEoKzLsbYNObqfL9fjrNesbNzyhY5xgQCMaa6qaeHh+PRuOgVhqjX69lmufA239o8f/rUhdVSnn3hcm+wWa+azHiHZtArOQm40Cv7zroW0nhjXA7zxfLw9enlWLU9mxtx6owIE2GRe0UgAVBBQGeoNxwULq/iygz712bT+WytIkTJoMtdOej12hAIgESts2rIlqON7e3tLM8J8dr14++9vDsqc2uwaeq88AmAgZISK4amZVUBGo42zt5y/nB3tqoOm6axea9qWiISAAVFY0TYe++MSSEyM1McjfsqfMcdd2xubO5P91LLITJo07bBGBNjXK1Wg8HA5pm9/Z33I2KWZSmlW++455Zzf9bWzXKxzIoeWVIwg8FQjF3WjSCVg2HVBEAwPvfeemfWbRNCi4QiUQBVoausy7I0SGrVOTcYloZQjPHeF0UxGIwks6mObYh5UYBCjDGlNJ/PfSgsmAyJllWjCtunbumVvePDg6zo5bkjBDIEBMKMaF3uiQwZs1ytru7txZgQwTkbWLrCAVQUEBS898ycUijLcrValZnd2jqxN502TX1wcBglemv6g9y1ofuPw8zee0BsUyRmqevmeDZfrdb9weDCXXfNFstuMKOg0+neYn6YQptiSyiWYHp40Fbr7c2N06d3FvOZMQjAoW0FJHFEAENEROvVChFSYkQ0lparmbO2LAfO+xBSU4f1umqapq7rqqpCCMvFYrVcxhj/L+cer+3TLP5HAAAAAElFTkSuQmCC\n","pics":"data:application/json;base64,\n","Equus_caballus":"data:image/png;base64,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\n","Ornithorhynchus_anatinus":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAuIwAALiMBeKU/dgAAAAd0SU1FB9wBGw4dC3FwF0QAABJsSURBVFjDPXlpr1zXld3ae59zh5pe1Rv53qM4iCIpmqaoyfIgWe1uOR0nQeQE3f3BaSAJkE8B8o8C5FOAJHAQJECnkTgxOi3EHalbtiVZAylKoigO75FvqFfjnc7ZOx/uo1GFQuF+qFo4d621116X/uSH5y1W8xpVFZtoCSsz52kSYkgdsalAq6AAsiwZjVbcys7H3zwaz6ZMiGa1WgAAAxEMZmAmBjEZADZlYgJAIAMURgCRMDMRiAyIZiEaTEGkBrdYFnVQI8k8lXUsI1Z6ElUzB4alnhInmSWTWRFDU9RNr1l2Eh6rgolgQsQAQGqmBgDS/ilAwOmHgVtITMQkxEQAkRka1RDVzGAGmBo4KEdljXFRm/OexM0WtUFVNfGUeEcurUKAk3Qw6q1umNKg14EpmbGRAxwggBgEEIDs9M1EDJAZE2AwgJiFRZiJWVXrJoQmmCp+DwnmiJB7LRpqGuvm5ghBvSOYEcPSPHFpxyeJSbq6tTs9GVdlnXc6qZfYRDMiAhEBBCJTMwAAyMiIopkZQAozEDEJCIACZhQhRhA2gAyAmZpGhcs9lo13EpLUaQwF6OxqXiyLJEuICURbq4Ned3BwPM6oQebGUavAXqgqorDAQAwDiIiohYNTZARTGEyJiOAIYGqJogAxPItBYKYxxqCqZmrOWIQCO0otOp8yW6PwSZ4m1Ovmg26aOplOTixWdUkrnbyKZLUypaEpJHVsZgYiMAAgmikICpCpIRoiTIiEWsDUIiUCQEwEMyMQcUTgaGbmcs/zAnnqKNRM1ss8S5IlLvGcp0m326liOD4ZG2g04H53yCLrW9tpp/uX77ybpakZTM1aYhtgUFMCRYWqKYEJBMDMjGAKJiIiw9OragozCDuVYEEdyK0PaG04WBRLBoRIBNtbw16vE4M9ORgXReFEtkbDTu56wxHNlhcvPLO50bn91acPnhSJODNTtKonU8AMhGgWDaeCB0DEMAb9HsTpzTUoTFXVzFjEkVw+2yurIMJMRgYRWV0deraq0qIsY4iLqurk6XClF9W8EEty8OSww/PVfvf2o8NFEZkZhGiIUaOqGakCAFFrAcQMIeKWZAY7Zcsp2Bi1UYugVofy3E53pZckQi7NRbxpFNYYaVnW3iVExuL6ecJMa6ujvDcCaH3n0rxON3toYv3JvWPxieL3/wEiMjJm8gQhOLR3CQRVMzsFBDMzIzPUqkHxVBdwvYw7iV9dyWdFEJeaJxZO8p6VZYyBGbknMhPmk/HJtYtXdi9cdmmnrqmaH729eeGz+z//8Mv99dFASQ3ETAxlIiEwCApquaWqgIEUCmIlKKAaDRTNYAAzMRMgb97cSZME7LPEV2WRpqn3jqDCiLFJvMs8nHNCYW19xTvNUr+ydmZt9yKTrW3uXNpeu7//6IsHj5IkSzwzwfFTTVHrSkYtjZiiWVQzMzWoaVAEkIFA1Lo3ALlxvl8ree+6nc5wNEjTTJhDUxfFIvHOOwerWDhzsdPJGHE5HU+P94ar2z7tlsvDfu7+4PU3GzS3vvgicUkixEwizAABqsYAE1oriGqqFg0hWqNQQKkV21OKE+SV54Z56hjBpx2LoZPnMQYvFFUXywpkRrQ+7Hf7XQ0AGCzHR9Nislctx+X8uCwWqTT/6I//bHJ877ef3smzXIRFiPmUMk+5TNoeDxAUTUSMUDUDGRHo6SExO2ZT1dXRat7JmLxpXZdFE6Mwra2OnJCFIktCjIJQHU5P1EJDnWUZOo/2QxOI+HBWXLwy+df/8t8sl8Vfvf9px3WEAaUIJYBgZFAzVSMgKqLCTq/ANIo39swkrWXJD66f6XTSfrfnvQ/RQlOGEJmgxL1ul8k21oYr/W65XFRVs/d4PCuaZVHsHy0nJ0uXrz9p1o/53HuffN3t9v/wu9+7e++zvYOjzCdkZtqaOCna6UnB0BiU6CnXqTUmELEQiMxM3ryxlSWu1++XRVWU8xgaJpRVQcTCfnv33PrWOfGpS7LpvJzOlsuyPjycq/Ho/Ivp1guWDEybOtq7v/noeFJvrm8XxePxeJ4kiZrBQICC1Kwx1EYKMiIjEANEYGLHeMpoAtgJFUW9mM+qahmaMs9cnqUALxfT9bW13TNbu7tn0+5mlvePJstlVQXFdDHvn7l24fqPqrpSDQA5tl4nfXx0fDjFtcvfHw0HTROeZjKoIYAiSAmtRbJjCLFnSZgdizAzMxMzy2vPb8yms/FkMpstWCuNZVlWG+sr169d2d3dLRv6dz//q5//5TtNtN2NzuHxyef3DrbOXn3trZ8t5idRw7wop4vZYrlkdr1ub1mW3ax/fvvM7S8+MZJoCKAAUiJlAhOEIAQmFmbH4sR5ERGfOOec815evjTIEleHWM0X9aIy48cLmsXM5T3H7re3Hnx668501vyPXz90YbG2kt19cHj9lT/61tXLD/YeHp2MJ9MTMjNTYldHa5ry+GT88pWzO2e33/vgQ++T9mCUWgcnFmZmY2qjmnMiwixgdswsIvLG86M8dV7Upy7rZL3MrY5kfHzStyeJ1H/0j//5q9++NDt4eOPCdtU0j04W03m5tbn17PnzD/f3T2azJhhMTWOapNPZJNazxElZxbf/3k/g6G8//KDb7Wo7UPhpCmEQMQu34ETo6fwlZpGffPfs6uogz5JeN2eXkbhOIptrK1traxev3nz+e392882fXr64++O33nDc/PWvfp0KffelFzZ2Ls7ni7IOUUlBZhZjhVCM+iubG5vTov7szv3vvfQqs36zt0fMECbHLEwEiAgTCxNRyx0Wkqdf3aDfGa3kofFVXSXe0jyfzZuVlcGZZ5/f/tZbST4IRtdefxvAi8dPtv/Dv986s33h6iviO1nWXR0hjmeT2aypy5Tj2nCNXL4sNUmyqqp++f9+e+PKK9GaX/7679Kk650YwU5jY5vQmJiJwODWFQnsntnth7qYVlV/ZZirN0qqZjJaXR1tXkqcHD68E8MCWvg0Qyie2T3z/Gs/2T1/5WD/4XDQO5hMF/Pp9OSAoTsXr2ad0WR8EEIsm6CQ1ZwPDw8uX3iZvXvn49/Oq5BlqQg/DeFotc5gZsIpu8jNTg6XRcw6KyJutLkN8md2dp3LhcLieD82n3/1m2/UsvEkfPzpp26w/a0XXlvOju99c7ff65bLyXR6nDucv3C9v7orhNThycFhMBBRmrpFHadHi/ObN//8rfPvfvb+7Qf3lZI8TU1jOy+YSVq1n24jIm+/cbYOnl124cp1diksesdJklRVE0NxvP/gwddfTE5mD/f2Pvzkk16v+9Krbz745qt7D79ZVuWTg4O6LL99/dWNrXNMohoVThWhqYloVjQKJgtgDHsbN5+91s3y8exkOp+cEroFRCRErpUYsbz9xtlssD7a2NHYEPu17YtNOY31YmVtfTnbf/j1bbW0bHRv78HB4XiyKDq9tcTJbFlM58tiufjR6z90SacJIUZb6Xc2uji/Nbh59ezRZDFZlELsnINZsBCU1vqbz597vptm+wd7VVM4YcdCMAIY1i4A8rOfvm5w/W6qoY4x1sU0SZLpwZfHj+4sJo+buhQUt29/+eDRUaMu7Q4O9r+4cfP7qXd1Of/By69eu/Zi1EpjUHLOSaMyXdbjeVEFNjMAPkmJXVk2dV06J1naO3/mws76OQ1hOp80oXHs2rUTBjKTf/ZP3hLnZuPDennCVs0m49nRfdFpVVWQvlbzk+Pjo5Pa571EpNfxXz9evPP+h//ghy/3u6sbuxc73V7iPQFNjEZC4hel3n88IebEOxEpq6YK2sk7Wd6p62Y2nyWON9fWntk6793gZHa0KKfe+VZvRCT/9B++YjGaxnI5hyTdTjpcWwcacoO0v+6SvG50uLqVprnG2vW3/vDHfzJ5fPfylUvD1d29J0ch1j7JFQhNNDNHvLs56OVp08RZ0Tjm166ud3NaLHVjpdNYsijmRTEzbYLZ5urOxnC7KOZHkwMvrrVMufHac3maJXmPmUPd1NGSztD1zg1Go97q5sr6zu5zL/ZWhqvDwcbmzkdfjyfH+00xz6k+f+XFh3uPXZo9fnLY63RYXFU3dRNh9TAz9v2i1m5ii4ZTl6134mK5mIakLBaT6eTweFI39Uq/65Puzvozy2L65Ghf2JtBVi9sPDiaPjgaB8mGq6v9wShJXNbp91c20s7KytaV7ujMYLS9efa5aVH99a/eKxbzqgqf3brV76ZXvv2do6NJ01Rm6ryvmoaIiD1cR5zv5unh8fTOl1/lXr99dWe8sFtf3rn39Rdbm7vDlZXx+GRZLEfr28R+Je8+ePx1URQgkeuvPFs0YVbr3nj65f704fFsXseggbUaDked3iBJu2l3I++vxxjee+cXV7YyzxiuDMf3P9sY9bcuvbysNMSmadQLiUtCJLiU2TnHvV4f7GeVvfPxo//y3/9ie330/R+8NZ9NF9Nxr786Wt26cvWF4/HB3t5+U84OTo4AdiBKE69AjLIoq9m4fjQp6c7+ai+9tP3g2bO7o9FGpzPoD9bIxa31wd98vPfCs7t//zvPnbt+/T/+p/965v7dl9/62YPjtFzOxUmIxM5DA5Ez8o7ihfMXg+pg714aX1xb2wRofTg40jrL+5cu35gtFhZjlqXgbhUVTZCrL5wHCWDCnDjvhYVJErds9P7B9JOv7n18587tu1/85ne/2zt4+GSxpFBf31k7f3ZtZWPrBz/6g1/+4n/+t1+88/pL30oH24fjqXOuk/m6WCzKOkYT55IkdYKopMoEinUxXyyHq9vXb3xnOBrd/uyD+exk95lL+/v39w4fMjt5/uZFYUdEfPpyBADqCF6IWeoQp/PyaDp7cjidFXXT8QezWTlbHD3eW13pPp7j3/7n//PRR3/zxz98bWv38t7jJ3W5rIP6rKNqLJw49o6rqloU5Xw2DU1c33rm5svfE7I7tz6G1kVdL4ri09sfLooTJkc//RdvJUnSrkUALEZTVY0WNYYYQ7CoGqPGpq4DjNJc4Gw5X2YaU0keHBZ1DAfj+XPb/X/1p3++sfvd+weTqCFPE+eSul464cQnQUOI/OTgiXPp7u7Z+Xwa6lItFGUdLfyv//0Xt7752CeOQXLtpefaqQIjwFTbdUFN7ffFRYyxqRtTA2KMAabOi3opCYNhNhxmO2cGVcS7H/ydleNrz17tDjay3sgnaQhhOl9OTo6XiwVgaZKcOXOmqcqjg0dBo0+z4+P93330/pf3b4GViQHI5RsX7XR3NFUjUzMF1DkRJ8SkFqI2zCBSmCaevRcRCFEijolCtKaJZOLT7PP7d+9//bsBlnmSjdY2u53OcDTq5nniPRF3u/0skWfPbSaC+Wz6xd0v//b9dz796hPy5MVJa9U//tM3vPdE3AYVQjCLIuKckFnUpm6qWNfQoFERwSw+ZefZDCHGpo6h0Ri1qVQjFFZVBWnYHa0/f+7q5tqZ0fr2mZ3zvcEQJGVVNnWhFt979/9+fvfuB19+Pm8WeZY65jYlmcGFJlg0cWxM4hgWCcpOqC2TYMKAY6gIExwxO+ckccJMTQyE2jRosLZZYCBLMlW7d3Jy9/BXK3kn97mTZNjvsSTTZTlZFifT2awsKotJwivdPhlrjDgNa+TKKnhnKbEZm0Vm854VRmbCgMGY4ZiMqK0DyXlxQixE5MQUIVio1QAGQBw0AuimmWVcRZuHuqmre8U0KowYxNz1aTfJTGMdYgyJYyesejrwnWpsmmjKTJokLkkcSIgEIMBYxEjNiIgEcCIEJ+wERACTRFHvrJEIYoVBT7fVlpPMlBEl3jftrkpMxAaKqhojPAIsmCYs4lyrKccIIVgI5hgiAHm04VKEiA0BGkFkGonFi2d2DIEaAIMysXcu8UnF2jTRNLaWBhC4PTMItW3waasfTRkQ54SZCKEJjZoTYiIScRobKABIq6p20X7avSsoGjdNII0uFSJx7IRIibRtU0BEbVVttSoZCbW/YO0q1sZBYRcNagQwm0UzgIgFPiFDVI0gazmUJEyAqUlbNBEDpu3zB+IYYl3VoQoMgylDKUH77AQwDWYKjWaqbTRWtMXBaU/FwgqYKkgdOwOpAsyeyAxmGkjIJ2hqVWtbIpfl3iI0RgCqqqYWAhFByQx1E0MVLCCqmkVYEyN3MqSO28pLVWNUUxA4cS5aFFjrHy1qMhhIo5IpSBLf7ojS9tsSYrvQVk1tqgpyPvEaLIJUNaqG0LA4AhkohNBUQYMSwGAzi9HqJjiBkEAtqqmpqbYFrJxS34jAaCVJUNOoCojFJPPinYgQMQiqEBbiyNwQIcSg0f4/YzHnQSrnO3gAAAAASUVORK5CYII=\n","Cavia_porcellus":"data:image/png;base64,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\n","Pan_troglodytes":"data:image/png;base64,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\n","Dipodomys_ordii":"data:image/png;base64,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\n","Dasypus_novemcinctus":"data:image/png;base64,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\n","Ceratotherium_simum_simum":"data:image/png;base64,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\n","Papio_hamadryas":"data:image/png;base64,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\n","Oryctolagus_cuniculus":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAOwwAADsMBx2+oZAAAAAd0SU1FB9wBGw4hNlrrIqoAABDeSURBVFjDXVlrjGRpWX4v33fOqVtXV1+mp3vnPju9O3tjQRZUFoIx7EY2i6wCUUYFEkkEBGIif/WPwZBo/CMIES/80KgJITEmBJWIILgwuCuzMzuzw85157IzPd1d1VV1Lt/lff1xTvXMen50KlVd3/den+d538JWp4ezB5AQAaF5EFFUEFBUVBQAEBVAVRERAEBEVBWAAABJQVUVQME5TwZjiBKllWUKCoAAoFofgoioOrtJ7zkRgHZfAQCoaH0HAsxuri3dNRIAFURV7p5OgAighMig6KrqrW99819/8Stf+8svv/1tbyqKYtcanV2ju/Zp4/nsdMROr78bDwTQ2ce1s4hU/1/UOPuO1Jaoyt2zEFUQQKuqspa/+sUvn/iVE/lk+7U7V5/90Id/+sq5rNVRlebA2kPFxpy7T+3d7CUgKABonR5BVARVFVERiaAwcxAREJCQGBG1jqciIiBi9GHfffc9tP7AneHWjdsbDxx/8+d+9zMAEGNERERWpCbxoLtxb4INoKo087JONCERAlZO8rxyPqgKzBwhRCICIEDC+gBAxDrpu2mNq3v3rK2uVd6lvc5wZ/TkO35uYXElxABI0KR3Fpu66lSJCBoLlGYJqs2UovSHDi3/2ed/7cRv/gKnPB1P86KMUWprsEksaOMAAs4Cq02RHDl8qNObCzEAgRM3GCwMenN1sTdFCICKu7WMiCqCiEiEiDQLFwICKiDhdBp0OPrIM+/6u6/88Sc/9esHD+8pXemDML+xAwBgdo02LQEAcOzIUU4MGEULBFTujGN0b2gOBQREquM9q4JZwDhNW4CNRQhIhFs7pRU35+7YVv99v/TcB557/9Li3JXrV27euBOjGMON9YioqFC3LyJgCD7J0k9/8ncOHTpauBwNJpRde/XU33/jG9PcGWNqf+5J8gxsaLcNlU2aKjRv1wlRVUxb735gkcbXXzx7imL2zNPvf+7ZZ+cXO+d+en57e0TMzNxUHlJdXYAYgl9b3fv7n/09kyaigclWd7avnH/+W9/74WhcWGNwdjECgKIiojbx3U0UHz56YH7QW14e7FkZLC72Fxb6a6uLmmSry+3Hl3ory62Nmy+deemFxcF9Jz74kWeefqqsikuXr1aVqwOOQPULBiwr//NP/MxHf+tjhSsASIu4cfnUyZPf+s6PL5TO12G42+JQOy+7jVan1Bw+vGaYkdAwMTERsWFRvlbCtWG+xvzYg0crV738339z4dz3n3r/Z7/0p3/x9rf+7R9+/vMbG9vtdodw1jIIGv1jjz5ExBKBxPrp1u1bZ7d3xkGIGnRusLTBXlXcrfVZGfHxh45ZY3hmizHGkEkTU8UkMq5R7io/tzg4uLZn4+q5l06/2Ovvec9Tv7q+fuzc+Zdfu3bD2qYyBCBE//GPfvT4+sPlTl4ON25effH6pdOXb26dPHtNJRJhzUyIM9Cpi5upxpS6YfmRR9eZ2DAbw4REhMaYxNosTbxpzbfjnLoQSzZ2qZdev3T5zNkXLMUn3/nMc8++7/TZU2fPnbc2AVDn/OFDBz77iU/10m45Hm3dOnP2zPcuXXz1ymZ17tKtBjpnXd9kDOtCxHuhmpIkMcYwMbNhJgLstFpZmhhSJr5UzU0DgQvTzU3n/LF9y6bIT/7XP//nN7+aoX7hD/5oeXG5chUi+uAfe+Thvcv7XJmX+VbhxmUx9gA/eeW6dx7J4AyjmyaAuicaAxtmRiACNmyImZCYjLVWRESEkAzBVplcLFpahijqiopAVnrZZFi8/OJ3Tn73awdWOp/7zKdjDCICCg+uH29lqXMVZ63uYK3bm7+2FTaHU2ZCapipZlUERRDVCKq4yyEEAGCiRCJmREAkIiIKMSAaYwwhthK6BYPN4Pu586EyJum3sVtKGfTapTOE8LEP/8YLL536h3/6x/5g/rGHH0ZFV05jcKntdQf7L1z/flF5IkCRurmbJr+njHXW87VIIQlBotQf1WwKirNOVAJRpA27FBUkYJhMMgsLLeIoo638wisvbl0/99snTrA1qnB8fb0sClWZjK/fvHry8uULo3GuInehXHW3YmojdglnV2IYBRWJIkhEdwUQIiIwIxtOCLel289WB9XVfLtKC+imrW1Ch0aFXv7f/3jkiWf/6kt/8ur50925uSBBY5nv3L517dJwZ6twIhLukgPU/KQi8kbhAbtiyagIMNcmiKhqrHuNsIYkThNryN7QFd8K/bQcjyRZiglxKREwGW1ev3nxfz7wgY9jysPtbVXmvO3cZDLaHE/8aCe/13ucgRYiikgdgnvlIgBQjDGEIDEgCKGqikgABWYibHJoDKdJNuysT5cP5Pl0cjtnH8VFcIGRXLm5dePqeFwCEBoT48T7naLyt7c2K+93eer/K7HGCAR4g2ikMHu8DyEGVCBiJGSiGg2QSAEYsZN2dO/jbmnv5o1xHE7juCjHhRTlzu0bty79IE62VERB07klk7QiuAgB36imG0BXVQVmtoaZmagREfVf0xAuoohIEGEx1tSITkiJTdkYw5bIJMZw1i8XDo2TGzGGqYuTMoKB0o27W6+uuCc4batG213cv/6u8Xh0dScqXLxH1dd00ZiCiDFG1bgbmzp3hNiUs4rWCVNRUQXVuhIJyZjEckrIGmFx/7Gy3b458mOvOyA37gxxrr2wtk62C0RhPKxG13urx5587yfe8bPvSRKsm2yXyJLUZGmiCs57F8JsboFalgACiahEiSHWlV+LG4nifSjLcjKZeO9Ba+qJwRcLew8/+s53jsBNQxiN8pz8fQ88MthzHMioREQAMiLO9Bbf9JZ3Hz2wWjoPgKqKRO2sldrEOV95F0URmljM2lAJkYL3MYQYY5QoIjEG7533wYfgKk9EjKQao/gYAjONhltL++5vd9uTwg/Hk8HSwv6Dj2ftFUwSAKB233aWALDIpysHDz771C+2MgpBAKHTyoiwKJyPUWEmmwFqcm1UsUot8okIRSXGGEL0znnvi7yMqgDofOWqMngnEr3LJ+M7l65c6XRaQSNntHfPSru1GF2pMSAiqIh6AJXoSh8/+KETTzy2XrqqlWVINM0LHwITZWnSytI0TVpZkqXWGCLUupRNLRyJWEKos1YBAKK1tiwrawwheC6M4RCMiA/RbW7cmbqi3ScFHiwsIraiy6nTBQTUZrBThWI6PvTAw8++95d/8OMzhmhSlMaYLE2tNaDiY4hBJEoQEdGa/0GFjxzeXyOOiMQYY4ygaoxJ0xQAiClNEmMYFSQGEZeX7taNS8FtU8scf+iBt7zl3Qhsbce0+0A8m5prpYFB9LFHH7l19eILZ17pd3tZkgJq5XxeFGVR+lCXrug9gMTr9x8EbMb0GKOKMnOWZbVCssbOmFhjcCJS5FO/c7mSKEYeuv+R+Wwx+NKkKQEiEBIDNjYhUQxhsLTctq3nf/R8iFJWZemcdz7EiITUCHOoh1QFRVA+cmR/zXESRaISU6vVSpKEmLMsrQk5TRPLxgcvQFJuVvkdzujwkQNZ4D//wtdDNWz3QowFixiTYZI2yCIKXqSMC/3Fc6dPv3LxYrvVamdZlqXGEBLuTsO7na+qxlXOWCYkCYKEzAZUi6Jot9shiJIyoStdDJEJNbhqspO0koNHDz/+5icv/PDU7et3Tp06n/bd/Q9Nl1eOsUlVoiIhUawqLavh1sbVq1dH461up1NWFdRaQt+wfGhQSgEUee/KkqoSoogAorEmhBB8ICImjFFUIcRYOQ8KlfNVtbmyOjh+/G2d7przO8XGNQDUJN5//Fh/Yb8xLVDRKAiAqtV0eOXyK4cfeMRXd85fuDjJnfc+L8vSubi7j8G7sh8ReWlpQFh/XZgIAEIQZiImUI0iACBREAkQyqrsdfz6saP9+b2uypNOtrKvO7p988BDRw8eOw7AWdo1aScWEz8dESfEye0bF1f3rRPhN//t27fuDHeZCxRmuwq9q6wVeGlxgEgqIvWADUBMibUAELyoiohEESJWoKrKD6x19iytAkRATZL5pbUjhx48tv/gg0TtJG2L9xKcsSmwYdNBZI2BOd27d9+p0z869+qVZr1RMy7MBt8Z2SGi8T4CeDHMTKaR2RQFvPegECOFUG+GsHIBwafp/GSaK2rPpBJd8Fmru1cEohQxysRtdZnT9gC898VYFBZXDocQUXD90OF2drKsYo1WCrMhRBWw2TYBgkEEieLrymp2BuKji1EQQISRIygQMZtojYzH06jg41yM1O0E66O1mU3aWWsQY2il81k6iD5K8EAEajhN0YgvpxFqYGikBigoKgDVQZqtZ8CoalSJGhGUKzbMhFQPHqAgqhiBiEpXGVEErFzUaRHElb7Ki+nSHja2VVblcDzsdgetdmua7zhXZK155qSoxn2bWJt6AWLLhqUMdxchArXWAAUFqTNo6uYCUQcRnbPWNOujenMXpfYo+AAKU+EbG9WD93eMsZNpLoLpeDoeldvjzSQzS251Oh4TSZZ2J9MpcRJVKu8O7D82Go9ev7W5MD/IkgoQQ4j18OQbBdIYJwA8P9+vFzsqEkWJiOri12aLVevAhoKZJtMgIu0WEdu5/rz3cHvj9fm5/uLCCihU5cgakyYtVBjn06iCZBHN6TM/eenlswjY7/X6c3OtVpamlhkZkQ0zIxHVOyPjfUAEJiIEASjLShWMaSR1s/dTQeIYY23ohSvjTru9vCcpCnV+0u0NrO0SJlHdysqxdtKu8rzT39Pt8/ZkMtdfvn7jtVOnT4lq5f00z2OIIQZVDTEKACIaa4iVIokIp0lKSM3kwwQKsUbDemmtjd6TemIDMNYaYwRo/9qenem09I7ZKLAqZK3UII02tl/fuDDNp93eaqs9L8pnTv/k0pWLSZIwk0jMyzJEURAiIsYYJQSZ6VdiIluvYrVJC+Jsg6yqUu+kRWotYI1Js5SZXdCiLNsda0yLyABg2u4ZyPKdnclkFD0wJ93BnqS7ePHSy9/57r9uDUdlVSGiTayoggoaQkRjOKnVBCIREiH35uYRMYg4F70LdRkxYa0AnAvO+RAFVK3lxNoYovc+hLA9KgAwSxjQKjCyjQG2XrtlmFuQZL2lbLC6ub3x/PP/ErxEga3hsHIOEdM0RUQmTGzCzMbaxCZJmiSJtdby2n1rrXYra6VJmhCbGKVyPkYxlhGxLKrgAhEZawxbUY0hqEZAUJXhMB+OC5Fo0zRJ0qTVmusv7lzbStL24qEHK5F///bXL1157fDBQ/P9/s5kGqMYa621WZZatknCaZKmSWKYrTFpmrayzAwG/Rqo6q1vFCnyosgLQPSipfOgSsRlNWGTD+Z7aWoVIISgokS0uelHo+nN14crK6P5+Z4JsrO9vRf33zl76vyFl06fPjMYLKrGQa+7b3Xl9tYoy1IEjDE2clCknnbqjkEEfPrp98xGoEYQEIKoqkgIsSjL6TQf70yKogohznXb8/NdNmSsQajnPXReptOyKBwgRFEktNZKcIZhMJhfGMzdt7Z23+oysR0XakxS733rAajmEEJQjQpAgCZNEjTMxPWvO8F7EUEia4xNLDG7ym1sbk7Gk+kkz/NiezRFEGuNMQwASWKRMHg/Hk+iKDEbw66qjGFAMy0q5qI/CIXnQXewOt9TIMMWEVVFQSXOIE9FRRHBJGnK9TGGmVhEK1eF4AGQyCQm6bS6y0vLzCbGuLm5ubF5ZzQcTSbToqpCiJRX9a9YJrEWkE29pmRj2BgCwKi4uLSyunak0563Jquvl8aQpn/rX1RijKLyf3kG3ahg3oFQAAAAAElFTkSuQmCC\n","Petromyzon_marinus":"data:image/png;base64,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\n","Otolemur_garnettii":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAAAXNSR0IArs4c6QAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9wBGw4oLphFAbUAABRxSURBVFjDbZg5k2VXcpjzbPfcc/e3v1fVVV1dvaB7AMwAwnA4IWqhJYMyZMiQIU+/S6ZMymJMMKiFGsVEkOIsALFXA+it9nr11rufXQY0QUdppZXxRaaRmR+a5gUlaDaI54PYef/95aaVUvBASmuMNdb0SlvvkPeM+ETwxXgcp6lH6H6zP79eerCMYqkcACIUIQzGOOeBYuK9t94TjNMoAHDWYYsCqZzWFsB75+CPgRD6p/yjRwcBJQBo18hV1THskDOAkdZeayOdddY7AE6giMJRURDGyk6WTVvVHWUInEMeGCOUMWPdtumneXQ8yaXS2lqKcdWbujdN3zNCZpNh3dn1vjPaAvj/LxAF8KtdrYwlBFHQ4FzXW2md8957bwA8AEVQxNHRdGgRPV9uOiWNMYzhSDClLcXIWIvAJyEbJyyNQ4zJvmmbXkaCTotklKGrNW462XVymEYAsNw0znmMEAB4//+YvPcAQDglVdthsN5ZKXUvrXROe28AHAAGiAJaRGEaiVLai/s1IR5j8A5ESK313gNgJLUVAVXWxWFwuapf3W4rqTul963aVX0YBgh5zkNGGAsYIUhpq7TxgDx4AO/hn1qEfv70cFfWVdVo7Yx1GiHrvPMACEKGk5AjIMraXhlM8MmiUNbebSpGSRxypRR4sN4zSlPBL1f7qlM/1o05EyHDCLyFLIsIRh4hrUzXKUSodsha8N5ThBhjdSfrrkeAEQK63ZdGawTeebAeQoYRwsb7iJNZHtfSna9K7ZzgbDHOQh7st1URR0kUWOcDipUyVWektp2WxvogCJxxCBynRAQ0EdwYu616bTyAt9YoZXjATh4sHkzH1lpnXafU9XLNkN+1CgChCQeESK+8A0cICjkfF4XgpJOykeZ2V2vr8oSD94SQcZ5ZaxmlBMOu6spOe0A8YM5aY4yyNhahd04ZQxBYa3lAnbV1b6VxAAjAA7h/9uz0X33yQZrEXW/rpn11cbUpS+vsd+f3nbSUIGKcR8iHjEaR4DwSQoQBud31l+tdGNDj+aBuO2t8EnKl9Lpq6k6HARMhT6LEeu+M9M4g5BajzFmnrQsodt5ZzwgizillNIAFwADu/ZMHf/FnnxwfnmIaOMAoENPDS49Aaot+83efffUNmRaR9cAYLbLBeDDM08QAXG3KbdWeLEaTYbYt26puCcbO+bLtO2UQoCJLGCPeG4KAUqAYUYICQjqptTFZHDJKvfMIQS0NAjzKkqbvZ0X2H//Nn784fUFwQAB1bTkeTn/2839elbtf/MkvX75+/fKHl9R6jBAyxnmEAs6kMm+u73d18+hoEotgvavKqkOArQNpABAJGfPglFZYI+ccEJyETBnYlH3AbBLHiDilkUeYMrar2q63HzwcfPTi8d/+9uu/+NOPP3nvRa+J1Kqut7v9/upumV28dd599tnvvj17CYApctZogxlzCG7Wu8vlVhoZMuasNoZkcdhULSBAhHIutDG9VMZ6bSQCjDESmGiDEAnihHinB1mUxVHVtJQSgqHteuLtNA+9Uz95OP8XP/1gOCiqrlebylrdqU45uHj3Awn4DxeX55eXCAXUecSCwGFyv6lapQmhaZyD07I3SQh365JgHAS0Vt4r1TRKWwPgvXcAuog4WFX1Mo5jwfCuMs6ZJA6KLFiud+vNZjHOnh0mzx9OXl6s33tw9PTkgXMupCZLw13VIADktJay6tp9VYch9Z2hJAiMtk2jAfxikKZxyBhhLLAOrXf7suq1QyJEw0HinU8F3+6bqusR+CwKBlm4rfowwM7IXvmAsjQK7+/vszQUDBVplEXhfJx22hdR+NHjw4x5B6AlmLYdxMLZbL1dSc773lRNE4ckDhntFOxKmSV8XGRZEkUifHR4FIe8aup3t3eJCLdNhxGaFPHzR/O3V7eyq63Bi0kxGqRNK0POwyAglHz9/S2At9bmqVC9LBIxiLkydnm/N3n8YBA9mo9ms9nN3V6wOIkAdTs2COsujAO+69eMkZBxHgSk7nWRJgezcSzEMB/+yce/PD08ypJoNh4N86HRWjCfRGK9rya5OBiljNHRMB/lsTSGYkgFH2RCab3cVhTDfl/OJtn7z46VcVIbSmkWC0Dog5PxL59MDw6OaJA7tZ+Oc6n6fdN3htZ9d7O+00YZ43ttCAAq0vTpo+Mkik8fPV6MxqA7hiES8WIyOVwszs8vjWpHRXq12ueJ0A5HYdC2DSNYBAGn2Drb1F0k+Hyah5wN0sgD7pSVxjWdXu0qCujf/+Kjn3/yL7WyvluLAHdtIy2qLW5Ut9qtaimd9yIMemMJAFHG5En88MFhFAbbzb2STchYFidRiPKQOt2fvX77YDKYD/PvL+6VddbZrpMIgQfsEYSMpYkIRYAxIQiMg7LptVJ5IqKQE0Lud/vlrv/pBx+NxgdvvnsZprNo8URpA773SJZSSWXqrg8DipAnANhaQzFdTEfeKAQ2iYIiS0bFwHdtQPk0Z3Xb3d5vf3I8apX2CDnvlbHa2HXZYELA+12r6rbX2milpJSzcX4wHYwHRZqmeTFI4ujs8vr/fPopNl2v2ul8ymi0uf72cnl+VyvOyJvLOyDUGUcxIgAUAKq6yUSwmAz7vguxP5qPUs6ODg8enzx/dHJ6/GD26RdfAMHWmovlXjvo+45iEnKWhLyV0nmktfXOtr2cDLIH01zESWfoatt0UgJAkcZ32/L786vZdPSTw8H+7s3nr7/7z//t0710xxOx3deJYEqpkAcEAcaAHJiq7saDfD6fF/lQBEGI5GySjfJwMsyLLP37P3z1q//9OyDkvmwB/HiYxUnKRcIoPp4XUSS6Xq+3VSzE6cPF/a7fNVop55TKkyRNU9Ur633ZdJM8HxTDb25W//3z7795fXu8GA4Stlrvu7a/uFsPi5QgIAgAAe20vLi6Gw8Gv/jk5yLOuUiRQ9aa3Xr35dcv/+dvP397c9sYyxidjgY0EGmaJXGEMdXaLTcNpej0cLyYZKNhYQ21yoQh92B3243Sxqn+xz3DKLqvujf3FafQdK21RhB7fr0C6+92lTLuRyCEEaKY9FadvXmz25XvP33w5PGjrJgWs0e//+LsL//qL2tvNIJt1U5GQx6KRAjdNUb2Uciquh8lCSGYB4RS5i05nWQPZqObze7V27evL65u1yvnYDIa85Bb7xLBD0bhYhQ3yra9wd4yp7f7elX1+0YRBJQSHMf8cDagHvdSvbm++uKbs4Kb54dCgP3sy6/+cPZyPJusy8ZYlyZpLqiR3XK5LPdlluWjPD4aCkzY1f3OOMRp8Phgut03v//mrG5aoGkcxdYrZFQQBIjQx0fTj14cr7eb1b7dlc3NaousavveI3wwGRKKKAJHEExHWSzY4XSYRuLV9f3f/+PLH95dADT3q/uX57eesn1Z5VlKCKl25XK7bXtddZ0xRhk3HyYiCBtlPUAiwnmRK2VudjupdShiTmlTV3lIDxczGophyvMsubhZV3UXhwQZ9fJyrYzPU3E4yShlNAywdVqpPuRcan0wKdIkuVnvfvUPX/3qH77CQDLBPxIheFQUOXL4u7s743SryNHBaVevJwFvFQHTIwBGsDHm3e01eBjPjq2n+/3OEvxwPvvJw4kYjDSA1tIaHfJQa1vWXcTIIA6ut+2wSJ3R1FkvQmYtEIKatlPaMorr3nZNh4BkSXS8GCupNlXtMWRJdr9cEnAOIU4RJTiKIu/JDzebvtoCJUUaa41WlXNacxLNR6N5ER4dLg7HRd12lkXcSa06DK7t+7KVlFBvVS4CbR0GIIQRShijqGp7gsnJfKiNvduWy/W+7iUALIbFv/3XP4tC1nS985DEMSMEWdlKBd62zX6U5xp4WW6dd4DwvirbrkcIizjBqn36YPL05IBTut63joSjPGyrjZbqyfFkte93+5IT6KVsm7bXPo0DwjgZ5fGwiMuy8d7zgG7LNgqDYRZraZVxu7q+uttxirKIWmMdIqcnD0VAZ5mgBB0tFs+ePBPM1U0DLFxvtvt9ZaxZbbaci9li3mtTS4vCOIjiB/NxFoJW/aBIBml4s6oZaK87ZHXbq/tSPZyl19uWnB7PoyDY7WtGCWOkUyYO+KODibJ2V/feQ9nUsYgHmei6drmuT0+O4iQf5mmR5cPBwHmz3mw9YcbCxeWNUjpgWGtdtv1kPBkOR0DpsEgfHx9EAWqbilCUxoEI6LvL1TALOFK7XXm37aT1da+zWOCykY3UQcCk1lJrzuiubgHM44PBj28pAPRSB4w9PppxCq/fvCXYYRGn41mcjzVQ4GEcxW3bUUIowVzEoQids2ffv1Z9fzSf8SCIAiqbSsrOWMuxL+v+eDEaRBQ5px1YjwgGjAijFJd1c7/da2sxQC9NyNggSwIWAMLOOwIAgG7W68VkcHwwn46yi6urrt5yBoeL0WxaEAx5mgBGxpiAB4GIhvlIhBkXCaOsb3qKMAL/w7vzV1fLddmMMz4aJBaYkXXbdiKKKOe99VnEBylHyBPwKOREKq21DQMWC/6zZ8fWw6vr9X7fefAIiDJqPsg+OJ0b56u2wwRNh9m+rPbljiAfkGC5LZ1H3qMwTqKAE0ySKBnmxXQ8mRUZFymPEuTk48PieFE4HHrAqt2Wde8J55RyAgBAKeUBJUmcEoJ5QJ113jnrgVLa9n0S0l7KXhnw2AFebXZ/+uGj2ShPovBmXXddXzfdm8tlkcRhKKpOAaIJ54JRY2y525zMplmaxYmYDdLh7Gg8zKcDtpiNBsNDytObq9eXd5t9rapOU0q1kZ002vqbbUum45G1FpzzHupOWuuN810v4zDgnEWc1K10HrVa1a16djw5nGZHs+EP53e7qjmczzGNjMciEPuqRB5A9de3t0ZrsDrg9GBcZHlx8vRp39wEzM/mD6Nk9P3Lr3//2efXq2ZUxNj7bdk0bX+96cKQL0YpGQ4GASPgrDGmUYpRlkZhL/VyU6YimBRp2TRKKgJ0tW8AoUeL4mSevffkBGH07PFRlBSvLu9EKDIhpFKN7I1zjFLAMMqjNIlOnr1v1Ra5+uHJszjOP/3sd3/9P/5X25k8i6SFqlUE+c2+eX1X7Vrz/GRG5pMBBuSsVVIiwNaCs8aBEwEVDPe9TKPQea+1ctayME6SOI3445PDKEpfX9yKMABAZdOLKAGjwNmj+fS9k+PxsFgcPnjx4cdJjDiRJ0enoYjfvj779uwbadx8mHXS/OOr2yeHI6P6L98st62c5CJgjDpjnDGAIM9TKKt9raIojEPuncsFizmptY+j8M3Nuuvl8n5J2Ecg5t9e7B8dTg/39d1m703/YJI4RAfZySn4+SD33hLGn773LCsiL+vpeKANfnvx7vruPkmSIwxK9usrmYqw7fuv3t5frmuCkOlb29VkUqQxp/u6lcZKaQjGSRTOhgl4u1zXCKOfnh5+/PwkLwpCeNV2d+vtm8vbJ6dPisGkk/JoMSnyJE3EaJA9Pjl68uSxSGKRBB98+BxjNy3SLBs6hzZltdxUdd06p/uuNR4Wk8HhOP307PzLN8tOGWdd2+uMY4qRL+LgbuNX+wYDMITaThvrijikAMt9983FajIagHPH89GHzx9/8f35tz+8eXpyjDFMpxMRsuOTISYho2yYJ2mSXt+v/ubXvz4+ejTIckI5DcTl7b2xtmr0b3735S8+fLRpoGm7WPDf/OHs87NzQIA8UOwDgpDRdFu21piqlc5aBwAYN31/t2meHeZZGpW9fnuz2dVfGOP+7JPnXS/bpnn+6ChJwsmwOD6YTcbz+XiEMZXS0oCloyHQ8Pr2/r/+1a/+03/4d23bVPd3b9/90PWo6bQH8up85T2cna/fXd1td2UsuNSq6R0P0FQQihwhCDql9k0fB/R4FFvnG2V6qYZ5Osn5vlH7zu6bXmn79ur+/PrmeJIyittqd35xRQkZD/I4ScCr9XaXZhkj7Oy7H/76b39dV/v3nx4tV8vlal2VbVm12ljO6Ot3F6v1yjvnnR/mcdN1+6Y3znOCp4LEnFDrXMgZAAwStii4d8aD66S/WlV5yFrljPMP56Om64o0EgFq23a1W2YBzmP+d92uWl2+ePHi9OSk7qGqm9l4sVqtL69vtdbGEyHC2/uyaTWl9Pzixsi2SKOd01VbjorEO3u9RMY5TmAsEDh/W1mirUeAlLHgPEG+U5ZigjDall0Q0IiTqjfvny7SSDjvemVu13tkzDDExFunWifLqtxWZUnA7aq2brrru5svz775/s27Rw+Oh8Xw+ubu3fmb9a76+uzsYDpBCL06v+77fjxI2l4u11trzCCkEcGcIvqjw9fGAID1kASklGbTmTBgjdTW+NODIXinnBecjrNos6sYcgkj1nrnfd8poyQjSAS0VfLs7f3F1fXnX3/99uKSE3dze4cQW91dXFye3682ZdOORoPbu3vvXJ4mGENVN23dGmud9yNBjQdDGIU/On4PsGk0I8Aw1sYBwLbpltvmySy/3bdWozAh44QtZV8rK63H4Bl4Gnije+fsF99d/pe/+e3BZASgI0biOPnuYonIp229pQiM0VebZpBdLSbDbd3Krs0gWJcNIAgpxsgjggQNuBDkj7YWGMHaI20h5ixkGGMktd1WvbJ2mIZGm+WmQuBrZa3HhJDeOOW8tCigZDYbvr2vPjt7K2U/yBJC6LZVmQhiakJsAwKvbzc36/rjFycYdN3UgyTspdZKravWOchFgAKepckwj8mPJxgAIIBZEQ0z4T0USTjJEu+h7GTV64Ax41zdm1oaqQ0lVDuPKQt46IDseq88Xe36bVWNi3QxHhzPR7lgCUPaGEEBY2Qd2pZ9q4zz7mQ+8s41bde2PUUoEiGhJIqTNMsQCwgA+XFizsNsmD4Ypd4hAzhLk/locL+tpNbOeRGwgNOy7TxCmAZCRCLgzgEPQ8b4atdyjJ4cHVrvs1hMhlnTdnXXa+e3rW2VjcMQIfzq+r7pTCS4NcY5bZ1PohiTwALmnPGAYyb+LwIqv8RNceJeAAAAAElFTkSuQmCC\n","Felis_catus":"data:image/png;base64,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\n","Orycteropus_afer_afer":"data:image/png;base64,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\n","Ovis_aries":"data:image/png;base64,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\n","Danio_rerio":"data:image/png;base64,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\n","Tarsius_syrichta":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAAAXNSR0IArs4c6QAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9wGHA46GAD8AFYAABVuSURBVFjDBcFZrOX3fRDw72/972c/99xz19k8i2fGTrzWtePabYycNIZAW6EoDxSQ4IFQgahUiT7xUvWhEuIJIVCRQIK2LG2dNAFaL7GTTOJlZjz2ePY7987c7ezLf/3tfD7o678eNr9uQ59AgYqRjFv0jVcv/a213/b9Nb91GSFr5f7w0fV6c8Oa6ta1D8ui2Pny7n9/+wviTKMGhJiaR8oFiMxUGd6fwyyiQhiHXLPb/Ntv/upbbzzVawkj5x7jfr1Bmhsk7FPeoQiPjst/8dvfw/qLTkAu/8rWg8/vOQm0uGWCM6yMqp/+O6y16zF4n3524fvDS899xUGGxERns3bz9CId7Hz+s6O9nb9+77ObD4RhsFHDDJv1NX/yyAyO9dGYZMTJGBNr45X48umzv/NPXt9oKWPHpcwr5ni3y7pnuLdOUIiAAmK9vv/mW2/9lz/6nG3pnTs7iBFjgBKA0V+al/+gdvhKcfsdOwepFT7YXa6euRKgWlA7T+tnlgdX71//+Y9++O77Px3U2qgVa8bJ2groHPbviLs79ljQX/ut3zBYra21nn/urBzeWGYH2ydWKzrJqM0wA0olFjp/kKiZz5oerVMacxT91j/6jXe//7+svOUwXWDV7jLqe3g80Ff/vXz+zdqNd5bcWUIt8ZrNaBvbNsZ8un/low9++Od/+ZP5NGt2IMZQVUgKe2TwYujuHtkZEObBW280LDbvvfuLf/P7/zUr4Xf/+VuoYRrNC4ktMz2fFaOlWs6LRyNAHDU4j0OvlvidiLXOXX7y5pXbIreeIY4D/drfvfAX//nz25/bKvfAKeXAGXDEUNLVTn75wX/46//zwaefPVbOVpIwZSXHh8d2JGwSkJUOjVaMVRRj869/7z9hz/kUQoa6HfTw0U/f/fh482Sv291myarnNXpRyxqnZFaqMpXjSfGIAeM06TxD5KdIA1gCUjkqnt859ZEnb+ovbw0pYOt0ZbEFlC933nn7v/3g+1cGMxl4MJuAU25ZoqxE1IezqwwKd+FccAnRyVzuHRonEYCLfVIUtt1A+WH553/0EaHW7wT/+He/9eSTryb+eSBYO1HZojSLrBpl5TirivnyYb1NjDNJHaczQ7729/w3X/7W3q1DCSrNLXLOIvTljavv/b+fXvvFbYGcwn6WIc9jlXadHm5F5lSPMOR8zyGsOHGcOd9j2Ux3Goj5UAtJrwePdrQubKeOTKp+/KMvPvv849aa7LU2GOlyVA9ILfFajXCtEfcXj4fD/ZuiwMy4sEbJd7/zxNnGpbNnLv/NO9dyqRDCygAyEEVlp+91erV+m3a63KeWM820Xm0wJZ0zrlFHjRYDcIRQaxxBZrXrOWlaLTQcWqpt4IPnOwQQczo9KP7v21dv3v3x1lkvqXcp5hQihhIf1a7+zXuDvQfUGRzSXBjyvX/w0mqtfenyBUe3rv/8UwlovYMvnqUXLzSjgKbTVC6UT3WVimaEkoTJ0kQ+XW1jq7DvOU44gOE+abd8UYp2mzrjsCKNOswnCDRSAjkAo0DnePg4u3Pnutd4FDVDhv3BwYMPfvD9n//8R9apZgcRB2Ad5a7fW3sR+V4q/3dJ4MkteP5iK+mSyVGeTgXDjhIAyWNukSTWmCq1UdsaY8MAxzG2xp1c7Q5nM9/3OZFGQ9zgopJFiTpdoBRhcH5INFLjISwy2L2a/6D8oPiO+ORPry6PhShxfAl7DocxmZSAsELHd/9jUU3/8Pf/+BfXd9stu7npNTo+RTDYS00FtQj5ESBDykqBgYgTxCGKnDGo2QykNaHHMY8KkQcMgcFFoYDaZhLM01SVRmsnhBMC1RssL5QxbjRCaW5OPE35HJIYjmdONKzXxNK5UrkALL1z+6M//oM/3R+JU+uQdNnqZnNwOCNKmQolsfOw8RE1TjYSFDBSr3vaojhGHiKAwSFcCukT7LCN45qWlQXA4CbztN/05jovK0epI+DSsZXUygp1WjoJYHxfbrbZcoELyZPAjAZGYdtokIhjMvvydmWUC1xrPWx3gjzNIqOrDDiGCDke4MCnmNNGaLudBJBYqRNqVBh7jFMlqkYzUEAAzHSeTaZKW0URiimqhJJL63lgJRYpYKdWeowwbAwCB80Ey1LXV1dJJKK28erUVLAeBgoQeXIL2QBqbfbEEw1XlCBVOgdsECDwESYUPAatOuaccacJ8pepNNohazEBK60rRSNggU883zs6LIwmjQYDZ6oSGWWpj0ZHQD08nMFg4krhWj2S50wqG1KLQI+MmE2d56F+h4OUKyc75FtPkX4EF7ZrJ5Nam1GdaaQ1loiFmDOnKxxQxBlEcQzWEgIMg7Um9IiRCsA1asF4jqPIdzSKfFVq6LUi61AhjGOessSv83t7NmzWMTXLCiuJeaSVodyAoWY6gbCFJIY2T2amvP2LlJzro3Tu8uNq+4nttXY/xjRdZsuZpgxzauMAxQkCio9nEohzmJYFOpjo2cI5RMczwIzSWv3Rw0W9BsVS9HqRH4dIVoOpXUyRRn4xF+12sNFljcTvd5xTOitNGFsHziBEAxQZN951PBCFdp11Qr77m8+dOAVra/X9u0edUyfCKE4Ph6JS3Y7TFtcTMkzx8QgnNex7VLmQ+16r1ey1Eymh2YqajQAxgjxfZbkX+NwLRFEIaZshBgYBVe04vHD5ld76OWfmVVEpA4Q6pSBquExZa5mrzNYJHkYR1mYxV+Rf/dMXA6Q+fu+x3/ey0aOtp16gMVsMBkpYcDCbYBKShSFnT9f73fUgbHTC2saZS92N55qNGrY6mww55h7S1tpWiCoSGKkCzBo1Twphc/fExV868cwLV6+8+yd/9fC9jxc393SV2U4D08ANjhFBGoB4zDmul8eaIEb+4RuNL6/cC3p1bMWDTwviDpOA3PvieDzGjqEKs/2ReemXmuNBblTmEx0l4XgwvnvzujNq/dRKa/PF8eORUQuwRdQIATwg4FEDSiwGKWeNpF9/569+PPNeJdhNBmOLQTVqs4HstCilWksMBqLIeQgXc40tIt+4yMAjriqv/yTPBdo9Kjw0Z9wVJa51yP5Qa8KSqMDKxiH/4sbif/7w8fW75t7eaJJt/dmffJiO7n7ll88XR0cetYbEUYAJpcQRZ8rDR1XS7V6/ddy6+M3nnm0kSSe/+Wk7xue/cv7R7uzMRiilBG7sAucZogEEiZs8tuTvvNo+uj+7dk2jekSIWYxAE+MsbW+R46X76D5587WYYGKdef+DdJKp8xfp7/3hv/32d//lyqpQ0zs3by8/u7r/xJMbVTb2uPNrMeK1LNdG2eUoh9i/9ulE5LeGe9eaTW9xb4cDno+PHRG9FcUoWEV0hKIurtc8Tv24ZckzrfL4wPKEn7yAzz7ZiJpAqU1CsAosdpsdUm/YOOKlXU0n05eesdtd1w6C+YO3V7eevvzMr5jhZ9NUjI4XAZEWHPMQjWtOVSDF6Li8vyMjz9SJKIbmJzf2aWalNNpAlEBpsR+i48r2ejiMaCFxsZBHpSEvrWJsnVq6RWaTtu23DaEEUTtZEOIT4vthRDwMntdLosf9JngKhnu3tEhn8xFSD5h6nIT5J9d1q4YiHxABRxyjNVks5iN5+74+ue1i5lyFGwiNRtI4bLkjFOYFVuBOnMdSuPWud3BcFZmBNibP9olRSFkIQ+A+ZpRMZ2KZEsKwktjzdZiEiQ+UtyN1FPtOLrGUMBmaKzeGSblDqAgCdzxz1RKfPb+OIE0Lg7GZj1OryO6h3FpzUQ2Qs1kGZQmUY6AQrNDeppMhzArbImicyTrDzFoFCM+nMEoNjm17lUklb93PiwxFoYt9HUYCWyWXc2OlF+qloNo5xJzNHKqqi0mJwBJkHQbPp1ZD1F2NgjpITb2EIM0oPi5hMMDLBUIceZFNWpQmwZOvvGFTJEpIIsRG2Cokl2gy0ocDTBzQuAmWEcI48iwHtHEiTHMlKtWMac3zlTYK1bQs7HwvXn26zD7xPOAtizLksGUcnIOiQAdH7kSTmelwkS9IkLigRZM5R+aZFzYEhOFGm4DurKo+59inNz74EMXWt6gWk6Bm51ONHPZqeCVAPMLk9Qu41vN4zJfjQkmDKCQJJcxpCz7zIw97gZ4uTciAhkzClq4GmFsWAguAEDzO3LUvWefCq2ux65/siCz3wqTe6DEeGpnXPfRr3/5GenwtG90eH+xno8kTZy7PpvdnhZw4FxgAcCwiQjvCnXV066sdejihT7UQ5txQ7Bwg7NcirDwO1gtCWmQ5LmTSwAZhvJzVkxL3v7nc38/G97RSJVkPNr76+lP+5edeufWjPwuYJavN1MbWQa3eVlVeb8GX778deLiTxGef/urTF3qtle7Da5bV6L41JQevSd1ju+r742GlkOlt+0Qh8vhQFaUwgIjPWSD7vW5WKoxNM/aNIzzAoLUWirCAaZg9ustj1Nq6uLJ5vtv1Q/Hw9Okni91PgtAptbSIMN5ljKnicRT1qsKNlpPbd6ZxoF88Xev0Tx7cfXBn8MUsR0KQ1RbLB1pFjnA7Y7bRSp59fYW2YsdDjELK6lggHQAfLee+F3gEdde28HC/rEItpqUVWC2TRj2CjlN5neRqvu+ZrM7o6MYPDE0eHx9s9OplFTYalUUhdi0v6sY0zm4/aKzSVCiNDI8TG/WK1JsVmjTRbKE6jagdqBzzF58+++JXLomS48in22t0dZMCtoyyRsenQeN4gaQ2UeB66z2gtrHSsohbiydpXuhSqtLXOzo/IFR0N2qIu8X8qNuuVbqBTcpDefHl17fPbm6ejM49/0K/W1/OhMFAGEU8mhzNGLEr65aGkiMDVkfk9K+/8NrXnjqz3Plk94P/QTsrRCtTFjoIWLYUk4kNE9Veac7S6mcfX281ah7zohCtb3YPdwfICAZoNBccwGIo56LUw0pAmtlU5vVQeyZn1QAVO+nujYPpqLax5dsSGx2H3DrIx7vt9dab3/lnNz+/utKr99prPtOtOqrGNz99+/renczUavT8udbxYRZHKIxJqVQpEPXc3s7M98GFNFfOEcBV0Gli4jo7u1Pk0nYdjXMd1lsABZQir9SJc+tVbo8PByGmbOjMlb948PHxciGCB0dT4c/nqh4SYbUodT9IlZMrl9te0AhaAWj58MMfXrkyk2x148V6wKbk2XN4c7NviENIeczNZs7HlMckT2XoU47BWUmtoj6XQNrd5M6uQEhh6jGUYaSiiPvcx5ArJdO5EsJwrie7Mxwk4HkH+3Ip2LTU/TX/1Fartb492b8Trm02Ny8QDPnjR9nhTEXrX33ztdOXVjwnjvYekafOeWVVzMZuvkQ+B49h5qk8s7V6YIxZTAVB1lgzGldxxBMPev34YKArBbdvZpORk8LUEyKkKzKVFdIRxij14ySsRRbj40VZODxOzSu/vF7XM7EYy2zcWm+qZS4rwpvdoN9KYowIl7NscHCUrG6Sb7zcVc6Nx2W9CYwy5tH5kh8eKiB2OtBaWOwspopTYkWBrcbEbm+vYUJaK42j4dxZPJ1XRhljKGWccIYJQV4ktFsKPV64nd2i0609c7GBJUhpKPWg1GU+bV+4XIx3R3duVEu1HBzOhvPm1mY1v0++/fXNOGRBTPv9trUVZ35aiM5qS5W23daMEqedrhxhYDTRVjqgoLJO04/CsNYkQs5X+0QLgwnWyihh8kwNDtLRIN29n40mBnz8wiv9FjMYMFDfGpwuMiUWcn5v/nhv/GA4ny6C9mb71NrO5x8+yvbJa5cxJ0EuhK6U1C4J7GonHE/yiKNuPeTUQ4zUGwRZjAA4wStNVhYcxKwRmX5/BRHGTbG+GWHEPI9IXZWFznNdVWCQw54Na/DSS6dYpR3CZaWK+UyVBaOQHyyKNKpvXjrx0tNBXd382fu3D8fRKqLCMFnlspDG84HQWWqTwGxvNLPZQuZ52Gy0vAaiAAbq9fDhXulnqr+SUFrTFjPmnz7Rk2nwePdRUIuxAWbBioxipoTGCgLjn7i0HXoYIk8JlIuFKWSShF7YDvr1/rOvWVmM73306N7eF5/Mz7x8jtaBZlUGCDHueR7yPB5FfHg4oZSnRWWFAz8PKVS56ayuFZXprYftesCixPeQMDhuxpgSbE18+sXDO3edzF25IKFz3ChtneFPPX/xmRdPze8/9GlQlsJqqxk1GOWitOPj2e1iPl8+/GKE+fqv/uZzoV8O5DH6nb+fcIwvnD9hjEnn49An3K9VGkSxJM4rlSgLnQQ0qUWs1pnMq7IsTvQbi3m5vt0NGJEG+T5mGBOGLPbAcZVNHGLK2rAWaGGgBCpLWRTz6TLNpwgDQ6pGsVhOjDQkXGuuPdFaDYvlwXBxOOeC2sx1T4aqLIXIESCDvGWaBnGT86hR4xTFlAZh4oMm3HfthM8XOOLGND1TVYfHSz8OZxNnnQq4n5WLtfWNWrMjskVVFNOD0uc+lJWoltoypR0iHsGWICOEUbgVr6231/pRoNPZnT2ZzrWJ4pDGTaSVmc3GphKZIH5sfEaYmVjsyYrSGiIM+7X6YrRAJIybQVxPDvYeBwRV0hFHssxYq9J0tsigv77iB/7g4QODKEXAMM/nU5EuVCURxggjjElVFUAlorheY41VpfSj3cfjgUa03mPhUooF+t43g1qNI2bLwhkgiNmkFqgSbW11MIVikbY7CY06lPg88IlznV5TVtpoZ7R2CCPshkdjnxrKnHO2VOb4YNxdaRWzJUeeAVsuBafcJyD1EoMBo1VZYKwwNkq6lIAKEh5y5nlGZD5z5NI2s1oHHsaEAbJCE6Gd1BaTiljtONWV9cIoDPyiFGWeIl0u00I6ahA7PDpyZcVw5mTOGc0qO53m1nmqSHVWFKocDTMeokY98H0Pc7/KUmsUZZxxZo30O9GtQ7Oy1aIkNLpyRjnPUF4PGGelLj1uwoBWMxPXYo8Ygq1FXhKGWboo8lyURaPd3x/OqEc8FubLNAhJhC2286pYhI3W8WDshzG1ELcSlyEBRBdlo5cgVy6KTC4nWhGQotEKGGixyFCN7g2FQdjjARippLHYrKz0aBKjLE1R6cBHk7neXgsoyxtRXRHHmU8JtDqrmAXTpSTLOQrqxweHnXYDAXKpXkymldAE48F4WE/4eLyw2NPz4WJcMt8ApkiURb5wllapKaVYadI0zwnSU0UfXhW8hpOVOPTpdFppqxjzomZEi3FhtEMKhEEbmzEDYJRhSgFhg53IK8Cu3QxWu95oWLZjU1gmy2k6zxlBcdKgnBbKUCotYOWgXW8V8+HKZmu2LIhDQhUSIF9K31Meswtpr902NkMEVc6HiEC9ThfLzCLpEPNC4ke1/w8Aj426lFqtJwAAAABJRU5ErkJggg==\n","Monodelphis_domestica":"data:image/png;base64,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\n","Ciona_intestinalis":"data:image/png;base64,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\n","Macaca_fascicularis":"data:image/png;base64,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\n","Mustela_putorius_furo":"data:image/png;base64,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\n","Rattus_norvegicus":"data:image/png;base64,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\n","Heterocephalus_glaber":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAKQ2lDQ1BJQ0MgcHJvZmlsZQAAeNqdU3dYk/cWPt/3ZQ9WQtjwsZdsgQAiI6wIyBBZohCSAGGEEBJAxYWIClYUFRGcSFXEgtUKSJ2I4qAouGdBiohai1VcOO4f3Ke1fXrv7e371/u855zn/M55zw+AERImkeaiagA5UoU8Otgfj09IxMm9gAIVSOAEIBDmy8JnBcUAAPADeXh+dLA//AGvbwACAHDVLiQSx+H/g7pQJlcAIJEA4CIS5wsBkFIAyC5UyBQAyBgAsFOzZAoAlAAAbHl8QiIAqg0A7PRJPgUA2KmT3BcA2KIcqQgAjQEAmShHJAJAuwBgVYFSLALAwgCgrEAiLgTArgGAWbYyRwKAvQUAdo5YkA9AYACAmUIszAAgOAIAQx4TzQMgTAOgMNK/4KlfcIW4SAEAwMuVzZdL0jMUuJXQGnfy8ODiIeLCbLFCYRcpEGYJ5CKcl5sjE0jnA0zODAAAGvnRwf44P5Dn5uTh5mbnbO/0xaL+a/BvIj4h8d/+vIwCBAAQTs/v2l/l5dYDcMcBsHW/a6lbANpWAGjf+V0z2wmgWgrQevmLeTj8QB6eoVDIPB0cCgsL7SViob0w44s+/zPhb+CLfvb8QB7+23rwAHGaQJmtwKOD/XFhbnauUo7nywRCMW735yP+x4V//Y4p0eI0sVwsFYrxWIm4UCJNx3m5UpFEIcmV4hLpfzLxH5b9CZN3DQCshk/ATrYHtctswH7uAQKLDljSdgBAfvMtjBoLkQAQZzQyefcAAJO/+Y9AKwEAzZek4wAAvOgYXKiUF0zGCAAARKCBKrBBBwzBFKzADpzBHbzAFwJhBkRADCTAPBBCBuSAHAqhGJZBGVTAOtgEtbADGqARmuEQtMExOA3n4BJcgetwFwZgGJ7CGLyGCQRByAgTYSE6iBFijtgizggXmY4EImFINJKApCDpiBRRIsXIcqQCqUJqkV1II/ItchQ5jVxA+pDbyCAyivyKvEcxlIGyUQPUAnVAuagfGorGoHPRdDQPXYCWomvRGrQePYC2oqfRS+h1dAB9io5jgNExDmaM2WFcjIdFYIlYGibHFmPlWDVWjzVjHVg3dhUbwJ5h7wgkAouAE+wIXoQQwmyCkJBHWExYQ6gl7CO0EroIVwmDhDHCJyKTqE+0JXoS+cR4YjqxkFhGrCbuIR4hniVeJw4TX5NIJA7JkuROCiElkDJJC0lrSNtILaRTpD7SEGmcTCbrkG3J3uQIsoCsIJeRt5APkE+S+8nD5LcUOsWI4kwJoiRSpJQSSjVlP+UEpZ8yQpmgqlHNqZ7UCKqIOp9aSW2gdlAvU4epEzR1miXNmxZDy6Qto9XQmmlnafdoL+l0ugndgx5Fl9CX0mvoB+nn6YP0dwwNhg2Dx0hiKBlrGXsZpxi3GS+ZTKYF05eZyFQw1zIbmWeYD5hvVVgq9ip8FZHKEpU6lVaVfpXnqlRVc1U/1XmqC1SrVQ+rXlZ9pkZVs1DjqQnUFqvVqR1Vu6k2rs5Sd1KPUM9RX6O+X/2C+mMNsoaFRqCGSKNUY7fGGY0hFsYyZfFYQtZyVgPrLGuYTWJbsvnsTHYF+xt2L3tMU0NzqmasZpFmneZxzQEOxrHg8DnZnErOIc4NznstAy0/LbHWaq1mrX6tN9p62r7aYu1y7Rbt69rvdXCdQJ0snfU6bTr3dQm6NrpRuoW623XP6j7TY+t56Qn1yvUO6d3RR/Vt9KP1F+rv1u/RHzcwNAg2kBlsMThj8MyQY+hrmGm40fCE4agRy2i6kcRoo9FJoye4Ju6HZ+M1eBc+ZqxvHGKsNN5l3Gs8YWJpMtukxKTF5L4pzZRrmma60bTTdMzMyCzcrNisyeyOOdWca55hvtm82/yNhaVFnMVKizaLx5balnzLBZZNlvesmFY+VnlW9VbXrEnWXOss623WV2xQG1ebDJs6m8u2qK2brcR2m23fFOIUjynSKfVTbtox7PzsCuya7AbtOfZh9iX2bfbPHcwcEh3WO3Q7fHJ0dcx2bHC866ThNMOpxKnD6VdnG2ehc53zNRemS5DLEpd2lxdTbaeKp26fesuV5RruutK10/Wjm7ub3K3ZbdTdzD3Ffav7TS6bG8ldwz3vQfTw91jicczjnaebp8LzkOcvXnZeWV77vR5Ps5wmntYwbcjbxFvgvct7YDo+PWX6zukDPsY+Ap96n4e+pr4i3z2+I37Wfpl+B/ye+zv6y/2P+L/hefIW8U4FYAHBAeUBvYEagbMDawMfBJkEpQc1BY0FuwYvDD4VQgwJDVkfcpNvwBfyG/ljM9xnLJrRFcoInRVaG/owzCZMHtYRjobPCN8Qfm+m+UzpzLYIiOBHbIi4H2kZmRf5fRQpKjKqLupRtFN0cXT3LNas5Fn7Z72O8Y+pjLk722q2cnZnrGpsUmxj7Ju4gLiquIF4h/hF8ZcSdBMkCe2J5MTYxD2J43MC52yaM5zkmlSWdGOu5dyiuRfm6c7Lnnc8WTVZkHw4hZgSl7I/5YMgQlAvGE/lp25NHRPyhJuFT0W+oo2iUbG3uEo8kuadVpX2ON07fUP6aIZPRnXGMwlPUit5kRmSuSPzTVZE1t6sz9lx2S05lJyUnKNSDWmWtCvXMLcot09mKyuTDeR55m3KG5OHyvfkI/lz89sVbIVM0aO0Uq5QDhZML6greFsYW3i4SL1IWtQz32b+6vkjC4IWfL2QsFC4sLPYuHhZ8eAiv0W7FiOLUxd3LjFdUrpkeGnw0n3LaMuylv1Q4lhSVfJqedzyjlKD0qWlQyuCVzSVqZTJy26u9Fq5YxVhlWRV72qX1VtWfyoXlV+scKyorviwRrjm4ldOX9V89Xlt2treSrfK7etI66Trbqz3Wb+vSr1qQdXQhvANrRvxjeUbX21K3nShemr1js20zcrNAzVhNe1bzLas2/KhNqP2ep1/XctW/a2rt77ZJtrWv913e/MOgx0VO97vlOy8tSt4V2u9RX31btLugt2PGmIbur/mft24R3dPxZ6Pe6V7B/ZF7+tqdG9s3K+/v7IJbVI2jR5IOnDlm4Bv2pvtmne1cFoqDsJB5cEn36Z8e+NQ6KHOw9zDzd+Zf7f1COtIeSvSOr91rC2jbaA9ob3v6IyjnR1eHUe+t/9+7zHjY3XHNY9XnqCdKD3x+eSCk+OnZKeenU4/PdSZ3Hn3TPyZa11RXb1nQ8+ePxd07ky3X/fJ897nj13wvHD0Ivdi2yW3S609rj1HfnD94UivW2/rZffL7Vc8rnT0Tes70e/Tf/pqwNVz1/jXLl2feb3vxuwbt24m3Ry4Jbr1+Hb27Rd3Cu5M3F16j3iv/L7a/eoH+g/qf7T+sWXAbeD4YMBgz8NZD+8OCYee/pT/04fh0kfMR9UjRiONj50fHxsNGr3yZM6T4aeypxPPyn5W/3nrc6vn3/3i+0vPWPzY8Av5i8+/rnmp83Lvq6mvOscjxx+8znk98ab8rc7bfe+477rfx70fmSj8QP5Q89H6Y8en0E/3Pud8/vwv94Tz+4A5JREAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfcCx4PFCx5FJvCAAAACXRFWHRDb21tZW50ACpSkUTQAAAS0ElEQVRYw015Wc8lR3JdRORSy62697vf/fZudjebzWZzGYrD8QxFSdCDhYEAAwYkYWCMHrQAfvAP9IMxEmzBAmFDNEbCDDmguPfe/W13qzW3CD3cJuR6KWRWViIz4iTOiZN4760PERARmEWAAQKRBkRgBCCBxMwAQqQQAFAEFSGASEyJiLQiEBYQFGBmUkpACQghAmDihACIKAKAoIiEE6AgIjODiAggETMDgtYKADWigIgAICHs3gQimAQQBYARWUSYmYhAgFAQUBAIGQCYAREQCVg0aWZmjEAECCwiIEgICCCCiAIsBEgoLABApIABQCOJIMeUYvQaAAABEBB2D8qrFYIwIAHirinwagjuvhIioLDCJEACSilAFEYAFuaEuxmFBQlwNy0gsiQQAWaFhIACPPQr4UTA1ugHd25pEUFEEGBhRAQAkV0fIpJg2jWI1K4LAVkYAIhIRHRmNNLYDylFjoljBEkiQqSUIgFMIQnv4rTbjyhCQCAQhagU3n/j6PbNUxXhtZPTn/3kP2hEJKIY46sAgRARgKTEhAggwrxbzS4wDIyIhJRSSsxxvVQKSaAqJwdnR/PZVCECSF3Xxhittfdxu21j8DExcwLAqp7s781iGITT67de++in71ZlHl0oda4F9S4kux0jCjMwMwAqUoiUWF6lT4SZkQgBAHD0rh/GoihvHs7v3Dy5d/fenVu3jw4ODg8OskyTVoQYQkCksqyCCwBASiFhjMl7PylsZjGG0bs+06gInU9u8CEmDQCvAPsKeSqlJAJG46vDhYiEwIlQFKkYYBi6MtcP3nnz49//6L3Xb+wVeV5UO5yR7zhJEkGlRucQUbpWmww1Rcdlrhf1NETbdsPooa5qLaprV8ByOD9ouO/B4723PhARIhIBEd5ljUUUEQAS4e4YIggpGPseRe69fvuPPv7wnft36zLLJAUX+yEqa0xOeaY1mhCCsZYIFZHFAk3GiggkukaBTOcHeXXYueSHPtM0qWy7XqXBn5ycNG7QOyCnlBAJEZgTkSIQ5kSIIsjCChGE18vmxsnef/r5xx988MFiOoOUFNI4NL3vskk1mdYCwWSFzfaVGyQ4iSMI6zJTtkJjjdVxKLp2tdysbIh7i6MyK65fvGRvTo6Pnz56/N3D727dvo1v3P+9HUSISGuVUkgpESEzIyKDKEXE3G03r9+69dd/+Yv3377Lggo0CgUXVpurLM8OD89MZhm8znIyuR9a8QOx1yQmm4GaMOksyzKFHMckbttuvXdHi4VNePnyMi+KxeHi66++9s6r+f7xDtEAkFLUGokoxECEu7PKIEPXvHv//n/9m7/60YN3JSoAHZL4wD4mY22WldpWWVHJ7hdhpVRWFEVZAarAUWcWtEKtFIKwkLbTvRogdJtNnVWVLdabjSny6WzWrNdqvjhCJEQCQACJKdjMElFMkUgJpK7ZvP/uO3/1y7988/W7mhBJlEFtKJ/YvLJZrlCjtrqeTVALQCy00ppIGdImASGmkDwopZQWYUSVhJCkyKwWtb3e1uUEELZtW00qAtQICgQFUBECKYk0dmNdFwTovYR28+Fbd//b3/7N2ekNpTSSGGIQLWwEQNhjZquyMKiNsRNdo8Tkt8M4JnYJwFortnAhGmUykwMoSZGS67cdRb9XVVyE681yMZ/3z7t2vZ3s79MrQhARAU6CCIA4jmOZF67v7tw4/eUv/uLG6XFK3o8DEpq8RJ0J6sQYGUgUeLBolIB4n7xnQKU0R+bEEhkRrc1ymxulSSmB5IcVJQcprS6vCCikMIShrLJhbEyGar5/sjtozEw7biBm5hT80f7sl7/4zz/58H1FpAjKLMszmxBj5JSiYCItVkhF1ghlbvzYLpdXRVFlWZ5lOScRBlIYok+JEckY64fmybe/00RlXgaXunaczCZCklf59fraKFDz/ZNXlAmv2BCIBjdoiX/7X37xx3/wodVoCKxW1qoYvHcjpIQcMwuZFZ0iASNJXmRIhKREaBx9nhfWFimxSARJ3nkiSjFxCCSgdTa6ZPOy2ttTmWFFtswJ5PzJU01ISJTSjssEhRlUYLh56+wPf/rBvC5dHJ1zzE75MbFoo3NbWGuVZgEHFpAMkOncWFTzOp+eP31GRONwnRel0UbEKaO0tnlZtO0AjFV16kNQRjC3bAwiINpt38/nR5vnlwQYASNgAkgCSbSkFCHK/fvv7p2eJlSb5ba5vuahpehzZBUGGRsMXRyaYbuRFCT2Wrwm9Ikj6iyf/PZfPvvVf/8f1xeXyhgz2WOd53lhFRlDghjJeCS0Ruc5c5Lkc6v7dhjGeHx6plmCREAEQmCEJMKRM0V337jngNxq6/vOStCeMUWVF0YTYUxDEyIDKcw0KQh9n01yUMQIdlLo3O7t72lNAkkVUxgghBFkIBQXXUxeZyqlCMJG6+haiJTpLISYWat3jCHCOyXGDCnGs8ODs6PFuN3GsSX2KJEArLaFVYLJ+5AYrS2zomJltFWJUj/0OVo1SVzRT//4Z67tfT9u15uDalLm2eg6RhSWGDyShRCb7bawxhQZoPIhVlUR3cCRaacuAJCZkVSRTSTFk8O9k8UeuhDHCEKEmtAQqRg5RtQqn84WqKwA5kWZmBiVNmp7/TR118aizknlqpyWxpqubUjYGi0pcohKobEaUvJd225WkaOAiiEog94PIqKZ+d+lGZDVRV1Vt26eTAsD3mV2SjLJkBUCiHVRJVGTSY6m0OQTMKIOKQnIbJKl9nz99OuZoNismOSFKcKQNm3bt42BxCl03RBAJVTinG+7VOUhuhSipKAjJYmCSu+UqDAjYUxpvVnPCnV0sACOmqjzCsEUhSWjkAwlJKWCQBySsmRzO4aglDZZCeKqInPNun3xYnZ8nARanwyZIjcpDt4PfnTBuwAKkhQgyY/RO+dcGqJRktyIIABIO8nMIiCgFAbuYhz2p9PM5MzKxSAsPmKPNqiSPbuhJaWNrZSpRGxMSQDEU/TqunOQlykO49UTHYboR3ZrcJs0DlpbQB1cjKPj6OOw8t1l6lvfjq5rZRxocDoKGa2Z+QeRCiIsHE+PTt+6/5Y2pu88STQhdavVAEKJJomzmoIbi8WhnZRKkTG660bPY1Vaa+fM4ziu1ssVlHtqemiIV+tr51LMJsKUgpAysR3CZrW9uNifH6kEPsYgHFU2jONkttBKqR/qCmIRBfT2gweLxSIxA2FhyD2/GC63+WzmxiBESHZMwsXEVBVpE91IiWJKIaVysu9942lrrfXel6RRwTBsAajZ+uVV60Y5PDmlxEPbu2agJBoQRQQxxDS4cRwHbYwxxsQYnXPeewnp7ORUhCOLySxzEJbzp8/ab747Ojq92myut5fv/8l/rLOMEOIwuL5VpIs864Z2jLqw1o2DAYmJiTDGGEKcTKqhH7q+KbKpGzsE6fp+9KMI910/Oq+1DjFZY/ph0OM4eu+VUlmWZTYr5vOT45MQUuAgoJWx+Wye5dXgRVDZvLw5uRM8bDbbwfe1IufGILKwC4HgE2eQcUo+uolSKfE49ApMlU2XsfVjJ8En8PXsYFecB+bQd84NVmVeQlXXKUTN/98TI2uqrdYGwuhc53qFqYL84O6D/TwK2GzUxgxbHtL6gju9IlKTUlnj/ai0UohDO+TVEaQGxJFfp34QXal8AmFsr899wvqQy+kkYKoXh5RlYxyHri00isRJrcwO1ACAiDFGF9L55fm3X/3r/eNKxiCeh2Hrtnr0wHaoJwcajKmM8m138UhlUz8pQVGtdb/ZZloFN/oQs0mRUCbgx+bK9WQmczR6u7pKrvfBXLw8PzreH8cwRhBUYRxTiP22t2WmlIk+qKre24FaRJhTpuBkv75z44S9x5TS0A/Li9Xl43qfTo8minqx8fTOSbNcttut1spHIYbUNTxs28tnw/Za54oU13XdjeJFz/bql08effHZ54Sq6ZzRebNqnj5+PpstUNlt0+faxOC1NYvDxfMXz2kXoRjjOI4gcvPWa57lm4dPmNF1veu2ShrwF5XB4+NSZUvUzcHZHpZ63ayFoxH2bRvGXqLLNM7qIkWHjJKUj2yLTHN88u23Tdt5L03ThdF9+o//9/mTZ/V01vdj9JGFBSTLsu12e7281kiUUgKA6XR6enaaV+Unv/7Nt19+89d//mensz1EGodr9mv2UlSzKIMGzjM1+DgkKabTTTP60duMdF4lm2dFbooiL+umHWMKeRq7ZRP6TqI8uXrRNO7Jd4/XFxc//v2Povi266wybmQUMcaen5+nGEmYtdbz+byuqrwsz6+WL65X3z59+fmX37aj8zGJUirPN21wnG268cnD7wSgmh8MXlZNDwgmM0mpbUgN2IFyVlk7uGa71cm7zfmzx99tm+b8av3Nw6fff//o2dNHh4fz2by6vHq5XF0ipc16BQij6/uhm+8v1GJxVBRFCKHIsnbbLq+W03oym9UAyWg1n01sMdXVMRt9/NqN6Pz5y+en771PUn79688BEJVG1ACESud5qbTyoe/atYaQhvXVs0edj989X37yT79t2xDdMJ1Wh2ens739oe/LvAAAP/TTvYlLoyAsjk7VbLY/9P3B/n6W51eXFwowcbSFOb86f/z82dnJaVXNiew4dPuL6eF+vVlfVovDw9nhp//7k65tyrxmFiQYXQsQomvb1UUY+ma7OX956SOPov7+f35ydb1VSitIR0cHZzdeI0WcmIg2m001mYhw5DCbz0cXlc2KLMv29/eXy2WzbVIMSusA3HrXjWPTusODs5R4vboOYbh18/jZ04c8xntvvPHFF188evi9skU79Mv15dX1i+vr84sXz1aXL5fXyxcXywjm9Na9T3/92W9++0U1mXCMk0l+dHxUz6Zd3y1Xy67vZ/M9q81ytSyric2KlFDV9d7R0VHf96vVSoQVEWjV9b0xVpNZb5pt23fdsG3bJ+fP77x5l4O7fvby5p07yZq/+9U/PLu4uNysrpZXL16er1Zt14/X67aoF3uHp6e37r24XP/dP/xjOakNKRTeP1xkZdZs1xdXVyy8OFgk5uXlUkCU0YmhqudqsTjaEX7btimlzNqdR6USWlZM6fnlOTNerFZPr6/uvP3m2f7ew999VS72j+/ff/z9iyGMk4PamGy1GkKg49M7tp4f3Xx9cfKazatf/f3/enm5LMsSY5zP6rwqt23bbhul1Xx/f7tt1ptNlZVucNrqopxok6vDo5Om2YpIjAEAjTUhBBAxSoGIILJIUVXbfmh9JNQ/fu+9py8u/99nvyOTK6UXh4dv3n87K+vvHj4aBre3t3AeiFSz2fzzP3/67Mn3VVUmH7SSspr46Pu+z022mB9s140A3nzt1vp6s1wtF4eLxeGx0oXu+84YE2MQESKMzCklImIURkmBsyzbNk2WZW3jPv2n38yz7PLy8quvv/zk08+r6eR4cVZNrhrXtd4pxOvVVbcdXjx7yOL7YWstKQYR1ta2XeucK/OiLifLq2ut9O3bty8vLj7/7PM37t6ZzffLqlIqw8XByWQycc6FEPCVUQpEpJQCAO+91rqcTDilpmmmdT1stsaYoswSR+9HCUlpYwqLzPvV7O037g1NO4x9TM77IXEsyCpUiBBTMsZUZenGvu374+MjSfzo4UOliz/4oz988PYDpS2AVmVZGWNSSjunUSn1A6/xzgbWWhutm6bJMpsSDJ6ToCkmCWnTDC7yGNK27w8WBz/54MdnJydGozaGiBiEGSSxd955DwgpcdO2q2bDijo3XJ5fFGTe/tF7b73z7uHBSQri+uHfXdid3c/MOw25sx92q+z7HhG1NsMwWquUViGOdV0C1NtNKyDTelJXBbEfuzUpVBrbtkWlDg6PN+vrZbMipJyy0bmxdzor2MfV1fXZdPHg7R/dvP0aGcusy6wOo1d1Ndt0rVFqV5/Rzub8gf+LomAW7721NoQgIgAswt71MbiqKvOs0FoRytXLZwb4vXffefz82Rdf/Ovjp08X8/l8Otu2zZMXz7f9IErX+/NNP16stuuuj4k//tlHb9x5vagnZVl3zTAOQ3CDKiZTFyIh8k5Z486OlZSS1qYoynEciYiIQgg7l01EEMn52HUusoSQhn4Yh4EROx//z6//5cunz0nBO/fvWolfPXz8zcVq6+Kyc0Fg3XWrrp9p86cfffTuW6/Xh1Xwsds0fuhS8IaUskVljYGdMwSwuxna5bEoihjjDtevbiAAmPmHDCMCBo4hRhZBbTzDw8dPXT9qjWRUPatD4t9++a1LjGSQYxpaleLxtP75xx/fOT0rquroxg3NlAbX932KTErh/uEZACilmDmlpBB3pSMA7MT/DkY7jANICGE3XkQSJ4DdrZEQUUqsmI0PmKsxea0wU3q56lAb5EQxnu4Vv/fg/u3Tm7dv3lHaUpbn9cykyCFsuv56uUJj/w0WAqz3XjkV6AAAAABJRU5ErkJggg==\n","Pelodiscus_sinensis":"data:image/png;base64,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\n","Caenorhabditis_elegans":"data:image/png;base64,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\n","Macaca_mulatta":"data:image/png;base64,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\n","Lepisosteus_oculatus":"data:image/png;base64,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\n","Ictidomys_tridecemlineatus":"data:image/png;base64,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\n","Papio_anubis":"data:image/png;base64,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\n","Meleagris_gallopavo":"data:image/png;base64,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\n","Cricetulus_griseus":"data:image/png;base64,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\n","Ciona_savignyi":"data:image/png;base64,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\n","Melopsittacus_undulatus":"data:image/png;base64,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\n","Poecilia_formosa":"data:image/png;base64,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\n","Saimiri_boliviensis":"data:image/png;base64,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\n","Ficedula_albicollis":"data:image/png;base64,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\n","Chrysemys_picta_bellii":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAKRWlDQ1BJQ0MgUHJvZmlsZQAAeNqdU2dUU+kWPffe9EJLiICUS29SFQggUkKLgBSRJiohCRBKiCGh2RVRwRFFRQQbyKCIA46OgIwVUSwMigrYB+Qhoo6Do4iKyvvhe6Nr1rz35s3+tdc+56zznbPPB8AIDJZIM1E1gAypQh4R4IPHxMbh5C5AgQokcAAQCLNkIXP9IwEA+H48PCsiwAe+AAF40wsIAMBNm8AwHIf/D+pCmVwBgIQBwHSROEsIgBQAQHqOQqYAQEYBgJ2YJlMAoAQAYMtjYuMAUC0AYCd/5tMAgJ34mXsBAFuUIRUBoJEAIBNliEQAaDsArM9WikUAWDAAFGZLxDkA2C0AMElXZkgAsLcAwM4QC7IACAwAMFGIhSkABHsAYMgjI3gAhJkAFEbyVzzxK64Q5yoAAHiZsjy5JDlFgVsILXEHV1cuHijOSRcrFDZhAmGaQC7CeZkZMoE0D+DzzAAAoJEVEeCD8/14zg6uzs42jrYOXy3qvwb/ImJi4/7lz6twQAAA4XR+0f4sL7MagDsGgG3+oiXuBGheC6B194tmsg9AtQCg6dpX83D4fjw8RaGQudnZ5eTk2ErEQlthyld9/mfCX8BX/Wz5fjz89/XgvuIkgTJdgUcE+ODCzPRMpRzPkgmEYtzmj0f8twv//B3TIsRJYrlYKhTjURJxjkSajPMypSKJQpIpxSXS/2Ti3yz7Az7fNQCwaj4Be5EtqF1jA/ZLJxBYdMDi9wAA8rtvwdQoCAOAaIPhz3f/7z/9R6AlAIBmSZJxAABeRCQuVMqzP8cIAABEoIEqsEEb9MEYLMAGHMEF3MEL/GA2hEIkxMJCEEIKZIAccmAprIJCKIbNsB0qYC/UQB00wFFohpNwDi7CVbgOPXAP+mEInsEovIEJBEHICBNhIdqIAWKKWCOOCBeZhfghwUgEEoskIMmIFFEiS5E1SDFSilQgVUgd8j1yAjmHXEa6kTvIADKC/Ia8RzGUgbJRPdQMtUO5qDcahEaiC9BkdDGajxagm9BytBo9jDah59CraA/ajz5DxzDA6BgHM8RsMC7Gw0KxOCwJk2PLsSKsDKvGGrBWrAO7ifVjz7F3BBKBRcAJNgR3QiBhHkFIWExYTthIqCAcJDQR2gk3CQOEUcInIpOoS7QmuhH5xBhiMjGHWEgsI9YSjxMvEHuIQ8Q3JBKJQzInuZACSbGkVNIS0kbSblIj6SypmzRIGiOTydpka7IHOZQsICvIheSd5MPkM+Qb5CHyWwqdYkBxpPhT4ihSympKGeUQ5TTlBmWYMkFVo5pS3aihVBE1j1pCraG2Uq9Rh6gTNHWaOc2DFklLpa2ildMaaBdo92mv6HS6Ed2VHk6X0FfSy+lH6JfoA/R3DA2GFYPHiGcoGZsYBxhnGXcYr5hMphnTixnHVDA3MeuY55kPmW9VWCq2KnwVkcoKlUqVJpUbKi9Uqaqmqt6qC1XzVctUj6leU32uRlUzU+OpCdSWq1WqnVDrUxtTZ6k7qIeqZ6hvVD+kfln9iQZZw0zDT0OkUaCxX+O8xiALYxmzeCwhaw2rhnWBNcQmsc3ZfHYqu5j9HbuLPaqpoTlDM0ozV7NS85RmPwfjmHH4nHROCecop5fzforeFO8p4ikbpjRMuTFlXGuqlpeWWKtIq1GrR+u9Nq7tp52mvUW7WfuBDkHHSidcJ0dnj84FnedT2VPdpwqnFk09OvWuLqprpRuhu0R3v26n7pievl6Ankxvp955vef6HH0v/VT9bfqn9UcMWAazDCQG2wzOGDzFNXFvPB0vx9vxUUNdw0BDpWGVYZfhhJG50Tyj1UaNRg+MacZc4yTjbcZtxqMmBiYhJktN6k3umlJNuaYppjtMO0zHzczNos3WmTWbPTHXMueb55vXm9+3YFp4Wiy2qLa4ZUmy5FqmWe62vG6FWjlZpVhVWl2zRq2drSXWu627pxGnuU6TTque1mfDsPG2ybaptxmw5dgG2662bbZ9YWdiF2e3xa7D7pO9k326fY39PQcNh9kOqx1aHX5ztHIUOlY63prOnO4/fcX0lukvZ1jPEM/YM+O2E8spxGmdU5vTR2cXZ7lzg/OIi4lLgssulz4umxvG3ci95Ep09XFd4XrS9Z2bs5vC7ajbr+427mnuh9yfzDSfKZ5ZM3PQw8hD4FHl0T8Ln5Uwa9+sfk9DT4FntecjL2MvkVet17C3pXeq92HvFz72PnKf4z7jPDfeMt5ZX8w3wLfIt8tPw2+eX4XfQ38j/2T/ev/RAKeAJQFnA4mBQYFbAvv4enwhv44/Ottl9rLZ7UGMoLlBFUGPgq2C5cGtIWjI7JCtIffnmM6RzmkOhVB+6NbQB2HmYYvDfgwnhYeFV4Y/jnCIWBrRMZc1d9HcQ3PfRPpElkTem2cxTzmvLUo1Kj6qLmo82je6NLo/xi5mWczVWJ1YSWxLHDkuKq42bmy+3/zt84fineIL43sXmC/IXXB5oc7C9IWnFqkuEiw6lkBMiE44lPBBECqoFowl8hN3JY4KecIdwmciL9E20YjYQ1wqHk7ySCpNepLskbw1eSTFM6Us5bmEJ6mQvEwNTN2bOp4WmnYgbTI9Or0xg5KRkHFCqiFNk7Zn6mfmZnbLrGWFsv7Fbou3Lx6VB8lrs5CsBVktCrZCpuhUWijXKgeyZ2VXZr/Nico5lqueK83tzLPK25A3nO+f/+0SwhLhkralhktXLR1Y5r2sajmyPHF52wrjFQUrhlYGrDy4irYqbdVPq+1Xl65+vSZ6TWuBXsHKgsG1AWvrC1UK5YV969zX7V1PWC9Z37Vh+oadGz4ViYquFNsXlxV/2CjceOUbh2/Kv5nclLSpq8S5ZM9m0mbp5t4tnlsOlqqX5pcObg3Z2rQN31a07fX2Rdsvl80o27uDtkO5o788uLxlp8nOzTs/VKRU9FT6VDbu0t21Ydf4btHuG3u89jTs1dtbvPf9Psm+21UBVU3VZtVl+0n7s/c/romq6fiW+21drU5tce3HA9ID/QcjDrbXudTVHdI9VFKP1ivrRw7HH77+ne93LQ02DVWNnMbiI3BEeeTp9wnf9x4NOtp2jHus4QfTH3YdZx0vakKa8ppGm1Oa+1tiW7pPzD7R1ureevxH2x8PnDQ8WXlK81TJadrpgtOTZ/LPjJ2VnX1+LvncYNuitnvnY87fag9v77oQdOHSRf+L5zu8O85c8rh08rLb5RNXuFearzpfbep06jz+k9NPx7ucu5quuVxrue56vbV7ZvfpG543zt30vXnxFv/W1Z45Pd2983pv98X39d8W3X5yJ/3Oy7vZdyfurbxPvF/0QO1B2UPdh9U/W/7c2O/cf2rAd6Dz0dxH9waFg8/+kfWPD0MFj5mPy4YNhuueOD45OeI/cv3p/KdDz2TPJp4X/qL+y64XFi9++NXr187RmNGhl/KXk79tfKX96sDrGa/bxsLGHr7JeDMxXvRW++3Bd9x3He+j3w9P5Hwgfyj/aPmx9VPQp/uTGZOT/wQDmPP8ELrHaAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9wGHA4vGUBO1tQAABpwSURBVGjefXpnmFzlleZ77r2VU1dVd4UO1d1VndVBsSW1JFBABGMDBrxjmzEwHptdbDP2zqzNOqwZe3DAXmYYvPaAZ2xsGBvjAB4TDEIECTXK6pY651DVXam7cg737I9qCcHOs/d5qp5b9/vu953wvu85davo4HX7ZTAAAgCAwUQgvnKNAGKAr5pTGatcYIAI+E/mc2UuAWC6an0QgTfm0/9n/avnX70+g5gqF4ghVabgquN9H6525crSlRUJl9/fdxuDGSAiAgMMMFWcfW/axthV61/x8Kr1/7ODQUzMYKrcSyy933LiDxh0dZzfy1FlkEBg4vdtRkRAWS6jVCyRIIogAIIgQhCINuJeyc6G/wwCXdmarkRpw6kP2EPEV0JXsU0QBAFXRRdXZ4TBDGJm0EZgmSt+MLABgyshAyAQcalYZgEKGLXVXKWxsNVkR7kooszMJFSMZwZY5o3N+DKeKtsQX4VRfl92uZLyDXAyE4GlK1jdiEklIowKFd7DxZUcf2D+5WuCAMrn85CghNNcD0d9I0UiQaAMKEmHJe8MKQ0KVqoUYFmGvBEaURA3nOIKrq4AtpKBSsQ3MEt81bYCMQPC+wBWGa6kgMAVsvHlCPPGRpWXLHNZLqNULjGIUcyVWCfouJgpY/P2bfjO9x7iju5u9O/dhZ/+/AnY7C5eWvAjk85zJpNDKpHibCrHkVgUuUIegihwhdT0AXs2CEQVMr0XwMqJ9EH68obn7/kDZpnBqLAHAkMhKQCZIAoCZFmmfDLPKJaQl9dIpVJyjc0MUhJptGpWa9RYi/ihlGSUkxGsTieoobGRt/b1oywTLcxNcjDkBxu0pNRrmUQBJON9mgFscI02+F/JO5EAFt2epoeuEHBDIzbQBhIq7stcBoNJqZRQpTTAKCnRYLdQV2sb2t2dtLrqB3Jh6IU0SQoltDorZsdmSZAUSEYSOH30OIrJKOVSIYgokcFYDVdjA5rr7dRgMYIEEcl0nsAESSFCvoyBy2JxWUwrwnHFXFlmXO3A5fEr2K/Qi1mtVJFBo4dRreMaXTW2btpEPV0eRCNReFdWSa0zQYUY3HXVcLU0cZXZTLd+5CBiqSTX1FShrrpISwvzqGswIpePkqAwQ1QboNVWYcHr5c7uHlIRcGlomEW1EhqNlmS5vFEmKly8IrwbQkSCgHKxzALReyJNl0HPzASCDBmCQDBIatbJIvRlAU3uJphdTZhdKcAbZM7nJVaWo1xlJ1S32mG2W1DjqmN7SxvS8Rhmxi5i4Mbr4e7uACllVmoEDgeXuam5AaJSC1lrQ0nW8ZmL81jPi5iamocoCO/FEMyEihJeAdZGiREEhiDLMl2pKczEIOKNc5GI1AqRVv2rtBbNkkLvpLVIlpa8Achqibr6OumagT0U9/sJkkRp2UozyyHaumM3zU+Hqc5eRw11LTQxto6P3HyYorECmauaSC7HSC1maHN3E3W0tVOmSGSq1tKTT/5vcrf0UDAUhSRJdKX2XhFY2sA4EwCSWaAPqFAlVZdll0jkTLbEsmzGF754H9/zmQFcf3gTCpk0OC+yy2UDKbNI5TJIxxQcC8u8pW8bm616RBNZtto12LXfg3wxg0SW+fbbbkM8lIRGK+DYsVHO54kHdm9nhU6Hdf8ar/vm0bN1L8pyAZeRcZVoM2FDGSvAYpZLECocoatl/Yr+lMsyWBBp4LqDcDY7cGF0ErNrs7jz44cwsLMPao0OwyPDUBjLkIjQ4q5C35YWGro4g/7d3QhGCafOhOHp7IR3fR1FOYPdu9wwqKqRTlzCwso8+nf3UjQwh6HxFXzzXyZgMihBXAZv1GD6f8osUUVKBcgyQ2x2Nz30ntRepkKlukYTEXR19PHtH/sr+uEjv8A//vMJfulogkRVNbb0NyAVKWB1/ByVyim4W9zYf802zMwEOZtbo2pbCwolDftXliixvoJ8KoLxkfMoEVOL04Lx0RCKChUUShMPHjlGLo8dX/jkFi7l0nRhdAQWcxXKsny1WRV1r7CZBIFQLMksXJ2k90pEpVgpSUnlZJ5S4TH86PE76aknb6Nbb6rCoR0ShgZHyBdYwEJoGa7aBvRv7cHZ0zMkSkpank8gn82QzayhYjqHtuYuTA0v0+pyFqWCDFKJ6OyoxfCJt2jw2FFyeBzYs6+FtFUOeuvESZTLxat6r/dZR+CKJomCSLlUgSoZuNzdVOr1RtskQKEQYbZaWRRUpBC0KKTSvH93KyUTEaytFTEzdQpN1Vrq6/YgVtYDIEQjMu/YsoO6e9vhXVhgSRRp5/4BIBNFPplAYi1LKh0hk8mgp8OJ0+fHeCWQpVhSBd/qGI+fP08Omx2kVIABiFe3xwQQBCaAovF1NLk8LLo9zQ9RhdcVvWWQKIoAQHq9mtwNHShky1hYGqN4poRjg8s4MzyL0PISdTrV6NrioPmABka9hkyWZtrc2YzWzhZoLTZSS1koFVmYauqg05nIoFPBbDJSJFaAP7pE1VXOCpy8Aai0Cnrn7ROwGAzYuWMHYqkEFYslCAKRTABYIAITCQyFUo3FxWXavnXHe62EsMENEsCCIEAQRBZlhgo5rEfjWIuvcim/iFwyD1ttPWrMed410I2zQ16uatBDrdLxof07IWmUyGbTCE5d5EQyBltTE2aGTyObyLFCY0XfngaucdRACQVnKIpIKIwefQHn5r3cP3AQikIE5Xwe5UJ5QzUr3Q0RM4hRKpWhEATs23UtLy7NQyCqNBgCKr2NIAoEANYqM0x6MwnII59axtjFcVLpbTA666DKh7B/az1mViMwWG1U52zAjbffCp1VSwHfMrzjcyjmSpRX2lDWOuANZZFNxrGyPINEJkMdfb24/sYb0VTbQSatBYYmFW7fqyNpbR4arRHLSz5UqZVAuQwWLn81qnSg0WgM7S2t0Cg1lMvlcAVCREJFXAWBJEGAQaVGyBsguViCXmdCU0srxdfWkQmO4cC+ehQLKtIonNiyvY/2HL4eLImYn1yi8eFJeDq64S9ayWiphr1ahXMXlhFNxkmvzWP83DTFsxE0b+qAZ9NWMqjVOPXOKHK5MgmaAi5OrcBgMKOt3kqywFiL50itFCEIhHwuQyaDGX3dWzF8YZwcziaInhb3QxXSShAIEAWRlGol/EsraK1vhtul40isQJkio6YK/Pm/vQdvv3qSams9OPTRj6C5d4BK2TBOvvwSBgen4Gmz8HpWpJVwAbW1arYYDVgJxWl0ZAqRwAy6W5z0wh9fBOQSmtwu1LVuYrPRSsMjU7g0PM0OsxEWexONT8zBXmtBPJ0mmSSACIloFNX6ag6EQkQqBkFmsaXV/U0igUiQQQBLoohiTuBiPEJ3f+owRiemkc8rsbI0Q/ZGK86eGUGjzUPX3fIh1Hfu5HwyjJMv/ZpfeX2JbvnUHvhX1qA22TE7c4aqzFWodzowOj5FnFxBPBHjlWQAu7Zv5x/88AlyaNJYTwTRuWkX6lwNVFdfhfmRs/D6Q1TfthNrawFua3Zi6MIYZ7MJ0uvMyGYzMBotqKlxkMwyhEqvIQPMBJJIZqZyNk0HDgzQ3GqQZn15MplV1OXS0+rFCep0NdPdn7sP7r7tNDk+SCdefJKeePoN6j64hRQKE7327ji1uhwUWk5RKZfbqIlZTMzN0l333km/eeFt2rW3ja49sJv+7ltP0Pm3fkdHX3icCjJRc/te2nzoMEliAaVikFKpPKkKJXrkO1+i/bv20hZPN9U53JQpFSkQTtLy4hIJoMuPAYgBARq1BoQyOjZv4rePj3Nrey+vBMNYT0X4/gc+iwe+8XUU9Dq8/vzT7Dv9Eh5+7FU4WnbjL+64gb/77Z/w3h19nCqFce7iCJfzFYUL+FZw7PgFzpbiuOGaXTh88K/xDz/8PG/Zd4j/z6/OcGRtBV/7ytdY0sWxs38XrDYHdEYda7VGBIJz2NvrAqezrKk2c6mY4WIojAanjbu3bK30QqIkQqvTQalSwutbRY3JAUeNE6lMCaVcjKoUMj73xQfQMnAAb52ewn+//6vQCAk8+m8vI896fO8HD+D73/kBCpkA+jcb6J8efgytLdXo6vYAAPbtHYCjphoP3P0g7vuLbtR7PPjoR+7Hn37/DdicLpqcD0IpruM3f/gt9t0wgIJgx8KSH4VMCusRxn/74qM4cmoUgUACokFDOZ2Iz33oOnztpushCJICoqTAiteLwNwMGkwq7NrtxvjoBLZv6UZdnYnrGhsBdT2cdR384H33Y80/A++iF+eGvXjyZw/i2Fsv4eiLJ/HkL76Kf3vstzw6OI3O5lpUV1czAHR1dWLnjjb0dffiyIvTeOTr96LD04YH/vIr+PJf38QXxgNobt6EE0fPsdlsxd1/+VF4p5dhtJrBKhOGL07BXq1CNLkCq6Dlr9z1YWzq78aR04MsxYMBaBUKHO4foNs+eitvG9iByanj+OrfPIgq2zZaDzMisSQ+dp+HErEwpucv4ctf/Cu8+voQff3BT3M+tIyff/cpPPHP9+PXP36eHHYz7r73Whx/61XKpHOosTlwZnAQQf8qmU0qfvPICJ579o/4xD0fw9llP10amsTBbZsxvuCnVDKHN9/6M+769Ifxp1deIX8gyvYaB0qTw7BWWaHSWcliU+LDO/fCHwjRG9PzEP7Lzbfg+f/4BR7+0SPc2lePZ3/6NF569hWsFSWUZAWPTUzwgZt2oa3NzWdOH+e+zh7IGQUIGr5uoA/P/uvzuO32fjz+6DM4evQSj00tMZESt966h5P+8/z6756Bu8EIq0niaCaN58+fxP1//308/pPnUCAdz0x6ubPHjUw2ziapin/32z8BMKKtrZnDoWUkYxloDdUYX1hEYc3Pf/epmxgmDR57/Mfc1tPLwuE778bE1DAWRp+mX/3sGQyNX0Apx1Apm6ih2UEqo4ZuueWTAEAnThwlk1HA/NwIbrzjIE0tLiCSlfDya4OobdtOf3jrCH35Ow/T4088h0cfeZk2beqg7z/2aXhX5jH4ziQpRQKgxSfvvQeNHS00OT1OVVYbGaoskAtEZSrR+QuTAPxwe2ooGk2gXE7D51vB0vIS3ba3m6waOz3+76/i92+coUg4TNKLzz0Br68AlU7kj+4zIBUTOFoyQiP7WeQi7GYzXA1NAIr89huD0LMGSTmHzm43v/nqq9Bp0jw6G8ED39jHADAzOQSDWYJGo+Tf/fECNFVOjE35oK7S8/mhKSzMvc71jfVQqxWsVCqxEl5HWS6h3d3CicwYxkeW8eZrr6Kvx8W5XA5lOc8arQqSosgD+7bgjcEZPPXsb+Gqq+Lzx45C+ERnAZTzYej8EEYmolAaVaRgCTazGqVChBrq3BAEYGToFCnyAImAzmyFWRIxdHIciWSO4iXCqm8WAGjmwiTCS+tob28inVGFYCgEi9EIGSXEM0DA7yX/8iKSqSJKgkgLwXX4YzH4In5SaJQoZgt47fV3YDVroNGqEI/EiQVCMZlFKi/Sq+fGkM7J6Opto2Z3E4TG9AysQgGcitOE14/z52agysYhGdTw+fxoaW0CAJw6+y6yrIRaq0Y2lYB3JUSJLCEQLSCLLJx1DgDA1oEeLK0HseQLQl9lR3gthZWVIJjLJFMCChKQiMShUAiQy0qYqizIlrJQGfRQiCJMRg3OD41Dp9VSe7sH4XgS6UwGDqMFx18/hdOjp1DOZRCOlaAyOiCkMkAg7EdeIfHIpRW0OKtQ7apGMRFBLpfiprZ2BoDjx4/zwtIih4MptlgtGLp0kRdWV1AoybBb7FBoywACbK83slavRymbY9/CGI9fvMRrkTjyqSy7XTVo9tRDUiqRyacgaIhFlYqnx5YhocT5col1GjVPjC5hJZBmkUQUSjmQSFDodDh64hincmm2Wg1YmprkQDDAQjnGnE5JgEqNtjYDS5Kehyd8nEzGkUzmYbKYsR5e5YmhaXiaXVAoBGQLRRw/OY5UrsClcpYzkTyXiikAjKX5VahI5JXFZUT8QcRjEbBCRjwXQS4t8MJ8hCemfRwIJVBjqwbkAkxGKxvMVmh1GricNsTiGczPzSOXTXAsEuZymVgEoaxRwbeyCnd7O2eyWfhWvBBWQmtU1pXQYNJSs8FIvtEFcjhNpNKoaW5hkSLBFBHFyb+8Sg6LjiRFnkLrMWj0TvK4O6i3x0OFYpEE2GgtvEbf/vZPSFdVRfamOmKtngqkJo3GBFGpJVEhUo3dTHX1dlpZ9VEpESUU0qTRq8lorKFMQaYylymXB0ZGZ+jQ/j5ye5pJp1WTJpMmVQnU2dNF8/NzdPiGG0kAkfTLlB0dHh3SkQQPvnke6+kkBlrbIZhNfPP+6/CLHz/KR482k8bk5FKpjPBaEtdctx3L/hVWyiWsraWxff92OOoc7PX6MD41zS5nI+m1eo7EEwhHYrAYDfDnSmy2W1HbYIPJXAOrpZojsSh0Bg13b99MCxdm2GzQYueOXsz61vCPjz7F5bISeqsa+UIOFqeDp6fn4Nq3h+tqHPTHF57nFk8rBJ3WgjMnR/GnwZMQG5pwzxf+FnqTDsjlMLu0jD0DbXTyzZNorDWivtYJBSRYzFokoym09fRibiGII0degUkfg83KcBhNtB4JIbwWQj6fh96ghNGog8xl1FgMSEazOH/uEpKpJHIyIZEtUSKSwuSlCcRiGVwYugCNVEZrvQpbuwCnxYBSNo9iroCWns0oryUoGYvDZrMhFg9D5HTyoVs/eSs+9OF7sWN3Hyw6EzXWuRCKhLHon0YklOQD12wjQ7UOJOk5GsmTqUaNdLKEqdlZCIJA23b04+N33YVTg6dx5Ph5dlbbqEwZdHR4WCNJZHNUIRZLYD0Sh8mkJlHQ4JVXjsFsq4JWknh6ep680QBSWZlnlnwUWI/j8E4PXnjtzxBEDf3plTexrcOD1UQWo9OT7LDbKFcqQadVs/Dwd/8JX/if30avp45cZi1UuiKy5SIO33AH3h58l+657wZa8k7j5MkR8vlipLNKUColpFMRIrmAtTUvuroaEV714bnfvEb5fIksVhXMagO5XS7SaM3wr6agVlooWxTQ4G7E/kM9+Ox9tyMcClJ1jYokAibGFygQXqZ8Po9rrjkE99aP0flhH37+9HMAgEgqi707eunawwdocXkZEhOp1ToSH7jvcw9deOMYoCHYHG2QZYlGR+bR4DKi0bMZbV3XsG/pPP3i6ZcRSYQ5k0rS6MgsahuaYbc3QuY81dZXwWLR49lfvYhUtMD9mzfR0kIIh27YzUSg9UgBrqZarPp8GBqeogMHr8Hg8UHE1pNQqsEmk5H0eiO++uDn+Y6bDpNR0uKds2MI+6aQzQg0s7CEFEpYi8bhdLlZkhUkSkWkMgUWTl88j8atmzE9FaJoLIHtBw9BVGQwMzpPJ4++QCMjF2n0EuOG62+mJk8D5bJ5BOPrEBQZmhk7CaVChWV/FDt2HaSuLX2kFEq0FgxifHmJSE3U0lKPZCIKnapMWmURjU0NaO8YgKO+g9o6+kivddM3v/UN3PWpz1A0Wk/6qjaoDAIikRkavjQP/2IIokDI58rU5Gqhda+XQlEfmjytZKs2k7R72y40W4H15jrevNeF1cm3uarKCmMxzYbMIl545i0YHWYcaGlhT4cZczMLWPEn4HTIHHPXYS2m5xyvQ5aLvKd/KxYnF9DX3wMolZyOqfCh2+7AidNjqNYq+bP3fArr6TSfeOddfPVr/8BP/OQxrM4vwGLQITg9xe7uepw4cRqvvPg6lGqRRxamICgrDxOtBh3rlYRCTgGJNRg6f45zmTzE7ubWhwox4Npb9yMS8OGdP1+gto56rAbCyEsG8gezeHvwLawEl2j75m6o1Ep4F8MYm/Bi85Z+hMNh+vDNt8Ne24Lf/uo/yO504hP3fhw2Wx1Za5zYvLUfBr0BtjoPrrvlNhjVZho+dwn9ewagUevo7NlzQEmN0bFpOnnuHCZmZiGoJQhyGnMrAcgsE8llSGoNdmxqIRUR1qIxmKurKVuIQnJ1tWIxHIHv9Nv0ylkvmywixkdHMb2UwR27D2JqaRKZtSB6Ohrxo8d/hv/6uZvhaXbgS//jM+QPB1hd5cRH7rwT4cg6VNoqtLe2oNbZhlCAQRIQDocwM+1FLpOk9RU/X7w0hZGJISRS65hbWcWRI8fw1FO/hNNhwczsEkSlCps7XLh2Zx/NLwY4lcuhyASlToOlRBYGrQlb9u1G0BfE4a5bQb//l3+VO51KjKRSWBhZwN7+TuJ8gSeCBRw8vBf5QoC/950nyBeOYnXRy8VMDtbqGurqakdoPQlJo6O9A708fWkUfz5yDA1NHnbWWmlmagaZTIaVCgnxUJAihRwIQHHjhwj9xnPzFMAmvUhOkx6ypGSRtdCpFOQ0qvHahVFo9DqSJAWXymXUVDvRYzbwnt0D9IcTwxAoyfTLR/++nI7mKaMw4MAOJ7fYtXRuNcdev5K4kICgULNQCODFN16jpekwz85OgsQyZfMy0ht/E+lWgTWSRDOCBsVUkvVqIJgF7a3X8bW9dXjxQphikhYDe3aySBJpVToOLE/TLZva8K2f/ZrjhSJsZhPFkWFRlqEoiZTIlpDgEqslFSnKzNligbq29+Lanm0c9QcR4gShLLG04C+SUIxgS6uT0hk9XhgM0oXRKaiKAlmtedS2bcaWxkZIuzbRT5dfh6BVod9dh3wpS+9e8uLj1++jz9xzOy6ua0ihysBqZtTam3FmKEzbu2vQu6UON07lwTlQjUGNd8/MUQ5FPHXmTZLb3ejt7kCEBCCdo9WpSezfsxNcLOPVd8+SRqlCXs6Ts8GF5nonzc+HcU4zh2aXC+aIluwNzZBMKhmevr1Yzyt5cs6PxnobBnYLKOZznE5mUSaB54JRmj71LgdnJ2Gw1OGue++BTo6y6o/v4H898iWEfcsYOX6Km+o6EHgnyK8VL1IWas7NC0h5O3FuNopjJ09wdGEUolaLUCaNne1NfNMOF+ztbXwhr6NnHnuMP33f30BdZvz7c89AIolLYNRb69DTuxMqtYo7m3rx8hsvcymbJ4fJwqurI/i/PJUHW/QZbhMAAAAASUVORK5CYII=\n","Macropus_eugenii":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAAAXNSR0IArs4c6QAAAAlwSFlzAABFDQAARQ0BgzduwgAAAAd0SU1FB9wBGwwMOen6sboAABMwSURBVFjDTXhZjxxZdt45594bERm5VGbWXqyNLBbJ4tJs9vTicUutVs+MxjJGsp4MA/Z/MOBHP/g/GBIgPUiGZQO24AcbhmxDNmzAI0GYMXtE9TTZXKtZxSrWXpVbZMZy495z/BDFHt0EEvEQy8E93/2Wg//qX/6Ls7Pe3pu3ZxcXhS29CAAQolLKaG20NkEQhWEQhlprBGDvBSSOg1a30erU681AaxJAZmYvAuCdMHgBYBZmQUStFCCKCAgDMAIoTUaZSDeQzXiU7u8dvn6zN56kAKhFAFgEQAREBFiAEAEIAEREBJiFRZjZe0DwzMJcOl+Wnv3lE+9uBc/iQUCwepmIICIACAAIiAAiCggAEpIIOOuKLM+L3HsvAACixbP3nr1nZoHqZSgAItUNIsIinpkRCFBAqu+DCAggACKiiLAACzADe65KEWB4txCEBUVQgIlQkyYxrvDJKOsNhkkydp4REQS0tc5aZ8uSmUGqh79bgiCIgCAoDOABiIgQUSmNQABIiIRYfVlEmJm52qx3laOwCDCKsIiAoFIaxYRBXRlIh1kyGg+TCTMToiDoLMsm6aQorIgggiLlS4+EYAwiEiEhERIhICAiAiKRUloTEgEgEiIQABF4D1WHAfByixEEQN6ViAjigBE3ri4vz0/HooOPWn/wJ/8hmUwUESECiB6NkvF4bF2JiARASn/64XsNE/zNk+eZZ1SKlEIEACQEQEAEQiC5vARGEKygioCAAEgiIoIAQlVFVSkMwthq1VeWumvzrbfb+512e/36fJpb7z3CZYN1koxt6QhJay0iRPTpJw8+urvV/bP/8vjVTt+WSFRtTQUFBILL1jA7EAYQBBQRQAQiUiTeM4BU8DKKQNA7AcHlxdbtG4t7z48fvuhFkbt5e+PrZ6/33h4ooup9AKA2N66x9whCRForROw24rv3rpWeJ+fDmYiMzwl1zlRthUC1T6iUiqIwDA0pBASuGiMIl4WRIlKkwJPReqZT29qYWWpGLx7tX5zbVks++8Gvd2Y3/uAP/83RRQ+/O0MAukKoMYzeA4sTv/f2qCzw+198vv3trhs3NjeuDgbDk0IOB0leWFd6BC8iQWCERQRBSJirrVKIClGU8t6XtgTxc9OtzauzzVDx0H351y+H1t2+Mb313u07n/zef/53f7yz/xaFBZGoarSorRs3qpNRoQOJRmkB2eSLH/z45t2thw+/rDVmFxaXri/P3b2xPj89BShMWDpvAt1o1ON6TStNhACAohRqEu2tcMlzU437m2ur3em6NN+8PP/pX39zMpq8f3fh/Q/ufvjDf/bs5z/9/T/6k7PBCKrWEiEiEak7t7ec996zSAUTFESbZTH59773sS3z//EX/9uKzi1HylyZX7h3c+PW9WsMnKS5NiYwxgSBVpowUGDEY5GX7VqwtTL39x980I2n+xf5m93jh49fvjw5vnF19sP3Nj758T9FMn/8h7//8Jtt7z3BZacBCQC0MaHz7FmQGQA8MwJMSn748BfDcXLn/nsr60tfvdiOotpiZ+rqygoA39lc+8nnvzGy9rzf7yfpcJyUhQNA70U8fnz37r2NVQL1/Pm3e/vHw0l+1LvYG/ajONpYmdvYekBB6/GXf/n8zSkIEwICCQiAAAgCaADQSocBeGZmr0QExHro57Lzercz3fy173/8i6f/iV0w1ZnGIBqOxt98e3h42r+5uf7J7buo1TCzO292er3B3sHJ1s2ND+/cffr145PzwfPt3YvhqBQ5S0ajbDzfiJYWZ5c2PwDw3/ztl4fHJ/huVexQ0ZYuvRcARYqIGJQwg4j1bvvgePPq9xrNjiK6c+vaw8evvt7Z7p41rswuHl7kr9++3Ts4mGk3r29cXV1bfX/z2uHebtOl15dm93d3f/7om0GaBVEtF9g7PsrKIsvTxbXutRtbujaVHr9+9NWzZJwK+4qiEAgQBQSFtbW2UgMAJEAgEmZCtmUJpDev35rk6Qe3N//fV0/2zk7HeVoKFlneaTYTy5Dk6bPtb7e3r15ZeHtw0IyDZ1/9jVCcOx8GcajJaI2ks3ISG/Pgztbq5l3be/Pv/+2f/tUvHpe+rLhKmIiqslCA1NraOnPFHpd/UjEdSz9J7tzcWFm9ZsAR22/3TiiICBERmnENAS/6vaywSZLuHRy+2t3ZPzp78Xp/MEqy0oVBOBgPszwjFOfKhan4i08/vvXJ5/uvXvzRn/7Hg9NzRSiCzBUDVcKCAKCtK7ViEdailFIAWDGU0mqQZH/+3/7iHytZu3H7n9+77/hf/6+f/bJf2rWFK7YoS1sQglLKszvtDcUhgh9N0nHhTBgkSS+IGvVaGAZGIc+1au3pWQD/5Pn2xXBMhIBEiMwswiJUCTMRqZWV1Ut9FyDC7+yLQjTGTNL0xuqVWx9937Smg3Ly8Mu/pbDWqcfOlgjSaTVLmxfWRkGIKEhyNkr644kOgrTIpbQIQspEgVmY6W5uXHv2zdM/+6//vT8Yes8VTiru+RW6L9EjlUqz955ZRIAAjNGNek3V6v/n4ZPtrx4BqOs3bj/Y2og1AvjCZaXNhxenw1G/yLMsG6NSBZixg4ktAbjTaGoT5kU26J9NskkY6NCYZy9fv9k/dN5rrbXW6lK53yklgIhc8mOFq0uPB0JIYRDVanEjjk+G4z//n//39OWTuNW6ce3qyuzMJJ1oBXGAnq1CaDfjKApZ2DnvAYKoFplwqt5ot1pTralarZ6OEs9y8857URReKqhSiAqQEJGQvqtGquZVpoyIkLCyokqrIAyCIFRKa6JHT1/89K/+sj63snZtw9nCC0jpmBUFcavV0SZs1hvdqam57tT64oLRQekFlAq1nm53p7vTcRz3B6O97eeD83PvPVHl6qACh8ClYa5wrVZWVquSNSkkAgAiNEEQRZHRhlnSLBtNxmVebC3P9XvDr56+sK4EdgzYbk13p9qtRiMKjHWu0ZhqNdvjvMhLq7WuhUGgVRhEURSltiwGF2+PzvbPLvDSbbMIX/pKBKzsH6JaXV1DRIVU/SoTEgSB1gZYirJIszQvCnA8bbA/sbuHx/1xUq83l2dmNq4sKaWs9wAwSsZJOhFSYRDHQdRsNgDJOmuA57sdUMY57CWTs9FIpALrpdu9FI3vcK0UIaJn9t4DsTYqCAyR8sxZUUzSLMvz0ro4DpevXts/OD48uyiBWvX6/HQrLyZH572nr/cukrEJa3npe8PEOquNBgHnvfWyc3pxeHIyZSgKdS2uGa0Q8V2AeBdNLjMLAIAmUgBQ2TVtorgZGTTM4JyzZWmtLWzJIM16rSzsYJwBUWRC7/nlzk6S5gnrIKwnRRkHhrTRoImUIsis1wqIiNFcZG6wt/vRndtRGJTOOe8FgEghovfAzH/3oOnKdiCgUlRvRO1uk0uZJIVzriiKwlrnHBGxh+Fg4L2bbk9HYfDt/t6boxPMR7WamZpbcr7ViiJN2gSBeOe9kDbWlVk2SYrs4Kh33Btcu3bLl6UtS5F32QWJiLz338U3ANDsPZFSRGEQxvVas1UrUjce5daWhbV5UXjvwyBUALW4NtPpqKiRZmkCsWpOQ3KWF0mepbR6vdto16IoS8fGBJqUFx9obX14cPiqf3xw5eq1x6/3ayRTjUaaFSy+ourKxVc1vSuIGREVaaMDo00YaGEAlNKV1pal8967dr3+/u3NucWVqd2LQXraGwxm61E3NrsnyEzEWgCts9oqRK1QRTqw3gFhtxa2Gp2h6V1dWn1w86rWNPwqZwZmrjzQpTUD8N4DABHpCliERKSgCl0aUYFjX3onzIi01O1cW75y1ru4GCZFWZLAere5f3pBtY5uKDBBKZIWNqCgFgaKEIDYeUFXC5rzs/O25HGSOlfevr75YndvkmXsucrIzF5EiBmUquKcriSMiACEPTP7KheKMHtmYUJcnO3OLsw9efFmNE7FeyJikHYzbk3PeNKI4NkNsxwFioKiIGw1dOlKkNKaMlB6eXGxEZk8t4Pexdp092wwmmQZAnpmRAGlAS5zLTNrRFSklFYiUFpvrTcGlLnMxSISh9HqwkwtrqXJ0LvSMXc7nWY92NnfacZRLW5OJuO8YBBJsnGvKOKgJp6zbFz6UgeRLbKp1lS7Ec7PtkNjtDFaKSIEEUIApZRSRqvq5HtmXTWLiETAlmVpS601KQISEXZeri0ufPjBh5NkfHF+ZstSad1q1qaatWU7F0XN3mAsUcQimihSZjQcBqQFRJEk6cS5Igx0WRQ+0iwYxTETpkXhna/grJS69BfCzIzeayRSWhGSMJe2LIoyjJU2qBQi0Uwcf3TvVmem+/LJLw+PjtNSo9Zx3YwnHMWtKVbWunSQld4poG6rRtwmhCwfezuebzdbtdB6CY2u1aLROL84P69HFAbG2gLgO3K+PGuVvupLFUMSYVu6orDsQ2N0VAvaDfjh9+7/6AefBxp2tl+d9voDiKJaHCUTqddrcdRqkTGBZz/OCwIBpEar8/T5U/bOi7u5snL75lxavNVGX1tfmyTDmZmZucC/ODrOrBXmarL0K+NRKanRmqiacIF3vigcMwehabYan31y+4e/+dn8wsLO0yeHp+fjfHJycTLI0sPTs4vhAICDwMzOzHWnWs3ANKOwKGzKoTTnCxV50zgrg8PTXqcWNAId1yJNFBmcu9KeWWiEYaCIKmP4d8RDEFHdunlbKVVh3nmnjWq0QhS1uBz+g8//3q3r7x/uvvr5zx6+Pjw9HgzOej1HGkjyIrVFPjvT7XanuEgjo4G50Wy83nvTPz9WBOSKYVo0muHW2vJCt768dmXvzW5EvHX3fmns9u5xkdpK5n811EIEgMuZAJCweOdcUdhs7NduRr/9k7sbq3cvDvce/uznz94cnY3GvVGCXAwOd1yZK3L7R/v9Qb/djmdmW0vz3el2Iw6MQVckAxme2tEFSNkITb1mllcXo3ptnCRHb99Kgd+79eD6xkwVnuEdlL6bk6mtW1taKQBwzjnnhGn5eu23fvfq5vRv2jN88eTRL5+9Ti0L4kmvx+zBuzRNg1A162qc9EGw2ayxK8KoZp0jxNEkLdKRY15cXPi1B++vXV1uz7Z2d97uvt4tbV4PcGlhlbl4tXuY5w4uR17vwCSg7ty5oxSJiHPOlZ4IfvSjux9ufm7Pgu2nXz9/+e3hRf+od6oUCNLEFoDobVH6otmqBbrsnZ8r0lE9UEaLjkpPmXd5WTrmlaXljz7+MGiYV89f7e/sD/pnRV6ALdbW1pcW11/v7h5fDC5nWXI5kEEE9f799/Cd8gbG3N9c/51f/622XhqcHD569IvttydeZDiejLPcFoUr83euksZpmoyT0Pi8SAeD82zS82KTNB2kmTaRrkWLC516RM8eP375zbPBaDhORvXQ1KJ6kY0XFxYDE+4cHGfWUmUXoRp2oSa67CYirc3P/pOf/PbC9NJwdJEk/dNef5hMGLjVbGa9c9TQaTVMQP2JK/LcFs5a2uc07KetRk2Bb8SmOTUVUTrKxvOdertmXzx+5Es3zrNknF2Znu50ZlMvr98cLi7trK+szE13RpMJSpXr3wVFBgiUEpCluanf++Kz1dWVk6PDLMtevzk47SUOJA4jVHhpZQCB/MpMM7GmPxylOSSj3IXkvQ8NpnkxSTNtzEzbTLeCcX9YZBZB5QUvz3TjwORlYZQeZ/mw11teXVucn3l7egbClzNqABBR9+7dJaVmulP/6Ivvb12/MR4Nz07Pnnz9zdvjs1HuQGlAyYvcsVMKjKLhMEvSrBSGdy4dAFjEC+aFU1qTwHhsD4+HpeOpOCJQcRwkefnt4UUY6O5U21nnnZtuN4Kw9vrwWBlUWlUkqYjU/fv3Wu3GZ5/ee7B5u8yL4fnx9vbu9s7eMM0Hk4kvCyAejnrn/WEchwohDINaXMtLB0CMQERAwB6slTBQ7KX0iIDderQ+14kCwyKC5rQ/ujI3uzq/aPO89IwCSmRxvnM8GiVFrjQ560UECbXSav1G+8a1FY1hf9h/vXt8cHKeeygcj8ZjEqcyIUSFcHjan51uA4oHaNZj6wGyMQpPClZatBFttEFg741WRHI0SCYFI2KrVt9aWWjXalqhlyAyWoXB4Xl/YXH++pWF/YsegLAwexYR3WrHG1cWa2V8cnH85MnXxxejtPSOfWEzFjbGNMKA0Cutw8GoEZi4Xh9NxogiXOQC2uhQuCjKKAxyy2Aw1roeRkJUOEkmtj9Kbq6qIOz0kjEmE2VC61VZD6ERHx2fr68vLc22D457SiEwIYD68T/89O7qCmX48uWrt4cnk9KPxuNkPNIESlFubcm2sIUIz3amHHNu80ijcKmQCidF4YIw0AjGKEOkUWan6vPT9SistRpTWuswNM5zbzRGgXazMdVqlSW3ms12q+m9n+u0Zuan9k4uSsvV0EyvL8504+7hztnBybkPai7NClsUeWYVlmXJPgegQOl6oNnldaOcRiEpvQ9DdSWqM0BRlnmeJmneaTa8s0YHk7R0XISBxIFq16cJoB5QPW5oQiKc6XZCY5Ks8N6fnw8W1heW57tPh4ekAIT+P8Fx+sCq94MkAAAAAElFTkSuQmCC\n","Homo_sapiens":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAKQWlDQ1BJQ0MgUHJvZmlsZQAASA2dlndUU9kWh8+9N73QEiIgJfQaegkg0jtIFQRRiUmAUAKGhCZ2RAVGFBEpVmRUwAFHhyJjRRQLg4Ji1wnyEFDGwVFEReXdjGsJ7601896a/cdZ39nnt9fZZ+9917oAUPyCBMJ0WAGANKFYFO7rwVwSE8vE9wIYEAEOWAHA4WZmBEf4RALU/L09mZmoSMaz9u4ugGS72yy/UCZz1v9/kSI3QyQGAApF1TY8fiYX5QKUU7PFGTL/BMr0lSkyhjEyFqEJoqwi48SvbPan5iu7yZiXJuShGlnOGbw0noy7UN6aJeGjjAShXJgl4GejfAdlvVRJmgDl9yjT0/icTAAwFJlfzOcmoWyJMkUUGe6J8gIACJTEObxyDov5OWieAHimZ+SKBIlJYqYR15hp5ejIZvrxs1P5YjErlMNN4Yh4TM/0tAyOMBeAr2+WRQElWW2ZaJHtrRzt7VnW5mj5v9nfHn5T/T3IevtV8Sbsz55BjJ5Z32zsrC+9FgD2JFqbHbO+lVUAtG0GQOXhrE/vIADyBQC03pzzHoZsXpLE4gwnC4vs7GxzAZ9rLivoN/ufgm/Kv4Y595nL7vtWO6YXP4EjSRUzZUXlpqemS0TMzAwOl89k/fcQ/+PAOWnNycMsnJ/AF/GF6FVR6JQJhIlou4U8gViQLmQKhH/V4X8YNicHGX6daxRodV8AfYU5ULhJB8hvPQBDIwMkbj96An3rWxAxCsi+vGitka9zjzJ6/uf6Hwtcim7hTEEiU+b2DI9kciWiLBmj34RswQISkAd0oAo0gS4wAixgDRyAM3AD3iAAhIBIEAOWAy5IAmlABLJBPtgACkEx2AF2g2pwANSBetAEToI2cAZcBFfADXALDIBHQAqGwUswAd6BaQiC8BAVokGqkBakD5lC1hAbWgh5Q0FQOBQDxUOJkBCSQPnQJqgYKoOqoUNQPfQjdBq6CF2D+qAH0CA0Bv0BfYQRmALTYQ3YALaA2bA7HAhHwsvgRHgVnAcXwNvhSrgWPg63whfhG/AALIVfwpMIQMgIA9FGWAgb8URCkFgkAREha5EipAKpRZqQDqQbuY1IkXHkAwaHoWGYGBbGGeOHWYzhYlZh1mJKMNWYY5hWTBfmNmYQM4H5gqVi1bGmWCesP3YJNhGbjS3EVmCPYFuwl7ED2GHsOxwOx8AZ4hxwfrgYXDJuNa4Etw/XjLuA68MN4SbxeLwq3hTvgg/Bc/BifCG+Cn8cfx7fjx/GvyeQCVoEa4IPIZYgJGwkVBAaCOcI/YQRwjRRgahPdCKGEHnEXGIpsY7YQbxJHCZOkxRJhiQXUiQpmbSBVElqIl0mPSa9IZPJOmRHchhZQF5PriSfIF8lD5I/UJQoJhRPShxFQtlOOUq5QHlAeUOlUg2obtRYqpi6nVpPvUR9Sn0vR5Mzl/OX48mtk6uRa5Xrl3slT5TXl3eXXy6fJ18hf0r+pvy4AlHBQMFTgaOwVqFG4bTCPYVJRZqilWKIYppiiWKD4jXFUSW8koGStxJPqUDpsNIlpSEaQtOledK4tE20Otpl2jAdRzek+9OT6cX0H+i99AllJWVb5SjlHOUa5bPKUgbCMGD4M1IZpYyTjLuMj/M05rnP48/bNq9pXv+8KZX5Km4qfJUilWaVAZWPqkxVb9UU1Z2qbapP1DBqJmphatlq+9Uuq43Pp893ns+dXzT/5PyH6rC6iXq4+mr1w+o96pMamhq+GhkaVRqXNMY1GZpumsma5ZrnNMe0aFoLtQRa5VrntV4wlZnuzFRmJbOLOaGtru2nLdE+pN2rPa1jqLNYZ6NOs84TXZIuWzdBt1y3U3dCT0svWC9fr1HvoT5Rn62fpL9Hv1t/ysDQINpgi0GbwaihiqG/YZ5ho+FjI6qRq9Eqo1qjO8Y4Y7ZxivE+41smsImdSZJJjclNU9jU3lRgus+0zwxr5mgmNKs1u8eisNxZWaxG1qA5wzzIfKN5m/krCz2LWIudFt0WXyztLFMt6ywfWSlZBVhttOqw+sPaxJprXWN9x4Zq42Ozzqbd5rWtqS3fdr/tfTuaXbDdFrtOu8/2DvYi+yb7MQc9h3iHvQ732HR2KLuEfdUR6+jhuM7xjOMHJ3snsdNJp9+dWc4pzg3OowsMF/AX1C0YctFx4bgccpEuZC6MX3hwodRV25XjWuv6zE3Xjed2xG3E3dg92f24+ysPSw+RR4vHlKeT5xrPC16Il69XkVevt5L3Yu9q76c+Oj6JPo0+E752vqt9L/hh/QL9dvrd89fw5/rX+08EOASsCegKpARGBFYHPgsyCRIFdQTDwQHBu4IfL9JfJFzUFgJC/EN2hTwJNQxdFfpzGC4sNKwm7Hm4VXh+eHcELWJFREPEu0iPyNLIR4uNFksWd0bJR8VF1UdNRXtFl0VLl1gsWbPkRoxajCCmPRYfGxV7JHZyqffS3UuH4+ziCuPuLjNclrPs2nK15anLz66QX8FZcSoeGx8d3xD/iRPCqeVMrvRfuXflBNeTu4f7kufGK+eN8V34ZfyRBJeEsoTRRJfEXYljSa5JFUnjAk9BteB1sl/ygeSplJCUoykzqdGpzWmEtPi000IlYYqwK10zPSe9L8M0ozBDuspp1e5VE6JA0ZFMKHNZZruYjv5M9UiMJJslg1kLs2qy3mdHZZ/KUcwR5vTkmuRuyx3J88n7fjVmNXd1Z752/ob8wTXuaw6thdauXNu5Tnddwbrh9b7rj20gbUjZ8MtGy41lG99uit7UUaBRsL5gaLPv5sZCuUJR4b0tzlsObMVsFWzt3WazrWrblyJe0fViy+KK4k8l3JLr31l9V/ndzPaE7b2l9qX7d+B2CHfc3em681iZYlle2dCu4F2t5czyovK3u1fsvlZhW3FgD2mPZI+0MqiyvUqvakfVp+qk6oEaj5rmvep7t+2d2sfb17/fbX/TAY0DxQc+HhQcvH/I91BrrUFtxWHc4azDz+ui6rq/Z39ff0TtSPGRz0eFR6XHwo911TvU1zeoN5Q2wo2SxrHjccdv/eD1Q3sTq+lQM6O5+AQ4ITnx4sf4H++eDDzZeYp9qukn/Z/2ttBailqh1tzWibakNml7THvf6YDTnR3OHS0/m/989Iz2mZqzymdLz5HOFZybOZ93fvJCxoXxi4kXhzpXdD66tOTSna6wrt7LgZevXvG5cqnbvfv8VZerZ645XTt9nX297Yb9jdYeu56WX+x+aem172296XCz/ZbjrY6+BX3n+l37L972un3ljv+dGwOLBvruLr57/17cPel93v3RB6kPXj/Mejj9aP1j7OOiJwpPKp6qP6391fjXZqm99Oyg12DPs4hnj4a4Qy//lfmvT8MFz6nPK0a0RupHrUfPjPmM3Xqx9MXwy4yX0+OFvyn+tveV0auffnf7vWdiycTwa9HrmT9K3qi+OfrW9m3nZOjk03dp76anit6rvj/2gf2h+2P0x5Hp7E/4T5WfjT93fAn88ngmbWbm3/eE8/syOll+AAAACXBIWXMAAAsTAAALEwEAmpwYAAAXo0lEQVRoBS2aaXNc13GG37vPnQ0DYDAgQJAEaVEStZD0osgVJZIqZZddleRDKh+S/IP8jPynfExiV2xX7EiJrdCLbJOUQBIgdsy+3D1PX1iqEYnBveec7n777bf7yPm7B43KDRzlubScp/JdyfPc+lOpkOTI52fHdVVVUsm/UqXQ9eQ7rjJeLH2H531Vhf1Ocl1fOX/3PJ7hky4XGmz2FLc7enl6qel8wVOBwtBj+UJlmV+/m5c87ygIPPZis7xQVVas58pl6SgM5PmekjzVimcLsX6RFWpEkVrNhiI30ipZsCAvO6o3t3U811ErjuQ4jtKi0HyVyKmNkVKeTZNCoVcpZgO+VsF3tkZRJCzSkM9nMp5rlZUKolAhfsnTkkM6PJuzrrnkej+Xk9aOqt/HzCDgLI5Kt1CGczGXJVtquQHnwOHm0SRlIx4KIjyNJ9MsYzn7DSsX14cxwwrxe8fDG5WcgCiFDYwL5eOpsip4lCilqWaLlQpzgN9SskyIKgZGjqplpb3dHd14Y11ns6m+fn2iZOGowSEz3itZx8Uo4V3OKtf37T/K8XTi8R1ei4hQhENLOxp/+o0GoeeoBpfK/MBDROz6ZYcF+N4xL7GkLVsCDTOyAD5putJ0NFexlDqbHJj3gmasuLUDtKSz58cqQElz01e2ypUTueH5U8XBN+SVpfbWukqiQqP5TEvWLXCWZ/txjAB4uUBziTPNlYEfqtUAdq5FttBiMVGOw3wPK3MwZfAw3GTsHIZEIa+0BN8+Hmlw4DCMeBiIpblm85HihrS9fVtvPdjWzu6eWi1XEfG059kP+Ka6HJ/o6cGJDr56qd76HT361mMN+muajEaazydyJhMtzkaarniBA0ahS2YkCsG54X5JVEiha4cWmdzMHMyzZYETPJzgyPmnb8ZVyaE9DyjwsYTygV3Cd3MWthyxiDQiT53OBv7xMGKpT77399q7dQNDCKklHRt4lpDZnJxYAUPyJF8Cp7kWK4yL18izSGFABMs5BwG2eLxKpc++/Fr/9qNn6mz42mkTBc5YAY+A8yZpQdKWRKKoc7Ikcgk+CjDSJ1S+aw+SfEmSqyCxwghIgXG3KtXm7wBOCYYkqadycs7Guf78r/5Bd+/dU7vbYwGMTJYk95iDTvCOMQzvw1yqAnWBVLddgmPDsAeUVqryGQ7hdBgSRQt99D6GVXf0H5+farZcsSVrYkRYQ5V3QEYJdHJQklpOWr7aM0DJv4YOnmC9LAVvJKNHBGx/pwRa/BuGLFCC+XGuD77/Q73z8KGixhoOLKDIMTblOGAO7pdaaxsUWMAAWYTKsWeZHQHRTfV65AZMtJxP5ZKwnhNqNb3AaYX+7FGs/kZLP/n5UpMpUSAMkxSGA+e8oohDh+RdDkRD1gatKoC5W7CJeZdiID/iQ5aDExIJj2PU0ugE7Oezme5/51t67/G3gWsXKBSaTo7xK5iNoErejxySDIh5pQ/7jGAVciVcKXDO1QyWiqo5vxvXyaj8EngeKmxU5NSMyEz01l5P3/votpprUDbeb0DdEZ5s4qgQePICq9dUQt4WkBWG3utV/5KDaQ+3gyb4HhZpNHg5hqbgWpLW8mFze1ff/vNP1Olt17lSpHgcFlKdtMDPaBb8VyTvajlRMh/yHBEsZ0AUOHCYgigt5i+JKWGhRsym50DNWA9PE/2KKDeajjZ6oc6Os5qWm8DYBx52YMO/Odjh4DlQcoxGe5tb6nfXNBqPwGSmDhstweGSg5MSRKWt4fG5PvnhpxhxTzGJbFQ2HV1hcFRDYjo6IZRLPA1a8VZVTMghacaajXAJA20pq5ZAagzWZ0oXiVYrGK+APLIV9YJD+nYo9iW3b/dzTd9p6xe/GpPIJCo5ZSQZ8Jwlb4AKMPxnUKy/vb6uOze2dECqnA0vdTQcw9fLuqBUcLEVrv1339POrV11Wp26vB+dHXHIRGu9Lp7JgEEPJupoNTmxEquA8Fvaxu2+Wt0ma8DjyZTaAUU311UmCQEAYhTB4ZQCmC3V7bZ4h0NxsBms9eCNni6uAp0cXtU56EBJCBiSFsUQEGVIJyVH/Jwq/OLwtY7PzzWHTUwTBfzbaIRKoakZBn34l4/UbvU0nV7VSd2MkQx4eLUCHniu12opXY1JKl6mzMfdLaq6oxjaNF1VJBPyAVotKIRweBiG6nS7UCuHnSaaLkYUswVrWi1pCJ/wnrS/19D4koIDobRrr1PE2CPlk3EAlwrun5+faDhekOlUYzxnmC7YJM9SLReIsL227u3fIzdgHWivAOPNmEggDxazESxypfMZWK5yDh0p3thWs9MBEnbYP8kDPG9r10KQjSv2MnaLGzEQi9FIlc7OL4gEP5M3UQNo4fFBn+hVicZZqHXoOCXv0mIOgTRhOtKZGuEvKO8eyWNWHi+qmnM34P7sfKFP//YH+vbj99XqQI1+hiBb6OTsVEED8ddu1BQacJCg0eWZrpptFsYHIZWwwuMVUHGqFRCiihJ6D++W7pLfsV1J0YQGzZgu0Jy0EupNrk4T5QlsV4up7twaaP/NPf3rj5+p3IHKWdP0VQTrWUI7RN9fJlQ0yqFLllhR8xFPpwdzffcHH+rdR4+1oAquSMbD4+dU2EzdtS1EHIlOheU06J621jfWMYCocDKPJC6JUmkCSSmwoNTyJ0lTw8mkdlFLbb4m0kvwb9HYGXQ0HE7JP5K6QaJCXRW0vNn3FOFkk3QcEj/jZJI3N7hagifQ17XegG8pWLUOX6OogfFL8Bk3mxqTH2cvD/Tew8dqNjukmlEfOO6s158Yyg2AjIXbgauLnGpL4jpQJLvYSesKXlLdbX2HgiSiUmKwyemCxMeN9f4Jxc2HafC3jk5P62L34O2+FimQ9DIompqBYSxSr+VmeHiyQriROC3Cvx5W2miSNK0uh+/WxcQQu7f/Nh7wNZ4M8T406fO7zpZaa9AqmDQvuhSbwKNwucDSDDDNS05Z4rp4rcC4nE9EsjoQREm19UlobEDG5OxJ4Yopnvzdqq/vrnRrp6GPPtyFVhwkNdTLexkMuMToCQSEseBtaZugfbohhaUgSaWbN3fVbrfxYqG7d29T+hO0jrFOAAu4HHyAAl3nkCuk7Ujp/IqkvtJ4Sj3JFugoT1vrazUbldSXiuLl5FOtZgi8JODwRMY3mU4iIpsXU6AT+Go3N/XqxQUsKHqHHuvm6q0Veuf9rj7/7Uh9IGw1YELBKIGJHzXQ1BYR8GWcbs3M7Tff02wy1tHREYlHNMBkN/YpcBOUqKPdO++ogwEFzw7HxxqODuWltIrDcz354x/17OsDrXW29fFHH+utuwMKH/yejnR+eq4vn2Ik6dH2YwxsUNn9Whob0CwPfWB840a33jdAruQUPB8Fu7cb6le/5SGkjdWmVtzG4ZFpIcsFywMMwRMp+DobzjQBKj4hvtG/wcM9vXr1Ui++egHjrFGNNxFvK12cfa3joxe6vJpoTmK2gN57d+m4dt/Q86NzHRznWmqdwtM2XOj5q7GevEqpN67aFNCw09NwUUDD0LglpKz9tJ6DQgoyoqav1hayhpriIlUcZ6lhgjwJoGvyznpt3xgBJYdGoaIi5kp0vFFih8/J2Tn4bunk+EQvXvxB9+/fp2JukKjCwFMalSc6IbnDqAnsKrT8Ci/mWmtVev/+vjY3OhgM7TXaSuD7EIhsdtuwHsUsyMA5XRp4zz2wTHsKvUGRMd6PNB7jlBW1hpZutxNxnr5u3mrr6cEldaali8uhLkcX1tSj7qwDghnIL9hFeoOD3n/rbTaPoS1oD0x31x5TXIwCyRc6pdPXX9cGWA8xGNzVze2u+q0RMhyY0XxMOg3d2r8JJcbod1jFa9AXdEhKl+o+JHEtUQOgSr/BIcMtFI+3gJbXtbe3rTFa68XZXL/9w1Ana54++W4fOR7r9cFr+CnT1fCC/EFDmdZPMMIjEZKrhd756MMaIievj9XfbNdKMfYXWk7oW5OmdmAFS+z+1ro++vivgZkvr4ClUxoaDtWASlt0aBv3Hqu3uVvXFju8D+16RDr2U/Vvd7RJhHMOXtGZnV1daUaTH7gDPiY/TNKsdP/eGo7Z0PHhmN+PVCxoU0+l3u4C6X2HlnVs6zJdIBEccEHkaEpSjehZO80AMYWlo3MobgUtknQIOg/8GQYHN2/CGBG1i45gPtZ8DK/n61D+htb2Yq1vv0kvgWHkly1c2oAAOvX4OSSBTbhZwdvuuOqZNOGbiPVMiTkVcvp0qA2kwoO378gnol8+O9PTVytt7yO3KaT3+n3tICZ9H2+Bmjppcnj+5fPfa5Mmfb4YUwdiGvddLajEtmlMEXNpblwacGsZ6Yb5no27MQZvIQt6eBRhh0yYoyhXqwxuNzHGVIJSZfWrEzMXgkKj2MEBGGXOAftyG+QSNYEGyUNt9ujODg9H6jEEmK6mFLWFjg4X6vfJId43/K9vbRIBGgPrbKywuFRTN3c0mlzp8PSZ3nvrw7oY0XfCxW0aHMOyW7d2Ll0X9EXi5bX0dgKgRZSMoy/Pjyl4ntYHN9H/MMzynNoxIqdQuayRlROqLsIN4ZRmTPWIDERLZTbZ0SRqOfDgmXass5Mr7Wz19BcfxhpOXtX9RwkDHi+XWlAH3BQWSBLKzAI24PCeT5WDkXa23tfu1oYaGGWl8vDwEMwiIji0Td3sz4y6kZl0gMhKqmORTTQeHvPsMyJU6vLiVE+efK7f/eaXuji5wJDrfUIfyJSoSeBXUa0rmMsjr1yXwobcaBAJ12/rmDGkRWY8RVOhbLd3OuyL9MBv6D6o/aju1mAOm3sSiczTYpSofzfUtx4+0utXTzTidwzh8A58ZMrAnrOCR7BNcufok4CNXTqtIp3RCjLMArtPfvNr/fgnv6AJctVnKtEKVtrtujjGkpSi2UT9wH5G48b9AQf2POoFuZLj2Z1BF2+70DV5iIwGhcD6etxDI1A7u4Dd3JDBbhTa5As0UDGBt8ZnLwndcxaktK9vkFcNaDZjDDglCS3RExZb8TOd0Yw20CZrC4qf9RVU6la0rqvTM63of0Na0ihINFrmupobTGmUwP1klmqBEi7dJsU1hBhiOWGLPWMa+ZaWs4lu77R0/9ZGzYQHp65+/+upJgtXF0Noeg7oTC9Zw+1y0CQhnHxihrwXL1/qs/RK9x880gnlP0HXJ8lQt7StG3vmefpfpEdF02F9bWlq0qGVpEMaDAagOdT3v/8Dffrxd3V19ZlcKi3JAxUuzHn0zoxT0DKWtKEVHtxrA+CAT0XXZqNOmwQev36tNVO65N3REZoLUojQWOAAQ3mNM/hN2sE5c5qIzUO+zaz7b1NU4Oivnz/V69dnms6Yc6Jf/vHW9cTNJdkc2KuoJTRlmQ09TmbsYH82opbacR8vIsR8+uXuHvLgQlcxsyUDr40EGUxlQNAnIh4NUkgErKUEVRSpqV4fjxnNAC3yYzIN9fI3czVuIfmbLc6PE0GByQ0/gNNddwE0kL8mVUnYWlTRSUUUn8HuHUV0an3YpGGzPtSnTe5gSp6lfpDYIdOCFCwXqxHFbo45GzTj/0ul/pn2d79BPzuiWL7U9u4NpgwhuCaCjT8ZTvT9sElkQvoCgzENFHJmBCR7dp9wVunoeK7mDUMyBjZACqUlh71yGzfO5/SYaPJuDP6gOG86Vz5lVAhDeEwnGmRuFzp78PgDbd/dr6t2gJbJmAjwBz1sUKtSTs8U7lLPnv1Ov/rDIROLW9q/864mzIoW7JGmPV3Rbe0MWprRrXXxhY1JQqZ4MXujI/g4TCQyHLXUN9/s6NlJrv/5BaGn+e+ACruLWE5NllszY8QCAaSm7gj91uaAz6aaGFCAvdFszsSOKCCZg3CqZNyHAvbls9gKyWChdTAO8mMhel6qKsNwDW4M9PHgO9q92WLMyEZ0UI1yHZZa6udffKXPPn+GHG/Xld5heBRAEHEM4+B9XAJF4zxY7OzE1f99kSiNjFbN22QsCOGBawhirMOHIzjMWEok9IQ5pAebwOe4tkm4ljQuLoJrZ7NF93+mwy9+ru03SMSNPWBH4478SEmwErHng+u4saF7uw+B2IZ+98ef6osXvyRZY5RqqtuDQHdv0sWRN821mPGi5S6NUZumiOpeQs3WpE8uEv3ssxP910+Xag88jMMwiL+CJclZBTbqJPHNDirrtZy2H4wGExp1K/8e1GrDKNplkitk0wil7unw7LmePv1CH/zNPyvqbzH2BrO8bLcqVkscd5Oi1makfsmmC9TjQMv2Uqcnp1oMSz18e6B7+01w3CFBK7ouRonI7bow4v0CI/79v4/0nz+aqnerPjnsRi9Axbb7NrszyEFETp6WQNgi6Ef2SzxuTf6S0OVgPyIXAgqDjUZisBeQTDb0yuDoBF1ydfyKMk/nz7s0FHX1DGKYAUzafUC319YHg09Ji0Pm/8+VzRibXBmrpHWi0mBBjSE6ieJFJDMIwChxhUw/G5KTO6aJLFkLBB5NvhWpuolnMk2vGWCATTpMAdQNjXVe86VdJFh4MARpQb6gW0hgYu3RTibkSsbh6eF18epL9XdI6ALKRMw14D4b+9k8p01CtjjcanzB/JQR5OoYfYl+gr8dJLvVA6sjEdTZiDo1k6RIZ+tJLOoDrp0OYK0SiWJCsyDCGTXDLhetlQxNc3F8bOOsRCCD72OE1Y1dZj0cckg7uYKrK17oGG8jnI6OTuiQRkQHyiQKw5Ov6G9fqzfYo2ixeSvWwhgBargqGMEcXiqdHCiZHrIZnqIVtG6vg1xuMpSyewGrOxXv1CRCLllv62NARjtpl252K7qiI1tyA2oQs0sNG4ItKIZL8q0JpW91qQMhWVKSiA1auSnXlvwOCdvhwSUMQ+vIePGS8JckTxzjPYqNwe3l11zWdTdhj1V969IgzDNGMnlmoo05KZVbUGiDfsPuyxxubvrA0TeBiPct71b15M68Si5xQKRwXdWTMVe/QDLBYXaJEUA1JnkIH0ZRryw3keNWM/x6voKVPtbaNZMZYAfP+MsM7RKgjyKreFbBYQOPsJHnapbodsYiw8mc2SVTOoyyKbMfzBUDvRm3l543YyMaFA7bIvw9ouDSnZUmGWgHrR/2gKALtFLedSmSdsk9n0KPm+QjB+Y1qrUxnKWB0aaJS85FIS1RmX4OAZsszgl/LYxyLjWYeyRkOaKQUDMroPGwC+g5MxrqNkZgICBskYRT8Hl0AlTqPBoxEmLKzHqmwiP+Yw1Pl0uLbp98YQZKxuBZkpJxoY3hbXhW4owUKg6AUsQIx1KFCzGiTgfHOnZ/YFXCLtTtctw6R/u5YFoH9EzH8AB4NG1CxIgCltErtzoVSUuy0aAnQCilmLQYNba6DfrTVzWO37j3jVqTzKbcleEED2+5zHM8Pg7rmvpscvAOI5TAkpbEXzFKKYztbApCsq5gOKNI+ye0s2BYytw1s3Ei0TPdZN2cza6sdhja7PsEg1yzqhZYbG434SmCxGY09v86RCxk5X3M1Gw4ZnIGxiOwWLkxniZqSIM+1fvh40e0ejsYZVdVOUYydLKJdaNJ29gC80z4SsboS0taRijsE1hPwO1MkoxrCrUbf06udeabKyJtlG550SIiFkWrwg7vmBFGlTmetgYLsjf5ioAD59asNNE2hrU5mLQbkGRlt48sQPBbzEtN/Bm1MWWEt8EwNaNPg+2++6Aerx+8eMlt/CWHtOY91TrRipgBtZn7uB20D/fKFaxk924OexlEa2Fj5wLz2zsMs5BGDo7qdBh3QhwBTY5NyS1HSd26RhmrcfD6trKGUIa6s/bS4Gb/d4op0sy8ACQMl1bYNnqoRhLI+Jh2AY9yqWcjdZ7tcuNy9+4+eG+iQg80n10SiYU21wL117mggPIirlNt3Wtv0xqaRDDWAGZ8XTvS9NPObcaY0HuH3InqZgrnmvJ1YTOw1CRvrPcwh1u/jodJWJKSn/EzVzgYYyGzmZFdNRkzGPukSGVixUawCM9aH2HNjN0p5BhFvdPu9joDWB8xFtKpXVEImYNyYWLXpeZszzCMr+1AIIB1MAioXsM3QYMxsqGJP71YEEEGz+RdUucp+GcftgX/xpMmL1z9PxoygW0vWJm/AAAAAElFTkSuQmCC\n","Latimeria_chalumnae":"data:image/png;base64,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\n","Sus_scrofa_map":"data:image/png;base64,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\n","Gasterosteus_aculeatus":"data:image/png;base64,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\n","Loxodonta_africana":"data:image/png;base64,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\n","Callithrix_jacchus":"data:image/png;base64,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\n","Gadus_morhua":"data:image/png;base64,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\n","Nomascus_leucogenys":"data:image/png;base64,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\n","Astyanax_mexicanus":"data:image/png;base64,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\n","Canis_familiaris":"data:image/png;base64,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\n","Sarcophilus_harrisii":"data:image/png;base64,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\n","Myotis_lucifugus":"data:image/png;base64,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\n","Tetraodon_nigroviridis":"data:image/png;base64,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\n","Choloepus_hoffmanni":"data:image/png;base64,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\n","Mus_musculus":"data:image/png;base64,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\n"}
module.exports = {
ensembl_pics: pics,
};
},{}],3:[function(require,module,exports){
var apijs = require('tnt.api');
var tree = {};
tree.diagonal = function () {
var d = function (diagonalPath) {
var source = diagonalPath.source;
var target = diagonalPath.target;
var midpointX = (source.x + target.x) / 2;
var midpointY = (source.y + target.y) / 2;
var pathData = [source, {x: target.x, y: source.y}, target];
pathData = pathData.map(d.projection());
return d.path()(pathData, radial_calc.call(this,pathData))
};
var api = apijs (d)
.getset ('projection')
.getset ('path')
var coordinateToAngle = function (coord, radius) {
var wholeAngle = 2 * Math.PI,
quarterAngle = wholeAngle / 4
var coordQuad = coord[0] >= 0 ? (coord[1] >= 0 ? 1 : 2) : (coord[1] >= 0 ? 4 : 3),
coordBaseAngle = Math.abs(Math.asin(coord[1] / radius))
// Since this is just based on the angle of the right triangle formed
// by the coordinate and the origin, each quad will have different
// offsets
var coordAngle;
switch (coordQuad) {
case 1:
coordAngle = quarterAngle - coordBaseAngle
break
case 2:
coordAngle = quarterAngle + coordBaseAngle
break
case 3:
coordAngle = 2*quarterAngle + quarterAngle - coordBaseAngle
break
case 4:
coordAngle = 3*quarterAngle + coordBaseAngle
}
return coordAngle
};
var radial_calc = function (pathData) {
var src = pathData[0];
var mid = pathData[1];
var dst = pathData[2];
var radius = Math.sqrt(src[0]*src[0] + src[1]*src[1]);
var srcAngle = coordinateToAngle(src, radius);
var midAngle = coordinateToAngle(mid, radius);
var clockwise = Math.abs(midAngle - srcAngle) > Math.PI ? midAngle <= srcAngle : midAngle > srcAngle;
return {
radius : radius,
clockwise : clockwise
};
};
return d;
};
// vertical diagonal for rect branches
tree.diagonal.vertical = function () {
var path = function(pathData, obj) {
var src = pathData[0];
var mid = pathData[1];
var dst = pathData[2];
var radius = 200000; // Number long enough
return "M" + src + " A" + [radius,radius] + " 0 0,0 " + mid + "M" + mid + "L" + dst;
};
var projection = function(d) {
return [d.y, d.x];
}
return tree.diagonal()
.path(path)
.projection(projection);
};
tree.diagonal.radial = function () {
var path = function(pathData, obj) {
var src = pathData[0];
var mid = pathData[1];
var dst = pathData[2];
var radius = obj.radius;
var clockwise = obj.clockwise;
if (clockwise) {
return "M" + src + " A" + [radius,radius] + " 0 0,0 " + mid + "M" + mid + "L" + dst;
} else {
return "M" + mid + " A" + [radius,radius] + " 0 0,0 " + src + "M" + mid + "L" + dst;
}
};
var projection = function(d) {
var r = d.y, a = (d.x - 90) / 180 * Math.PI;
return [r * Math.cos(a), r * Math.sin(a)];
};
return tree.diagonal()
.path(path)
.projection(projection)
};
module.exports = exports = tree.diagonal;
},{"tnt.api":14}],4:[function(require,module,exports){
if (typeof tnt === "undefined") {
module.exports = tnt = {}
}
require("d3");
var eventsystem = require("biojs-events");
eventsystem.mixin(tnt);
tnt.utils = require("tnt.utils");
tnt.tooltip = require("tnt.tooltip");
tnt.tree = require("./treeWrapper.js");
d3.selection.prototype.selectAncestor = function(type) {
type = type.toLowerCase();
var selfNode = this.node();
if (selfNode.parentNode === null) {
console.log("No more parents");
return undefined;
}
var tagName = selfNode.parentNode.tagName;
if ((tagName !== undefined) && (tagName.toLowerCase() === type)) {
return d3.select(selfNode.parentNode);
} else {
return d3.select(selfNode.parentNode).selectAncestor(type);
}
};
},{"./treeWrapper.js":9,"biojs-events":10,"d3":13,"tnt.tooltip":18,"tnt.utils":22}],5:[function(require,module,exports){
var apijs = require("tnt.api");
var tree = {};
tree.label = function () {
"use strict";
// TODO: Not sure if we should be removing by default prev labels
// or it would be better to have a separate remove method called by the vis
// on update
// We also have the problem that we may be transitioning from
// text to img labels and we need to remove the label of a different type
var label = function (node, layout_type) {
if (typeof (node) !== 'function') {
throw(node);
}
label.display().call(this, node, layout_type)
.attr("class", "tnt_tree_label")
.attr("transform", function (d) {
var t = label.transform()(node, layout_type);
return "translate (" + t.translate[0] + " " + t.translate[1] + ")rotate(" + t.rotate + ")";
})
// TODO: this click event is probably never fired since there is an onclick event in the node g element?
.on("click", function(){
if (label.on_click() !== undefined) {
d3.event.stopPropagation();
label.on_click().call(this, node);
}
});
};
var api = apijs (label)
.getset ('width', function () { throw "Need a width callback" })
.getset ('height', function () { throw "Need a height callback" })
.getset ('display', function () { throw "Need a display callback" })
.getset ('transform', function () { throw "Need a transform callback" })
.getset ('on_click');
return label;
};
// Text based labels
tree.label.text = function () {
var label = tree.label();
var api = apijs (label)
.getset ('fontsize', 10)
.getset ('color', "#000")
.getset ('text', function (d) {
return d.data().name;
})
label.display (function (node, layout_type) {
var l = d3.select(this)
.append("text")
.attr("text-anchor", function (d) {
if (layout_type === "radial") {
return (d.x%360 < 180) ? "start" : "end";
}
return "start";
})
.text(function(){
return label.text()(node)
})
.style('font-size', label.fontsize() + "px")
.style('fill', d3.functor(label.color())(node));
return l;
});
label.transform (function (node, layout_type) {
var d = node.data();
var t = {
translate : [10, 5],
rotate : 0
};
if (layout_type === "radial") {
t.translate[1] = t.translate[1] - (d.x%360 < 180 ? 0 : label.fontsize())
t.rotate = (d.x%360 < 180 ? 0 : 180)
}
return t;
});
// label.transform (function (node) {
// var d = node.data();
// return "translate(10 5)rotate(" + (d.x%360 < 180 ? 0 : 180) + ")";
// });
label.width (function (node) {
var svg = d3.select("body")
.append("svg")
.attr("height", 0)
.style('visibility', 'hidden');
var text = svg
.append("text")
.style('font-size', label.fontsize() + "px")
.text(label.text()(node));
var width = text.node().getBBox().width;
svg.remove();
return width;
});
label.height (function (node) {
return label.fontsize();
});
return label;
};
// Image based labels
tree.label.img = function () {
var label = tree.label();
var api = apijs (label)
.getset ('src', function () {})
label.display (function (node, layout_type) {
if (label.src()(node)) {
var l = d3.select(this)
.append("image")
.attr("width", label.width()())
.attr("height", label.height()())
.attr("xlink:href", label.src()(node));
return l;
}
// fallback text in case the img is not found?
return d3.select(this)
.append("text")
.text("");
});
label.transform (function (node, layout_type) {
var d = node.data();
var t = {
translate : [10, (-label.height()() / 2)],
rotate : 0
};
if (layout_type === 'radial') {
t.translate[0] = t.translate[0] + (d.x%360 < 180 ? 0 : label.width()()),
t.translate[1] = t.translate[1] + (d.x%360 < 180 ? 0 : label.height()()),
t.rotate = (d.x%360 < 180 ? 0 : 180)
}
return t;
});
return label;
};
// Labels made of 2+ simple labels
tree.label.composite = function () {
var labels = [];
var label = function (node, layout_type) {
var curr_xoffset = 0;
for (var i=0; i<labels.length; i++) {
var display = labels[i];
(function (offset) {
display.transform (function (node, layout_type) {
var tsuper = display._super_.transform()(node, layout_type);
var t = {
translate : [offset + tsuper.translate[0], tsuper.translate[1]],
rotate : tsuper.rotate
};
return t;
})
})(curr_xoffset);
curr_xoffset += 10;
curr_xoffset += display.width()(node);
display.call(this, node, layout_type);
}
};
var api = apijs (label)
api.method ('add_label', function (display, node) {
display._super_ = {};
apijs (display._super_)
.get ('transform', display.transform());
labels.push(display);
return label;
});
api.method ('width', function () {
return function (node) {
var tot_width = 0;
for (var i=0; i<labels.length; i++) {
tot_width += parseInt(labels[i].width()(node));
tot_width += parseInt(labels[i]._super_.transform()(node).translate[0]);
}
return tot_width;
}
});
api.method ('height', function () {
return function (node) {
var max_height = 0;
for (var i=0; i<labels.length; i++) {
var curr_height = labels[i].height()(node);
if ( curr_height > max_height) {
max_height = curr_height;
}
}
return max_height;
}
});
return label;
};
module.exports = exports = tree.label;
},{"tnt.api":14}],6:[function(require,module,exports){
// Based on the code by Ken-ichi Ueda in http://bl.ocks.org/kueda/1036776#d3.phylogram.js
var apijs = require("tnt.api");
var diagonal = require("./diagonal.js");
var tree = {};
tree.layout = function () {
var l = function () {
};
var cluster = d3.layout.cluster()
.sort(null)
.value(function (d) {return d.length} )
// .children(function (d) {return d.branchset})
.separation(function () {return 1});
var api = apijs (l)
.getset ('scale', true)
.getset ('max_leaf_label_width', 0)
.method ("cluster", cluster)
.method('yscale', function () {throw "yscale is not defined in the base object"})
.method('adjust_cluster_size', function () {throw "adjust_cluster_size is not defined in the base object" })
.method('width', function () {throw "width is not defined in the base object"})
.method('height', function () {throw "height is not defined in the base object"});
api.method('scale_branch_lengths', function (curr) {
if (l.scale() === false) {
return
}
var nodes = curr.nodes;
var tree = curr.tree;
var root_dists = nodes.map (function (d) {
return d._root_dist;
});
var yscale = l.yscale(root_dists);
tree.apply (function (node) {
node.property("y", yscale(node.root_dist()));
});
});
return l;
};
tree.layout.vertical = function () {
var layout = tree.layout();
// Elements like 'labels' depend on the layout type. This exposes a way of identifying the layout type
layout.type = "vertical";
var api = apijs (layout)
.getset ('width', 360)
.get ('translate_vis', [20,20])
.method ('diagonal', diagonal.vertical)
.method ('transform_node', function (d) {
return "translate(" + d.y + "," + d.x + ")";
});
api.method('height', function (params) {
return (params.n_leaves * params.label_height);
});
api.method('yscale', function (dists) {
return d3.scale.linear()
.domain([0, d3.max(dists)])
.range([0, layout.width() - 20 - layout.max_leaf_label_width()]);
});
api.method('adjust_cluster_size', function (params) {
var h = layout.height(params);
var w = layout.width() - layout.max_leaf_label_width() - layout.translate_vis()[0] - params.label_padding;
layout.cluster.size ([h,w]);
return layout;
});
return layout;
};
tree.layout.radial = function () {
var layout = tree.layout();
// Elements like 'labels' depend on the layout type. This exposes a way of identifying the layout type
layout.type = 'radial';
var default_width = 360;
var r = default_width / 2;
var conf = {
width : 360
};
var api = apijs (layout)
.getset (conf)
.getset ('translate_vis', [r, r]) // TODO: 1.3 should be replaced by a sensible value
.method ('transform_node', function (d) {
return "rotate(" + (d.x - 90) + ")translate(" + d.y + ")";
})
.method ('diagonal', diagonal.radial)
.method ('height', function () { return conf.width });
// Changes in width affect changes in r
layout.width.transform (function (val) {
r = val / 2;
layout.cluster.size([360, r])
layout.translate_vis([r, r]);
return val;
});
api.method ("yscale", function (dists) {
return d3.scale.linear()
.domain([0,d3.max(dists)])
.range([0, r]);
});
api.method ("adjust_cluster_size", function (params) {
var r = (layout.width()/2) - layout.max_leaf_label_width() - 20
layout.cluster.size([360, r]);
return layout;
});
return layout;
};
module.exports = exports = tree.layout;
},{"./diagonal.js":3,"tnt.api":14}],7:[function(require,module,exports){
var apijs = require("tnt.api");
var tree = {};
tree.node_display = function () {
"use strict";
var n = function (node) {
n.display().call(this, node)
};
var api = apijs (n)
.getset("size", 4.5)
.getset("fill", "black")
.getset("stroke", "black")
.getset("stroke_width", "1px")
.getset("display", function () {throw "display is not defined in the base object"});
return n;
};
tree.node_display.circle = function () {
var n = tree.node_display();
n.display (function (node) {
d3.select(this)
.append("circle")
.attr("r", function (d) {
return d3.functor(n.size())(node);
})
.attr("fill", function (d) {
return d3.functor(n.fill())(node);
})
.attr("stroke", function (d) {
return d3.functor(n.stroke())(node);
})
.attr("stroke-width", function (d) {
return d3.functor(n.stroke_width())(node);
})
});
return n;
};
tree.node_display.square = function () {
var n = tree.node_display();
n.display (function (node) {
var s = d3.functor(n.size())(node);
d3.select(this)
.append("rect")
.attr("x", function (d) {
return -s
})
.attr("y", function (d) {
return -s;
})
.attr("width", function (d) {
return s*2;
})
.attr("height", function (d) {
return s*2;
})
.attr("fill", function (d) {
return d3.functor(n.fill())(node);
})
.attr("stroke", function (d) {
return d3.functor(n.stroke())(node);
})
.attr("stroke-width", function (d) {
return d3.functor(n.stroke_width())(node);
})
});
return n;
};
tree.node_display.triangle = function () {
var n = tree.node_display();
n.display (function (node) {
var s = d3.functor(n.size())(node);
d3.select(this)
.append("polygon")
.attr("points", (-s) + ",0 " + s + "," + (-s) + " " + s + "," + s)
.attr("fill", function (d) {
return d3.functor(n.fill())(node);
})
.attr("stroke", function (d) {
return d3.functor(n.stroke())(node);
})
.attr("stroke-width", function (d) {
return d3.functor(n.stroke_width())(node);
})
});
return n;
};
tree.node_display.cond = function () {
var n = tree.node_display();
// conditions are objects with
// name : a name for this display
// callback: the condition to apply (receives a tnt.node)
// display: a node_display
var conds = [];
n.display (function (node) {
var s = d3.functor(n.size())(node);
for (var i=0; i<conds.length; i++) {
var cond = conds[i];
// For each node, the first condition met is used
if (cond.callback.call(this, node) === true) {
cond.display.call(this, node)
break;
}
}
})
var api = apijs(n);
api.method("add", function (name, cbak, node_display) {
conds.push({ name : name,
callback : cbak,
display : node_display
});
return n;
});
api.method("reset", function () {
conds = [];
return n;
});
api.method("update", function (name, cbak, new_display) {
for (var i=0; i<conds.length; i++) {
if (conds[i].name === name) {
conds[i].callback = cbak;
conds[i].display = new_display;
}
}
return n;
});
return n;
};
module.exports = exports = tree.node_display;
},{"tnt.api":14}],8:[function(require,module,exports){
var apijs = require("tnt.api");
tnt.tree = function () {
"use strict";
var conf = {
duration : 500, // Duration of the transitions
node_display : tnt.tree.node_display.circle(),
label : tnt.tree.label.text(),
layout : tnt.tree.layout.vertical(),
on_click : function () {},
on_dbl_click : function () {},
on_mouseover : function () {},
link_color : 'black',
id : "_id"
};
// Keep track of the focused node
// TODO: Would it be better to have multiple focused nodes? (ie use an array)
var focused_node;
// Extra delay in the transitions (TODO: Needed?)
var delay = 0;
// Ease of the transitions
var ease = "cubic-in-out";
// By node data
var sp_counts = {};
var scale = false;
// The id of the tree container
var div_id;
// The tree visualization (svg)
var svg;
var vis;
// TODO: For now, counts are given only for leaves
// but it may be good to allow counts for internal nodes
var counts = {};
// The full tree
var base = {
tree : undefined,
data : undefined,
nodes : undefined,
links : undefined
};
// The curr tree. Needed to re-compute the links / nodes positions of subtrees
var curr = {
tree : undefined,
data : undefined,
nodes : undefined,
links : undefined
};
// The cbak returned
var tree = function (div) {
div_id = d3.select(div).attr("id");
var tree_div = d3.select(div)
.append("div")
.style("width", (conf.layout.width() + "px"))
.attr("class", "tnt_groupDiv");
var cluster = conf.layout.cluster;
var n_leaves = curr.tree.get_all_leaves().length;
var max_leaf_label_length = function (tree) {
var max = 0;
var leaves = tree.get_all_leaves();
for (var i=0; i<leaves.length; i++) {
var label_width = conf.label.width()(leaves[i]);
if (label_width > max) {
max = label_width;
}
}
return max;
};
var max_label_length = max_leaf_label_length(curr.tree);
conf.layout.max_leaf_label_width(max_label_length);
// Cluster size is the result of...
// total width of the vis - transform for the tree - max_leaf_label_width - horizontal transform of the label
// TODO: Substitute 15 by the horizontal transform of the nodes
var cluster_size_params = {
n_leaves : n_leaves,
label_height : d3.functor(conf.label.height())(),
label_padding : 15
};
conf.layout.adjust_cluster_size(cluster_size_params);
var diagonal = conf.layout.diagonal();
var transform = conf.layout.transform_node;
svg = tree_div
.append("svg")
.attr("width", conf.layout.width())
.attr("height", conf.layout.height(cluster_size_params) + 30)
.attr("fill", "none");
vis = svg
.append("g")
.attr("id", "tnt_st_" + div_id)
.attr("transform",
"translate(" +
conf.layout.translate_vis()[0] +
"," +
conf.layout.translate_vis()[1] +
")");
curr.nodes = cluster.nodes(curr.data);
conf.layout.scale_branch_lengths(curr);
curr.links = cluster.links(curr.nodes);
// LINKS
var link = vis.selectAll("path.tnt_tree_link")
.data(curr.links, function(d){return d.target[conf.id]});
link
.enter()
.append("path")
.attr("class", "tnt_tree_link")
.attr("id", function(d) {
return "tnt_tree_link_" + div_id + "_" + d.target._id;
})
.style("stroke", function (d) {
return d3.functor(conf.link_color)(tnt.tree.node(d.source), tnt.tree.node(d.target));
})
.attr("d", diagonal);
// NODES
var node = vis.selectAll("g.tnt_tree_node")
.data(curr.nodes, function(d) {return d[conf.id]});
var new_node = node
.enter().append("g")
.attr("class", function(n) {
if (n.children) {
if (n.depth == 0) {
return "root tnt_tree_node"
} else {
return "inner tnt_tree_node"
}
} else {
return "leaf tnt_tree_node"
}
})
.attr("id", function(d) {
return "tnt_tree_node_" + div_id + "_" + d._id
})
.attr("transform", transform);
// display node shape
new_node
.each (function (d) {
conf.node_display.call(this, tnt.tree.node(d))
});
// display node label
new_node
.each (function (d) {
conf.label.call(this, tnt.tree.node(d), conf.layout.type);
});
new_node.on("click", function (node) {
conf.on_click.call(this, tnt.tree.node(node));
tnt.trigger("node:click",tnt.tree.node(node));
});
new_node.on("mouseenter", function (node) {
conf.on_mouseover.call(this, tnt.tree.node(node));
tnt.trigger("node:hover",tnt.tree.node(node));
});
new_node.on("dblclick", function (node) {
conf.on_dbl_click.call(this, tnt.tree.node(node));
tnt.trigger("node:dblclick",tnt.tree.node(node));
});
// Update plots an updated tree
api.method ('update', function() {
tree_div
.style("width", (conf.layout.width() + "px"));
svg.attr("width", conf.layout.width());
var cluster = conf.layout.cluster;
var diagonal = conf.layout.diagonal();
var transform = conf.layout.transform_node;
var max_label_length = max_leaf_label_length(curr.tree);
conf.layout.max_leaf_label_width(max_label_length);
// Cluster size is the result of...
// total width of the vis - transform for the tree - max_leaf_label_width - horizontal transform of the label
// TODO: Substitute 15 by the transform of the nodes (probably by selecting one node assuming all the nodes have the same transform
var n_leaves = curr.tree.get_all_leaves().length;
var cluster_size_params = {
n_leaves : n_leaves,
label_height : d3.functor(conf.label.height())(),
label_padding : 15
};
conf.layout.adjust_cluster_size(cluster_size_params);
svg
.transition()
.duration(conf.duration)
.ease(ease)
.attr("height", conf.layout.height(cluster_size_params) + 30); // height is in the layout
vis
.transition()
.duration(conf.duration)
.attr("transform",
"translate(" +
conf.layout.translate_vis()[0] +
"," +
conf.layout.translate_vis()[1] +
")");
curr.nodes = cluster.nodes(curr.data);
conf.layout.scale_branch_lengths(curr);
curr.links = cluster.links(curr.nodes);
// NODES
var node = vis.selectAll("g.tnt_tree_node")
.data(curr.nodes, function(d) {return d[conf.id]});
// LINKS
var link = vis.selectAll("path.tnt_tree_link")
.data(curr.links, function(d){return d.target[conf.id]});
var exit_link = link
.exit()
.remove();
link
.enter()
.append("path")
.attr("class", "tnt_tree_link")
.attr("id", function (d) {
return "tnt_tree_link_" + div_id + "_" + d.target._id;
})
.attr("stroke", function (d) {
return d3.functor(conf.link_color)(tnt.tree.node(d.source), tnt.tree.node(d.target));
})
.attr("d", diagonal);
link
.transition()
.ease(ease)
.duration(conf.duration)
.attr("d", diagonal);
// Nodes
var new_node = node
.enter()
.append("g")
.attr("class", function(n) {
if (n.children) {
if (n.depth == 0) {
return "root tnt_tree_node"
} else {
return "inner tnt_tree_node"
}
} else {
return "leaf tnt_tree_node"
}
})
.attr("id", function (d) {
return "tnt_tree_node_" + div_id + "_" + d._id;
})
.attr("transform", transform);
// Exiting nodes are just removed
node
.exit()
.remove();
new_node.on("click", function (node) {
conf.on_click.call(this, tnt.tree.node(node));
tnt.trigger("node:click",tnt.tree.node(node));
});
new_node.on("mouseenter", function (node) {
conf.on_mouseover.call(this, tnt.tree.node(node));
tnt.trigger("node:hover",tnt.tree.node(node));
});
new_node.on("dblclick", function (node) {
conf.on_dbl_click.call(this, tnt.tree.node(node));
tnt.trigger("node:dblclick",tnt.tree.node(node));
});
// We need to re-create all the nodes again in case they have changed lively (or the layout)
node.selectAll("*").remove();
node
.each(function (d) {
conf.node_display.call(this, tnt.tree.node(d))
});
// We need to re-create all the labels again in case they have changed lively (or the layout)
node
.each (function (d) {
conf.label.call(this, tnt.tree.node(d), conf.layout.type);
});
node
.transition()
.ease(ease)
.duration(conf.duration)
.attr("transform", transform);
});
};
// API
var api = apijs (tree)
.getset (conf)
// TODO: Rewrite data using getset / finalizers & transforms
api.method ('data', function (d) {
if (!arguments.length) {
return base.data;
}
// The original data is stored as the base and curr data
base.data = d;
curr.data = d;
// Set up a new tree based on the data
var newtree = tnt.tree.node(base.data);
tree.root(newtree);
tnt.trigger("data:hasChanged", base.data);
return tree;
});
// TODO: Rewrite tree using getset / finalizers & transforms
api.method ('root', function (t) {
if (!arguments.length) {
return curr.tree;
}
// The original tree is stored as the base, prev and curr tree
base.tree = t;
curr.tree = base.tree;
// prev.tree = base.tree;
return tree;
});
api.method ('subtree', function (curr_nodes) {
var subtree = base.tree.subtree(curr_nodes);
curr.data = subtree.data();
curr.tree = subtree;
return tree;
});
api.method ('focus_node', function (node) {
// find
var found_node = tree.root().find_node_by_field(node.id(), '_id');
focused_node = found_node
tree.subtree(found_node.get_all_leaves());
return tree;
});
api.method ('has_focus', function (node) {
return ((focused_node !== undefined) && (focused_node.id() === node.id()));
});
api.method ('release_focus', function () {
tree.data (base.data);
focused_node = undefined;
return tree;
});
// api.method ('tooltip', function () {
// // var tooltip = tnt.tooltip().type("table");
// var tree_tooltip = function (node) {
// node = node.data();
// var obj = {};
// obj.header = "Name: " + node.name;
// obj.rows = [];
// obj.rows.push({
// label : "_id",
// value : node._id
// });
// obj.rows.push({
// label : "Depth",
// value : node.depth
// });
// obj.rows.push({
// label : "Length",
// value : node.branch_length
// });
// obj.rows.push({
// label : "N.Children",
// value : node.children ? node.children.length : 0
// });
// tnt.tooltip.table()
// .call(this, obj);
// };
// return tree_tooltip;
// });
return tree;
};
module.exports = exports = tnt.tree;
},{"tnt.api":14}],9:[function(require,module,exports){
var tree = require ("./tree.js");
tree.label = require("./label.js");
tree.diagonal = require("./diagonal.js");
tree.layout = require("./layout.js");
tree.node_display = require("./node_display.js");
tree.node = require("tnt.tree.node");
tree.parse_newick = require("tnt.newick").parse_newick;
tree.parse_nhx = require("tnt.newick").parse_nhx;
module.exports = exports = tree;
},{"./diagonal.js":3,"./label.js":5,"./layout.js":6,"./node_display.js":7,"./tree.js":8,"tnt.newick":16,"tnt.tree.node":20}],10:[function(require,module,exports){
var events = require("backbone-events-standalone");
events.onAll = function(callback,context){
this.on("all", callback,context);
return this;
};
// Mixin utility
events.oldMixin = events.mixin;
events.mixin = function(proto) {
events.oldMixin(proto);
// add custom onAll
var exports = ['onAll'];
for(var i=0; i < exports.length;i++){
var name = exports[i];
proto[name] = this[name];
}
return proto;
};
module.exports = events;
},{"backbone-events-standalone":12}],11:[function(require,module,exports){
/**
* Standalone extraction of Backbone.Events, no external dependency required.
* Degrades nicely when Backone/underscore are already available in the current
* global context.
*
* Note that docs suggest to use underscore's `_.extend()` method to add Events
* support to some given object. A `mixin()` method has been added to the Events
* prototype to avoid using underscore for that sole purpose:
*
* var myEventEmitter = BackboneEvents.mixin({});
*
* Or for a function constructor:
*
* function MyConstructor(){}
* MyConstructor.prototype.foo = function(){}
* BackboneEvents.mixin(MyConstructor.prototype);
*
* (c) 2009-2013 Jeremy Ashkenas, DocumentCloud Inc.
* (c) 2013 Nicolas Perriault
*/
/* global exports:true, define, module */
(function() {
var root = this,
nativeForEach = Array.prototype.forEach,
hasOwnProperty = Object.prototype.hasOwnProperty,
slice = Array.prototype.slice,
idCounter = 0;
// Returns a partial implementation matching the minimal API subset required
// by Backbone.Events
function miniscore() {
return {
keys: Object.keys || function (obj) {
if (typeof obj !== "object" && typeof obj !== "function" || obj === null) {
throw new TypeError("keys() called on a non-object");
}
var key, keys = [];
for (key in obj) {
if (obj.hasOwnProperty(key)) {
keys[keys.length] = key;
}
}
return keys;
},
uniqueId: function(prefix) {
var id = ++idCounter + '';
return prefix ? prefix + id : id;
},
has: function(obj, key) {
return hasOwnProperty.call(obj, key);
},
each: function(obj, iterator, context) {
if (obj == null) return;
if (nativeForEach && obj.forEach === nativeForEach) {
obj.forEach(iterator, context);
} else if (obj.length === +obj.length) {
for (var i = 0, l = obj.length; i < l; i++) {
iterator.call(context, obj[i], i, obj);
}
} else {
for (var key in obj) {
if (this.has(obj, key)) {
iterator.call(context, obj[key], key, obj);
}
}
}
},
once: function(func) {
var ran = false, memo;
return function() {
if (ran) return memo;
ran = true;
memo = func.apply(this, arguments);
func = null;
return memo;
};
}
};
}
var _ = miniscore(), Events;
// Backbone.Events
// ---------------
// A module that can be mixed in to *any object* in order to provide it with
// custom events. You may bind with `on` or remove with `off` callback
// functions to an event; `trigger`-ing an event fires all callbacks in
// succession.
//
// var object = {};
// _.extend(object, Backbone.Events);
// object.on('expand', function(){ alert('expanded'); });
// object.trigger('expand');
//
Events = {
// Bind an event to a `callback` function. Passing `"all"` will bind
// the callback to all events fired.
on: function(name, callback, context) {
if (!eventsApi(this, 'on', name, [callback, context]) || !callback) return this;
this._events || (this._events = {});
var events = this._events[name] || (this._events[name] = []);
events.push({callback: callback, context: context, ctx: context || this});
return this;
},
// Bind an event to only be triggered a single time. After the first time
// the callback is invoked, it will be removed.
once: function(name, callback, context) {
if (!eventsApi(this, 'once', name, [callback, context]) || !callback) return this;
var self = this;
var once = _.once(function() {
self.off(name, once);
callback.apply(this, arguments);
});
once._callback = callback;
return this.on(name, once, context);
},
// Remove one or many callbacks. If `context` is null, removes all
// callbacks with that function. If `callback` is null, removes all
// callbacks for the event. If `name` is null, removes all bound
// callbacks for all events.
off: function(name, callback, context) {
var retain, ev, events, names, i, l, j, k;
if (!this._events || !eventsApi(this, 'off', name, [callback, context])) return this;
if (!name && !callback && !context) {
this._events = {};
return this;
}
names = name ? [name] : _.keys(this._events);
for (i = 0, l = names.length; i < l; i++) {
name = names[i];
if (events = this._events[name]) {
this._events[name] = retain = [];
if (callback || context) {
for (j = 0, k = events.length; j < k; j++) {
ev = events[j];
if ((callback && callback !== ev.callback && callback !== ev.callback._callback) ||
(context && context !== ev.context)) {
retain.push(ev);
}
}
}
if (!retain.length) delete this._events[name];
}
}
return this;
},
// Trigger one or many events, firing all bound callbacks. Callbacks are
// passed the same arguments as `trigger` is, apart from the event name
// (unless you're listening on `"all"`, which will cause your callback to
// receive the true name of the event as the first argument).
trigger: function(name) {
if (!this._events) return this;
var args = slice.call(arguments, 1);
if (!eventsApi(this, 'trigger', name, args)) return this;
var events = this._events[name];
var allEvents = this._events.all;
if (events) triggerEvents(events, args);
if (allEvents) triggerEvents(allEvents, arguments);
return this;
},
// Tell this object to stop listening to either specific events ... or
// to every object it's currently listening to.
stopListening: function(obj, name, callback) {
var listeners = this._listeners;
if (!listeners) return this;
var deleteListener = !name && !callback;
if (typeof name === 'object') callback = this;
if (obj) (listeners = {})[obj._listenerId] = obj;
for (var id in listeners) {
listeners[id].off(name, callback, this);
if (deleteListener) delete this._listeners[id];
}
return this;
}
};
// Regular expression used to split event strings.
var eventSplitter = /\s+/;
// Implement fancy features of the Events API such as multiple event
// names `"change blur"` and jQuery-style event maps `{change: action}`
// in terms of the existing API.
var eventsApi = function(obj, action, name, rest) {
if (!name) return true;
// Handle event maps.
if (typeof name === 'object') {
for (var key in name) {
obj[action].apply(obj, [key, name[key]].concat(rest));
}
return false;
}
// Handle space separated event names.
if (eventSplitter.test(name)) {
var names = name.split(eventSplitter);
for (var i = 0, l = names.length; i < l; i++) {
obj[action].apply(obj, [names[i]].concat(rest));
}
return false;
}
return true;
};
// A difficult-to-believe, but optimized internal dispatch function for
// triggering events. Tries to keep the usual cases speedy (most internal
// Backbone events have 3 arguments).
var triggerEvents = function(events, args) {
var ev, i = -1, l = events.length, a1 = args[0], a2 = args[1], a3 = args[2];
switch (args.length) {
case 0: while (++i < l) (ev = events[i]).callback.call(ev.ctx); return;
case 1: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1); return;
case 2: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2); return;
case 3: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2, a3); return;
default: while (++i < l) (ev = events[i]).callback.apply(ev.ctx, args);
}
};
var listenMethods = {listenTo: 'on', listenToOnce: 'once'};
// Inversion-of-control versions of `on` and `once`. Tell *this* object to
// listen to an event in another object ... keeping track of what it's
// listening to.
_.each(listenMethods, function(implementation, method) {
Events[method] = function(obj, name, callback) {
var listeners = this._listeners || (this._listeners = {});
var id = obj._listenerId || (obj._listenerId = _.uniqueId('l'));
listeners[id] = obj;
if (typeof name === 'object') callback = this;
obj[implementation](name, callback, this);
return this;
};
});
// Aliases for backwards compatibility.
Events.bind = Events.on;
Events.unbind = Events.off;
// Mixin utility
Events.mixin = function(proto) {
var exports = ['on', 'once', 'off', 'trigger', 'stopListening', 'listenTo',
'listenToOnce', 'bind', 'unbind'];
_.each(exports, function(name) {
proto[name] = this[name];
}, this);
return proto;
};
// Export Events as BackboneEvents depending on current context
if (typeof exports !== 'undefined') {
if (typeof module !== 'undefined' && module.exports) {
exports = module.exports = Events;
}
exports.BackboneEvents = Events;
}else if (typeof define === "function") {
define(function() {
return Events;
});
} else {
root.BackboneEvents = Events;
}
})(this);
},{}],12:[function(require,module,exports){
module.exports = require('./backbone-events-standalone');
},{"./backbone-events-standalone":11}],13:[function(require,module,exports){
!function() {
var d3 = {
version: "3.5.5"
};
var d3_arraySlice = [].slice, d3_array = function(list) {
return d3_arraySlice.call(list);
};
var d3_document = this.document;
function d3_documentElement(node) {
return node && (node.ownerDocument || node.document || node).documentElement;
}
function d3_window(node) {
return node && (node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView);
}
if (d3_document) {
try {
d3_array(d3_document.documentElement.childNodes)[0].nodeType;
} catch (e) {
d3_array = function(list) {
var i = list.length, array = new Array(i);
while (i--) array[i] = list[i];
return array;
};
}
}
if (!Date.now) Date.now = function() {
return +new Date();
};
if (d3_document) {
try {
d3_document.createElement("DIV").style.setProperty("opacity", 0, "");
} catch (error) {
var d3_element_prototype = this.Element.prototype, d3_element_setAttribute = d3_element_prototype.setAttribute, d3_element_setAttributeNS = d3_element_prototype.setAttributeNS, d3_style_prototype = this.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty;
d3_element_prototype.setAttribute = function(name, value) {
d3_element_setAttribute.call(this, name, value + "");
};
d3_element_prototype.setAttributeNS = function(space, local, value) {
d3_element_setAttributeNS.call(this, space, local, value + "");
};
d3_style_prototype.setProperty = function(name, value, priority) {
d3_style_setProperty.call(this, name, value + "", priority);
};
}
}
d3.ascending = d3_ascending;
function d3_ascending(a, b) {
return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
}
d3.descending = function(a, b) {
return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
};
d3.min = function(array, f) {
var i = -1, n = array.length, a, b;
if (arguments.length === 1) {
while (++i < n) if ((b = array[i]) != null && b >= b) {
a = b;
break;
}
while (++i < n) if ((b = array[i]) != null && a > b) a = b;
} else {
while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {
a = b;
break;
}
while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b;
}
return a;
};
d3.max = function(array, f) {
var i = -1, n = array.length, a, b;
if (arguments.length === 1) {
while (++i < n) if ((b = array[i]) != null && b >= b) {
a = b;
break;
}
while (++i < n) if ((b = array[i]) != null && b > a) a = b;
} else {
while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {
a = b;
break;
}
while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b;
}
return a;
};
d3.extent = function(array, f) {
var i = -1, n = array.length, a, b, c;
if (arguments.length === 1) {
while (++i < n) if ((b = array[i]) != null && b >= b) {
a = c = b;
break;
}
while (++i < n) if ((b = array[i]) != null) {
if (a > b) a = b;
if (c < b) c = b;
}
} else {
while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {
a = c = b;
break;
}
while (++i < n) if ((b = f.call(array, array[i], i)) != null) {
if (a > b) a = b;
if (c < b) c = b;
}
}
return [ a, c ];
};
function d3_number(x) {
return x === null ? NaN : +x;
}
function d3_numeric(x) {
return !isNaN(x);
}
d3.sum = function(array, f) {
var s = 0, n = array.length, a, i = -1;
if (arguments.length === 1) {
while (++i < n) if (d3_numeric(a = +array[i])) s += a;
} else {
while (++i < n) if (d3_numeric(a = +f.call(array, array[i], i))) s += a;
}
return s;
};
d3.mean = function(array, f) {
var s = 0, n = array.length, a, i = -1, j = n;
if (arguments.length === 1) {
while (++i < n) if (d3_numeric(a = d3_number(array[i]))) s += a; else --j;
} else {
while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) s += a; else --j;
}
if (j) return s / j;
};
d3.quantile = function(values, p) {
var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h;
return e ? v + e * (values[h] - v) : v;
};
d3.median = function(array, f) {
var numbers = [], n = array.length, a, i = -1;
if (arguments.length === 1) {
while (++i < n) if (d3_numeric(a = d3_number(array[i]))) numbers.push(a);
} else {
while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) numbers.push(a);
}
if (numbers.length) return d3.quantile(numbers.sort(d3_ascending), .5);
};
d3.variance = function(array, f) {
var n = array.length, m = 0, a, d, s = 0, i = -1, j = 0;
if (arguments.length === 1) {
while (++i < n) {
if (d3_numeric(a = d3_number(array[i]))) {
d = a - m;
m += d / ++j;
s += d * (a - m);
}
}
} else {
while (++i < n) {
if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) {
d = a - m;
m += d / ++j;
s += d * (a - m);
}
}
}
if (j > 1) return s / (j - 1);
};
d3.deviation = function() {
var v = d3.variance.apply(this, arguments);
return v ? Math.sqrt(v) : v;
};
function d3_bisector(compare) {
return {
left: function(a, x, lo, hi) {
if (arguments.length < 3) lo = 0;
if (arguments.length < 4) hi = a.length;
while (lo < hi) {
var mid = lo + hi >>> 1;
if (compare(a[mid], x) < 0) lo = mid + 1; else hi = mid;
}
return lo;
},
right: function(a, x, lo, hi) {
if (arguments.length < 3) lo = 0;
if (arguments.length < 4) hi = a.length;
while (lo < hi) {
var mid = lo + hi >>> 1;
if (compare(a[mid], x) > 0) hi = mid; else lo = mid + 1;
}
return lo;
}
};
}
var d3_bisect = d3_bisector(d3_ascending);
d3.bisectLeft = d3_bisect.left;
d3.bisect = d3.bisectRight = d3_bisect.right;
d3.bisector = function(f) {
return d3_bisector(f.length === 1 ? function(d, x) {
return d3_ascending(f(d), x);
} : f);
};
d3.shuffle = function(array, i0, i1) {
if ((m = arguments.length) < 3) {
i1 = array.length;
if (m < 2) i0 = 0;
}
var m = i1 - i0, t, i;
while (m) {
i = Math.random() * m-- | 0;
t = array[m + i0], array[m + i0] = array[i + i0], array[i + i0] = t;
}
return array;
};
d3.permute = function(array, indexes) {
var i = indexes.length, permutes = new Array(i);
while (i--) permutes[i] = array[indexes[i]];
return permutes;
};
d3.pairs = function(array) {
var i = 0, n = array.length - 1, p0, p1 = array[0], pairs = new Array(n < 0 ? 0 : n);
while (i < n) pairs[i] = [ p0 = p1, p1 = array[++i] ];
return pairs;
};
d3.zip = function() {
if (!(n = arguments.length)) return [];
for (var i = -1, m = d3.min(arguments, d3_zipLength), zips = new Array(m); ++i < m; ) {
for (var j = -1, n, zip = zips[i] = new Array(n); ++j < n; ) {
zip[j] = arguments[j][i];
}
}
return zips;
};
function d3_zipLength(d) {
return d.length;
}
d3.transpose = function(matrix) {
return d3.zip.apply(d3, matrix);
};
d3.keys = function(map) {
var keys = [];
for (var key in map) keys.push(key);
return keys;
};
d3.values = function(map) {
var values = [];
for (var key in map) values.push(map[key]);
return values;
};
d3.entries = function(map) {
var entries = [];
for (var key in map) entries.push({
key: key,
value: map[key]
});
return entries;
};
d3.merge = function(arrays) {
var n = arrays.length, m, i = -1, j = 0, merged, array;
while (++i < n) j += arrays[i].length;
merged = new Array(j);
while (--n >= 0) {
array = arrays[n];
m = array.length;
while (--m >= 0) {
merged[--j] = array[m];
}
}
return merged;
};
var abs = Math.abs;
d3.range = function(start, stop, step) {
if (arguments.length < 3) {
step = 1;
if (arguments.length < 2) {
stop = start;
start = 0;
}
}
if ((stop - start) / step === Infinity) throw new Error("infinite range");
var range = [], k = d3_range_integerScale(abs(step)), i = -1, j;
start *= k, stop *= k, step *= k;
if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k); else while ((j = start + step * ++i) < stop) range.push(j / k);
return range;
};
function d3_range_integerScale(x) {
var k = 1;
while (x * k % 1) k *= 10;
return k;
}
function d3_class(ctor, properties) {
for (var key in properties) {
Object.defineProperty(ctor.prototype, key, {
value: properties[key],
enumerable: false
});
}
}
d3.map = function(object, f) {
var map = new d3_Map();
if (object instanceof d3_Map) {
object.forEach(function(key, value) {
map.set(key, value);
});
} else if (Array.isArray(object)) {
var i = -1, n = object.length, o;
if (arguments.length === 1) while (++i < n) map.set(i, object[i]); else while (++i < n) map.set(f.call(object, o = object[i], i), o);
} else {
for (var key in object) map.set(key, object[key]);
}
return map;
};
function d3_Map() {
this._ = Object.create(null);
}
var d3_map_proto = "__proto__", d3_map_zero = "\x00";
d3_class(d3_Map, {
has: d3_map_has,
get: function(key) {
return this._[d3_map_escape(key)];
},
set: function(key, value) {
return this._[d3_map_escape(key)] = value;
},
remove: d3_map_remove,
keys: d3_map_keys,
values: function() {
var values = [];
for (var key in this._) values.push(this._[key]);
return values;
},
entries: function() {
var entries = [];
for (var key in this._) entries.push({
key: d3_map_unescape(key),
value: this._[key]
});
return entries;
},
size: d3_map_size,
empty: d3_map_empty,
forEach: function(f) {
for (var key in this._) f.call(this, d3_map_unescape(key), this._[key]);
}
});
function d3_map_escape(key) {
return (key += "") === d3_map_proto || key[0] === d3_map_zero ? d3_map_zero + key : key;
}
function d3_map_unescape(key) {
return (key += "")[0] === d3_map_zero ? key.slice(1) : key;
}
function d3_map_has(key) {
return d3_map_escape(key) in this._;
}
function d3_map_remove(key) {
return (key = d3_map_escape(key)) in this._ && delete this._[key];
}
function d3_map_keys() {
var keys = [];
for (var key in this._) keys.push(d3_map_unescape(key));
return keys;
}
function d3_map_size() {
var size = 0;
for (var key in this._) ++size;
return size;
}
function d3_map_empty() {
for (var key in this._) return false;
return true;
}
d3.nest = function() {
var nest = {}, keys = [], sortKeys = [], sortValues, rollup;
function map(mapType, array, depth) {
if (depth >= keys.length) return rollup ? rollup.call(nest, array) : sortValues ? array.sort(sortValues) : array;
var i = -1, n = array.length, key = keys[depth++], keyValue, object, setter, valuesByKey = new d3_Map(), values;
while (++i < n) {
if (values = valuesByKey.get(keyValue = key(object = array[i]))) {
values.push(object);
} else {
valuesByKey.set(keyValue, [ object ]);
}
}
if (mapType) {
object = mapType();
setter = function(keyValue, values) {
object.set(keyValue, map(mapType, values, depth));
};
} else {
object = {};
setter = function(keyValue, values) {
object[keyValue] = map(mapType, values, depth);
};
}
valuesByKey.forEach(setter);
return object;
}
function entries(map, depth) {
if (depth >= keys.length) return map;
var array = [], sortKey = sortKeys[depth++];
map.forEach(function(key, keyMap) {
array.push({
key: key,
values: entries(keyMap, depth)
});
});
return sortKey ? array.sort(function(a, b) {
return sortKey(a.key, b.key);
}) : array;
}
nest.map = function(array, mapType) {
return map(mapType, array, 0);
};
nest.entries = function(array) {
return entries(map(d3.map, array, 0), 0);
};
nest.key = function(d) {
keys.push(d);
return nest;
};
nest.sortKeys = function(order) {
sortKeys[keys.length - 1] = order;
return nest;
};
nest.sortValues = function(order) {
sortValues = order;
return nest;
};
nest.rollup = function(f) {
rollup = f;
return nest;
};
return nest;
};
d3.set = function(array) {
var set = new d3_Set();
if (array) for (var i = 0, n = array.length; i < n; ++i) set.add(array[i]);
return set;
};
function d3_Set() {
this._ = Object.create(null);
}
d3_class(d3_Set, {
has: d3_map_has,
add: function(key) {
this._[d3_map_escape(key += "")] = true;
return key;
},
remove: d3_map_remove,
values: d3_map_keys,
size: d3_map_size,
empty: d3_map_empty,
forEach: function(f) {
for (var key in this._) f.call(this, d3_map_unescape(key));
}
});
d3.behavior = {};
function d3_identity(d) {
return d;
}
d3.rebind = function(target, source) {
var i = 1, n = arguments.length, method;
while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]);
return target;
};
function d3_rebind(target, source, method) {
return function() {
var value = method.apply(source, arguments);
return value === source ? target : value;
};
}
function d3_vendorSymbol(object, name) {
if (name in object) return name;
name = name.charAt(0).toUpperCase() + name.slice(1);
for (var i = 0, n = d3_vendorPrefixes.length; i < n; ++i) {
var prefixName = d3_vendorPrefixes[i] + name;
if (prefixName in object) return prefixName;
}
}
var d3_vendorPrefixes = [ "webkit", "ms", "moz", "Moz", "o", "O" ];
function d3_noop() {}
d3.dispatch = function() {
var dispatch = new d3_dispatch(), i = -1, n = arguments.length;
while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
return dispatch;
};
function d3_dispatch() {}
d3_dispatch.prototype.on = function(type, listener) {
var i = type.indexOf("."), name = "";
if (i >= 0) {
name = type.slice(i + 1);
type = type.slice(0, i);
}
if (type) return arguments.length < 2 ? this[type].on(name) : this[type].on(name, listener);
if (arguments.length === 2) {
if (listener == null) for (type in this) {
if (this.hasOwnProperty(type)) this[type].on(name, null);
}
return this;
}
};
function d3_dispatch_event(dispatch) {
var listeners = [], listenerByName = new d3_Map();
function event() {
var z = listeners, i = -1, n = z.length, l;
while (++i < n) if (l = z[i].on) l.apply(this, arguments);
return dispatch;
}
event.on = function(name, listener) {
var l = listenerByName.get(name), i;
if (arguments.length < 2) return l && l.on;
if (l) {
l.on = null;
listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1));
listenerByName.remove(name);
}
if (listener) listeners.push(listenerByName.set(name, {
on: listener
}));
return dispatch;
};
return event;
}
d3.event = null;
function d3_eventPreventDefault() {
d3.event.preventDefault();
}
function d3_eventSource() {
var e = d3.event, s;
while (s = e.sourceEvent) e = s;
return e;
}
function d3_eventDispatch(target) {
var dispatch = new d3_dispatch(), i = 0, n = arguments.length;
while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
dispatch.of = function(thiz, argumentz) {
return function(e1) {
try {
var e0 = e1.sourceEvent = d3.event;
e1.target = target;
d3.event = e1;
dispatch[e1.type].apply(thiz, argumentz);
} finally {
d3.event = e0;
}
};
};
return dispatch;
}
d3.requote = function(s) {
return s.replace(d3_requote_re, "\\$&");
};
var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;
var d3_subclass = {}.__proto__ ? function(object, prototype) {
object.__proto__ = prototype;
} : function(object, prototype) {
for (var property in prototype) object[property] = prototype[property];
};
function d3_selection(groups) {
d3_subclass(groups, d3_selectionPrototype);
return groups;
}
var d3_select = function(s, n) {
return n.querySelector(s);
}, d3_selectAll = function(s, n) {
return n.querySelectorAll(s);
}, d3_selectMatches = function(n, s) {
var d3_selectMatcher = n.matches || n[d3_vendorSymbol(n, "matchesSelector")];
d3_selectMatches = function(n, s) {
return d3_selectMatcher.call(n, s);
};
return d3_selectMatches(n, s);
};
if (typeof Sizzle === "function") {
d3_select = function(s, n) {
return Sizzle(s, n)[0] || null;
};
d3_selectAll = Sizzle;
d3_selectMatches = Sizzle.matchesSelector;
}
d3.selection = function() {
return d3.select(d3_document.documentElement);
};
var d3_selectionPrototype = d3.selection.prototype = [];
d3_selectionPrototype.select = function(selector) {
var subgroups = [], subgroup, subnode, group, node;
selector = d3_selection_selector(selector);
for (var j = -1, m = this.length; ++j < m; ) {
subgroups.push(subgroup = []);
subgroup.parentNode = (group = this[j]).parentNode;
for (var i = -1, n = group.length; ++i < n; ) {
if (node = group[i]) {
subgroup.push(subnode = selector.call(node, node.__data__, i, j));
if (subnode && "__data__" in node) subnode.__data__ = node.__data__;
} else {
subgroup.push(null);
}
}
}
return d3_selection(subgroups);
};
function d3_selection_selector(selector) {
return typeof selector === "function" ? selector : function() {
return d3_select(selector, this);
};
}
d3_selectionPrototype.selectAll = function(selector) {
var subgroups = [], subgroup, node;
selector = d3_selection_selectorAll(selector);
for (var j = -1, m = this.length; ++j < m; ) {
for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
if (node = group[i]) {
subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i, j)));
subgroup.parentNode = node;
}
}
}
return d3_selection(subgroups);
};
function d3_selection_selectorAll(selector) {
return typeof selector === "function" ? selector : function() {
return d3_selectAll(selector, this);
};
}
var d3_nsPrefix = {
svg: "http://www.w3.org/2000/svg",
xhtml: "http://www.w3.org/1999/xhtml",
xlink: "http://www.w3.org/1999/xlink",
xml: "http://www.w3.org/XML/1998/namespace",
xmlns: "http://www.w3.org/2000/xmlns/"
};
d3.ns = {
prefix: d3_nsPrefix,
qualify: function(name) {
var i = name.indexOf(":"), prefix = name;
if (i >= 0) {
prefix = name.slice(0, i);
name = name.slice(i + 1);
}
return d3_nsPrefix.hasOwnProperty(prefix) ? {
space: d3_nsPrefix[prefix],
local: name
} : name;
}
};
d3_selectionPrototype.attr = function(name, value) {
if (arguments.length < 2) {
if (typeof name === "string") {
var node = this.node();
name = d3.ns.qualify(name);
return name.local ? node.getAttributeNS(name.space, name.local) : node.getAttribute(name);
}
for (value in name) this.each(d3_selection_attr(value, name[value]));
return this;
}
return this.each(d3_selection_attr(name, value));
};
function d3_selection_attr(name, value) {
name = d3.ns.qualify(name);
function attrNull() {
this.removeAttribute(name);
}
function attrNullNS() {
this.removeAttributeNS(name.space, name.local);
}
function attrConstant() {
this.setAttribute(name, value);
}
function attrConstantNS() {
this.setAttributeNS(name.space, name.local, value);
}
function attrFunction() {
var x = value.apply(this, arguments);
if (x == null) this.removeAttribute(name); else this.setAttribute(name, x);
}
function attrFunctionNS() {
var x = value.apply(this, arguments);
if (x == null) this.removeAttributeNS(name.space, name.local); else this.setAttributeNS(name.space, name.local, x);
}
return value == null ? name.local ? attrNullNS : attrNull : typeof value === "function" ? name.local ? attrFunctionNS : attrFunction : name.local ? attrConstantNS : attrConstant;
}
function d3_collapse(s) {
return s.trim().replace(/\s+/g, " ");
}
d3_selectionPrototype.classed = function(name, value) {
if (arguments.length < 2) {
if (typeof name === "string") {
var node = this.node(), n = (name = d3_selection_classes(name)).length, i = -1;
if (value = node.classList) {
while (++i < n) if (!value.contains(name[i])) return false;
} else {
value = node.getAttribute("class");
while (++i < n) if (!d3_selection_classedRe(name[i]).test(value)) return false;
}
return true;
}
for (value in name) this.each(d3_selection_classed(value, name[value]));
return this;
}
return this.each(d3_selection_classed(name, value));
};
function d3_selection_classedRe(name) {
return new RegExp("(?:^|\\s+)" + d3.requote(name) + "(?:\\s+|$)", "g");
}
function d3_selection_classes(name) {
return (name + "").trim().split(/^|\s+/);
}
function d3_selection_classed(name, value) {
name = d3_selection_classes(name).map(d3_selection_classedName);
var n = name.length;
function classedConstant() {
var i = -1;
while (++i < n) name[i](this, value);
}
function classedFunction() {
var i = -1, x = value.apply(this, arguments);
while (++i < n) name[i](this, x);
}
return typeof value === "function" ? classedFunction : classedConstant;
}
function d3_selection_classedName(name) {
var re = d3_selection_classedRe(name);
return function(node, value) {
if (c = node.classList) return value ? c.add(name) : c.remove(name);
var c = node.getAttribute("class") || "";
if (value) {
re.lastIndex = 0;
if (!re.test(c)) node.setAttribute("class", d3_collapse(c + " " + name));
} else {
node.setAttribute("class", d3_collapse(c.replace(re, " ")));
}
};
}
d3_selectionPrototype.style = function(name, value, priority) {
var n = arguments.length;
if (n < 3) {
if (typeof name !== "string") {
if (n < 2) value = "";
for (priority in name) this.each(d3_selection_style(priority, name[priority], value));
return this;
}
if (n < 2) {
var node = this.node();
return d3_window(node).getComputedStyle(node, null).getPropertyValue(name);
}
priority = "";
}
return this.each(d3_selection_style(name, value, priority));
};
function d3_selection_style(name, value, priority) {
function styleNull() {
this.style.removeProperty(name);
}
function styleConstant() {
this.style.setProperty(name, value, priority);
}
function styleFunction() {
var x = value.apply(this, arguments);
if (x == null) this.style.removeProperty(name); else this.style.setProperty(name, x, priority);
}
return value == null ? styleNull : typeof value === "function" ? styleFunction : styleConstant;
}
d3_selectionPrototype.property = function(name, value) {
if (arguments.length < 2) {
if (typeof name === "string") return this.node()[name];
for (value in name) this.each(d3_selection_property(value, name[value]));
return this;
}
return this.each(d3_selection_property(name, value));
};
function d3_selection_property(name, value) {
function propertyNull() {
delete this[name];
}
function propertyConstant() {
this[name] = value;
}
function propertyFunction() {
var x = value.apply(this, arguments);
if (x == null) delete this[name]; else this[name] = x;
}
return value == null ? propertyNull : typeof value === "function" ? propertyFunction : propertyConstant;
}
d3_selectionPrototype.text = function(value) {
return arguments.length ? this.each(typeof value === "function" ? function() {
var v = value.apply(this, arguments);
this.textContent = v == null ? "" : v;
} : value == null ? function() {
this.textContent = "";
} : function() {
this.textContent = value;
}) : this.node().textContent;
};
d3_selectionPrototype.html = function(value) {
return arguments.length ? this.each(typeof value === "function" ? function() {
var v = value.apply(this, arguments);
this.innerHTML = v == null ? "" : v;
} : value == null ? function() {
this.innerHTML = "";
} : function() {
this.innerHTML = value;
}) : this.node().innerHTML;
};
d3_selectionPrototype.append = function(name) {
name = d3_selection_creator(name);
return this.select(function() {
return this.appendChild(name.apply(this, arguments));
});
};
function d3_selection_creator(name) {
function create() {
var document = this.ownerDocument, namespace = this.namespaceURI;
return namespace ? document.createElementNS(namespace, name) : document.createElement(name);
}
function createNS() {
return this.ownerDocument.createElementNS(name.space, name.local);
}
return typeof name === "function" ? name : (name = d3.ns.qualify(name)).local ? createNS : create;
}
d3_selectionPrototype.insert = function(name, before) {
name = d3_selection_creator(name);
before = d3_selection_selector(before);
return this.select(function() {
return this.insertBefore(name.apply(this, arguments), before.apply(this, arguments) || null);
});
};
d3_selectionPrototype.remove = function() {
return this.each(d3_selectionRemove);
};
function d3_selectionRemove() {
var parent = this.parentNode;
if (parent) parent.removeChild(this);
}
d3_selectionPrototype.data = function(value, key) {
var i = -1, n = this.length, group, node;
if (!arguments.length) {
value = new Array(n = (group = this[0]).length);
while (++i < n) {
if (node = group[i]) {
value[i] = node.__data__;
}
}
return value;
}
function bind(group, groupData) {
var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n), node, nodeData;
if (key) {
var nodeByKeyValue = new d3_Map(), keyValues = new Array(n), keyValue;
for (i = -1; ++i < n; ) {
if (nodeByKeyValue.has(keyValue = key.call(node = group[i], node.__data__, i))) {
exitNodes[i] = node;
} else {
nodeByKeyValue.set(keyValue, node);
}
keyValues[i] = keyValue;
}
for (i = -1; ++i < m; ) {
if (!(node = nodeByKeyValue.get(keyValue = key.call(groupData, nodeData = groupData[i], i)))) {
enterNodes[i] = d3_selection_dataNode(nodeData);
} else if (node !== true) {
updateNodes[i] = node;
node.__data__ = nodeData;
}
nodeByKeyValue.set(keyValue, true);
}
for (i = -1; ++i < n; ) {
if (nodeByKeyValue.get(keyValues[i]) !== true) {
exitNodes[i] = group[i];
}
}
} else {
for (i = -1; ++i < n0; ) {
node = group[i];
nodeData = groupData[i];
if (node) {
node.__data__ = nodeData;
updateNodes[i] = node;
} else {
enterNodes[i] = d3_selection_dataNode(nodeData);
}
}
for (;i < m; ++i) {
enterNodes[i] = d3_selection_dataNode(groupData[i]);
}
for (;i < n; ++i) {
exitNodes[i] = group[i];
}
}
enterNodes.update = updateNodes;
enterNodes.parentNode = updateNodes.parentNode = exitNodes.parentNode = group.parentNode;
enter.push(enterNodes);
update.push(updateNodes);
exit.push(exitNodes);
}
var enter = d3_selection_enter([]), update = d3_selection([]), exit = d3_selection([]);
if (typeof value === "function") {
while (++i < n) {
bind(group = this[i], value.call(group, group.parentNode.__data__, i));
}
} else {
while (++i < n) {
bind(group = this[i], value);
}
}
update.enter = function() {
return enter;
};
update.exit = function() {
return exit;
};
return update;
};
function d3_selection_dataNode(data) {
return {
__data__: data
};
}
d3_selectionPrototype.datum = function(value) {
return arguments.length ? this.property("__data__", value) : this.property("__data__");
};
d3_selectionPrototype.filter = function(filter) {
var subgroups = [], subgroup, group, node;
if (typeof filter !== "function") filter = d3_selection_filter(filter);
for (var j = 0, m = this.length; j < m; j++) {
subgroups.push(subgroup = []);
subgroup.parentNode = (group = this[j]).parentNode;
for (var i = 0, n = group.length; i < n; i++) {
if ((node = group[i]) && filter.call(node, node.__data__, i, j)) {
subgroup.push(node);
}
}
}
return d3_selection(subgroups);
};
function d3_selection_filter(selector) {
return function() {
return d3_selectMatches(this, selector);
};
}
d3_selectionPrototype.order = function() {
for (var j = -1, m = this.length; ++j < m; ) {
for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0; ) {
if (node = group[i]) {
if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);
next = node;
}
}
}
return this;
};
d3_selectionPrototype.sort = function(comparator) {
comparator = d3_selection_sortComparator.apply(this, arguments);
for (var j = -1, m = this.length; ++j < m; ) this[j].sort(comparator);
return this.order();
};
function d3_selection_sortComparator(comparator) {
if (!arguments.length) comparator = d3_ascending;
return function(a, b) {
return a && b ? comparator(a.__data__, b.__data__) : !a - !b;
};
}
d3_selectionPrototype.each = function(callback) {
return d3_selection_each(this, function(node, i, j) {
callback.call(node, node.__data__, i, j);
});
};
function d3_selection_each(groups, callback) {
for (var j = 0, m = groups.length; j < m; j++) {
for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) {
if (node = group[i]) callback(node, i, j);
}
}
return groups;
}
d3_selectionPrototype.call = function(callback) {
var args = d3_array(arguments);
callback.apply(args[0] = this, args);
return this;
};
d3_selectionPrototype.empty = function() {
return !this.node();
};
d3_selectionPrototype.node = function() {
for (var j = 0, m = this.length; j < m; j++) {
for (var group = this[j], i = 0, n = group.length; i < n; i++) {
var node = group[i];
if (node) return node;
}
}
return null;
};
d3_selectionPrototype.size = function() {
var n = 0;
d3_selection_each(this, function() {
++n;
});
return n;
};
function d3_selection_enter(selection) {
d3_subclass(selection, d3_selection_enterPrototype);
return selection;
}
var d3_selection_enterPrototype = [];
d3.selection.enter = d3_selection_enter;
d3.selection.enter.prototype = d3_selection_enterPrototype;
d3_selection_enterPrototype.append = d3_selectionPrototype.append;
d3_selection_enterPrototype.empty = d3_selectionPrototype.empty;
d3_selection_enterPrototype.node = d3_selectionPrototype.node;
d3_selection_enterPrototype.call = d3_selectionPrototype.call;
d3_selection_enterPrototype.size = d3_selectionPrototype.size;
d3_selection_enterPrototype.select = function(selector) {
var subgroups = [], subgroup, subnode, upgroup, group, node;
for (var j = -1, m = this.length; ++j < m; ) {
upgroup = (group = this[j]).update;
subgroups.push(subgroup = []);
subgroup.parentNode = group.parentNode;
for (var i = -1, n = group.length; ++i < n; ) {
if (node = group[i]) {
subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i, j));
subnode.__data__ = node.__data__;
} else {
subgroup.push(null);
}
}
}
return d3_selection(subgroups);
};
d3_selection_enterPrototype.insert = function(name, before) {
if (arguments.length < 2) before = d3_selection_enterInsertBefore(this);
return d3_selectionPrototype.insert.call(this, name, before);
};
function d3_selection_enterInsertBefore(enter) {
var i0, j0;
return function(d, i, j) {
var group = enter[j].update, n = group.length, node;
if (j != j0) j0 = j, i0 = 0;
if (i >= i0) i0 = i + 1;
while (!(node = group[i0]) && ++i0 < n) ;
return node;
};
}
d3.select = function(node) {
var group;
if (typeof node === "string") {
group = [ d3_select(node, d3_document) ];
group.parentNode = d3_document.documentElement;
} else {
group = [ node ];
group.parentNode = d3_documentElement(node);
}
return d3_selection([ group ]);
};
d3.selectAll = function(nodes) {
var group;
if (typeof nodes === "string") {
group = d3_array(d3_selectAll(nodes, d3_document));
group.parentNode = d3_document.documentElement;
} else {
group = nodes;
group.parentNode = null;
}
return d3_selection([ group ]);
};
d3_selectionPrototype.on = function(type, listener, capture) {
var n = arguments.length;
if (n < 3) {
if (typeof type !== "string") {
if (n < 2) listener = false;
for (capture in type) this.each(d3_selection_on(capture, type[capture], listener));
return this;
}
if (n < 2) return (n = this.node()["__on" + type]) && n._;
capture = false;
}
return this.each(d3_selection_on(type, listener, capture));
};
function d3_selection_on(type, listener, capture) {
var name = "__on" + type, i = type.indexOf("."), wrap = d3_selection_onListener;
if (i > 0) type = type.slice(0, i);
var filter = d3_selection_onFilters.get(type);
if (filter) type = filter, wrap = d3_selection_onFilter;
function onRemove() {
var l = this[name];
if (l) {
this.removeEventListener(type, l, l.$);
delete this[name];
}
}
function onAdd() {
var l = wrap(listener, d3_array(arguments));
onRemove.call(this);
this.addEventListener(type, this[name] = l, l.$ = capture);
l._ = listener;
}
function removeAll() {
var re = new RegExp("^__on([^.]+)" + d3.requote(type) + "$"), match;
for (var name in this) {
if (match = name.match(re)) {
var l = this[name];
this.removeEventListener(match[1], l, l.$);
delete this[name];
}
}
}
return i ? listener ? onAdd : onRemove : listener ? d3_noop : removeAll;
}
var d3_selection_onFilters = d3.map({
mouseenter: "mouseover",
mouseleave: "mouseout"
});
if (d3_document) {
d3_selection_onFilters.forEach(function(k) {
if ("on" + k in d3_document) d3_selection_onFilters.remove(k);
});
}
function d3_selection_onListener(listener, argumentz) {
return function(e) {
var o = d3.event;
d3.event = e;
argumentz[0] = this.__data__;
try {
listener.apply(this, argumentz);
} finally {
d3.event = o;
}
};
}
function d3_selection_onFilter(listener, argumentz) {
var l = d3_selection_onListener(listener, argumentz);
return function(e) {
var target = this, related = e.relatedTarget;
if (!related || related !== target && !(related.compareDocumentPosition(target) & 8)) {
l.call(target, e);
}
};
}
var d3_event_dragSelect, d3_event_dragId = 0;
function d3_event_dragSuppress(node) {
var name = ".dragsuppress-" + ++d3_event_dragId, click = "click" + name, w = d3.select(d3_window(node)).on("touchmove" + name, d3_eventPreventDefault).on("dragstart" + name, d3_eventPreventDefault).on("selectstart" + name, d3_eventPreventDefault);
if (d3_event_dragSelect == null) {
d3_event_dragSelect = "onselectstart" in node ? false : d3_vendorSymbol(node.style, "userSelect");
}
if (d3_event_dragSelect) {
var style = d3_documentElement(node).style, select = style[d3_event_dragSelect];
style[d3_event_dragSelect] = "none";
}
return function(suppressClick) {
w.on(name, null);
if (d3_event_dragSelect) style[d3_event_dragSelect] = select;
if (suppressClick) {
var off = function() {
w.on(click, null);
};
w.on(click, function() {
d3_eventPreventDefault();
off();
}, true);
setTimeout(off, 0);
}
};
}
d3.mouse = function(container) {
return d3_mousePoint(container, d3_eventSource());
};
var d3_mouse_bug44083 = this.navigator && /WebKit/.test(this.navigator.userAgent) ? -1 : 0;
function d3_mousePoint(container, e) {
if (e.changedTouches) e = e.changedTouches[0];
var svg = container.ownerSVGElement || container;
if (svg.createSVGPoint) {
var point = svg.createSVGPoint();
if (d3_mouse_bug44083 < 0) {
var window = d3_window(container);
if (window.scrollX || window.scrollY) {
svg = d3.select("body").append("svg").style({
position: "absolute",
top: 0,
left: 0,
margin: 0,
padding: 0,
border: "none"
}, "important");
var ctm = svg[0][0].getScreenCTM();
d3_mouse_bug44083 = !(ctm.f || ctm.e);
svg.remove();
}
}
if (d3_mouse_bug44083) point.x = e.pageX, point.y = e.pageY; else point.x = e.clientX,
point.y = e.clientY;
point = point.matrixTransform(container.getScreenCTM().inverse());
return [ point.x, point.y ];
}
var rect = container.getBoundingClientRect();
return [ e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop ];
}
d3.touch = function(container, touches, identifier) {
if (arguments.length < 3) identifier = touches, touches = d3_eventSource().changedTouches;
if (touches) for (var i = 0, n = touches.length, touch; i < n; ++i) {
if ((touch = touches[i]).identifier === identifier) {
return d3_mousePoint(container, touch);
}
}
};
d3.behavior.drag = function() {
var event = d3_eventDispatch(drag, "drag", "dragstart", "dragend"), origin = null, mousedown = dragstart(d3_noop, d3.mouse, d3_window, "mousemove", "mouseup"), touchstart = dragstart(d3_behavior_dragTouchId, d3.touch, d3_identity, "touchmove", "touchend");
function drag() {
this.on("mousedown.drag", mousedown).on("touchstart.drag", touchstart);
}
function dragstart(id, position, subject, move, end) {
return function() {
var that = this, target = d3.event.target, parent = that.parentNode, dispatch = event.of(that, arguments), dragged = 0, dragId = id(), dragName = ".drag" + (dragId == null ? "" : "-" + dragId), dragOffset, dragSubject = d3.select(subject(target)).on(move + dragName, moved).on(end + dragName, ended), dragRestore = d3_event_dragSuppress(target), position0 = position(parent, dragId);
if (origin) {
dragOffset = origin.apply(that, arguments);
dragOffset = [ dragOffset.x - position0[0], dragOffset.y - position0[1] ];
} else {
dragOffset = [ 0, 0 ];
}
dispatch({
type: "dragstart"
});
function moved() {
var position1 = position(parent, dragId), dx, dy;
if (!position1) return;
dx = position1[0] - position0[0];
dy = position1[1] - position0[1];
dragged |= dx | dy;
position0 = position1;
dispatch({
type: "drag",
x: position1[0] + dragOffset[0],
y: position1[1] + dragOffset[1],
dx: dx,
dy: dy
});
}
function ended() {
if (!position(parent, dragId)) return;
dragSubject.on(move + dragName, null).on(end + dragName, null);
dragRestore(dragged && d3.event.target === target);
dispatch({
type: "dragend"
});
}
};
}
drag.origin = function(x) {
if (!arguments.length) return origin;
origin = x;
return drag;
};
return d3.rebind(drag, event, "on");
};
function d3_behavior_dragTouchId() {
return d3.event.changedTouches[0].identifier;
}
d3.touches = function(container, touches) {
if (arguments.length < 2) touches = d3_eventSource().touches;
return touches ? d3_array(touches).map(function(touch) {
var point = d3_mousePoint(container, touch);
point.identifier = touch.identifier;
return point;
}) : [];
};
var ε = 1e-6, ε2 = ε * ε, π = Math.PI, τ = 2 * π, τε = τ - ε, halfπ = π / 2, d3_radians = π / 180, d3_degrees = 180 / π;
function d3_sgn(x) {
return x > 0 ? 1 : x < 0 ? -1 : 0;
}
function d3_cross2d(a, b, c) {
return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);
}
function d3_acos(x) {
return x > 1 ? 0 : x < -1 ? π : Math.acos(x);
}
function d3_asin(x) {
return x > 1 ? halfπ : x < -1 ? -halfπ : Math.asin(x);
}
function d3_sinh(x) {
return ((x = Math.exp(x)) - 1 / x) / 2;
}
function d3_cosh(x) {
return ((x = Math.exp(x)) + 1 / x) / 2;
}
function d3_tanh(x) {
return ((x = Math.exp(2 * x)) - 1) / (x + 1);
}
function d3_haversin(x) {
return (x = Math.sin(x / 2)) * x;
}
var ρ = Math.SQRT2, ρ2 = 2, ρ4 = 4;
d3.interpolateZoom = function(p0, p1) {
var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2];
var dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + ρ4 * d2) / (2 * w0 * ρ2 * d1), b1 = (w1 * w1 - w0 * w0 - ρ4 * d2) / (2 * w1 * ρ2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1), dr = r1 - r0, S = (dr || Math.log(w1 / w0)) / ρ;
function interpolate(t) {
var s = t * S;
if (dr) {
var coshr0 = d3_cosh(r0), u = w0 / (ρ2 * d1) * (coshr0 * d3_tanh(ρ * s + r0) - d3_sinh(r0));
return [ ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / d3_cosh(ρ * s + r0) ];
}
return [ ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(ρ * s) ];
}
interpolate.duration = S * 1e3;
return interpolate;
};
d3.behavior.zoom = function() {
var view = {
x: 0,
y: 0,
k: 1
}, translate0, center0, center, size = [ 960, 500 ], scaleExtent = d3_behavior_zoomInfinity, duration = 250, zooming = 0, mousedown = "mousedown.zoom", mousemove = "mousemove.zoom", mouseup = "mouseup.zoom", mousewheelTimer, touchstart = "touchstart.zoom", touchtime, event = d3_eventDispatch(zoom, "zoomstart", "zoom", "zoomend"), x0, x1, y0, y1;
if (!d3_behavior_zoomWheel) {
d3_behavior_zoomWheel = "onwheel" in d3_document ? (d3_behavior_zoomDelta = function() {
return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1);
}, "wheel") : "onmousewheel" in d3_document ? (d3_behavior_zoomDelta = function() {
return d3.event.wheelDelta;
}, "mousewheel") : (d3_behavior_zoomDelta = function() {
return -d3.event.detail;
}, "MozMousePixelScroll");
}
function zoom(g) {
g.on(mousedown, mousedowned).on(d3_behavior_zoomWheel + ".zoom", mousewheeled).on("dblclick.zoom", dblclicked).on(touchstart, touchstarted);
}
zoom.event = function(g) {
g.each(function() {
var dispatch = event.of(this, arguments), view1 = view;
if (d3_transitionInheritId) {
d3.select(this).transition().each("start.zoom", function() {
view = this.__chart__ || {
x: 0,
y: 0,
k: 1
};
zoomstarted(dispatch);
}).tween("zoom:zoom", function() {
var dx = size[0], dy = size[1], cx = center0 ? center0[0] : dx / 2, cy = center0 ? center0[1] : dy / 2, i = d3.interpolateZoom([ (cx - view.x) / view.k, (cy - view.y) / view.k, dx / view.k ], [ (cx - view1.x) / view1.k, (cy - view1.y) / view1.k, dx / view1.k ]);
return function(t) {
var l = i(t), k = dx / l[2];
this.__chart__ = view = {
x: cx - l[0] * k,
y: cy - l[1] * k,
k: k
};
zoomed(dispatch);
};
}).each("interrupt.zoom", function() {
zoomended(dispatch);
}).each("end.zoom", function() {
zoomended(dispatch);
});
} else {
this.__chart__ = view;
zoomstarted(dispatch);
zoomed(dispatch);
zoomended(dispatch);
}
});
};
zoom.translate = function(_) {
if (!arguments.length) return [ view.x, view.y ];
view = {
x: +_[0],
y: +_[1],
k: view.k
};
rescale();
return zoom;
};
zoom.scale = function(_) {
if (!arguments.length) return view.k;
view = {
x: view.x,
y: view.y,
k: +_
};
rescale();
return zoom;
};
zoom.scaleExtent = function(_) {
if (!arguments.length) return scaleExtent;
scaleExtent = _ == null ? d3_behavior_zoomInfinity : [ +_[0], +_[1] ];
return zoom;
};
zoom.center = function(_) {
if (!arguments.length) return center;
center = _ && [ +_[0], +_[1] ];
return zoom;
};
zoom.size = function(_) {
if (!arguments.length) return size;
size = _ && [ +_[0], +_[1] ];
return zoom;
};
zoom.duration = function(_) {
if (!arguments.length) return duration;
duration = +_;
return zoom;
};
zoom.x = function(z) {
if (!arguments.length) return x1;
x1 = z;
x0 = z.copy();
view = {
x: 0,
y: 0,
k: 1
};
return zoom;
};
zoom.y = function(z) {
if (!arguments.length) return y1;
y1 = z;
y0 = z.copy();
view = {
x: 0,
y: 0,
k: 1
};
return zoom;
};
function location(p) {
return [ (p[0] - view.x) / view.k, (p[1] - view.y) / view.k ];
}
function point(l) {
return [ l[0] * view.k + view.x, l[1] * view.k + view.y ];
}
function scaleTo(s) {
view.k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s));
}
function translateTo(p, l) {
l = point(l);
view.x += p[0] - l[0];
view.y += p[1] - l[1];
}
function zoomTo(that, p, l, k) {
that.__chart__ = {
x: view.x,
y: view.y,
k: view.k
};
scaleTo(Math.pow(2, k));
translateTo(center0 = p, l);
that = d3.select(that);
if (duration > 0) that = that.transition().duration(duration);
that.call(zoom.event);
}
function rescale() {
if (x1) x1.domain(x0.range().map(function(x) {
return (x - view.x) / view.k;
}).map(x0.invert));
if (y1) y1.domain(y0.range().map(function(y) {
return (y - view.y) / view.k;
}).map(y0.invert));
}
function zoomstarted(dispatch) {
if (!zooming++) dispatch({
type: "zoomstart"
});
}
function zoomed(dispatch) {
rescale();
dispatch({
type: "zoom",
scale: view.k,
translate: [ view.x, view.y ]
});
}
function zoomended(dispatch) {
if (!--zooming) dispatch({
type: "zoomend"
});
center0 = null;
}
function mousedowned() {
var that = this, target = d3.event.target, dispatch = event.of(that, arguments), dragged = 0, subject = d3.select(d3_window(that)).on(mousemove, moved).on(mouseup, ended), location0 = location(d3.mouse(that)), dragRestore = d3_event_dragSuppress(that);
d3_selection_interrupt.call(that);
zoomstarted(dispatch);
function moved() {
dragged = 1;
translateTo(d3.mouse(that), location0);
zoomed(dispatch);
}
function ended() {
subject.on(mousemove, null).on(mouseup, null);
dragRestore(dragged && d3.event.target === target);
zoomended(dispatch);
}
}
function touchstarted() {
var that = this, dispatch = event.of(that, arguments), locations0 = {}, distance0 = 0, scale0, zoomName = ".zoom-" + d3.event.changedTouches[0].identifier, touchmove = "touchmove" + zoomName, touchend = "touchend" + zoomName, targets = [], subject = d3.select(that), dragRestore = d3_event_dragSuppress(that);
started();
zoomstarted(dispatch);
subject.on(mousedown, null).on(touchstart, started);
function relocate() {
var touches = d3.touches(that);
scale0 = view.k;
touches.forEach(function(t) {
if (t.identifier in locations0) locations0[t.identifier] = location(t);
});
return touches;
}
function started() {
var target = d3.event.target;
d3.select(target).on(touchmove, moved).on(touchend, ended);
targets.push(target);
var changed = d3.event.changedTouches;
for (var i = 0, n = changed.length; i < n; ++i) {
locations0[changed[i].identifier] = null;
}
var touches = relocate(), now = Date.now();
if (touches.length === 1) {
if (now - touchtime < 500) {
var p = touches[0];
zoomTo(that, p, locations0[p.identifier], Math.floor(Math.log(view.k) / Math.LN2) + 1);
d3_eventPreventDefault();
}
touchtime = now;
} else if (touches.length > 1) {
var p = touches[0], q = touches[1], dx = p[0] - q[0], dy = p[1] - q[1];
distance0 = dx * dx + dy * dy;
}
}
function moved() {
var touches = d3.touches(that), p0, l0, p1, l1;
d3_selection_interrupt.call(that);
for (var i = 0, n = touches.length; i < n; ++i, l1 = null) {
p1 = touches[i];
if (l1 = locations0[p1.identifier]) {
if (l0) break;
p0 = p1, l0 = l1;
}
}
if (l1) {
var distance1 = (distance1 = p1[0] - p0[0]) * distance1 + (distance1 = p1[1] - p0[1]) * distance1, scale1 = distance0 && Math.sqrt(distance1 / distance0);
p0 = [ (p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2 ];
l0 = [ (l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2 ];
scaleTo(scale1 * scale0);
}
touchtime = null;
translateTo(p0, l0);
zoomed(dispatch);
}
function ended() {
if (d3.event.touches.length) {
var changed = d3.event.changedTouches;
for (var i = 0, n = changed.length; i < n; ++i) {
delete locations0[changed[i].identifier];
}
for (var identifier in locations0) {
return void relocate();
}
}
d3.selectAll(targets).on(zoomName, null);
subject.on(mousedown, mousedowned).on(touchstart, touchstarted);
dragRestore();
zoomended(dispatch);
}
}
function mousewheeled() {
var dispatch = event.of(this, arguments);
if (mousewheelTimer) clearTimeout(mousewheelTimer); else translate0 = location(center0 = center || d3.mouse(this)),
d3_selection_interrupt.call(this), zoomstarted(dispatch);
mousewheelTimer = setTimeout(function() {
mousewheelTimer = null;
zoomended(dispatch);
}, 50);
d3_eventPreventDefault();
scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * view.k);
translateTo(center0, translate0);
zoomed(dispatch);
}
function dblclicked() {
var p = d3.mouse(this), k = Math.log(view.k) / Math.LN2;
zoomTo(this, p, location(p), d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1);
}
return d3.rebind(zoom, event, "on");
};
var d3_behavior_zoomInfinity = [ 0, Infinity ], d3_behavior_zoomDelta, d3_behavior_zoomWheel;
d3.color = d3_color;
function d3_color() {}
d3_color.prototype.toString = function() {
return this.rgb() + "";
};
d3.hsl = d3_hsl;
function d3_hsl(h, s, l) {
return this instanceof d3_hsl ? void (this.h = +h, this.s = +s, this.l = +l) : arguments.length < 2 ? h instanceof d3_hsl ? new d3_hsl(h.h, h.s, h.l) : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl) : new d3_hsl(h, s, l);
}
var d3_hslPrototype = d3_hsl.prototype = new d3_color();
d3_hslPrototype.brighter = function(k) {
k = Math.pow(.7, arguments.length ? k : 1);
return new d3_hsl(this.h, this.s, this.l / k);
};
d3_hslPrototype.darker = function(k) {
k = Math.pow(.7, arguments.length ? k : 1);
return new d3_hsl(this.h, this.s, k * this.l);
};
d3_hslPrototype.rgb = function() {
return d3_hsl_rgb(this.h, this.s, this.l);
};
function d3_hsl_rgb(h, s, l) {
var m1, m2;
h = isNaN(h) ? 0 : (h %= 360) < 0 ? h + 360 : h;
s = isNaN(s) ? 0 : s < 0 ? 0 : s > 1 ? 1 : s;
l = l < 0 ? 0 : l > 1 ? 1 : l;
m2 = l <= .5 ? l * (1 + s) : l + s - l * s;
m1 = 2 * l - m2;
function v(h) {
if (h > 360) h -= 360; else if (h < 0) h += 360;
if (h < 60) return m1 + (m2 - m1) * h / 60;
if (h < 180) return m2;
if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60;
return m1;
}
function vv(h) {
return Math.round(v(h) * 255);
}
return new d3_rgb(vv(h + 120), vv(h), vv(h - 120));
}
d3.hcl = d3_hcl;
function d3_hcl(h, c, l) {
return this instanceof d3_hcl ? void (this.h = +h, this.c = +c, this.l = +l) : arguments.length < 2 ? h instanceof d3_hcl ? new d3_hcl(h.h, h.c, h.l) : h instanceof d3_lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : new d3_hcl(h, c, l);
}
var d3_hclPrototype = d3_hcl.prototype = new d3_color();
d3_hclPrototype.brighter = function(k) {
return new d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)));
};
d3_hclPrototype.darker = function(k) {
return new d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)));
};
d3_hclPrototype.rgb = function() {
return d3_hcl_lab(this.h, this.c, this.l).rgb();
};
function d3_hcl_lab(h, c, l) {
if (isNaN(h)) h = 0;
if (isNaN(c)) c = 0;
return new d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c);
}
d3.lab = d3_lab;
function d3_lab(l, a, b) {
return this instanceof d3_lab ? void (this.l = +l, this.a = +a, this.b = +b) : arguments.length < 2 ? l instanceof d3_lab ? new d3_lab(l.l, l.a, l.b) : l instanceof d3_hcl ? d3_hcl_lab(l.h, l.c, l.l) : d3_rgb_lab((l = d3_rgb(l)).r, l.g, l.b) : new d3_lab(l, a, b);
}
var d3_lab_K = 18;
var d3_lab_X = .95047, d3_lab_Y = 1, d3_lab_Z = 1.08883;
var d3_labPrototype = d3_lab.prototype = new d3_color();
d3_labPrototype.brighter = function(k) {
return new d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
};
d3_labPrototype.darker = function(k) {
return new d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
};
d3_labPrototype.rgb = function() {
return d3_lab_rgb(this.l, this.a, this.b);
};
function d3_lab_rgb(l, a, b) {
var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200;
x = d3_lab_xyz(x) * d3_lab_X;
y = d3_lab_xyz(y) * d3_lab_Y;
z = d3_lab_xyz(z) * d3_lab_Z;
return new d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z));
}
function d3_lab_hcl(l, a, b) {
return l > 0 ? new d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l) : new d3_hcl(NaN, NaN, l);
}
function d3_lab_xyz(x) {
return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037;
}
function d3_xyz_lab(x) {
return x > .008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29;
}
function d3_xyz_rgb(r) {
return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055));
}
d3.rgb = d3_rgb;
function d3_rgb(r, g, b) {
return this instanceof d3_rgb ? void (this.r = ~~r, this.g = ~~g, this.b = ~~b) : arguments.length < 2 ? r instanceof d3_rgb ? new d3_rgb(r.r, r.g, r.b) : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb) : new d3_rgb(r, g, b);
}
function d3_rgbNumber(value) {
return new d3_rgb(value >> 16, value >> 8 & 255, value & 255);
}
function d3_rgbString(value) {
return d3_rgbNumber(value) + "";
}
var d3_rgbPrototype = d3_rgb.prototype = new d3_color();
d3_rgbPrototype.brighter = function(k) {
k = Math.pow(.7, arguments.length ? k : 1);
var r = this.r, g = this.g, b = this.b, i = 30;
if (!r && !g && !b) return new d3_rgb(i, i, i);
if (r && r < i) r = i;
if (g && g < i) g = i;
if (b && b < i) b = i;
return new d3_rgb(Math.min(255, r / k), Math.min(255, g / k), Math.min(255, b / k));
};
d3_rgbPrototype.darker = function(k) {
k = Math.pow(.7, arguments.length ? k : 1);
return new d3_rgb(k * this.r, k * this.g, k * this.b);
};
d3_rgbPrototype.hsl = function() {
return d3_rgb_hsl(this.r, this.g, this.b);
};
d3_rgbPrototype.toString = function() {
return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b);
};
function d3_rgb_hex(v) {
return v < 16 ? "0" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16);
}
function d3_rgb_parse(format, rgb, hsl) {
var r = 0, g = 0, b = 0, m1, m2, color;
m1 = /([a-z]+)\((.*)\)/i.exec(format);
if (m1) {
m2 = m1[2].split(",");
switch (m1[1]) {
case "hsl":
{
return hsl(parseFloat(m2[0]), parseFloat(m2[1]) / 100, parseFloat(m2[2]) / 100);
}
case "rgb":
{
return rgb(d3_rgb_parseNumber(m2[0]), d3_rgb_parseNumber(m2[1]), d3_rgb_parseNumber(m2[2]));
}
}
}
if (color = d3_rgb_names.get(format.toLowerCase())) {
return rgb(color.r, color.g, color.b);
}
if (format != null && format.charAt(0) === "#" && !isNaN(color = parseInt(format.slice(1), 16))) {
if (format.length === 4) {
r = (color & 3840) >> 4;
r = r >> 4 | r;
g = color & 240;
g = g >> 4 | g;
b = color & 15;
b = b << 4 | b;
} else if (format.length === 7) {
r = (color & 16711680) >> 16;
g = (color & 65280) >> 8;
b = color & 255;
}
}
return rgb(r, g, b);
}
function d3_rgb_hsl(r, g, b) {
var min = Math.min(r /= 255, g /= 255, b /= 255), max = Math.max(r, g, b), d = max - min, h, s, l = (max + min) / 2;
if (d) {
s = l < .5 ? d / (max + min) : d / (2 - max - min);
if (r == max) h = (g - b) / d + (g < b ? 6 : 0); else if (g == max) h = (b - r) / d + 2; else h = (r - g) / d + 4;
h *= 60;
} else {
h = NaN;
s = l > 0 && l < 1 ? 0 : h;
}
return new d3_hsl(h, s, l);
}
function d3_rgb_lab(r, g, b) {
r = d3_rgb_xyz(r);
g = d3_rgb_xyz(g);
b = d3_rgb_xyz(b);
var x = d3_xyz_lab((.4124564 * r + .3575761 * g + .1804375 * b) / d3_lab_X), y = d3_xyz_lab((.2126729 * r + .7151522 * g + .072175 * b) / d3_lab_Y), z = d3_xyz_lab((.0193339 * r + .119192 * g + .9503041 * b) / d3_lab_Z);
return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z));
}
function d3_rgb_xyz(r) {
return (r /= 255) <= .04045 ? r / 12.92 : Math.pow((r + .055) / 1.055, 2.4);
}
function d3_rgb_parseNumber(c) {
var f = parseFloat(c);
return c.charAt(c.length - 1) === "%" ? Math.round(f * 2.55) : f;
}
var d3_rgb_names = d3.map({
aliceblue: 15792383,
antiquewhite: 16444375,
aqua: 65535,
aquamarine: 8388564,
azure: 15794175,
beige: 16119260,
bisque: 16770244,
black: 0,
blanchedalmond: 16772045,
blue: 255,
blueviolet: 9055202,
brown: 10824234,
burlywood: 14596231,
cadetblue: 6266528,
chartreuse: 8388352,
chocolate: 13789470,
coral: 16744272,
cornflowerblue: 6591981,
cornsilk: 16775388,
crimson: 14423100,
cyan: 65535,
darkblue: 139,
darkcyan: 35723,
darkgoldenrod: 12092939,
darkgray: 11119017,
darkgreen: 25600,
darkgrey: 11119017,
darkkhaki: 12433259,
darkmagenta: 9109643,
darkolivegreen: 5597999,
darkorange: 16747520,
darkorchid: 10040012,
darkred: 9109504,
darksalmon: 15308410,
darkseagreen: 9419919,
darkslateblue: 4734347,
darkslategray: 3100495,
darkslategrey: 3100495,
darkturquoise: 52945,
darkviolet: 9699539,
deeppink: 16716947,
deepskyblue: 49151,
dimgray: 6908265,
dimgrey: 6908265,
dodgerblue: 2003199,
firebrick: 11674146,
floralwhite: 16775920,
forestgreen: 2263842,
fuchsia: 16711935,
gainsboro: 14474460,
ghostwhite: 16316671,
gold: 16766720,
goldenrod: 14329120,
gray: 8421504,
green: 32768,
greenyellow: 11403055,
grey: 8421504,
honeydew: 15794160,
hotpink: 16738740,
indianred: 13458524,
indigo: 4915330,
ivory: 16777200,
khaki: 15787660,
lavender: 15132410,
lavenderblush: 16773365,
lawngreen: 8190976,
lemonchiffon: 16775885,
lightblue: 11393254,
lightcoral: 15761536,
lightcyan: 14745599,
lightgoldenrodyellow: 16448210,
lightgray: 13882323,
lightgreen: 9498256,
lightgrey: 13882323,
lightpink: 16758465,
lightsalmon: 16752762,
lightseagreen: 2142890,
lightskyblue: 8900346,
lightslategray: 7833753,
lightslategrey: 7833753,
lightsteelblue: 11584734,
lightyellow: 16777184,
lime: 65280,
limegreen: 3329330,
linen: 16445670,
magenta: 16711935,
maroon: 8388608,
mediumaquamarine: 6737322,
mediumblue: 205,
mediumorchid: 12211667,
mediumpurple: 9662683,
mediumseagreen: 3978097,
mediumslateblue: 8087790,
mediumspringgreen: 64154,
mediumturquoise: 4772300,
mediumvioletred: 13047173,
midnightblue: 1644912,
mintcream: 16121850,
mistyrose: 16770273,
moccasin: 16770229,
navajowhite: 16768685,
navy: 128,
oldlace: 16643558,
olive: 8421376,
olivedrab: 7048739,
orange: 16753920,
orangered: 16729344,
orchid: 14315734,
palegoldenrod: 15657130,
palegreen: 10025880,
paleturquoise: 11529966,
palevioletred: 14381203,
papayawhip: 16773077,
peachpuff: 16767673,
peru: 13468991,
pink: 16761035,
plum: 14524637,
powderblue: 11591910,
purple: 8388736,
rebeccapurple: 6697881,
red: 16711680,
rosybrown: 12357519,
royalblue: 4286945,
saddlebrown: 9127187,
salmon: 16416882,
sandybrown: 16032864,
seagreen: 3050327,
seashell: 16774638,
sienna: 10506797,
silver: 12632256,
skyblue: 8900331,
slateblue: 6970061,
slategray: 7372944,
slategrey: 7372944,
snow: 16775930,
springgreen: 65407,
steelblue: 4620980,
tan: 13808780,
teal: 32896,
thistle: 14204888,
tomato: 16737095,
turquoise: 4251856,
violet: 15631086,
wheat: 16113331,
white: 16777215,
whitesmoke: 16119285,
yellow: 16776960,
yellowgreen: 10145074
});
d3_rgb_names.forEach(function(key, value) {
d3_rgb_names.set(key, d3_rgbNumber(value));
});
function d3_functor(v) {
return typeof v === "function" ? v : function() {
return v;
};
}
d3.functor = d3_functor;
d3.xhr = d3_xhrType(d3_identity);
function d3_xhrType(response) {
return function(url, mimeType, callback) {
if (arguments.length === 2 && typeof mimeType === "function") callback = mimeType,
mimeType = null;
return d3_xhr(url, mimeType, response, callback);
};
}
function d3_xhr(url, mimeType, response, callback) {
var xhr = {}, dispatch = d3.dispatch("beforesend", "progress", "load", "error"), headers = {}, request = new XMLHttpRequest(), responseType = null;
if (this.XDomainRequest && !("withCredentials" in request) && /^(http(s)?:)?\/\//.test(url)) request = new XDomainRequest();
"onload" in request ? request.onload = request.onerror = respond : request.onreadystatechange = function() {
request.readyState > 3 && respond();
};
function respond() {
var status = request.status, result;
if (!status && d3_xhrHasResponse(request) || status >= 200 && status < 300 || status === 304) {
try {
result = response.call(xhr, request);
} catch (e) {
dispatch.error.call(xhr, e);
return;
}
dispatch.load.call(xhr, result);
} else {
dispatch.error.call(xhr, request);
}
}
request.onprogress = function(event) {
var o = d3.event;
d3.event = event;
try {
dispatch.progress.call(xhr, request);
} finally {
d3.event = o;
}
};
xhr.header = function(name, value) {
name = (name + "").toLowerCase();
if (arguments.length < 2) return headers[name];
if (value == null) delete headers[name]; else headers[name] = value + "";
return xhr;
};
xhr.mimeType = function(value) {
if (!arguments.length) return mimeType;
mimeType = value == null ? null : value + "";
return xhr;
};
xhr.responseType = function(value) {
if (!arguments.length) return responseType;
responseType = value;
return xhr;
};
xhr.response = function(value) {
response = value;
return xhr;
};
[ "get", "post" ].forEach(function(method) {
xhr[method] = function() {
return xhr.send.apply(xhr, [ method ].concat(d3_array(arguments)));
};
});
xhr.send = function(method, data, callback) {
if (arguments.length === 2 && typeof data === "function") callback = data, data = null;
request.open(method, url, true);
if (mimeType != null && !("accept" in headers)) headers["accept"] = mimeType + ",*/*";
if (request.setRequestHeader) for (var name in headers) request.setRequestHeader(name, headers[name]);
if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType);
if (responseType != null) request.responseType = responseType;
if (callback != null) xhr.on("error", callback).on("load", function(request) {
callback(null, request);
});
dispatch.beforesend.call(xhr, request);
request.send(data == null ? null : data);
return xhr;
};
xhr.abort = function() {
request.abort();
return xhr;
};
d3.rebind(xhr, dispatch, "on");
return callback == null ? xhr : xhr.get(d3_xhr_fixCallback(callback));
}
function d3_xhr_fixCallback(callback) {
return callback.length === 1 ? function(error, request) {
callback(error == null ? request : null);
} : callback;
}
function d3_xhrHasResponse(request) {
var type = request.responseType;
return type && type !== "text" ? request.response : request.responseText;
}
d3.dsv = function(delimiter, mimeType) {
var reFormat = new RegExp('["' + delimiter + "\n]"), delimiterCode = delimiter.charCodeAt(0);
function dsv(url, row, callback) {
if (arguments.length < 3) callback = row, row = null;
var xhr = d3_xhr(url, mimeType, row == null ? response : typedResponse(row), callback);
xhr.row = function(_) {
return arguments.length ? xhr.response((row = _) == null ? response : typedResponse(_)) : row;
};
return xhr;
}
function response(request) {
return dsv.parse(request.responseText);
}
function typedResponse(f) {
return function(request) {
return dsv.parse(request.responseText, f);
};
}
dsv.parse = function(text, f) {
var o;
return dsv.parseRows(text, function(row, i) {
if (o) return o(row, i - 1);
var a = new Function("d", "return {" + row.map(function(name, i) {
return JSON.stringify(name) + ": d[" + i + "]";
}).join(",") + "}");
o = f ? function(row, i) {
return f(a(row), i);
} : a;
});
};
dsv.parseRows = function(text, f) {
var EOL = {}, EOF = {}, rows = [], N = text.length, I = 0, n = 0, t, eol;
function token() {
if (I >= N) return EOF;
if (eol) return eol = false, EOL;
var j = I;
if (text.charCodeAt(j) === 34) {
var i = j;
while (i++ < N) {
if (text.charCodeAt(i) === 34) {
if (text.charCodeAt(i + 1) !== 34) break;
++i;
}
}
I = i + 2;
var c = text.charCodeAt(i + 1);
if (c === 13) {
eol = true;
if (text.charCodeAt(i + 2) === 10) ++I;
} else if (c === 10) {
eol = true;
}
return text.slice(j + 1, i).replace(/""/g, '"');
}
while (I < N) {
var c = text.charCodeAt(I++), k = 1;
if (c === 10) eol = true; else if (c === 13) {
eol = true;
if (text.charCodeAt(I) === 10) ++I, ++k;
} else if (c !== delimiterCode) continue;
return text.slice(j, I - k);
}
return text.slice(j);
}
while ((t = token()) !== EOF) {
var a = [];
while (t !== EOL && t !== EOF) {
a.push(t);
t = token();
}
if (f && (a = f(a, n++)) == null) continue;
rows.push(a);
}
return rows;
};
dsv.format = function(rows) {
if (Array.isArray(rows[0])) return dsv.formatRows(rows);
var fieldSet = new d3_Set(), fields = [];
rows.forEach(function(row) {
for (var field in row) {
if (!fieldSet.has(field)) {
fields.push(fieldSet.add(field));
}
}
});
return [ fields.map(formatValue).join(delimiter) ].concat(rows.map(function(row) {
return fields.map(function(field) {
return formatValue(row[field]);
}).join(delimiter);
})).join("\n");
};
dsv.formatRows = function(rows) {
return rows.map(formatRow).join("\n");
};
function formatRow(row) {
return row.map(formatValue).join(delimiter);
}
function formatValue(text) {
return reFormat.test(text) ? '"' + text.replace(/\"/g, '""') + '"' : text;
}
return dsv;
};
d3.csv = d3.dsv(",", "text/csv");
d3.tsv = d3.dsv(" ", "text/tab-separated-values");
var d3_timer_queueHead, d3_timer_queueTail, d3_timer_interval, d3_timer_timeout, d3_timer_active, d3_timer_frame = this[d3_vendorSymbol(this, "requestAnimationFrame")] || function(callback) {
setTimeout(callback, 17);
};
d3.timer = function(callback, delay, then) {
var n = arguments.length;
if (n < 2) delay = 0;
if (n < 3) then = Date.now();
var time = then + delay, timer = {
c: callback,
t: time,
f: false,
n: null
};
if (d3_timer_queueTail) d3_timer_queueTail.n = timer; else d3_timer_queueHead = timer;
d3_timer_queueTail = timer;
if (!d3_timer_interval) {
d3_timer_timeout = clearTimeout(d3_timer_timeout);
d3_timer_interval = 1;
d3_timer_frame(d3_timer_step);
}
};
function d3_timer_step() {
var now = d3_timer_mark(), delay = d3_timer_sweep() - now;
if (delay > 24) {
if (isFinite(delay)) {
clearTimeout(d3_timer_timeout);
d3_timer_timeout = setTimeout(d3_timer_step, delay);
}
d3_timer_interval = 0;
} else {
d3_timer_interval = 1;
d3_timer_frame(d3_timer_step);
}
}
d3.timer.flush = function() {
d3_timer_mark();
d3_timer_sweep();
};
function d3_timer_mark() {
var now = Date.now();
d3_timer_active = d3_timer_queueHead;
while (d3_timer_active) {
if (now >= d3_timer_active.t) d3_timer_active.f = d3_timer_active.c(now - d3_timer_active.t);
d3_timer_active = d3_timer_active.n;
}
return now;
}
function d3_timer_sweep() {
var t0, t1 = d3_timer_queueHead, time = Infinity;
while (t1) {
if (t1.f) {
t1 = t0 ? t0.n = t1.n : d3_timer_queueHead = t1.n;
} else {
if (t1.t < time) time = t1.t;
t1 = (t0 = t1).n;
}
}
d3_timer_queueTail = t0;
return time;
}
function d3_format_precision(x, p) {
return p - (x ? Math.ceil(Math.log(x) / Math.LN10) : 1);
}
d3.round = function(x, n) {
return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x);
};
var d3_formatPrefixes = [ "y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y" ].map(d3_formatPrefix);
d3.formatPrefix = function(value, precision) {
var i = 0;
if (value) {
if (value < 0) value *= -1;
if (precision) value = d3.round(value, d3_format_precision(value, precision));
i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10);
i = Math.max(-24, Math.min(24, Math.floor((i - 1) / 3) * 3));
}
return d3_formatPrefixes[8 + i / 3];
};
function d3_formatPrefix(d, i) {
var k = Math.pow(10, abs(8 - i) * 3);
return {
scale: i > 8 ? function(d) {
return d / k;
} : function(d) {
return d * k;
},
symbol: d
};
}
function d3_locale_numberFormat(locale) {
var locale_decimal = locale.decimal, locale_thousands = locale.thousands, locale_grouping = locale.grouping, locale_currency = locale.currency, formatGroup = locale_grouping && locale_thousands ? function(value, width) {
var i = value.length, t = [], j = 0, g = locale_grouping[0], length = 0;
while (i > 0 && g > 0) {
if (length + g + 1 > width) g = Math.max(1, width - length);
t.push(value.substring(i -= g, i + g));
if ((length += g + 1) > width) break;
g = locale_grouping[j = (j + 1) % locale_grouping.length];
}
return t.reverse().join(locale_thousands);
} : d3_identity;
return function(specifier) {
var match = d3_format_re.exec(specifier), fill = match[1] || " ", align = match[2] || ">", sign = match[3] || "-", symbol = match[4] || "", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, prefix = "", suffix = "", integer = false, exponent = true;
if (precision) precision = +precision.substring(1);
if (zfill || fill === "0" && align === "=") {
zfill = fill = "0";
align = "=";
}
switch (type) {
case "n":
comma = true;
type = "g";
break;
case "%":
scale = 100;
suffix = "%";
type = "f";
break;
case "p":
scale = 100;
suffix = "%";
type = "r";
break;
case "b":
case "o":
case "x":
case "X":
if (symbol === "#") prefix = "0" + type.toLowerCase();
case "c":
exponent = false;
case "d":
integer = true;
precision = 0;
break;
case "s":
scale = -1;
type = "r";
break;
}
if (symbol === "$") prefix = locale_currency[0], suffix = locale_currency[1];
if (type == "r" && !precision) type = "g";
if (precision != null) {
if (type == "g") precision = Math.max(1, Math.min(21, precision)); else if (type == "e" || type == "f") precision = Math.max(0, Math.min(20, precision));
}
type = d3_format_types.get(type) || d3_format_typeDefault;
var zcomma = zfill && comma;
return function(value) {
var fullSuffix = suffix;
if (integer && value % 1) return "";
var negative = value < 0 || value === 0 && 1 / value < 0 ? (value = -value, "-") : sign === "-" ? "" : sign;
if (scale < 0) {
var unit = d3.formatPrefix(value, precision);
value = unit.scale(value);
fullSuffix = unit.symbol + suffix;
} else {
value *= scale;
}
value = type(value, precision);
var i = value.lastIndexOf("."), before, after;
if (i < 0) {
var j = exponent ? value.lastIndexOf("e") : -1;
if (j < 0) before = value, after = ""; else before = value.substring(0, j), after = value.substring(j);
} else {
before = value.substring(0, i);
after = locale_decimal + value.substring(i + 1);
}
if (!zfill && comma) before = formatGroup(before, Infinity);
var length = prefix.length + before.length + after.length + (zcomma ? 0 : negative.length), padding = length < width ? new Array(length = width - length + 1).join(fill) : "";
if (zcomma) before = formatGroup(padding + before, padding.length ? width - after.length : Infinity);
negative += prefix;
value = before + after;
return (align === "<" ? negative + value + padding : align === ">" ? padding + negative + value : align === "^" ? padding.substring(0, length >>= 1) + negative + value + padding.substring(length) : negative + (zcomma ? value : padding + value)) + fullSuffix;
};
};
}
var d3_format_re = /(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i;
var d3_format_types = d3.map({
b: function(x) {
return x.toString(2);
},
c: function(x) {
return String.fromCharCode(x);
},
o: function(x) {
return x.toString(8);
},
x: function(x) {
return x.toString(16);
},
X: function(x) {
return x.toString(16).toUpperCase();
},
g: function(x, p) {
return x.toPrecision(p);
},
e: function(x, p) {
return x.toExponential(p);
},
f: function(x, p) {
return x.toFixed(p);
},
r: function(x, p) {
return (x = d3.round(x, d3_format_precision(x, p))).toFixed(Math.max(0, Math.min(20, d3_format_precision(x * (1 + 1e-15), p))));
}
});
function d3_format_typeDefault(x) {
return x + "";
}
var d3_time = d3.time = {}, d3_date = Date;
function d3_date_utc() {
this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]);
}
d3_date_utc.prototype = {
getDate: function() {
return this._.getUTCDate();
},
getDay: function() {
return this._.getUTCDay();
},
getFullYear: function() {
return this._.getUTCFullYear();
},
getHours: function() {
return this._.getUTCHours();
},
getMilliseconds: function() {
return this._.getUTCMilliseconds();
},
getMinutes: function() {
return this._.getUTCMinutes();
},
getMonth: function() {
return this._.getUTCMonth();
},
getSeconds: function() {
return this._.getUTCSeconds();
},
getTime: function() {
return this._.getTime();
},
getTimezoneOffset: function() {
return 0;
},
valueOf: function() {
return this._.valueOf();
},
setDate: function() {
d3_time_prototype.setUTCDate.apply(this._, arguments);
},
setDay: function() {
d3_time_prototype.setUTCDay.apply(this._, arguments);
},
setFullYear: function() {
d3_time_prototype.setUTCFullYear.apply(this._, arguments);
},
setHours: function() {
d3_time_prototype.setUTCHours.apply(this._, arguments);
},
setMilliseconds: function() {
d3_time_prototype.setUTCMilliseconds.apply(this._, arguments);
},
setMinutes: function() {
d3_time_prototype.setUTCMinutes.apply(this._, arguments);
},
setMonth: function() {
d3_time_prototype.setUTCMonth.apply(this._, arguments);
},
setSeconds: function() {
d3_time_prototype.setUTCSeconds.apply(this._, arguments);
},
setTime: function() {
d3_time_prototype.setTime.apply(this._, arguments);
}
};
var d3_time_prototype = Date.prototype;
function d3_time_interval(local, step, number) {
function round(date) {
var d0 = local(date), d1 = offset(d0, 1);
return date - d0 < d1 - date ? d0 : d1;
}
function ceil(date) {
step(date = local(new d3_date(date - 1)), 1);
return date;
}
function offset(date, k) {
step(date = new d3_date(+date), k);
return date;
}
function range(t0, t1, dt) {
var time = ceil(t0), times = [];
if (dt > 1) {
while (time < t1) {
if (!(number(time) % dt)) times.push(new Date(+time));
step(time, 1);
}
} else {
while (time < t1) times.push(new Date(+time)), step(time, 1);
}
return times;
}
function range_utc(t0, t1, dt) {
try {
d3_date = d3_date_utc;
var utc = new d3_date_utc();
utc._ = t0;
return range(utc, t1, dt);
} finally {
d3_date = Date;
}
}
local.floor = local;
local.round = round;
local.ceil = ceil;
local.offset = offset;
local.range = range;
var utc = local.utc = d3_time_interval_utc(local);
utc.floor = utc;
utc.round = d3_time_interval_utc(round);
utc.ceil = d3_time_interval_utc(ceil);
utc.offset = d3_time_interval_utc(offset);
utc.range = range_utc;
return local;
}
function d3_time_interval_utc(method) {
return function(date, k) {
try {
d3_date = d3_date_utc;
var utc = new d3_date_utc();
utc._ = date;
return method(utc, k)._;
} finally {
d3_date = Date;
}
};
}
d3_time.year = d3_time_interval(function(date) {
date = d3_time.day(date);
date.setMonth(0, 1);
return date;
}, function(date, offset) {
date.setFullYear(date.getFullYear() + offset);
}, function(date) {
return date.getFullYear();
});
d3_time.years = d3_time.year.range;
d3_time.years.utc = d3_time.year.utc.range;
d3_time.day = d3_time_interval(function(date) {
var day = new d3_date(2e3, 0);
day.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());
return day;
}, function(date, offset) {
date.setDate(date.getDate() + offset);
}, function(date) {
return date.getDate() - 1;
});
d3_time.days = d3_time.day.range;
d3_time.days.utc = d3_time.day.utc.range;
d3_time.dayOfYear = function(date) {
var year = d3_time.year(date);
return Math.floor((date - year - (date.getTimezoneOffset() - year.getTimezoneOffset()) * 6e4) / 864e5);
};
[ "sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday" ].forEach(function(day, i) {
i = 7 - i;
var interval = d3_time[day] = d3_time_interval(function(date) {
(date = d3_time.day(date)).setDate(date.getDate() - (date.getDay() + i) % 7);
return date;
}, function(date, offset) {
date.setDate(date.getDate() + Math.floor(offset) * 7);
}, function(date) {
var day = d3_time.year(date).getDay();
return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7) - (day !== i);
});
d3_time[day + "s"] = interval.range;
d3_time[day + "s"].utc = interval.utc.range;
d3_time[day + "OfYear"] = function(date) {
var day = d3_time.year(date).getDay();
return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7);
};
});
d3_time.week = d3_time.sunday;
d3_time.weeks = d3_time.sunday.range;
d3_time.weeks.utc = d3_time.sunday.utc.range;
d3_time.weekOfYear = d3_time.sundayOfYear;
function d3_locale_timeFormat(locale) {
var locale_dateTime = locale.dateTime, locale_date = locale.date, locale_time = locale.time, locale_periods = locale.periods, locale_days = locale.days, locale_shortDays = locale.shortDays, locale_months = locale.months, locale_shortMonths = locale.shortMonths;
function d3_time_format(template) {
var n = template.length;
function format(date) {
var string = [], i = -1, j = 0, c, p, f;
while (++i < n) {
if (template.charCodeAt(i) === 37) {
string.push(template.slice(j, i));
if ((p = d3_time_formatPads[c = template.charAt(++i)]) != null) c = template.charAt(++i);
if (f = d3_time_formats[c]) c = f(date, p == null ? c === "e" ? " " : "0" : p);
string.push(c);
j = i + 1;
}
}
string.push(template.slice(j, i));
return string.join("");
}
format.parse = function(string) {
var d = {
y: 1900,
m: 0,
d: 1,
H: 0,
M: 0,
S: 0,
L: 0,
Z: null
}, i = d3_time_parse(d, template, string, 0);
if (i != string.length) return null;
if ("p" in d) d.H = d.H % 12 + d.p * 12;
var localZ = d.Z != null && d3_date !== d3_date_utc, date = new (localZ ? d3_date_utc : d3_date)();
if ("j" in d) date.setFullYear(d.y, 0, d.j); else if ("w" in d && ("W" in d || "U" in d)) {
date.setFullYear(d.y, 0, 1);
date.setFullYear(d.y, 0, "W" in d ? (d.w + 6) % 7 + d.W * 7 - (date.getDay() + 5) % 7 : d.w + d.U * 7 - (date.getDay() + 6) % 7);
} else date.setFullYear(d.y, d.m, d.d);
date.setHours(d.H + (d.Z / 100 | 0), d.M + d.Z % 100, d.S, d.L);
return localZ ? date._ : date;
};
format.toString = function() {
return template;
};
return format;
}
function d3_time_parse(date, template, string, j) {
var c, p, t, i = 0, n = template.length, m = string.length;
while (i < n) {
if (j >= m) return -1;
c = template.charCodeAt(i++);
if (c === 37) {
t = template.charAt(i++);
p = d3_time_parsers[t in d3_time_formatPads ? template.charAt(i++) : t];
if (!p || (j = p(date, string, j)) < 0) return -1;
} else if (c != string.charCodeAt(j++)) {
return -1;
}
}
return j;
}
d3_time_format.utc = function(template) {
var local = d3_time_format(template);
function format(date) {
try {
d3_date = d3_date_utc;
var utc = new d3_date();
utc._ = date;
return local(utc);
} finally {
d3_date = Date;
}
}
format.parse = function(string) {
try {
d3_date = d3_date_utc;
var date = local.parse(string);
return date && date._;
} finally {
d3_date = Date;
}
};
format.toString = local.toString;
return format;
};
d3_time_format.multi = d3_time_format.utc.multi = d3_time_formatMulti;
var d3_time_periodLookup = d3.map(), d3_time_dayRe = d3_time_formatRe(locale_days), d3_time_dayLookup = d3_time_formatLookup(locale_days), d3_time_dayAbbrevRe = d3_time_formatRe(locale_shortDays), d3_time_dayAbbrevLookup = d3_time_formatLookup(locale_shortDays), d3_time_monthRe = d3_time_formatRe(locale_months), d3_time_monthLookup = d3_time_formatLookup(locale_months), d3_time_monthAbbrevRe = d3_time_formatRe(locale_shortMonths), d3_time_monthAbbrevLookup = d3_time_formatLookup(locale_shortMonths);
locale_periods.forEach(function(p, i) {
d3_time_periodLookup.set(p.toLowerCase(), i);
});
var d3_time_formats = {
a: function(d) {
return locale_shortDays[d.getDay()];
},
A: function(d) {
return locale_days[d.getDay()];
},
b: function(d) {
return locale_shortMonths[d.getMonth()];
},
B: function(d) {
return locale_months[d.getMonth()];
},
c: d3_time_format(locale_dateTime),
d: function(d, p) {
return d3_time_formatPad(d.getDate(), p, 2);
},
e: function(d, p) {
return d3_time_formatPad(d.getDate(), p, 2);
},
H: function(d, p) {
return d3_time_formatPad(d.getHours(), p, 2);
},
I: function(d, p) {
return d3_time_formatPad(d.getHours() % 12 || 12, p, 2);
},
j: function(d, p) {
return d3_time_formatPad(1 + d3_time.dayOfYear(d), p, 3);
},
L: function(d, p) {
return d3_time_formatPad(d.getMilliseconds(), p, 3);
},
m: function(d, p) {
return d3_time_formatPad(d.getMonth() + 1, p, 2);
},
M: function(d, p) {
return d3_time_formatPad(d.getMinutes(), p, 2);
},
p: function(d) {
return locale_periods[+(d.getHours() >= 12)];
},
S: function(d, p) {
return d3_time_formatPad(d.getSeconds(), p, 2);
},
U: function(d, p) {
return d3_time_formatPad(d3_time.sundayOfYear(d), p, 2);
},
w: function(d) {
return d.getDay();
},
W: function(d, p) {
return d3_time_formatPad(d3_time.mondayOfYear(d), p, 2);
},
x: d3_time_format(locale_date),
X: d3_time_format(locale_time),
y: function(d, p) {
return d3_time_formatPad(d.getFullYear() % 100, p, 2);
},
Y: function(d, p) {
return d3_time_formatPad(d.getFullYear() % 1e4, p, 4);
},
Z: d3_time_zone,
"%": function() {
return "%";
}
};
var d3_time_parsers = {
a: d3_time_parseWeekdayAbbrev,
A: d3_time_parseWeekday,
b: d3_time_parseMonthAbbrev,
B: d3_time_parseMonth,
c: d3_time_parseLocaleFull,
d: d3_time_parseDay,
e: d3_time_parseDay,
H: d3_time_parseHour24,
I: d3_time_parseHour24,
j: d3_time_parseDayOfYear,
L: d3_time_parseMilliseconds,
m: d3_time_parseMonthNumber,
M: d3_time_parseMinutes,
p: d3_time_parseAmPm,
S: d3_time_parseSeconds,
U: d3_time_parseWeekNumberSunday,
w: d3_time_parseWeekdayNumber,
W: d3_time_parseWeekNumberMonday,
x: d3_time_parseLocaleDate,
X: d3_time_parseLocaleTime,
y: d3_time_parseYear,
Y: d3_time_parseFullYear,
Z: d3_time_parseZone,
"%": d3_time_parseLiteralPercent
};
function d3_time_parseWeekdayAbbrev(date, string, i) {
d3_time_dayAbbrevRe.lastIndex = 0;
var n = d3_time_dayAbbrevRe.exec(string.slice(i));
return n ? (date.w = d3_time_dayAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
}
function d3_time_parseWeekday(date, string, i) {
d3_time_dayRe.lastIndex = 0;
var n = d3_time_dayRe.exec(string.slice(i));
return n ? (date.w = d3_time_dayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
}
function d3_time_parseMonthAbbrev(date, string, i) {
d3_time_monthAbbrevRe.lastIndex = 0;
var n = d3_time_monthAbbrevRe.exec(string.slice(i));
return n ? (date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
}
function d3_time_parseMonth(date, string, i) {
d3_time_monthRe.lastIndex = 0;
var n = d3_time_monthRe.exec(string.slice(i));
return n ? (date.m = d3_time_monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
}
function d3_time_parseLocaleFull(date, string, i) {
return d3_time_parse(date, d3_time_formats.c.toString(), string, i);
}
function d3_time_parseLocaleDate(date, string, i) {
return d3_time_parse(date, d3_time_formats.x.toString(), string, i);
}
function d3_time_parseLocaleTime(date, string, i) {
return d3_time_parse(date, d3_time_formats.X.toString(), string, i);
}
function d3_time_parseAmPm(date, string, i) {
var n = d3_time_periodLookup.get(string.slice(i, i += 2).toLowerCase());
return n == null ? -1 : (date.p = n, i);
}
return d3_time_format;
}
var d3_time_formatPads = {
"-": "",
_: " ",
"0": "0"
}, d3_time_numberRe = /^\s*\d+/, d3_time_percentRe = /^%/;
function d3_time_formatPad(value, fill, width) {
var sign = value < 0 ? "-" : "", string = (sign ? -value : value) + "", length = string.length;
return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);
}
function d3_time_formatRe(names) {
return new RegExp("^(?:" + names.map(d3.requote).join("|") + ")", "i");
}
function d3_time_formatLookup(names) {
var map = new d3_Map(), i = -1, n = names.length;
while (++i < n) map.set(names[i].toLowerCase(), i);
return map;
}
function d3_time_parseWeekdayNumber(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.slice(i, i + 1));
return n ? (date.w = +n[0], i + n[0].length) : -1;
}
function d3_time_parseWeekNumberSunday(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.slice(i));
return n ? (date.U = +n[0], i + n[0].length) : -1;
}
function d3_time_parseWeekNumberMonday(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.slice(i));
return n ? (date.W = +n[0], i + n[0].length) : -1;
}
function d3_time_parseFullYear(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.slice(i, i + 4));
return n ? (date.y = +n[0], i + n[0].length) : -1;
}
function d3_time_parseYear(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.slice(i, i + 2));
return n ? (date.y = d3_time_expandYear(+n[0]), i + n[0].length) : -1;
}
function d3_time_parseZone(date, string, i) {
return /^[+-]\d{4}$/.test(string = string.slice(i, i + 5)) ? (date.Z = -string,
i + 5) : -1;
}
function d3_time_expandYear(d) {
return d + (d > 68 ? 1900 : 2e3);
}
function d3_time_parseMonthNumber(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.slice(i, i + 2));
return n ? (date.m = n[0] - 1, i + n[0].length) : -1;
}
function d3_time_parseDay(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.slice(i, i + 2));
return n ? (date.d = +n[0], i + n[0].length) : -1;
}
function d3_time_parseDayOfYear(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.slice(i, i + 3));
return n ? (date.j = +n[0], i + n[0].length) : -1;
}
function d3_time_parseHour24(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.slice(i, i + 2));
return n ? (date.H = +n[0], i + n[0].length) : -1;
}
function d3_time_parseMinutes(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.slice(i, i + 2));
return n ? (date.M = +n[0], i + n[0].length) : -1;
}
function d3_time_parseSeconds(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.slice(i, i + 2));
return n ? (date.S = +n[0], i + n[0].length) : -1;
}
function d3_time_parseMilliseconds(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.slice(i, i + 3));
return n ? (date.L = +n[0], i + n[0].length) : -1;
}
function d3_time_zone(d) {
var z = d.getTimezoneOffset(), zs = z > 0 ? "-" : "+", zh = abs(z) / 60 | 0, zm = abs(z) % 60;
return zs + d3_time_formatPad(zh, "0", 2) + d3_time_formatPad(zm, "0", 2);
}
function d3_time_parseLiteralPercent(date, string, i) {
d3_time_percentRe.lastIndex = 0;
var n = d3_time_percentRe.exec(string.slice(i, i + 1));
return n ? i + n[0].length : -1;
}
function d3_time_formatMulti(formats) {
var n = formats.length, i = -1;
while (++i < n) formats[i][0] = this(formats[i][0]);
return function(date) {
var i = 0, f = formats[i];
while (!f[1](date)) f = formats[++i];
return f[0](date);
};
}
d3.locale = function(locale) {
return {
numberFormat: d3_locale_numberFormat(locale),
timeFormat: d3_locale_timeFormat(locale)
};
};
var d3_locale_enUS = d3.locale({
decimal: ".",
thousands: ",",
grouping: [ 3 ],
currency: [ "$", "" ],
dateTime: "%a %b %e %X %Y",
date: "%m/%d/%Y",
time: "%H:%M:%S",
periods: [ "AM", "PM" ],
days: [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ],
shortDays: [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ],
months: [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ],
shortMonths: [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]
});
d3.format = d3_locale_enUS.numberFormat;
d3.geo = {};
function d3_adder() {}
d3_adder.prototype = {
s: 0,
t: 0,
add: function(y) {
d3_adderSum(y, this.t, d3_adderTemp);
d3_adderSum(d3_adderTemp.s, this.s, this);
if (this.s) this.t += d3_adderTemp.t; else this.s = d3_adderTemp.t;
},
reset: function() {
this.s = this.t = 0;
},
valueOf: function() {
return this.s;
}
};
var d3_adderTemp = new d3_adder();
function d3_adderSum(a, b, o) {
var x = o.s = a + b, bv = x - a, av = x - bv;
o.t = a - av + (b - bv);
}
d3.geo.stream = function(object, listener) {
if (object && d3_geo_streamObjectType.hasOwnProperty(object.type)) {
d3_geo_streamObjectType[object.type](object, listener);
} else {
d3_geo_streamGeometry(object, listener);
}
};
function d3_geo_streamGeometry(geometry, listener) {
if (geometry && d3_geo_streamGeometryType.hasOwnProperty(geometry.type)) {
d3_geo_streamGeometryType[geometry.type](geometry, listener);
}
}
var d3_geo_streamObjectType = {
Feature: function(feature, listener) {
d3_geo_streamGeometry(feature.geometry, listener);
},
FeatureCollection: function(object, listener) {
var features = object.features, i = -1, n = features.length;
while (++i < n) d3_geo_streamGeometry(features[i].geometry, listener);
}
};
var d3_geo_streamGeometryType = {
Sphere: function(object, listener) {
listener.sphere();
},
Point: function(object, listener) {
object = object.coordinates;
listener.point(object[0], object[1], object[2]);
},
MultiPoint: function(object, listener) {
var coordinates = object.coordinates, i = -1, n = coordinates.length;
while (++i < n) object = coordinates[i], listener.point(object[0], object[1], object[2]);
},
LineString: function(object, listener) {
d3_geo_streamLine(object.coordinates, listener, 0);
},
MultiLineString: function(object, listener) {
var coordinates = object.coordinates, i = -1, n = coordinates.length;
while (++i < n) d3_geo_streamLine(coordinates[i], listener, 0);
},
Polygon: function(object, listener) {
d3_geo_streamPolygon(object.coordinates, listener);
},
MultiPolygon: function(object, listener) {
var coordinates = object.coordinates, i = -1, n = coordinates.length;
while (++i < n) d3_geo_streamPolygon(coordinates[i], listener);
},
GeometryCollection: function(object, listener) {
var geometries = object.geometries, i = -1, n = geometries.length;
while (++i < n) d3_geo_streamGeometry(geometries[i], listener);
}
};
function d3_geo_streamLine(coordinates, listener, closed) {
var i = -1, n = coordinates.length - closed, coordinate;
listener.lineStart();
while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1], coordinate[2]);
listener.lineEnd();
}
function d3_geo_streamPolygon(coordinates, listener) {
var i = -1, n = coordinates.length;
listener.polygonStart();
while (++i < n) d3_geo_streamLine(coordinates[i], listener, 1);
listener.polygonEnd();
}
d3.geo.area = function(object) {
d3_geo_areaSum = 0;
d3.geo.stream(object, d3_geo_area);
return d3_geo_areaSum;
};
var d3_geo_areaSum, d3_geo_areaRingSum = new d3_adder();
var d3_geo_area = {
sphere: function() {
d3_geo_areaSum += 4 * π;
},
point: d3_noop,
lineStart: d3_noop,
lineEnd: d3_noop,
polygonStart: function() {
d3_geo_areaRingSum.reset();
d3_geo_area.lineStart = d3_geo_areaRingStart;
},
polygonEnd: function() {
var area = 2 * d3_geo_areaRingSum;
d3_geo_areaSum += area < 0 ? 4 * π + area : area;
d3_geo_area.lineStart = d3_geo_area.lineEnd = d3_geo_area.point = d3_noop;
}
};
function d3_geo_areaRingStart() {
var λ00, φ00, λ0, cosφ0, sinφ0;
d3_geo_area.point = function(λ, φ) {
d3_geo_area.point = nextPoint;
λ0 = (λ00 = λ) * d3_radians, cosφ0 = Math.cos(φ = (φ00 = φ) * d3_radians / 2 + π / 4),
sinφ0 = Math.sin(φ);
};
function nextPoint(λ, φ) {
λ *= d3_radians;
φ = φ * d3_radians / 2 + π / 4;
var dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, cosφ = Math.cos(φ), sinφ = Math.sin(φ), k = sinφ0 * sinφ, u = cosφ0 * cosφ + k * Math.cos(adλ), v = k * sdλ * Math.sin(adλ);
d3_geo_areaRingSum.add(Math.atan2(v, u));
λ0 = λ, cosφ0 = cosφ, sinφ0 = sinφ;
}
d3_geo_area.lineEnd = function() {
nextPoint(λ00, φ00);
};
}
function d3_geo_cartesian(spherical) {
var λ = spherical[0], φ = spherical[1], cosφ = Math.cos(φ);
return [ cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ) ];
}
function d3_geo_cartesianDot(a, b) {
return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
}
function d3_geo_cartesianCross(a, b) {
return [ a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0] ];
}
function d3_geo_cartesianAdd(a, b) {
a[0] += b[0];
a[1] += b[1];
a[2] += b[2];
}
function d3_geo_cartesianScale(vector, k) {
return [ vector[0] * k, vector[1] * k, vector[2] * k ];
}
function d3_geo_cartesianNormalize(d) {
var l = Math.sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);
d[0] /= l;
d[1] /= l;
d[2] /= l;
}
function d3_geo_spherical(cartesian) {
return [ Math.atan2(cartesian[1], cartesian[0]), d3_asin(cartesian[2]) ];
}
function d3_geo_sphericalEqual(a, b) {
return abs(a[0] - b[0]) < ε && abs(a[1] - b[1]) < ε;
}
d3.geo.bounds = function() {
var λ0, φ0, λ1, φ1, λ_, λ__, φ__, p0, dλSum, ranges, range;
var bound = {
point: point,
lineStart: lineStart,
lineEnd: lineEnd,
polygonStart: function() {
bound.point = ringPoint;
bound.lineStart = ringStart;
bound.lineEnd = ringEnd;
dλSum = 0;
d3_geo_area.polygonStart();
},
polygonEnd: function() {
d3_geo_area.polygonEnd();
bound.point = point;
bound.lineStart = lineStart;
bound.lineEnd = lineEnd;
if (d3_geo_areaRingSum < 0) λ0 = -(λ1 = 180), φ0 = -(φ1 = 90); else if (dλSum > ε) φ1 = 90; else if (dλSum < -ε) φ0 = -90;
range[0] = λ0, range[1] = λ1;
}
};
function point(λ, φ) {
ranges.push(range = [ λ0 = λ, λ1 = λ ]);
if (φ < φ0) φ0 = φ;
if (φ > φ1) φ1 = φ;
}
function linePoint(λ, φ) {
var p = d3_geo_cartesian([ λ * d3_radians, φ * d3_radians ]);
if (p0) {
var normal = d3_geo_cartesianCross(p0, p), equatorial = [ normal[1], -normal[0], 0 ], inflection = d3_geo_cartesianCross(equatorial, normal);
d3_geo_cartesianNormalize(inflection);
inflection = d3_geo_spherical(inflection);
var dλ = λ - λ_, s = dλ > 0 ? 1 : -1, λi = inflection[0] * d3_degrees * s, antimeridian = abs(dλ) > 180;
if (antimeridian ^ (s * λ_ < λi && λi < s * λ)) {
var φi = inflection[1] * d3_degrees;
if (φi > φ1) φ1 = φi;
} else if (λi = (λi + 360) % 360 - 180, antimeridian ^ (s * λ_ < λi && λi < s * λ)) {
var φi = -inflection[1] * d3_degrees;
if (φi < φ0) φ0 = φi;
} else {
if (φ < φ0) φ0 = φ;
if (φ > φ1) φ1 = φ;
}
if (antimeridian) {
if (λ < λ_) {
if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ;
} else {
if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ;
}
} else {
if (λ1 >= λ0) {
if (λ < λ0) λ0 = λ;
if (λ > λ1) λ1 = λ;
} else {
if (λ > λ_) {
if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ;
} else {
if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ;
}
}
}
} else {
point(λ, φ);
}
p0 = p, λ_ = λ;
}
function lineStart() {
bound.point = linePoint;
}
function lineEnd() {
range[0] = λ0, range[1] = λ1;
bound.point = point;
p0 = null;
}
function ringPoint(λ, φ) {
if (p0) {
var dλ = λ - λ_;
dλSum += abs(dλ) > 180 ? dλ + (dλ > 0 ? 360 : -360) : dλ;
} else λ__ = λ, φ__ = φ;
d3_geo_area.point(λ, φ);
linePoint(λ, φ);
}
function ringStart() {
d3_geo_area.lineStart();
}
function ringEnd() {
ringPoint(λ__, φ__);
d3_geo_area.lineEnd();
if (abs(dλSum) > ε) λ0 = -(λ1 = 180);
range[0] = λ0, range[1] = λ1;
p0 = null;
}
function angle(λ0, λ1) {
return (λ1 -= λ0) < 0 ? λ1 + 360 : λ1;
}
function compareRanges(a, b) {
return a[0] - b[0];
}
function withinRange(x, range) {
return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;
}
return function(feature) {
φ1 = λ1 = -(λ0 = φ0 = Infinity);
ranges = [];
d3.geo.stream(feature, bound);
var n = ranges.length;
if (n) {
ranges.sort(compareRanges);
for (var i = 1, a = ranges[0], b, merged = [ a ]; i < n; ++i) {
b = ranges[i];
if (withinRange(b[0], a) || withinRange(b[1], a)) {
if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];
if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];
} else {
merged.push(a = b);
}
}
var best = -Infinity, dλ;
for (var n = merged.length - 1, i = 0, a = merged[n], b; i <= n; a = b, ++i) {
b = merged[i];
if ((dλ = angle(a[1], b[0])) > best) best = dλ, λ0 = b[0], λ1 = a[1];
}
}
ranges = range = null;
return λ0 === Infinity || φ0 === Infinity ? [ [ NaN, NaN ], [ NaN, NaN ] ] : [ [ λ0, φ0 ], [ λ1, φ1 ] ];
};
}();
d3.geo.centroid = function(object) {
d3_geo_centroidW0 = d3_geo_centroidW1 = d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0;
d3.geo.stream(object, d3_geo_centroid);
var x = d3_geo_centroidX2, y = d3_geo_centroidY2, z = d3_geo_centroidZ2, m = x * x + y * y + z * z;
if (m < ε2) {
x = d3_geo_centroidX1, y = d3_geo_centroidY1, z = d3_geo_centroidZ1;
if (d3_geo_centroidW1 < ε) x = d3_geo_centroidX0, y = d3_geo_centroidY0, z = d3_geo_centroidZ0;
m = x * x + y * y + z * z;
if (m < ε2) return [ NaN, NaN ];
}
return [ Math.atan2(y, x) * d3_degrees, d3_asin(z / Math.sqrt(m)) * d3_degrees ];
};
var d3_geo_centroidW0, d3_geo_centroidW1, d3_geo_centroidX0, d3_geo_centroidY0, d3_geo_centroidZ0, d3_geo_centroidX1, d3_geo_centroidY1, d3_geo_centroidZ1, d3_geo_centroidX2, d3_geo_centroidY2, d3_geo_centroidZ2;
var d3_geo_centroid = {
sphere: d3_noop,
point: d3_geo_centroidPoint,
lineStart: d3_geo_centroidLineStart,
lineEnd: d3_geo_centroidLineEnd,
polygonStart: function() {
d3_geo_centroid.lineStart = d3_geo_centroidRingStart;
},
polygonEnd: function() {
d3_geo_centroid.lineStart = d3_geo_centroidLineStart;
}
};
function d3_geo_centroidPoint(λ, φ) {
λ *= d3_radians;
var cosφ = Math.cos(φ *= d3_radians);
d3_geo_centroidPointXYZ(cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ));
}
function d3_geo_centroidPointXYZ(x, y, z) {
++d3_geo_centroidW0;
d3_geo_centroidX0 += (x - d3_geo_centroidX0) / d3_geo_centroidW0;
d3_geo_centroidY0 += (y - d3_geo_centroidY0) / d3_geo_centroidW0;
d3_geo_centroidZ0 += (z - d3_geo_centroidZ0) / d3_geo_centroidW0;
}
function d3_geo_centroidLineStart() {
var x0, y0, z0;
d3_geo_centroid.point = function(λ, φ) {
λ *= d3_radians;
var cosφ = Math.cos(φ *= d3_radians);
x0 = cosφ * Math.cos(λ);
y0 = cosφ * Math.sin(λ);
z0 = Math.sin(φ);
d3_geo_centroid.point = nextPoint;
d3_geo_centroidPointXYZ(x0, y0, z0);
};
function nextPoint(λ, φ) {
λ *= d3_radians;
var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), w = Math.atan2(Math.sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);
d3_geo_centroidW1 += w;
d3_geo_centroidX1 += w * (x0 + (x0 = x));
d3_geo_centroidY1 += w * (y0 + (y0 = y));
d3_geo_centroidZ1 += w * (z0 + (z0 = z));
d3_geo_centroidPointXYZ(x0, y0, z0);
}
}
function d3_geo_centroidLineEnd() {
d3_geo_centroid.point = d3_geo_centroidPoint;
}
function d3_geo_centroidRingStart() {
var λ00, φ00, x0, y0, z0;
d3_geo_centroid.point = function(λ, φ) {
λ00 = λ, φ00 = φ;
d3_geo_centroid.point = nextPoint;
λ *= d3_radians;
var cosφ = Math.cos(φ *= d3_radians);
x0 = cosφ * Math.cos(λ);
y0 = cosφ * Math.sin(λ);
z0 = Math.sin(φ);
d3_geo_centroidPointXYZ(x0, y0, z0);
};
d3_geo_centroid.lineEnd = function() {
nextPoint(λ00, φ00);
d3_geo_centroid.lineEnd = d3_geo_centroidLineEnd;
d3_geo_centroid.point = d3_geo_centroidPoint;
};
function nextPoint(λ, φ) {
λ *= d3_radians;
var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), cx = y0 * z - z0 * y, cy = z0 * x - x0 * z, cz = x0 * y - y0 * x, m = Math.sqrt(cx * cx + cy * cy + cz * cz), u = x0 * x + y0 * y + z0 * z, v = m && -d3_acos(u) / m, w = Math.atan2(m, u);
d3_geo_centroidX2 += v * cx;
d3_geo_centroidY2 += v * cy;
d3_geo_centroidZ2 += v * cz;
d3_geo_centroidW1 += w;
d3_geo_centroidX1 += w * (x0 + (x0 = x));
d3_geo_centroidY1 += w * (y0 + (y0 = y));
d3_geo_centroidZ1 += w * (z0 + (z0 = z));
d3_geo_centroidPointXYZ(x0, y0, z0);
}
}
function d3_geo_compose(a, b) {
function compose(x, y) {
return x = a(x, y), b(x[0], x[1]);
}
if (a.invert && b.invert) compose.invert = function(x, y) {
return x = b.invert(x, y), x && a.invert(x[0], x[1]);
};
return compose;
}
function d3_true() {
return true;
}
function d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener) {
var subject = [], clip = [];
segments.forEach(function(segment) {
if ((n = segment.length - 1) <= 0) return;
var n, p0 = segment[0], p1 = segment[n];
if (d3_geo_sphericalEqual(p0, p1)) {
listener.lineStart();
for (var i = 0; i < n; ++i) listener.point((p0 = segment[i])[0], p0[1]);
listener.lineEnd();
return;
}
var a = new d3_geo_clipPolygonIntersection(p0, segment, null, true), b = new d3_geo_clipPolygonIntersection(p0, null, a, false);
a.o = b;
subject.push(a);
clip.push(b);
a = new d3_geo_clipPolygonIntersection(p1, segment, null, false);
b = new d3_geo_clipPolygonIntersection(p1, null, a, true);
a.o = b;
subject.push(a);
clip.push(b);
});
clip.sort(compare);
d3_geo_clipPolygonLinkCircular(subject);
d3_geo_clipPolygonLinkCircular(clip);
if (!subject.length) return;
for (var i = 0, entry = clipStartInside, n = clip.length; i < n; ++i) {
clip[i].e = entry = !entry;
}
var start = subject[0], points, point;
while (1) {
var current = start, isSubject = true;
while (current.v) if ((current = current.n) === start) return;
points = current.z;
listener.lineStart();
do {
current.v = current.o.v = true;
if (current.e) {
if (isSubject) {
for (var i = 0, n = points.length; i < n; ++i) listener.point((point = points[i])[0], point[1]);
} else {
interpolate(current.x, current.n.x, 1, listener);
}
current = current.n;
} else {
if (isSubject) {
points = current.p.z;
for (var i = points.length - 1; i >= 0; --i) listener.point((point = points[i])[0], point[1]);
} else {
interpolate(current.x, current.p.x, -1, listener);
}
current = current.p;
}
current = current.o;
points = current.z;
isSubject = !isSubject;
} while (!current.v);
listener.lineEnd();
}
}
function d3_geo_clipPolygonLinkCircular(array) {
if (!(n = array.length)) return;
var n, i = 0, a = array[0], b;
while (++i < n) {
a.n = b = array[i];
b.p = a;
a = b;
}
a.n = b = array[0];
b.p = a;
}
function d3_geo_clipPolygonIntersection(point, points, other, entry) {
this.x = point;
this.z = points;
this.o = other;
this.e = entry;
this.v = false;
this.n = this.p = null;
}
function d3_geo_clip(pointVisible, clipLine, interpolate, clipStart) {
return function(rotate, listener) {
var line = clipLine(listener), rotatedClipStart = rotate.invert(clipStart[0], clipStart[1]);
var clip = {
point: point,
lineStart: lineStart,
lineEnd: lineEnd,
polygonStart: function() {
clip.point = pointRing;
clip.lineStart = ringStart;
clip.lineEnd = ringEnd;
segments = [];
polygon = [];
},
polygonEnd: function() {
clip.point = point;
clip.lineStart = lineStart;
clip.lineEnd = lineEnd;
segments = d3.merge(segments);
var clipStartInside = d3_geo_pointInPolygon(rotatedClipStart, polygon);
if (segments.length) {
if (!polygonStarted) listener.polygonStart(), polygonStarted = true;
d3_geo_clipPolygon(segments, d3_geo_clipSort, clipStartInside, interpolate, listener);
} else if (clipStartInside) {
if (!polygonStarted) listener.polygonStart(), polygonStarted = true;
listener.lineStart();
interpolate(null, null, 1, listener);
listener.lineEnd();
}
if (polygonStarted) listener.polygonEnd(), polygonStarted = false;
segments = polygon = null;
},
sphere: function() {
listener.polygonStart();
listener.lineStart();
interpolate(null, null, 1, listener);
listener.lineEnd();
listener.polygonEnd();
}
};
function point(λ, φ) {
var point = rotate(λ, φ);
if (pointVisible(λ = point[0], φ = point[1])) listener.point(λ, φ);
}
function pointLine(λ, φ) {
var point = rotate(λ, φ);
line.point(point[0], point[1]);
}
function lineStart() {
clip.point = pointLine;
line.lineStart();
}
function lineEnd() {
clip.point = point;
line.lineEnd();
}
var segments;
var buffer = d3_geo_clipBufferListener(), ringListener = clipLine(buffer), polygonStarted = false, polygon, ring;
function pointRing(λ, φ) {
ring.push([ λ, φ ]);
var point = rotate(λ, φ);
ringListener.point(point[0], point[1]);
}
function ringStart() {
ringListener.lineStart();
ring = [];
}
function ringEnd() {
pointRing(ring[0][0], ring[0][1]);
ringListener.lineEnd();
var clean = ringListener.clean(), ringSegments = buffer.buffer(), segment, n = ringSegments.length;
ring.pop();
polygon.push(ring);
ring = null;
if (!n) return;
if (clean & 1) {
segment = ringSegments[0];
var n = segment.length - 1, i = -1, point;
if (n > 0) {
if (!polygonStarted) listener.polygonStart(), polygonStarted = true;
listener.lineStart();
while (++i < n) listener.point((point = segment[i])[0], point[1]);
listener.lineEnd();
}
return;
}
if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));
segments.push(ringSegments.filter(d3_geo_clipSegmentLength1));
}
return clip;
};
}
function d3_geo_clipSegmentLength1(segment) {
return segment.length > 1;
}
function d3_geo_clipBufferListener() {
var lines = [], line;
return {
lineStart: function() {
lines.push(line = []);
},
point: function(λ, φ) {
line.push([ λ, φ ]);
},
lineEnd: d3_noop,
buffer: function() {
var buffer = lines;
lines = [];
line = null;
return buffer;
},
rejoin: function() {
if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));
}
};
}
function d3_geo_clipSort(a, b) {
return ((a = a.x)[0] < 0 ? a[1] - halfπ - ε : halfπ - a[1]) - ((b = b.x)[0] < 0 ? b[1] - halfπ - ε : halfπ - b[1]);
}
var d3_geo_clipAntimeridian = d3_geo_clip(d3_true, d3_geo_clipAntimeridianLine, d3_geo_clipAntimeridianInterpolate, [ -π, -π / 2 ]);
function d3_geo_clipAntimeridianLine(listener) {
var λ0 = NaN, φ0 = NaN, sλ0 = NaN, clean;
return {
lineStart: function() {
listener.lineStart();
clean = 1;
},
point: function(λ1, φ1) {
var sλ1 = λ1 > 0 ? π : -π, dλ = abs(λ1 - λ0);
if (abs(dλ - π) < ε) {
listener.point(λ0, φ0 = (φ0 + φ1) / 2 > 0 ? halfπ : -halfπ);
listener.point(sλ0, φ0);
listener.lineEnd();
listener.lineStart();
listener.point(sλ1, φ0);
listener.point(λ1, φ0);
clean = 0;
} else if (sλ0 !== sλ1 && dλ >= π) {
if (abs(λ0 - sλ0) < ε) λ0 -= sλ0 * ε;
if (abs(λ1 - sλ1) < ε) λ1 -= sλ1 * ε;
φ0 = d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1);
listener.point(sλ0, φ0);
listener.lineEnd();
listener.lineStart();
listener.point(sλ1, φ0);
clean = 0;
}
listener.point(λ0 = λ1, φ0 = φ1);
sλ0 = sλ1;
},
lineEnd: function() {
listener.lineEnd();
λ0 = φ0 = NaN;
},
clean: function() {
return 2 - clean;
}
};
}
function d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1) {
var cosφ0, cosφ1, sinλ0_λ1 = Math.sin(λ0 - λ1);
return abs(sinλ0_λ1) > ε ? Math.atan((Math.sin(φ0) * (cosφ1 = Math.cos(φ1)) * Math.sin(λ1) - Math.sin(φ1) * (cosφ0 = Math.cos(φ0)) * Math.sin(λ0)) / (cosφ0 * cosφ1 * sinλ0_λ1)) : (φ0 + φ1) / 2;
}
function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) {
var φ;
if (from == null) {
φ = direction * halfπ;
listener.point(-π, φ);
listener.point(0, φ);
listener.point(π, φ);
listener.point(π, 0);
listener.point(π, -φ);
listener.point(0, -φ);
listener.point(-π, -φ);
listener.point(-π, 0);
listener.point(-π, φ);
} else if (abs(from[0] - to[0]) > ε) {
var s = from[0] < to[0] ? π : -π;
φ = direction * s / 2;
listener.point(-s, φ);
listener.point(0, φ);
listener.point(s, φ);
} else {
listener.point(to[0], to[1]);
}
}
function d3_geo_pointInPolygon(point, polygon) {
var meridian = point[0], parallel = point[1], meridianNormal = [ Math.sin(meridian), -Math.cos(meridian), 0 ], polarAngle = 0, winding = 0;
d3_geo_areaRingSum.reset();
for (var i = 0, n = polygon.length; i < n; ++i) {
var ring = polygon[i], m = ring.length;
if (!m) continue;
var point0 = ring[0], λ0 = point0[0], φ0 = point0[1] / 2 + π / 4, sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), j = 1;
while (true) {
if (j === m) j = 0;
point = ring[j];
var λ = point[0], φ = point[1] / 2 + π / 4, sinφ = Math.sin(φ), cosφ = Math.cos(φ), dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, antimeridian = adλ > π, k = sinφ0 * sinφ;
d3_geo_areaRingSum.add(Math.atan2(k * sdλ * Math.sin(adλ), cosφ0 * cosφ + k * Math.cos(adλ)));
polarAngle += antimeridian ? dλ + sdλ * τ : dλ;
if (antimeridian ^ λ0 >= meridian ^ λ >= meridian) {
var arc = d3_geo_cartesianCross(d3_geo_cartesian(point0), d3_geo_cartesian(point));
d3_geo_cartesianNormalize(arc);
var intersection = d3_geo_cartesianCross(meridianNormal, arc);
d3_geo_cartesianNormalize(intersection);
var φarc = (antimeridian ^ dλ >= 0 ? -1 : 1) * d3_asin(intersection[2]);
if (parallel > φarc || parallel === φarc && (arc[0] || arc[1])) {
winding += antimeridian ^ dλ >= 0 ? 1 : -1;
}
}
if (!j++) break;
λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ, point0 = point;
}
}
return (polarAngle < -ε || polarAngle < ε && d3_geo_areaRingSum < 0) ^ winding & 1;
}
function d3_geo_clipCircle(radius) {
var cr = Math.cos(radius), smallRadius = cr > 0, notHemisphere = abs(cr) > ε, interpolate = d3_geo_circleInterpolate(radius, 6 * d3_radians);
return d3_geo_clip(visible, clipLine, interpolate, smallRadius ? [ 0, -radius ] : [ -π, radius - π ]);
function visible(λ, φ) {
return Math.cos(λ) * Math.cos(φ) > cr;
}
function clipLine(listener) {
var point0, c0, v0, v00, clean;
return {
lineStart: function() {
v00 = v0 = false;
clean = 1;
},
point: function(λ, φ) {
var point1 = [ λ, φ ], point2, v = visible(λ, φ), c = smallRadius ? v ? 0 : code(λ, φ) : v ? code(λ + (λ < 0 ? π : -π), φ) : 0;
if (!point0 && (v00 = v0 = v)) listener.lineStart();
if (v !== v0) {
point2 = intersect(point0, point1);
if (d3_geo_sphericalEqual(point0, point2) || d3_geo_sphericalEqual(point1, point2)) {
point1[0] += ε;
point1[1] += ε;
v = visible(point1[0], point1[1]);
}
}
if (v !== v0) {
clean = 0;
if (v) {
listener.lineStart();
point2 = intersect(point1, point0);
listener.point(point2[0], point2[1]);
} else {
point2 = intersect(point0, point1);
listener.point(point2[0], point2[1]);
listener.lineEnd();
}
point0 = point2;
} else if (notHemisphere && point0 && smallRadius ^ v) {
var t;
if (!(c & c0) && (t = intersect(point1, point0, true))) {
clean = 0;
if (smallRadius) {
listener.lineStart();
listener.point(t[0][0], t[0][1]);
listener.point(t[1][0], t[1][1]);
listener.lineEnd();
} else {
listener.point(t[1][0], t[1][1]);
listener.lineEnd();
listener.lineStart();
listener.point(t[0][0], t[0][1]);
}
}
}
if (v && (!point0 || !d3_geo_sphericalEqual(point0, point1))) {
listener.point(point1[0], point1[1]);
}
point0 = point1, v0 = v, c0 = c;
},
lineEnd: function() {
if (v0) listener.lineEnd();
point0 = null;
},
clean: function() {
return clean | (v00 && v0) << 1;
}
};
}
function intersect(a, b, two) {
var pa = d3_geo_cartesian(a), pb = d3_geo_cartesian(b);
var n1 = [ 1, 0, 0 ], n2 = d3_geo_cartesianCross(pa, pb), n2n2 = d3_geo_cartesianDot(n2, n2), n1n2 = n2[0], determinant = n2n2 - n1n2 * n1n2;
if (!determinant) return !two && a;
var c1 = cr * n2n2 / determinant, c2 = -cr * n1n2 / determinant, n1xn2 = d3_geo_cartesianCross(n1, n2), A = d3_geo_cartesianScale(n1, c1), B = d3_geo_cartesianScale(n2, c2);
d3_geo_cartesianAdd(A, B);
var u = n1xn2, w = d3_geo_cartesianDot(A, u), uu = d3_geo_cartesianDot(u, u), t2 = w * w - uu * (d3_geo_cartesianDot(A, A) - 1);
if (t2 < 0) return;
var t = Math.sqrt(t2), q = d3_geo_cartesianScale(u, (-w - t) / uu);
d3_geo_cartesianAdd(q, A);
q = d3_geo_spherical(q);
if (!two) return q;
var λ0 = a[0], λ1 = b[0], φ0 = a[1], φ1 = b[1], z;
if (λ1 < λ0) z = λ0, λ0 = λ1, λ1 = z;
var δλ = λ1 - λ0, polar = abs(δλ - π) < ε, meridian = polar || δλ < ε;
if (!polar && φ1 < φ0) z = φ0, φ0 = φ1, φ1 = z;
if (meridian ? polar ? φ0 + φ1 > 0 ^ q[1] < (abs(q[0] - λ0) < ε ? φ0 : φ1) : φ0 <= q[1] && q[1] <= φ1 : δλ > π ^ (λ0 <= q[0] && q[0] <= λ1)) {
var q1 = d3_geo_cartesianScale(u, (-w + t) / uu);
d3_geo_cartesianAdd(q1, A);
return [ q, d3_geo_spherical(q1) ];
}
}
function code(λ, φ) {
var r = smallRadius ? radius : π - radius, code = 0;
if (λ < -r) code |= 1; else if (λ > r) code |= 2;
if (φ < -r) code |= 4; else if (φ > r) code |= 8;
return code;
}
}
function d3_geom_clipLine(x0, y0, x1, y1) {
return function(line) {
var a = line.a, b = line.b, ax = a.x, ay = a.y, bx = b.x, by = b.y, t0 = 0, t1 = 1, dx = bx - ax, dy = by - ay, r;
r = x0 - ax;
if (!dx && r > 0) return;
r /= dx;
if (dx < 0) {
if (r < t0) return;
if (r < t1) t1 = r;
} else if (dx > 0) {
if (r > t1) return;
if (r > t0) t0 = r;
}
r = x1 - ax;
if (!dx && r < 0) return;
r /= dx;
if (dx < 0) {
if (r > t1) return;
if (r > t0) t0 = r;
} else if (dx > 0) {
if (r < t0) return;
if (r < t1) t1 = r;
}
r = y0 - ay;
if (!dy && r > 0) return;
r /= dy;
if (dy < 0) {
if (r < t0) return;
if (r < t1) t1 = r;
} else if (dy > 0) {
if (r > t1) return;
if (r > t0) t0 = r;
}
r = y1 - ay;
if (!dy && r < 0) return;
r /= dy;
if (dy < 0) {
if (r > t1) return;
if (r > t0) t0 = r;
} else if (dy > 0) {
if (r < t0) return;
if (r < t1) t1 = r;
}
if (t0 > 0) line.a = {
x: ax + t0 * dx,
y: ay + t0 * dy
};
if (t1 < 1) line.b = {
x: ax + t1 * dx,
y: ay + t1 * dy
};
return line;
};
}
var d3_geo_clipExtentMAX = 1e9;
d3.geo.clipExtent = function() {
var x0, y0, x1, y1, stream, clip, clipExtent = {
stream: function(output) {
if (stream) stream.valid = false;
stream = clip(output);
stream.valid = true;
return stream;
},
extent: function(_) {
if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ];
clip = d3_geo_clipExtent(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]);
if (stream) stream.valid = false, stream = null;
return clipExtent;
}
};
return clipExtent.extent([ [ 0, 0 ], [ 960, 500 ] ]);
};
function d3_geo_clipExtent(x0, y0, x1, y1) {
return function(listener) {
var listener_ = listener, bufferListener = d3_geo_clipBufferListener(), clipLine = d3_geom_clipLine(x0, y0, x1, y1), segments, polygon, ring;
var clip = {
point: point,
lineStart: lineStart,
lineEnd: lineEnd,
polygonStart: function() {
listener = bufferListener;
segments = [];
polygon = [];
clean = true;
},
polygonEnd: function() {
listener = listener_;
segments = d3.merge(segments);
var clipStartInside = insidePolygon([ x0, y1 ]), inside = clean && clipStartInside, visible = segments.length;
if (inside || visible) {
listener.polygonStart();
if (inside) {
listener.lineStart();
interpolate(null, null, 1, listener);
listener.lineEnd();
}
if (visible) {
d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener);
}
listener.polygonEnd();
}
segments = polygon = ring = null;
}
};
function insidePolygon(p) {
var wn = 0, n = polygon.length, y = p[1];
for (var i = 0; i < n; ++i) {
for (var j = 1, v = polygon[i], m = v.length, a = v[0], b; j < m; ++j) {
b = v[j];
if (a[1] <= y) {
if (b[1] > y && d3_cross2d(a, b, p) > 0) ++wn;
} else {
if (b[1] <= y && d3_cross2d(a, b, p) < 0) --wn;
}
a = b;
}
}
return wn !== 0;
}
function interpolate(from, to, direction, listener) {
var a = 0, a1 = 0;
if (from == null || (a = corner(from, direction)) !== (a1 = corner(to, direction)) || comparePoints(from, to) < 0 ^ direction > 0) {
do {
listener.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);
} while ((a = (a + direction + 4) % 4) !== a1);
} else {
listener.point(to[0], to[1]);
}
}
function pointVisible(x, y) {
return x0 <= x && x <= x1 && y0 <= y && y <= y1;
}
function point(x, y) {
if (pointVisible(x, y)) listener.point(x, y);
}
var x__, y__, v__, x_, y_, v_, first, clean;
function lineStart() {
clip.point = linePoint;
if (polygon) polygon.push(ring = []);
first = true;
v_ = false;
x_ = y_ = NaN;
}
function lineEnd() {
if (segments) {
linePoint(x__, y__);
if (v__ && v_) bufferListener.rejoin();
segments.push(bufferListener.buffer());
}
clip.point = point;
if (v_) listener.lineEnd();
}
function linePoint(x, y) {
x = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, x));
y = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, y));
var v = pointVisible(x, y);
if (polygon) ring.push([ x, y ]);
if (first) {
x__ = x, y__ = y, v__ = v;
first = false;
if (v) {
listener.lineStart();
listener.point(x, y);
}
} else {
if (v && v_) listener.point(x, y); else {
var l = {
a: {
x: x_,
y: y_
},
b: {
x: x,
y: y
}
};
if (clipLine(l)) {
if (!v_) {
listener.lineStart();
listener.point(l.a.x, l.a.y);
}
listener.point(l.b.x, l.b.y);
if (!v) listener.lineEnd();
clean = false;
} else if (v) {
listener.lineStart();
listener.point(x, y);
clean = false;
}
}
}
x_ = x, y_ = y, v_ = v;
}
return clip;
};
function corner(p, direction) {
return abs(p[0] - x0) < ε ? direction > 0 ? 0 : 3 : abs(p[0] - x1) < ε ? direction > 0 ? 2 : 1 : abs(p[1] - y0) < ε ? direction > 0 ? 1 : 0 : direction > 0 ? 3 : 2;
}
function compare(a, b) {
return comparePoints(a.x, b.x);
}
function comparePoints(a, b) {
var ca = corner(a, 1), cb = corner(b, 1);
return ca !== cb ? ca - cb : ca === 0 ? b[1] - a[1] : ca === 1 ? a[0] - b[0] : ca === 2 ? a[1] - b[1] : b[0] - a[0];
}
}
function d3_geo_conic(projectAt) {
var φ0 = 0, φ1 = π / 3, m = d3_geo_projectionMutator(projectAt), p = m(φ0, φ1);
p.parallels = function(_) {
if (!arguments.length) return [ φ0 / π * 180, φ1 / π * 180 ];
return m(φ0 = _[0] * π / 180, φ1 = _[1] * π / 180);
};
return p;
}
function d3_geo_conicEqualArea(φ0, φ1) {
var sinφ0 = Math.sin(φ0), n = (sinφ0 + Math.sin(φ1)) / 2, C = 1 + sinφ0 * (2 * n - sinφ0), ρ0 = Math.sqrt(C) / n;
function forward(λ, φ) {
var ρ = Math.sqrt(C - 2 * n * Math.sin(φ)) / n;
return [ ρ * Math.sin(λ *= n), ρ0 - ρ * Math.cos(λ) ];
}
forward.invert = function(x, y) {
var ρ0_y = ρ0 - y;
return [ Math.atan2(x, ρ0_y) / n, d3_asin((C - (x * x + ρ0_y * ρ0_y) * n * n) / (2 * n)) ];
};
return forward;
}
(d3.geo.conicEqualArea = function() {
return d3_geo_conic(d3_geo_conicEqualArea);
}).raw = d3_geo_conicEqualArea;
d3.geo.albers = function() {
return d3.geo.conicEqualArea().rotate([ 96, 0 ]).center([ -.6, 38.7 ]).parallels([ 29.5, 45.5 ]).scale(1070);
};
d3.geo.albersUsa = function() {
var lower48 = d3.geo.albers();
var alaska = d3.geo.conicEqualArea().rotate([ 154, 0 ]).center([ -2, 58.5 ]).parallels([ 55, 65 ]);
var hawaii = d3.geo.conicEqualArea().rotate([ 157, 0 ]).center([ -3, 19.9 ]).parallels([ 8, 18 ]);
var point, pointStream = {
point: function(x, y) {
point = [ x, y ];
}
}, lower48Point, alaskaPoint, hawaiiPoint;
function albersUsa(coordinates) {
var x = coordinates[0], y = coordinates[1];
point = null;
(lower48Point(x, y), point) || (alaskaPoint(x, y), point) || hawaiiPoint(x, y);
return point;
}
albersUsa.invert = function(coordinates) {
var k = lower48.scale(), t = lower48.translate(), x = (coordinates[0] - t[0]) / k, y = (coordinates[1] - t[1]) / k;
return (y >= .12 && y < .234 && x >= -.425 && x < -.214 ? alaska : y >= .166 && y < .234 && x >= -.214 && x < -.115 ? hawaii : lower48).invert(coordinates);
};
albersUsa.stream = function(stream) {
var lower48Stream = lower48.stream(stream), alaskaStream = alaska.stream(stream), hawaiiStream = hawaii.stream(stream);
return {
point: function(x, y) {
lower48Stream.point(x, y);
alaskaStream.point(x, y);
hawaiiStream.point(x, y);
},
sphere: function() {
lower48Stream.sphere();
alaskaStream.sphere();
hawaiiStream.sphere();
},
lineStart: function() {
lower48Stream.lineStart();
alaskaStream.lineStart();
hawaiiStream.lineStart();
},
lineEnd: function() {
lower48Stream.lineEnd();
alaskaStream.lineEnd();
hawaiiStream.lineEnd();
},
polygonStart: function() {
lower48Stream.polygonStart();
alaskaStream.polygonStart();
hawaiiStream.polygonStart();
},
polygonEnd: function() {
lower48Stream.polygonEnd();
alaskaStream.polygonEnd();
hawaiiStream.polygonEnd();
}
};
};
albersUsa.precision = function(_) {
if (!arguments.length) return lower48.precision();
lower48.precision(_);
alaska.precision(_);
hawaii.precision(_);
return albersUsa;
};
albersUsa.scale = function(_) {
if (!arguments.length) return lower48.scale();
lower48.scale(_);
alaska.scale(_ * .35);
hawaii.scale(_);
return albersUsa.translate(lower48.translate());
};
albersUsa.translate = function(_) {
if (!arguments.length) return lower48.translate();
var k = lower48.scale(), x = +_[0], y = +_[1];
lower48Point = lower48.translate(_).clipExtent([ [ x - .455 * k, y - .238 * k ], [ x + .455 * k, y + .238 * k ] ]).stream(pointStream).point;
alaskaPoint = alaska.translate([ x - .307 * k, y + .201 * k ]).clipExtent([ [ x - .425 * k + ε, y + .12 * k + ε ], [ x - .214 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point;
hawaiiPoint = hawaii.translate([ x - .205 * k, y + .212 * k ]).clipExtent([ [ x - .214 * k + ε, y + .166 * k + ε ], [ x - .115 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point;
return albersUsa;
};
return albersUsa.scale(1070);
};
var d3_geo_pathAreaSum, d3_geo_pathAreaPolygon, d3_geo_pathArea = {
point: d3_noop,
lineStart: d3_noop,
lineEnd: d3_noop,
polygonStart: function() {
d3_geo_pathAreaPolygon = 0;
d3_geo_pathArea.lineStart = d3_geo_pathAreaRingStart;
},
polygonEnd: function() {
d3_geo_pathArea.lineStart = d3_geo_pathArea.lineEnd = d3_geo_pathArea.point = d3_noop;
d3_geo_pathAreaSum += abs(d3_geo_pathAreaPolygon / 2);
}
};
function d3_geo_pathAreaRingStart() {
var x00, y00, x0, y0;
d3_geo_pathArea.point = function(x, y) {
d3_geo_pathArea.point = nextPoint;
x00 = x0 = x, y00 = y0 = y;
};
function nextPoint(x, y) {
d3_geo_pathAreaPolygon += y0 * x - x0 * y;
x0 = x, y0 = y;
}
d3_geo_pathArea.lineEnd = function() {
nextPoint(x00, y00);
};
}
var d3_geo_pathBoundsX0, d3_geo_pathBoundsY0, d3_geo_pathBoundsX1, d3_geo_pathBoundsY1;
var d3_geo_pathBounds = {
point: d3_geo_pathBoundsPoint,
lineStart: d3_noop,
lineEnd: d3_noop,
polygonStart: d3_noop,
polygonEnd: d3_noop
};
function d3_geo_pathBoundsPoint(x, y) {
if (x < d3_geo_pathBoundsX0) d3_geo_pathBoundsX0 = x;
if (x > d3_geo_pathBoundsX1) d3_geo_pathBoundsX1 = x;
if (y < d3_geo_pathBoundsY0) d3_geo_pathBoundsY0 = y;
if (y > d3_geo_pathBoundsY1) d3_geo_pathBoundsY1 = y;
}
function d3_geo_pathBuffer() {
var pointCircle = d3_geo_pathBufferCircle(4.5), buffer = [];
var stream = {
point: point,
lineStart: function() {
stream.point = pointLineStart;
},
lineEnd: lineEnd,
polygonStart: function() {
stream.lineEnd = lineEndPolygon;
},
polygonEnd: function() {
stream.lineEnd = lineEnd;
stream.point = point;
},
pointRadius: function(_) {
pointCircle = d3_geo_pathBufferCircle(_);
return stream;
},
result: function() {
if (buffer.length) {
var result = buffer.join("");
buffer = [];
return result;
}
}
};
function point(x, y) {
buffer.push("M", x, ",", y, pointCircle);
}
function pointLineStart(x, y) {
buffer.push("M", x, ",", y);
stream.point = pointLine;
}
function pointLine(x, y) {
buffer.push("L", x, ",", y);
}
function lineEnd() {
stream.point = point;
}
function lineEndPolygon() {
buffer.push("Z");
}
return stream;
}
function d3_geo_pathBufferCircle(radius) {
return "m0," + radius + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius + "a" + radius + "," + radius + " 0 1,1 0," + 2 * radius + "z";
}
var d3_geo_pathCentroid = {
point: d3_geo_pathCentroidPoint,
lineStart: d3_geo_pathCentroidLineStart,
lineEnd: d3_geo_pathCentroidLineEnd,
polygonStart: function() {
d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidRingStart;
},
polygonEnd: function() {
d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;
d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidLineStart;
d3_geo_pathCentroid.lineEnd = d3_geo_pathCentroidLineEnd;
}
};
function d3_geo_pathCentroidPoint(x, y) {
d3_geo_centroidX0 += x;
d3_geo_centroidY0 += y;
++d3_geo_centroidZ0;
}
function d3_geo_pathCentroidLineStart() {
var x0, y0;
d3_geo_pathCentroid.point = function(x, y) {
d3_geo_pathCentroid.point = nextPoint;
d3_geo_pathCentroidPoint(x0 = x, y0 = y);
};
function nextPoint(x, y) {
var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy);
d3_geo_centroidX1 += z * (x0 + x) / 2;
d3_geo_centroidY1 += z * (y0 + y) / 2;
d3_geo_centroidZ1 += z;
d3_geo_pathCentroidPoint(x0 = x, y0 = y);
}
}
function d3_geo_pathCentroidLineEnd() {
d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;
}
function d3_geo_pathCentroidRingStart() {
var x00, y00, x0, y0;
d3_geo_pathCentroid.point = function(x, y) {
d3_geo_pathCentroid.point = nextPoint;
d3_geo_pathCentroidPoint(x00 = x0 = x, y00 = y0 = y);
};
function nextPoint(x, y) {
var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy);
d3_geo_centroidX1 += z * (x0 + x) / 2;
d3_geo_centroidY1 += z * (y0 + y) / 2;
d3_geo_centroidZ1 += z;
z = y0 * x - x0 * y;
d3_geo_centroidX2 += z * (x0 + x);
d3_geo_centroidY2 += z * (y0 + y);
d3_geo_centroidZ2 += z * 3;
d3_geo_pathCentroidPoint(x0 = x, y0 = y);
}
d3_geo_pathCentroid.lineEnd = function() {
nextPoint(x00, y00);
};
}
function d3_geo_pathContext(context) {
var pointRadius = 4.5;
var stream = {
point: point,
lineStart: function() {
stream.point = pointLineStart;
},
lineEnd: lineEnd,
polygonStart: function() {
stream.lineEnd = lineEndPolygon;
},
polygonEnd: function() {
stream.lineEnd = lineEnd;
stream.point = point;
},
pointRadius: function(_) {
pointRadius = _;
return stream;
},
result: d3_noop
};
function point(x, y) {
context.moveTo(x + pointRadius, y);
context.arc(x, y, pointRadius, 0, τ);
}
function pointLineStart(x, y) {
context.moveTo(x, y);
stream.point = pointLine;
}
function pointLine(x, y) {
context.lineTo(x, y);
}
function lineEnd() {
stream.point = point;
}
function lineEndPolygon() {
context.closePath();
}
return stream;
}
function d3_geo_resample(project) {
var δ2 = .5, cosMinDistance = Math.cos(30 * d3_radians), maxDepth = 16;
function resample(stream) {
return (maxDepth ? resampleRecursive : resampleNone)(stream);
}
function resampleNone(stream) {
return d3_geo_transformPoint(stream, function(x, y) {
x = project(x, y);
stream.point(x[0], x[1]);
});
}
function resampleRecursive(stream) {
var λ00, φ00, x00, y00, a00, b00, c00, λ0, x0, y0, a0, b0, c0;
var resample = {
point: point,
lineStart: lineStart,
lineEnd: lineEnd,
polygonStart: function() {
stream.polygonStart();
resample.lineStart = ringStart;
},
polygonEnd: function() {
stream.polygonEnd();
resample.lineStart = lineStart;
}
};
function point(x, y) {
x = project(x, y);
stream.point(x[0], x[1]);
}
function lineStart() {
x0 = NaN;
resample.point = linePoint;
stream.lineStart();
}
function linePoint(λ, φ) {
var c = d3_geo_cartesian([ λ, φ ]), p = project(λ, φ);
resampleLineTo(x0, y0, λ0, a0, b0, c0, x0 = p[0], y0 = p[1], λ0 = λ, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);
stream.point(x0, y0);
}
function lineEnd() {
resample.point = point;
stream.lineEnd();
}
function ringStart() {
lineStart();
resample.point = ringPoint;
resample.lineEnd = ringEnd;
}
function ringPoint(λ, φ) {
linePoint(λ00 = λ, φ00 = φ), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;
resample.point = linePoint;
}
function ringEnd() {
resampleLineTo(x0, y0, λ0, a0, b0, c0, x00, y00, λ00, a00, b00, c00, maxDepth, stream);
resample.lineEnd = lineEnd;
lineEnd();
}
return resample;
}
function resampleLineTo(x0, y0, λ0, a0, b0, c0, x1, y1, λ1, a1, b1, c1, depth, stream) {
var dx = x1 - x0, dy = y1 - y0, d2 = dx * dx + dy * dy;
if (d2 > 4 * δ2 && depth--) {
var a = a0 + a1, b = b0 + b1, c = c0 + c1, m = Math.sqrt(a * a + b * b + c * c), φ2 = Math.asin(c /= m), λ2 = abs(abs(c) - 1) < ε || abs(λ0 - λ1) < ε ? (λ0 + λ1) / 2 : Math.atan2(b, a), p = project(λ2, φ2), x2 = p[0], y2 = p[1], dx2 = x2 - x0, dy2 = y2 - y0, dz = dy * dx2 - dx * dy2;
if (dz * dz / d2 > δ2 || abs((dx * dx2 + dy * dy2) / d2 - .5) > .3 || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) {
resampleLineTo(x0, y0, λ0, a0, b0, c0, x2, y2, λ2, a /= m, b /= m, c, depth, stream);
stream.point(x2, y2);
resampleLineTo(x2, y2, λ2, a, b, c, x1, y1, λ1, a1, b1, c1, depth, stream);
}
}
}
resample.precision = function(_) {
if (!arguments.length) return Math.sqrt(δ2);
maxDepth = (δ2 = _ * _) > 0 && 16;
return resample;
};
return resample;
}
d3.geo.path = function() {
var pointRadius = 4.5, projection, context, projectStream, contextStream, cacheStream;
function path(object) {
if (object) {
if (typeof pointRadius === "function") contextStream.pointRadius(+pointRadius.apply(this, arguments));
if (!cacheStream || !cacheStream.valid) cacheStream = projectStream(contextStream);
d3.geo.stream(object, cacheStream);
}
return contextStream.result();
}
path.area = function(object) {
d3_geo_pathAreaSum = 0;
d3.geo.stream(object, projectStream(d3_geo_pathArea));
return d3_geo_pathAreaSum;
};
path.centroid = function(object) {
d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0;
d3.geo.stream(object, projectStream(d3_geo_pathCentroid));
return d3_geo_centroidZ2 ? [ d3_geo_centroidX2 / d3_geo_centroidZ2, d3_geo_centroidY2 / d3_geo_centroidZ2 ] : d3_geo_centroidZ1 ? [ d3_geo_centroidX1 / d3_geo_centroidZ1, d3_geo_centroidY1 / d3_geo_centroidZ1 ] : d3_geo_centroidZ0 ? [ d3_geo_centroidX0 / d3_geo_centroidZ0, d3_geo_centroidY0 / d3_geo_centroidZ0 ] : [ NaN, NaN ];
};
path.bounds = function(object) {
d3_geo_pathBoundsX1 = d3_geo_pathBoundsY1 = -(d3_geo_pathBoundsX0 = d3_geo_pathBoundsY0 = Infinity);
d3.geo.stream(object, projectStream(d3_geo_pathBounds));
return [ [ d3_geo_pathBoundsX0, d3_geo_pathBoundsY0 ], [ d3_geo_pathBoundsX1, d3_geo_pathBoundsY1 ] ];
};
path.projection = function(_) {
if (!arguments.length) return projection;
projectStream = (projection = _) ? _.stream || d3_geo_pathProjectStream(_) : d3_identity;
return reset();
};
path.context = function(_) {
if (!arguments.length) return context;
contextStream = (context = _) == null ? new d3_geo_pathBuffer() : new d3_geo_pathContext(_);
if (typeof pointRadius !== "function") contextStream.pointRadius(pointRadius);
return reset();
};
path.pointRadius = function(_) {
if (!arguments.length) return pointRadius;
pointRadius = typeof _ === "function" ? _ : (contextStream.pointRadius(+_), +_);
return path;
};
function reset() {
cacheStream = null;
return path;
}
return path.projection(d3.geo.albersUsa()).context(null);
};
function d3_geo_pathProjectStream(project) {
var resample = d3_geo_resample(function(x, y) {
return project([ x * d3_degrees, y * d3_degrees ]);
});
return function(stream) {
return d3_geo_projectionRadians(resample(stream));
};
}
d3.geo.transform = function(methods) {
return {
stream: function(stream) {
var transform = new d3_geo_transform(stream);
for (var k in methods) transform[k] = methods[k];
return transform;
}
};
};
function d3_geo_transform(stream) {
this.stream = stream;
}
d3_geo_transform.prototype = {
point: function(x, y) {
this.stream.point(x, y);
},
sphere: function() {
this.stream.sphere();
},
lineStart: function() {
this.stream.lineStart();
},
lineEnd: function() {
this.stream.lineEnd();
},
polygonStart: function() {
this.stream.polygonStart();
},
polygonEnd: function() {
this.stream.polygonEnd();
}
};
function d3_geo_transformPoint(stream, point) {
return {
point: point,
sphere: function() {
stream.sphere();
},
lineStart: function() {
stream.lineStart();
},
lineEnd: function() {
stream.lineEnd();
},
polygonStart: function() {
stream.polygonStart();
},
polygonEnd: function() {
stream.polygonEnd();
}
};
}
d3.geo.projection = d3_geo_projection;
d3.geo.projectionMutator = d3_geo_projectionMutator;
function d3_geo_projection(project) {
return d3_geo_projectionMutator(function() {
return project;
})();
}
function d3_geo_projectionMutator(projectAt) {
var project, rotate, projectRotate, projectResample = d3_geo_resample(function(x, y) {
x = project(x, y);
return [ x[0] * k + δx, δy - x[1] * k ];
}), k = 150, x = 480, y = 250, λ = 0, φ = 0, δλ = 0, δφ = 0, δγ = 0, δx, δy, preclip = d3_geo_clipAntimeridian, postclip = d3_identity, clipAngle = null, clipExtent = null, stream;
function projection(point) {
point = projectRotate(point[0] * d3_radians, point[1] * d3_radians);
return [ point[0] * k + δx, δy - point[1] * k ];
}
function invert(point) {
point = projectRotate.invert((point[0] - δx) / k, (δy - point[1]) / k);
return point && [ point[0] * d3_degrees, point[1] * d3_degrees ];
}
projection.stream = function(output) {
if (stream) stream.valid = false;
stream = d3_geo_projectionRadians(preclip(rotate, projectResample(postclip(output))));
stream.valid = true;
return stream;
};
projection.clipAngle = function(_) {
if (!arguments.length) return clipAngle;
preclip = _ == null ? (clipAngle = _, d3_geo_clipAntimeridian) : d3_geo_clipCircle((clipAngle = +_) * d3_radians);
return invalidate();
};
projection.clipExtent = function(_) {
if (!arguments.length) return clipExtent;
clipExtent = _;
postclip = _ ? d3_geo_clipExtent(_[0][0], _[0][1], _[1][0], _[1][1]) : d3_identity;
return invalidate();
};
projection.scale = function(_) {
if (!arguments.length) return k;
k = +_;
return reset();
};
projection.translate = function(_) {
if (!arguments.length) return [ x, y ];
x = +_[0];
y = +_[1];
return reset();
};
projection.center = function(_) {
if (!arguments.length) return [ λ * d3_degrees, φ * d3_degrees ];
λ = _[0] % 360 * d3_radians;
φ = _[1] % 360 * d3_radians;
return reset();
};
projection.rotate = function(_) {
if (!arguments.length) return [ δλ * d3_degrees, δφ * d3_degrees, δγ * d3_degrees ];
δλ = _[0] % 360 * d3_radians;
δφ = _[1] % 360 * d3_radians;
δγ = _.length > 2 ? _[2] % 360 * d3_radians : 0;
return reset();
};
d3.rebind(projection, projectResample, "precision");
function reset() {
projectRotate = d3_geo_compose(rotate = d3_geo_rotation(δλ, δφ, δγ), project);
var center = project(λ, φ);
δx = x - center[0] * k;
δy = y + center[1] * k;
return invalidate();
}
function invalidate() {
if (stream) stream.valid = false, stream = null;
return projection;
}
return function() {
project = projectAt.apply(this, arguments);
projection.invert = project.invert && invert;
return reset();
};
}
function d3_geo_projectionRadians(stream) {
return d3_geo_transformPoint(stream, function(x, y) {
stream.point(x * d3_radians, y * d3_radians);
});
}
function d3_geo_equirectangular(λ, φ) {
return [ λ, φ ];
}
(d3.geo.equirectangular = function() {
return d3_geo_projection(d3_geo_equirectangular);
}).raw = d3_geo_equirectangular.invert = d3_geo_equirectangular;
d3.geo.rotation = function(rotate) {
rotate = d3_geo_rotation(rotate[0] % 360 * d3_radians, rotate[1] * d3_radians, rotate.length > 2 ? rotate[2] * d3_radians : 0);
function forward(coordinates) {
coordinates = rotate(coordinates[0] * d3_radians, coordinates[1] * d3_radians);
return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates;
}
forward.invert = function(coordinates) {
coordinates = rotate.invert(coordinates[0] * d3_radians, coordinates[1] * d3_radians);
return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates;
};
return forward;
};
function d3_geo_identityRotation(λ, φ) {
return [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ];
}
d3_geo_identityRotation.invert = d3_geo_equirectangular;
function d3_geo_rotation(δλ, δφ, δγ) {
return δλ ? δφ || δγ ? d3_geo_compose(d3_geo_rotationλ(δλ), d3_geo_rotationφγ(δφ, δγ)) : d3_geo_rotationλ(δλ) : δφ || δγ ? d3_geo_rotationφγ(δφ, δγ) : d3_geo_identityRotation;
}
function d3_geo_forwardRotationλ(δλ) {
return function(λ, φ) {
return λ += δλ, [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ];
};
}
function d3_geo_rotationλ(δλ) {
var rotation = d3_geo_forwardRotationλ(δλ);
rotation.invert = d3_geo_forwardRotationλ(-δλ);
return rotation;
}
function d3_geo_rotationφγ(δφ, δγ) {
var cosδφ = Math.cos(δφ), sinδφ = Math.sin(δφ), cosδγ = Math.cos(δγ), sinδγ = Math.sin(δγ);
function rotation(λ, φ) {
var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδφ + x * sinδφ;
return [ Math.atan2(y * cosδγ - k * sinδγ, x * cosδφ - z * sinδφ), d3_asin(k * cosδγ + y * sinδγ) ];
}
rotation.invert = function(λ, φ) {
var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδγ - y * sinδγ;
return [ Math.atan2(y * cosδγ + z * sinδγ, x * cosδφ + k * sinδφ), d3_asin(k * cosδφ - x * sinδφ) ];
};
return rotation;
}
d3.geo.circle = function() {
var origin = [ 0, 0 ], angle, precision = 6, interpolate;
function circle() {
var center = typeof origin === "function" ? origin.apply(this, arguments) : origin, rotate = d3_geo_rotation(-center[0] * d3_radians, -center[1] * d3_radians, 0).invert, ring = [];
interpolate(null, null, 1, {
point: function(x, y) {
ring.push(x = rotate(x, y));
x[0] *= d3_degrees, x[1] *= d3_degrees;
}
});
return {
type: "Polygon",
coordinates: [ ring ]
};
}
circle.origin = function(x) {
if (!arguments.length) return origin;
origin = x;
return circle;
};
circle.angle = function(x) {
if (!arguments.length) return angle;
interpolate = d3_geo_circleInterpolate((angle = +x) * d3_radians, precision * d3_radians);
return circle;
};
circle.precision = function(_) {
if (!arguments.length) return precision;
interpolate = d3_geo_circleInterpolate(angle * d3_radians, (precision = +_) * d3_radians);
return circle;
};
return circle.angle(90);
};
function d3_geo_circleInterpolate(radius, precision) {
var cr = Math.cos(radius), sr = Math.sin(radius);
return function(from, to, direction, listener) {
var step = direction * precision;
if (from != null) {
from = d3_geo_circleAngle(cr, from);
to = d3_geo_circleAngle(cr, to);
if (direction > 0 ? from < to : from > to) from += direction * τ;
} else {
from = radius + direction * τ;
to = radius - .5 * step;
}
for (var point, t = from; direction > 0 ? t > to : t < to; t -= step) {
listener.point((point = d3_geo_spherical([ cr, -sr * Math.cos(t), -sr * Math.sin(t) ]))[0], point[1]);
}
};
}
function d3_geo_circleAngle(cr, point) {
var a = d3_geo_cartesian(point);
a[0] -= cr;
d3_geo_cartesianNormalize(a);
var angle = d3_acos(-a[1]);
return ((-a[2] < 0 ? -angle : angle) + 2 * Math.PI - ε) % (2 * Math.PI);
}
d3.geo.distance = function(a, b) {
var Δλ = (b[0] - a[0]) * d3_radians, φ0 = a[1] * d3_radians, φ1 = b[1] * d3_radians, sinΔλ = Math.sin(Δλ), cosΔλ = Math.cos(Δλ), sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), sinφ1 = Math.sin(φ1), cosφ1 = Math.cos(φ1), t;
return Math.atan2(Math.sqrt((t = cosφ1 * sinΔλ) * t + (t = cosφ0 * sinφ1 - sinφ0 * cosφ1 * cosΔλ) * t), sinφ0 * sinφ1 + cosφ0 * cosφ1 * cosΔλ);
};
d3.geo.graticule = function() {
var x1, x0, X1, X0, y1, y0, Y1, Y0, dx = 10, dy = dx, DX = 90, DY = 360, x, y, X, Y, precision = 2.5;
function graticule() {
return {
type: "MultiLineString",
coordinates: lines()
};
}
function lines() {
return d3.range(Math.ceil(X0 / DX) * DX, X1, DX).map(X).concat(d3.range(Math.ceil(Y0 / DY) * DY, Y1, DY).map(Y)).concat(d3.range(Math.ceil(x0 / dx) * dx, x1, dx).filter(function(x) {
return abs(x % DX) > ε;
}).map(x)).concat(d3.range(Math.ceil(y0 / dy) * dy, y1, dy).filter(function(y) {
return abs(y % DY) > ε;
}).map(y));
}
graticule.lines = function() {
return lines().map(function(coordinates) {
return {
type: "LineString",
coordinates: coordinates
};
});
};
graticule.outline = function() {
return {
type: "Polygon",
coordinates: [ X(X0).concat(Y(Y1).slice(1), X(X1).reverse().slice(1), Y(Y0).reverse().slice(1)) ]
};
};
graticule.extent = function(_) {
if (!arguments.length) return graticule.minorExtent();
return graticule.majorExtent(_).minorExtent(_);
};
graticule.majorExtent = function(_) {
if (!arguments.length) return [ [ X0, Y0 ], [ X1, Y1 ] ];
X0 = +_[0][0], X1 = +_[1][0];
Y0 = +_[0][1], Y1 = +_[1][1];
if (X0 > X1) _ = X0, X0 = X1, X1 = _;
if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;
return graticule.precision(precision);
};
graticule.minorExtent = function(_) {
if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ];
x0 = +_[0][0], x1 = +_[1][0];
y0 = +_[0][1], y1 = +_[1][1];
if (x0 > x1) _ = x0, x0 = x1, x1 = _;
if (y0 > y1) _ = y0, y0 = y1, y1 = _;
return graticule.precision(precision);
};
graticule.step = function(_) {
if (!arguments.length) return graticule.minorStep();
return graticule.majorStep(_).minorStep(_);
};
graticule.majorStep = function(_) {
if (!arguments.length) return [ DX, DY ];
DX = +_[0], DY = +_[1];
return graticule;
};
graticule.minorStep = function(_) {
if (!arguments.length) return [ dx, dy ];
dx = +_[0], dy = +_[1];
return graticule;
};
graticule.precision = function(_) {
if (!arguments.length) return precision;
precision = +_;
x = d3_geo_graticuleX(y0, y1, 90);
y = d3_geo_graticuleY(x0, x1, precision);
X = d3_geo_graticuleX(Y0, Y1, 90);
Y = d3_geo_graticuleY(X0, X1, precision);
return graticule;
};
return graticule.majorExtent([ [ -180, -90 + ε ], [ 180, 90 - ε ] ]).minorExtent([ [ -180, -80 - ε ], [ 180, 80 + ε ] ]);
};
function d3_geo_graticuleX(y0, y1, dy) {
var y = d3.range(y0, y1 - ε, dy).concat(y1);
return function(x) {
return y.map(function(y) {
return [ x, y ];
});
};
}
function d3_geo_graticuleY(x0, x1, dx) {
var x = d3.range(x0, x1 - ε, dx).concat(x1);
return function(y) {
return x.map(function(x) {
return [ x, y ];
});
};
}
function d3_source(d) {
return d.source;
}
function d3_target(d) {
return d.target;
}
d3.geo.greatArc = function() {
var source = d3_source, source_, target = d3_target, target_;
function greatArc() {
return {
type: "LineString",
coordinates: [ source_ || source.apply(this, arguments), target_ || target.apply(this, arguments) ]
};
}
greatArc.distance = function() {
return d3.geo.distance(source_ || source.apply(this, arguments), target_ || target.apply(this, arguments));
};
greatArc.source = function(_) {
if (!arguments.length) return source;
source = _, source_ = typeof _ === "function" ? null : _;
return greatArc;
};
greatArc.target = function(_) {
if (!arguments.length) return target;
target = _, target_ = typeof _ === "function" ? null : _;
return greatArc;
};
greatArc.precision = function() {
return arguments.length ? greatArc : 0;
};
return greatArc;
};
d3.geo.interpolate = function(source, target) {
return d3_geo_interpolate(source[0] * d3_radians, source[1] * d3_radians, target[0] * d3_radians, target[1] * d3_radians);
};
function d3_geo_interpolate(x0, y0, x1, y1) {
var cy0 = Math.cos(y0), sy0 = Math.sin(y0), cy1 = Math.cos(y1), sy1 = Math.sin(y1), kx0 = cy0 * Math.cos(x0), ky0 = cy0 * Math.sin(x0), kx1 = cy1 * Math.cos(x1), ky1 = cy1 * Math.sin(x1), d = 2 * Math.asin(Math.sqrt(d3_haversin(y1 - y0) + cy0 * cy1 * d3_haversin(x1 - x0))), k = 1 / Math.sin(d);
var interpolate = d ? function(t) {
var B = Math.sin(t *= d) * k, A = Math.sin(d - t) * k, x = A * kx0 + B * kx1, y = A * ky0 + B * ky1, z = A * sy0 + B * sy1;
return [ Math.atan2(y, x) * d3_degrees, Math.atan2(z, Math.sqrt(x * x + y * y)) * d3_degrees ];
} : function() {
return [ x0 * d3_degrees, y0 * d3_degrees ];
};
interpolate.distance = d;
return interpolate;
}
d3.geo.length = function(object) {
d3_geo_lengthSum = 0;
d3.geo.stream(object, d3_geo_length);
return d3_geo_lengthSum;
};
var d3_geo_lengthSum;
var d3_geo_length = {
sphere: d3_noop,
point: d3_noop,
lineStart: d3_geo_lengthLineStart,
lineEnd: d3_noop,
polygonStart: d3_noop,
polygonEnd: d3_noop
};
function d3_geo_lengthLineStart() {
var λ0, sinφ0, cosφ0;
d3_geo_length.point = function(λ, φ) {
λ0 = λ * d3_radians, sinφ0 = Math.sin(φ *= d3_radians), cosφ0 = Math.cos(φ);
d3_geo_length.point = nextPoint;
};
d3_geo_length.lineEnd = function() {
d3_geo_length.point = d3_geo_length.lineEnd = d3_noop;
};
function nextPoint(λ, φ) {
var sinφ = Math.sin(φ *= d3_radians), cosφ = Math.cos(φ), t = abs((λ *= d3_radians) - λ0), cosΔλ = Math.cos(t);
d3_geo_lengthSum += Math.atan2(Math.sqrt((t = cosφ * Math.sin(t)) * t + (t = cosφ0 * sinφ - sinφ0 * cosφ * cosΔλ) * t), sinφ0 * sinφ + cosφ0 * cosφ * cosΔλ);
λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ;
}
}
function d3_geo_azimuthal(scale, angle) {
function azimuthal(λ, φ) {
var cosλ = Math.cos(λ), cosφ = Math.cos(φ), k = scale(cosλ * cosφ);
return [ k * cosφ * Math.sin(λ), k * Math.sin(φ) ];
}
azimuthal.invert = function(x, y) {
var ρ = Math.sqrt(x * x + y * y), c = angle(ρ), sinc = Math.sin(c), cosc = Math.cos(c);
return [ Math.atan2(x * sinc, ρ * cosc), Math.asin(ρ && y * sinc / ρ) ];
};
return azimuthal;
}
var d3_geo_azimuthalEqualArea = d3_geo_azimuthal(function(cosλcosφ) {
return Math.sqrt(2 / (1 + cosλcosφ));
}, function(ρ) {
return 2 * Math.asin(ρ / 2);
});
(d3.geo.azimuthalEqualArea = function() {
return d3_geo_projection(d3_geo_azimuthalEqualArea);
}).raw = d3_geo_azimuthalEqualArea;
var d3_geo_azimuthalEquidistant = d3_geo_azimuthal(function(cosλcosφ) {
var c = Math.acos(cosλcosφ);
return c && c / Math.sin(c);
}, d3_identity);
(d3.geo.azimuthalEquidistant = function() {
return d3_geo_projection(d3_geo_azimuthalEquidistant);
}).raw = d3_geo_azimuthalEquidistant;
function d3_geo_conicConformal(φ0, φ1) {
var cosφ0 = Math.cos(φ0), t = function(φ) {
return Math.tan(π / 4 + φ / 2);
}, n = φ0 === φ1 ? Math.sin(φ0) : Math.log(cosφ0 / Math.cos(φ1)) / Math.log(t(φ1) / t(φ0)), F = cosφ0 * Math.pow(t(φ0), n) / n;
if (!n) return d3_geo_mercator;
function forward(λ, φ) {
if (F > 0) {
if (φ < -halfπ + ε) φ = -halfπ + ε;
} else {
if (φ > halfπ - ε) φ = halfπ - ε;
}
var ρ = F / Math.pow(t(φ), n);
return [ ρ * Math.sin(n * λ), F - ρ * Math.cos(n * λ) ];
}
forward.invert = function(x, y) {
var ρ0_y = F - y, ρ = d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y);
return [ Math.atan2(x, ρ0_y) / n, 2 * Math.atan(Math.pow(F / ρ, 1 / n)) - halfπ ];
};
return forward;
}
(d3.geo.conicConformal = function() {
return d3_geo_conic(d3_geo_conicConformal);
}).raw = d3_geo_conicConformal;
function d3_geo_conicEquidistant(φ0, φ1) {
var cosφ0 = Math.cos(φ0), n = φ0 === φ1 ? Math.sin(φ0) : (cosφ0 - Math.cos(φ1)) / (φ1 - φ0), G = cosφ0 / n + φ0;
if (abs(n) < ε) return d3_geo_equirectangular;
function forward(λ, φ) {
var ρ = G - φ;
return [ ρ * Math.sin(n * λ), G - ρ * Math.cos(n * λ) ];
}
forward.invert = function(x, y) {
var ρ0_y = G - y;
return [ Math.atan2(x, ρ0_y) / n, G - d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y) ];
};
return forward;
}
(d3.geo.conicEquidistant = function() {
return d3_geo_conic(d3_geo_conicEquidistant);
}).raw = d3_geo_conicEquidistant;
var d3_geo_gnomonic = d3_geo_azimuthal(function(cosλcosφ) {
return 1 / cosλcosφ;
}, Math.atan);
(d3.geo.gnomonic = function() {
return d3_geo_projection(d3_geo_gnomonic);
}).raw = d3_geo_gnomonic;
function d3_geo_mercator(λ, φ) {
return [ λ, Math.log(Math.tan(π / 4 + φ / 2)) ];
}
d3_geo_mercator.invert = function(x, y) {
return [ x, 2 * Math.atan(Math.exp(y)) - halfπ ];
};
function d3_geo_mercatorProjection(project) {
var m = d3_geo_projection(project), scale = m.scale, translate = m.translate, clipExtent = m.clipExtent, clipAuto;
m.scale = function() {
var v = scale.apply(m, arguments);
return v === m ? clipAuto ? m.clipExtent(null) : m : v;
};
m.translate = function() {
var v = translate.apply(m, arguments);
return v === m ? clipAuto ? m.clipExtent(null) : m : v;
};
m.clipExtent = function(_) {
var v = clipExtent.apply(m, arguments);
if (v === m) {
if (clipAuto = _ == null) {
var k = π * scale(), t = translate();
clipExtent([ [ t[0] - k, t[1] - k ], [ t[0] + k, t[1] + k ] ]);
}
} else if (clipAuto) {
v = null;
}
return v;
};
return m.clipExtent(null);
}
(d3.geo.mercator = function() {
return d3_geo_mercatorProjection(d3_geo_mercator);
}).raw = d3_geo_mercator;
var d3_geo_orthographic = d3_geo_azimuthal(function() {
return 1;
}, Math.asin);
(d3.geo.orthographic = function() {
return d3_geo_projection(d3_geo_orthographic);
}).raw = d3_geo_orthographic;
var d3_geo_stereographic = d3_geo_azimuthal(function(cosλcosφ) {
return 1 / (1 + cosλcosφ);
}, function(ρ) {
return 2 * Math.atan(ρ);
});
(d3.geo.stereographic = function() {
return d3_geo_projection(d3_geo_stereographic);
}).raw = d3_geo_stereographic;
function d3_geo_transverseMercator(λ, φ) {
return [ Math.log(Math.tan(π / 4 + φ / 2)), -λ ];
}
d3_geo_transverseMercator.invert = function(x, y) {
return [ -y, 2 * Math.atan(Math.exp(x)) - halfπ ];
};
(d3.geo.transverseMercator = function() {
var projection = d3_geo_mercatorProjection(d3_geo_transverseMercator), center = projection.center, rotate = projection.rotate;
projection.center = function(_) {
return _ ? center([ -_[1], _[0] ]) : (_ = center(), [ _[1], -_[0] ]);
};
projection.rotate = function(_) {
return _ ? rotate([ _[0], _[1], _.length > 2 ? _[2] + 90 : 90 ]) : (_ = rotate(),
[ _[0], _[1], _[2] - 90 ]);
};
return rotate([ 0, 0, 90 ]);
}).raw = d3_geo_transverseMercator;
d3.geom = {};
function d3_geom_pointX(d) {
return d[0];
}
function d3_geom_pointY(d) {
return d[1];
}
d3.geom.hull = function(vertices) {
var x = d3_geom_pointX, y = d3_geom_pointY;
if (arguments.length) return hull(vertices);
function hull(data) {
if (data.length < 3) return [];
var fx = d3_functor(x), fy = d3_functor(y), i, n = data.length, points = [], flippedPoints = [];
for (i = 0; i < n; i++) {
points.push([ +fx.call(this, data[i], i), +fy.call(this, data[i], i), i ]);
}
points.sort(d3_geom_hullOrder);
for (i = 0; i < n; i++) flippedPoints.push([ points[i][0], -points[i][1] ]);
var upper = d3_geom_hullUpper(points), lower = d3_geom_hullUpper(flippedPoints);
var skipLeft = lower[0] === upper[0], skipRight = lower[lower.length - 1] === upper[upper.length - 1], polygon = [];
for (i = upper.length - 1; i >= 0; --i) polygon.push(data[points[upper[i]][2]]);
for (i = +skipLeft; i < lower.length - skipRight; ++i) polygon.push(data[points[lower[i]][2]]);
return polygon;
}
hull.x = function(_) {
return arguments.length ? (x = _, hull) : x;
};
hull.y = function(_) {
return arguments.length ? (y = _, hull) : y;
};
return hull;
};
function d3_geom_hullUpper(points) {
var n = points.length, hull = [ 0, 1 ], hs = 2;
for (var i = 2; i < n; i++) {
while (hs > 1 && d3_cross2d(points[hull[hs - 2]], points[hull[hs - 1]], points[i]) <= 0) --hs;
hull[hs++] = i;
}
return hull.slice(0, hs);
}
function d3_geom_hullOrder(a, b) {
return a[0] - b[0] || a[1] - b[1];
}
d3.geom.polygon = function(coordinates) {
d3_subclass(coordinates, d3_geom_polygonPrototype);
return coordinates;
};
var d3_geom_polygonPrototype = d3.geom.polygon.prototype = [];
d3_geom_polygonPrototype.area = function() {
var i = -1, n = this.length, a, b = this[n - 1], area = 0;
while (++i < n) {
a = b;
b = this[i];
area += a[1] * b[0] - a[0] * b[1];
}
return area * .5;
};
d3_geom_polygonPrototype.centroid = function(k) {
var i = -1, n = this.length, x = 0, y = 0, a, b = this[n - 1], c;
if (!arguments.length) k = -1 / (6 * this.area());
while (++i < n) {
a = b;
b = this[i];
c = a[0] * b[1] - b[0] * a[1];
x += (a[0] + b[0]) * c;
y += (a[1] + b[1]) * c;
}
return [ x * k, y * k ];
};
d3_geom_polygonPrototype.clip = function(subject) {
var input, closed = d3_geom_polygonClosed(subject), i = -1, n = this.length - d3_geom_polygonClosed(this), j, m, a = this[n - 1], b, c, d;
while (++i < n) {
input = subject.slice();
subject.length = 0;
b = this[i];
c = input[(m = input.length - closed) - 1];
j = -1;
while (++j < m) {
d = input[j];
if (d3_geom_polygonInside(d, a, b)) {
if (!d3_geom_polygonInside(c, a, b)) {
subject.push(d3_geom_polygonIntersect(c, d, a, b));
}
subject.push(d);
} else if (d3_geom_polygonInside(c, a, b)) {
subject.push(d3_geom_polygonIntersect(c, d, a, b));
}
c = d;
}
if (closed) subject.push(subject[0]);
a = b;
}
return subject;
};
function d3_geom_polygonInside(p, a, b) {
return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]);
}
function d3_geom_polygonIntersect(c, d, a, b) {
var x1 = c[0], x3 = a[0], x21 = d[0] - x1, x43 = b[0] - x3, y1 = c[1], y3 = a[1], y21 = d[1] - y1, y43 = b[1] - y3, ua = (x43 * (y1 - y3) - y43 * (x1 - x3)) / (y43 * x21 - x43 * y21);
return [ x1 + ua * x21, y1 + ua * y21 ];
}
function d3_geom_polygonClosed(coordinates) {
var a = coordinates[0], b = coordinates[coordinates.length - 1];
return !(a[0] - b[0] || a[1] - b[1]);
}
var d3_geom_voronoiEdges, d3_geom_voronoiCells, d3_geom_voronoiBeaches, d3_geom_voronoiBeachPool = [], d3_geom_voronoiFirstCircle, d3_geom_voronoiCircles, d3_geom_voronoiCirclePool = [];
function d3_geom_voronoiBeach() {
d3_geom_voronoiRedBlackNode(this);
this.edge = this.site = this.circle = null;
}
function d3_geom_voronoiCreateBeach(site) {
var beach = d3_geom_voronoiBeachPool.pop() || new d3_geom_voronoiBeach();
beach.site = site;
return beach;
}
function d3_geom_voronoiDetachBeach(beach) {
d3_geom_voronoiDetachCircle(beach);
d3_geom_voronoiBeaches.remove(beach);
d3_geom_voronoiBeachPool.push(beach);
d3_geom_voronoiRedBlackNode(beach);
}
function d3_geom_voronoiRemoveBeach(beach) {
var circle = beach.circle, x = circle.x, y = circle.cy, vertex = {
x: x,
y: y
}, previous = beach.P, next = beach.N, disappearing = [ beach ];
d3_geom_voronoiDetachBeach(beach);
var lArc = previous;
while (lArc.circle && abs(x - lArc.circle.x) < ε && abs(y - lArc.circle.cy) < ε) {
previous = lArc.P;
disappearing.unshift(lArc);
d3_geom_voronoiDetachBeach(lArc);
lArc = previous;
}
disappearing.unshift(lArc);
d3_geom_voronoiDetachCircle(lArc);
var rArc = next;
while (rArc.circle && abs(x - rArc.circle.x) < ε && abs(y - rArc.circle.cy) < ε) {
next = rArc.N;
disappearing.push(rArc);
d3_geom_voronoiDetachBeach(rArc);
rArc = next;
}
disappearing.push(rArc);
d3_geom_voronoiDetachCircle(rArc);
var nArcs = disappearing.length, iArc;
for (iArc = 1; iArc < nArcs; ++iArc) {
rArc = disappearing[iArc];
lArc = disappearing[iArc - 1];
d3_geom_voronoiSetEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex);
}
lArc = disappearing[0];
rArc = disappearing[nArcs - 1];
rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, rArc.site, null, vertex);
d3_geom_voronoiAttachCircle(lArc);
d3_geom_voronoiAttachCircle(rArc);
}
function d3_geom_voronoiAddBeach(site) {
var x = site.x, directrix = site.y, lArc, rArc, dxl, dxr, node = d3_geom_voronoiBeaches._;
while (node) {
dxl = d3_geom_voronoiLeftBreakPoint(node, directrix) - x;
if (dxl > ε) node = node.L; else {
dxr = x - d3_geom_voronoiRightBreakPoint(node, directrix);
if (dxr > ε) {
if (!node.R) {
lArc = node;
break;
}
node = node.R;
} else {
if (dxl > -ε) {
lArc = node.P;
rArc = node;
} else if (dxr > -ε) {
lArc = node;
rArc = node.N;
} else {
lArc = rArc = node;
}
break;
}
}
}
var newArc = d3_geom_voronoiCreateBeach(site);
d3_geom_voronoiBeaches.insert(lArc, newArc);
if (!lArc && !rArc) return;
if (lArc === rArc) {
d3_geom_voronoiDetachCircle(lArc);
rArc = d3_geom_voronoiCreateBeach(lArc.site);
d3_geom_voronoiBeaches.insert(newArc, rArc);
newArc.edge = rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site);
d3_geom_voronoiAttachCircle(lArc);
d3_geom_voronoiAttachCircle(rArc);
return;
}
if (!rArc) {
newArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site);
return;
}
d3_geom_voronoiDetachCircle(lArc);
d3_geom_voronoiDetachCircle(rArc);
var lSite = lArc.site, ax = lSite.x, ay = lSite.y, bx = site.x - ax, by = site.y - ay, rSite = rArc.site, cx = rSite.x - ax, cy = rSite.y - ay, d = 2 * (bx * cy - by * cx), hb = bx * bx + by * by, hc = cx * cx + cy * cy, vertex = {
x: (cy * hb - by * hc) / d + ax,
y: (bx * hc - cx * hb) / d + ay
};
d3_geom_voronoiSetEdgeEnd(rArc.edge, lSite, rSite, vertex);
newArc.edge = d3_geom_voronoiCreateEdge(lSite, site, null, vertex);
rArc.edge = d3_geom_voronoiCreateEdge(site, rSite, null, vertex);
d3_geom_voronoiAttachCircle(lArc);
d3_geom_voronoiAttachCircle(rArc);
}
function d3_geom_voronoiLeftBreakPoint(arc, directrix) {
var site = arc.site, rfocx = site.x, rfocy = site.y, pby2 = rfocy - directrix;
if (!pby2) return rfocx;
var lArc = arc.P;
if (!lArc) return -Infinity;
site = lArc.site;
var lfocx = site.x, lfocy = site.y, plby2 = lfocy - directrix;
if (!plby2) return lfocx;
var hl = lfocx - rfocx, aby2 = 1 / pby2 - 1 / plby2, b = hl / plby2;
if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;
return (rfocx + lfocx) / 2;
}
function d3_geom_voronoiRightBreakPoint(arc, directrix) {
var rArc = arc.N;
if (rArc) return d3_geom_voronoiLeftBreakPoint(rArc, directrix);
var site = arc.site;
return site.y === directrix ? site.x : Infinity;
}
function d3_geom_voronoiCell(site) {
this.site = site;
this.edges = [];
}
d3_geom_voronoiCell.prototype.prepare = function() {
var halfEdges = this.edges, iHalfEdge = halfEdges.length, edge;
while (iHalfEdge--) {
edge = halfEdges[iHalfEdge].edge;
if (!edge.b || !edge.a) halfEdges.splice(iHalfEdge, 1);
}
halfEdges.sort(d3_geom_voronoiHalfEdgeOrder);
return halfEdges.length;
};
function d3_geom_voronoiCloseCells(extent) {
var x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], x2, y2, x3, y3, cells = d3_geom_voronoiCells, iCell = cells.length, cell, iHalfEdge, halfEdges, nHalfEdges, start, end;
while (iCell--) {
cell = cells[iCell];
if (!cell || !cell.prepare()) continue;
halfEdges = cell.edges;
nHalfEdges = halfEdges.length;
iHalfEdge = 0;
while (iHalfEdge < nHalfEdges) {
end = halfEdges[iHalfEdge].end(), x3 = end.x, y3 = end.y;
start = halfEdges[++iHalfEdge % nHalfEdges].start(), x2 = start.x, y2 = start.y;
if (abs(x3 - x2) > ε || abs(y3 - y2) > ε) {
halfEdges.splice(iHalfEdge, 0, new d3_geom_voronoiHalfEdge(d3_geom_voronoiCreateBorderEdge(cell.site, end, abs(x3 - x0) < ε && y1 - y3 > ε ? {
x: x0,
y: abs(x2 - x0) < ε ? y2 : y1
} : abs(y3 - y1) < ε && x1 - x3 > ε ? {
x: abs(y2 - y1) < ε ? x2 : x1,
y: y1
} : abs(x3 - x1) < ε && y3 - y0 > ε ? {
x: x1,
y: abs(x2 - x1) < ε ? y2 : y0
} : abs(y3 - y0) < ε && x3 - x0 > ε ? {
x: abs(y2 - y0) < ε ? x2 : x0,
y: y0
} : null), cell.site, null));
++nHalfEdges;
}
}
}
}
function d3_geom_voronoiHalfEdgeOrder(a, b) {
return b.angle - a.angle;
}
function d3_geom_voronoiCircle() {
d3_geom_voronoiRedBlackNode(this);
this.x = this.y = this.arc = this.site = this.cy = null;
}
function d3_geom_voronoiAttachCircle(arc) {
var lArc = arc.P, rArc = arc.N;
if (!lArc || !rArc) return;
var lSite = lArc.site, cSite = arc.site, rSite = rArc.site;
if (lSite === rSite) return;
var bx = cSite.x, by = cSite.y, ax = lSite.x - bx, ay = lSite.y - by, cx = rSite.x - bx, cy = rSite.y - by;
var d = 2 * (ax * cy - ay * cx);
if (d >= -ε2) return;
var ha = ax * ax + ay * ay, hc = cx * cx + cy * cy, x = (cy * ha - ay * hc) / d, y = (ax * hc - cx * ha) / d, cy = y + by;
var circle = d3_geom_voronoiCirclePool.pop() || new d3_geom_voronoiCircle();
circle.arc = arc;
circle.site = cSite;
circle.x = x + bx;
circle.y = cy + Math.sqrt(x * x + y * y);
circle.cy = cy;
arc.circle = circle;
var before = null, node = d3_geom_voronoiCircles._;
while (node) {
if (circle.y < node.y || circle.y === node.y && circle.x <= node.x) {
if (node.L) node = node.L; else {
before = node.P;
break;
}
} else {
if (node.R) node = node.R; else {
before = node;
break;
}
}
}
d3_geom_voronoiCircles.insert(before, circle);
if (!before) d3_geom_voronoiFirstCircle = circle;
}
function d3_geom_voronoiDetachCircle(arc) {
var circle = arc.circle;
if (circle) {
if (!circle.P) d3_geom_voronoiFirstCircle = circle.N;
d3_geom_voronoiCircles.remove(circle);
d3_geom_voronoiCirclePool.push(circle);
d3_geom_voronoiRedBlackNode(circle);
arc.circle = null;
}
}
function d3_geom_voronoiClipEdges(extent) {
var edges = d3_geom_voronoiEdges, clip = d3_geom_clipLine(extent[0][0], extent[0][1], extent[1][0], extent[1][1]), i = edges.length, e;
while (i--) {
e = edges[i];
if (!d3_geom_voronoiConnectEdge(e, extent) || !clip(e) || abs(e.a.x - e.b.x) < ε && abs(e.a.y - e.b.y) < ε) {
e.a = e.b = null;
edges.splice(i, 1);
}
}
}
function d3_geom_voronoiConnectEdge(edge, extent) {
var vb = edge.b;
if (vb) return true;
var va = edge.a, x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], lSite = edge.l, rSite = edge.r, lx = lSite.x, ly = lSite.y, rx = rSite.x, ry = rSite.y, fx = (lx + rx) / 2, fy = (ly + ry) / 2, fm, fb;
if (ry === ly) {
if (fx < x0 || fx >= x1) return;
if (lx > rx) {
if (!va) va = {
x: fx,
y: y0
}; else if (va.y >= y1) return;
vb = {
x: fx,
y: y1
};
} else {
if (!va) va = {
x: fx,
y: y1
}; else if (va.y < y0) return;
vb = {
x: fx,
y: y0
};
}
} else {
fm = (lx - rx) / (ry - ly);
fb = fy - fm * fx;
if (fm < -1 || fm > 1) {
if (lx > rx) {
if (!va) va = {
x: (y0 - fb) / fm,
y: y0
}; else if (va.y >= y1) return;
vb = {
x: (y1 - fb) / fm,
y: y1
};
} else {
if (!va) va = {
x: (y1 - fb) / fm,
y: y1
}; else if (va.y < y0) return;
vb = {
x: (y0 - fb) / fm,
y: y0
};
}
} else {
if (ly < ry) {
if (!va) va = {
x: x0,
y: fm * x0 + fb
}; else if (va.x >= x1) return;
vb = {
x: x1,
y: fm * x1 + fb
};
} else {
if (!va) va = {
x: x1,
y: fm * x1 + fb
}; else if (va.x < x0) return;
vb = {
x: x0,
y: fm * x0 + fb
};
}
}
}
edge.a = va;
edge.b = vb;
return true;
}
function d3_geom_voronoiEdge(lSite, rSite) {
this.l = lSite;
this.r = rSite;
this.a = this.b = null;
}
function d3_geom_voronoiCreateEdge(lSite, rSite, va, vb) {
var edge = new d3_geom_voronoiEdge(lSite, rSite);
d3_geom_voronoiEdges.push(edge);
if (va) d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, va);
if (vb) d3_geom_voronoiSetEdgeEnd(edge, rSite, lSite, vb);
d3_geom_voronoiCells[lSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, lSite, rSite));
d3_geom_voronoiCells[rSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, rSite, lSite));
return edge;
}
function d3_geom_voronoiCreateBorderEdge(lSite, va, vb) {
var edge = new d3_geom_voronoiEdge(lSite, null);
edge.a = va;
edge.b = vb;
d3_geom_voronoiEdges.push(edge);
return edge;
}
function d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, vertex) {
if (!edge.a && !edge.b) {
edge.a = vertex;
edge.l = lSite;
edge.r = rSite;
} else if (edge.l === rSite) {
edge.b = vertex;
} else {
edge.a = vertex;
}
}
function d3_geom_voronoiHalfEdge(edge, lSite, rSite) {
var va = edge.a, vb = edge.b;
this.edge = edge;
this.site = lSite;
this.angle = rSite ? Math.atan2(rSite.y - lSite.y, rSite.x - lSite.x) : edge.l === lSite ? Math.atan2(vb.x - va.x, va.y - vb.y) : Math.atan2(va.x - vb.x, vb.y - va.y);
}
d3_geom_voronoiHalfEdge.prototype = {
start: function() {
return this.edge.l === this.site ? this.edge.a : this.edge.b;
},
end: function() {
return this.edge.l === this.site ? this.edge.b : this.edge.a;
}
};
function d3_geom_voronoiRedBlackTree() {
this._ = null;
}
function d3_geom_voronoiRedBlackNode(node) {
node.U = node.C = node.L = node.R = node.P = node.N = null;
}
d3_geom_voronoiRedBlackTree.prototype = {
insert: function(after, node) {
var parent, grandpa, uncle;
if (after) {
node.P = after;
node.N = after.N;
if (after.N) after.N.P = node;
after.N = node;
if (after.R) {
after = after.R;
while (after.L) after = after.L;
after.L = node;
} else {
after.R = node;
}
parent = after;
} else if (this._) {
after = d3_geom_voronoiRedBlackFirst(this._);
node.P = null;
node.N = after;
after.P = after.L = node;
parent = after;
} else {
node.P = node.N = null;
this._ = node;
parent = null;
}
node.L = node.R = null;
node.U = parent;
node.C = true;
after = node;
while (parent && parent.C) {
grandpa = parent.U;
if (parent === grandpa.L) {
uncle = grandpa.R;
if (uncle && uncle.C) {
parent.C = uncle.C = false;
grandpa.C = true;
after = grandpa;
} else {
if (after === parent.R) {
d3_geom_voronoiRedBlackRotateLeft(this, parent);
after = parent;
parent = after.U;
}
parent.C = false;
grandpa.C = true;
d3_geom_voronoiRedBlackRotateRight(this, grandpa);
}
} else {
uncle = grandpa.L;
if (uncle && uncle.C) {
parent.C = uncle.C = false;
grandpa.C = true;
after = grandpa;
} else {
if (after === parent.L) {
d3_geom_voronoiRedBlackRotateRight(this, parent);
after = parent;
parent = after.U;
}
parent.C = false;
grandpa.C = true;
d3_geom_voronoiRedBlackRotateLeft(this, grandpa);
}
}
parent = after.U;
}
this._.C = false;
},
remove: function(node) {
if (node.N) node.N.P = node.P;
if (node.P) node.P.N = node.N;
node.N = node.P = null;
var parent = node.U, sibling, left = node.L, right = node.R, next, red;
if (!left) next = right; else if (!right) next = left; else next = d3_geom_voronoiRedBlackFirst(right);
if (parent) {
if (parent.L === node) parent.L = next; else parent.R = next;
} else {
this._ = next;
}
if (left && right) {
red = next.C;
next.C = node.C;
next.L = left;
left.U = next;
if (next !== right) {
parent = next.U;
next.U = node.U;
node = next.R;
parent.L = node;
next.R = right;
right.U = next;
} else {
next.U = parent;
parent = next;
node = next.R;
}
} else {
red = node.C;
node = next;
}
if (node) node.U = parent;
if (red) return;
if (node && node.C) {
node.C = false;
return;
}
do {
if (node === this._) break;
if (node === parent.L) {
sibling = parent.R;
if (sibling.C) {
sibling.C = false;
parent.C = true;
d3_geom_voronoiRedBlackRotateLeft(this, parent);
sibling = parent.R;
}
if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {
if (!sibling.R || !sibling.R.C) {
sibling.L.C = false;
sibling.C = true;
d3_geom_voronoiRedBlackRotateRight(this, sibling);
sibling = parent.R;
}
sibling.C = parent.C;
parent.C = sibling.R.C = false;
d3_geom_voronoiRedBlackRotateLeft(this, parent);
node = this._;
break;
}
} else {
sibling = parent.L;
if (sibling.C) {
sibling.C = false;
parent.C = true;
d3_geom_voronoiRedBlackRotateRight(this, parent);
sibling = parent.L;
}
if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {
if (!sibling.L || !sibling.L.C) {
sibling.R.C = false;
sibling.C = true;
d3_geom_voronoiRedBlackRotateLeft(this, sibling);
sibling = parent.L;
}
sibling.C = parent.C;
parent.C = sibling.L.C = false;
d3_geom_voronoiRedBlackRotateRight(this, parent);
node = this._;
break;
}
}
sibling.C = true;
node = parent;
parent = parent.U;
} while (!node.C);
if (node) node.C = false;
}
};
function d3_geom_voronoiRedBlackRotateLeft(tree, node) {
var p = node, q = node.R, parent = p.U;
if (parent) {
if (parent.L === p) parent.L = q; else parent.R = q;
} else {
tree._ = q;
}
q.U = parent;
p.U = q;
p.R = q.L;
if (p.R) p.R.U = p;
q.L = p;
}
function d3_geom_voronoiRedBlackRotateRight(tree, node) {
var p = node, q = node.L, parent = p.U;
if (parent) {
if (parent.L === p) parent.L = q; else parent.R = q;
} else {
tree._ = q;
}
q.U = parent;
p.U = q;
p.L = q.R;
if (p.L) p.L.U = p;
q.R = p;
}
function d3_geom_voronoiRedBlackFirst(node) {
while (node.L) node = node.L;
return node;
}
function d3_geom_voronoi(sites, bbox) {
var site = sites.sort(d3_geom_voronoiVertexOrder).pop(), x0, y0, circle;
d3_geom_voronoiEdges = [];
d3_geom_voronoiCells = new Array(sites.length);
d3_geom_voronoiBeaches = new d3_geom_voronoiRedBlackTree();
d3_geom_voronoiCircles = new d3_geom_voronoiRedBlackTree();
while (true) {
circle = d3_geom_voronoiFirstCircle;
if (site && (!circle || site.y < circle.y || site.y === circle.y && site.x < circle.x)) {
if (site.x !== x0 || site.y !== y0) {
d3_geom_voronoiCells[site.i] = new d3_geom_voronoiCell(site);
d3_geom_voronoiAddBeach(site);
x0 = site.x, y0 = site.y;
}
site = sites.pop();
} else if (circle) {
d3_geom_voronoiRemoveBeach(circle.arc);
} else {
break;
}
}
if (bbox) d3_geom_voronoiClipEdges(bbox), d3_geom_voronoiCloseCells(bbox);
var diagram = {
cells: d3_geom_voronoiCells,
edges: d3_geom_voronoiEdges
};
d3_geom_voronoiBeaches = d3_geom_voronoiCircles = d3_geom_voronoiEdges = d3_geom_voronoiCells = null;
return diagram;
}
function d3_geom_voronoiVertexOrder(a, b) {
return b.y - a.y || b.x - a.x;
}
d3.geom.voronoi = function(points) {
var x = d3_geom_pointX, y = d3_geom_pointY, fx = x, fy = y, clipExtent = d3_geom_voronoiClipExtent;
if (points) return voronoi(points);
function voronoi(data) {
var polygons = new Array(data.length), x0 = clipExtent[0][0], y0 = clipExtent[0][1], x1 = clipExtent[1][0], y1 = clipExtent[1][1];
d3_geom_voronoi(sites(data), clipExtent).cells.forEach(function(cell, i) {
var edges = cell.edges, site = cell.site, polygon = polygons[i] = edges.length ? edges.map(function(e) {
var s = e.start();
return [ s.x, s.y ];
}) : site.x >= x0 && site.x <= x1 && site.y >= y0 && site.y <= y1 ? [ [ x0, y1 ], [ x1, y1 ], [ x1, y0 ], [ x0, y0 ] ] : [];
polygon.point = data[i];
});
return polygons;
}
function sites(data) {
return data.map(function(d, i) {
return {
x: Math.round(fx(d, i) / ε) * ε,
y: Math.round(fy(d, i) / ε) * ε,
i: i
};
});
}
voronoi.links = function(data) {
return d3_geom_voronoi(sites(data)).edges.filter(function(edge) {
return edge.l && edge.r;
}).map(function(edge) {
return {
source: data[edge.l.i],
target: data[edge.r.i]
};
});
};
voronoi.triangles = function(data) {
var triangles = [];
d3_geom_voronoi(sites(data)).cells.forEach(function(cell, i) {
var site = cell.site, edges = cell.edges.sort(d3_geom_voronoiHalfEdgeOrder), j = -1, m = edges.length, e0, s0, e1 = edges[m - 1].edge, s1 = e1.l === site ? e1.r : e1.l;
while (++j < m) {
e0 = e1;
s0 = s1;
e1 = edges[j].edge;
s1 = e1.l === site ? e1.r : e1.l;
if (i < s0.i && i < s1.i && d3_geom_voronoiTriangleArea(site, s0, s1) < 0) {
triangles.push([ data[i], data[s0.i], data[s1.i] ]);
}
}
});
return triangles;
};
voronoi.x = function(_) {
return arguments.length ? (fx = d3_functor(x = _), voronoi) : x;
};
voronoi.y = function(_) {
return arguments.length ? (fy = d3_functor(y = _), voronoi) : y;
};
voronoi.clipExtent = function(_) {
if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent;
clipExtent = _ == null ? d3_geom_voronoiClipExtent : _;
return voronoi;
};
voronoi.size = function(_) {
if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent && clipExtent[1];
return voronoi.clipExtent(_ && [ [ 0, 0 ], _ ]);
};
return voronoi;
};
var d3_geom_voronoiClipExtent = [ [ -1e6, -1e6 ], [ 1e6, 1e6 ] ];
function d3_geom_voronoiTriangleArea(a, b, c) {
return (a.x - c.x) * (b.y - a.y) - (a.x - b.x) * (c.y - a.y);
}
d3.geom.delaunay = function(vertices) {
return d3.geom.voronoi().triangles(vertices);
};
d3.geom.quadtree = function(points, x1, y1, x2, y2) {
var x = d3_geom_pointX, y = d3_geom_pointY, compat;
if (compat = arguments.length) {
x = d3_geom_quadtreeCompatX;
y = d3_geom_quadtreeCompatY;
if (compat === 3) {
y2 = y1;
x2 = x1;
y1 = x1 = 0;
}
return quadtree(points);
}
function quadtree(data) {
var d, fx = d3_functor(x), fy = d3_functor(y), xs, ys, i, n, x1_, y1_, x2_, y2_;
if (x1 != null) {
x1_ = x1, y1_ = y1, x2_ = x2, y2_ = y2;
} else {
x2_ = y2_ = -(x1_ = y1_ = Infinity);
xs = [], ys = [];
n = data.length;
if (compat) for (i = 0; i < n; ++i) {
d = data[i];
if (d.x < x1_) x1_ = d.x;
if (d.y < y1_) y1_ = d.y;
if (d.x > x2_) x2_ = d.x;
if (d.y > y2_) y2_ = d.y;
xs.push(d.x);
ys.push(d.y);
} else for (i = 0; i < n; ++i) {
var x_ = +fx(d = data[i], i), y_ = +fy(d, i);
if (x_ < x1_) x1_ = x_;
if (y_ < y1_) y1_ = y_;
if (x_ > x2_) x2_ = x_;
if (y_ > y2_) y2_ = y_;
xs.push(x_);
ys.push(y_);
}
}
var dx = x2_ - x1_, dy = y2_ - y1_;
if (dx > dy) y2_ = y1_ + dx; else x2_ = x1_ + dy;
function insert(n, d, x, y, x1, y1, x2, y2) {
if (isNaN(x) || isNaN(y)) return;
if (n.leaf) {
var nx = n.x, ny = n.y;
if (nx != null) {
if (abs(nx - x) + abs(ny - y) < .01) {
insertChild(n, d, x, y, x1, y1, x2, y2);
} else {
var nPoint = n.point;
n.x = n.y = n.point = null;
insertChild(n, nPoint, nx, ny, x1, y1, x2, y2);
insertChild(n, d, x, y, x1, y1, x2, y2);
}
} else {
n.x = x, n.y = y, n.point = d;
}
} else {
insertChild(n, d, x, y, x1, y1, x2, y2);
}
}
function insertChild(n, d, x, y, x1, y1, x2, y2) {
var xm = (x1 + x2) * .5, ym = (y1 + y2) * .5, right = x >= xm, below = y >= ym, i = below << 1 | right;
n.leaf = false;
n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode());
if (right) x1 = xm; else x2 = xm;
if (below) y1 = ym; else y2 = ym;
insert(n, d, x, y, x1, y1, x2, y2);
}
var root = d3_geom_quadtreeNode();
root.add = function(d) {
insert(root, d, +fx(d, ++i), +fy(d, i), x1_, y1_, x2_, y2_);
};
root.visit = function(f) {
d3_geom_quadtreeVisit(f, root, x1_, y1_, x2_, y2_);
};
root.find = function(point) {
return d3_geom_quadtreeFind(root, point[0], point[1], x1_, y1_, x2_, y2_);
};
i = -1;
if (x1 == null) {
while (++i < n) {
insert(root, data[i], xs[i], ys[i], x1_, y1_, x2_, y2_);
}
--i;
} else data.forEach(root.add);
xs = ys = data = d = null;
return root;
}
quadtree.x = function(_) {
return arguments.length ? (x = _, quadtree) : x;
};
quadtree.y = function(_) {
return arguments.length ? (y = _, quadtree) : y;
};
quadtree.extent = function(_) {
if (!arguments.length) return x1 == null ? null : [ [ x1, y1 ], [ x2, y2 ] ];
if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = +_[0][0], y1 = +_[0][1], x2 = +_[1][0],
y2 = +_[1][1];
return quadtree;
};
quadtree.size = function(_) {
if (!arguments.length) return x1 == null ? null : [ x2 - x1, y2 - y1 ];
if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = y1 = 0, x2 = +_[0], y2 = +_[1];
return quadtree;
};
return quadtree;
};
function d3_geom_quadtreeCompatX(d) {
return d.x;
}
function d3_geom_quadtreeCompatY(d) {
return d.y;
}
function d3_geom_quadtreeNode() {
return {
leaf: true,
nodes: [],
point: null,
x: null,
y: null
};
}
function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) {
if (!f(node, x1, y1, x2, y2)) {
var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, children = node.nodes;
if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy);
if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy);
if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2);
if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2);
}
}
function d3_geom_quadtreeFind(root, x, y, x0, y0, x3, y3) {
var minDistance2 = Infinity, closestPoint;
(function find(node, x1, y1, x2, y2) {
if (x1 > x3 || y1 > y3 || x2 < x0 || y2 < y0) return;
if (point = node.point) {
var point, dx = x - node.x, dy = y - node.y, distance2 = dx * dx + dy * dy;
if (distance2 < minDistance2) {
var distance = Math.sqrt(minDistance2 = distance2);
x0 = x - distance, y0 = y - distance;
x3 = x + distance, y3 = y + distance;
closestPoint = point;
}
}
var children = node.nodes, xm = (x1 + x2) * .5, ym = (y1 + y2) * .5, right = x >= xm, below = y >= ym;
for (var i = below << 1 | right, j = i + 4; i < j; ++i) {
if (node = children[i & 3]) switch (i & 3) {
case 0:
find(node, x1, y1, xm, ym);
break;
case 1:
find(node, xm, y1, x2, ym);
break;
case 2:
find(node, x1, ym, xm, y2);
break;
case 3:
find(node, xm, ym, x2, y2);
break;
}
}
})(root, x0, y0, x3, y3);
return closestPoint;
}
d3.interpolateRgb = d3_interpolateRgb;
function d3_interpolateRgb(a, b) {
a = d3.rgb(a);
b = d3.rgb(b);
var ar = a.r, ag = a.g, ab = a.b, br = b.r - ar, bg = b.g - ag, bb = b.b - ab;
return function(t) {
return "#" + d3_rgb_hex(Math.round(ar + br * t)) + d3_rgb_hex(Math.round(ag + bg * t)) + d3_rgb_hex(Math.round(ab + bb * t));
};
}
d3.interpolateObject = d3_interpolateObject;
function d3_interpolateObject(a, b) {
var i = {}, c = {}, k;
for (k in a) {
if (k in b) {
i[k] = d3_interpolate(a[k], b[k]);
} else {
c[k] = a[k];
}
}
for (k in b) {
if (!(k in a)) {
c[k] = b[k];
}
}
return function(t) {
for (k in i) c[k] = i[k](t);
return c;
};
}
d3.interpolateNumber = d3_interpolateNumber;
function d3_interpolateNumber(a, b) {
a = +a, b = +b;
return function(t) {
return a * (1 - t) + b * t;
};
}
d3.interpolateString = d3_interpolateString;
function d3_interpolateString(a, b) {
var bi = d3_interpolate_numberA.lastIndex = d3_interpolate_numberB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = [];
a = a + "", b = b + "";
while ((am = d3_interpolate_numberA.exec(a)) && (bm = d3_interpolate_numberB.exec(b))) {
if ((bs = bm.index) > bi) {
bs = b.slice(bi, bs);
if (s[i]) s[i] += bs; else s[++i] = bs;
}
if ((am = am[0]) === (bm = bm[0])) {
if (s[i]) s[i] += bm; else s[++i] = bm;
} else {
s[++i] = null;
q.push({
i: i,
x: d3_interpolateNumber(am, bm)
});
}
bi = d3_interpolate_numberB.lastIndex;
}
if (bi < b.length) {
bs = b.slice(bi);
if (s[i]) s[i] += bs; else s[++i] = bs;
}
return s.length < 2 ? q[0] ? (b = q[0].x, function(t) {
return b(t) + "";
}) : function() {
return b;
} : (b = q.length, function(t) {
for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);
return s.join("");
});
}
var d3_interpolate_numberA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, d3_interpolate_numberB = new RegExp(d3_interpolate_numberA.source, "g");
d3.interpolate = d3_interpolate;
function d3_interpolate(a, b) {
var i = d3.interpolators.length, f;
while (--i >= 0 && !(f = d3.interpolators[i](a, b))) ;
return f;
}
d3.interpolators = [ function(a, b) {
var t = typeof b;
return (t === "string" ? d3_rgb_names.has(b) || /^(#|rgb\(|hsl\()/.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof d3_color ? d3_interpolateRgb : Array.isArray(b) ? d3_interpolateArray : t === "object" && isNaN(b) ? d3_interpolateObject : d3_interpolateNumber)(a, b);
} ];
d3.interpolateArray = d3_interpolateArray;
function d3_interpolateArray(a, b) {
var x = [], c = [], na = a.length, nb = b.length, n0 = Math.min(a.length, b.length), i;
for (i = 0; i < n0; ++i) x.push(d3_interpolate(a[i], b[i]));
for (;i < na; ++i) c[i] = a[i];
for (;i < nb; ++i) c[i] = b[i];
return function(t) {
for (i = 0; i < n0; ++i) c[i] = x[i](t);
return c;
};
}
var d3_ease_default = function() {
return d3_identity;
};
var d3_ease = d3.map({
linear: d3_ease_default,
poly: d3_ease_poly,
quad: function() {
return d3_ease_quad;
},
cubic: function() {
return d3_ease_cubic;
},
sin: function() {
return d3_ease_sin;
},
exp: function() {
return d3_ease_exp;
},
circle: function() {
return d3_ease_circle;
},
elastic: d3_ease_elastic,
back: d3_ease_back,
bounce: function() {
return d3_ease_bounce;
}
});
var d3_ease_mode = d3.map({
"in": d3_identity,
out: d3_ease_reverse,
"in-out": d3_ease_reflect,
"out-in": function(f) {
return d3_ease_reflect(d3_ease_reverse(f));
}
});
d3.ease = function(name) {
var i = name.indexOf("-"), t = i >= 0 ? name.slice(0, i) : name, m = i >= 0 ? name.slice(i + 1) : "in";
t = d3_ease.get(t) || d3_ease_default;
m = d3_ease_mode.get(m) || d3_identity;
return d3_ease_clamp(m(t.apply(null, d3_arraySlice.call(arguments, 1))));
};
function d3_ease_clamp(f) {
return function(t) {
return t <= 0 ? 0 : t >= 1 ? 1 : f(t);
};
}
function d3_ease_reverse(f) {
return function(t) {
return 1 - f(1 - t);
};
}
function d3_ease_reflect(f) {
return function(t) {
return .5 * (t < .5 ? f(2 * t) : 2 - f(2 - 2 * t));
};
}
function d3_ease_quad(t) {
return t * t;
}
function d3_ease_cubic(t) {
return t * t * t;
}
function d3_ease_cubicInOut(t) {
if (t <= 0) return 0;
if (t >= 1) return 1;
var t2 = t * t, t3 = t2 * t;
return 4 * (t < .5 ? t3 : 3 * (t - t2) + t3 - .75);
}
function d3_ease_poly(e) {
return function(t) {
return Math.pow(t, e);
};
}
function d3_ease_sin(t) {
return 1 - Math.cos(t * halfπ);
}
function d3_ease_exp(t) {
return Math.pow(2, 10 * (t - 1));
}
function d3_ease_circle(t) {
return 1 - Math.sqrt(1 - t * t);
}
function d3_ease_elastic(a, p) {
var s;
if (arguments.length < 2) p = .45;
if (arguments.length) s = p / τ * Math.asin(1 / a); else a = 1, s = p / 4;
return function(t) {
return 1 + a * Math.pow(2, -10 * t) * Math.sin((t - s) * τ / p);
};
}
function d3_ease_back(s) {
if (!s) s = 1.70158;
return function(t) {
return t * t * ((s + 1) * t - s);
};
}
function d3_ease_bounce(t) {
return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375;
}
d3.interpolateHcl = d3_interpolateHcl;
function d3_interpolateHcl(a, b) {
a = d3.hcl(a);
b = d3.hcl(b);
var ah = a.h, ac = a.c, al = a.l, bh = b.h - ah, bc = b.c - ac, bl = b.l - al;
if (isNaN(bc)) bc = 0, ac = isNaN(ac) ? b.c : ac;
if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360;
return function(t) {
return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + "";
};
}
d3.interpolateHsl = d3_interpolateHsl;
function d3_interpolateHsl(a, b) {
a = d3.hsl(a);
b = d3.hsl(b);
var ah = a.h, as = a.s, al = a.l, bh = b.h - ah, bs = b.s - as, bl = b.l - al;
if (isNaN(bs)) bs = 0, as = isNaN(as) ? b.s : as;
if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360;
return function(t) {
return d3_hsl_rgb(ah + bh * t, as + bs * t, al + bl * t) + "";
};
}
d3.interpolateLab = d3_interpolateLab;
function d3_interpolateLab(a, b) {
a = d3.lab(a);
b = d3.lab(b);
var al = a.l, aa = a.a, ab = a.b, bl = b.l - al, ba = b.a - aa, bb = b.b - ab;
return function(t) {
return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + "";
};
}
d3.interpolateRound = d3_interpolateRound;
function d3_interpolateRound(a, b) {
b -= a;
return function(t) {
return Math.round(a + b * t);
};
}
d3.transform = function(string) {
var g = d3_document.createElementNS(d3.ns.prefix.svg, "g");
return (d3.transform = function(string) {
if (string != null) {
g.setAttribute("transform", string);
var t = g.transform.baseVal.consolidate();
}
return new d3_transform(t ? t.matrix : d3_transformIdentity);
})(string);
};
function d3_transform(m) {
var r0 = [ m.a, m.b ], r1 = [ m.c, m.d ], kx = d3_transformNormalize(r0), kz = d3_transformDot(r0, r1), ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0;
if (r0[0] * r1[1] < r1[0] * r0[1]) {
r0[0] *= -1;
r0[1] *= -1;
kx *= -1;
kz *= -1;
}
this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_degrees;
this.translate = [ m.e, m.f ];
this.scale = [ kx, ky ];
this.skew = ky ? Math.atan2(kz, ky) * d3_degrees : 0;
}
d3_transform.prototype.toString = function() {
return "translate(" + this.translate + ")rotate(" + this.rotate + ")skewX(" + this.skew + ")scale(" + this.scale + ")";
};
function d3_transformDot(a, b) {
return a[0] * b[0] + a[1] * b[1];
}
function d3_transformNormalize(a) {
var k = Math.sqrt(d3_transformDot(a, a));
if (k) {
a[0] /= k;
a[1] /= k;
}
return k;
}
function d3_transformCombine(a, b, k) {
a[0] += k * b[0];
a[1] += k * b[1];
return a;
}
var d3_transformIdentity = {
a: 1,
b: 0,
c: 0,
d: 1,
e: 0,
f: 0
};
d3.interpolateTransform = d3_interpolateTransform;
function d3_interpolateTransform(a, b) {
var s = [], q = [], n, A = d3.transform(a), B = d3.transform(b), ta = A.translate, tb = B.translate, ra = A.rotate, rb = B.rotate, wa = A.skew, wb = B.skew, ka = A.scale, kb = B.scale;
if (ta[0] != tb[0] || ta[1] != tb[1]) {
s.push("translate(", null, ",", null, ")");
q.push({
i: 1,
x: d3_interpolateNumber(ta[0], tb[0])
}, {
i: 3,
x: d3_interpolateNumber(ta[1], tb[1])
});
} else if (tb[0] || tb[1]) {
s.push("translate(" + tb + ")");
} else {
s.push("");
}
if (ra != rb) {
if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360;
q.push({
i: s.push(s.pop() + "rotate(", null, ")") - 2,
x: d3_interpolateNumber(ra, rb)
});
} else if (rb) {
s.push(s.pop() + "rotate(" + rb + ")");
}
if (wa != wb) {
q.push({
i: s.push(s.pop() + "skewX(", null, ")") - 2,
x: d3_interpolateNumber(wa, wb)
});
} else if (wb) {
s.push(s.pop() + "skewX(" + wb + ")");
}
if (ka[0] != kb[0] || ka[1] != kb[1]) {
n = s.push(s.pop() + "scale(", null, ",", null, ")");
q.push({
i: n - 4,
x: d3_interpolateNumber(ka[0], kb[0])
}, {
i: n - 2,
x: d3_interpolateNumber(ka[1], kb[1])
});
} else if (kb[0] != 1 || kb[1] != 1) {
s.push(s.pop() + "scale(" + kb + ")");
}
n = q.length;
return function(t) {
var i = -1, o;
while (++i < n) s[(o = q[i]).i] = o.x(t);
return s.join("");
};
}
function d3_uninterpolateNumber(a, b) {
b = (b -= a = +a) || 1 / b;
return function(x) {
return (x - a) / b;
};
}
function d3_uninterpolateClamp(a, b) {
b = (b -= a = +a) || 1 / b;
return function(x) {
return Math.max(0, Math.min(1, (x - a) / b));
};
}
d3.layout = {};
d3.layout.bundle = function() {
return function(links) {
var paths = [], i = -1, n = links.length;
while (++i < n) paths.push(d3_layout_bundlePath(links[i]));
return paths;
};
};
function d3_layout_bundlePath(link) {
var start = link.source, end = link.target, lca = d3_layout_bundleLeastCommonAncestor(start, end), points = [ start ];
while (start !== lca) {
start = start.parent;
points.push(start);
}
var k = points.length;
while (end !== lca) {
points.splice(k, 0, end);
end = end.parent;
}
return points;
}
function d3_layout_bundleAncestors(node) {
var ancestors = [], parent = node.parent;
while (parent != null) {
ancestors.push(node);
node = parent;
parent = parent.parent;
}
ancestors.push(node);
return ancestors;
}
function d3_layout_bundleLeastCommonAncestor(a, b) {
if (a === b) return a;
var aNodes = d3_layout_bundleAncestors(a), bNodes = d3_layout_bundleAncestors(b), aNode = aNodes.pop(), bNode = bNodes.pop(), sharedNode = null;
while (aNode === bNode) {
sharedNode = aNode;
aNode = aNodes.pop();
bNode = bNodes.pop();
}
return sharedNode;
}
d3.layout.chord = function() {
var chord = {}, chords, groups, matrix, n, padding = 0, sortGroups, sortSubgroups, sortChords;
function relayout() {
var subgroups = {}, groupSums = [], groupIndex = d3.range(n), subgroupIndex = [], k, x, x0, i, j;
chords = [];
groups = [];
k = 0, i = -1;
while (++i < n) {
x = 0, j = -1;
while (++j < n) {
x += matrix[i][j];
}
groupSums.push(x);
subgroupIndex.push(d3.range(n));
k += x;
}
if (sortGroups) {
groupIndex.sort(function(a, b) {
return sortGroups(groupSums[a], groupSums[b]);
});
}
if (sortSubgroups) {
subgroupIndex.forEach(function(d, i) {
d.sort(function(a, b) {
return sortSubgroups(matrix[i][a], matrix[i][b]);
});
});
}
k = (τ - padding * n) / k;
x = 0, i = -1;
while (++i < n) {
x0 = x, j = -1;
while (++j < n) {
var di = groupIndex[i], dj = subgroupIndex[di][j], v = matrix[di][dj], a0 = x, a1 = x += v * k;
subgroups[di + "-" + dj] = {
index: di,
subindex: dj,
startAngle: a0,
endAngle: a1,
value: v
};
}
groups[di] = {
index: di,
startAngle: x0,
endAngle: x,
value: (x - x0) / k
};
x += padding;
}
i = -1;
while (++i < n) {
j = i - 1;
while (++j < n) {
var source = subgroups[i + "-" + j], target = subgroups[j + "-" + i];
if (source.value || target.value) {
chords.push(source.value < target.value ? {
source: target,
target: source
} : {
source: source,
target: target
});
}
}
}
if (sortChords) resort();
}
function resort() {
chords.sort(function(a, b) {
return sortChords((a.source.value + a.target.value) / 2, (b.source.value + b.target.value) / 2);
});
}
chord.matrix = function(x) {
if (!arguments.length) return matrix;
n = (matrix = x) && matrix.length;
chords = groups = null;
return chord;
};
chord.padding = function(x) {
if (!arguments.length) return padding;
padding = x;
chords = groups = null;
return chord;
};
chord.sortGroups = function(x) {
if (!arguments.length) return sortGroups;
sortGroups = x;
chords = groups = null;
return chord;
};
chord.sortSubgroups = function(x) {
if (!arguments.length) return sortSubgroups;
sortSubgroups = x;
chords = null;
return chord;
};
chord.sortChords = function(x) {
if (!arguments.length) return sortChords;
sortChords = x;
if (chords) resort();
return chord;
};
chord.chords = function() {
if (!chords) relayout();
return chords;
};
chord.groups = function() {
if (!groups) relayout();
return groups;
};
return chord;
};
d3.layout.force = function() {
var force = {}, event = d3.dispatch("start", "tick", "end"), size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, chargeDistance2 = d3_layout_forceChargeDistance2, gravity = .1, theta2 = .64, nodes = [], links = [], distances, strengths, charges;
function repulse(node) {
return function(quad, x1, _, x2) {
if (quad.point !== node) {
var dx = quad.cx - node.x, dy = quad.cy - node.y, dw = x2 - x1, dn = dx * dx + dy * dy;
if (dw * dw / theta2 < dn) {
if (dn < chargeDistance2) {
var k = quad.charge / dn;
node.px -= dx * k;
node.py -= dy * k;
}
return true;
}
if (quad.point && dn && dn < chargeDistance2) {
var k = quad.pointCharge / dn;
node.px -= dx * k;
node.py -= dy * k;
}
}
return !quad.charge;
};
}
force.tick = function() {
if ((alpha *= .99) < .005) {
event.end({
type: "end",
alpha: alpha = 0
});
return true;
}
var n = nodes.length, m = links.length, q, i, o, s, t, l, k, x, y;
for (i = 0; i < m; ++i) {
o = links[i];
s = o.source;
t = o.target;
x = t.x - s.x;
y = t.y - s.y;
if (l = x * x + y * y) {
l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l;
x *= l;
y *= l;
t.x -= x * (k = s.weight / (t.weight + s.weight));
t.y -= y * k;
s.x += x * (k = 1 - k);
s.y += y * k;
}
}
if (k = alpha * gravity) {
x = size[0] / 2;
y = size[1] / 2;
i = -1;
if (k) while (++i < n) {
o = nodes[i];
o.x += (x - o.x) * k;
o.y += (y - o.y) * k;
}
}
if (charge) {
d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges);
i = -1;
while (++i < n) {
if (!(o = nodes[i]).fixed) {
q.visit(repulse(o));
}
}
}
i = -1;
while (++i < n) {
o = nodes[i];
if (o.fixed) {
o.x = o.px;
o.y = o.py;
} else {
o.x -= (o.px - (o.px = o.x)) * friction;
o.y -= (o.py - (o.py = o.y)) * friction;
}
}
event.tick({
type: "tick",
alpha: alpha
});
};
force.nodes = function(x) {
if (!arguments.length) return nodes;
nodes = x;
return force;
};
force.links = function(x) {
if (!arguments.length) return links;
links = x;
return force;
};
force.size = function(x) {
if (!arguments.length) return size;
size = x;
return force;
};
force.linkDistance = function(x) {
if (!arguments.length) return linkDistance;
linkDistance = typeof x === "function" ? x : +x;
return force;
};
force.distance = force.linkDistance;
force.linkStrength = function(x) {
if (!arguments.length) return linkStrength;
linkStrength = typeof x === "function" ? x : +x;
return force;
};
force.friction = function(x) {
if (!arguments.length) return friction;
friction = +x;
return force;
};
force.charge = function(x) {
if (!arguments.length) return charge;
charge = typeof x === "function" ? x : +x;
return force;
};
force.chargeDistance = function(x) {
if (!arguments.length) return Math.sqrt(chargeDistance2);
chargeDistance2 = x * x;
return force;
};
force.gravity = function(x) {
if (!arguments.length) return gravity;
gravity = +x;
return force;
};
force.theta = function(x) {
if (!arguments.length) return Math.sqrt(theta2);
theta2 = x * x;
return force;
};
force.alpha = function(x) {
if (!arguments.length) return alpha;
x = +x;
if (alpha) {
if (x > 0) alpha = x; else alpha = 0;
} else if (x > 0) {
event.start({
type: "start",
alpha: alpha = x
});
d3.timer(force.tick);
}
return force;
};
force.start = function() {
var i, n = nodes.length, m = links.length, w = size[0], h = size[1], neighbors, o;
for (i = 0; i < n; ++i) {
(o = nodes[i]).index = i;
o.weight = 0;
}
for (i = 0; i < m; ++i) {
o = links[i];
if (typeof o.source == "number") o.source = nodes[o.source];
if (typeof o.target == "number") o.target = nodes[o.target];
++o.source.weight;
++o.target.weight;
}
for (i = 0; i < n; ++i) {
o = nodes[i];
if (isNaN(o.x)) o.x = position("x", w);
if (isNaN(o.y)) o.y = position("y", h);
if (isNaN(o.px)) o.px = o.x;
if (isNaN(o.py)) o.py = o.y;
}
distances = [];
if (typeof linkDistance === "function") for (i = 0; i < m; ++i) distances[i] = +linkDistance.call(this, links[i], i); else for (i = 0; i < m; ++i) distances[i] = linkDistance;
strengths = [];
if (typeof linkStrength === "function") for (i = 0; i < m; ++i) strengths[i] = +linkStrength.call(this, links[i], i); else for (i = 0; i < m; ++i) strengths[i] = linkStrength;
charges = [];
if (typeof charge === "function") for (i = 0; i < n; ++i) charges[i] = +charge.call(this, nodes[i], i); else for (i = 0; i < n; ++i) charges[i] = charge;
function position(dimension, size) {
if (!neighbors) {
neighbors = new Array(n);
for (j = 0; j < n; ++j) {
neighbors[j] = [];
}
for (j = 0; j < m; ++j) {
var o = links[j];
neighbors[o.source.index].push(o.target);
neighbors[o.target.index].push(o.source);
}
}
var candidates = neighbors[i], j = -1, l = candidates.length, x;
while (++j < l) if (!isNaN(x = candidates[j][dimension])) return x;
return Math.random() * size;
}
return force.resume();
};
force.resume = function() {
return force.alpha(.1);
};
force.stop = function() {
return force.alpha(0);
};
force.drag = function() {
if (!drag) drag = d3.behavior.drag().origin(d3_identity).on("dragstart.force", d3_layout_forceDragstart).on("drag.force", dragmove).on("dragend.force", d3_layout_forceDragend);
if (!arguments.length) return drag;
this.on("mouseover.force", d3_layout_forceMouseover).on("mouseout.force", d3_layout_forceMouseout).call(drag);
};
function dragmove(d) {
d.px = d3.event.x, d.py = d3.event.y;
force.resume();
}
return d3.rebind(force, event, "on");
};
function d3_layout_forceDragstart(d) {
d.fixed |= 2;
}
function d3_layout_forceDragend(d) {
d.fixed &= ~6;
}
function d3_layout_forceMouseover(d) {
d.fixed |= 4;
d.px = d.x, d.py = d.y;
}
function d3_layout_forceMouseout(d) {
d.fixed &= ~4;
}
function d3_layout_forceAccumulate(quad, alpha, charges) {
var cx = 0, cy = 0;
quad.charge = 0;
if (!quad.leaf) {
var nodes = quad.nodes, n = nodes.length, i = -1, c;
while (++i < n) {
c = nodes[i];
if (c == null) continue;
d3_layout_forceAccumulate(c, alpha, charges);
quad.charge += c.charge;
cx += c.charge * c.cx;
cy += c.charge * c.cy;
}
}
if (quad.point) {
if (!quad.leaf) {
quad.point.x += Math.random() - .5;
quad.point.y += Math.random() - .5;
}
var k = alpha * charges[quad.point.index];
quad.charge += quad.pointCharge = k;
cx += k * quad.point.x;
cy += k * quad.point.y;
}
quad.cx = cx / quad.charge;
quad.cy = cy / quad.charge;
}
var d3_layout_forceLinkDistance = 20, d3_layout_forceLinkStrength = 1, d3_layout_forceChargeDistance2 = Infinity;
d3.layout.hierarchy = function() {
var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue;
function hierarchy(root) {
var stack = [ root ], nodes = [], node;
root.depth = 0;
while ((node = stack.pop()) != null) {
nodes.push(node);
if ((childs = children.call(hierarchy, node, node.depth)) && (n = childs.length)) {
var n, childs, child;
while (--n >= 0) {
stack.push(child = childs[n]);
child.parent = node;
child.depth = node.depth + 1;
}
if (value) node.value = 0;
node.children = childs;
} else {
if (value) node.value = +value.call(hierarchy, node, node.depth) || 0;
delete node.children;
}
}
d3_layout_hierarchyVisitAfter(root, function(node) {
var childs, parent;
if (sort && (childs = node.children)) childs.sort(sort);
if (value && (parent = node.parent)) parent.value += node.value;
});
return nodes;
}
hierarchy.sort = function(x) {
if (!arguments.length) return sort;
sort = x;
return hierarchy;
};
hierarchy.children = function(x) {
if (!arguments.length) return children;
children = x;
return hierarchy;
};
hierarchy.value = function(x) {
if (!arguments.length) return value;
value = x;
return hierarchy;
};
hierarchy.revalue = function(root) {
if (value) {
d3_layout_hierarchyVisitBefore(root, function(node) {
if (node.children) node.value = 0;
});
d3_layout_hierarchyVisitAfter(root, function(node) {
var parent;
if (!node.children) node.value = +value.call(hierarchy, node, node.depth) || 0;
if (parent = node.parent) parent.value += node.value;
});
}
return root;
};
return hierarchy;
};
function d3_layout_hierarchyRebind(object, hierarchy) {
d3.rebind(object, hierarchy, "sort", "children", "value");
object.nodes = object;
object.links = d3_layout_hierarchyLinks;
return object;
}
function d3_layout_hierarchyVisitBefore(node, callback) {
var nodes = [ node ];
while ((node = nodes.pop()) != null) {
callback(node);
if ((children = node.children) && (n = children.length)) {
var n, children;
while (--n >= 0) nodes.push(children[n]);
}
}
}
function d3_layout_hierarchyVisitAfter(node, callback) {
var nodes = [ node ], nodes2 = [];
while ((node = nodes.pop()) != null) {
nodes2.push(node);
if ((children = node.children) && (n = children.length)) {
var i = -1, n, children;
while (++i < n) nodes.push(children[i]);
}
}
while ((node = nodes2.pop()) != null) {
callback(node);
}
}
function d3_layout_hierarchyChildren(d) {
return d.children;
}
function d3_layout_hierarchyValue(d) {
return d.value;
}
function d3_layout_hierarchySort(a, b) {
return b.value - a.value;
}
function d3_layout_hierarchyLinks(nodes) {
return d3.merge(nodes.map(function(parent) {
return (parent.children || []).map(function(child) {
return {
source: parent,
target: child
};
});
}));
}
d3.layout.partition = function() {
var hierarchy = d3.layout.hierarchy(), size = [ 1, 1 ];
function position(node, x, dx, dy) {
var children = node.children;
node.x = x;
node.y = node.depth * dy;
node.dx = dx;
node.dy = dy;
if (children && (n = children.length)) {
var i = -1, n, c, d;
dx = node.value ? dx / node.value : 0;
while (++i < n) {
position(c = children[i], x, d = c.value * dx, dy);
x += d;
}
}
}
function depth(node) {
var children = node.children, d = 0;
if (children && (n = children.length)) {
var i = -1, n;
while (++i < n) d = Math.max(d, depth(children[i]));
}
return 1 + d;
}
function partition(d, i) {
var nodes = hierarchy.call(this, d, i);
position(nodes[0], 0, size[0], size[1] / depth(nodes[0]));
return nodes;
}
partition.size = function(x) {
if (!arguments.length) return size;
size = x;
return partition;
};
return d3_layout_hierarchyRebind(partition, hierarchy);
};
d3.layout.pie = function() {
var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = τ, padAngle = 0;
function pie(data) {
var n = data.length, values = data.map(function(d, i) {
return +value.call(pie, d, i);
}), a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle), da = (typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - a, p = Math.min(Math.abs(da) / n, +(typeof padAngle === "function" ? padAngle.apply(this, arguments) : padAngle)), pa = p * (da < 0 ? -1 : 1), k = (da - n * pa) / d3.sum(values), index = d3.range(n), arcs = [], v;
if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) {
return values[j] - values[i];
} : function(i, j) {
return sort(data[i], data[j]);
});
index.forEach(function(i) {
arcs[i] = {
data: data[i],
value: v = values[i],
startAngle: a,
endAngle: a += v * k + pa,
padAngle: p
};
});
return arcs;
}
pie.value = function(_) {
if (!arguments.length) return value;
value = _;
return pie;
};
pie.sort = function(_) {
if (!arguments.length) return sort;
sort = _;
return pie;
};
pie.startAngle = function(_) {
if (!arguments.length) return startAngle;
startAngle = _;
return pie;
};
pie.endAngle = function(_) {
if (!arguments.length) return endAngle;
endAngle = _;
return pie;
};
pie.padAngle = function(_) {
if (!arguments.length) return padAngle;
padAngle = _;
return pie;
};
return pie;
};
var d3_layout_pieSortByValue = {};
d3.layout.stack = function() {
var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY;
function stack(data, index) {
if (!(n = data.length)) return data;
var series = data.map(function(d, i) {
return values.call(stack, d, i);
});
var points = series.map(function(d) {
return d.map(function(v, i) {
return [ x.call(stack, v, i), y.call(stack, v, i) ];
});
});
var orders = order.call(stack, points, index);
series = d3.permute(series, orders);
points = d3.permute(points, orders);
var offsets = offset.call(stack, points, index);
var m = series[0].length, n, i, j, o;
for (j = 0; j < m; ++j) {
out.call(stack, series[0][j], o = offsets[j], points[0][j][1]);
for (i = 1; i < n; ++i) {
out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]);
}
}
return data;
}
stack.values = function(x) {
if (!arguments.length) return values;
values = x;
return stack;
};
stack.order = function(x) {
if (!arguments.length) return order;
order = typeof x === "function" ? x : d3_layout_stackOrders.get(x) || d3_layout_stackOrderDefault;
return stack;
};
stack.offset = function(x) {
if (!arguments.length) return offset;
offset = typeof x === "function" ? x : d3_layout_stackOffsets.get(x) || d3_layout_stackOffsetZero;
return stack;
};
stack.x = function(z) {
if (!arguments.length) return x;
x = z;
return stack;
};
stack.y = function(z) {
if (!arguments.length) return y;
y = z;
return stack;
};
stack.out = function(z) {
if (!arguments.length) return out;
out = z;
return stack;
};
return stack;
};
function d3_layout_stackX(d) {
return d.x;
}
function d3_layout_stackY(d) {
return d.y;
}
function d3_layout_stackOut(d, y0, y) {
d.y0 = y0;
d.y = y;
}
var d3_layout_stackOrders = d3.map({
"inside-out": function(data) {
var n = data.length, i, j, max = data.map(d3_layout_stackMaxIndex), sums = data.map(d3_layout_stackReduceSum), index = d3.range(n).sort(function(a, b) {
return max[a] - max[b];
}), top = 0, bottom = 0, tops = [], bottoms = [];
for (i = 0; i < n; ++i) {
j = index[i];
if (top < bottom) {
top += sums[j];
tops.push(j);
} else {
bottom += sums[j];
bottoms.push(j);
}
}
return bottoms.reverse().concat(tops);
},
reverse: function(data) {
return d3.range(data.length).reverse();
},
"default": d3_layout_stackOrderDefault
});
var d3_layout_stackOffsets = d3.map({
silhouette: function(data) {
var n = data.length, m = data[0].length, sums = [], max = 0, i, j, o, y0 = [];
for (j = 0; j < m; ++j) {
for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
if (o > max) max = o;
sums.push(o);
}
for (j = 0; j < m; ++j) {
y0[j] = (max - sums[j]) / 2;
}
return y0;
},
wiggle: function(data) {
var n = data.length, x = data[0], m = x.length, i, j, k, s1, s2, s3, dx, o, o0, y0 = [];
y0[0] = o = o0 = 0;
for (j = 1; j < m; ++j) {
for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1];
for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) {
for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) {
s3 += (data[k][j][1] - data[k][j - 1][1]) / dx;
}
s2 += s3 * data[i][j][1];
}
y0[j] = o -= s1 ? s2 / s1 * dx : 0;
if (o < o0) o0 = o;
}
for (j = 0; j < m; ++j) y0[j] -= o0;
return y0;
},
expand: function(data) {
var n = data.length, m = data[0].length, k = 1 / n, i, j, o, y0 = [];
for (j = 0; j < m; ++j) {
for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; else for (i = 0; i < n; i++) data[i][j][1] = k;
}
for (j = 0; j < m; ++j) y0[j] = 0;
return y0;
},
zero: d3_layout_stackOffsetZero
});
function d3_layout_stackOrderDefault(data) {
return d3.range(data.length);
}
function d3_layout_stackOffsetZero(data) {
var j = -1, m = data[0].length, y0 = [];
while (++j < m) y0[j] = 0;
return y0;
}
function d3_layout_stackMaxIndex(array) {
var i = 1, j = 0, v = array[0][1], k, n = array.length;
for (;i < n; ++i) {
if ((k = array[i][1]) > v) {
j = i;
v = k;
}
}
return j;
}
function d3_layout_stackReduceSum(d) {
return d.reduce(d3_layout_stackSum, 0);
}
function d3_layout_stackSum(p, d) {
return p + d[1];
}
d3.layout.histogram = function() {
var frequency = true, valuer = Number, ranger = d3_layout_histogramRange, binner = d3_layout_histogramBinSturges;
function histogram(data, i) {
var bins = [], values = data.map(valuer, this), range = ranger.call(this, values, i), thresholds = binner.call(this, range, values, i), bin, i = -1, n = values.length, m = thresholds.length - 1, k = frequency ? 1 : 1 / n, x;
while (++i < m) {
bin = bins[i] = [];
bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]);
bin.y = 0;
}
if (m > 0) {
i = -1;
while (++i < n) {
x = values[i];
if (x >= range[0] && x <= range[1]) {
bin = bins[d3.bisect(thresholds, x, 1, m) - 1];
bin.y += k;
bin.push(data[i]);
}
}
}
return bins;
}
histogram.value = function(x) {
if (!arguments.length) return valuer;
valuer = x;
return histogram;
};
histogram.range = function(x) {
if (!arguments.length) return ranger;
ranger = d3_functor(x);
return histogram;
};
histogram.bins = function(x) {
if (!arguments.length) return binner;
binner = typeof x === "number" ? function(range) {
return d3_layout_histogramBinFixed(range, x);
} : d3_functor(x);
return histogram;
};
histogram.frequency = function(x) {
if (!arguments.length) return frequency;
frequency = !!x;
return histogram;
};
return histogram;
};
function d3_layout_histogramBinSturges(range, values) {
return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1));
}
function d3_layout_histogramBinFixed(range, n) {
var x = -1, b = +range[0], m = (range[1] - b) / n, f = [];
while (++x <= n) f[x] = m * x + b;
return f;
}
function d3_layout_histogramRange(values) {
return [ d3.min(values), d3.max(values) ];
}
d3.layout.pack = function() {
var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [ 1, 1 ], radius;
function pack(d, i) {
var nodes = hierarchy.call(this, d, i), root = nodes[0], w = size[0], h = size[1], r = radius == null ? Math.sqrt : typeof radius === "function" ? radius : function() {
return radius;
};
root.x = root.y = 0;
d3_layout_hierarchyVisitAfter(root, function(d) {
d.r = +r(d.value);
});
d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings);
if (padding) {
var dr = padding * (radius ? 1 : Math.max(2 * root.r / w, 2 * root.r / h)) / 2;
d3_layout_hierarchyVisitAfter(root, function(d) {
d.r += dr;
});
d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings);
d3_layout_hierarchyVisitAfter(root, function(d) {
d.r -= dr;
});
}
d3_layout_packTransform(root, w / 2, h / 2, radius ? 1 : 1 / Math.max(2 * root.r / w, 2 * root.r / h));
return nodes;
}
pack.size = function(_) {
if (!arguments.length) return size;
size = _;
return pack;
};
pack.radius = function(_) {
if (!arguments.length) return radius;
radius = _ == null || typeof _ === "function" ? _ : +_;
return pack;
};
pack.padding = function(_) {
if (!arguments.length) return padding;
padding = +_;
return pack;
};
return d3_layout_hierarchyRebind(pack, hierarchy);
};
function d3_layout_packSort(a, b) {
return a.value - b.value;
}
function d3_layout_packInsert(a, b) {
var c = a._pack_next;
a._pack_next = b;
b._pack_prev = a;
b._pack_next = c;
c._pack_prev = b;
}
function d3_layout_packSplice(a, b) {
a._pack_next = b;
b._pack_prev = a;
}
function d3_layout_packIntersects(a, b) {
var dx = b.x - a.x, dy = b.y - a.y, dr = a.r + b.r;
return .999 * dr * dr > dx * dx + dy * dy;
}
function d3_layout_packSiblings(node) {
if (!(nodes = node.children) || !(n = nodes.length)) return;
var nodes, xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity, a, b, c, i, j, k, n;
function bound(node) {
xMin = Math.min(node.x - node.r, xMin);
xMax = Math.max(node.x + node.r, xMax);
yMin = Math.min(node.y - node.r, yMin);
yMax = Math.max(node.y + node.r, yMax);
}
nodes.forEach(d3_layout_packLink);
a = nodes[0];
a.x = -a.r;
a.y = 0;
bound(a);
if (n > 1) {
b = nodes[1];
b.x = b.r;
b.y = 0;
bound(b);
if (n > 2) {
c = nodes[2];
d3_layout_packPlace(a, b, c);
bound(c);
d3_layout_packInsert(a, c);
a._pack_prev = c;
d3_layout_packInsert(c, b);
b = a._pack_next;
for (i = 3; i < n; i++) {
d3_layout_packPlace(a, b, c = nodes[i]);
var isect = 0, s1 = 1, s2 = 1;
for (j = b._pack_next; j !== b; j = j._pack_next, s1++) {
if (d3_layout_packIntersects(j, c)) {
isect = 1;
break;
}
}
if (isect == 1) {
for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) {
if (d3_layout_packIntersects(k, c)) {
break;
}
}
}
if (isect) {
if (s1 < s2 || s1 == s2 && b.r < a.r) d3_layout_packSplice(a, b = j); else d3_layout_packSplice(a = k, b);
i--;
} else {
d3_layout_packInsert(a, c);
b = c;
bound(c);
}
}
}
}
var cx = (xMin + xMax) / 2, cy = (yMin + yMax) / 2, cr = 0;
for (i = 0; i < n; i++) {
c = nodes[i];
c.x -= cx;
c.y -= cy;
cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y));
}
node.r = cr;
nodes.forEach(d3_layout_packUnlink);
}
function d3_layout_packLink(node) {
node._pack_next = node._pack_prev = node;
}
function d3_layout_packUnlink(node) {
delete node._pack_next;
delete node._pack_prev;
}
function d3_layout_packTransform(node, x, y, k) {
var children = node.children;
node.x = x += k * node.x;
node.y = y += k * node.y;
node.r *= k;
if (children) {
var i = -1, n = children.length;
while (++i < n) d3_layout_packTransform(children[i], x, y, k);
}
}
function d3_layout_packPlace(a, b, c) {
var db = a.r + c.r, dx = b.x - a.x, dy = b.y - a.y;
if (db && (dx || dy)) {
var da = b.r + c.r, dc = dx * dx + dy * dy;
da *= da;
db *= db;
var x = .5 + (db - da) / (2 * dc), y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc);
c.x = a.x + x * dx + y * dy;
c.y = a.y + x * dy - y * dx;
} else {
c.x = a.x + db;
c.y = a.y;
}
}
d3.layout.tree = function() {
var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = null;
function tree(d, i) {
var nodes = hierarchy.call(this, d, i), root0 = nodes[0], root1 = wrapTree(root0);
d3_layout_hierarchyVisitAfter(root1, firstWalk), root1.parent.m = -root1.z;
d3_layout_hierarchyVisitBefore(root1, secondWalk);
if (nodeSize) d3_layout_hierarchyVisitBefore(root0, sizeNode); else {
var left = root0, right = root0, bottom = root0;
d3_layout_hierarchyVisitBefore(root0, function(node) {
if (node.x < left.x) left = node;
if (node.x > right.x) right = node;
if (node.depth > bottom.depth) bottom = node;
});
var tx = separation(left, right) / 2 - left.x, kx = size[0] / (right.x + separation(right, left) / 2 + tx), ky = size[1] / (bottom.depth || 1);
d3_layout_hierarchyVisitBefore(root0, function(node) {
node.x = (node.x + tx) * kx;
node.y = node.depth * ky;
});
}
return nodes;
}
function wrapTree(root0) {
var root1 = {
A: null,
children: [ root0 ]
}, queue = [ root1 ], node1;
while ((node1 = queue.pop()) != null) {
for (var children = node1.children, child, i = 0, n = children.length; i < n; ++i) {
queue.push((children[i] = child = {
_: children[i],
parent: node1,
children: (child = children[i].children) && child.slice() || [],
A: null,
a: null,
z: 0,
m: 0,
c: 0,
s: 0,
t: null,
i: i
}).a = child);
}
}
return root1.children[0];
}
function firstWalk(v) {
var children = v.children, siblings = v.parent.children, w = v.i ? siblings[v.i - 1] : null;
if (children.length) {
d3_layout_treeShift(v);
var midpoint = (children[0].z + children[children.length - 1].z) / 2;
if (w) {
v.z = w.z + separation(v._, w._);
v.m = v.z - midpoint;
} else {
v.z = midpoint;
}
} else if (w) {
v.z = w.z + separation(v._, w._);
}
v.parent.A = apportion(v, w, v.parent.A || siblings[0]);
}
function secondWalk(v) {
v._.x = v.z + v.parent.m;
v.m += v.parent.m;
}
function apportion(v, w, ancestor) {
if (w) {
var vip = v, vop = v, vim = w, vom = vip.parent.children[0], sip = vip.m, sop = vop.m, sim = vim.m, som = vom.m, shift;
while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) {
vom = d3_layout_treeLeft(vom);
vop = d3_layout_treeRight(vop);
vop.a = v;
shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);
if (shift > 0) {
d3_layout_treeMove(d3_layout_treeAncestor(vim, v, ancestor), v, shift);
sip += shift;
sop += shift;
}
sim += vim.m;
sip += vip.m;
som += vom.m;
sop += vop.m;
}
if (vim && !d3_layout_treeRight(vop)) {
vop.t = vim;
vop.m += sim - sop;
}
if (vip && !d3_layout_treeLeft(vom)) {
vom.t = vip;
vom.m += sip - som;
ancestor = v;
}
}
return ancestor;
}
function sizeNode(node) {
node.x *= size[0];
node.y = node.depth * size[1];
}
tree.separation = function(x) {
if (!arguments.length) return separation;
separation = x;
return tree;
};
tree.size = function(x) {
if (!arguments.length) return nodeSize ? null : size;
nodeSize = (size = x) == null ? sizeNode : null;
return tree;
};
tree.nodeSize = function(x) {
if (!arguments.length) return nodeSize ? size : null;
nodeSize = (size = x) == null ? null : sizeNode;
return tree;
};
return d3_layout_hierarchyRebind(tree, hierarchy);
};
function d3_layout_treeSeparation(a, b) {
return a.parent == b.parent ? 1 : 2;
}
function d3_layout_treeLeft(v) {
var children = v.children;
return children.length ? children[0] : v.t;
}
function d3_layout_treeRight(v) {
var children = v.children, n;
return (n = children.length) ? children[n - 1] : v.t;
}
function d3_layout_treeMove(wm, wp, shift) {
var change = shift / (wp.i - wm.i);
wp.c -= change;
wp.s += shift;
wm.c += change;
wp.z += shift;
wp.m += shift;
}
function d3_layout_treeShift(v) {
var shift = 0, change = 0, children = v.children, i = children.length, w;
while (--i >= 0) {
w = children[i];
w.z += shift;
w.m += shift;
shift += w.s + (change += w.c);
}
}
function d3_layout_treeAncestor(vim, v, ancestor) {
return vim.a.parent === v.parent ? vim.a : ancestor;
}
d3.layout.cluster = function() {
var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = false;
function cluster(d, i) {
var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0;
d3_layout_hierarchyVisitAfter(root, function(node) {
var children = node.children;
if (children && children.length) {
node.x = d3_layout_clusterX(children);
node.y = d3_layout_clusterY(children);
} else {
node.x = previousNode ? x += separation(node, previousNode) : 0;
node.y = 0;
previousNode = node;
}
});
var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2;
d3_layout_hierarchyVisitAfter(root, nodeSize ? function(node) {
node.x = (node.x - root.x) * size[0];
node.y = (root.y - node.y) * size[1];
} : function(node) {
node.x = (node.x - x0) / (x1 - x0) * size[0];
node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1];
});
return nodes;
}
cluster.separation = function(x) {
if (!arguments.length) return separation;
separation = x;
return cluster;
};
cluster.size = function(x) {
if (!arguments.length) return nodeSize ? null : size;
nodeSize = (size = x) == null;
return cluster;
};
cluster.nodeSize = function(x) {
if (!arguments.length) return nodeSize ? size : null;
nodeSize = (size = x) != null;
return cluster;
};
return d3_layout_hierarchyRebind(cluster, hierarchy);
};
function d3_layout_clusterY(children) {
return 1 + d3.max(children, function(child) {
return child.y;
});
}
function d3_layout_clusterX(children) {
return children.reduce(function(x, child) {
return x + child.x;
}, 0) / children.length;
}
function d3_layout_clusterLeft(node) {
var children = node.children;
return children && children.length ? d3_layout_clusterLeft(children[0]) : node;
}
function d3_layout_clusterRight(node) {
var children = node.children, n;
return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node;
}
d3.layout.treemap = function() {
var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [ 1, 1 ], padding = null, pad = d3_layout_treemapPadNull, sticky = false, stickies, mode = "squarify", ratio = .5 * (1 + Math.sqrt(5));
function scale(children, k) {
var i = -1, n = children.length, child, area;
while (++i < n) {
area = (child = children[i]).value * (k < 0 ? 0 : k);
child.area = isNaN(area) || area <= 0 ? 0 : area;
}
}
function squarify(node) {
var children = node.children;
if (children && children.length) {
var rect = pad(node), row = [], remaining = children.slice(), child, best = Infinity, score, u = mode === "slice" ? rect.dx : mode === "dice" ? rect.dy : mode === "slice-dice" ? node.depth & 1 ? rect.dy : rect.dx : Math.min(rect.dx, rect.dy), n;
scale(remaining, rect.dx * rect.dy / node.value);
row.area = 0;
while ((n = remaining.length) > 0) {
row.push(child = remaining[n - 1]);
row.area += child.area;
if (mode !== "squarify" || (score = worst(row, u)) <= best) {
remaining.pop();
best = score;
} else {
row.area -= row.pop().area;
position(row, u, rect, false);
u = Math.min(rect.dx, rect.dy);
row.length = row.area = 0;
best = Infinity;
}
}
if (row.length) {
position(row, u, rect, true);
row.length = row.area = 0;
}
children.forEach(squarify);
}
}
function stickify(node) {
var children = node.children;
if (children && children.length) {
var rect = pad(node), remaining = children.slice(), child, row = [];
scale(remaining, rect.dx * rect.dy / node.value);
row.area = 0;
while (child = remaining.pop()) {
row.push(child);
row.area += child.area;
if (child.z != null) {
position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length);
row.length = row.area = 0;
}
}
children.forEach(stickify);
}
}
function worst(row, u) {
var s = row.area, r, rmax = 0, rmin = Infinity, i = -1, n = row.length;
while (++i < n) {
if (!(r = row[i].area)) continue;
if (r < rmin) rmin = r;
if (r > rmax) rmax = r;
}
s *= s;
u *= u;
return s ? Math.max(u * rmax * ratio / s, s / (u * rmin * ratio)) : Infinity;
}
function position(row, u, rect, flush) {
var i = -1, n = row.length, x = rect.x, y = rect.y, v = u ? round(row.area / u) : 0, o;
if (u == rect.dx) {
if (flush || v > rect.dy) v = rect.dy;
while (++i < n) {
o = row[i];
o.x = x;
o.y = y;
o.dy = v;
x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0);
}
o.z = true;
o.dx += rect.x + rect.dx - x;
rect.y += v;
rect.dy -= v;
} else {
if (flush || v > rect.dx) v = rect.dx;
while (++i < n) {
o = row[i];
o.x = x;
o.y = y;
o.dx = v;
y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0);
}
o.z = false;
o.dy += rect.y + rect.dy - y;
rect.x += v;
rect.dx -= v;
}
}
function treemap(d) {
var nodes = stickies || hierarchy(d), root = nodes[0];
root.x = 0;
root.y = 0;
root.dx = size[0];
root.dy = size[1];
if (stickies) hierarchy.revalue(root);
scale([ root ], root.dx * root.dy / root.value);
(stickies ? stickify : squarify)(root);
if (sticky) stickies = nodes;
return nodes;
}
treemap.size = function(x) {
if (!arguments.length) return size;
size = x;
return treemap;
};
treemap.padding = function(x) {
if (!arguments.length) return padding;
function padFunction(node) {
var p = x.call(treemap, node, node.depth);
return p == null ? d3_layout_treemapPadNull(node) : d3_layout_treemapPad(node, typeof p === "number" ? [ p, p, p, p ] : p);
}
function padConstant(node) {
return d3_layout_treemapPad(node, x);
}
var type;
pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === "function" ? padFunction : type === "number" ? (x = [ x, x, x, x ],
padConstant) : padConstant;
return treemap;
};
treemap.round = function(x) {
if (!arguments.length) return round != Number;
round = x ? Math.round : Number;
return treemap;
};
treemap.sticky = function(x) {
if (!arguments.length) return sticky;
sticky = x;
stickies = null;
return treemap;
};
treemap.ratio = function(x) {
if (!arguments.length) return ratio;
ratio = x;
return treemap;
};
treemap.mode = function(x) {
if (!arguments.length) return mode;
mode = x + "";
return treemap;
};
return d3_layout_hierarchyRebind(treemap, hierarchy);
};
function d3_layout_treemapPadNull(node) {
return {
x: node.x,
y: node.y,
dx: node.dx,
dy: node.dy
};
}
function d3_layout_treemapPad(node, padding) {
var x = node.x + padding[3], y = node.y + padding[0], dx = node.dx - padding[1] - padding[3], dy = node.dy - padding[0] - padding[2];
if (dx < 0) {
x += dx / 2;
dx = 0;
}
if (dy < 0) {
y += dy / 2;
dy = 0;
}
return {
x: x,
y: y,
dx: dx,
dy: dy
};
}
d3.random = {
normal: function(µ, σ) {
var n = arguments.length;
if (n < 2) σ = 1;
if (n < 1) µ = 0;
return function() {
var x, y, r;
do {
x = Math.random() * 2 - 1;
y = Math.random() * 2 - 1;
r = x * x + y * y;
} while (!r || r > 1);
return µ + σ * x * Math.sqrt(-2 * Math.log(r) / r);
};
},
logNormal: function() {
var random = d3.random.normal.apply(d3, arguments);
return function() {
return Math.exp(random());
};
},
bates: function(m) {
var random = d3.random.irwinHall(m);
return function() {
return random() / m;
};
},
irwinHall: function(m) {
return function() {
for (var s = 0, j = 0; j < m; j++) s += Math.random();
return s;
};
}
};
d3.scale = {};
function d3_scaleExtent(domain) {
var start = domain[0], stop = domain[domain.length - 1];
return start < stop ? [ start, stop ] : [ stop, start ];
}
function d3_scaleRange(scale) {
return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range());
}
function d3_scale_bilinear(domain, range, uninterpolate, interpolate) {
var u = uninterpolate(domain[0], domain[1]), i = interpolate(range[0], range[1]);
return function(x) {
return i(u(x));
};
}
function d3_scale_nice(domain, nice) {
var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], dx;
if (x1 < x0) {
dx = i0, i0 = i1, i1 = dx;
dx = x0, x0 = x1, x1 = dx;
}
domain[i0] = nice.floor(x0);
domain[i1] = nice.ceil(x1);
return domain;
}
function d3_scale_niceStep(step) {
return step ? {
floor: function(x) {
return Math.floor(x / step) * step;
},
ceil: function(x) {
return Math.ceil(x / step) * step;
}
} : d3_scale_niceIdentity;
}
var d3_scale_niceIdentity = {
floor: d3_identity,
ceil: d3_identity
};
function d3_scale_polylinear(domain, range, uninterpolate, interpolate) {
var u = [], i = [], j = 0, k = Math.min(domain.length, range.length) - 1;
if (domain[k] < domain[0]) {
domain = domain.slice().reverse();
range = range.slice().reverse();
}
while (++j <= k) {
u.push(uninterpolate(domain[j - 1], domain[j]));
i.push(interpolate(range[j - 1], range[j]));
}
return function(x) {
var j = d3.bisect(domain, x, 1, k) - 1;
return i[j](u[j](x));
};
}
d3.scale.linear = function() {
return d3_scale_linear([ 0, 1 ], [ 0, 1 ], d3_interpolate, false);
};
function d3_scale_linear(domain, range, interpolate, clamp) {
var output, input;
function rescale() {
var linear = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber;
output = linear(domain, range, uninterpolate, interpolate);
input = linear(range, domain, uninterpolate, d3_interpolate);
return scale;
}
function scale(x) {
return output(x);
}
scale.invert = function(y) {
return input(y);
};
scale.domain = function(x) {
if (!arguments.length) return domain;
domain = x.map(Number);
return rescale();
};
scale.range = function(x) {
if (!arguments.length) return range;
range = x;
return rescale();
};
scale.rangeRound = function(x) {
return scale.range(x).interpolate(d3_interpolateRound);
};
scale.clamp = function(x) {
if (!arguments.length) return clamp;
clamp = x;
return rescale();
};
scale.interpolate = function(x) {
if (!arguments.length) return interpolate;
interpolate = x;
return rescale();
};
scale.ticks = function(m) {
return d3_scale_linearTicks(domain, m);
};
scale.tickFormat = function(m, format) {
return d3_scale_linearTickFormat(domain, m, format);
};
scale.nice = function(m) {
d3_scale_linearNice(domain, m);
return rescale();
};
scale.copy = function() {
return d3_scale_linear(domain, range, interpolate, clamp);
};
return rescale();
}
function d3_scale_linearRebind(scale, linear) {
return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp");
}
function d3_scale_linearNice(domain, m) {
return d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2]));
}
function d3_scale_linearTickRange(domain, m) {
if (m == null) m = 10;
var extent = d3_scaleExtent(domain), span = extent[1] - extent[0], step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), err = m / span * step;
if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2;
extent[0] = Math.ceil(extent[0] / step) * step;
extent[1] = Math.floor(extent[1] / step) * step + step * .5;
extent[2] = step;
return extent;
}
function d3_scale_linearTicks(domain, m) {
return d3.range.apply(d3, d3_scale_linearTickRange(domain, m));
}
function d3_scale_linearTickFormat(domain, m, format) {
var range = d3_scale_linearTickRange(domain, m);
if (format) {
var match = d3_format_re.exec(format);
match.shift();
if (match[8] === "s") {
var prefix = d3.formatPrefix(Math.max(abs(range[0]), abs(range[1])));
if (!match[7]) match[7] = "." + d3_scale_linearPrecision(prefix.scale(range[2]));
match[8] = "f";
format = d3.format(match.join(""));
return function(d) {
return format(prefix.scale(d)) + prefix.symbol;
};
}
if (!match[7]) match[7] = "." + d3_scale_linearFormatPrecision(match[8], range);
format = match.join("");
} else {
format = ",." + d3_scale_linearPrecision(range[2]) + "f";
}
return d3.format(format);
}
var d3_scale_linearFormatSignificant = {
s: 1,
g: 1,
p: 1,
r: 1,
e: 1
};
function d3_scale_linearPrecision(value) {
return -Math.floor(Math.log(value) / Math.LN10 + .01);
}
function d3_scale_linearFormatPrecision(type, range) {
var p = d3_scale_linearPrecision(range[2]);
return type in d3_scale_linearFormatSignificant ? Math.abs(p - d3_scale_linearPrecision(Math.max(abs(range[0]), abs(range[1])))) + +(type !== "e") : p - (type === "%") * 2;
}
d3.scale.log = function() {
return d3_scale_log(d3.scale.linear().domain([ 0, 1 ]), 10, true, [ 1, 10 ]);
};
function d3_scale_log(linear, base, positive, domain) {
function log(x) {
return (positive ? Math.log(x < 0 ? 0 : x) : -Math.log(x > 0 ? 0 : -x)) / Math.log(base);
}
function pow(x) {
return positive ? Math.pow(base, x) : -Math.pow(base, -x);
}
function scale(x) {
return linear(log(x));
}
scale.invert = function(x) {
return pow(linear.invert(x));
};
scale.domain = function(x) {
if (!arguments.length) return domain;
positive = x[0] >= 0;
linear.domain((domain = x.map(Number)).map(log));
return scale;
};
scale.base = function(_) {
if (!arguments.length) return base;
base = +_;
linear.domain(domain.map(log));
return scale;
};
scale.nice = function() {
var niced = d3_scale_nice(domain.map(log), positive ? Math : d3_scale_logNiceNegative);
linear.domain(niced);
domain = niced.map(pow);
return scale;
};
scale.ticks = function() {
var extent = d3_scaleExtent(domain), ticks = [], u = extent[0], v = extent[1], i = Math.floor(log(u)), j = Math.ceil(log(v)), n = base % 1 ? 2 : base;
if (isFinite(j - i)) {
if (positive) {
for (;i < j; i++) for (var k = 1; k < n; k++) ticks.push(pow(i) * k);
ticks.push(pow(i));
} else {
ticks.push(pow(i));
for (;i++ < j; ) for (var k = n - 1; k > 0; k--) ticks.push(pow(i) * k);
}
for (i = 0; ticks[i] < u; i++) {}
for (j = ticks.length; ticks[j - 1] > v; j--) {}
ticks = ticks.slice(i, j);
}
return ticks;
};
scale.tickFormat = function(n, format) {
if (!arguments.length) return d3_scale_logFormat;
if (arguments.length < 2) format = d3_scale_logFormat; else if (typeof format !== "function") format = d3.format(format);
var k = Math.max(.1, n / scale.ticks().length), f = positive ? (e = 1e-12, Math.ceil) : (e = -1e-12,
Math.floor), e;
return function(d) {
return d / pow(f(log(d) + e)) <= k ? format(d) : "";
};
};
scale.copy = function() {
return d3_scale_log(linear.copy(), base, positive, domain);
};
return d3_scale_linearRebind(scale, linear);
}
var d3_scale_logFormat = d3.format(".0e"), d3_scale_logNiceNegative = {
floor: function(x) {
return -Math.ceil(-x);
},
ceil: function(x) {
return -Math.floor(-x);
}
};
d3.scale.pow = function() {
return d3_scale_pow(d3.scale.linear(), 1, [ 0, 1 ]);
};
function d3_scale_pow(linear, exponent, domain) {
var powp = d3_scale_powPow(exponent), powb = d3_scale_powPow(1 / exponent);
function scale(x) {
return linear(powp(x));
}
scale.invert = function(x) {
return powb(linear.invert(x));
};
scale.domain = function(x) {
if (!arguments.length) return domain;
linear.domain((domain = x.map(Number)).map(powp));
return scale;
};
scale.ticks = function(m) {
return d3_scale_linearTicks(domain, m);
};
scale.tickFormat = function(m, format) {
return d3_scale_linearTickFormat(domain, m, format);
};
scale.nice = function(m) {
return scale.domain(d3_scale_linearNice(domain, m));
};
scale.exponent = function(x) {
if (!arguments.length) return exponent;
powp = d3_scale_powPow(exponent = x);
powb = d3_scale_powPow(1 / exponent);
linear.domain(domain.map(powp));
return scale;
};
scale.copy = function() {
return d3_scale_pow(linear.copy(), exponent, domain);
};
return d3_scale_linearRebind(scale, linear);
}
function d3_scale_powPow(e) {
return function(x) {
return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e);
};
}
d3.scale.sqrt = function() {
return d3.scale.pow().exponent(.5);
};
d3.scale.ordinal = function() {
return d3_scale_ordinal([], {
t: "range",
a: [ [] ]
});
};
function d3_scale_ordinal(domain, ranger) {
var index, range, rangeBand;
function scale(x) {
return range[((index.get(x) || (ranger.t === "range" ? index.set(x, domain.push(x)) : NaN)) - 1) % range.length];
}
function steps(start, step) {
return d3.range(domain.length).map(function(i) {
return start + step * i;
});
}
scale.domain = function(x) {
if (!arguments.length) return domain;
domain = [];
index = new d3_Map();
var i = -1, n = x.length, xi;
while (++i < n) if (!index.has(xi = x[i])) index.set(xi, domain.push(xi));
return scale[ranger.t].apply(scale, ranger.a);
};
scale.range = function(x) {
if (!arguments.length) return range;
range = x;
rangeBand = 0;
ranger = {
t: "range",
a: arguments
};
return scale;
};
scale.rangePoints = function(x, padding) {
if (arguments.length < 2) padding = 0;
var start = x[0], stop = x[1], step = domain.length < 2 ? (start = (start + stop) / 2,
0) : (stop - start) / (domain.length - 1 + padding);
range = steps(start + step * padding / 2, step);
rangeBand = 0;
ranger = {
t: "rangePoints",
a: arguments
};
return scale;
};
scale.rangeRoundPoints = function(x, padding) {
if (arguments.length < 2) padding = 0;
var start = x[0], stop = x[1], step = domain.length < 2 ? (start = stop = Math.round((start + stop) / 2),
0) : (stop - start) / (domain.length - 1 + padding) | 0;
range = steps(start + Math.round(step * padding / 2 + (stop - start - (domain.length - 1 + padding) * step) / 2), step);
rangeBand = 0;
ranger = {
t: "rangeRoundPoints",
a: arguments
};
return scale;
};
scale.rangeBands = function(x, padding, outerPadding) {
if (arguments.length < 2) padding = 0;
if (arguments.length < 3) outerPadding = padding;
var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = (stop - start) / (domain.length - padding + 2 * outerPadding);
range = steps(start + step * outerPadding, step);
if (reverse) range.reverse();
rangeBand = step * (1 - padding);
ranger = {
t: "rangeBands",
a: arguments
};
return scale;
};
scale.rangeRoundBands = function(x, padding, outerPadding) {
if (arguments.length < 2) padding = 0;
if (arguments.length < 3) outerPadding = padding;
var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding));
range = steps(start + Math.round((stop - start - (domain.length - padding) * step) / 2), step);
if (reverse) range.reverse();
rangeBand = Math.round(step * (1 - padding));
ranger = {
t: "rangeRoundBands",
a: arguments
};
return scale;
};
scale.rangeBand = function() {
return rangeBand;
};
scale.rangeExtent = function() {
return d3_scaleExtent(ranger.a[0]);
};
scale.copy = function() {
return d3_scale_ordinal(domain, ranger);
};
return scale.domain(domain);
}
d3.scale.category10 = function() {
return d3.scale.ordinal().range(d3_category10);
};
d3.scale.category20 = function() {
return d3.scale.ordinal().range(d3_category20);
};
d3.scale.category20b = function() {
return d3.scale.ordinal().range(d3_category20b);
};
d3.scale.category20c = function() {
return d3.scale.ordinal().range(d3_category20c);
};
var d3_category10 = [ 2062260, 16744206, 2924588, 14034728, 9725885, 9197131, 14907330, 8355711, 12369186, 1556175 ].map(d3_rgbString);
var d3_category20 = [ 2062260, 11454440, 16744206, 16759672, 2924588, 10018698, 14034728, 16750742, 9725885, 12955861, 9197131, 12885140, 14907330, 16234194, 8355711, 13092807, 12369186, 14408589, 1556175, 10410725 ].map(d3_rgbString);
var d3_category20b = [ 3750777, 5395619, 7040719, 10264286, 6519097, 9216594, 11915115, 13556636, 9202993, 12426809, 15186514, 15190932, 8666169, 11356490, 14049643, 15177372, 8077683, 10834324, 13528509, 14589654 ].map(d3_rgbString);
var d3_category20c = [ 3244733, 7057110, 10406625, 13032431, 15095053, 16616764, 16625259, 16634018, 3253076, 7652470, 10607003, 13101504, 7695281, 10394312, 12369372, 14342891, 6513507, 9868950, 12434877, 14277081 ].map(d3_rgbString);
d3.scale.quantile = function() {
return d3_scale_quantile([], []);
};
function d3_scale_quantile(domain, range) {
var thresholds;
function rescale() {
var k = 0, q = range.length;
thresholds = [];
while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q);
return scale;
}
function scale(x) {
if (!isNaN(x = +x)) return range[d3.bisect(thresholds, x)];
}
scale.domain = function(x) {
if (!arguments.length) return domain;
domain = x.map(d3_number).filter(d3_numeric).sort(d3_ascending);
return rescale();
};
scale.range = function(x) {
if (!arguments.length) return range;
range = x;
return rescale();
};
scale.quantiles = function() {
return thresholds;
};
scale.invertExtent = function(y) {
y = range.indexOf(y);
return y < 0 ? [ NaN, NaN ] : [ y > 0 ? thresholds[y - 1] : domain[0], y < thresholds.length ? thresholds[y] : domain[domain.length - 1] ];
};
scale.copy = function() {
return d3_scale_quantile(domain, range);
};
return rescale();
}
d3.scale.quantize = function() {
return d3_scale_quantize(0, 1, [ 0, 1 ]);
};
function d3_scale_quantize(x0, x1, range) {
var kx, i;
function scale(x) {
return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))];
}
function rescale() {
kx = range.length / (x1 - x0);
i = range.length - 1;
return scale;
}
scale.domain = function(x) {
if (!arguments.length) return [ x0, x1 ];
x0 = +x[0];
x1 = +x[x.length - 1];
return rescale();
};
scale.range = function(x) {
if (!arguments.length) return range;
range = x;
return rescale();
};
scale.invertExtent = function(y) {
y = range.indexOf(y);
y = y < 0 ? NaN : y / kx + x0;
return [ y, y + 1 / kx ];
};
scale.copy = function() {
return d3_scale_quantize(x0, x1, range);
};
return rescale();
}
d3.scale.threshold = function() {
return d3_scale_threshold([ .5 ], [ 0, 1 ]);
};
function d3_scale_threshold(domain, range) {
function scale(x) {
if (x <= x) return range[d3.bisect(domain, x)];
}
scale.domain = function(_) {
if (!arguments.length) return domain;
domain = _;
return scale;
};
scale.range = function(_) {
if (!arguments.length) return range;
range = _;
return scale;
};
scale.invertExtent = function(y) {
y = range.indexOf(y);
return [ domain[y - 1], domain[y] ];
};
scale.copy = function() {
return d3_scale_threshold(domain, range);
};
return scale;
}
d3.scale.identity = function() {
return d3_scale_identity([ 0, 1 ]);
};
function d3_scale_identity(domain) {
function identity(x) {
return +x;
}
identity.invert = identity;
identity.domain = identity.range = function(x) {
if (!arguments.length) return domain;
domain = x.map(identity);
return identity;
};
identity.ticks = function(m) {
return d3_scale_linearTicks(domain, m);
};
identity.tickFormat = function(m, format) {
return d3_scale_linearTickFormat(domain, m, format);
};
identity.copy = function() {
return d3_scale_identity(domain);
};
return identity;
}
d3.svg = {};
function d3_zero() {
return 0;
}
d3.svg.arc = function() {
var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, cornerRadius = d3_zero, padRadius = d3_svg_arcAuto, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle, padAngle = d3_svg_arcPadAngle;
function arc() {
var r0 = Math.max(0, +innerRadius.apply(this, arguments)), r1 = Math.max(0, +outerRadius.apply(this, arguments)), a0 = startAngle.apply(this, arguments) - halfπ, a1 = endAngle.apply(this, arguments) - halfπ, da = Math.abs(a1 - a0), cw = a0 > a1 ? 0 : 1;
if (r1 < r0) rc = r1, r1 = r0, r0 = rc;
if (da >= τε) return circleSegment(r1, cw) + (r0 ? circleSegment(r0, 1 - cw) : "") + "Z";
var rc, cr, rp, ap, p0 = 0, p1 = 0, x0, y0, x1, y1, x2, y2, x3, y3, path = [];
if (ap = (+padAngle.apply(this, arguments) || 0) / 2) {
rp = padRadius === d3_svg_arcAuto ? Math.sqrt(r0 * r0 + r1 * r1) : +padRadius.apply(this, arguments);
if (!cw) p1 *= -1;
if (r1) p1 = d3_asin(rp / r1 * Math.sin(ap));
if (r0) p0 = d3_asin(rp / r0 * Math.sin(ap));
}
if (r1) {
x0 = r1 * Math.cos(a0 + p1);
y0 = r1 * Math.sin(a0 + p1);
x1 = r1 * Math.cos(a1 - p1);
y1 = r1 * Math.sin(a1 - p1);
var l1 = Math.abs(a1 - a0 - 2 * p1) <= π ? 0 : 1;
if (p1 && d3_svg_arcSweep(x0, y0, x1, y1) === cw ^ l1) {
var h1 = (a0 + a1) / 2;
x0 = r1 * Math.cos(h1);
y0 = r1 * Math.sin(h1);
x1 = y1 = null;
}
} else {
x0 = y0 = 0;
}
if (r0) {
x2 = r0 * Math.cos(a1 - p0);
y2 = r0 * Math.sin(a1 - p0);
x3 = r0 * Math.cos(a0 + p0);
y3 = r0 * Math.sin(a0 + p0);
var l0 = Math.abs(a0 - a1 + 2 * p0) <= π ? 0 : 1;
if (p0 && d3_svg_arcSweep(x2, y2, x3, y3) === 1 - cw ^ l0) {
var h0 = (a0 + a1) / 2;
x2 = r0 * Math.cos(h0);
y2 = r0 * Math.sin(h0);
x3 = y3 = null;
}
} else {
x2 = y2 = 0;
}
if ((rc = Math.min(Math.abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments))) > .001) {
cr = r0 < r1 ^ cw ? 0 : 1;
var oc = x3 == null ? [ x2, y2 ] : x1 == null ? [ x0, y0 ] : d3_geom_polygonIntersect([ x0, y0 ], [ x3, y3 ], [ x1, y1 ], [ x2, y2 ]), ax = x0 - oc[0], ay = y0 - oc[1], bx = x1 - oc[0], by = y1 - oc[1], kc = 1 / Math.sin(Math.acos((ax * bx + ay * by) / (Math.sqrt(ax * ax + ay * ay) * Math.sqrt(bx * bx + by * by))) / 2), lc = Math.sqrt(oc[0] * oc[0] + oc[1] * oc[1]);
if (x1 != null) {
var rc1 = Math.min(rc, (r1 - lc) / (kc + 1)), t30 = d3_svg_arcCornerTangents(x3 == null ? [ x2, y2 ] : [ x3, y3 ], [ x0, y0 ], r1, rc1, cw), t12 = d3_svg_arcCornerTangents([ x1, y1 ], [ x2, y2 ], r1, rc1, cw);
if (rc === rc1) {
path.push("M", t30[0], "A", rc1, ",", rc1, " 0 0,", cr, " ", t30[1], "A", r1, ",", r1, " 0 ", 1 - cw ^ d3_svg_arcSweep(t30[1][0], t30[1][1], t12[1][0], t12[1][1]), ",", cw, " ", t12[1], "A", rc1, ",", rc1, " 0 0,", cr, " ", t12[0]);
} else {
path.push("M", t30[0], "A", rc1, ",", rc1, " 0 1,", cr, " ", t12[0]);
}
} else {
path.push("M", x0, ",", y0);
}
if (x3 != null) {
var rc0 = Math.min(rc, (r0 - lc) / (kc - 1)), t03 = d3_svg_arcCornerTangents([ x0, y0 ], [ x3, y3 ], r0, -rc0, cw), t21 = d3_svg_arcCornerTangents([ x2, y2 ], x1 == null ? [ x0, y0 ] : [ x1, y1 ], r0, -rc0, cw);
if (rc === rc0) {
path.push("L", t21[0], "A", rc0, ",", rc0, " 0 0,", cr, " ", t21[1], "A", r0, ",", r0, " 0 ", cw ^ d3_svg_arcSweep(t21[1][0], t21[1][1], t03[1][0], t03[1][1]), ",", 1 - cw, " ", t03[1], "A", rc0, ",", rc0, " 0 0,", cr, " ", t03[0]);
} else {
path.push("L", t21[0], "A", rc0, ",", rc0, " 0 0,", cr, " ", t03[0]);
}
} else {
path.push("L", x2, ",", y2);
}
} else {
path.push("M", x0, ",", y0);
if (x1 != null) path.push("A", r1, ",", r1, " 0 ", l1, ",", cw, " ", x1, ",", y1);
path.push("L", x2, ",", y2);
if (x3 != null) path.push("A", r0, ",", r0, " 0 ", l0, ",", 1 - cw, " ", x3, ",", y3);
}
path.push("Z");
return path.join("");
}
function circleSegment(r1, cw) {
return "M0," + r1 + "A" + r1 + "," + r1 + " 0 1," + cw + " 0," + -r1 + "A" + r1 + "," + r1 + " 0 1," + cw + " 0," + r1;
}
arc.innerRadius = function(v) {
if (!arguments.length) return innerRadius;
innerRadius = d3_functor(v);
return arc;
};
arc.outerRadius = function(v) {
if (!arguments.length) return outerRadius;
outerRadius = d3_functor(v);
return arc;
};
arc.cornerRadius = function(v) {
if (!arguments.length) return cornerRadius;
cornerRadius = d3_functor(v);
return arc;
};
arc.padRadius = function(v) {
if (!arguments.length) return padRadius;
padRadius = v == d3_svg_arcAuto ? d3_svg_arcAuto : d3_functor(v);
return arc;
};
arc.startAngle = function(v) {
if (!arguments.length) return startAngle;
startAngle = d3_functor(v);
return arc;
};
arc.endAngle = function(v) {
if (!arguments.length) return endAngle;
endAngle = d3_functor(v);
return arc;
};
arc.padAngle = function(v) {
if (!arguments.length) return padAngle;
padAngle = d3_functor(v);
return arc;
};
arc.centroid = function() {
var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - halfπ;
return [ Math.cos(a) * r, Math.sin(a) * r ];
};
return arc;
};
var d3_svg_arcAuto = "auto";
function d3_svg_arcInnerRadius(d) {
return d.innerRadius;
}
function d3_svg_arcOuterRadius(d) {
return d.outerRadius;
}
function d3_svg_arcStartAngle(d) {
return d.startAngle;
}
function d3_svg_arcEndAngle(d) {
return d.endAngle;
}
function d3_svg_arcPadAngle(d) {
return d && d.padAngle;
}
function d3_svg_arcSweep(x0, y0, x1, y1) {
return (x0 - x1) * y0 - (y0 - y1) * x0 > 0 ? 0 : 1;
}
function d3_svg_arcCornerTangents(p0, p1, r1, rc, cw) {
var x01 = p0[0] - p1[0], y01 = p0[1] - p1[1], lo = (cw ? rc : -rc) / Math.sqrt(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x1 = p0[0] + ox, y1 = p0[1] + oy, x2 = p1[0] + ox, y2 = p1[1] + oy, x3 = (x1 + x2) / 2, y3 = (y1 + y2) / 2, dx = x2 - x1, dy = y2 - y1, d2 = dx * dx + dy * dy, r = r1 - rc, D = x1 * y2 - x2 * y1, d = (dy < 0 ? -1 : 1) * Math.sqrt(r * r * d2 - D * D), cx0 = (D * dy - dx * d) / d2, cy0 = (-D * dx - dy * d) / d2, cx1 = (D * dy + dx * d) / d2, cy1 = (-D * dx + dy * d) / d2, dx0 = cx0 - x3, dy0 = cy0 - y3, dx1 = cx1 - x3, dy1 = cy1 - y3;
if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;
return [ [ cx0 - ox, cy0 - oy ], [ cx0 * r1 / r, cy0 * r1 / r ] ];
}
function d3_svg_line(projection) {
var x = d3_geom_pointX, y = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = .7;
function line(data) {
var segments = [], points = [], i = -1, n = data.length, d, fx = d3_functor(x), fy = d3_functor(y);
function segment() {
segments.push("M", interpolate(projection(points), tension));
}
while (++i < n) {
if (defined.call(this, d = data[i], i)) {
points.push([ +fx.call(this, d, i), +fy.call(this, d, i) ]);
} else if (points.length) {
segment();
points = [];
}
}
if (points.length) segment();
return segments.length ? segments.join("") : null;
}
line.x = function(_) {
if (!arguments.length) return x;
x = _;
return line;
};
line.y = function(_) {
if (!arguments.length) return y;
y = _;
return line;
};
line.defined = function(_) {
if (!arguments.length) return defined;
defined = _;
return line;
};
line.interpolate = function(_) {
if (!arguments.length) return interpolateKey;
if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;
return line;
};
line.tension = function(_) {
if (!arguments.length) return tension;
tension = _;
return line;
};
return line;
}
d3.svg.line = function() {
return d3_svg_line(d3_identity);
};
var d3_svg_lineInterpolators = d3.map({
linear: d3_svg_lineLinear,
"linear-closed": d3_svg_lineLinearClosed,
step: d3_svg_lineStep,
"step-before": d3_svg_lineStepBefore,
"step-after": d3_svg_lineStepAfter,
basis: d3_svg_lineBasis,
"basis-open": d3_svg_lineBasisOpen,
"basis-closed": d3_svg_lineBasisClosed,
bundle: d3_svg_lineBundle,
cardinal: d3_svg_lineCardinal,
"cardinal-open": d3_svg_lineCardinalOpen,
"cardinal-closed": d3_svg_lineCardinalClosed,
monotone: d3_svg_lineMonotone
});
d3_svg_lineInterpolators.forEach(function(key, value) {
value.key = key;
value.closed = /-closed$/.test(key);
});
function d3_svg_lineLinear(points) {
return points.join("L");
}
function d3_svg_lineLinearClosed(points) {
return d3_svg_lineLinear(points) + "Z";
}
function d3_svg_lineStep(points) {
var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ];
while (++i < n) path.push("H", (p[0] + (p = points[i])[0]) / 2, "V", p[1]);
if (n > 1) path.push("H", p[0]);
return path.join("");
}
function d3_svg_lineStepBefore(points) {
var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ];
while (++i < n) path.push("V", (p = points[i])[1], "H", p[0]);
return path.join("");
}
function d3_svg_lineStepAfter(points) {
var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ];
while (++i < n) path.push("H", (p = points[i])[0], "V", p[1]);
return path.join("");
}
function d3_svg_lineCardinalOpen(points, tension) {
return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, -1), d3_svg_lineCardinalTangents(points, tension));
}
function d3_svg_lineCardinalClosed(points, tension) {
return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite((points.push(points[0]),
points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension));
}
function d3_svg_lineCardinal(points, tension) {
return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineCardinalTangents(points, tension));
}
function d3_svg_lineHermite(points, tangents) {
if (tangents.length < 1 || points.length != tangents.length && points.length != tangents.length + 2) {
return d3_svg_lineLinear(points);
}
var quad = points.length != tangents.length, path = "", p0 = points[0], p = points[1], t0 = tangents[0], t = t0, pi = 1;
if (quad) {
path += "Q" + (p[0] - t0[0] * 2 / 3) + "," + (p[1] - t0[1] * 2 / 3) + "," + p[0] + "," + p[1];
p0 = points[1];
pi = 2;
}
if (tangents.length > 1) {
t = tangents[1];
p = points[pi];
pi++;
path += "C" + (p0[0] + t0[0]) + "," + (p0[1] + t0[1]) + "," + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1];
for (var i = 2; i < tangents.length; i++, pi++) {
p = points[pi];
t = tangents[i];
path += "S" + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1];
}
}
if (quad) {
var lp = points[pi];
path += "Q" + (p[0] + t[0] * 2 / 3) + "," + (p[1] + t[1] * 2 / 3) + "," + lp[0] + "," + lp[1];
}
return path;
}
function d3_svg_lineCardinalTangents(points, tension) {
var tangents = [], a = (1 - tension) / 2, p0, p1 = points[0], p2 = points[1], i = 1, n = points.length;
while (++i < n) {
p0 = p1;
p1 = p2;
p2 = points[i];
tangents.push([ a * (p2[0] - p0[0]), a * (p2[1] - p0[1]) ]);
}
return tangents;
}
function d3_svg_lineBasis(points) {
if (points.length < 3) return d3_svg_lineLinear(points);
var i = 1, n = points.length, pi = points[0], x0 = pi[0], y0 = pi[1], px = [ x0, x0, x0, (pi = points[1])[0] ], py = [ y0, y0, y0, pi[1] ], path = [ x0, ",", y0, "L", d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ];
points.push(points[n - 1]);
while (++i <= n) {
pi = points[i];
px.shift();
px.push(pi[0]);
py.shift();
py.push(pi[1]);
d3_svg_lineBasisBezier(path, px, py);
}
points.pop();
path.push("L", pi);
return path.join("");
}
function d3_svg_lineBasisOpen(points) {
if (points.length < 4) return d3_svg_lineLinear(points);
var path = [], i = -1, n = points.length, pi, px = [ 0 ], py = [ 0 ];
while (++i < 3) {
pi = points[i];
px.push(pi[0]);
py.push(pi[1]);
}
path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + "," + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py));
--i;
while (++i < n) {
pi = points[i];
px.shift();
px.push(pi[0]);
py.shift();
py.push(pi[1]);
d3_svg_lineBasisBezier(path, px, py);
}
return path.join("");
}
function d3_svg_lineBasisClosed(points) {
var path, i = -1, n = points.length, m = n + 4, pi, px = [], py = [];
while (++i < 4) {
pi = points[i % n];
px.push(pi[0]);
py.push(pi[1]);
}
path = [ d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ];
--i;
while (++i < m) {
pi = points[i % n];
px.shift();
px.push(pi[0]);
py.shift();
py.push(pi[1]);
d3_svg_lineBasisBezier(path, px, py);
}
return path.join("");
}
function d3_svg_lineBundle(points, tension) {
var n = points.length - 1;
if (n) {
var x0 = points[0][0], y0 = points[0][1], dx = points[n][0] - x0, dy = points[n][1] - y0, i = -1, p, t;
while (++i <= n) {
p = points[i];
t = i / n;
p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx);
p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy);
}
}
return d3_svg_lineBasis(points);
}
function d3_svg_lineDot4(a, b) {
return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];
}
var d3_svg_lineBasisBezier1 = [ 0, 2 / 3, 1 / 3, 0 ], d3_svg_lineBasisBezier2 = [ 0, 1 / 3, 2 / 3, 0 ], d3_svg_lineBasisBezier3 = [ 0, 1 / 6, 2 / 3, 1 / 6 ];
function d3_svg_lineBasisBezier(path, x, y) {
path.push("C", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y));
}
function d3_svg_lineSlope(p0, p1) {
return (p1[1] - p0[1]) / (p1[0] - p0[0]);
}
function d3_svg_lineFiniteDifferences(points) {
var i = 0, j = points.length - 1, m = [], p0 = points[0], p1 = points[1], d = m[0] = d3_svg_lineSlope(p0, p1);
while (++i < j) {
m[i] = (d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]))) / 2;
}
m[i] = d;
return m;
}
function d3_svg_lineMonotoneTangents(points) {
var tangents = [], d, a, b, s, m = d3_svg_lineFiniteDifferences(points), i = -1, j = points.length - 1;
while (++i < j) {
d = d3_svg_lineSlope(points[i], points[i + 1]);
if (abs(d) < ε) {
m[i] = m[i + 1] = 0;
} else {
a = m[i] / d;
b = m[i + 1] / d;
s = a * a + b * b;
if (s > 9) {
s = d * 3 / Math.sqrt(s);
m[i] = s * a;
m[i + 1] = s * b;
}
}
}
i = -1;
while (++i <= j) {
s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i]));
tangents.push([ s || 0, m[i] * s || 0 ]);
}
return tangents;
}
function d3_svg_lineMonotone(points) {
return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points));
}
d3.svg.line.radial = function() {
var line = d3_svg_line(d3_svg_lineRadial);
line.radius = line.x, delete line.x;
line.angle = line.y, delete line.y;
return line;
};
function d3_svg_lineRadial(points) {
var point, i = -1, n = points.length, r, a;
while (++i < n) {
point = points[i];
r = point[0];
a = point[1] - halfπ;
point[0] = r * Math.cos(a);
point[1] = r * Math.sin(a);
}
return points;
}
function d3_svg_area(projection) {
var x0 = d3_geom_pointX, x1 = d3_geom_pointX, y0 = 0, y1 = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, interpolateReverse = interpolate, L = "L", tension = .7;
function area(data) {
var segments = [], points0 = [], points1 = [], i = -1, n = data.length, d, fx0 = d3_functor(x0), fy0 = d3_functor(y0), fx1 = x0 === x1 ? function() {
return x;
} : d3_functor(x1), fy1 = y0 === y1 ? function() {
return y;
} : d3_functor(y1), x, y;
function segment() {
segments.push("M", interpolate(projection(points1), tension), L, interpolateReverse(projection(points0.reverse()), tension), "Z");
}
while (++i < n) {
if (defined.call(this, d = data[i], i)) {
points0.push([ x = +fx0.call(this, d, i), y = +fy0.call(this, d, i) ]);
points1.push([ +fx1.call(this, d, i), +fy1.call(this, d, i) ]);
} else if (points0.length) {
segment();
points0 = [];
points1 = [];
}
}
if (points0.length) segment();
return segments.length ? segments.join("") : null;
}
area.x = function(_) {
if (!arguments.length) return x1;
x0 = x1 = _;
return area;
};
area.x0 = function(_) {
if (!arguments.length) return x0;
x0 = _;
return area;
};
area.x1 = function(_) {
if (!arguments.length) return x1;
x1 = _;
return area;
};
area.y = function(_) {
if (!arguments.length) return y1;
y0 = y1 = _;
return area;
};
area.y0 = function(_) {
if (!arguments.length) return y0;
y0 = _;
return area;
};
area.y1 = function(_) {
if (!arguments.length) return y1;
y1 = _;
return area;
};
area.defined = function(_) {
if (!arguments.length) return defined;
defined = _;
return area;
};
area.interpolate = function(_) {
if (!arguments.length) return interpolateKey;
if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;
interpolateReverse = interpolate.reverse || interpolate;
L = interpolate.closed ? "M" : "L";
return area;
};
area.tension = function(_) {
if (!arguments.length) return tension;
tension = _;
return area;
};
return area;
}
d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter;
d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore;
d3.svg.area = function() {
return d3_svg_area(d3_identity);
};
d3.svg.area.radial = function() {
var area = d3_svg_area(d3_svg_lineRadial);
area.radius = area.x, delete area.x;
area.innerRadius = area.x0, delete area.x0;
area.outerRadius = area.x1, delete area.x1;
area.angle = area.y, delete area.y;
area.startAngle = area.y0, delete area.y0;
area.endAngle = area.y1, delete area.y1;
return area;
};
d3.svg.chord = function() {
var source = d3_source, target = d3_target, radius = d3_svg_chordRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;
function chord(d, i) {
var s = subgroup(this, source, d, i), t = subgroup(this, target, d, i);
return "M" + s.p0 + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) ? curve(s.r, s.p1, s.r, s.p0) : curve(s.r, s.p1, t.r, t.p0) + arc(t.r, t.p1, t.a1 - t.a0) + curve(t.r, t.p1, s.r, s.p0)) + "Z";
}
function subgroup(self, f, d, i) {
var subgroup = f.call(self, d, i), r = radius.call(self, subgroup, i), a0 = startAngle.call(self, subgroup, i) - halfπ, a1 = endAngle.call(self, subgroup, i) - halfπ;
return {
r: r,
a0: a0,
a1: a1,
p0: [ r * Math.cos(a0), r * Math.sin(a0) ],
p1: [ r * Math.cos(a1), r * Math.sin(a1) ]
};
}
function equals(a, b) {
return a.a0 == b.a0 && a.a1 == b.a1;
}
function arc(r, p, a) {
return "A" + r + "," + r + " 0 " + +(a > π) + ",1 " + p;
}
function curve(r0, p0, r1, p1) {
return "Q 0,0 " + p1;
}
chord.radius = function(v) {
if (!arguments.length) return radius;
radius = d3_functor(v);
return chord;
};
chord.source = function(v) {
if (!arguments.length) return source;
source = d3_functor(v);
return chord;
};
chord.target = function(v) {
if (!arguments.length) return target;
target = d3_functor(v);
return chord;
};
chord.startAngle = function(v) {
if (!arguments.length) return startAngle;
startAngle = d3_functor(v);
return chord;
};
chord.endAngle = function(v) {
if (!arguments.length) return endAngle;
endAngle = d3_functor(v);
return chord;
};
return chord;
};
function d3_svg_chordRadius(d) {
return d.radius;
}
d3.svg.diagonal = function() {
var source = d3_source, target = d3_target, projection = d3_svg_diagonalProjection;
function diagonal(d, i) {
var p0 = source.call(this, d, i), p3 = target.call(this, d, i), m = (p0.y + p3.y) / 2, p = [ p0, {
x: p0.x,
y: m
}, {
x: p3.x,
y: m
}, p3 ];
p = p.map(projection);
return "M" + p[0] + "C" + p[1] + " " + p[2] + " " + p[3];
}
diagonal.source = function(x) {
if (!arguments.length) return source;
source = d3_functor(x);
return diagonal;
};
diagonal.target = function(x) {
if (!arguments.length) return target;
target = d3_functor(x);
return diagonal;
};
diagonal.projection = function(x) {
if (!arguments.length) return projection;
projection = x;
return diagonal;
};
return diagonal;
};
function d3_svg_diagonalProjection(d) {
return [ d.x, d.y ];
}
d3.svg.diagonal.radial = function() {
var diagonal = d3.svg.diagonal(), projection = d3_svg_diagonalProjection, projection_ = diagonal.projection;
diagonal.projection = function(x) {
return arguments.length ? projection_(d3_svg_diagonalRadialProjection(projection = x)) : projection;
};
return diagonal;
};
function d3_svg_diagonalRadialProjection(projection) {
return function() {
var d = projection.apply(this, arguments), r = d[0], a = d[1] - halfπ;
return [ r * Math.cos(a), r * Math.sin(a) ];
};
}
d3.svg.symbol = function() {
var type = d3_svg_symbolType, size = d3_svg_symbolSize;
function symbol(d, i) {
return (d3_svg_symbols.get(type.call(this, d, i)) || d3_svg_symbolCircle)(size.call(this, d, i));
}
symbol.type = function(x) {
if (!arguments.length) return type;
type = d3_functor(x);
return symbol;
};
symbol.size = function(x) {
if (!arguments.length) return size;
size = d3_functor(x);
return symbol;
};
return symbol;
};
function d3_svg_symbolSize() {
return 64;
}
function d3_svg_symbolType() {
return "circle";
}
function d3_svg_symbolCircle(size) {
var r = Math.sqrt(size / π);
return "M0," + r + "A" + r + "," + r + " 0 1,1 0," + -r + "A" + r + "," + r + " 0 1,1 0," + r + "Z";
}
var d3_svg_symbols = d3.map({
circle: d3_svg_symbolCircle,
cross: function(size) {
var r = Math.sqrt(size / 5) / 2;
return "M" + -3 * r + "," + -r + "H" + -r + "V" + -3 * r + "H" + r + "V" + -r + "H" + 3 * r + "V" + r + "H" + r + "V" + 3 * r + "H" + -r + "V" + r + "H" + -3 * r + "Z";
},
diamond: function(size) {
var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), rx = ry * d3_svg_symbolTan30;
return "M0," + -ry + "L" + rx + ",0" + " 0," + ry + " " + -rx + ",0" + "Z";
},
square: function(size) {
var r = Math.sqrt(size) / 2;
return "M" + -r + "," + -r + "L" + r + "," + -r + " " + r + "," + r + " " + -r + "," + r + "Z";
},
"triangle-down": function(size) {
var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;
return "M0," + ry + "L" + rx + "," + -ry + " " + -rx + "," + -ry + "Z";
},
"triangle-up": function(size) {
var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;
return "M0," + -ry + "L" + rx + "," + ry + " " + -rx + "," + ry + "Z";
}
});
d3.svg.symbolTypes = d3_svg_symbols.keys();
var d3_svg_symbolSqrt3 = Math.sqrt(3), d3_svg_symbolTan30 = Math.tan(30 * d3_radians);
d3_selectionPrototype.transition = function(name) {
var id = d3_transitionInheritId || ++d3_transitionId, ns = d3_transitionNamespace(name), subgroups = [], subgroup, node, transition = d3_transitionInherit || {
time: Date.now(),
ease: d3_ease_cubicInOut,
delay: 0,
duration: 250
};
for (var j = -1, m = this.length; ++j < m; ) {
subgroups.push(subgroup = []);
for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
if (node = group[i]) d3_transitionNode(node, i, ns, id, transition);
subgroup.push(node);
}
}
return d3_transition(subgroups, ns, id);
};
d3_selectionPrototype.interrupt = function(name) {
return this.each(name == null ? d3_selection_interrupt : d3_selection_interruptNS(d3_transitionNamespace(name)));
};
var d3_selection_interrupt = d3_selection_interruptNS(d3_transitionNamespace());
function d3_selection_interruptNS(ns) {
return function() {
var lock, active;
if ((lock = this[ns]) && (active = lock[lock.active])) {
if (--lock.count) delete lock[lock.active]; else delete this[ns];
lock.active += .5;
active.event && active.event.interrupt.call(this, this.__data__, active.index);
}
};
}
function d3_transition(groups, ns, id) {
d3_subclass(groups, d3_transitionPrototype);
groups.namespace = ns;
groups.id = id;
return groups;
}
var d3_transitionPrototype = [], d3_transitionId = 0, d3_transitionInheritId, d3_transitionInherit;
d3_transitionPrototype.call = d3_selectionPrototype.call;
d3_transitionPrototype.empty = d3_selectionPrototype.empty;
d3_transitionPrototype.node = d3_selectionPrototype.node;
d3_transitionPrototype.size = d3_selectionPrototype.size;
d3.transition = function(selection, name) {
return selection && selection.transition ? d3_transitionInheritId ? selection.transition(name) : selection : d3.selection().transition(selection);
};
d3.transition.prototype = d3_transitionPrototype;
d3_transitionPrototype.select = function(selector) {
var id = this.id, ns = this.namespace, subgroups = [], subgroup, subnode, node;
selector = d3_selection_selector(selector);
for (var j = -1, m = this.length; ++j < m; ) {
subgroups.push(subgroup = []);
for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
if ((node = group[i]) && (subnode = selector.call(node, node.__data__, i, j))) {
if ("__data__" in node) subnode.__data__ = node.__data__;
d3_transitionNode(subnode, i, ns, id, node[ns][id]);
subgroup.push(subnode);
} else {
subgroup.push(null);
}
}
}
return d3_transition(subgroups, ns, id);
};
d3_transitionPrototype.selectAll = function(selector) {
var id = this.id, ns = this.namespace, subgroups = [], subgroup, subnodes, node, subnode, transition;
selector = d3_selection_selectorAll(selector);
for (var j = -1, m = this.length; ++j < m; ) {
for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
if (node = group[i]) {
transition = node[ns][id];
subnodes = selector.call(node, node.__data__, i, j);
subgroups.push(subgroup = []);
for (var k = -1, o = subnodes.length; ++k < o; ) {
if (subnode = subnodes[k]) d3_transitionNode(subnode, k, ns, id, transition);
subgroup.push(subnode);
}
}
}
}
return d3_transition(subgroups, ns, id);
};
d3_transitionPrototype.filter = function(filter) {
var subgroups = [], subgroup, group, node;
if (typeof filter !== "function") filter = d3_selection_filter(filter);
for (var j = 0, m = this.length; j < m; j++) {
subgroups.push(subgroup = []);
for (var group = this[j], i = 0, n = group.length; i < n; i++) {
if ((node = group[i]) && filter.call(node, node.__data__, i, j)) {
subgroup.push(node);
}
}
}
return d3_transition(subgroups, this.namespace, this.id);
};
d3_transitionPrototype.tween = function(name, tween) {
var id = this.id, ns = this.namespace;
if (arguments.length < 2) return this.node()[ns][id].tween.get(name);
return d3_selection_each(this, tween == null ? function(node) {
node[ns][id].tween.remove(name);
} : function(node) {
node[ns][id].tween.set(name, tween);
});
};
function d3_transition_tween(groups, name, value, tween) {
var id = groups.id, ns = groups.namespace;
return d3_selection_each(groups, typeof value === "function" ? function(node, i, j) {
node[ns][id].tween.set(name, tween(value.call(node, node.__data__, i, j)));
} : (value = tween(value), function(node) {
node[ns][id].tween.set(name, value);
}));
}
d3_transitionPrototype.attr = function(nameNS, value) {
if (arguments.length < 2) {
for (value in nameNS) this.attr(value, nameNS[value]);
return this;
}
var interpolate = nameNS == "transform" ? d3_interpolateTransform : d3_interpolate, name = d3.ns.qualify(nameNS);
function attrNull() {
this.removeAttribute(name);
}
function attrNullNS() {
this.removeAttributeNS(name.space, name.local);
}
function attrTween(b) {
return b == null ? attrNull : (b += "", function() {
var a = this.getAttribute(name), i;
return a !== b && (i = interpolate(a, b), function(t) {
this.setAttribute(name, i(t));
});
});
}
function attrTweenNS(b) {
return b == null ? attrNullNS : (b += "", function() {
var a = this.getAttributeNS(name.space, name.local), i;
return a !== b && (i = interpolate(a, b), function(t) {
this.setAttributeNS(name.space, name.local, i(t));
});
});
}
return d3_transition_tween(this, "attr." + nameNS, value, name.local ? attrTweenNS : attrTween);
};
d3_transitionPrototype.attrTween = function(nameNS, tween) {
var name = d3.ns.qualify(nameNS);
function attrTween(d, i) {
var f = tween.call(this, d, i, this.getAttribute(name));
return f && function(t) {
this.setAttribute(name, f(t));
};
}
function attrTweenNS(d, i) {
var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local));
return f && function(t) {
this.setAttributeNS(name.space, name.local, f(t));
};
}
return this.tween("attr." + nameNS, name.local ? attrTweenNS : attrTween);
};
d3_transitionPrototype.style = function(name, value, priority) {
var n = arguments.length;
if (n < 3) {
if (typeof name !== "string") {
if (n < 2) value = "";
for (priority in name) this.style(priority, name[priority], value);
return this;
}
priority = "";
}
function styleNull() {
this.style.removeProperty(name);
}
function styleString(b) {
return b == null ? styleNull : (b += "", function() {
var a = d3_window(this).getComputedStyle(this, null).getPropertyValue(name), i;
return a !== b && (i = d3_interpolate(a, b), function(t) {
this.style.setProperty(name, i(t), priority);
});
});
}
return d3_transition_tween(this, "style." + name, value, styleString);
};
d3_transitionPrototype.styleTween = function(name, tween, priority) {
if (arguments.length < 3) priority = "";
function styleTween(d, i) {
var f = tween.call(this, d, i, d3_window(this).getComputedStyle(this, null).getPropertyValue(name));
return f && function(t) {
this.style.setProperty(name, f(t), priority);
};
}
return this.tween("style." + name, styleTween);
};
d3_transitionPrototype.text = function(value) {
return d3_transition_tween(this, "text", value, d3_transition_text);
};
function d3_transition_text(b) {
if (b == null) b = "";
return function() {
this.textContent = b;
};
}
d3_transitionPrototype.remove = function() {
var ns = this.namespace;
return this.each("end.transition", function() {
var p;
if (this[ns].count < 2 && (p = this.parentNode)) p.removeChild(this);
});
};
d3_transitionPrototype.ease = function(value) {
var id = this.id, ns = this.namespace;
if (arguments.length < 1) return this.node()[ns][id].ease;
if (typeof value !== "function") value = d3.ease.apply(d3, arguments);
return d3_selection_each(this, function(node) {
node[ns][id].ease = value;
});
};
d3_transitionPrototype.delay = function(value) {
var id = this.id, ns = this.namespace;
if (arguments.length < 1) return this.node()[ns][id].delay;
return d3_selection_each(this, typeof value === "function" ? function(node, i, j) {
node[ns][id].delay = +value.call(node, node.__data__, i, j);
} : (value = +value, function(node) {
node[ns][id].delay = value;
}));
};
d3_transitionPrototype.duration = function(value) {
var id = this.id, ns = this.namespace;
if (arguments.length < 1) return this.node()[ns][id].duration;
return d3_selection_each(this, typeof value === "function" ? function(node, i, j) {
node[ns][id].duration = Math.max(1, value.call(node, node.__data__, i, j));
} : (value = Math.max(1, value), function(node) {
node[ns][id].duration = value;
}));
};
d3_transitionPrototype.each = function(type, listener) {
var id = this.id, ns = this.namespace;
if (arguments.length < 2) {
var inherit = d3_transitionInherit, inheritId = d3_transitionInheritId;
try {
d3_transitionInheritId = id;
d3_selection_each(this, function(node, i, j) {
d3_transitionInherit = node[ns][id];
type.call(node, node.__data__, i, j);
});
} finally {
d3_transitionInherit = inherit;
d3_transitionInheritId = inheritId;
}
} else {
d3_selection_each(this, function(node) {
var transition = node[ns][id];
(transition.event || (transition.event = d3.dispatch("start", "end", "interrupt"))).on(type, listener);
});
}
return this;
};
d3_transitionPrototype.transition = function() {
var id0 = this.id, id1 = ++d3_transitionId, ns = this.namespace, subgroups = [], subgroup, group, node, transition;
for (var j = 0, m = this.length; j < m; j++) {
subgroups.push(subgroup = []);
for (var group = this[j], i = 0, n = group.length; i < n; i++) {
if (node = group[i]) {
transition = node[ns][id0];
d3_transitionNode(node, i, ns, id1, {
time: transition.time,
ease: transition.ease,
delay: transition.delay + transition.duration,
duration: transition.duration
});
}
subgroup.push(node);
}
}
return d3_transition(subgroups, ns, id1);
};
function d3_transitionNamespace(name) {
return name == null ? "__transition__" : "__transition_" + name + "__";
}
function d3_transitionNode(node, i, ns, id, inherit) {
var lock = node[ns] || (node[ns] = {
active: 0,
count: 0
}), transition = lock[id];
if (!transition) {
var time = inherit.time;
transition = lock[id] = {
tween: new d3_Map(),
time: time,
delay: inherit.delay,
duration: inherit.duration,
ease: inherit.ease,
index: i
};
inherit = null;
++lock.count;
d3.timer(function(elapsed) {
var delay = transition.delay, duration, ease, timer = d3_timer_active, tweened = [];
timer.t = delay + time;
if (delay <= elapsed) return start(elapsed - delay);
timer.c = start;
function start(elapsed) {
if (lock.active > id) return stop();
var active = lock[lock.active];
if (active) {
--lock.count;
delete lock[lock.active];
active.event && active.event.interrupt.call(node, node.__data__, active.index);
}
lock.active = id;
transition.event && transition.event.start.call(node, node.__data__, i);
transition.tween.forEach(function(key, value) {
if (value = value.call(node, node.__data__, i)) {
tweened.push(value);
}
});
ease = transition.ease;
duration = transition.duration;
d3.timer(function() {
timer.c = tick(elapsed || 1) ? d3_true : tick;
return 1;
}, 0, time);
}
function tick(elapsed) {
if (lock.active !== id) return 1;
var t = elapsed / duration, e = ease(t), n = tweened.length;
while (n > 0) {
tweened[--n].call(node, e);
}
if (t >= 1) {
transition.event && transition.event.end.call(node, node.__data__, i);
return stop();
}
}
function stop() {
if (--lock.count) delete lock[id]; else delete node[ns];
return 1;
}
}, 0, time);
}
}
d3.svg.axis = function() {
var scale = d3.scale.linear(), orient = d3_svg_axisDefaultOrient, innerTickSize = 6, outerTickSize = 6, tickPadding = 3, tickArguments_ = [ 10 ], tickValues = null, tickFormat_;
function axis(g) {
g.each(function() {
var g = d3.select(this);
var scale0 = this.__chart__ || scale, scale1 = this.__chart__ = scale.copy();
var ticks = tickValues == null ? scale1.ticks ? scale1.ticks.apply(scale1, tickArguments_) : scale1.domain() : tickValues, tickFormat = tickFormat_ == null ? scale1.tickFormat ? scale1.tickFormat.apply(scale1, tickArguments_) : d3_identity : tickFormat_, tick = g.selectAll(".tick").data(ticks, scale1), tickEnter = tick.enter().insert("g", ".domain").attr("class", "tick").style("opacity", ε), tickExit = d3.transition(tick.exit()).style("opacity", ε).remove(), tickUpdate = d3.transition(tick.order()).style("opacity", 1), tickSpacing = Math.max(innerTickSize, 0) + tickPadding, tickTransform;
var range = d3_scaleRange(scale1), path = g.selectAll(".domain").data([ 0 ]), pathUpdate = (path.enter().append("path").attr("class", "domain"),
d3.transition(path));
tickEnter.append("line");
tickEnter.append("text");
var lineEnter = tickEnter.select("line"), lineUpdate = tickUpdate.select("line"), text = tick.select("text").text(tickFormat), textEnter = tickEnter.select("text"), textUpdate = tickUpdate.select("text"), sign = orient === "top" || orient === "left" ? -1 : 1, x1, x2, y1, y2;
if (orient === "bottom" || orient === "top") {
tickTransform = d3_svg_axisX, x1 = "x", y1 = "y", x2 = "x2", y2 = "y2";
text.attr("dy", sign < 0 ? "0em" : ".71em").style("text-anchor", "middle");
pathUpdate.attr("d", "M" + range[0] + "," + sign * outerTickSize + "V0H" + range[1] + "V" + sign * outerTickSize);
} else {
tickTransform = d3_svg_axisY, x1 = "y", y1 = "x", x2 = "y2", y2 = "x2";
text.attr("dy", ".32em").style("text-anchor", sign < 0 ? "end" : "start");
pathUpdate.attr("d", "M" + sign * outerTickSize + "," + range[0] + "H0V" + range[1] + "H" + sign * outerTickSize);
}
lineEnter.attr(y2, sign * innerTickSize);
textEnter.attr(y1, sign * tickSpacing);
lineUpdate.attr(x2, 0).attr(y2, sign * innerTickSize);
textUpdate.attr(x1, 0).attr(y1, sign * tickSpacing);
if (scale1.rangeBand) {
var x = scale1, dx = x.rangeBand() / 2;
scale0 = scale1 = function(d) {
return x(d) + dx;
};
} else if (scale0.rangeBand) {
scale0 = scale1;
} else {
tickExit.call(tickTransform, scale1, scale0);
}
tickEnter.call(tickTransform, scale0, scale1);
tickUpdate.call(tickTransform, scale1, scale1);
});
}
axis.scale = function(x) {
if (!arguments.length) return scale;
scale = x;
return axis;
};
axis.orient = function(x) {
if (!arguments.length) return orient;
orient = x in d3_svg_axisOrients ? x + "" : d3_svg_axisDefaultOrient;
return axis;
};
axis.ticks = function() {
if (!arguments.length) return tickArguments_;
tickArguments_ = arguments;
return axis;
};
axis.tickValues = function(x) {
if (!arguments.length) return tickValues;
tickValues = x;
return axis;
};
axis.tickFormat = function(x) {
if (!arguments.length) return tickFormat_;
tickFormat_ = x;
return axis;
};
axis.tickSize = function(x) {
var n = arguments.length;
if (!n) return innerTickSize;
innerTickSize = +x;
outerTickSize = +arguments[n - 1];
return axis;
};
axis.innerTickSize = function(x) {
if (!arguments.length) return innerTickSize;
innerTickSize = +x;
return axis;
};
axis.outerTickSize = function(x) {
if (!arguments.length) return outerTickSize;
outerTickSize = +x;
return axis;
};
axis.tickPadding = function(x) {
if (!arguments.length) return tickPadding;
tickPadding = +x;
return axis;
};
axis.tickSubdivide = function() {
return arguments.length && axis;
};
return axis;
};
var d3_svg_axisDefaultOrient = "bottom", d3_svg_axisOrients = {
top: 1,
right: 1,
bottom: 1,
left: 1
};
function d3_svg_axisX(selection, x0, x1) {
selection.attr("transform", function(d) {
var v0 = x0(d);
return "translate(" + (isFinite(v0) ? v0 : x1(d)) + ",0)";
});
}
function d3_svg_axisY(selection, y0, y1) {
selection.attr("transform", function(d) {
var v0 = y0(d);
return "translate(0," + (isFinite(v0) ? v0 : y1(d)) + ")";
});
}
d3.svg.brush = function() {
var event = d3_eventDispatch(brush, "brushstart", "brush", "brushend"), x = null, y = null, xExtent = [ 0, 0 ], yExtent = [ 0, 0 ], xExtentDomain, yExtentDomain, xClamp = true, yClamp = true, resizes = d3_svg_brushResizes[0];
function brush(g) {
g.each(function() {
var g = d3.select(this).style("pointer-events", "all").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)").on("mousedown.brush", brushstart).on("touchstart.brush", brushstart);
var background = g.selectAll(".background").data([ 0 ]);
background.enter().append("rect").attr("class", "background").style("visibility", "hidden").style("cursor", "crosshair");
g.selectAll(".extent").data([ 0 ]).enter().append("rect").attr("class", "extent").style("cursor", "move");
var resize = g.selectAll(".resize").data(resizes, d3_identity);
resize.exit().remove();
resize.enter().append("g").attr("class", function(d) {
return "resize " + d;
}).style("cursor", function(d) {
return d3_svg_brushCursor[d];
}).append("rect").attr("x", function(d) {
return /[ew]$/.test(d) ? -3 : null;
}).attr("y", function(d) {
return /^[ns]/.test(d) ? -3 : null;
}).attr("width", 6).attr("height", 6).style("visibility", "hidden");
resize.style("display", brush.empty() ? "none" : null);
var gUpdate = d3.transition(g), backgroundUpdate = d3.transition(background), range;
if (x) {
range = d3_scaleRange(x);
backgroundUpdate.attr("x", range[0]).attr("width", range[1] - range[0]);
redrawX(gUpdate);
}
if (y) {
range = d3_scaleRange(y);
backgroundUpdate.attr("y", range[0]).attr("height", range[1] - range[0]);
redrawY(gUpdate);
}
redraw(gUpdate);
});
}
brush.event = function(g) {
g.each(function() {
var event_ = event.of(this, arguments), extent1 = {
x: xExtent,
y: yExtent,
i: xExtentDomain,
j: yExtentDomain
}, extent0 = this.__chart__ || extent1;
this.__chart__ = extent1;
if (d3_transitionInheritId) {
d3.select(this).transition().each("start.brush", function() {
xExtentDomain = extent0.i;
yExtentDomain = extent0.j;
xExtent = extent0.x;
yExtent = extent0.y;
event_({
type: "brushstart"
});
}).tween("brush:brush", function() {
var xi = d3_interpolateArray(xExtent, extent1.x), yi = d3_interpolateArray(yExtent, extent1.y);
xExtentDomain = yExtentDomain = null;
return function(t) {
xExtent = extent1.x = xi(t);
yExtent = extent1.y = yi(t);
event_({
type: "brush",
mode: "resize"
});
};
}).each("end.brush", function() {
xExtentDomain = extent1.i;
yExtentDomain = extent1.j;
event_({
type: "brush",
mode: "resize"
});
event_({
type: "brushend"
});
});
} else {
event_({
type: "brushstart"
});
event_({
type: "brush",
mode: "resize"
});
event_({
type: "brushend"
});
}
});
};
function redraw(g) {
g.selectAll(".resize").attr("transform", function(d) {
return "translate(" + xExtent[+/e$/.test(d)] + "," + yExtent[+/^s/.test(d)] + ")";
});
}
function redrawX(g) {
g.select(".extent").attr("x", xExtent[0]);
g.selectAll(".extent,.n>rect,.s>rect").attr("width", xExtent[1] - xExtent[0]);
}
function redrawY(g) {
g.select(".extent").attr("y", yExtent[0]);
g.selectAll(".extent,.e>rect,.w>rect").attr("height", yExtent[1] - yExtent[0]);
}
function brushstart() {
var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed("extent"), dragRestore = d3_event_dragSuppress(target), center, origin = d3.mouse(target), offset;
var w = d3.select(d3_window(target)).on("keydown.brush", keydown).on("keyup.brush", keyup);
if (d3.event.changedTouches) {
w.on("touchmove.brush", brushmove).on("touchend.brush", brushend);
} else {
w.on("mousemove.brush", brushmove).on("mouseup.brush", brushend);
}
g.interrupt().selectAll("*").interrupt();
if (dragging) {
origin[0] = xExtent[0] - origin[0];
origin[1] = yExtent[0] - origin[1];
} else if (resizing) {
var ex = +/w$/.test(resizing), ey = +/^n/.test(resizing);
offset = [ xExtent[1 - ex] - origin[0], yExtent[1 - ey] - origin[1] ];
origin[0] = xExtent[ex];
origin[1] = yExtent[ey];
} else if (d3.event.altKey) center = origin.slice();
g.style("pointer-events", "none").selectAll(".resize").style("display", null);
d3.select("body").style("cursor", eventTarget.style("cursor"));
event_({
type: "brushstart"
});
brushmove();
function keydown() {
if (d3.event.keyCode == 32) {
if (!dragging) {
center = null;
origin[0] -= xExtent[1];
origin[1] -= yExtent[1];
dragging = 2;
}
d3_eventPreventDefault();
}
}
function keyup() {
if (d3.event.keyCode == 32 && dragging == 2) {
origin[0] += xExtent[1];
origin[1] += yExtent[1];
dragging = 0;
d3_eventPreventDefault();
}
}
function brushmove() {
var point = d3.mouse(target), moved = false;
if (offset) {
point[0] += offset[0];
point[1] += offset[1];
}
if (!dragging) {
if (d3.event.altKey) {
if (!center) center = [ (xExtent[0] + xExtent[1]) / 2, (yExtent[0] + yExtent[1]) / 2 ];
origin[0] = xExtent[+(point[0] < center[0])];
origin[1] = yExtent[+(point[1] < center[1])];
} else center = null;
}
if (resizingX && move1(point, x, 0)) {
redrawX(g);
moved = true;
}
if (resizingY && move1(point, y, 1)) {
redrawY(g);
moved = true;
}
if (moved) {
redraw(g);
event_({
type: "brush",
mode: dragging ? "move" : "resize"
});
}
}
function move1(point, scale, i) {
var range = d3_scaleRange(scale), r0 = range[0], r1 = range[1], position = origin[i], extent = i ? yExtent : xExtent, size = extent[1] - extent[0], min, max;
if (dragging) {
r0 -= position;
r1 -= size + position;
}
min = (i ? yClamp : xClamp) ? Math.max(r0, Math.min(r1, point[i])) : point[i];
if (dragging) {
max = (min += position) + size;
} else {
if (center) position = Math.max(r0, Math.min(r1, 2 * center[i] - min));
if (position < min) {
max = min;
min = position;
} else {
max = position;
}
}
if (extent[0] != min || extent[1] != max) {
if (i) yExtentDomain = null; else xExtentDomain = null;
extent[0] = min;
extent[1] = max;
return true;
}
}
function brushend() {
brushmove();
g.style("pointer-events", "all").selectAll(".resize").style("display", brush.empty() ? "none" : null);
d3.select("body").style("cursor", null);
w.on("mousemove.brush", null).on("mouseup.brush", null).on("touchmove.brush", null).on("touchend.brush", null).on("keydown.brush", null).on("keyup.brush", null);
dragRestore();
event_({
type: "brushend"
});
}
}
brush.x = function(z) {
if (!arguments.length) return x;
x = z;
resizes = d3_svg_brushResizes[!x << 1 | !y];
return brush;
};
brush.y = function(z) {
if (!arguments.length) return y;
y = z;
resizes = d3_svg_brushResizes[!x << 1 | !y];
return brush;
};
brush.clamp = function(z) {
if (!arguments.length) return x && y ? [ xClamp, yClamp ] : x ? xClamp : y ? yClamp : null;
if (x && y) xClamp = !!z[0], yClamp = !!z[1]; else if (x) xClamp = !!z; else if (y) yClamp = !!z;
return brush;
};
brush.extent = function(z) {
var x0, x1, y0, y1, t;
if (!arguments.length) {
if (x) {
if (xExtentDomain) {
x0 = xExtentDomain[0], x1 = xExtentDomain[1];
} else {
x0 = xExtent[0], x1 = xExtent[1];
if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1);
if (x1 < x0) t = x0, x0 = x1, x1 = t;
}
}
if (y) {
if (yExtentDomain) {
y0 = yExtentDomain[0], y1 = yExtentDomain[1];
} else {
y0 = yExtent[0], y1 = yExtent[1];
if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1);
if (y1 < y0) t = y0, y0 = y1, y1 = t;
}
}
return x && y ? [ [ x0, y0 ], [ x1, y1 ] ] : x ? [ x0, x1 ] : y && [ y0, y1 ];
}
if (x) {
x0 = z[0], x1 = z[1];
if (y) x0 = x0[0], x1 = x1[0];
xExtentDomain = [ x0, x1 ];
if (x.invert) x0 = x(x0), x1 = x(x1);
if (x1 < x0) t = x0, x0 = x1, x1 = t;
if (x0 != xExtent[0] || x1 != xExtent[1]) xExtent = [ x0, x1 ];
}
if (y) {
y0 = z[0], y1 = z[1];
if (x) y0 = y0[1], y1 = y1[1];
yExtentDomain = [ y0, y1 ];
if (y.invert) y0 = y(y0), y1 = y(y1);
if (y1 < y0) t = y0, y0 = y1, y1 = t;
if (y0 != yExtent[0] || y1 != yExtent[1]) yExtent = [ y0, y1 ];
}
return brush;
};
brush.clear = function() {
if (!brush.empty()) {
xExtent = [ 0, 0 ], yExtent = [ 0, 0 ];
xExtentDomain = yExtentDomain = null;
}
return brush;
};
brush.empty = function() {
return !!x && xExtent[0] == xExtent[1] || !!y && yExtent[0] == yExtent[1];
};
return d3.rebind(brush, event, "on");
};
var d3_svg_brushCursor = {
n: "ns-resize",
e: "ew-resize",
s: "ns-resize",
w: "ew-resize",
nw: "nwse-resize",
ne: "nesw-resize",
se: "nwse-resize",
sw: "nesw-resize"
};
var d3_svg_brushResizes = [ [ "n", "e", "s", "w", "nw", "ne", "se", "sw" ], [ "e", "w" ], [ "n", "s" ], [] ];
var d3_time_format = d3_time.format = d3_locale_enUS.timeFormat;
var d3_time_formatUtc = d3_time_format.utc;
var d3_time_formatIso = d3_time_formatUtc("%Y-%m-%dT%H:%M:%S.%LZ");
d3_time_format.iso = Date.prototype.toISOString && +new Date("2000-01-01T00:00:00.000Z") ? d3_time_formatIsoNative : d3_time_formatIso;
function d3_time_formatIsoNative(date) {
return date.toISOString();
}
d3_time_formatIsoNative.parse = function(string) {
var date = new Date(string);
return isNaN(date) ? null : date;
};
d3_time_formatIsoNative.toString = d3_time_formatIso.toString;
d3_time.second = d3_time_interval(function(date) {
return new d3_date(Math.floor(date / 1e3) * 1e3);
}, function(date, offset) {
date.setTime(date.getTime() + Math.floor(offset) * 1e3);
}, function(date) {
return date.getSeconds();
});
d3_time.seconds = d3_time.second.range;
d3_time.seconds.utc = d3_time.second.utc.range;
d3_time.minute = d3_time_interval(function(date) {
return new d3_date(Math.floor(date / 6e4) * 6e4);
}, function(date, offset) {
date.setTime(date.getTime() + Math.floor(offset) * 6e4);
}, function(date) {
return date.getMinutes();
});
d3_time.minutes = d3_time.minute.range;
d3_time.minutes.utc = d3_time.minute.utc.range;
d3_time.hour = d3_time_interval(function(date) {
var timezone = date.getTimezoneOffset() / 60;
return new d3_date((Math.floor(date / 36e5 - timezone) + timezone) * 36e5);
}, function(date, offset) {
date.setTime(date.getTime() + Math.floor(offset) * 36e5);
}, function(date) {
return date.getHours();
});
d3_time.hours = d3_time.hour.range;
d3_time.hours.utc = d3_time.hour.utc.range;
d3_time.month = d3_time_interval(function(date) {
date = d3_time.day(date);
date.setDate(1);
return date;
}, function(date, offset) {
date.setMonth(date.getMonth() + offset);
}, function(date) {
return date.getMonth();
});
d3_time.months = d3_time.month.range;
d3_time.months.utc = d3_time.month.utc.range;
function d3_time_scale(linear, methods, format) {
function scale(x) {
return linear(x);
}
scale.invert = function(x) {
return d3_time_scaleDate(linear.invert(x));
};
scale.domain = function(x) {
if (!arguments.length) return linear.domain().map(d3_time_scaleDate);
linear.domain(x);
return scale;
};
function tickMethod(extent, count) {
var span = extent[1] - extent[0], target = span / count, i = d3.bisect(d3_time_scaleSteps, target);
return i == d3_time_scaleSteps.length ? [ methods.year, d3_scale_linearTickRange(extent.map(function(d) {
return d / 31536e6;
}), count)[2] ] : !i ? [ d3_time_scaleMilliseconds, d3_scale_linearTickRange(extent, count)[2] ] : methods[target / d3_time_scaleSteps[i - 1] < d3_time_scaleSteps[i] / target ? i - 1 : i];
}
scale.nice = function(interval, skip) {
var domain = scale.domain(), extent = d3_scaleExtent(domain), method = interval == null ? tickMethod(extent, 10) : typeof interval === "number" && tickMethod(extent, interval);
if (method) interval = method[0], skip = method[1];
function skipped(date) {
return !isNaN(date) && !interval.range(date, d3_time_scaleDate(+date + 1), skip).length;
}
return scale.domain(d3_scale_nice(domain, skip > 1 ? {
floor: function(date) {
while (skipped(date = interval.floor(date))) date = d3_time_scaleDate(date - 1);
return date;
},
ceil: function(date) {
while (skipped(date = interval.ceil(date))) date = d3_time_scaleDate(+date + 1);
return date;
}
} : interval));
};
scale.ticks = function(interval, skip) {
var extent = d3_scaleExtent(scale.domain()), method = interval == null ? tickMethod(extent, 10) : typeof interval === "number" ? tickMethod(extent, interval) : !interval.range && [ {
range: interval
}, skip ];
if (method) interval = method[0], skip = method[1];
return interval.range(extent[0], d3_time_scaleDate(+extent[1] + 1), skip < 1 ? 1 : skip);
};
scale.tickFormat = function() {
return format;
};
scale.copy = function() {
return d3_time_scale(linear.copy(), methods, format);
};
return d3_scale_linearRebind(scale, linear);
}
function d3_time_scaleDate(t) {
return new Date(t);
}
var d3_time_scaleSteps = [ 1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6 ];
var d3_time_scaleLocalMethods = [ [ d3_time.second, 1 ], [ d3_time.second, 5 ], [ d3_time.second, 15 ], [ d3_time.second, 30 ], [ d3_time.minute, 1 ], [ d3_time.minute, 5 ], [ d3_time.minute, 15 ], [ d3_time.minute, 30 ], [ d3_time.hour, 1 ], [ d3_time.hour, 3 ], [ d3_time.hour, 6 ], [ d3_time.hour, 12 ], [ d3_time.day, 1 ], [ d3_time.day, 2 ], [ d3_time.week, 1 ], [ d3_time.month, 1 ], [ d3_time.month, 3 ], [ d3_time.year, 1 ] ];
var d3_time_scaleLocalFormat = d3_time_format.multi([ [ ".%L", function(d) {
return d.getMilliseconds();
} ], [ ":%S", function(d) {
return d.getSeconds();
} ], [ "%I:%M", function(d) {
return d.getMinutes();
} ], [ "%I %p", function(d) {
return d.getHours();
} ], [ "%a %d", function(d) {
return d.getDay() && d.getDate() != 1;
} ], [ "%b %d", function(d) {
return d.getDate() != 1;
} ], [ "%B", function(d) {
return d.getMonth();
} ], [ "%Y", d3_true ] ]);
var d3_time_scaleMilliseconds = {
range: function(start, stop, step) {
return d3.range(Math.ceil(start / step) * step, +stop, step).map(d3_time_scaleDate);
},
floor: d3_identity,
ceil: d3_identity
};
d3_time_scaleLocalMethods.year = d3_time.year;
d3_time.scale = function() {
return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat);
};
var d3_time_scaleUtcMethods = d3_time_scaleLocalMethods.map(function(m) {
return [ m[0].utc, m[1] ];
});
var d3_time_scaleUtcFormat = d3_time_formatUtc.multi([ [ ".%L", function(d) {
return d.getUTCMilliseconds();
} ], [ ":%S", function(d) {
return d.getUTCSeconds();
} ], [ "%I:%M", function(d) {
return d.getUTCMinutes();
} ], [ "%I %p", function(d) {
return d.getUTCHours();
} ], [ "%a %d", function(d) {
return d.getUTCDay() && d.getUTCDate() != 1;
} ], [ "%b %d", function(d) {
return d.getUTCDate() != 1;
} ], [ "%B", function(d) {
return d.getUTCMonth();
} ], [ "%Y", d3_true ] ]);
d3_time_scaleUtcMethods.year = d3_time.year.utc;
d3_time.scale.utc = function() {
return d3_time_scale(d3.scale.linear(), d3_time_scaleUtcMethods, d3_time_scaleUtcFormat);
};
d3.text = d3_xhrType(function(request) {
return request.responseText;
});
d3.json = function(url, callback) {
return d3_xhr(url, "application/json", d3_json, callback);
};
function d3_json(request) {
return JSON.parse(request.responseText);
}
d3.html = function(url, callback) {
return d3_xhr(url, "text/html", d3_html, callback);
};
function d3_html(request) {
var range = d3_document.createRange();
range.selectNode(d3_document.body);
return range.createContextualFragment(request.responseText);
}
d3.xml = d3_xhrType(function(request) {
return request.responseXML;
});
if (typeof define === "function" && define.amd) define(d3); else if (typeof module === "object" && module.exports) module.exports = d3;
this.d3 = d3;
}();
},{}],14:[function(require,module,exports){
module.exports = require("./src/api.js");
},{"./src/api.js":15}],15:[function(require,module,exports){
var api = function (who) {
var _methods = function () {
var m = [];
m.add_batch = function (obj) {
m.unshift(obj);
};
m.update = function (method, value) {
for (var i=0; i<m.length; i++) {
for (var p in m[i]) {
if (p === method) {
m[i][p] = value;
return true;
}
}
}
return false;
};
m.add = function (method, value) {
if (m.update (method, value) ) {
} else {
var reg = {};
reg[method] = value;
m.add_batch (reg);
}
};
m.get = function (method) {
for (var i=0; i<m.length; i++) {
for (var p in m[i]) {
if (p === method) {
return m[i][p];
}
}
}
};
return m;
};
var methods = _methods();
var api = function () {};
api.check = function (method, check, msg) {
if (method instanceof Array) {
for (var i=0; i<method.length; i++) {
api.check(method[i], check, msg);
}
return;
}
if (typeof (method) === 'function') {
method.check(check, msg);
} else {
who[method].check(check, msg);
}
return api;
};
api.transform = function (method, cbak) {
if (method instanceof Array) {
for (var i=0; i<method.length; i++) {
api.transform (method[i], cbak);
}
return;
}
if (typeof (method) === 'function') {
method.transform (cbak);
} else {
who[method].transform(cbak);
}
return api;
};
var attach_method = function (method, opts) {
var checks = [];
var transforms = [];
var getter = opts.on_getter || function () {
return methods.get(method);
};
var setter = opts.on_setter || function (x) {
for (var i=0; i<transforms.length; i++) {
x = transforms[i](x);
}
for (var j=0; j<checks.length; j++) {
if (!checks[j].check(x)) {
var msg = checks[j].msg ||
("Value " + x + " doesn't seem to be valid for this method");
throw (msg);
}
}
methods.add(method, x);
};
var new_method = function (new_val) {
if (!arguments.length) {
return getter();
}
setter(new_val);
return who; // Return this?
};
new_method.check = function (cbak, msg) {
if (!arguments.length) {
return checks;
}
checks.push ({check : cbak,
msg : msg});
return this;
};
new_method.transform = function (cbak) {
if (!arguments.length) {
return transforms;
}
transforms.push(cbak);
return this;
};
who[method] = new_method;
};
var getset = function (param, opts) {
if (typeof (param) === 'object') {
methods.add_batch (param);
for (var p in param) {
attach_method (p, opts);
}
} else {
methods.add (param, opts.default_value);
attach_method (param, opts);
}
};
api.getset = function (param, def) {
getset(param, {default_value : def});
return api;
};
api.get = function (param, def) {
var on_setter = function () {
throw ("Method defined only as a getter (you are trying to use it as a setter");
};
getset(param, {default_value : def,
on_setter : on_setter}
);
return api;
};
api.set = function (param, def) {
var on_getter = function () {
throw ("Method defined only as a setter (you are trying to use it as a getter");
};
getset(param, {default_value : def,
on_getter : on_getter}
);
return api;
};
api.method = function (name, cbak) {
if (typeof (name) === 'object') {
for (var p in name) {
who[p] = name[p];
}
} else {
who[name] = cbak;
}
return api;
};
return api;
};
module.exports = exports = api;
},{}],16:[function(require,module,exports){
module.exports = require("./src/newick.js");
},{"./src/newick.js":17}],17:[function(require,module,exports){
/**
* Newick and nhx formats parser in JavaScript.
*
* Copyright (c) Jason Davies 2010 and Miguel Pignatelli
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* Example tree (from http://en.wikipedia.org/wiki/Newick_format):
*
* +--0.1--A
* F-----0.2-----B +-------0.3----C
* +------------------0.5-----E
* +---------0.4------D
*
* Newick format:
* (A:0.1,B:0.2,(C:0.3,D:0.4)E:0.5)F;
*
* Converted to JSON:
* {
* name: "F",
* branchset: [
* {name: "A", length: 0.1},
* {name: "B", length: 0.2},
* {
* name: "E",
* length: 0.5,
* branchset: [
* {name: "C", length: 0.3},
* {name: "D", length: 0.4}
* ]
* }
* ]
* }
*
* Converted to JSON, but with no names or lengths:
* {
* branchset: [
* {}, {}, {
* branchset: [{}, {}]
* }
* ]
* }
*/
module.exports = {
parse_newick : function(s) {
var ancestors = [];
var tree = {};
var tokens = s.split(/\s*(;|\(|\)|,|:)\s*/);
var subtree;
for (var i=0; i<tokens.length; i++) {
var token = tokens[i];
switch (token) {
case '(': // new branchset
subtree = {};
tree.children = [subtree];
ancestors.push(tree);
tree = subtree;
break;
case ',': // another branch
subtree = {};
ancestors[ancestors.length-1].children.push(subtree);
tree = subtree;
break;
case ')': // optional name next
tree = ancestors.pop();
break;
case ':': // optional length next
break;
default:
var x = tokens[i-1];
if (x == ')' || x == '(' || x == ',') {
tree.name = token;
} else if (x == ':') {
tree.branch_length = parseFloat(token);
}
}
}
return tree;
},
parse_nhx : function (s) {
var ancestors = [];
var tree = {};
var subtree;
var tokens = s.split( /\s*(;|\(|\)|\[|\]|,|:|=)\s*/ );
for (var i=0; i<tokens.length; i++) {
var token = tokens[i];
switch (token) {
case '(': // new children
subtree = {};
tree.children = [subtree];
ancestors.push(tree);
tree = subtree;
break;
case ',': // another branch
subtree = {};
ancestors[ancestors.length-1].children.push(subtree);
tree = subtree;
break;
case ')': // optional name next
tree = ancestors.pop();
break;
case ':': // optional length next
break;
default:
var x = tokens[i-1];
if (x == ')' || x == '(' || x == ',') {
tree.name = token;
}
else if (x == ':') {
var test_type = typeof token;
if(!isNaN(token)){
tree.branch_length = parseFloat(token);
}
}
else if (x == '='){
var x2 = tokens[i-2];
switch(x2){
case 'D':
tree.duplication = token;
break;
case 'G':
tree.gene_id = token;
break;
case 'T':
tree.taxon_id = token;
break;
default :
tree[tokens[i-2]] = token;
}
}
else {
var test;
}
}
}
return tree;
}
};
},{}],18:[function(require,module,exports){
module.exports = require("./src/tooltip.js");
},{"./src/tooltip.js":19}],19:[function(require,module,exports){
var apijs = require("tnt.api");
var tooltip = function () {
"use strict";
var drag = d3.behavior.drag();
var tooltip_div;
var conf = {
background_color : "white",
foreground_color : "black",
position : "right",
allow_drag : true,
show_closer : true,
fill : function () { throw "fill is not defined in the base object" },
width : 180,
id : 1
};
var t = function (data, event) {
drag
.origin(function(){
return {x:parseInt(d3.select(this).style("left")),
y:parseInt(d3.select(this).style("top"))
}
})
.on("drag", function() {
if (conf.allow_drag) {
d3.select(this)
.style("left", d3.event.x + "px")
.style("top", d3.event.y + "px")
}
});
// TODO: Why do we need the div element?
// It looks like if we anchor the tooltip in the "body"
// The tooltip is not located in the right place (appears at the bottom)
// See clients/tooltips_test.html for an example
var container = d3.select(this).selectAncestor("div");
if (container === undefined) {
// We require a div element at some point to anchor the tooltip
return
};
tooltip_div = container
.append("div")
.attr("class", "tnt_tooltip")
.classed("tnt_tooltip_active", true) // TODO: Is this needed/used???
.call(drag);
// prev tooltips with the same header
d3.select("#tnt_tooltip_" + conf.id).remove();
if ((d3.event === null) && (event)) {
d3.event = event;
}
var mouse = d3.mouse(container.node());
d3.event = null;
var offset = 0;
if (conf.position === "left") {
offset = conf.width;
}
tooltip_div.attr("id", "tnt_tooltip_" + conf.id);
// We place the tooltip
tooltip_div
.style("left", (mouse[0] - offset) + "px")
.style("top", mouse[1] + "px");
// Close
if (conf.show_closer) {
tooltip_div.append("span")
.style("position", "absolute")
.style("right", "-10px")
.style("top", "-10px")
.append("img")
.attr("src", tooltip.images.close)
.attr("width", "20px")
.attr("height", "20px")
.on("click", function () {
t.close();
});
}
conf.fill.call(tooltip_div, data);
// return this here?
return t;
};
var api = apijs(t)
.getset(conf);
api.check('position', function (val) {
return (val === 'left') || (val === 'right');
}, "Only 'left' or 'right' values are allowed for position");
api.method('close', function () {
tooltip_div.remove();
});
return t;
};
tooltip.table = function () {
// table tooltips are based on general tooltips
var t = tooltip();
var width = 180;
t.fill (function (obj) {
var tooltip_div = this;
var obj_info_table = tooltip_div
.append("table")
.attr("class", "tnt_zmenu")
.attr("border", "solid")
.style("width", t.width() + "px");
// Tooltip header
obj_info_table
.append("tr")
.attr("class", "tnt_zmenu_header")
.append("th")
.attr("colspan", 2)
.text(obj.header);
// Tooltip rows
var table_rows = obj_info_table.selectAll(".tnt_zmenu_row")
.data(obj.rows)
.enter()
.append("tr")
.attr("class", "tnt_zmenu_row");
table_rows
.append("th")
.html(function(d,i) {return obj.rows[i].label});
table_rows
.append("td")
.html(function(d,i) {return obj.rows[i].value})
.each(function (d) {
if (d.link === undefined) {
return
}
d3.select(this)
.classed("link", 1)
.on('click', function (d) {
d.link(d.obj);
t.close.call(this);
});
});
});
return t;
};
tooltip.plain = function () {
// plain tooltips are based on general tooltips
var t = tooltip();
t.fill (function (obj) {
var tooltip_div = this;
var obj_info_table = tooltip_div
.append("table")
.attr("class", "tnt_zmenu")
.attr("border", "solid")
.style("width", t.width() + "px");
obj_info_table
.append("tr")
.attr("class", "tnt_zmenu_header")
.append("th")
.text(obj.header);
obj_info_table
.append("tr")
.attr("class", "tnt_zmenu_row")
.append("td")
.style("text-align", "center")
.html(obj.body)
});
return t;
}
// TODO: This shouldn't be exposed in the API. It would be better to have as a local variable
// or alternatively have the images somewhere else (although the number of hardcoded images should be left at a minimum)
tooltip.images = {};
tooltip.images.close = 'data:image/png;base64,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';
module.exports = tooltip;
},{"tnt.api":14}],20:[function(require,module,exports){
module.exports = require("./src/node.js");
},{"./src/node.js":21}],21:[function(require,module,exports){
var apijs = require("tnt.api");
var iterator = require("tnt.utils").iterator;
var tnt_node = function (data) {
//tnt.tree.node = function (data) {
"use strict";
var node = function () {
};
var api = apijs (node);
// API
// node.nodes = function() {
// if (cluster === undefined) {
// cluster = d3.layout.cluster()
// // TODO: length and children should be exposed in the API
// // i.e. the user should be able to change this defaults via the API
// // children is the defaults for parse_newick, but maybe we should change that
// // or at least not assume this is always the case for the data provided
// .value(function(d) {return d.length})
// .children(function(d) {return d.children});
// }
// nodes = cluster.nodes(data);
// return nodes;
// };
var apply_to_data = function (data, cbak) {
cbak(data);
if (data.children !== undefined) {
for (var i=0; i<data.children.length; i++) {
apply_to_data(data.children[i], cbak);
}
}
};
var create_ids = function () {
var i = iterator(1);
// We can't use apply because apply creates new trees on every node
// We should use the direct data instead
apply_to_data (data, function (d) {
if (d._id === undefined) {
d._id = i();
// TODO: Not sure _inSubTree is strictly necessary
// d._inSubTree = {prev:true, curr:true};
}
});
};
var link_parents = function (data) {
if (data === undefined) {
return;
}
if (data.children === undefined) {
return;
}
for (var i=0; i<data.children.length; i++) {
// _parent?
data.children[i]._parent = data;
link_parents(data.children[i]);
}
};
var compute_root_dists = function (data) {
// console.log(data);
apply_to_data (data, function (d) {
var l;
if (d._parent === undefined) {
d._root_dist = 0;
} else {
var l = 0;
if (d.branch_length) {
l = d.branch_length
}
d._root_dist = l + d._parent._root_dist;
}
});
};
// TODO: data can't be rewritten used the api yet. We need finalizers
node.data = function(new_data) {
if (!arguments.length) {
return data
}
data = new_data;
create_ids();
link_parents(data);
compute_root_dists(data);
return node;
};
// We bind the data that has been passed
node.data(data);
api.method ('find_node', function (cbak, deep) {
if (cbak(node)) {
return node;
}
if (data.children !== undefined) {
for (var j=0; j<data.children.length; j++) {
var found = tnt_node(data.children[j]).find_node(cbak);
if (found) {
return found;
}
}
}
if (deep && (data._children !== undefined)) {
for (var i=0; i<data._children.length; i++) {
tnt_node(data._children[i]).find_node(cbak)
var found = tnt_node(data.children[j]).find_node(cbak);
if (found) {
return found;
}
}
}
});
api.method ('find_node_by_name', function(name) {
return node.find_node (function (node) {
return node.node_name() === name
});
});
api.method ('toggle', function() {
if (data) {
if (data.children) { // Uncollapsed -> collapse
var hidden = 0;
node.apply (function (n) {
var hidden_here = n.n_hidden() || 0;
hidden += (n.n_hidden() || 0) + 1;
});
node.n_hidden (hidden-1);
data._children = data.children;
data.children = undefined;
} else { // Collapsed -> uncollapse
node.n_hidden(0);
data.children = data._children;
data._children = undefined;
}
}
});
api.method ('is_collapsed', function () {
return (data._children !== undefined && data.children === undefined);
});
var has_ancestor = function(n, ancestor) {
// It is better to work at the data level
n = n.data();
ancestor = ancestor.data();
if (n._parent === undefined) {
return false
}
n = n._parent
for (;;) {
if (n === undefined) {
return false;
}
if (n === ancestor) {
return true;
}
n = n._parent;
}
};
// This is the easiest way to calculate the LCA I can think of. But it is very inefficient too.
// It is working fine by now, but in case it needs to be more performant we can implement the LCA
// algorithm explained here:
// http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=lowestCommonAncestor
api.method ('lca', function (nodes) {
if (nodes.length === 1) {
return nodes[0];
}
var lca_node = nodes[0];
for (var i = 1; i<nodes.length; i++) {
lca_node = _lca(lca_node, nodes[i]);
}
return lca_node;
// return tnt_node(lca_node);
});
var _lca = function(node1, node2) {
if (node1.data() === node2.data()) {
return node1;
}
if (has_ancestor(node1, node2)) {
return node2;
}
return _lca(node1, node2.parent());
};
api.method('n_hidden', function (val) {
if (!arguments.length) {
return node.property('_hidden');
}
node.property('_hidden', val);
return node
});
api.method ('get_all_nodes', function () {
var nodes = [];
node.apply(function (n) {
nodes.push(n);
});
return nodes;
});
api.method ('get_all_leaves', function () {
var leaves = [];
node.apply(function (n) {
if (n.is_leaf()) {
leaves.push(n);
}
});
return leaves;
});
api.method ('upstream', function(cbak) {
cbak(node);
var parent = node.parent();
if (parent !== undefined) {
parent.upstream(cbak);
}
// tnt_node(parent).upstream(cbak);
// node.upstream(node._parent, cbak);
});
api.method ('subtree', function(nodes) {
var node_counts = {};
for (var i=0; i<nodes.length; i++) {
var n = nodes[i];
if (n !== undefined) {
n.upstream (function (this_node){
var id = this_node.id();
if (node_counts[id] === undefined) {
node_counts[id] = 0;
}
node_counts[id]++
});
}
}
var is_singleton = function (node_data) {
var n_children = 0;
if (node_data.children === undefined) {
return false;
}
for (var i=0; i<node_data.children.length; i++) {
var id = node_data.children[i]._id;
if (node_counts[id] > 0) {
n_children++;
}
}
return n_children === 1;
};
var copy_data = function (orig_data, subtree, condition) {
if (orig_data === undefined) {
return;
}
if (condition(orig_data)) {
var copy = copy_node(orig_data);
if (subtree.children === undefined) {
subtree.children = [];
}
subtree.children.push(copy);
if (orig_data.children === undefined) {
return;
}
for (var i = 0; i < orig_data.children.length; i++) {
copy_data (orig_data.children[i], copy, condition);
}
} else {
if (orig_data.children === undefined) {
return;
}
for (var i = 0; i < orig_data.children.length; i++) {
copy_data(orig_data.children[i], subtree, condition);
}
}
};
var copy_node = function (node_data) {
var copy = {};
// copy all the own properties excepts links to other nodes or depth
for (var param in node_data) {
if ((param === "children") ||
(param === "children") ||
(param === "_parent") ||
(param === "depth")) {
continue;
}
if (node_data.hasOwnProperty(param)) {
copy[param] = node_data[param];
}
}
return copy;
};
var subtree = {};
copy_data (data, subtree, function (node_data) {
var node_id = node_data._id;
var counts = node_counts[node_id];
if (counts === undefined) {
return false;
}
// if ((node.children !== undefined) && (node.children.length < 2)) {
// return false;
// }
if ((counts > 1) && (!is_singleton(node_data))) {
return true;
}
if ((counts > 0) && (node_data.children === undefined)) {
return true;
}
return false;
});
return tnt_node(subtree.children[0]);
});
// TODO: This method visits all the nodes
// a more performant version should return true
// the first time cbak(node) is true
api.method ('present', function (cbak) {
// cbak should return true/false
var is_true = false;
node.apply (function (n) {
if (cbak(n) === true) {
is_true = true;
}
});
return is_true;
});
// cbak is called with two nodes
// and should return a negative number, 0 or a positive number
api.method ('sort', function (cbak) {
if (data.children === undefined) {
return;
}
var new_children = [];
for (var i=0; i<data.children.length; i++) {
new_children.push(tnt_node(data.children[i]));
}
new_children.sort(cbak);
data.children = [];
for (var i=0; i<new_children.length; i++) {
data.children.push(new_children[i].data());
}
for (var i=0; i<data.children.length; i++) {
tnt_node(data.children[i]).sort(cbak);
}
});
// TODO: This method only 'apply's to non collapsed nodes (ie ._children is not visited)
// Would it be better to have an extra flag (true/false) to visit also collapsed nodes?
api.method ('apply', function(cbak) {
cbak(node);
if (data.children !== undefined) {
for (var i=0; i<data.children.length; i++) {
var n = tnt_node(data.children[i])
n.apply(cbak);
}
}
});
// TODO: Not sure if it makes sense to set via a callback:
// root.property (function (node, val) {
// node.deeper.field = val
// }, 'new_value')
api.method ('property', function(prop, value) {
if (arguments.length === 1) {
if ((typeof prop) === 'function') {
return prop(data)
}
return data[prop]
}
if ((typeof prop) === 'function') {
prop(data, value);
}
data[prop] = value;
return node;
});
api.method ('is_leaf', function() {
return data.children === undefined;
});
// It looks like the cluster can't be used for anything useful here
// It is now included as an optional parameter to the tnt.tree() method call
// so I'm commenting the getter
// node.cluster = function() {
// return cluster;
// };
// node.depth = function (node) {
// return node.depth;
// };
// node.name = function (node) {
// return node.name;
// };
api.method ('id', function () {
return node.property('_id');
});
api.method ('node_name', function () {
return node.property('name');
});
api.method ('branch_length', function () {
return node.property('branch_length');
});
api.method ('root_dist', function () {
return node.property('_root_dist');
});
api.method ('children', function () {
if (data.children === undefined) {
return;
}
var children = [];
for (var i=0; i<data.children.length; i++) {
children.push(tnt_node(data.children[i]));
}
return children;
});
api.method ('parent', function () {
if (data._parent === undefined) {
return undefined;
}
return tnt_node(data._parent);
});
return node;
};
module.exports = exports = tnt_node;
},{"tnt.api":14,"tnt.utils":22}],22:[function(require,module,exports){
module.exports = require("./src/index.js");
},{"./src/index.js":23}],23:[function(require,module,exports){
// require('fs').readdirSync(__dirname + '/').forEach(function(file) {
// if (file.match(/.+\.js/g) !== null && file !== __filename) {
// var name = file.replace('.js', '');
// module.exports[name] = require('./' + file);
// }
// });
// Same as
var utils = require("./utils.js");
utils.reduce = require("./reduce.js");
module.exports = exports = utils;
},{"./reduce.js":24,"./utils.js":25}],24:[function(require,module,exports){
var reduce = function () {
var smooth = 5;
var value = 'val';
var redundant = function (a, b) {
if (a < b) {
return ((b-a) <= (b * 0.2));
}
return ((a-b) <= (a * 0.2));
};
var perform_reduce = function (arr) {return arr;};
var reduce = function (arr) {
if (!arr.length) {
return arr;
}
var smoothed = perform_smooth(arr);
var reduced = perform_reduce(smoothed);
return reduced;
};
var median = function (v, arr) {
arr.sort(function (a, b) {
return a[value] - b[value];
});
if (arr.length % 2) {
v[value] = arr[~~(arr.length / 2)][value];
} else {
var n = ~~(arr.length / 2) - 1;
v[value] = (arr[n][value] + arr[n+1][value]) / 2;
}
return v;
};
var clone = function (source) {
var target = {};
for (var prop in source) {
if (source.hasOwnProperty(prop)) {
target[prop] = source[prop];
}
}
return target;
};
var perform_smooth = function (arr) {
if (smooth === 0) { // no smooth
return arr;
}
var smooth_arr = [];
for (var i=0; i<arr.length; i++) {
var low = (i < smooth) ? 0 : (i - smooth);
var high = (i > (arr.length - smooth)) ? arr.length : (i + smooth);
smooth_arr[i] = median(clone(arr[i]), arr.slice(low,high+1));
}
return smooth_arr;
};
reduce.reducer = function (cbak) {
if (!arguments.length) {
return perform_reduce;
}
perform_reduce = cbak;
return reduce;
};
reduce.redundant = function (cbak) {
if (!arguments.length) {
return redundant;
}
redundant = cbak;
return reduce;
};
reduce.value = function (val) {
if (!arguments.length) {
return value;
}
value = val;
return reduce;
};
reduce.smooth = function (val) {
if (!arguments.length) {
return smooth;
}
smooth = val;
return reduce;
};
return reduce;
};
var block = function () {
var red = reduce()
.value('start');
var value2 = 'end';
var join = function (obj1, obj2) {
return {
'object' : {
'start' : obj1.object[red.value()],
'end' : obj2[value2]
},
'value' : obj2[value2]
};
};
// var join = function (obj1, obj2) { return obj1 };
red.reducer( function (arr) {
var value = red.value();
var redundant = red.redundant();
var reduced_arr = [];
var curr = {
'object' : arr[0],
'value' : arr[0][value2]
};
for (var i=1; i<arr.length; i++) {
if (redundant (arr[i][value], curr.value)) {
curr = join(curr, arr[i]);
continue;
}
reduced_arr.push (curr.object);
curr.object = arr[i];
curr.value = arr[i].end;
}
reduced_arr.push(curr.object);
// reduced_arr.push(arr[arr.length-1]);
return reduced_arr;
});
reduce.join = function (cbak) {
if (!arguments.length) {
return join;
}
join = cbak;
return red;
};
reduce.value2 = function (field) {
if (!arguments.length) {
return value2;
}
value2 = field;
return red;
};
return red;
};
var line = function () {
var red = reduce();
red.reducer ( function (arr) {
var redundant = red.redundant();
var value = red.value();
var reduced_arr = [];
var curr = arr[0];
for (var i=1; i<arr.length-1; i++) {
if (redundant (arr[i][value], curr[value])) {
continue;
}
reduced_arr.push (curr);
curr = arr[i];
}
reduced_arr.push(curr);
reduced_arr.push(arr[arr.length-1]);
return reduced_arr;
});
return red;
};
module.exports = reduce;
module.exports.line = line;
module.exports.block = block;
},{}],25:[function(require,module,exports){
module.exports = {
iterator : function(init_val) {
var i = init_val || 0;
var iter = function () {
return i++;
};
return iter;
},
script_path : function (script_name) { // script_name is the filename
var script_scaped = script_name.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
var script_re = new RegExp(script_scaped + '$');
var script_re_sub = new RegExp('(.*)' + script_scaped + '$');
// TODO: This requires phantom.js or a similar headless webkit to work (document)
var scripts = document.getElementsByTagName('script');
var path = ""; // Default to current path
if(scripts !== undefined) {
for(var i in scripts) {
if(scripts[i].src && scripts[i].src.match(script_re)) {
return scripts[i].src.replace(script_re_sub, '$1');
}
}
}
return path;
},
defer_cancel : function (cbak, time) {
var tick;
var defer_cancel = function () {
clearTimeout(tick);
tick = setTimeout(cbak, time);
};
return defer_cancel;
}
};
},{}],"exelixis":[function(require,module,exports){
/*
*
* https://github.com/daviddao/exelixis
*
* Copyright (c) 2015 David
* Licensed under the Apache 2 license.
*/
/**
@class exelixis
*/
exe = {};
var pics = require("./pics").ensembl_pics;
/*
* Private Methods
*/
/**
* Import tnt tree library
*/
var tnt = require("tnt.tree");
/**
* @Default settings, data structure and memory of the tree
*/
exe.opts = require("./opts").opts;
var savedOpts = exe.opts;
var parseOpts = require("./opts").parseOpts;
/**
* @Default label creator
*/
function createLabel(opts) {
//Translating opts
var pics = opts.label.pics.pictureSource;
var pictureWidth = opts.label.pics.pictureWidth;
var pictureHeight = opts.label.pics.pictureHeight;
var fontsize = opts.label.fontsize;
var usePics = opts.label.usePics;
if(usePics) {
var image_label = tnt.tree.label.img()
.src(function(node) {
if(node.is_leaf()) {
var sp_name = node.node_name();
// ucfirst
return (pics[sp_name.substr(0,1).toUpperCase() + sp_name.substr(1)]);
}
})
.width(function() {
return pictureWidth;
})
.height(function() {
return pictureHeight;
});
}
var original_label = tnt.tree.label.text()
.text(function (node) {
if(node.is_leaf()) {
return node.node_name();
}
}).fontsize(fontsize);
if(usePics) {
var joined_label = tnt.tree.label.composite()
.add_label(image_label)
.add_label(original_label);
return joined_label;
} else {
return original_label;
}
}
/**
* @Create layout by deciding between vertical and radial
*/
function createLayout(opts) {
var string = opts.tree.layoutInput;
var width = opts.tree.width;
var scale = opts.tree.scale;
var layout;
if(string === "vertical") {
layout = tnt.tree.layout.vertical().width(width).scale(scale);
}
else if(string === "radial") {
layout = tnt.tree.layout.radial().width(width).scale(scale);
}
else {
console.log("Unknown Layout Parameter: Please choose between 'vertical' and 'radial' layout");
}
return layout;
}
/**
* @Create node display which switches between triangle and circle nodes
*/
function createNodeDisplay(opts) {
var node_size = opts.nodes.size;
var node_fill = opts.nodes.fill;
var node_stroke = opts.nodes.stroke;
var selected_node_size = opts.nodes.selectedSize;
var selected_node_fill = opts.nodes.selectedFill;
var expanded_node = tnt.tree.node_display.circle()
.size(node_size)
.fill(node_fill)
.stroke(node_stroke);
var collapsed_node = tnt.tree.node_display.triangle()
.size(node_size)
.fill(node_fill)
.stroke(node_stroke)
var selected_node = tnt.tree.node_display.circle()
.size(selected_node_size)
.fill(selected_node_fill)
.stroke(node_stroke)
var node_display = tnt.tree.node_display.cond()
.add("collapsed", function (node) {
return node.is_collapsed()
}, collapsed_node)
.add("selected", function (node) {
return node.property('selected')
}, selected_node)
.add("rest", function () {
return true
}, expanded_node);
return node_display;
}
//creates default eventFunction for toggle and select
function createNodeEvent(opts) {
var eventFunction = {};
if(opts.nodes.toggle) {
eventFunction = function(node) {
if(!node.is_leaf() || (node.n_hidden() > 0)) {
node.toggle();
tree.update();
} else {
if(opts.nodes.select) {
toggleClick(node);
}
tree.update();
}
}
} else {
if(opts.nodes.select) {
eventFunction = function(node) {
toggleClick(node);
tree.update();
}
}
}
if(opts.nodes.select) {
function toggleClick(node) {
if(node.property('selected')) {
node.property('selected',false);
} else {
node.property('selected',true);
}
}
}
return eventFunction;
}
/*
* Public Methods
*/
/**
* @create a default tree
*
* exe.createTree(opts);
*
* @method createTree
* @param {object} a config json
* @return {tree object} a tree object
*/
exe.createTree = function (opts) {
var parsedOpts = parseOpts(opts, savedOpts);
savedOpts = parsedOpts; //Saves state
var data = parsedOpts.tree.data;
var el = parsedOpts.el;
//Create a layout
var layout;
layout = createLayout(parsedOpts);
//Create a label
var label;
label = createLabel(parsedOpts);
//Create a nodedisplay
var nodeDisplay;
nodeDisplay = createNodeDisplay(parsedOpts);
//Create a tree
var tree = tnt.tree();
tree.data(tnt.tree.parse_newick(data))
.layout(layout)
.node_display(nodeDisplay);
tree.label(label);
var nodeEvent = createNodeEvent(parsedOpts);
tree.on_click(nodeEvent);
tree(el);
return tree;
}
/**
* @updates a tree
*
* exe.updateTree(tree,opts);
*
* @method updateTree
* @param {tree object} a given tree, {object} a config json
* @return void
*/
exe.updateTree = function(tree, opts) {
//get the tree object and update the opts
var parsedOpts = parseOpts(opts, savedOpts);
savedOpts = parsedOpts;
var data = parsedOpts.tree.data;
//Create a layout
var layout;
layout = createLayout(parsedOpts);
//Create a label
var label;
label = createLabel(parsedOpts);
//Create a nodedisplay
var nodeDisplay;
nodeDisplay = createNodeDisplay(parsedOpts);
tree.data(tnt.tree.parse_newick(data))
.layout(layout)
.node_display(nodeDisplay);
tree.label(label);
var nodeEvent = createNodeEvent(parsedOpts);
tree.on_click(nodeEvent);
tree.update();
}
/**
* @exports the functionalities
*/
module.exports = {
createTree : exe.createTree,
updateTree : exe.updateTree,
};
},{"./opts":1,"./pics":2,"tnt.tree":4}]},{},[]);