anchor.diff:  d3.select(self.frameElement).style("height", diameter + "px");
   
   // Lazily construct the basic hierarchy from PE names.
  +
  +
  +
  +function packageHierarchyData(classes,gb) {
  + var map = {};
  + var parent
  + //console.log(gb)
  + var root = {name: 'process', children: []};
  + classes.forEach(function(d) {
  +//    find(d.name, d);
  +	//if(!d.name.worker) d.name.worker="login";
  +	
  +    if (!map[d.name[gb]])
  +    	{//console.log(d.name[gb])
  +    	 parent = {name: { name: d.name[gb]}, children: []};
  +    	 parent.parent=root
  +    	 parent.parent.children.push(parent)
  +    	 map[d.name[gb]]=parent
  +    	}
  +    
  +    var node = d
  +    //console.log(root) 
  +  	node.parent= map[d.name[gb]]
  +    node.parent.children.push(node)
  +    node.key=d.name.id.substring(0,45)
  +    
  +   
  + });
  +
  + //console.log(root)
  + return root
  +}
  +
  +
   function packageHierarchyPE(classes,gb) {
    var map = {};
    var parent
  
positive.code:   
    nodes.forEach(function(d) {
      if (d.connlist) d.connlist.forEach(function(i) { 
        
        connlist.push({source: map[d.name.instanceId], target: map[i._id.instanceId]});
        bundlesmap[d.name.instanceId+"_"+i._id.instanceId]=i.size
        if (i.size>maxval) maxval=i.size
      });
    });
  
  
negative.code:       .attr("class", "link")
        .attr("d", line)
        .attr("stroke", function(d) { var size=bundlesmap[d.source.name.instanceId+"_"+d.target.name.instanceId]
        								//console.log(d.source.name.instanceId+" "+size) 
        								if (size<100)
        									return 'rgb(255,0,0)'
  									if (size>=100 && size<500)
  