  if (popup) {
          popup.popupHover = false
          if (!popup.labelHover && !hoverTimeout) {
            hoverTimeout = setTimeout(() => {
              clearPopup()
            }, 500)
          }
        }
      })
      .interrupt()
      .transition().duration(500).style('opacity', 1)
  } else {
    d3.select('#popup')
      .interrupt()
      .transition().duration(500).style('opacity', 0)
      .on('end', () => d3.select('#popup').style('visibility', 'hidden'))
  }
}

function pushState () {
