get("#388") -- rect functions
get("#348") -- rgb functions
get("#356") -- num2hex

function findContents()
  hashes = otherresults["#442"] or error("Need result of #442, please recalc")
  
  j, icons = nil, {}
  while true do
    i, j, r, hash = string.find(hashes, "(%d+, %d+, %d+, %d+) %-> ([a-f0-9]+)", j)
    if i == nil then break end
    
    icons[hash] = r
  end
  
  r = icons["00645074"] or icons["0061777a"]
  if r == nil then return "LXTerminal icon not found" end
  
  -- look for a mostly black line below the icon
  r = stringtorect(r)
  x, y = r.x, r.y
  contents_y1 = nil
  while y < img.height and contents_y1 == nil do
    w = 50
    b = 0
    for xx = x, x+w-1 do
      b = b+bright(rgb(img.getInt(xx, y)))
    end
    b = b/w
    --print("Brightness at", y, ":", b)
    if b < 0.01 then
      contents_y1 = y
    end
    y = y+1
  end
  
  if contents_y1 == nil then return "Terminal contents not found" end
  
  -- find left side of contents
  
  contents_x1 = x
  while contents_x1 > 0 and img.getInt(contents_x1-1, contents_y1) == 0 do
    contents_x1 = contents_x1-1
  end
  
  -- find width of contents
  while x < img.width and img.getInt(x, contents_y1) == 0 do
    x = x+1
  end
  
  contents_x2 = x-1
  
  -- find bottom of contents
  y = contents_y1+1
  
  while y < img.height and
    (img.getInt(contents_x1, y) ~= 0xa4a4a4 or
     img.getInt(contents_x1+1, y) ~= 0xa4a4a4) do
    --print("y", y, num2hex(img.getInt(contents_x1, y)), num2hex(img.getInt(contents_x1+1, y)))
    y = y+1
  end
  
  contents_y2 = y
  contents_y1 = contents_y1+1
end