			const dy = y - Number(c.dataset.startY);
			viewport_offset_cpu2(dx, dy);
			apply_transforms_cpu2();
			c.dataset.startX = x;
			c.dataset.startY = y;
		}
	});

	for (const c of [cpu2])
	c.addEventListener("mouseup", function(e) {
		if (c.dataset.isPanning == "true") {
			c.dataset.isPanning = "false";
			c.style.cursor = "grab";
			//window.cursor = 'grab';
		}
	});

	for (const c of [cpu2])
	c.addEventListener("mouseleave", function(e) {
		c.dataset.isPanning = "false";
	});

	for (const c of [cpu2])
