<p>Given an integer <code>n</code>, return <em>the <strong>decimal value</strong> of the binary string formed by concatenating the binary representations of </em><code>1</code><em> to </em><code>n</code><em> in order, <strong>modulo </strong></em><code>10<sup>9 </sup>+ 7</code>.</p> <p> </p> <p><strong>Example 1:</strong></p> <pre> <strong>Input:</strong> n = 1 <strong>Output:</strong> 1 <strong>Explanation: </strong>"1" in binary corresponds to the decimal value 1. </pre> <p><strong>Example 2:</strong></p> <pre> <strong>Input:</strong> n = 3 <strong>Output:</strong> 27 <strong>Explanation: </strong>In binary, 1, 2, and 3 corresponds to "1", "10", and "11". After concatenating them, we have "11011", which corresponds to the decimal value 27. </pre> <p><strong>Example 3:</strong></p> <pre> <strong>Input:</strong> n = 12 <strong>Output:</strong> 505379714 <strong>Explanation</strong>: The concatenation results in "1101110010111011110001001101010111100". The decimal value of that is 118505380540. After modulo 10<sup>9</sup> + 7, the result is 505379714. </pre> <p> </p> <p><strong>Constraints:</strong></p> <ul> <li><code>1 <= n <= 10<sup>5</sup></code></li> </ul>