|
DevelopmentSega Master System / Mark III / Game Gear |
Home - Forums - Games - Scans - Maps - Cheats - Credits |
by andete. Original documents available at: https://github.com/andete/ym2413/tree/master/results
<< YM2413 Reverse Engineering Notes 2015-03-27 | YM2413 Reverse Engineering Notes | YM2413 Reverse Engineering Notes 2015-11-28 >>
In my last post I mentioned some ideas for future tests that require knowing the exact content of the internal YM2413 sine and exponential tables. In this post I'll try to figure out their content.
This post is heavily inspired by the "OPLx decapsulated" article written by Matthew Gambrell and Olli Niemitalo:
https://docs.google.com/document/d/18IGx18NQY_Q1PJVZ-bHywao9bhsDoAqoIn1rIm42nwo/edit
That article gives the content of the tables for OPL2 and OPL3. Since our chip (YM2413 or OPLL) is derived from OPL2 there is a good chance the tables are the same. On the other hand many other internal calculations are done with less precision in OPLL compared to OPL2/3, so also the tables may store values with less precision.
Take a look at these pictures:
log(sin()) | exp() | ||
---|---|---|---|
OPLL | ![]() | ![]() | |
OPL3 | ![]() | ![]() |
These images are regions taken from
(I rotated the OPL3 pictures by 180 degrees to match the orientation of the OPLL pictures.)
These pictures show die-shots of the OPLL (1st row) and OPL3 (2nd row) sin-table (1st column) and exp-table (2nd column). Notice how the structure of the corresponding tables is almost identical between OPLL and OPL3.
(I'm not 100% sure about this paragraph.) The individual 0 and 1 bits in the ROM can be seen as two different colors for the 'dots' in the middle of each image (though the image is not always very clear, sometimes the colors are so close that it's hard to decide between a 0 or a 1 bit). When you compare the corresponding tables between OPLL and OPL3, the pattern of 0 and 1 bits seems to match (at least in those regions where the picture is clear enough).
Combined (same structure, same 0/1-pattern) these items strongly suggest the ROMS are indeed identical between OPLL, OPL2 and OPL3.
Both the sine (actually logarithm-of-sine) and exponential tables have 256 entries. The sine table only stores the 1st quadrant of the sine. The log-sin values go from 0 to 2137 (so 12 bits per entry). The exp table stores values between 0 and 1018 (so 10 bits).
The above paragraph suggests the sin and exp table respectively contain 12x256=3072 bits and 10*256=2560 bits. But the above article explains the content of the tables is actually compressed (every 2nd entry stored as the difference with the previous one). Based on the structure of the ROM I'm *guessing* there's also a second form of compression: some of the decoders seem incomplete, so some of the horizontal rows seem to be shared between different entries (very vague description because I don't fully understand it yet, though also not very important for the rest of this post).
Now that we (probably) know the content of the tables, let's try to use them to predict the output of a simple waveform. Though before we can do that we first need to know the algorithm to go from these table-values to the actual sound output. For this the following forum post by 'carbon14' was useful, it shows code for the exp-table lookup:
http://forums.submarine.org.uk/phpBB/viewtopic.php?f=9&t=15&sid=5769a3d72fb8a77b00b8e39b953c8423#p22
The sin-table lookup was easy enough to figure out myself.
It's probably easiest to explain an algorithm via code, so here it is:
Here are some highlights of the code:
above, this mirroring corresponds to simply flipping all the bits of our (8-bit) table index.
output of the lookupSin() function. It has a sign- and a magnitude-part. The magnitude is a fixed-point value with 8 fractional bits. One of the first things this lookup function does is split the input in those 3 components: sign, integral-part and fractional-part.
index (underlying reason for this is that the logsin table stores minus the logarithm). It's possible (likely?) that the real hardware doesn't have this flip operation, instead the entries in the table may be stored in reverse order.
exp2(i - n) == exp2(i) / pow(2, n)
to extend the logical range of the exp-table. And dividing by a power-of-2 corresponds to a right-shift operation.
Note that this algorithm is tailored towards a hardware implementation, or at the very least it's structured so that it can directly work on the table data 'discovered' by Matthew Gambrell and Olli Niemitalo. For an efficient software implementation you'll likely use a modified algorithm (with modified tables).
Now that we have the tables and the algorithm, let's use them to predict the output of some simple waveforms and compare those predictions with the actual generated sound.
Let's start with the predictions. We can generate a sine waveform by simply chaining the output of the lookupSin() function to the input of the lookupExp() function. Or in code:
Actually this generates a sine wave with maximum volume. For variable volume the program becomes:
So we only need to add an offset to the result of the lookupSin() function. Note that because of the sign-magnitude representation we don't need to distinguish between positive and negative values.
Here you can see the power of the exp-log-sin-approach. Each volume-step attenuates the sound by -3dB, that corresponds to multiplying the amplitude by a factor 0.7071. Though multiplication is expensive in hardware. But in a logarithm-scale we can replace multiplication with addition (later we'll see that the same trick is used to apply the envelope-attenuation). At the end we convert back to a linear scale by taking the exponential.
The large table below shows the predicted sine waves (1024 steps, shown in the rows) for the 16 different volumes (shown in the columns). Note that this uses 1-complements notation, so e.g. -256 actually means -255 and -1 means -0.
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 -----+-----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+---- 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 | 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 2 | 3 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 3 | 5 3 2 1 1 0 0 0 0 0 0 0 0 0 0 0 4 | 7 4 3 2 1 1 0 0 0 0 0 0 0 0 0 0 5 | 8 6 4 3 2 1 1 0 0 0 0 0 0 0 0 0 6 | 10 7 5 3 2 1 1 0 0 0 0 0 0 0 0 0 7 | 11 8 5 4 2 2 1 1 0 0 0 0 0 0 0 0 8 | 13 9 6 4 3 2 1 1 0 0 0 0 0 0 0 0 9 | 14 10 7 5 3 2 1 1 0 0 0 0 0 0 0 0 10 | 16 11 8 5 4 2 2 1 1 0 0 0 0 0 0 0 11 | 18 12 9 6 4 3 2 1 1 0 0 0 0 0 0 0 12 | 19 13 9 6 4 3 2 1 1 0 0 0 0 0 0 0 13 | 21 14 10 7 5 3 2 1 1 0 0 0 0 0 0 0 14 | 22 16 11 8 5 4 2 2 1 1 0 0 0 0 0 0 15 | 24 17 12 8 6 4 3 2 1 1 0 0 0 0 0 0 16 | 25 18 12 9 6 4 3 2 1 1 0 0 0 0 0 0 17 | 27 19 13 9 6 4 3 2 1 1 0 0 0 0 0 0 18 | 28 20 14 10 7 5 3 2 1 1 0 0 0 0 0 0 19 | 30 21 15 10 7 5 3 2 1 1 0 0 0 0 0 0 20 | 32 22 16 11 8 5 4 2 2 1 1 0 0 0 0 0 21 | 33 23 16 11 8 5 4 2 2 1 1 0 0 0 0 0 22 | 35 24 17 12 8 6 4 3 2 1 1 0 0 0 0 0 23 | 36 25 18 12 9 6 4 3 2 1 1 0 0 0 0 0 24 | 38 27 19 13 9 6 4 3 2 1 1 0 0 0 0 0 25 | 39 28 19 14 9 7 4 3 2 1 1 0 0 0 0 0 26 | 41 29 20 14 10 7 5 3 2 1 1 0 0 0 0 0 27 | 42 30 21 15 10 7 5 3 2 1 1 0 0 0 0 0 28 | 44 31 22 15 11 7 5 3 2 1 1 0 0 0 0 0 29 | 46 32 23 16 11 8 5 4 2 2 1 1 0 0 0 0 30 | 47 33 23 16 11 8 5 4 2 2 1 1 0 0 0 0 31 | 49 34 24 17 12 8 6 4 3 2 1 1 0 0 0 0 32 | 50 35 25 17 12 8 6 4 3 2 1 1 0 0 0 0 33 | 52 36 26 18 13 9 6 4 3 2 1 1 0 0 0 0 34 | 53 37 26 18 13 9 6 4 3 2 1 1 0 0 0 0 35 | 55 39 27 19 13 9 6 4 3 2 1 1 0 0 0 0 36 | 56 40 28 20 14 10 7 5 3 2 1 1 0 0 0 0 37 | 58 41 29 20 14 10 7 5 3 2 1 1 0 0 0 0 38 | 59 42 29 21 14 10 7 5 3 2 1 1 0 0 0 0 39 | 61 43 30 21 15 10 7 5 3 2 1 1 0 0 0 0 40 | 62 44 31 22 15 11 7 5 3 2 1 1 0 0 0 0 41 | 64 45 32 22 16 11 8 5 4 2 2 1 1 0 0 0 42 | 65 46 32 23 16 11 8 5 4 2 2 1 1 0 0 0 43 | 67 47 33 23 16 11 8 5 4 2 2 1 1 0 0 0 44 | 68 48 34 24 17 12 8 6 4 3 2 1 1 0 0 0 45 | 70 49 35 24 17 12 8 6 4 3 2 1 1 0 0 0 46 | 71 50 35 25 17 12 8 6 4 3 2 1 1 0 0 0 47 | 73 51 36 25 18 12 9 6 4 3 2 1 1 0 0 0 48 | 74 52 37 26 18 13 9 6 4 3 2 1 1 0 0 0 49 | 76 53 38 26 19 13 9 6 4 3 2 1 1 0 0 0 50 | 77 55 38 27 19 13 9 6 4 3 2 1 1 0 0 0 51 | 79 56 39 28 19 14 9 7 4 3 2 1 1 0 0 0 52 | 80 57 40 28 20 14 10 7 5 3 2 1 1 0 0 0 53 | 82 58 41 29 20 14 10 7 5 3 2 1 1 0 0 0 54 | 83 59 41 29 20 14 10 7 5 3 2 1 1 0 0 0 55 | 85 60 42 30 21 15 10 7 5 3 2 1 1 0 0 0 56 | 86 61 43 30 21 15 10 7 5 3 2 1 1 0 0 0 57 | 88 62 44 31 22 15 11 7 5 3 2 1 1 0 0 0 58 | 89 63 44 31 22 15 11 7 5 3 2 1 1 0 0 0 59 | 91 64 45 32 22 16 11 8 5 4 2 2 1 1 0 0 60 | 92 65 46 32 23 16 11 8 5 4 2 2 1 1 0 0 61 | 94 66 47 33 23 16 11 8 5 4 2 2 1 1 0 0 62 | 95 67 47 33 23 16 11 8 5 4 2 2 1 1 0 0 63 | 96 68 48 34 24 17 12 8 6 4 3 2 1 1 0 0 64 | 98 69 49 34 24 17 12 8 6 4 3 2 1 1 0 0 65 | 99 70 49 35 24 17 12 8 6 4 3 2 1 1 0 0 66 | 101 71 50 35 25 17 12 8 6 4 3 2 1 1 0 0 67 | 102 72 51 36 25 18 12 9 6 4 3 2 1 1 0 0 68 | 104 73 52 36 26 18 13 9 6 4 3 2 1 1 0 0 69 | 105 74 52 37 26 18 13 9 6 4 3 2 1 1 0 0 70 | 107 75 53 37 26 18 13 9 6 4 3 2 1 1 0 0 71 | 108 76 54 38 27 19 13 9 6 4 3 2 1 1 0 0 72 | 110 77 55 38 27 19 13 9 6 4 3 2 1 1 0 0 73 | 111 78 55 39 27 19 13 9 6 4 3 2 1 1 0 0 74 | 112 79 56 39 28 19 14 9 7 4 3 2 1 1 0 0 75 | 114 80 57 40 28 20 14 10 7 5 3 2 1 1 0 0 76 | 115 81 57 40 28 20 14 10 7 5 3 2 1 1 0 0 77 | 116 82 58 41 29 20 14 10 7 5 3 2 1 1 0 0 78 | 118 83 59 41 29 20 14 10 7 5 3 2 1 1 0 0 79 | 119 84 59 42 29 21 14 10 7 5 3 2 1 1 0 0 80 | 120 85 60 42 30 21 15 10 7 5 3 2 1 1 0 0 81 | 122 86 61 43 30 21 15 10 7 5 3 2 1 1 0 0 82 | 123 87 61 43 30 21 15 10 7 5 3 2 1 1 0 0 83 | 125 88 62 44 31 22 15 11 7 5 3 2 1 1 0 0 84 | 126 89 63 44 31 22 15 11 7 5 3 2 1 1 0 0 85 | 128 90 64 45 32 22 16 11 8 5 4 2 2 1 1 0 86 | 129 91 64 45 32 22 16 11 8 5 4 2 2 1 1 0 87 | 130 92 65 46 32 23 16 11 8 5 4 2 2 1 1 0 88 | 131 93 65 46 32 23 16 11 8 5 4 2 2 1 1 0 89 | 133 94 66 47 33 23 16 11 8 5 4 2 2 1 1 0 90 | 134 95 67 47 33 23 16 11 8 5 4 2 2 1 1 0 91 | 135 96 67 48 33 24 16 12 8 6 4 3 2 1 1 0 92 | 137 97 68 48 34 24 17 12 8 6 4 3 2 1 1 0 93 | 138 97 69 48 34 24 17 12 8 6 4 3 2 1 1 0 94 | 140 99 70 49 35 24 17 12 8 6 4 3 2 1 1 0 95 | 141 99 70 49 35 24 17 12 8 6 4 3 2 1 1 0 96 | 142 100 71 50 35 25 17 12 8 6 4 3 2 1 1 0 97 | 143 101 71 50 35 25 17 12 8 6 4 3 2 1 1 0 98 | 145 102 72 51 36 25 18 12 9 6 4 3 2 1 1 0 99 | 146 103 73 51 36 25 18 12 9 6 4 3 2 1 1 0 100 | 147 104 73 52 36 26 18 13 9 6 4 3 2 1 1 0 101 | 149 105 74 52 37 26 18 13 9 6 4 3 2 1 1 0 102 | 150 106 75 53 37 26 18 13 9 6 4 3 2 1 1 0 103 | 151 107 75 53 37 26 18 13 9 6 4 3 2 1 1 0 104 | 152 107 76 53 38 26 19 13 9 6 4 3 2 1 1 0 105 | 153 108 76 54 38 27 19 13 9 6 4 3 2 1 1 0 106 | 155 109 77 54 38 27 19 13 9 6 4 3 2 1 1 0 107 | 156 110 78 55 39 27 19 13 9 6 4 3 2 1 1 0 108 | 157 111 78 55 39 27 19 13 9 6 4 3 2 1 1 0 109 | 159 112 79 56 39 28 19 14 9 7 4 3 2 1 1 0 110 | 160 113 80 56 40 28 20 14 10 7 5 3 2 1 1 0 111 | 161 114 80 57 40 28 20 14 10 7 5 3 2 1 1 0 112 | 162 114 81 57 40 28 20 14 10 7 5 3 2 1 1 0 113 | 163 115 81 57 40 28 20 14 10 7 5 3 2 1 1 0 114 | 165 116 82 58 41 29 20 14 10 7 5 3 2 1 1 0 115 | 166 117 83 58 41 29 20 14 10 7 5 3 2 1 1 0 116 | 167 118 83 59 41 29 20 14 10 7 5 3 2 1 1 0 117 | 168 119 84 59 42 29 21 14 10 7 5 3 2 1 1 0 118 | 169 119 84 59 42 29 21 14 10 7 5 3 2 1 1 0 119 | 171 120 85 60 42 30 21 15 10 7 5 3 2 1 1 0 120 | 172 121 86 60 43 30 21 15 10 7 5 3 2 1 1 0 121 | 173 122 86 61 43 30 21 15 10 7 5 3 2 1 1 0 122 | 174 123 87 61 43 30 21 15 10 7 5 3 2 1 1 0 123 | 175 124 87 62 43 31 21 15 10 7 5 3 2 1 1 0 124 | 176 124 88 62 44 31 22 15 11 7 5 3 2 1 1 0 125 | 177 125 88 62 44 31 22 15 11 7 5 3 2 1 1 0 126 | 179 126 89 63 44 31 22 15 11 7 5 3 2 1 1 0 127 | 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 0 128 | 181 128 90 64 45 32 22 16 11 8 5 4 2 2 1 1 129 | 182 128 91 64 45 32 22 16 11 8 5 4 2 2 1 1 130 | 183 129 91 64 45 32 22 16 11 8 5 4 2 2 1 1 131 | 184 130 92 65 46 32 23 16 11 8 5 4 2 2 1 1 132 | 185 131 92 65 46 32 23 16 11 8 5 4 2 2 1 1 133 | 186 131 93 65 46 32 23 16 11 8 5 4 2 2 1 1 134 | 187 132 93 66 46 33 23 16 11 8 5 4 2 2 1 1 135 | 188 133 94 66 47 33 23 16 11 8 5 4 2 2 1 1 136 | 189 134 94 67 47 33 23 16 11 8 5 4 2 2 1 1 137 | 190 134 95 67 47 33 23 16 11 8 5 4 2 2 1 1 138 | 191 135 95 67 47 33 23 16 11 8 5 4 2 2 1 1 139 | 192 136 96 68 48 34 24 17 12 8 6 4 3 2 1 1 140 | 193 137 96 68 48 34 24 17 12 8 6 4 3 2 1 1 141 | 194 137 97 68 48 34 24 17 12 8 6 4 3 2 1 1 142 | 195 138 97 69 48 34 24 17 12 8 6 4 3 2 1 1 143 | 196 139 98 69 49 34 24 17 12 8 6 4 3 2 1 1 144 | 198 140 99 70 49 35 24 17 12 8 6 4 3 2 1 1 145 | 199 140 99 70 49 35 24 17 12 8 6 4 3 2 1 1 146 | 199 141 99 70 49 35 24 17 12 8 6 4 3 2 1 1 147 | 200 141 100 70 50 35 25 17 12 8 6 4 3 2 1 1 148 | 201 142 100 71 50 35 25 17 12 8 6 4 3 2 1 1 149 | 202 143 101 71 50 35 25 17 12 8 6 4 3 2 1 1 150 | 203 144 101 72 50 36 25 18 12 9 6 4 3 2 1 1 151 | 204 144 102 72 51 36 25 18 12 9 6 4 3 2 1 1 152 | 205 145 102 72 51 36 25 18 12 9 6 4 3 2 1 1 153 | 206 146 103 73 51 36 25 18 12 9 6 4 3 2 1 1 154 | 207 146 103 73 51 36 25 18 12 9 6 4 3 2 1 1 155 | 208 147 104 73 52 36 26 18 13 9 6 4 3 2 1 1 156 | 209 147 104 73 52 36 26 18 13 9 6 4 3 2 1 1 157 | 210 148 105 74 52 37 26 18 13 9 6 4 3 2 1 1 158 | 211 149 105 74 52 37 26 18 13 9 6 4 3 2 1 1 159 | 211 149 105 74 52 37 26 18 13 9 6 4 3 2 1 1 160 | 213 150 106 75 53 37 26 18 13 9 6 4 3 2 1 1 161 | 213 151 106 75 53 37 26 18 13 9 6 4 3 2 1 1 162 | 214 151 107 75 53 37 26 18 13 9 6 4 3 2 1 1 163 | 215 152 107 76 53 38 26 19 13 9 6 4 3 2 1 1 164 | 215 152 107 76 53 38 26 19 13 9 6 4 3 2 1 1 165 | 217 153 108 76 54 38 27 19 13 9 6 4 3 2 1 1 166 | 217 153 108 76 54 38 27 19 13 9 6 4 3 2 1 1 167 | 218 154 109 77 54 38 27 19 13 9 6 4 3 2 1 1 168 | 219 155 109 77 54 38 27 19 13 9 6 4 3 2 1 1 169 | 220 155 110 77 55 38 27 19 13 9 6 4 3 2 1 1 170 | 221 156 110 78 55 39 27 19 13 9 6 4 3 2 1 1 171 | 221 156 110 78 55 39 27 19 13 9 6 4 3 2 1 1 172 | 222 157 111 78 55 39 27 19 13 9 6 4 3 2 1 1 173 | 223 158 111 79 55 39 27 19 13 9 6 4 3 2 1 1 174 | 224 158 112 79 56 39 28 19 14 9 7 4 3 2 1 1 175 | 224 159 112 79 56 39 28 19 14 9 7 4 3 2 1 1 176 | 225 159 112 79 56 39 28 19 14 9 7 4 3 2 1 1 177 | 226 159 113 79 56 39 28 19 14 9 7 4 3 2 1 1 178 | 227 160 113 80 56 40 28 20 14 10 7 5 3 2 1 1 179 | 227 161 113 80 56 40 28 20 14 10 7 5 3 2 1 1 180 | 228 161 114 80 57 40 28 20 14 10 7 5 3 2 1 1 181 | 229 162 114 81 57 40 28 20 14 10 7 5 3 2 1 1 182 | 229 162 114 81 57 40 28 20 14 10 7 5 3 2 1 1 183 | 230 162 115 81 57 40 28 20 14 10 7 5 3 2 1 1 184 | 231 163 115 81 57 40 28 20 14 10 7 5 3 2 1 1 185 | 231 163 115 81 57 40 28 20 14 10 7 5 3 2 1 1 186 | 232 164 116 82 58 41 29 20 14 10 7 5 3 2 1 1 187 | 232 164 116 82 58 41 29 20 14 10 7 5 3 2 1 1 188 | 233 165 116 82 58 41 29 20 14 10 7 5 3 2 1 1 189 | 234 165 117 82 58 41 29 20 14 10 7 5 3 2 1 1 190 | 234 166 117 83 58 41 29 20 14 10 7 5 3 2 1 1 191 | 235 166 117 83 58 41 29 20 14 10 7 5 3 2 1 1 192 | 236 166 118 83 59 41 29 20 14 10 7 5 3 2 1 1 193 | 236 167 118 83 59 41 29 20 14 10 7 5 3 2 1 1 194 | 237 167 118 83 59 41 29 20 14 10 7 5 3 2 1 1 195 | 238 168 119 84 59 42 29 21 14 10 7 5 3 2 1 1 196 | 238 168 119 84 59 42 29 21 14 10 7 5 3 2 1 1 197 | 239 169 119 84 59 42 29 21 14 10 7 5 3 2 1 1 198 | 239 169 119 84 59 42 29 21 14 10 7 5 3 2 1 1 199 | 239 169 119 84 59 42 29 21 14 10 7 5 3 2 1 1 200 | 240 170 120 85 60 42 30 21 15 10 7 5 3 2 1 1 201 | 241 170 120 85 60 42 30 21 15 10 7 5 3 2 1 1 202 | 241 171 120 85 60 42 30 21 15 10 7 5 3 2 1 1 203 | 241 171 120 85 60 42 30 21 15 10 7 5 3 2 1 1 204 | 242 171 121 85 60 42 30 21 15 10 7 5 3 2 1 1 205 | 243 172 121 86 60 43 30 21 15 10 7 5 3 2 1 1 206 | 243 172 121 86 60 43 30 21 15 10 7 5 3 2 1 1 207 | 243 172 121 86 60 43 30 21 15 10 7 5 3 2 1 1 208 | 244 172 122 86 61 43 30 21 15 10 7 5 3 2 1 1 209 | 245 173 122 86 61 43 30 21 15 10 7 5 3 2 1 1 210 | 245 173 122 86 61 43 30 21 15 10 7 5 3 2 1 1 211 | 245 173 122 86 61 43 30 21 15 10 7 5 3 2 1 1 212 | 246 174 123 87 61 43 30 21 15 10 7 5 3 2 1 1 213 | 246 174 123 87 61 43 30 21 15 10 7 5 3 2 1 1 214 | 247 174 123 87 61 43 30 21 15 10 7 5 3 2 1 1 215 | 247 174 123 87 61 43 30 21 15 10 7 5 3 2 1 1 216 | 247 175 123 87 61 43 30 21 15 10 7 5 3 2 1 1 217 | 248 175 124 87 62 43 31 21 15 10 7 5 3 2 1 1 218 | 248 175 124 87 62 43 31 21 15 10 7 5 3 2 1 1 219 | 249 176 124 88 62 44 31 22 15 11 7 5 3 2 1 1 220 | 249 176 124 88 62 44 31 22 15 11 7 5 3 2 1 1 221 | 249 176 124 88 62 44 31 22 15 11 7 5 3 2 1 1 222 | 249 176 124 88 62 44 31 22 15 11 7 5 3 2 1 1 223 | 250 177 125 88 62 44 31 22 15 11 7 5 3 2 1 1 224 | 250 177 125 88 62 44 31 22 15 11 7 5 3 2 1 1 225 | 250 177 125 88 62 44 31 22 15 11 7 5 3 2 1 1 226 | 251 177 125 88 62 44 31 22 15 11 7 5 3 2 1 1 227 | 251 177 125 88 62 44 31 22 15 11 7 5 3 2 1 1 228 | 251 178 125 89 62 44 31 22 15 11 7 5 3 2 1 1 229 | 251 178 125 89 62 44 31 22 15 11 7 5 3 2 1 1 230 | 251 178 125 89 62 44 31 22 15 11 7 5 3 2 1 1 231 | 252 178 126 89 63 44 31 22 15 11 7 5 3 2 1 1 232 | 252 178 126 89 63 44 31 22 15 11 7 5 3 2 1 1 233 | 252 178 126 89 63 44 31 22 15 11 7 5 3 2 1 1 234 | 253 179 126 89 63 44 31 22 15 11 7 5 3 2 1 1 235 | 253 179 126 89 63 44 31 22 15 11 7 5 3 2 1 1 236 | 253 179 126 89 63 44 31 22 15 11 7 5 3 2 1 1 237 | 253 179 126 89 63 44 31 22 15 11 7 5 3 2 1 1 238 | 253 179 126 89 63 44 31 22 15 11 7 5 3 2 1 1 239 | 253 179 126 89 63 44 31 22 15 11 7 5 3 2 1 1 240 | 253 179 126 89 63 44 31 22 15 11 7 5 3 2 1 1 241 | 254 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 242 | 254 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 243 | 254 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 244 | 254 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 245 | 254 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 246 | 254 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 247 | 254 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 248 | 255 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 249 | 255 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 250 | 255 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 251 | 255 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 252 | 255 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 253 | 255 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 254 | 255 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 255 | 255 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 256 | 255 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 257 | 255 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 258 | 255 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 259 | 255 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 260 | 255 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 261 | 255 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 262 | 255 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 263 | 255 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 264 | 254 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 265 | 254 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 266 | 254 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 267 | 254 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 268 | 254 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 269 | 254 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 270 | 254 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 271 | 253 179 126 89 63 44 31 22 15 11 7 5 3 2 1 1 272 | 253 179 126 89 63 44 31 22 15 11 7 5 3 2 1 1 273 | 253 179 126 89 63 44 31 22 15 11 7 5 3 2 1 1 274 | 253 179 126 89 63 44 31 22 15 11 7 5 3 2 1 1 275 | 253 179 126 89 63 44 31 22 15 11 7 5 3 2 1 1 276 | 253 179 126 89 63 44 31 22 15 11 7 5 3 2 1 1 277 | 253 179 126 89 63 44 31 22 15 11 7 5 3 2 1 1 278 | 252 178 126 89 63 44 31 22 15 11 7 5 3 2 1 1 279 | 252 178 126 89 63 44 31 22 15 11 7 5 3 2 1 1 280 | 252 178 126 89 63 44 31 22 15 11 7 5 3 2 1 1 281 | 251 178 125 89 62 44 31 22 15 11 7 5 3 2 1 1 282 | 251 178 125 89 62 44 31 22 15 11 7 5 3 2 1 1 283 | 251 178 125 89 62 44 31 22 15 11 7 5 3 2 1 1 284 | 251 177 125 88 62 44 31 22 15 11 7 5 3 2 1 1 285 | 251 177 125 88 62 44 31 22 15 11 7 5 3 2 1 1 286 | 250 177 125 88 62 44 31 22 15 11 7 5 3 2 1 1 287 | 250 177 125 88 62 44 31 22 15 11 7 5 3 2 1 1 288 | 250 177 125 88 62 44 31 22 15 11 7 5 3 2 1 1 289 | 249 176 124 88 62 44 31 22 15 11 7 5 3 2 1 1 290 | 249 176 124 88 62 44 31 22 15 11 7 5 3 2 1 1 291 | 249 176 124 88 62 44 31 22 15 11 7 5 3 2 1 1 292 | 249 176 124 88 62 44 31 22 15 11 7 5 3 2 1 1 293 | 248 175 124 87 62 43 31 21 15 10 7 5 3 2 1 1 294 | 248 175 124 87 62 43 31 21 15 10 7 5 3 2 1 1 295 | 247 175 123 87 61 43 30 21 15 10 7 5 3 2 1 1 296 | 247 174 123 87 61 43 30 21 15 10 7 5 3 2 1 1 297 | 247 174 123 87 61 43 30 21 15 10 7 5 3 2 1 1 298 | 246 174 123 87 61 43 30 21 15 10 7 5 3 2 1 1 299 | 246 174 123 87 61 43 30 21 15 10 7 5 3 2 1 1 300 | 245 173 122 86 61 43 30 21 15 10 7 5 3 2 1 1 301 | 245 173 122 86 61 43 30 21 15 10 7 5 3 2 1 1 302 | 245 173 122 86 61 43 30 21 15 10 7 5 3 2 1 1 303 | 244 172 122 86 61 43 30 21 15 10 7 5 3 2 1 1 304 | 243 172 121 86 60 43 30 21 15 10 7 5 3 2 1 1 305 | 243 172 121 86 60 43 30 21 15 10 7 5 3 2 1 1 306 | 243 172 121 86 60 43 30 21 15 10 7 5 3 2 1 1 307 | 242 171 121 85 60 42 30 21 15 10 7 5 3 2 1 1 308 | 241 171 120 85 60 42 30 21 15 10 7 5 3 2 1 1 309 | 241 171 120 85 60 42 30 21 15 10 7 5 3 2 1 1 310 | 241 170 120 85 60 42 30 21 15 10 7 5 3 2 1 1 311 | 240 170 120 85 60 42 30 21 15 10 7 5 3 2 1 1 312 | 239 169 119 84 59 42 29 21 14 10 7 5 3 2 1 1 313 | 239 169 119 84 59 42 29 21 14 10 7 5 3 2 1 1 314 | 239 169 119 84 59 42 29 21 14 10 7 5 3 2 1 1 315 | 238 168 119 84 59 42 29 21 14 10 7 5 3 2 1 1 316 | 238 168 119 84 59 42 29 21 14 10 7 5 3 2 1 1 317 | 237 167 118 83 59 41 29 20 14 10 7 5 3 2 1 1 318 | 236 167 118 83 59 41 29 20 14 10 7 5 3 2 1 1 319 | 236 166 118 83 59 41 29 20 14 10 7 5 3 2 1 1 320 | 235 166 117 83 58 41 29 20 14 10 7 5 3 2 1 1 321 | 234 166 117 83 58 41 29 20 14 10 7 5 3 2 1 1 322 | 234 165 117 82 58 41 29 20 14 10 7 5 3 2 1 1 323 | 233 165 116 82 58 41 29 20 14 10 7 5 3 2 1 1 324 | 232 164 116 82 58 41 29 20 14 10 7 5 3 2 1 1 325 | 232 164 116 82 58 41 29 20 14 10 7 5 3 2 1 1 326 | 231 163 115 81 57 40 28 20 14 10 7 5 3 2 1 1 327 | 231 163 115 81 57 40 28 20 14 10 7 5 3 2 1 1 328 | 230 162 115 81 57 40 28 20 14 10 7 5 3 2 1 1 329 | 229 162 114 81 57 40 28 20 14 10 7 5 3 2 1 1 330 | 229 162 114 81 57 40 28 20 14 10 7 5 3 2 1 1 331 | 228 161 114 80 57 40 28 20 14 10 7 5 3 2 1 1 332 | 227 161 113 80 56 40 28 20 14 10 7 5 3 2 1 1 333 | 227 160 113 80 56 40 28 20 14 10 7 5 3 2 1 1 334 | 226 159 113 79 56 39 28 19 14 9 7 4 3 2 1 1 335 | 225 159 112 79 56 39 28 19 14 9 7 4 3 2 1 1 336 | 224 159 112 79 56 39 28 19 14 9 7 4 3 2 1 1 337 | 224 158 112 79 56 39 28 19 14 9 7 4 3 2 1 1 338 | 223 158 111 79 55 39 27 19 13 9 6 4 3 2 1 1 339 | 222 157 111 78 55 39 27 19 13 9 6 4 3 2 1 1 340 | 221 156 110 78 55 39 27 19 13 9 6 4 3 2 1 1 341 | 221 156 110 78 55 39 27 19 13 9 6 4 3 2 1 1 342 | 220 155 110 77 55 38 27 19 13 9 6 4 3 2 1 1 343 | 219 155 109 77 54 38 27 19 13 9 6 4 3 2 1 1 344 | 218 154 109 77 54 38 27 19 13 9 6 4 3 2 1 1 345 | 217 153 108 76 54 38 27 19 13 9 6 4 3 2 1 1 346 | 217 153 108 76 54 38 27 19 13 9 6 4 3 2 1 1 347 | 215 152 107 76 53 38 26 19 13 9 6 4 3 2 1 1 348 | 215 152 107 76 53 38 26 19 13 9 6 4 3 2 1 1 349 | 214 151 107 75 53 37 26 18 13 9 6 4 3 2 1 1 350 | 213 151 106 75 53 37 26 18 13 9 6 4 3 2 1 1 351 | 213 150 106 75 53 37 26 18 13 9 6 4 3 2 1 1 352 | 211 149 105 74 52 37 26 18 13 9 6 4 3 2 1 1 353 | 211 149 105 74 52 37 26 18 13 9 6 4 3 2 1 1 354 | 210 148 105 74 52 37 26 18 13 9 6 4 3 2 1 1 355 | 209 147 104 73 52 36 26 18 13 9 6 4 3 2 1 1 356 | 208 147 104 73 52 36 26 18 13 9 6 4 3 2 1 1 357 | 207 146 103 73 51 36 25 18 12 9 6 4 3 2 1 1 358 | 206 146 103 73 51 36 25 18 12 9 6 4 3 2 1 1 359 | 205 145 102 72 51 36 25 18 12 9 6 4 3 2 1 1 360 | 204 144 102 72 51 36 25 18 12 9 6 4 3 2 1 1 361 | 203 144 101 72 50 36 25 18 12 9 6 4 3 2 1 1 362 | 202 143 101 71 50 35 25 17 12 8 6 4 3 2 1 1 363 | 201 142 100 71 50 35 25 17 12 8 6 4 3 2 1 1 364 | 200 141 100 70 50 35 25 17 12 8 6 4 3 2 1 1 365 | 199 141 99 70 49 35 24 17 12 8 6 4 3 2 1 1 366 | 199 140 99 70 49 35 24 17 12 8 6 4 3 2 1 1 367 | 198 140 99 70 49 35 24 17 12 8 6 4 3 2 1 1 368 | 196 139 98 69 49 34 24 17 12 8 6 4 3 2 1 1 369 | 195 138 97 69 48 34 24 17 12 8 6 4 3 2 1 1 370 | 194 137 97 68 48 34 24 17 12 8 6 4 3 2 1 1 371 | 193 137 96 68 48 34 24 17 12 8 6 4 3 2 1 1 372 | 192 136 96 68 48 34 24 17 12 8 6 4 3 2 1 1 373 | 191 135 95 67 47 33 23 16 11 8 5 4 2 2 1 1 374 | 190 134 95 67 47 33 23 16 11 8 5 4 2 2 1 1 375 | 189 134 94 67 47 33 23 16 11 8 5 4 2 2 1 1 376 | 188 133 94 66 47 33 23 16 11 8 5 4 2 2 1 1 377 | 187 132 93 66 46 33 23 16 11 8 5 4 2 2 1 1 378 | 186 131 93 65 46 32 23 16 11 8 5 4 2 2 1 1 379 | 185 131 92 65 46 32 23 16 11 8 5 4 2 2 1 1 380 | 184 130 92 65 46 32 23 16 11 8 5 4 2 2 1 1 381 | 183 129 91 64 45 32 22 16 11 8 5 4 2 2 1 1 382 | 182 128 91 64 45 32 22 16 11 8 5 4 2 2 1 1 383 | 181 128 90 64 45 32 22 16 11 8 5 4 2 2 1 1 384 | 180 127 90 63 45 31 22 15 11 7 5 3 2 1 1 0 385 | 179 126 89 63 44 31 22 15 11 7 5 3 2 1 1 0 386 | 177 125 88 62 44 31 22 15 11 7 5 3 2 1 1 0 387 | 176 124 88 62 44 31 22 15 11 7 5 3 2 1 1 0 388 | 175 124 87 62 43 31 21 15 10 7 5 3 2 1 1 0 389 | 174 123 87 61 43 30 21 15 10 7 5 3 2 1 1 0 390 | 173 122 86 61 43 30 21 15 10 7 5 3 2 1 1 0 391 | 172 121 86 60 43 30 21 15 10 7 5 3 2 1 1 0 392 | 171 120 85 60 42 30 21 15 10 7 5 3 2 1 1 0 393 | 169 119 84 59 42 29 21 14 10 7 5 3 2 1 1 0 394 | 168 119 84 59 42 29 21 14 10 7 5 3 2 1 1 0 395 | 167 118 83 59 41 29 20 14 10 7 5 3 2 1 1 0 396 | 166 117 83 58 41 29 20 14 10 7 5 3 2 1 1 0 397 | 165 116 82 58 41 29 20 14 10 7 5 3 2 1 1 0 398 | 163 115 81 57 40 28 20 14 10 7 5 3 2 1 1 0 399 | 162 114 81 57 40 28 20 14 10 7 5 3 2 1 1 0 400 | 161 114 80 57 40 28 20 14 10 7 5 3 2 1 1 0 401 | 160 113 80 56 40 28 20 14 10 7 5 3 2 1 1 0 402 | 159 112 79 56 39 28 19 14 9 7 4 3 2 1 1 0 403 | 157 111 78 55 39 27 19 13 9 6 4 3 2 1 1 0 404 | 156 110 78 55 39 27 19 13 9 6 4 3 2 1 1 0 405 | 155 109 77 54 38 27 19 13 9 6 4 3 2 1 1 0 406 | 153 108 76 54 38 27 19 13 9 6 4 3 2 1 1 0 407 | 152 107 76 53 38 26 19 13 9 6 4 3 2 1 1 0 408 | 151 107 75 53 37 26 18 13 9 6 4 3 2 1 1 0 409 | 150 106 75 53 37 26 18 13 9 6 4 3 2 1 1 0 410 | 149 105 74 52 37 26 18 13 9 6 4 3 2 1 1 0 411 | 147 104 73 52 36 26 18 13 9 6 4 3 2 1 1 0 412 | 146 103 73 51 36 25 18 12 9 6 4 3 2 1 1 0 413 | 145 102 72 51 36 25 18 12 9 6 4 3 2 1 1 0 414 | 143 101 71 50 35 25 17 12 8 6 4 3 2 1 1 0 415 | 142 100 71 50 35 25 17 12 8 6 4 3 2 1 1 0 416 | 141 99 70 49 35 24 17 12 8 6 4 3 2 1 1 0 417 | 140 99 70 49 35 24 17 12 8 6 4 3 2 1 1 0 418 | 138 97 69 48 34 24 17 12 8 6 4 3 2 1 1 0 419 | 137 97 68 48 34 24 17 12 8 6 4 3 2 1 1 0 420 | 135 96 67 48 33 24 16 12 8 6 4 3 2 1 1 0 421 | 134 95 67 47 33 23 16 11 8 5 4 2 2 1 1 0 422 | 133 94 66 47 33 23 16 11 8 5 4 2 2 1 1 0 423 | 131 93 65 46 32 23 16 11 8 5 4 2 2 1 1 0 424 | 130 92 65 46 32 23 16 11 8 5 4 2 2 1 1 0 425 | 129 91 64 45 32 22 16 11 8 5 4 2 2 1 1 0 426 | 128 90 64 45 32 22 16 11 8 5 4 2 2 1 1 0 427 | 126 89 63 44 31 22 15 11 7 5 3 2 1 1 0 0 428 | 125 88 62 44 31 22 15 11 7 5 3 2 1 1 0 0 429 | 123 87 61 43 30 21 15 10 7 5 3 2 1 1 0 0 430 | 122 86 61 43 30 21 15 10 7 5 3 2 1 1 0 0 431 | 120 85 60 42 30 21 15 10 7 5 3 2 1 1 0 0 432 | 119 84 59 42 29 21 14 10 7 5 3 2 1 1 0 0 433 | 118 83 59 41 29 20 14 10 7 5 3 2 1 1 0 0 434 | 116 82 58 41 29 20 14 10 7 5 3 2 1 1 0 0 435 | 115 81 57 40 28 20 14 10 7 5 3 2 1 1 0 0 436 | 114 80 57 40 28 20 14 10 7 5 3 2 1 1 0 0 437 | 112 79 56 39 28 19 14 9 7 4 3 2 1 1 0 0 438 | 111 78 55 39 27 19 13 9 6 4 3 2 1 1 0 0 439 | 110 77 55 38 27 19 13 9 6 4 3 2 1 1 0 0 440 | 108 76 54 38 27 19 13 9 6 4 3 2 1 1 0 0 441 | 107 75 53 37 26 18 13 9 6 4 3 2 1 1 0 0 442 | 105 74 52 37 26 18 13 9 6 4 3 2 1 1 0 0 443 | 104 73 52 36 26 18 13 9 6 4 3 2 1 1 0 0 444 | 102 72 51 36 25 18 12 9 6 4 3 2 1 1 0 0 445 | 101 71 50 35 25 17 12 8 6 4 3 2 1 1 0 0 446 | 99 70 49 35 24 17 12 8 6 4 3 2 1 1 0 0 447 | 98 69 49 34 24 17 12 8 6 4 3 2 1 1 0 0 448 | 96 68 48 34 24 17 12 8 6 4 3 2 1 1 0 0 449 | 95 67 47 33 23 16 11 8 5 4 2 2 1 1 0 0 450 | 94 66 47 33 23 16 11 8 5 4 2 2 1 1 0 0 451 | 92 65 46 32 23 16 11 8 5 4 2 2 1 1 0 0 452 | 91 64 45 32 22 16 11 8 5 4 2 2 1 1 0 0 453 | 89 63 44 31 22 15 11 7 5 3 2 1 1 0 0 0 454 | 88 62 44 31 22 15 11 7 5 3 2 1 1 0 0 0 455 | 86 61 43 30 21 15 10 7 5 3 2 1 1 0 0 0 456 | 85 60 42 30 21 15 10 7 5 3 2 1 1 0 0 0 457 | 83 59 41 29 20 14 10 7 5 3 2 1 1 0 0 0 458 | 82 58 41 29 20 14 10 7 5 3 2 1 1 0 0 0 459 | 80 57 40 28 20 14 10 7 5 3 2 1 1 0 0 0 460 | 79 56 39 28 19 14 9 7 4 3 2 1 1 0 0 0 461 | 77 55 38 27 19 13 9 6 4 3 2 1 1 0 0 0 462 | 76 53 38 26 19 13 9 6 4 3 2 1 1 0 0 0 463 | 74 52 37 26 18 13 9 6 4 3 2 1 1 0 0 0 464 | 73 51 36 25 18 12 9 6 4 3 2 1 1 0 0 0 465 | 71 50 35 25 17 12 8 6 4 3 2 1 1 0 0 0 466 | 70 49 35 24 17 12 8 6 4 3 2 1 1 0 0 0 467 | 68 48 34 24 17 12 8 6 4 3 2 1 1 0 0 0 468 | 67 47 33 23 16 11 8 5 4 2 2 1 1 0 0 0 469 | 65 46 32 23 16 11 8 5 4 2 2 1 1 0 0 0 470 | 64 45 32 22 16 11 8 5 4 2 2 1 1 0 0 0 471 | 62 44 31 22 15 11 7 5 3 2 1 1 0 0 0 0 472 | 61 43 30 21 15 10 7 5 3 2 1 1 0 0 0 0 473 | 59 42 29 21 14 10 7 5 3 2 1 1 0 0 0 0 474 | 58 41 29 20 14 10 7 5 3 2 1 1 0 0 0 0 475 | 56 40 28 20 14 10 7 5 3 2 1 1 0 0 0 0 476 | 55 39 27 19 13 9 6 4 3 2 1 1 0 0 0 0 477 | 53 37 26 18 13 9 6 4 3 2 1 1 0 0 0 0 478 | 52 36 26 18 13 9 6 4 3 2 1 1 0 0 0 0 479 | 50 35 25 17 12 8 6 4 3 2 1 1 0 0 0 0 480 | 49 34 24 17 12 8 6 4 3 2 1 1 0 0 0 0 481 | 47 33 23 16 11 8 5 4 2 2 1 1 0 0 0 0 482 | 46 32 23 16 11 8 5 4 2 2 1 1 0 0 0 0 483 | 44 31 22 15 11 7 5 3 2 1 1 0 0 0 0 0 484 | 42 30 21 15 10 7 5 3 2 1 1 0 0 0 0 0 485 | 41 29 20 14 10 7 5 3 2 1 1 0 0 0 0 0 486 | 39 28 19 14 9 7 4 3 2 1 1 0 0 0 0 0 487 | 38 27 19 13 9 6 4 3 2 1 1 0 0 0 0 0 488 | 36 25 18 12 9 6 4 3 2 1 1 0 0 0 0 0 489 | 35 24 17 12 8 6 4 3 2 1 1 0 0 0 0 0 490 | 33 23 16 11 8 5 4 2 2 1 1 0 0 0 0 0 491 | 32 22 16 11 8 5 4 2 2 1 1 0 0 0 0 0 492 | 30 21 15 10 7 5 3 2 1 1 0 0 0 0 0 0 493 | 28 20 14 10 7 5 3 2 1 1 0 0 0 0 0 0 494 | 27 19 13 9 6 4 3 2 1 1 0 0 0 0 0 0 495 | 25 18 12 9 6 4 3 2 1 1 0 0 0 0 0 0 496 | 24 17 12 8 6 4 3 2 1 1 0 0 0 0 0 0 497 | 22 16 11 8 5 4 2 2 1 1 0 0 0 0 0 0 498 | 21 14 10 7 5 3 2 1 1 0 0 0 0 0 0 0 499 | 19 13 9 6 4 3 2 1 1 0 0 0 0 0 0 0 500 | 18 12 9 6 4 3 2 1 1 0 0 0 0 0 0 0 501 | 16 11 8 5 4 2 2 1 1 0 0 0 0 0 0 0 502 | 14 10 7 5 3 2 1 1 0 0 0 0 0 0 0 0 503 | 13 9 6 4 3 2 1 1 0 0 0 0 0 0 0 0 504 | 11 8 5 4 2 2 1 1 0 0 0 0 0 0 0 0 505 | 10 7 5 3 2 1 1 0 0 0 0 0 0 0 0 0 506 | 8 6 4 3 2 1 1 0 0 0 0 0 0 0 0 0 507 | 7 4 3 2 1 1 0 0 0 0 0 0 0 0 0 0 508 | 5 3 2 1 1 0 0 0 0 0 0 0 0 0 0 0 509 | 3 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 510 | 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 511 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 512 | -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 513 | -3 -2 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 514 | -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 515 | -6 -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 516 | -8 -5 -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 517 | -9 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 518 | -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 519 | -12 -9 -6 -5 -3 -3 -2 -2 -1 -1 -1 -1 -1 -1 -1 -1 520 | -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 -1 -1 521 | -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 -1 -1 522 | -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 -1 -1 -1 -1 -1 -1 523 | -19 -13 -10 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 -1 524 | -20 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 -1 525 | -22 -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 -1 526 | -23 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 -1 -1 -1 -1 -1 527 | -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 528 | -26 -19 -13 -10 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 529 | -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 530 | -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 531 | -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 532 | -33 -23 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 -1 -1 -1 -1 533 | -34 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 -1 -1 -1 -1 534 | -36 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 -1 535 | -37 -26 -19 -13 -10 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 -1 536 | -39 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 -1 537 | -40 -29 -20 -15 -10 -8 -5 -4 -3 -2 -2 -1 -1 -1 -1 -1 538 | -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 -1 -1 539 | -43 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 -1 -1 540 | -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 -1 -1 -1 -1 -1 541 | -47 -33 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 -1 -1 -1 542 | -48 -34 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 -1 -1 -1 543 | -50 -35 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 544 | -51 -36 -26 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 545 | -53 -37 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 546 | -54 -38 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 547 | -56 -40 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 548 | -57 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 -1 549 | -59 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 -1 550 | -60 -43 -30 -22 -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 -1 551 | -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 -1 552 | -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 -1 -1 -1 -1 553 | -65 -46 -33 -23 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 -1 -1 554 | -66 -47 -33 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 -1 -1 555 | -68 -48 -34 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 -1 -1 556 | -69 -49 -35 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 -1 -1 557 | -71 -50 -36 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 -1 -1 558 | -72 -51 -36 -26 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 -1 -1 559 | -74 -52 -37 -26 -19 -13 -10 -7 -5 -4 -3 -2 -2 -1 -1 -1 560 | -75 -53 -38 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 -1 561 | -77 -54 -39 -27 -20 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 -1 562 | -78 -56 -39 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 -1 563 | -80 -57 -40 -29 -20 -15 -10 -8 -5 -4 -3 -2 -2 -1 -1 -1 564 | -81 -58 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 565 | -83 -59 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 566 | -84 -60 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 567 | -86 -61 -43 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 568 | -87 -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 569 | -89 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 -1 -1 -1 570 | -90 -64 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 -1 -1 -1 571 | -92 -65 -46 -33 -23 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 -1 572 | -93 -66 -47 -33 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 -1 573 | -95 -67 -48 -34 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 -1 574 | -96 -68 -48 -34 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 -1 575 | -97 -69 -49 -35 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 -1 576 | -99 -70 -50 -35 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 -1 577 |-100 -71 -50 -36 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 -1 578 |-102 -72 -51 -36 -26 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 -1 579 |-103 -73 -52 -37 -26 -19 -13 -10 -7 -5 -4 -3 -2 -2 -1 -1 580 |-105 -74 -53 -37 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 581 |-106 -75 -53 -38 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 582 |-108 -76 -54 -38 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 583 |-109 -77 -55 -39 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 584 |-111 -78 -56 -39 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 585 |-112 -79 -56 -40 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 586 |-113 -80 -57 -40 -29 -20 -15 -10 -8 -5 -4 -3 -2 -2 -1 -1 587 |-115 -81 -58 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 588 |-116 -82 -58 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 589 |-117 -83 -59 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 590 |-119 -84 -60 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 591 |-120 -85 -60 -43 -30 -22 -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 592 |-121 -86 -61 -43 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 -1 -1 593 |-123 -87 -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 -1 -1 594 |-124 -88 -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 -1 -1 595 |-126 -89 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 -1 -1 596 |-127 -90 -64 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 -1 -1 597 |-129 -91 -65 -46 -33 -23 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 598 |-130 -92 -65 -46 -33 -23 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 599 |-131 -93 -66 -47 -33 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 600 |-132 -94 -66 -47 -33 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 601 |-134 -95 -67 -48 -34 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 602 |-135 -96 -68 -48 -34 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 603 |-136 -97 -68 -49 -34 -25 -17 -13 -9 -7 -5 -4 -3 -2 -2 -1 604 |-138 -98 -69 -49 -35 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 605 |-139 -98 -70 -49 -35 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 606 |-141 -100 -71 -50 -36 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 607 |-142 -100 -71 -50 -36 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 608 |-143 -101 -72 -51 -36 -26 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 609 |-144 -102 -72 -51 -36 -26 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 610 |-146 -103 -73 -52 -37 -26 -19 -13 -10 -7 -5 -4 -3 -2 -2 -1 611 |-147 -104 -74 -52 -37 -26 -19 -13 -10 -7 -5 -4 -3 -2 -2 -1 612 |-148 -105 -74 -53 -37 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 -1 613 |-150 -106 -75 -53 -38 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 -1 614 |-151 -107 -76 -54 -38 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 -1 615 |-152 -108 -76 -54 -38 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 -1 616 |-153 -108 -77 -54 -39 -27 -20 -14 -10 -7 -5 -4 -3 -2 -2 -1 617 |-154 -109 -77 -55 -39 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 -1 618 |-156 -110 -78 -55 -39 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 -1 619 |-157 -111 -79 -56 -40 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 -1 620 |-158 -112 -79 -56 -40 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 -1 621 |-160 -113 -80 -57 -40 -29 -20 -15 -10 -8 -5 -4 -3 -2 -2 -1 622 |-161 -114 -81 -57 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 623 |-162 -115 -81 -58 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 624 |-163 -115 -82 -58 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 625 |-164 -116 -82 -58 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 626 |-166 -117 -83 -59 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 627 |-167 -118 -84 -59 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 628 |-168 -119 -84 -60 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 629 |-169 -120 -85 -60 -43 -30 -22 -15 -11 -8 -6 -4 -3 -2 -2 -1 630 |-170 -120 -85 -60 -43 -30 -22 -15 -11 -8 -6 -4 -3 -2 -2 -1 631 |-172 -121 -86 -61 -43 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 -1 632 |-173 -122 -87 -61 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 -1 633 |-174 -123 -87 -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 -1 634 |-175 -124 -88 -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 -1 635 |-176 -125 -88 -63 -44 -32 -22 -16 -11 -8 -6 -4 -3 -2 -2 -1 636 |-177 -125 -89 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 -1 637 |-178 -126 -89 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 -1 638 |-180 -127 -90 -64 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 -1 639 |-181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 -1 640 |-182 -129 -91 -65 -46 -33 -23 -17 -12 -9 -6 -5 -3 -3 -2 -2 641 |-183 -129 -92 -65 -46 -33 -23 -17 -12 -9 -6 -5 -3 -3 -2 -2 642 |-184 -130 -92 -65 -46 -33 -23 -17 -12 -9 -6 -5 -3 -3 -2 -2 643 |-185 -131 -93 -66 -47 -33 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 644 |-186 -132 -93 -66 -47 -33 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 645 |-187 -132 -94 -66 -47 -33 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 646 |-188 -133 -94 -67 -47 -34 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 647 |-189 -134 -95 -67 -48 -34 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 648 |-190 -135 -95 -68 -48 -34 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 649 |-191 -135 -96 -68 -48 -34 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 650 |-192 -136 -96 -68 -48 -34 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 651 |-193 -137 -97 -69 -49 -35 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 652 |-194 -138 -97 -69 -49 -35 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 653 |-195 -138 -98 -69 -49 -35 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 654 |-196 -139 -98 -70 -49 -35 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 655 |-197 -140 -99 -70 -50 -35 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 656 |-199 -141 -100 -71 -50 -36 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 657 |-200 -141 -100 -71 -50 -36 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 658 |-200 -142 -100 -71 -50 -36 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 659 |-201 -142 -101 -71 -51 -36 -26 -18 -13 -9 -7 -5 -4 -3 -2 -2 660 |-202 -143 -101 -72 -51 -36 -26 -18 -13 -9 -7 -5 -4 -3 -2 -2 661 |-203 -144 -102 -72 -51 -36 -26 -18 -13 -9 -7 -5 -4 -3 -2 -2 662 |-204 -145 -102 -73 -51 -37 -26 -19 -13 -10 -7 -5 -4 -3 -2 -2 663 |-205 -145 -103 -73 -52 -37 -26 -19 -13 -10 -7 -5 -4 -3 -2 -2 664 |-206 -146 -103 -73 -52 -37 -26 -19 -13 -10 -7 -5 -4 -3 -2 -2 665 |-207 -147 -104 -74 -52 -37 -26 -19 -13 -10 -7 -5 -4 -3 -2 -2 666 |-208 -147 -104 -74 -52 -37 -26 -19 -13 -10 -7 -5 -4 -3 -2 -2 667 |-209 -148 -105 -74 -53 -37 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 668 |-210 -148 -105 -74 -53 -37 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 669 |-211 -149 -106 -75 -53 -38 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 670 |-212 -150 -106 -75 -53 -38 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 671 |-212 -150 -106 -75 -53 -38 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 672 |-214 -151 -107 -76 -54 -38 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 673 |-214 -152 -107 -76 -54 -38 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 674 |-215 -152 -108 -76 -54 -38 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 675 |-216 -153 -108 -77 -54 -39 -27 -20 -14 -10 -7 -5 -4 -3 -2 -2 676 |-216 -153 -108 -77 -54 -39 -27 -20 -14 -10 -7 -5 -4 -3 -2 -2 677 |-218 -154 -109 -77 -55 -39 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 678 |-218 -154 -109 -77 -55 -39 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 679 |-219 -155 -110 -78 -55 -39 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 680 |-220 -156 -110 -78 -55 -39 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 681 |-221 -156 -111 -78 -56 -39 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 682 |-222 -157 -111 -79 -56 -40 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 683 |-222 -157 -111 -79 -56 -40 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 684 |-223 -158 -112 -79 -56 -40 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 685 |-224 -159 -112 -80 -56 -40 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 686 |-225 -159 -113 -80 -57 -40 -29 -20 -15 -10 -8 -5 -4 -3 -2 -2 687 |-225 -160 -113 -80 -57 -40 -29 -20 -15 -10 -8 -5 -4 -3 -2 -2 688 |-226 -160 -113 -80 -57 -40 -29 -20 -15 -10 -8 -5 -4 -3 -2 -2 689 |-227 -160 -114 -80 -57 -40 -29 -20 -15 -10 -8 -5 -4 -3 -2 -2 690 |-228 -161 -114 -81 -57 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 691 |-228 -162 -114 -81 -57 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 692 |-229 -162 -115 -81 -58 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 693 |-230 -163 -115 -82 -58 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 694 |-230 -163 -115 -82 -58 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 695 |-231 -163 -116 -82 -58 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 696 |-232 -164 -116 -82 -58 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 697 |-232 -164 -116 -82 -58 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 698 |-233 -165 -117 -83 -59 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 699 |-233 -165 -117 -83 -59 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 700 |-234 -166 -117 -83 -59 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 701 |-235 -166 -118 -83 -59 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 702 |-235 -167 -118 -84 -59 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 703 |-236 -167 -118 -84 -59 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 704 |-237 -167 -119 -84 -60 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 705 |-237 -168 -119 -84 -60 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 706 |-238 -168 -119 -84 -60 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 707 |-239 -169 -120 -85 -60 -43 -30 -22 -15 -11 -8 -6 -4 -3 -2 -2 708 |-239 -169 -120 -85 -60 -43 -30 -22 -15 -11 -8 -6 -4 -3 -2 -2 709 |-240 -170 -120 -85 -60 -43 -30 -22 -15 -11 -8 -6 -4 -3 -2 -2 710 |-240 -170 -120 -85 -60 -43 -30 -22 -15 -11 -8 -6 -4 -3 -2 -2 711 |-240 -170 -120 -85 -60 -43 -30 -22 -15 -11 -8 -6 -4 -3 -2 -2 712 |-241 -171 -121 -86 -61 -43 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 713 |-242 -171 -121 -86 -61 -43 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 714 |-242 -172 -121 -86 -61 -43 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 715 |-242 -172 -121 -86 -61 -43 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 716 |-243 -172 -122 -86 -61 -43 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 717 |-244 -173 -122 -87 -61 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 718 |-244 -173 -122 -87 -61 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 719 |-244 -173 -122 -87 -61 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 720 |-245 -173 -123 -87 -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 721 |-246 -174 -123 -87 -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 722 |-246 -174 -123 -87 -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 723 |-246 -174 -123 -87 -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 724 |-247 -175 -124 -88 -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 725 |-247 -175 -124 -88 -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 726 |-248 -175 -124 -88 -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 727 |-248 -175 -124 -88 -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 728 |-248 -176 -124 -88 -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 729 |-249 -176 -125 -88 -63 -44 -32 -22 -16 -11 -8 -6 -4 -3 -2 -2 730 |-249 -176 -125 -88 -63 -44 -32 -22 -16 -11 -8 -6 -4 -3 -2 -2 731 |-250 -177 -125 -89 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 732 |-250 -177 -125 -89 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 733 |-250 -177 -125 -89 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 734 |-250 -177 -125 -89 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 735 |-251 -178 -126 -89 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 736 |-251 -178 -126 -89 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 737 |-251 -178 -126 -89 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 738 |-252 -178 -126 -89 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 739 |-252 -178 -126 -89 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 740 |-252 -179 -126 -90 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 741 |-252 -179 -126 -90 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 742 |-252 -179 -126 -90 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 743 |-253 -179 -127 -90 -64 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 744 |-253 -179 -127 -90 -64 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 745 |-253 -179 -127 -90 -64 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 746 |-254 -180 -127 -90 -64 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 747 |-254 -180 -127 -90 -64 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 748 |-254 -180 -127 -90 -64 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 749 |-254 -180 -127 -90 -64 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 750 |-254 -180 -127 -90 -64 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 751 |-254 -180 -127 -90 -64 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 752 |-254 -180 -127 -90 -64 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 753 |-255 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 754 |-255 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 755 |-255 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 756 |-255 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 757 |-255 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 758 |-255 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 759 |-255 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 760 |-256 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 761 |-256 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 762 |-256 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 763 |-256 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 764 |-256 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 765 |-256 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 766 |-256 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 767 |-256 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 768 |-256 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 769 |-256 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 770 |-256 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 771 |-256 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 772 |-256 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 773 |-256 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 774 |-256 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 775 |-256 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 776 |-255 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 777 |-255 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 778 |-255 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 779 |-255 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 780 |-255 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 781 |-255 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 782 |-255 -181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 783 |-254 -180 -127 -90 -64 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 784 |-254 -180 -127 -90 -64 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 785 |-254 -180 -127 -90 -64 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 786 |-254 -180 -127 -90 -64 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 787 |-254 -180 -127 -90 -64 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 788 |-254 -180 -127 -90 -64 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 789 |-254 -180 -127 -90 -64 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 790 |-253 -179 -127 -90 -64 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 791 |-253 -179 -127 -90 -64 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 792 |-253 -179 -127 -90 -64 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 793 |-252 -179 -126 -90 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 794 |-252 -179 -126 -90 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 795 |-252 -179 -126 -90 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 796 |-252 -178 -126 -89 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 797 |-252 -178 -126 -89 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 798 |-251 -178 -126 -89 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 799 |-251 -178 -126 -89 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 800 |-251 -178 -126 -89 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 801 |-250 -177 -125 -89 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 802 |-250 -177 -125 -89 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 803 |-250 -177 -125 -89 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 804 |-250 -177 -125 -89 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 805 |-249 -176 -125 -88 -63 -44 -32 -22 -16 -11 -8 -6 -4 -3 -2 -2 806 |-249 -176 -125 -88 -63 -44 -32 -22 -16 -11 -8 -6 -4 -3 -2 -2 807 |-248 -176 -124 -88 -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 808 |-248 -175 -124 -88 -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 809 |-248 -175 -124 -88 -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 810 |-247 -175 -124 -88 -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 811 |-247 -175 -124 -88 -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 812 |-246 -174 -123 -87 -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 813 |-246 -174 -123 -87 -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 814 |-246 -174 -123 -87 -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 815 |-245 -173 -123 -87 -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 816 |-244 -173 -122 -87 -61 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 817 |-244 -173 -122 -87 -61 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 818 |-244 -173 -122 -87 -61 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 819 |-243 -172 -122 -86 -61 -43 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 820 |-242 -172 -121 -86 -61 -43 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 821 |-242 -172 -121 -86 -61 -43 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 822 |-242 -171 -121 -86 -61 -43 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 823 |-241 -171 -121 -86 -61 -43 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 824 |-240 -170 -120 -85 -60 -43 -30 -22 -15 -11 -8 -6 -4 -3 -2 -2 825 |-240 -170 -120 -85 -60 -43 -30 -22 -15 -11 -8 -6 -4 -3 -2 -2 826 |-240 -170 -120 -85 -60 -43 -30 -22 -15 -11 -8 -6 -4 -3 -2 -2 827 |-239 -169 -120 -85 -60 -43 -30 -22 -15 -11 -8 -6 -4 -3 -2 -2 828 |-239 -169 -120 -85 -60 -43 -30 -22 -15 -11 -8 -6 -4 -3 -2 -2 829 |-238 -168 -119 -84 -60 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 830 |-237 -168 -119 -84 -60 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 831 |-237 -167 -119 -84 -60 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 832 |-236 -167 -118 -84 -59 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 833 |-235 -167 -118 -84 -59 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 834 |-235 -166 -118 -83 -59 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 835 |-234 -166 -117 -83 -59 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 836 |-233 -165 -117 -83 -59 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 837 |-233 -165 -117 -83 -59 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 838 |-232 -164 -116 -82 -58 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 839 |-232 -164 -116 -82 -58 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 840 |-231 -163 -116 -82 -58 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 841 |-230 -163 -115 -82 -58 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 842 |-230 -163 -115 -82 -58 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 843 |-229 -162 -115 -81 -58 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 844 |-228 -162 -114 -81 -57 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 845 |-228 -161 -114 -81 -57 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 846 |-227 -160 -114 -80 -57 -40 -29 -20 -15 -10 -8 -5 -4 -3 -2 -2 847 |-226 -160 -113 -80 -57 -40 -29 -20 -15 -10 -8 -5 -4 -3 -2 -2 848 |-225 -160 -113 -80 -57 -40 -29 -20 -15 -10 -8 -5 -4 -3 -2 -2 849 |-225 -159 -113 -80 -57 -40 -29 -20 -15 -10 -8 -5 -4 -3 -2 -2 850 |-224 -159 -112 -80 -56 -40 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 851 |-223 -158 -112 -79 -56 -40 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 852 |-222 -157 -111 -79 -56 -40 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 853 |-222 -157 -111 -79 -56 -40 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 854 |-221 -156 -111 -78 -56 -39 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 855 |-220 -156 -110 -78 -55 -39 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 856 |-219 -155 -110 -78 -55 -39 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 857 |-218 -154 -109 -77 -55 -39 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 858 |-218 -154 -109 -77 -55 -39 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 859 |-216 -153 -108 -77 -54 -39 -27 -20 -14 -10 -7 -5 -4 -3 -2 -2 860 |-216 -153 -108 -77 -54 -39 -27 -20 -14 -10 -7 -5 -4 -3 -2 -2 861 |-215 -152 -108 -76 -54 -38 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 862 |-214 -152 -107 -76 -54 -38 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 863 |-214 -151 -107 -76 -54 -38 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 864 |-212 -150 -106 -75 -53 -38 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 865 |-212 -150 -106 -75 -53 -38 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 866 |-211 -149 -106 -75 -53 -38 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 867 |-210 -148 -105 -74 -53 -37 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 868 |-209 -148 -105 -74 -53 -37 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 869 |-208 -147 -104 -74 -52 -37 -26 -19 -13 -10 -7 -5 -4 -3 -2 -2 870 |-207 -147 -104 -74 -52 -37 -26 -19 -13 -10 -7 -5 -4 -3 -2 -2 871 |-206 -146 -103 -73 -52 -37 -26 -19 -13 -10 -7 -5 -4 -3 -2 -2 872 |-205 -145 -103 -73 -52 -37 -26 -19 -13 -10 -7 -5 -4 -3 -2 -2 873 |-204 -145 -102 -73 -51 -37 -26 -19 -13 -10 -7 -5 -4 -3 -2 -2 874 |-203 -144 -102 -72 -51 -36 -26 -18 -13 -9 -7 -5 -4 -3 -2 -2 875 |-202 -143 -101 -72 -51 -36 -26 -18 -13 -9 -7 -5 -4 -3 -2 -2 876 |-201 -142 -101 -71 -51 -36 -26 -18 -13 -9 -7 -5 -4 -3 -2 -2 877 |-200 -142 -100 -71 -50 -36 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 878 |-200 -141 -100 -71 -50 -36 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 879 |-199 -141 -100 -71 -50 -36 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 880 |-197 -140 -99 -70 -50 -35 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 881 |-196 -139 -98 -70 -49 -35 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 882 |-195 -138 -98 -69 -49 -35 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 883 |-194 -138 -97 -69 -49 -35 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 884 |-193 -137 -97 -69 -49 -35 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 885 |-192 -136 -96 -68 -48 -34 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 886 |-191 -135 -96 -68 -48 -34 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 887 |-190 -135 -95 -68 -48 -34 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 888 |-189 -134 -95 -67 -48 -34 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 889 |-188 -133 -94 -67 -47 -34 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 890 |-187 -132 -94 -66 -47 -33 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 891 |-186 -132 -93 -66 -47 -33 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 892 |-185 -131 -93 -66 -47 -33 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 893 |-184 -130 -92 -65 -46 -33 -23 -17 -12 -9 -6 -5 -3 -3 -2 -2 894 |-183 -129 -92 -65 -46 -33 -23 -17 -12 -9 -6 -5 -3 -3 -2 -2 895 |-182 -129 -91 -65 -46 -33 -23 -17 -12 -9 -6 -5 -3 -3 -2 -2 896 |-181 -128 -91 -64 -46 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 -1 897 |-180 -127 -90 -64 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 -1 898 |-178 -126 -89 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 -1 899 |-177 -125 -89 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 -1 900 |-176 -125 -88 -63 -44 -32 -22 -16 -11 -8 -6 -4 -3 -2 -2 -1 901 |-175 -124 -88 -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 -1 902 |-174 -123 -87 -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 -1 903 |-173 -122 -87 -61 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 -1 904 |-172 -121 -86 -61 -43 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 -1 905 |-170 -120 -85 -60 -43 -30 -22 -15 -11 -8 -6 -4 -3 -2 -2 -1 906 |-169 -120 -85 -60 -43 -30 -22 -15 -11 -8 -6 -4 -3 -2 -2 -1 907 |-168 -119 -84 -60 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 908 |-167 -118 -84 -59 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 909 |-166 -117 -83 -59 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 910 |-164 -116 -82 -58 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 911 |-163 -115 -82 -58 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 912 |-162 -115 -81 -58 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 913 |-161 -114 -81 -57 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 914 |-160 -113 -80 -57 -40 -29 -20 -15 -10 -8 -5 -4 -3 -2 -2 -1 915 |-158 -112 -79 -56 -40 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 -1 916 |-157 -111 -79 -56 -40 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 -1 917 |-156 -110 -78 -55 -39 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 -1 918 |-154 -109 -77 -55 -39 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 -1 919 |-153 -108 -77 -54 -39 -27 -20 -14 -10 -7 -5 -4 -3 -2 -2 -1 920 |-152 -108 -76 -54 -38 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 -1 921 |-151 -107 -76 -54 -38 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 -1 922 |-150 -106 -75 -53 -38 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 -1 923 |-148 -105 -74 -53 -37 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 -1 924 |-147 -104 -74 -52 -37 -26 -19 -13 -10 -7 -5 -4 -3 -2 -2 -1 925 |-146 -103 -73 -52 -37 -26 -19 -13 -10 -7 -5 -4 -3 -2 -2 -1 926 |-144 -102 -72 -51 -36 -26 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 927 |-143 -101 -72 -51 -36 -26 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 928 |-142 -100 -71 -50 -36 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 929 |-141 -100 -71 -50 -36 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 930 |-139 -98 -70 -49 -35 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 931 |-138 -98 -69 -49 -35 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 932 |-136 -97 -68 -49 -34 -25 -17 -13 -9 -7 -5 -4 -3 -2 -2 -1 933 |-135 -96 -68 -48 -34 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 934 |-134 -95 -67 -48 -34 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 935 |-132 -94 -66 -47 -33 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 936 |-131 -93 -66 -47 -33 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 937 |-130 -92 -65 -46 -33 -23 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 938 |-129 -91 -65 -46 -33 -23 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 939 |-127 -90 -64 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 -1 -1 940 |-126 -89 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 -1 -1 941 |-124 -88 -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 -1 -1 942 |-123 -87 -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 -1 -1 943 |-121 -86 -61 -43 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 -1 -1 944 |-120 -85 -60 -43 -30 -22 -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 945 |-119 -84 -60 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 946 |-117 -83 -59 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 947 |-116 -82 -58 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 948 |-115 -81 -58 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 949 |-113 -80 -57 -40 -29 -20 -15 -10 -8 -5 -4 -3 -2 -2 -1 -1 950 |-112 -79 -56 -40 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 951 |-111 -78 -56 -39 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 952 |-109 -77 -55 -39 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 953 |-108 -76 -54 -38 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 954 |-106 -75 -53 -38 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 955 |-105 -74 -53 -37 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 956 |-103 -73 -52 -37 -26 -19 -13 -10 -7 -5 -4 -3 -2 -2 -1 -1 957 |-102 -72 -51 -36 -26 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 -1 958 |-100 -71 -50 -36 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 -1 959 | -99 -70 -50 -35 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 -1 960 | -97 -69 -49 -35 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 -1 961 | -96 -68 -48 -34 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 -1 962 | -95 -67 -48 -34 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 -1 963 | -93 -66 -47 -33 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 -1 964 | -92 -65 -46 -33 -23 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 -1 965 | -90 -64 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 -1 -1 -1 966 | -89 -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 -1 -1 -1 967 | -87 -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 968 | -86 -61 -43 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 969 | -84 -60 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 970 | -83 -59 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 971 | -81 -58 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 972 | -80 -57 -40 -29 -20 -15 -10 -8 -5 -4 -3 -2 -2 -1 -1 -1 973 | -78 -56 -39 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 -1 974 | -77 -54 -39 -27 -20 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 -1 975 | -75 -53 -38 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 -1 976 | -74 -52 -37 -26 -19 -13 -10 -7 -5 -4 -3 -2 -2 -1 -1 -1 977 | -72 -51 -36 -26 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 -1 -1 978 | -71 -50 -36 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 -1 -1 979 | -69 -49 -35 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 -1 -1 980 | -68 -48 -34 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 -1 -1 981 | -66 -47 -33 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 -1 -1 982 | -65 -46 -33 -23 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 -1 -1 983 | -63 -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 -1 -1 -1 -1 984 | -62 -44 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 -1 985 | -60 -43 -30 -22 -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 -1 986 | -59 -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 -1 987 | -57 -41 -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 -1 988 | -56 -40 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 989 | -54 -38 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 990 | -53 -37 -27 -19 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 991 | -51 -36 -26 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 992 | -50 -35 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 993 | -48 -34 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 -1 -1 -1 994 | -47 -33 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 -1 -1 -1 995 | -45 -32 -23 -16 -12 -8 -6 -4 -3 -2 -2 -1 -1 -1 -1 -1 996 | -43 -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 -1 -1 997 | -42 -30 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 -1 -1 998 | -40 -29 -20 -15 -10 -8 -5 -4 -3 -2 -2 -1 -1 -1 -1 -1 999 | -39 -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 -1 1000 | -37 -26 -19 -13 -10 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 -1 1001 | -36 -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 -1 1002 | -34 -24 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 -1 -1 -1 -1 1003 | -33 -23 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 -1 -1 -1 -1 1004 | -31 -22 -16 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 1005 | -29 -21 -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 1006 | -28 -20 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 1007 | -26 -19 -13 -10 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 1008 | -25 -18 -13 -9 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 1009 | -23 -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 -1 -1 -1 -1 -1 1010 | -22 -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 -1 1011 | -20 -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 -1 1012 | -19 -13 -10 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 -1 1013 | -17 -12 -9 -6 -5 -3 -3 -2 -2 -1 -1 -1 -1 -1 -1 -1 1014 | -15 -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 -1 -1 1015 | -14 -10 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 -1 -1 1016 | -12 -9 -6 -5 -3 -3 -2 -2 -1 -1 -1 -1 -1 -1 -1 -1 1017 | -11 -8 -6 -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 1018 | -9 -7 -5 -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 1019 | -8 -5 -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1020 | -6 -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1021 | -4 -3 -2 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1022 | -3 -2 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1023 | -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
Let's now measure these waveforms. I set mod.ML=0, mod.WF=1, car.ML=8 and car.WF=0. This makes sure that for 4 out of 8 sine periods the modulator is really zero (so that there is no influence of the modulator on the carrier) and that we measure a 'pure' sine wave (in earlier posts I already mentioned small discrepancies caused by a not fully suppressed modulator). Here are the detailed setting values:
Operator | AM | PM | EG | KR | ML | KL | TL | WF | FB | AR | DR | SL | RR |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
modulator | 0 | 0 | 1 | 0 | 00 | 0 | 63 | 1 | 0 | 00 | 15 | 15 | 15 |
carrier | 0 | 0 | 1 | 0 | 08 | 0 | 0 | 15 | 00 | 00 | 15 |
reg#0x20 = 0x00 | key-off |
reg#0x10 = 0x01 | fnum=1 |
reg#0x30 = 0x0. | custom instrument / volume (0-15) |
reg#0x20 = 0x10 | key-on / block=0 |
I used a very low frequency (block=0, fnum=1). Because of this (and because car.ML=8) one full sine period takes 32x1024 samples. We know that the (logical) sine table only has 1024 entries, so each entry is repeated 32 times. I average those 32 values (before converting ADC values to YM2413 values) to reduce measurement noise. Though unfortunately, as we'll see below, there still is some noise present.
I'm happy to report that for volumes 1-15, the predictions match
These graphs show the predicted values in blue and the measured values in red. Only the first halve of the full sine is shown, the second half is more or less symmetrical (actually it matches better than the part that's shown). Often the blue and red lines completely overlap (meaning the prediction is perfect). The second graph zooms in on the top. There we clearly see that the red line contains noise. E.g. it shows spikes where we expect a smooth curve, and it's not symmetrical around x=256.
These errors occur only for amplitudes above ~214 (~470 on the graph), in earlier measurements we already noticed that there is considerably more noise near the extreme amplitudes. Volumes 1-14 all have amplitudes below 180 (436 on the graph), so there we have no measurement errors.
So I attribute these differences for volume=0 to measurement errors and therefor conclude that both the content of our sin and exp tables and the algorithm that uses those tables is correct.
By looking closely at the predictions-table we can make the following additional observations:
We already saw how the volume is taken into account in the algorithm: each volume-step corresponds to an increase of 128 in the intermediate result that's used as index in the (logical) exponential table.
Each volume-level (0..15) corresponds to a -3dB attenuation. Each envelope-level (0..127) corresponds to -0.375dB attenuation. So following that rule, an envelope step corresponds to an increase by 16 in the exponential table. The algorithm then becomes:
lookupExp(lookupSin(i) + 128 * volume + 16 * eg_level)
I'll likely use that in my next post to improve the attack-rate envelope measurements.
<< YM2413 Reverse Engineering Notes 2015-03-27 | YM2413 Reverse Engineering Notes | YM2413 Reverse Engineering Notes 2015-11-28 >>