d3.tip=function(){function t(t){p=f(t),g=p.createSVGPoint(),document.body.appendChild(y)}function e(){return"n"}function n(){return[0,0]}function r(){return" "}function o(){var t=i();return{top:t.n.y-y.offsetHeight,left:t.n.x-y.offsetWidth/2}}function l(){var t=i();return{top:t.s.y,left:t.s.x-y.offsetWidth/2}}function s(){var t=i();return{top:t.e.y-y.offsetHeight/2,left:t.e.x}}function u(){var t=i();return{top:t.w.y-y.offsetHeight/2,left:t.w.x-y.offsetWidth}}function a(){var t=document.createElement("div");return t.style.position="absolute",t.style.display="none",t.style.boxSizing="border-box",t}function f(t){if(t=t.node(),"svg"==t.tagName.toLowerCase())return t;for(;t.parentNode;)if(t=t.parentNode,"svg"==t.tagName.toLowerCase())return t;return null}function i(){var t=d3.event.target,e={},n=t.getScreenCTM(),r=t.getBBox(),o=r.width,l=r.height,s=r.x,u=r.y,a=document.body.scrollTop;return scrollLeft=document.body.scrollLeft,document.documentElement&&document.documentElement.scrollTop&&(a=document.documentElement.scrollTop,scrollLeft=document.documentElement.scrollLeft),g.x=s+scrollLeft,g.y=u+a,e.nw=g.matrixTransform(n),g.x+=o,e.ne=g.matrixTransform(n),g.y+=l,e.se=g.matrixTransform(n),g.x-=o,e.sw=g.matrixTransform(n),g.y-=l/2,e.w=g.matrixTransform(n),g.x+=o,e.e=g.matrixTransform(n),g.x-=o/2,g.y-=l/2,e.n=g.matrixTransform(n),g.y+=l,e.s=g.matrixTransform(n),e}var c=e,m=n,d=r,y=a(),p=null,g=null;t.show=function(){var e,n=d.apply(this,arguments),r=m.apply(this,arguments),o=c.apply(this,arguments),l=h.keys(),s=d3.select(y),u=0;for(s.html(n).style("display","block"),u;l.length>u;u++)s.classed(l[u],!1);return e=h.get(o).apply(this),s.classed(o,!0).style({top:e.top+r[0]+"px",left:e.left+r[1]+"px"}),t},t.hide=function(){return y.style.display="none",y.innerHTML="",t},t.attr=function(e,n){return 2>arguments.length?d3.select(y).attr(e):(d3.select(y).attr(e,n),t)},t.style=function(e,n){return 2>arguments.length?d3.select(y).style(e):(d3.select(y).style(e,n),t)},t.direction=function(e){return arguments.length?(c=null==e?e:d3.functor(e),t):c},t.offset=function(e){return arguments.length?(m=null==e?e:d3.functor(e),t):m},t.html=function(e){return arguments.length?(d=null==e?e:d3.functor(e),t):d};var h=d3.map({n:o,s:l,e:s,w:u});return t};