← Home
package main

import (
	"bufio"
	"fmt"
	"os"
)

func abs(x int64) int64 {
	if x < 0 {
		return -x
	}
	return x
}

func main() {
	in := bufio.NewReaderSize(os.Stdin, 1<<20)
	out := bufio.NewWriterSize(os.Stdout, 1<<20)
	defer out.Flush()

	powers := make([]int64, 30)
	powers[0] = 1
	for i := 1; i < 30; i++ {
		powers[i] = powers[i-1] * 2
	}

	var t int
	fmt.Fscan(in, &t)
	for tc := 0; tc < t; tc++ {
		var n int
		fmt.Fscan(in, &n)
		for i := 0; i < n; i++ {
			var a int64
			fmt.Fscan(in, &a)
			best := powers[0]
			bestDiff := abs(a - best)
			for j := 1; j < 30; j++ {
				d := abs(a - powers[j])
				if d < bestDiff {
					bestDiff = d
					best = powers[j]
				}
			}
			if i > 0 {
				fmt.Fprint(out, " ")
			}
			fmt.Fprint(out, best)
		}
		if tc+1 < t {
			fmt.Fprintln(out)
		}
	}
}