ch (error) {
			var f = function(x) {return 0;}
			document.getElementById("error").innerHTML = "<b>Error:</b> " + error.message;
		}
		// helper for coloring
		function color_by_hash_of(string) {
			var code_sum = 0;
			for(var i = 0; i < string.length; ++i)
				code_sum += ([1, 7, 11, 13][i % 4] * string.charCodeAt(i));
			const zero_channel = code_sum % 3;
			const color = '#' + (zero_channel == 0 ? '0' : '') + (1 + (code_sum % 5) * 2)
				+ (zero_channel == 1 ? '0' : '') + (4 + (code_sum % 2) * 5)
				+