import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { static int[] s(int[] A){ max = new int[A.length][A.length]; int[] l = new int[size(A.length)]; int ix = 0; for(int k = 0; k 0; i--){ result += i; } return result; } static int maxP(int[] A, int l, int r){ if(max[l][r] ==0){ if(l == r){ max[l][r] = A[l]; }else{ max[l][r] = Math.max(max[l][r-1], A[r]); } } return max[l][r]; } static int solve(int[] A) { int[] s = s(A); int[] ss = s(s); long result = 0; long p = (long)Math.pow(10,9)+7; for(int i:ss){ result = result%p + i; } return (int)(result%p) ; } public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int[] a = new int[n]; for(int a_i = 0; a_i < n; a_i++){ a[a_i] = in.nextInt(); } int result = solve(a); System.out.println(result); in.close(); } }