```go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
in := bufio.NewReader(os.Stdin)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
var t int
if _, err := fmt.Fscan(in, &t); err != nil {
return
}
for ; t > 0; t-- {
var n int
fmt.Fscan(in, &n)
zeros, ones := 0, 0
for i := 0; i < n; i++ {
var x int
fmt.Fscan(in, &x)
if x == 0 {
zeros++
} else {
ones++
}
}
if zeros >= n/2 {
k := n / 2
fmt.Fprintln(out, k)
for i := 0; i < k; i++ {
if i > 0 {
fmt.Fprint(out, " ")
}
fmt.Fprint(out, 0)
}
fmt.Fprintln(out)
} else {
k := ones
if k%2 == 1 {
k--
}
fmt.Fprintln(out, k)
for i := 0; i < k; i++ {
if i > 0 {
fmt.Fprint(out, " ")
}
fmt.Fprint(out, 1)
}
fmt.Fprintln(out)
}
}
}
```