package main import ( "bufio" "fmt" "os" "strconv" ) // 10^9 + 7 const P = 1000000007 var sc = bufio.NewScanner(os.Stdin) func next() string { sc.Split(bufio.ScanWords) if !sc.Scan() { panic("could not scan a word from the reader") } return sc.Text() } func nextInt() int { i, e := strconv.Atoi(next()) if e != nil { panic(e) } return i } func nextLong() int64 { i, e := strconv.ParseInt(next(), 10, 64) if e != nil { panic(e) } return i } func nextLine() string { sc.Split(bufio.ScanLines) if !sc.Scan() { panic("could not scan a line from the reader") } return sc.Text() } func main() { N := nextInt() var res int64 for i := 0; i < N; i++ { C, D := nextLong(), nextLong() res += ((C/2 + C%2) % P) * (D % P) res %= P } fmt.Println(res) }