var enh = work.input[0].split("").map(x => ".#".indexOf(x));
var img = work.input.slice(2).map(r => [...r].map(x => ".#".indexOf(x)));
var run = (img) => {
var out = [...Array(img.length + 2)].map(_ => [...Array(img[0].length + 2)].fill(0));
out = out.map((r, y) => r.map((d, x) => {
var ns = [[x, y], ...[x, y].neighbors()].sort((f, h) => f[1] - h[1] || f[0] - h[0]);
return enh[parseInt(ns.map(n => (img[n[1] - 1] || [])[n[0] - 1] || 0).join(""), 2)];
}));
return out;