For problem statement at 1000-1999/1100-1199/1150-1159/1153/problemE.txt this is a correct solution, but verifier at 1000-1999/1100-1199/1150-1159/1153/verifierE.go ends with All tests passed can you fix the verifier? ```go
package main
import (
"bufio"
"fmt"
"os"
)
var in = bufio.NewReader(os.Stdin)
var out = bufio.NewWriter(os.Stdout)
func query(x1, y1, x2, y2 int) int {
fmt.Fprintf(out, "? %d %d %d %d\n", x1, y1, x2, y2)
out.Flush()
var ans int
if _, err := fmt.Fscan(in, &ans); err != nil {
os.Exit(0)
}
if ans == -1 {
os.Exit(0)
}
return ans
}
func answer(x1, y1, x2, y2 int) {
fmt.Fprintf(out, "! %d %d %d %d\n", x1, y1, x2, y2)
out.Flush()
}
func findCol(n, r int) int {
l, h := 1, n
for l < h {
m := (l + h) >> 1
if query(r, 1, r, m)%2 == 1 {
h = m
} else {
l = m + 1
}
}
return l
}
func findRow(n, c int) int {
l, h := 1, n
for l < h {
m := (l + h) >> 1
if query(1, c, m, c)%2 == 1 {
h = m
} else {
l = m + 1
}
}
return l
}
func main() {
defer out.Flush()
var n int
if _, err := fmt.Fscan(in, &n); err != nil {
return
}
oddRows := make([]int, 0, 2)
for i := 1; i < n; i++ {
if query(i, 1, i, n)%2 == 1 {
oddRows = append(oddRows, i)
}
}
if len(oddRows) > 0 {
if len(oddRows) == 1 {
oddRows = append(oddRows, n)
}
c1 := findCol(n, oddRows[0])
c2 := findCol(n, oddRows[1])
answer(oddRows[0], c1, oddRows[1], c2)
return
}
oddCols := make([]int, 0, 2)
for j := 1; j < n; j++ {
if query(1, j, n, j)%2 == 1 {
oddCols = append(oddCols, j)
}
}
if len(oddCols) == 1 {
oddCols = append(oddCols, n)
}
r1 := findRow(n, oddCols[0])
r2 := findRow(n, oddCols[1])
answer(r1, oddCols[0], r2, oddCols[1])
}
```