74hc595 as dac is too fast with spi interface

Hi everyone

i have a project that can stream audio data with nrf24l01 and i have problem on receiver side. especially in DACs. i am using 74hc595 and 8 bit r2r as DAC. of course i add opamp as voltage follower or buffer

in code. i use Shifty libraries to send sample data to shift register. then latch data to storage register.

when I try to hear the sound on the speaker. the sound is a bit slower than the original

here the code i use

const unsigned char sample[] PROGMEM = {
  126, 128, 128, 128, 128, 127, 128, 127, 128, 128, 127, 128, 126, 127, 127, 129, 129, 127, 128, 127, 129, 128, 126, 128, 126, 127, 124, 121, 122, 123, 125, 120, 123, 135, 142, 131, 113, 120, 132, 136, 130, 120, 128, 144, 143, 124, 116, 126, 134, 138, 117, 97, 115, 141, 144, 123, 111, 124, 141, 136, 111, 107, 121, 136, 145, 139, 131, 127, 126, 115, 109, 128, 145, 151, 139, 116, 107, 119, 136, 132, 126, 134, 139, 120, 85, 86, 126, 158, 140, 106, 118, 155, 168, 131, 86, 104, 156, 168, 125, 98, 127, 159, 145, 91, 71, 118, 165, 153, 104, 96, 145, 179, 146, 92, 99, 152, 171, 124, 78, 98, 151, 161, 107, 75, 117, 178, 174, 104, 75, 127, 179, 159, 92, 83, 140, 175, 134, 74, 95, 172, 197, 135, 80, 111, 174, 175, 105, 65, 117, 184, 172, 94, 64, 120, 175, 146, 74, 75, 151, 196, 146, 70, 80, 150, 176, 118, 66, 112, 190, 190, 111, 70, 126, 187, 164, 91, 79, 146, 186, 139, 67, 78, 152, 183, 124, 62, 95, 175, 191, 123, 76, 126, 191, 170, 91, 66, 132, 191, 160, 78, 67, 142, 190, 145, 69, 75, 151, 181, 124, 66, 99, 170, 175, 106, 66, 119, 188, 178, 107, 82, 138, 184, 149, 79, 79, 150, 190, 141, 72, 85, 153, 171, 111, 60, 100, 171, 172, 104, 69, 124, 184, 164, 92, 77, 143, 192, 156, 84, 86, 153, 181, 129, 71, 100, 171, 178, 112, 66, 109, 172, 159, 88, 59, 115, 169, 147, 85, 81, 148, 189, 152, 92, 100, 165, 189, 137, 80, 103, 167, 172, 109, 69, 115, 176, 161, 92, 67, 126, 181, 155, 87, 82, 150, 187, 142, 80, 96, 171, 192, 131, 77, 109, 175, 175, 109, 71, 117, 175, 157, 87, 66, 125, 172, 140, 79, 84, 154, 187, 138, 76, 94, 165, 184, 130, 84, 117, 176, 167, 103, 72, 120, 173, 149, 85, 73, 133, 176, 138, 75, 83, 153, 182, 130, 74, 96, 166, 179, 122, 80, 117, 179, 172, 111, 81, 127, 179, 156, 94, 83, 140, 177, 137, 78, 84, 148, 174, 124, 76, 103, 170, 176, 113, 74, 117, 180, 170, 105, 82, 134, 183, 155, 91, 85, 145, 177, 130, 72, 85, 151, 171, 117, 73, 105, 169, 169, 107, 74, 119, 177, 163, 103, 88, 143, 187, 152, 89, 87, 146, 180, 137, 80, 92, 152, 167, 114, 70, 101, 162, 162, 103, 75, 122, 174, 157, 97, 85, 141, 184, 149, 90, 90, 150, 179, 134, 83, 98, 157, 167, 111, 73, 108, 165, 162, 106, 80, 125, 176, 156, 97, 90, 147, 186, 152, 94, 97, 156, 177, 128, 80, 103, 164, 172, 115, 75, 110, 166, 159, 100, 77, 126, 175, 154, 96, 88, 144, 181, 147, 92, 101, 159, 178, 130, 80, 103, 162, 167, 113, 74, 110, 164, 154, 95, 70, 120, 168, 146, 90, 86, 145, 176, 140, 88, 102, 161, 178, 128, 82, 111, 166, 167, 112, 80, 122, 169, 154, 94, 77, 128, 167, 139, 83, 85, 143, 174, 136, 85, 103, 163, 178, 128, 86, 116, 169, 167, 107, 79, 123, 170, 152, 90, 78, 131, 169, 137, 78, 85, 143, 171, 129, 82, 103, 158, 171, 123, 89, 124, 174, 168, 110, 83, 126, 172, 152, 95, 85, 134, 168, 136, 83, 90, 143, 164, 120, 77, 103, 159, 166, 114, 83, 120, 171, 163, 108, 92, 137, 177, 154, 99, 95, 144, 171, 133, 84, 98, 151, 166, 118, 77, 103, 155, 158, 107, 80, 119, 168, 160, 107, 93, 138, 177, 150, 95, 93, 142, 170, 134, 85, 98, 150, 165, 117, 78, 104, 155, 157, 106, 84, 124, 168, 154, 103, 95, 143, 179, 150, 101, 105, 154, 175, 134, 90, 107, 156, 164, 115, 81, 109, 157, 152, 100, 80, 123, 168, 150, 99, 93, 145, 178, 147, 98, 106, 160, 177, 134, 91, 110, 161, 166, 117, 84, 115, 161, 151, 99, 78, 120, 161, 142, 95, 90, 137, 166, 138, 94, 102, 152, 167, 128, 90, 110, 157, 158, 113, 84, 116, 158, 147, 97, 80, 122, 158, 138, 92, 93, 144, 170, 138, 95, 110, 161, 173, 131, 95, 121, 168, 165, 117, 92, 128, 167, 151, 99, 85, 128, 159, 133, 86, 88, 139, 164, 131, 88, 104, 155, 167, 126, 92, 122, 168, 167, 119, 96, 133, 170, 155, 104, 95, 137, 163, 135, 87, 92, 140, 158, 123, 83, 105, 151, 159, 119, 89, 121, 164, 159, 111, 91, 128, 162, 144, 96, 91, 136, 161, 133, 89, 95, 142, 159, 124, 87, 109, 158, 163, 118, 92, 124, 167, 163, 116, 101, 141, 175, 153, 104, 102, 144, 169, 137, 92, 102, 143, 156, 116, 82, 107, 149, 154, 111, 89, 122, 163, 157, 112, 101, 142, 175, 155, 108, 107, 149, 171, 140, 99, 109, 151, 161, 120, 85, 106, 147, 149, 105, 84, 117, 152, 141, 98, 90, 128, 158, 137, 96, 99, 137, 157, 125, 88, 102, 143, 151, 113, 84, 105, 144, 143, 104, 89, 123, 160, 149, 106, 102, 142, 169, 146, 109, 115, 156, 174, 137, 102, 118, 158, 164, 119, 91, 114, 150, 145, 101, 86, 120, 154, 140, 102, 99, 135, 161, 137, 102, 111, 153, 170, 140, 109, 124, 161, 163, 123, 100, 122, 156, 146, 104, 89, 119, 148, 130, 92, 91, 130, 152, 126, 95, 105, 146, 159, 127, 101, 119, 153, 153, 114, 94, 120, 154, 142, 101, 89, 120, 147, 127, 92, 94, 135, 158, 132, 99, 110, 151, 162, 129, 104, 125, 166, 166, 127, 107, 134, 164, 149, 111, 98, 130, 155, 132, 94, 94, 133, 151, 124, 95, 109, 150, 157, 126, 104, 127, 166, 163, 129, 113, 140, 168, 151, 114, 106, 138, 157, 133, 99, 99, 132, 143, 116, 88, 103, 141, 143, 110, 89, 114, 146, 140, 107, 93, 126, 155, 138, 101, 95, 128, 148, 126, 92, 96, 133, 143, 113, 86, 102, 140, 144, 115, 96, 125, 161, 156, 123, 110, 143, 170, 157, 122, 115, 148, 162, 134, 99, 104, 139, 151, 124, 93, 108, 142, 145, 113, 93, 120, 154, 147, 113, 105, 140, 164, 150, 120, 122, 160, 175, 150, 116, 123, 155, 159, 128, 100, 116, 143, 136, 103, 86, 112, 140, 134, 105, 99, 132, 153, 136, 102, 106, 142, 157, 134, 102, 110, 140, 142, 110, 86, 108, 140, 139, 106, 89, 118, 143, 135, 107, 105, 138, 158, 144, 113, 115, 145, 158, 138, 114, 129, 160, 164, 130, 103, 121, 147, 146, 114, 99, 124, 144, 131, 97, 97, 132, 154, 138, 111, 122, 154, 163, 139, 117, 136, 169, 172, 142, 121, 137, 160, 151, 116, 106, 130, 149, 132, 96, 94, 123, 139, 122, 96, 104, 137, 147, 119, 91, 107, 138, 145, 118, 102, 125, 148, 137, 102, 90, 115, 138, 127, 97, 95, 122, 135, 115, 91, 109, 145, 159, 136, 118, 136, 162, 161, 130, 120, 145, 169, 157, 118, 108, 131, 147, 131, 101, 105, 134, 146, 118, 90, 106, 139, 149, 122, 105, 128, 159, 154, 120, 113, 143, 170, 162, 131, 126, 147, 163, 141, 107, 110, 137, 148, 117, 86, 97, 126, 133, 108, 95, 120, 151, 148, 113, 102, 127, 153, 142, 113, 114, 141, 153, 125, 92, 94, 121, 134, 111, 89, 101, 129, 132, 103, 91, 115, 149, 150, 121, 115, 139, 161, 148, 119, 120, 152, 171, 149, 118, 121, 145, 148, 118, 97, 112, 141, 137, 103, 93, 117, 147, 141, 114, 114, 144, 168, 150, 122, 125, 159, 175, 151, 126, 134, 159, 160, 127, 103, 116, 144, 138, 103, 88, 108, 135, 125, 97, 95, 123, 145, 128, 101, 105, 134, 147, 125, 107, 120, 148, 151, 119, 98, 110, 135, 131, 104, 93, 112, 131, 121, 96, 96, 126, 150, 138, 119, 126, 157, 168, 144, 122, 135, 165, 168, 138, 118, 131, 152, 140, 108, 100, 123, 145, 127, 95, 94, 125, 144, 128, 107, 117, 149, 160, 136, 115, 127, 159, 164, 139, 127, 144, 166, 155, 123, 109, 130, 148, 129, 98, 91, 118, 135, 115, 91, 99, 131, 140, 119, 104, 118, 143, 140, 114, 107, 132, 158, 148, 117, 103, 124, 138, 119, 91, 90, 117, 130, 111, 91, 101, 132, 142, 124, 112, 132, 161, 158, 130, 118, 139, 164, 157, 131, 124, 145, 157, 134, 106, 108, 133, 141, 116, 91, 101, 134, 139, 116, 100, 119, 149, 151, 132, 123, 144, 165, 155, 133, 130, 156, 170, 147, 115, 113, 137, 141, 117, 93, 101, 127, 127, 102, 87, 109, 133, 127, 104, 100, 128, 146, 131, 106, 107, 137, 152, 139, 115, 116, 137, 136, 111, 90, 105, 128, 127, 103, 92, 115, 139, 136, 114, 114, 143, 166, 154, 126, 126, 152, 161, 145, 126, 138, 165, 162, 130, 104, 114, 135, 133, 104, 90, 109, 134, 130, 106, 102, 126, 145, 135, 116, 121, 146, 156, 139, 120, 132, 159, 165, 143, 125, 136, 149, 137, 110, 98, 116, 133, 125, 102, 97, 120, 132, 116, 96, 103, 131, 142, 125, 108, 120, 146, 150, 129, 118, 136, 153, 144, 110, 95, 112, 126, 114, 89, 89, 115, 134, 123, 105, 117, 148, 159, 141, 123, 136, 158, 158, 133, 121, 141, 165, 159, 130, 116, 128, 138, 122, 99, 100, 125, 138, 125, 104, 110, 133, 141, 125, 112, 129, 153, 155, 134, 123, 143, 159, 151, 131, 128, 147, 152, 129, 99, 98, 118, 125, 109, 93, 104, 125, 128, 110, 99, 115, 136, 134, 113, 108, 130, 151, 144, 119, 118, 138, 150, 138, 115, 113, 125, 127, 109, 97, 114, 135, 135, 113, 108, 132, 155, 152, 131, 127, 145, 160, 152, 132, 137, 156, 164, 148, 128, 130, 141, 139, 112, 92, 104, 126, 130, 112, 101, 117, 140, 140, 122, 123, 143, 155, 142, 124, 129, 151, 160, 138, 118, 126, 148, 152, 129, 114, 123, 138, 132, 111, 105, 122, 135, 126, 106, 105, 125, 137, 124, 103, 107, 130, 142, 133, 121, 131, 147, 141, 115, 103, 116, 133, 126, 98, 89, 108, 129, 125, 108, 113, 136, 154, 142, 124, 131, 151, 157, 141, 131, 145, 161, 153, 123, 109, 121, 136, 130, 110, 102, 119, 135, 125, 109, 112, 134, 143, 127, 109, 116, 141, 147, 127, 116, 132, 156, 156, 134, 122, 132, 145, 133, 109, 108, 127, 137, 117, 92, 96, 124, 137, 123, 108, 117, 137, 140, 120, 107, 118, 142, 146, 134, 131, 144, 154, 135, 107, 101, 118, 133, 123, 106, 108, 128, 138, 121, 106, 121, 146, 151, 130, 121, 137, 155, 147, 126, 122, 145, 163, 154, 133, 125, 136, 136, 115, 98, 102, 121, 123, 101, 88, 103, 130, 136, 122, 117, 134, 158, 155, 132, 122, 139, 156, 148, 131, 127, 138, 138, 116, 97, 105, 135, 144, 126, 110, 121, 142, 141, 124, 119, 136, 153, 144, 125, 119, 132, 143, 133, 121, 127, 152, 159, 137, 111, 107, 120, 122, 109, 101, 111, 125, 121, 106, 104, 126, 151, 147, 133, 136, 156, 165, 149, 129, 126, 145, 151, 135, 119, 122, 133, 124, 99, 90, 109, 129, 125, 106, 98, 116, 134, 132, 115, 110, 129, 140, 128, 110, 115, 136, 140, 125, 116, 134, 155, 149, 124, 106, 117, 135, 130, 111, 100, 109, 122, 117, 106, 117, 145, 156, 143, 127, 130, 149, 151, 133, 121, 135, 156, 156, 133, 113, 118, 126, 121, 111, 112, 125, 132, 118, 104, 110, 134, 144, 137, 127, 136, 155, 153, 138, 127, 134, 143, 137, 123, 119, 133, 142, 126, 103, 100, 118, 125, 107, 83, 81, 99, 113, 113, 111, 125, 141, 141, 128, 123, 137, 149, 142, 124, 117, 129, 137, 126, 109, 110, 129, 141, 135, 124, 127, 137, 137, 125, 116, 130, 152, 155, 138, 125, 135, 150, 150, 134, 131, 148, 158, 147, 124, 118, 129, 134, 124, 112, 117, 128, 126, 108, 97, 109, 128, 138, 135, 140, 156, 166, 159, 142, 140, 149, 152, 139, 115, 106, 114, 121, 112, 99, 107, 122, 124, 108, 97, 104, 118, 119, 108, 108, 123, 131, 121, 106, 108, 123, 134, 129, 120, 123, 133, 132, 114, 104, 115, 136, 146, 135, 120, 122, 128, 123, 112, 114, 135, 154, 156, 145, 141, 151, 154, 144, 132, 138, 157, 158, 138, 117, 115, 129, 132, 124, 122, 131, 140, 132, 115, 112, 124, 136, 132, 124, 134, 149, 153, 139, 126, 132, 150, 156, 144, 129, 123, 126, 118, 105, 101, 112, 123, 117, 96, 85, 93, 103, 102, 98, 108, 125, 131, 119, 110, 116, 131, 137, 134, 136, 137, 133, 119, 99, 96, 111, 132, 141, 134, 133, 136, 132, 125, 121, 135, 158, 161, 141, 130, 139, 148, 151, 148, 149, 153, 164, 160, 141, 137, 138, 126, 111, 111, 128, 147, 149, 121, 92, 105, 128, 134, 127, 126, 130, 152, 171, 165, 172, 175, 146, 105, 97, 110, 139, 162, 134, 81, 76, 101, 125, 138, 123, 82, 69, 83, 92, 110, 136, 133, 107, 102, 101, 113, 135, 125, 101, 123, 157, 152, 124, 97, 75, 98, 135, 134, 121, 120, 117, 112, 135, 153, 154, 152, 139, 125, 158, 199, 196, 163, 130, 103, 123, 162, 165, 138, 117, 100, 93, 130, 161, 161, 142, 119, 94, 112, 157, 168, 147, 123, 98, 114, 171, 195, 174, 152, 131, 117, 142, 165, 154, 128, 99, 65, 76, 124, 141, 121, 95, 62, 60, 101, 130, 118, 99, 84, 71, 93, 125, 127, 115, 107, 89, 98, 143, 167, 140, 102, 67, 62, 107, 147, 143, 130, 122, 109, 126, 161, 168, 157, 149, 127, 126, 172, 207, 190, 157, 127, 122, 162, 202, 190, 149, 117, 98, 111, 148, 164, 145, 122, 88, 77, 116, 171, 174, 137, 99, 83, 122, 192, 214, 185, 147, 121, 123, 151, 173, 154, 118, 72, 48, 79, 137, 155, 129, 82, 48, 65, 120, 150, 129, 96, 67, 61, 94, 130, 129, 109, 78, 63, 95, 157, 179, 147, 93, 50, 61, 124, 166, 158, 130, 100, 89, 119, 162, 169, 150, 124, 98, 110, 171, 210, 198, 161, 123, 122, 165, 199, 189, 151, 109, 84, 105, 151, 169, 158, 132, 100, 98, 149, 191, 188, 153, 109, 93, 130, 179, 190, 166, 134, 115, 127, 165, 185, 167, 123, 72, 55, 96, 142, 148, 114, 72, 47, 72, 123, 136, 115, 88, 63, 60, 94, 126, 129, 107, 74, 60, 92, 139, 155, 127, 78, 39, 57, 107, 134, 132, 118, 100, 95, 131, 174, 187, 171, 135, 102, 118, 173, 208, 196, 154, 117, 125, 165, 199, 195, 166, 126, 102, 124, 156, 165, 147, 115, 81, 90, 147, 193, 195, 165, 125, 117, 150, 189, 203, 188, 156, 130, 133, 155, 169, 154, 116, 67, 53, 91, 132, 137, 111, 68, 54, 90, 135, 147, 128, 95, 60, 58, 89, 120, 127, 104, 63, 52, 85, 132, 152, 131, 88, 56, 70, 114, 134, 125, 105, 82, 85, 125, 172, 187, 167, 126, 102, 124, 179, 215, 211, 178, 143, 139, 164, 182, 170, 143, 108, 91, 112, 148, 158, 143, 105, 72, 89, 150, 200, 204, 178, 143, 130, 160, 196, 206, 193, 159, 128, 135, 163, 176, 161, 117, 70, 62, 99, 134, 134, 105, 65, 48, 78, 124, 149, 129, 92, 63, 63, 98, 129, 139, 116, 78, 57, 76, 108, 122, 110, 79, 56, 72, 108, 129, 126, 104, 83, 87, 127, 171, 196, 179, 137, 112, 132, 177, 206, 202, 169, 138, 141, 164, 179, 173, 151, 121, 111, 136, 169, 181, 157, 106, 72, 90, 140, 184, 191, 169, 135, 127, 153, 187, 205, 202, 170, 141, 147, 163, 174, 159, 117, 70, 66, 101, 134, 133, 100, 60, 50, 81, 120, 141, 128, 91, 55, 57, 89, 119, 125, 101, 62, 53, 79, 108, 120, 99, 66, 55, 78, 114, 134, 125, 94, 69, 71, 107, 152, 172, 156, 120, 102, 126, 172, 202, 205, 178, 150, 156, 172, 180, 171, 141, 109, 102, 129, 166, 180, 156, 114, 90, 103, 148, 189, 198, 167, 136, 138, 159, 185, 199, 189, 156, 140, 149, 169, 183, 161, 118, 83, 82, 110, 135, 136, 104, 69, 59, 76, 109, 127, 114, 75, 50, 59, 90, 123, 129, 105, 74, 65, 82, 100, 105, 88, 62, 54, 68, 97, 117, 112, 88, 67, 74, 108, 150, 176, 164, 135, 126, 148, 183, 209, 205, 178, 155, 152, 162, 171, 168, 146, 123, 118, 145, 176, 189, 172, 134, 112, 121, 151, 178, 187, 166, 142, 142, 159, 188, 209, 201, 177, 158, 157, 174, 183, 169, 132, 94, 92, 116, 133, 131, 106, 76, 65, 74, 98, 112, 103, 74, 55, 62, 86, 119, 127, 103, 71, 58, 65, 79, 90, 86, 71, 64, 73, 96, 112, 110, 92, 74, 77, 102, 140, 159, 139, 111, 106, 128, 167, 198, 197, 177, 156, 152, 162, 169, 167, 152, 133, 124, 138, 158, 167, 150, 120, 112, 123, 149, 179, 178, 162, 150, 147, 166, 197, 212, 197, 173, 154, 151, 163, 174, 167, 136, 108, 103, 118, 133, 126, 103, 86, 77, 82, 98, 109, 95, 69, 54, 53, 75, 106, 119, 97, 70, 60, 69, 88, 98, 92, 76, 67, 74, 92, 104, 94, 77, 66, 69, 92, 126, 145, 136, 120, 121, 142, 179, 202, 198, 178, 159, 155, 163, 171, 168, 152, 133, 129, 142, 168, 179, 164, 147, 139, 145, 166, 187, 180, 162, 150, 148, 163, 192, 206, 199, 177, 159, 156, 174, 192, 184, 157, 127, 115, 122, 130, 119, 100, 82, 70, 76, 90, 98, 87, 67, 51, 52, 74, 105, 109, 87, 64, 54, 66, 81, 87, 77, 61, 55, 64, 92, 109, 103, 88, 72, 74, 95, 125, 137, 123, 108, 106, 129, 154, 171, 168, 150, 140, 146, 168, 188, 187, 172, 149, 135, 143, 168, 173, 156, 143, 132, 146, 162, 168, 164, 151, 149, 154, 174, 202, 216, 205, 174, 154, 158, 180, 195, 181, 157, 135, 126, 134, 135, 121, 103, 89, 82, 87, 97, 101, 88, 61, 43, 48, 78, 100, 97, 76, 58, 60, 75, 93, 91, 83, 73, 64, 72, 90, 98, 92, 71, 52, 56, 87, 122, 128, 113, 105, 120, 146, 173, 179, 174, 165, 152, 158, 173, 185, 184, 168, 144, 133, 149, 174, 183, 174, 163, 161, 171, 184, 182, 164, 152, 145, 148, 168, 199, 209, 192, 165, 150, 167, 193, 209, 203, 179, 153, 146, 143, 129, 107, 90, 77, 74, 80, 93, 92, 71, 52, 43, 56, 84, 107, 105, 85, 64, 57, 65, 76, 77, 69, 58, 52, 64, 84, 99, 91, 75, 69, 77, 106, 132, 131, 114, 104, 110, 125, 139, 145, 141, 131, 132, 143, 158, 176, 182, 175, 157, 147, 159, 173, 170, 156, 148, 149, 152, 163, 168, 158, 145, 142, 151, 175, 202, 213, 206, 184, 169, 175, 187, 196, 191, 167, 146, 142, 144, 132, 118, 102, 95, 92, 100, 111, 105, 85, 65, 55, 62, 78, 91, 91, 73, 54, 53, 67, 76, 79, 79, 71, 60, 67, 87, 94, 83, 69, 63, 68, 89, 112, 117, 112, 105, 114, 134, 149, 161, 161, 155, 151, 158, 170, 179, 180, 168, 151, 145, 156, 174, 180, 178, 172, 169, 176, 189, 190, 177, 159, 142, 145, 163, 188, 203, 196, 177, 175, 183, 200, 211, 206, 189, 169, 158, 154, 141, 118, 97, 79, 70, 78, 95, 105, 90, 68, 60, 67, 87, 97, 92, 73, 59, 57, 67, 72, 66, 55, 39, 27, 39, 72, 96, 96, 85, 82, 88, 106, 123, 124, 114, 105, 106, 118, 131, 135, 131, 125, 119, 129, 152, 174, 186, 177, 161, 155, 166, 179, 176, 163, 154, 151, 159, 173, 178, 164, 150, 142, 149, 173, 203, 223, 214, 194, 194, 207, 217, 217, 201, 173, 149, 138, 140, 140, 126, 111, 93, 85, 92, 107, 113, 103, 84, 69, 75, 84, 85, 73, 51, 42, 48, 60, 75, 76, 69, 52, 36, 45, 71, 89, 89, 75, 64, 75, 92, 102, 104, 100, 103, 113, 127, 142, 150, 147, 138, 136, 147, 171, 189, 192, 178, 154, 146, 158, 172, 173, 167, 166, 169, 178, 191, 190, 178, 157, 146, 146, 165, 190, 203, 204, 191, 190, 204, 220, 220, 205, 185, 165, 152, 148, 143, 126, 102, 84, 82, 89, 104, 110, 107, 94, 85, 90, 98, 97, 77, 51, 42, 49, 62, 77, 77, 59, 36, 26, 33, 54, 73, 81, 84, 82, 87, 104, 118, 113, 106, 102, 106, 115, 122, 122, 119, 112, 119, 142, 161, 179, 186, 179, 161, 152, 167, 181, 175, 162, 149, 151, 161, 170, 176, 166, 156, 155, 169, 191, 210, 218, 211, 198, 193, 205, 223, 223, 206, 179, 154, 144, 142, 134, 118, 111, 106, 100, 109, 120, 128, 119, 103, 83, 75, 83, 80, 63, 45, 35, 45, 51, 53, 52, 41, 36, 33, 47, 69, 78, 74, 66, 60, 60, 80, 100, 104, 104, 100, 106, 119, 130, 132, 127, 127, 130, 150, 178, 197, 197, 182, 156, 145, 166, 182, 176, 167, 160, 161, 166, 176, 181, 178, 174, 169, 168, 181, 204, 205, 194, 186, 191, 207, 223, 219, 205, 188, 167, 158, 156, 140, 121, 114, 103, 94, 101, 122, 130, 116, 99, 89, 90, 96, 89, 69, 52, 42, 43, 51, 52, 49, 51, 39, 28, 37, 63, 73, 69, 64, 60, 64, 82, 103, 110, 107, 110, 114, 117, 119, 122, 124, 118, 121, 139, 171, 187, 181, 161, 142, 144, 163, 181, 178, 163, 154, 150, 155, 167, 174, 180, 179, 181, 184, 200, 219, 222, 207, 189, 190, 205, 215, 214, 197, 174, 151, 140, 142, 134, 131, 124, 115, 105, 111, 129, 131, 118, 95, 88, 93, 91, 81, 59, 44, 37, 45, 50, 49, 46, 42, 33, 26, 44, 64, 71, 62, 55, 51, 56, 75, 97, 99, 95, 103, 111, 115, 118, 123, 123, 115, 113, 140, 168, 183, 180, 162, 144, 148, 164, 175, 172, 163, 163, 164, 160, 163, 171, 175, 178, 182, 195, 204, 214, 214, 194, 180, 189, 213, 223, 210, 189, 170, 161, 157, 151, 144, 133, 122, 110, 106, 117, 136, 140, 118, 99, 103, 114, 114, 99, 73, 48, 39, 45, 46, 43, 50, 53, 44, 36, 46, 67, 78, 64, 48, 52, 64, 78, 85, 82, 75, 86, 107, 119, 123, 130, 129, 121, 122, 144, 168, 182, 167, 140, 138, 148, 167, 171, 156, 145, 151, 161, 167, 174, 185, 190, 190, 192, 204, 214, 225, 220, 186, 173, 188, 204, 202, 196, 187, 177, 170, 164, 155, 147, 140, 132, 121, 117, 126, 142, 141, 110, 91, 105, 117, 103, 83, 66, 51, 50, 61, 65, 59, 58, 48, 33, 32, 41, 63, 66, 41, 32, 51, 75, 83, 86, 90, 93, 100, 116, 125, 123, 128, 119, 97, 99, 121, 150, 165, 155, 144, 155, 173, 179, 170, 155, 153, 160, 164, 164, 171, 187, 190, 180, 185, 200, 216, 223, 209, 188, 187, 209, 222, 214, 200, 190, 176, 163, 154, 152, 161, 154, 129, 119, 129, 145, 155, 142, 117, 105, 119, 123, 107, 90, 77, 63, 44, 36, 38, 49, 56, 46, 42, 48, 59, 72, 62, 45, 40, 53, 68, 64, 60, 67, 71, 73, 85, 102, 120, 131, 125, 111, 120, 146, 168, 163, 141, 127, 127, 135, 137, 135, 138, 147, 153, 157, 167, 185, 204, 199, 189, 194, 206, 217, 209, 196, 185, 185, 190, 196, 195, 194, 198, 196, 181, 163, 158, 162, 153, 132, 126, 130, 147, 144, 130, 116, 106, 108, 111, 105, 94, 90, 77, 56, 48, 51, 57, 55, 32, 24, 25, 27, 31, 34, 35, 40, 57, 74, 86, 92, 113, 115, 98, 87, 95, 108, 113, 100, 93, 100, 121, 136, 143, 151, 153, 164, 170, 167, 154, 160, 165, 161, 159, 169, 185, 197, 192, 177, 180, 198, 207, 205, 205, 207, 208, 204, 203, 198, 203, 201, 187, 163, 143, 140, 145, 144, 138, 144, 159, 179, 176, 169, 164, 152, 129, 114, 104, 90, 81, 58, 43, 36, 40, 54, 57, 52, 50, 57, 60, 56, 52, 46, 47, 52, 55, 56, 63, 82, 84, 72, 66, 79, 98, 106, 108, 108, 121, 139, 143, 139, 141, 142, 135, 122, 112, 116, 137, 149, 142, 152, 174, 200, 213, 215, 205, 198, 206, 209, 203, 194, 191, 179, 174, 167, 171, 204, 233, 236, 213, 190, 172, 150, 118, 88, 98, 139, 171, 184, 184, 176, 141, 90, 49, 48, 77, 112, 140, 139, 122, 94, 58, 14, 0, 0, 0, 25, 43, 49, 55, 61, 54, 45, 49, 78, 114, 146, 137, 114, 113, 106, 75, 48, 45, 64, 97, 123, 138, 159, 178, 172, 146, 122, 128, 146, 164, 164, 169, 195, 218, 215, 185, 162, 158, 169, 185, 195, 209, 224, 220, 201, 177, 169, 177, 194, 185, 167, 173, 179, 172, 144, 119, 126, 158, 187, 202, 216, 228, 213, 162, 104, 78, 66, 64, 59, 51, 53, 67, 67, 42, 19, 21, 47, 60, 60, 67, 74, 73, 50, 26, 34, 55, 76, 74, 64, 68, 87, 99, 91, 77, 90, 118, 123, 129, 137, 149, 160, 141, 108, 98, 106, 120, 119, 126, 153, 203, 238, 235, 213, 205, 218, 214, 204, 202, 201, 198, 183, 152, 141, 150, 175, 187, 185, 188, 198, 205, 189, 166, 146, 149, 157, 153, 159, 172, 173, 156, 118, 91, 84, 85, 75, 62, 69, 82, 92, 76, 47, 18, 16, 25, 22, 26, 38, 44, 43, 26, 22, 50, 88, 110, 118, 120, 120, 118, 97, 69, 51, 71, 90, 89, 103, 122, 142, 149, 138, 120, 123, 148, 167, 169, 159, 159, 178, 185, 171, 154, 169, 192, 201, 207, 219, 231, 228, 215, 191, 178, 176, 178, 177, 175, 172, 167, 158, 136, 114, 122, 149, 175, 196, 210, 225, 221, 197, 148, 112, 108, 101, 83, 71, 70, 78, 74, 61, 45, 43, 60, 66, 70, 67, 69, 69, 58, 25, 10, 29, 52, 68, 77, 90, 109, 118, 109, 84, 74, 100, 123, 136, 141, 147, 139, 125, 97, 70, 72, 89, 111, 127, 137, 159, 194, 217, 215, 209, 223, 227, 221, 206, 200, 196, 186, 163, 136, 135, 146, 153, 160, 175, 189, 202, 193, 169, 158, 172, 176, 175, 170, 172, 180, 170, 138, 97, 85, 91, 99, 95, 98, 107, 120, 111, 79, 57, 51, 62, 66, 55, 41, 44, 49, 27, 2, 9, 51, 90, 109, 130, 136, 139, 129, 99, 76, 72, 86, 109, 119, 118, 130, 137, 122, 97, 84, 91, 102, 118, 141, 152, 168, 180, 174, 170, 176, 188, 200, 207, 201, 198, 204, 185, 149, 139, 147, 155, 154, 161, 179, 200, 210, 182, 150, 143, 148, 162, 177, 197, 220, 241, 229, 184, 141, 114, 107, 90, 87, 90, 99, 106, 84, 57, 52, 61, 70, 80, 87, 90, 94, 91, 58, 31, 23, 31, 49, 69, 91, 107, 109, 99, 82, 64, 72, 89, 114, 140, 153, 157, 142, 113, 87, 73, 75, 85, 96, 118, 137, 151, 161, 165, 186, 214, 225, 228, 219, 210, 205, 191, 164, 137, 121, 123, 122, 134, 142, 162, 193, 199, 187, 172, 175, 177, 180, 185, 186, 188, 183, 166, 134, 103, 85, 90, 102, 106, 114, 132, 133, 114, 90, 83, 84, 84, 86, 80, 86, 76, 49, 20, 0, 6, 31, 65, 102, 129, 144, 129, 100, 86, 78, 77, 85, 108, 127, 143, 139, 116, 86, 68, 66, 76, 98, 114, 129, 157, 174, 165, 162, 165, 181, 190, 192, 185, 185, 188, 175, 154, 140, 139, 150, 171, 170, 173, 188, 194, 185, 179, 172, 164, 160, 156, 162, 192, 219, 224, 213, 187, 156, 135, 129, 123, 119, 113, 111, 104, 93, 83, 77, 77, 88, 90, 99, 114, 114, 89, 55, 38, 36, 57, 64, 81, 100, 106, 94, 76, 71, 76, 85, 103, 122, 140, 171, 176, 150, 117, 90, 73, 80, 92, 105, 113, 124, 138, 139, 150, 174, 196, 216, 219, 206, 203, 194, 170, 137, 116, 106, 120, 137, 145, 151, 161, 166, 156, 157, 167, 178, 176, 177, 177, 197, 215, 206, 183, 152, 126, 114, 104, 95, 100, 104, 111, 102, 100, 110, 114, 111, 111, 111, 105, 114, 104, 70, 30, 10, 17, 37, 61, 82, 107, 122, 114, 99, 98, 102, 111, 111, 109, 120, 140, 144, 123, 99, 72, 72, 86, 103, 124, 145, 161, 161, 157, 150, 162, 174, 177, 171, 162, 158, 149, 134, 117, 115, 133, 154, 162, 175, 183, 184, 173, 156, 154, 170, 184, 174, 160, 158, 180, 199, 212, 206, 188, 177, 159, 142, 126, 123, 128, 115, 93, 81, 88, 101, 101, 100, 104, 117, 117, 111, 93, 69, 67, 75, 79, 76, 82, 87, 87, 74, 61, 66, 92, 105, 103, 105, 124, 141, 148, 146, 123, 109, 96, 87, 90, 115, 133, 140, 133, 121, 126, 145, 168, 166, 172, 177, 170, 158, 141, 127, 126, 141, 155, 154, 151, 147, 136, 123, 110, 119, 143, 170, 174, 171, 188, 207, 221, 222, 213, 190, 162, 130, 97, 80, 82, 86, 84, 80, 85, 115, 147, 154, 147, 150, 142, 129, 107, 79, 58, 44, 50, 54, 65, 83, 92, 100, 106, 105, 111, 126, 124, 111, 104, 110, 117, 120, 117, 104, 94, 85, 77, 91, 124, 148, 159, 154, 143, 145, 156, 158, 146, 139, 139, 135, 119, 108, 110, 126, 140, 158, 171, 183, 186, 169, 156, 135, 132, 145, 158, 158, 160, 171, 192, 199, 202, 212, 212, 207, 177, 149, 128, 117, 108, 100, 84, 86, 106, 127, 133, 128, 127, 123, 116, 103, 97, 89, 92, 89, 93, 99, 104, 95, 77, 76, 78, 90, 92, 93, 98, 98, 104, 116, 122, 137, 146, 145, 126, 110, 114, 129, 142, 134, 122, 114, 119, 123, 124, 129, 137, 152, 155, 147, 143, 147, 152, 150, 147, 148, 149, 139, 112, 91, 78, 88, 113, 133, 158, 179, 204, 221, 222, 221, 215, 198, 160, 121, 95, 77, 71, 67, 68, 75, 95, 122, 144, 166, 172, 170, 152, 127, 110, 101, 97, 81, 74, 77, 79, 85, 92, 94, 101, 112, 127, 126, 111, 104, 100, 106, 106, 107, 115, 124, 118, 105, 104, 120, 141, 159, 162, 152, 150, 151, 142, 128, 120, 110, 113, 114, 109, 110, 124, 135, 137, 149, 162, 174, 169, 149, 130, 122, 120, 126, 135, 146, 173, 200, 215, 213, 206, 210, 209, 191, 169, 146, 127, 120, 105, 94, 95, 110, 127, 130, 129, 117, 110, 105, 95, 94, 97, 103, 113, 116, 122, 131, 133, 125, 102, 80, 70, 75, 70, 68, 78, 96, 113, 119, 136, 152, 159, 164, 166, 153, 144, 139, 131, 119, 111, 115, 124, 121, 106, 118, 138, 150, 148, 145, 144, 154, 149, 128, 117, 118, 129, 127, 105, 76, 72, 78, 90, 106, 138, 181, 224, 238, 224, 210, 199, 185, 158, 135, 103, 85, 71, 59, 60, 81, 111, 135, 144, 141, 151, 163, 159, 124, 109, 112, 114, 112, 102, 92, 100, 105, 94, 96, 98, 111, 118, 110, 101, 103, 121, 136, 132, 131, 136, 134, 126, 128, 130, 132, 141, 131, 129, 141, 152, 155, 144, 128, 118, 118, 118, 114, 112, 113, 117, 123, 119, 119, 134, 150, 146, 135, 131, 130, 130, 118, 112, 141, 179, 199, 205, 199, 190, 183, 173, 169, 160, 152, 150, 133, 118, 107, 108, 120, 121, 108, 93, 102, 109, 107, 92, 87, 101, 114, 132, 136, 134, 140, 137, 118, 102, 86, 82, 84, 71, 58, 76, 109, 122, 129, 141, 151, 153, 161, 167, 167, 159, 143, 140, 139, 144, 147, 142, 116, 90, 83, 95, 113, 119, 128, 141, 145, 136, 131, 121, 131, 134, 107, 83, 72, 62, 61, 60, 67, 106, 158, 194, 204, 216, 210, 208, 189, 146, 112, 101, 96, 72, 54, 65, 89, 109, 122, 116, 121, 137, 156, 151, 132, 113, 110, 124, 124, 120, 123, 134, 126, 111, 104, 106, 112, 115, 114, 118, 123, 130, 130, 126, 130, 134, 143, 147, 136, 136, 137, 138, 138, 151, 170, 171, 160, 131, 111, 111, 113, 102, 96, 98, 105, 106, 103, 113, 130, 150, 150, 136, 128, 126, 112, 94, 68, 77, 113, 157, 177, 183, 195, 201, 204, 178, 158, 141, 145, 139, 128, 119, 111, 118, 117, 98, 83, 103, 129, 138, 119, 107, 104, 109, 114, 122, 134, 151, 167, 156, 143, 132, 121, 103, 94, 81, 86, 99, 109, 122, 130, 144, 164, 179, 180, 185, 187, 188, 173, 172, 179, 170, 157, 125, 95, 79, 76, 81, 86, 90, 112, 140, 149, 135, 131, 132, 125, 120, 103, 86, 70, 55, 33, 22, 51, 91, 135, 168, 185, 198, 208, 199, 175, 146, 114, 104, 95, 81, 80, 87, 102, 107, 90, 104, 128, 148, 158, 142, 119, 103, 107, 116, 125, 138, 149, 160, 155, 131, 128, 128, 126, 113, 112, 126, 124, 133, 137, 136, 140, 156, 169, 169, 159, 165, 176, 180, 176, 171, 172, 149, 117, 97, 88, 78, 81, 83, 75, 84, 110, 125, 129, 133, 139, 147, 140, 120, 104, 99, 86, 61, 47, 61, 88, 131, 166, 186, 203, 211, 198, 166, 132, 114, 116, 122, 121, 124, 132, 123, 111, 97, 103, 123, 132, 126, 96, 74, 82, 97, 107, 120, 137, 165, 180, 180, 171, 162, 151, 127, 104, 90, 87, 94, 107, 126, 143, 165, 195, 195, 197, 203, 197, 199, 189, 182, 181, 175, 150, 121, 101, 90, 85, 77, 69, 69, 89, 123, 131, 125, 123, 118, 109, 98, 96, 95, 95, 75, 46, 35, 46, 66, 95, 123, 154, 186, 194, 173, 143, 119, 95, 86, 89, 91, 104, 122, 118, 102, 96, 116, 140, 154, 143, 119, 98, 89, 89, 102, 134, 152, 169, 177, 174, 165, 160, 152, 141, 120, 119, 126, 128, 125, 127, 145, 160, 177, 178, 179, 174, 182, 178, 173, 169, 177, 176, 152, 130, 121, 125, 108, 96, 74, 73, 77, 94, 111, 116, 116, 110, 106, 103, 116, 131, 139, 118, 91, 71, 81, 87, 110, 140, 154, 171, 167, 148, 122, 105, 106, 125, 125, 143, 156, 168, 156, 122, 115, 121, 125, 110, 95, 76, 64, 64, 81, 96, 126, 160, 182, 190, 189, 198, 193, 166, 122, 89, 84, 89, 93, 111, 125, 144, 172, 202, 217, 227, 238, 237, 220, 189, 174, 187, 186, 163, 140, 120, 115, 99, 80, 67, 71, 81, 92, 104, 113, 107, 109, 104, 88, 109, 115, 100, 75, 47, 37, 55, 73, 84, 101, 126, 132, 140, 134, 109, 112, 110, 97, 86, 100, 111, 121, 124, 116, 117, 130, 137, 129, 119, 101, 91, 85, 76, 80, 120, 158, 173, 176, 178, 184, 180, 157, 122, 113, 114, 130, 148, 145, 137, 151, 170, 183, 193, 200, 205, 194, 178, 161, 159, 158, 158, 162, 156, 150, 155, 143, 107, 87, 79, 68, 61, 69, 78, 88, 88, 91, 112, 135, 149, 152, 135, 106, 86, 87, 95, 99, 110, 117, 118, 109, 105, 111, 125, 132, 129, 133, 140, 156, 163, 154, 138, 136, 141, 137, 122, 97, 76, 65, 54, 57, 69, 89, 128, 151, 172, 188, 203, 211, 184, 154, 133, 120, 123, 124, 125, 126, 122, 148, 171, 188, 216, 234, 238, 221, 204, 189, 184, 188, 171, 159, 146, 126, 111, 78, 53, 55, 72, 90, 105, 125, 130, 116, 107, 114, 133, 143, 124, 89, 59, 46, 44, 49, 62, 76, 82, 89, 106, 117, 131, 139, 136, 124, 103, 104, 112, 112, 101, 100, 117, 129, 137, 143, 132, 111, 99, 89, 77, 78, 95, 115, 142, 150, 156, 168, 171, 149, 124, 129, 137, 148, 164, 176, 163, 147, 149, 159, 168, 183, 192, 190, 180, 165, 154, 146, 149, 160, 159, 157, 161, 148, 124, 92, 76, 65, 60, 75, 91, 96, 91, 96, 118, 131, 135, 143, 130, 109, 94, 85, 79, 86, 104, 104, 96, 81, 87, 101, 98, 90, 92, 110, 121, 139, 157, 155, 157, 177, 187, 182, 162, 131, 97, 73, 43, 31, 43, 61, 94, 128, 163, 186, 209, 222, 208, 182, 160, 146, 141, 134, 129, 137, 127, 132, 151, 167, 196, 224, 251, 255, 234, 207, 189, 183, 175, 162, 148, 130, 117, 83, 57, 61, 70, 86, 110, 129, 136, 131, 134, 142, 143, 152, 135, 110, 78, 47, 34, 27, 41, 63, 76, 79, 84, 100, 124, 121, 107, 102, 104, 103, 99, 101, 108, 120, 144, 161, 159, 148, 133, 125, 107, 77, 61, 58, 72, 86, 110, 142, 154, 166, 154, 146, 152, 155, 164, 170, 167, 169, 166, 169, 162, 156, 181, 206, 217, 202, 191, 181, 159, 139, 127, 126, 139, 142, 149, 154, 136, 119, 114, 112, 100, 99, 105, 99, 91, 105, 121, 126, 123, 120, 116, 118, 114, 117, 117, 107, 115, 118, 104, 75, 68, 64, 56, 53, 62, 100, 140, 159, 170, 179, 189, 199, 200, 193, 171, 145, 100, 48, 17, 10, 23, 44, 61, 92, 143, 180, 202, 207, 193, 175, 161, 137, 125, 123, 120, 129, 136, 152, 166, 178, 186, 195, 207, 214, 209, 201, 172, 150, 152, 146, 138, 113, 101, 96, 91, 81, 91, 117, 131, 137, 134, 132, 134, 152, 157, 148, 141, 133, 121, 102, 87, 76, 73, 79, 74, 70, 71, 81, 90, 83, 77, 79, 90, 111, 137, 133, 134, 155, 170, 185, 173, 152, 125, 96, 71, 57, 54, 63, 75, 91, 116, 133, 157, 158, 143, 136, 127, 114, 115, 125, 141, 141, 143, 148, 162, 186, 205, 220, 209, 183, 159, 138, 122, 123, 116, 122, 127, 139, 151, 152, 148, 138, 130, 119, 123, 151, 160, 123, 86, 85, 111, 107, 98, 120, 154, 178, 191, 173, 151, 112, 76, 73, 79, 89, 101, 101, 88, 73, 57, 67, 108, 161, 183, 190, 179, 170, 167, 164, 183, 216, 208, 153, 100, 70, 51, 31, 39, 97, 184, 232, 228, 197, 156, 105, 70, 63, 100, 154, 160, 146, 137, 125, 125, 127, 150, 179, 195, 200, 204, 175, 111, 63, 67, 108, 120, 135, 138, 140, 122, 77, 48, 79, 122, 140, 132, 115, 107, 102, 92, 87, 126, 147, 154, 137, 121, 100, 65, 28, 31, 59, 76, 80, 59, 35, 14, 31, 93, 183, 255, 255, 234, 203, 151, 100, 93, 126, 159, 177, 181, 180, 153, 87, 29, 36, 86, 149, 188, 191, 170, 127, 71, 25, 40, 88, 148, 182, 206, 200, 171, 150, 150, 167, 179, 176, 180, 182, 142, 76, 35, 66, 107, 137, 171, 196, 182, 125, 58, 40, 62, 100, 139, 139, 125, 113, 104, 98, 100, 125, 145, 160, 165, 145, 110, 63, 60, 99, 145, 169, 168, 148, 104, 44, 18, 51, 117, 195, 238, 243, 229, 175, 121, 103, 117, 138, 144, 149, 143, 128, 76, 24, 30, 67, 108, 157, 178, 173, 135, 81, 61, 80, 116, 151, 186, 188, 180, 165, 150, 152, 168, 173, 174, 182, 184, 168, 121, 92, 118, 147, 172, 193, 206, 201, 147, 89, 56, 46, 44, 60, 79, 92, 87, 81, 95, 127, 157, 180, 197, 192, 173, 119, 64, 47, 57, 92, 142, 168, 166, 118, 47, 3, 16, 68, 117, 159, 184, 192, 164, 126, 123, 151, 186, 200, 206, 202, 167, 104, 60, 61, 83, 115, 140, 161, 149, 95, 53, 39, 49, 77, 116, 160, 180, 185, 159, 122, 117, 134, 158, 148, 152, 157, 131, 91, 83, 101, 109, 119, 137, 155, 125, 70, 52, 67, 84, 107, 126, 145, 145, 124, 110, 109, 128, 170, 196, 210, 235, 213, 156, 102, 70, 68, 94, 123, 152, 161, 124, 82, 66, 60, 76, 121, 172, 212, 213, 183, 158, 142, 154, 189, 221, 241, 235, 194, 135, 83, 73, 99, 121, 141, 151, 131, 74, 25, 17, 44, 73, 107, 154, 174, 176, 179, 185, 186, 201, 197, 174, 155, 122, 90, 81, 98, 131, 156, 156, 170, 166, 123, 76, 57, 53, 53, 65, 94, 137, 151, 131, 91, 65, 69, 77, 93, 130, 158, 148, 127, 100, 81, 88, 111, 143, 165, 152, 115, 75, 61, 71, 85, 114, 165, 201, 200, 186, 168, 177, 195, 212, 235, 252, 240, 185, 122, 75, 60, 69, 85, 112, 131, 115, 95, 83, 78, 68, 63, 81, 106, 118, 112, 115, 131, 155, 178, 201, 213, 200, 164, 126, 97, 86, 98, 127, 142, 166, 182, 135, 84, 62, 60, 53, 46, 66, 95, 111, 111, 111, 121, 129, 140, 155, 166, 177, 170, 153, 143, 131, 146, 162, 169, 168, 147, 116, 83, 64, 60, 67, 93, 148, 204, 216, 187, 166, 155, 149, 150, 158, 171, 167, 157, 134, 113, 98, 93, 88, 83, 91, 76, 58, 65, 83, 105, 117, 133, 156, 166, 151, 125, 123, 135, 158, 197, 229, 240, 237, 206, 161, 122, 94, 95, 104, 112, 117, 101, 61, 45, 54, 64, 70, 96, 130, 136, 121, 99, 109, 134, 145, 157, 168, 171, 157, 126, 113, 111, 124, 150, 160, 165, 140, 101, 72, 53, 47, 46, 51, 80, 116, 142, 159, 173, 200, 214, 208, 190, 161, 138, 133, 124, 118, 126, 130, 133, 130, 134, 119, 70, 26, 14, 33, 48, 89, 150, 184, 187, 171, 164, 153, 130, 134, 145, 138, 122, 97, 88, 86, 87, 102, 122, 133, 129, 108, 93, 94, 101, 105, 114, 140, 162, 156, 116, 96, 124, 165, 192, 211, 216, 208, 186, 158, 131, 126, 132, 133, 131, 123, 120, 106, 91, 84, 92, 91, 80, 88, 96, 96, 113, 147, 185, 198, 215, 219, 213, 193, 145, 111, 89, 86, 92, 113, 132, 144, 134, 106, 69, 36, 11, 11, 40, 85, 133, 151, 154, 160, 188, 212, 241, 251, 246, 216, 168, 147, 140, 120, 112, 128, 125, 107, 67, 42, 38, 49, 79, 115, 146, 161, 149, 123, 123, 141, 140, 138, 133, 127, 125, 102, 93, 98, 101, 97, 94, 87, 67, 50, 43, 59, 94, 111, 120, 119, 124, 130, 112, 96, 102, 127, 163, 204, 232, 246, 238, 210, 172, 150, 123, 103, 102, 118, 130, 113, 89, 62, 45, 44, 72, 99, 119, 135, 140, 144, 168, 203, 223, 230, 229, 214, 187, 160, 139, 127, 115, 126, 144, 137, 108, 81, 71, 53, 43, 45, 46, 70, 94, 104, 108, 124, 164, 188, 187, 181, 161, 136, 105, 96, 115, 130, 147, 143, 139, 124, 91, 69, 48, 41, 57, 92, 122, 144, 163, 162, 151, 148, 152, 168, 166, 155, 146, 121, 99, 92, 96, 82, 72, 82, 98, 108, 95, 98, 119, 127, 145, 156, 168, 179, 168, 154, 133, 140, 184, 228, 255, 255, 243, 222, 202, 188, 175, 165, 156, 151, 146, 120, 99, 99, 92, 84, 77, 75, 85, 94, 85, 76, 87, 121, 172, 200, 203, 188, 150, 114, 101, 106, 114, 115, 102, 95, 97, 95, 72, 52, 55, 59, 62, 71, 77, 74, 62, 75, 94, 116, 153, 175, 181, 169, 147, 132, 123, 123, 136, 137, 137, 139, 127, 103, 92, 106, 117, 125, 131, 142, 156, 160, 143, 122, 119, 135, 167, 200, 216, 198, 170, 161, 155, 142, 133, 112, 90, 72, 58, 57, 70, 104, 132, 146, 159, 167, 145, 117, 98, 94, 119, 137, 155, 172, 177, 172, 162, 148, 155, 173, 176, 177, 184, 170, 124, 81, 61, 63, 68, 65, 68, 77, 79, 95, 99, 107, 136, 177, 215, 227, 200, 155, 117, 89, 106, 136, 157, 160, 144, 113, 81, 53, 44, 65, 91, 123, 151, 158, 144, 135, 137, 153, 179, 194, 186, 163, 133, 123, 131, 128, 142, 160, 174, 168, 139, 105, 78, 71, 73, 87, 94, 105, 120, 124, 117, 119, 128, 122, 119, 136, 154, 143, 123, 94, 70, 71, 100, 122, 118, 100, 79, 70, 68, 66, 84, 119, 145, 154, 140, 127, 96, 83, 103, 142, 199, 229, 219, 188, 159, 133, 132, 146, 170, 203, 230, 231, 210, 188, 159, 138, 125, 112, 96, 78, 58, 49, 61, 91, 118, 150, 190, 212, 208, 186, 164, 137, 130, 133, 150, 155, 129, 82, 44, 42, 52, 61, 72, 92, 95, 89, 80, 85, 89, 94, 112, 133, 156, 152, 122, 85, 70, 85, 104, 126, 152, 161, 164, 151, 140, 120, 109, 117, 133, 150, 143, 118, 85, 62, 65, 91, 119, 152, 178, 195, 175, 155, 140, 126, 118, 127, 145, 139, 110, 84, 84, 83, 97, 125, 158, 159, 147, 119, 104, 109, 128, 154, 174, 215, 247, 247, 219, 192, 187, 192, 187, 191, 191, 185, 171, 162, 149, 129, 103, 91, 100, 99, 83, 51, 44, 63, 100, 124, 146, 175, 190, 167, 122, 101, 117, 143, 164, 180, 184, 156, 107, 79, 44, 28, 56, 104, 125, 126, 121, 116, 120, 128, 137, 136, 137, 133, 113, 75, 34, 15, 20, 46, 91, 127, 147, 143, 129, 122, 112, 106, 105, 113, 106, 101, 78, 52, 53, 78, 117, 142, 164, 187, 198, 178, 146, 135, 132, 121, 130, 133, 117, 89, 78, 96, 103, 123, 164, 184, 164, 134, 107, 102, 128, 173, 192, 203, 225, 228, 218, 180, 151, 155, 171, 192, 223, 243, 245, 243, 229, 200, 176, 152, 142, 136, 114, 75, 44, 35, 50, 86, 122, 148, 164, 173, 147, 97, 62, 57, 65, 88, 128, 137, 114, 88, 79, 83, 77, 85, 107, 108, 88, 73, 69, 68, 81, 100, 113, 131, 147, 154, 141, 99, 85, 94, 105, 136, 140, 121, 112, 118, 123, 138, 157, 166, 182, 171, 121, 79, 57, 66, 98, 130, 164, 201, 212, 203, 179, 142, 130, 128, 132, 152, 165, 143, 114, 95, 93, 110, 130, 156, 170, 143, 94, 72, 58, 71, 106, 120, 139, 170, 181, 172, 139, 106, 100, 105, 134, 177, 194, 189, 198, 192, 172, 146, 122, 129, 126, 103, 89, 72, 45, 58, 101, 138, 170, 185, 182, 168, 137, 120, 140, 166, 177, 183, 163, 119, 95, 85, 83, 86, 100, 132, 132, 109, 113, 127, 137, 153, 167, 169, 165, 155, 131, 102, 70, 50, 61, 83, 109, 123, 116, 99, 85, 83, 89, 99, 116, 130, 126, 109, 94, 70, 49, 58, 74, 98, 121, 130, 116, 78, 38, 23, 38, 66, 95, 117, 119, 111, 113, 115, 120, 122, 143, 149, 132, 122, 108, 111, 130, 166, 198, 204, 207, 219, 221, 208, 187, 179, 193, 215, 236, 246, 247, 246, 241, 218, 196, 189, 174, 145, 114, 91, 79, 84, 110, 149, 190, 201, 202, 191, 154, 111, 93, 90, 105, 143, 152, 136, 105, 92, 93, 80, 62, 69, 76, 78, 80, 70, 67, 71, 83, 99, 100, 80, 72, 58, 16, 0, 0, 0, 27, 62, 86, 110, 116, 126, 127, 110, 115, 137, 136, 132, 119, 103, 99, 106, 117, 140, 145, 153, 186, 188, 162, 139, 133, 136, 163, 172, 169, 161, 144, 131, 134, 143, 142, 135, 115, 118, 120, 124, 123, 128, 142, 169, 183, 190, 215, 212, 181, 149, 142, 164, 194, 192, 194, 188, 176, 171, 163, 147, 136, 132, 121, 115, 95, 66, 57, 95, 132, 162, 163, 170, 169, 128, 82, 52, 55, 75, 112, 119, 120, 127, 119, 109, 111, 102, 93, 88, 99, 123, 143, 166, 181, 192, 173, 147, 117, 117, 111, 66, 30, 27, 55, 104, 133, 131, 134, 128, 121, 108, 105, 97, 92, 92, 108, 137, 143, 117, 101, 110, 122, 126, 119, 138, 141, 117, 87, 82, 96, 113, 119, 104, 100, 101, 99, 108, 123, 117, 112, 119, 135, 134, 120, 110, 129, 143, 133, 126, 134, 160, 148, 115, 93, 102, 130, 158, 176, 195, 213, 222, 224, 219, 200, 168, 146, 136, 141, 136, 120, 110, 122, 146, 172, 189, 205, 213, 175, 118, 89, 87, 101, 116, 113, 141, 166, 168, 146, 122, 100, 63, 47, 69, 119, 143, 152, 167, 177, 152, 125, 97, 77, 60, 41, 33, 35, 80, 114, 130, 134, 132, 132, 122, 101, 92, 94, 102, 125, 150, 157, 152, 128, 109, 106, 88, 83, 95, 123, 124, 104, 92, 91, 103, 108, 109, 113, 119, 114, 108, 95, 104, 118, 121, 129, 145, 156, 140, 114, 104, 107, 109, 125, 154, 177, 179, 176, 153, 160, 164, 147, 154, 158, 184, 209, 212, 190, 162, 132, 114, 124, 120, 119, 141, 150, 179, 214, 222, 221, 224, 229, 207, 167, 131, 124, 123, 131, 142, 154, 169, 173, 151, 124, 115, 96, 93, 112, 146, 178, 213, 223, 204, 159, 111, 78, 51, 13, 0, 0, 0, 23, 61, 94, 85, 78, 85, 72, 46, 38, 39, 50, 94, 147, 172, 168, 142, 105, 82, 62, 57, 51, 61, 85, 100, 93, 77, 77, 72, 69, 78, 94, 122, 140, 131, 127, 121, 124, 133, 159, 182, 184, 178, 169, 154, 130, 139, 168, 190, 210, 206, 179, 176, 179, 178, 171, 173, 201, 236, 255, 255, 242, 208, 188, 183, 188, 172, 156, 143, 145, 165, 192, 196, 171, 142, 108, 83, 56, 51, 57, 74, 107, 136, 146, 153, 133, 101, 79, 68, 74, 92, 122, 142, 166, 163, 142, 98, 57, 32, 21, 16, 20, 27, 29, 50, 73, 93, 106, 121, 129, 132, 120, 93, 67, 69, 98, 152, 177, 179, 178, 148, 112, 90, 94, 96, 103, 109, 149, 175, 166, 158, 141, 117, 105, 105, 114, 125, 115, 117, 132, 148, 157, 167, 156, 152, 147, 126, 115, 113, 119, 120, 124, 130, 149, 142, 115, 109, 108, 101, 101, 108, 131, 155, 155, 149, 144, 128, 126, 153, 154, 153, 157, 158, 168, 175, 189, 198, 187, 174, 164, 129, 99, 95, 102, 118, 145, 163, 182, 172, 129, 96, 83, 99, 134, 177, 212, 248, 252, 211, 164, 129, 82, 51, 48, 62, 85, 87, 94, 98, 100, 99, 94, 97, 112, 114, 98, 92, 107, 115, 141, 163, 157, 157, 146, 126, 106, 85, 49, 22, 25, 41, 50, 41, 35, 38, 35, 44, 71, 89, 100, 96, 93, 102, 126, 152, 182, 197, 191, 178, 142, 105, 105, 115, 115, 141, 165, 179, 177, 159, 155, 157, 160, 168, 198, 231, 249, 242, 209, 186, 171, 145, 152, 168, 176, 185, 197, 212, 221, 213, 181, 175, 172, 167, 145, 110, 92, 96, 107, 140, 171, 171, 169, 160, 139, 124, 126, 129, 150, 158, 157, 148, 120, 88, 54, 7, 0, 0, 16, 31, 38, 45, 64, 74, 64, 73, 90, 102, 100, 86, 83, 92, 97, 102, 123, 134, 133, 123, 116, 111, 112, 93, 86, 103, 115, 122, 114, 101, 87, 73, 67, 99, 132, 132, 125, 113, 103, 112, 128, 156, 172, 168, 158, 132, 123, 128, 125, 115, 138, 189, 209, 208, 188, 156, 143, 134, 128, 139, 155, 181, 200, 194, 162, 141, 141, 154, 179, 194, 206, 216, 213, 201, 184, 172, 179, 178, 159, 127, 106, 94, 89, 95, 109, 142, 153, 143, 133, 117, 117, 139, 168, 191, 186, 170, 154, 134, 107, 72, 44, 28, 46, 71, 71, 66, 56, 50, 66, 78, 95, 116, 114, 109, 116, 105, 93, 100, 113, 131, 145, 147, 150, 143, 120, 106, 96, 91, 95, 92, 75, 57, 35, 34, 52, 63, 88, 111, 123, 130, 122, 105, 112, 147, 195, 219, 199, 174, 162, 148, 121, 111, 113, 125, 149, 155, 150, 145, 133, 129, 138, 145, 161, 173, 172, 178, 173, 150, 152, 157, 162, 178, 177, 177, 181, 172, 153, 152, 162, 169, 163, 139, 119, 105, 97, 113, 138, 156, 163, 155, 158, 162, 143, 118, 118, 135, 161, 170, 141, 112, 97, 78, 62, 60, 76, 106, 130, 125, 103, 88, 77, 94, 126, 157, 177, 173, 163, 144, 117, 105, 113, 136, 156, 158, 158, 154, 143, 125, 113, 118, 127, 132, 116, 101, 81, 51, 44, 60, 70, 76, 72, 59, 58, 57, 52, 58, 90, 123, 150, 138, 110, 103, 102, 102, 109, 129, 144, 155, 159, 149, 130, 114, 114, 132, 146, 157, 153, 138, 117, 96, 89, 106, 142, 178, 208, 220, 217, 207, 204, 202, 214, 228, 237, 228, 196, 162, 132, 113, 114, 142, 160, 164, 158, 156, 155, 151, 149, 162, 194, 221, 219, 186, 161, 141, 119, 99, 97, 100, 106, 102, 81, 60, 36, 17, 26, 65, 92, 89, 67, 51, 48, 45, 45, 60, 89, 108, 120, 126, 118, 107, 93, 76, 68, 69, 63, 48, 30, 19, 17, 28, 62, 98, 105, 86, 69, 67, 72, 77, 90, 129, 172, 185, 168, 144, 136, 142, 147, 153, 168, 178, 179, 179, 170, 150, 134, 133, 155, 198, 224, 217, 196, 178, 170, 164, 170, 194, 223, 244, 255, 253, 240, 232, 221, 206, 204, 195, 179, 169, 147, 120, 105, 109, 129, 139, 128, 118, 120, 130, 124, 109, 120, 146, 155, 137, 107, 86, 82, 74, 75, 96, 114, 107, 94, 93, 89, 78, 74, 90, 119, 136, 121, 93, 69, 47, 40, 52, 73, 93, 98, 108, 121, 130, 129, 125, 121, 126, 130, 124, 131, 129, 110, 87, 87, 102, 118, 109, 86, 77, 79, 82, 93, 113, 130, 141, 147, 150, 149, 151, 153, 159, 166, 175, 175, 166, 168, 162, 137, 106, 89, 93, 107, 102, 90, 81, 72, 72, 87, 114, 149, 179, 193, 198, 206, 220, 225, 223, 209, 192, 177, 166, 162, 148, 130, 130, 144, 153, 143, 115, 92, 90, 95, 103, 125, 148, 159, 163, 162, 166, 165, 153, 143, 135, 138, 137, 122, 114, 117, 112, 98, 93, 105, 119, 116, 94, 84, 79, 68, 71, 80, 90, 118, 147, 160, 169, 169, 156, 137, 121, 96, 82, 82, 90, 87, 68, 57, 65, 78, 75, 61, 44, 45, 55, 66, 87, 117, 132, 138, 142, 146, 153, 156, 155, 152, 145, 140, 131, 111, 101, 97, 96, 98, 110, 132, 148, 145, 141, 138, 125, 117, 127, 144, 155, 178, 203, 217, 220, 216, 211, 209, 198, 180, 172, 176, 178, 166, 154, 152, 162, 172, 172, 157, 137, 126, 124, 126, 135, 146, 148, 159, 169, 172, 164, 160, 166, 157, 140, 131, 127, 120, 113, 105, 96, 97, 105, 103, 93, 83, 70, 62, 62, 65, 76, 83, 95, 111, 112, 107, 114, 119, 114, 101, 83, 88, 106, 113, 104, 88, 85, 90, 81, 69, 58, 38, 24, 31, 52, 71, 79, 80, 91, 118, 143, 152, 157, 161, 159, 154, 152, 146, 136, 124, 118, 114, 110, 112, 121, 130, 137, 129, 120, 129, 143, 157, 164, 177, 208, 231, 231, 232, 243, 243, 229, 203, 182, 187, 199, 194, 183, 177, 174, 161, 145, 128, 104, 78, 77, 97, 114, 131, 139, 150, 177, 206, 213, 209, 194, 166, 130, 110, 104, 98, 90, 91, 101, 100, 91, 78, 70, 70, 70, 59, 62, 72, 72, 76, 85, 110, 129, 125, 113, 108, 108, 103, 86, 71, 70, 84, 84, 78, 81, 85, 87, 88, 89, 85, 69, 59, 74, 95, 108, 109, 116, 131, 165, 189, 203, 210, 192, 164, 144, 133, 122, 109, 105, 110, 111, 115, 120, 123, 128, 130, 130, 127, 131, 133, 131, 137, 156, 187, 204, 203, 202, 203, 191, 166, 148, 145, 154, 160, 159, 171, 181, 173, 164, 155, 141, 118, 91, 82, 85, 96, 107, 111, 123, 149, 174, 187, 197, 194, 172, 149, 132, 123, 122, 122, 128, 138, 142, 140, 135, 131, 123, 117, 113, 117, 123, 121, 118, 116, 118, 117, 104, 98, 101, 103, 104, 109, 122, 134, 134, 125, 119, 113, 93, 73, 63, 59, 51, 43, 41, 46, 55, 64, 67, 80, 109, 142, 169, 186, 188, 168, 139, 112, 94, 88, 84, 85, 87, 90, 99, 105, 109, 110, 104, 100, 104, 123, 135, 145, 160, 170, 175, 178, 183, 190, 192, 186, 176, 170, 176, 176, 173, 177, 189, 192, 190, 188, 175, 153, 128, 110, 104, 109, 126, 143, 160, 183, 205, 221, 225, 219, 194, 163, 143, 134, 135, 137, 147, 149, 142, 131, 119, 108, 95, 77, 60, 57, 66, 81, 95, 109, 111, 104, 99, 91, 80, 66, 55, 56, 61, 70, 75, 76, 84, 92, 94, 89, 81, 71, 54, 35, 30, 35, 49, 69, 83, 91, 107, 130, 151, 175, 185, 176, 155, 134, 110, 89, 77, 77, 82, 88, 103, 129, 151, 162, 158, 144, 138, 140, 150, 167, 181, 192, 196, 195, 195, 195, 186, 174, 173, 174, 177, 178, 171, 176, 190, 201, 207, 204, 191, 170, 146, 127, 112, 101, 98, 105, 118, 135, 156, 179, 207, 219, 211, 195, 176, 151, 130, 121, 121, 135, 143, 141, 141, 139, 127, 105, 81, 64, 59, 67, 87, 104, 109, 108, 96, 88, 86, 81, 73, 75, 82, 87, 95, 95, 91, 86, 84, 86, 89, 86, 76, 67, 56, 50, 50, 53, 66, 84, 101, 116, 129, 145, 158, 162, 158, 155, 143, 125, 107, 99, 97, 99, 97, 96, 106, 115, 122, 122, 123, 133, 145, 162, 179, 182, 177, 169, 166, 170, 178, 182, 185, 184, 181, 175, 170, 169, 168, 177, 188, 196, 190, 173, 152, 133, 118, 105, 98, 98, 108, 128, 147, 164, 183, 193, 188, 180, 176, 168, 150, 129, 118, 114, 117, 121, 130, 142, 143, 133, 120, 103, 84, 77, 86, 104, 120, 127, 122, 114, 106, 101, 95, 86, 80, 82, 89, 99, 113, 126, 125, 124, 123, 107, 84, 63, 51, 44, 40, 45, 60, 78, 95, 110, 128, 149, 156, 154, 153, 147, 137, 124, 110, 100, 93, 95, 95, 101, 108, 110, 109, 104, 106, 114, 118, 129, 143, 153, 158, 156, 155, 156, 154, 156, 166, 174, 181, 184, 179, 174, 170, 163, 167, 181, 185, 185, 184, 176, 161, 140, 115, 99, 96, 99, 111, 131, 159, 184, 198, 202, 197, 192, 185, 179, 168, 159, 156, 148, 149, 157, 158, 151, 134, 113, 97, 81, 76, 80, 85, 92, 97, 103, 108, 109, 105, 100, 94, 84, 85, 89, 89, 96, 95, 94, 93, 84, 68, 56, 43, 27, 15, 8, 14, 30, 47, 65, 86, 106, 120, 129, 133, 139, 136, 130, 130, 125, 116, 114, 109, 102, 101, 104, 110, 118, 126, 135, 151, 167, 174, 175, 177, 179, 179, 177, 179, 186, 191, 197, 200, 211, 224, 224, 217, 208, 196, 189, 182, 174, 173, 175, 172, 158, 145, 128, 113, 103, 99, 110, 127, 143, 161, 175, 181, 181, 173, 169, 165, 155, 143, 132, 128, 131, 131, 126, 115, 100, 86, 73, 67, 64, 63, 67, 82, 98, 105, 111, 118, 118, 108, 92, 80, 86, 93, 96, 105, 111, 118, 117, 102, 90, 86, 79, 67, 57, 58, 62, 69, 86, 105, 122, 127, 128, 135, 134, 128, 126, 136, 148, 153, 152, 151, 148, 136, 124, 114, 109, 107, 109, 118, 132, 140, 138, 134, 135, 141, 145, 143, 146, 157, 163, 167, 168, 176, 180, 178, 178, 181, 177, 170, 163, 159, 158, 158, 150, 136, 123, 105, 86, 73, 75, 87, 102, 126, 159, 186, 197, 196, 192, 192, 184, 168, 153, 152, 153, 153, 156, 161, 155, 144, 131, 117, 107, 93, 85, 87, 100, 116, 131, 143, 151, 147, 135, 122, 117, 114, 107, 109, 121, 127, 116, 101, 93, 84, 72, 64, 55, 49, 46, 40, 44, 61, 79, 85, 91, 98, 105, 106, 107, 114, 125, 136, 140, 140, 139, 133, 118, 102, 95, 89, 88, 101, 117, 130, 135, 134, 133, 139, 143, 148, 159, 170, 183, 190, 191, 202, 208, 199, 190, 185, 185, 179, 170, 167, 173, 178, 176, 173, 167, 152, 131, 111, 104, 104, 103, 110, 125, 145, 162, 172, 178, 184, 186, 179, 167, 159, 152, 141, 132, 130, 127, 117, 110, 103, 91, 75, 66, 64, 70, 78, 87, 104, 120, 128, 126, 112, 99, 93, 88, 88, 97, 110, 117, 111, 99, 89, 80, 72, 64, 63, 60, 54, 52, 65, 84, 91, 95, 100, 102, 104, 107, 115, 131, 142, 145, 144, 148, 148, 139, 124, 113, 109, 109, 116, 126, 134, 136, 134, 134, 137, 140, 140, 144, 157, 170, 180, 183, 184, 191, 190, 186, 184, 184, 180, 171, 166, 164, 165, 162, 158, 159, 152, 131, 107, 93, 92, 93, 98, 112, 131, 150, 163, 170, 180, 186, 185, 181, 179, 178, 168, 156, 147, 143, 140, 135, 131, 122, 106, 89, 80, 81, 88, 96, 112, 134, 154, 162, 156, 142, 123, 105, 93, 88, 91, 101, 106, 104, 98, 92, 85, 75, 72, 73, 67, 57, 56, 65, 73, 79, 83, 85, 88, 89, 92, 105, 118, 126, 132, 138, 145, 140, 127, 113, 105, 102, 106, 116, 129, 135, 131, 127, 125, 122, 123, 130, 144, 159, 174, 182, 185, 189, 190, 193, 192, 190, 188, 185, 176, 165, 158, 154, 151, 149, 149, 141, 124, 107, 100, 96, 99, 108, 119, 133, 146, 159, 171, 179, 180, 178, 173, 171, 168, 156, 141, 129, 123, 123, 123, 122, 114, 100, 87, 82, 84, 86, 93, 103, 118, 130, 134, 129, 119, 111, 111, 113, 113, 116, 121, 122, 118, 112, 109, 107, 105, 101, 98, 90, 79, 78, 84, 92, 99, 101, 103, 104, 105, 111, 119, 128, 136, 142, 148, 154, 153, 141, 123, 109, 105, 108, 116, 120, 120, 117, 114, 114, 116, 124, 135, 153, 169, 178, 181, 179, 175, 173, 174, 175, 174, 172, 170, 162, 156, 150, 142, 135, 129, 122, 111, 98, 90, 90, 95, 101, 108, 119, 131, 139, 149, 162, 172, 176, 174, 169, 165, 164, 158, 147, 139, 136, 141, 144, 138, 126, 114, 105, 100, 99, 102, 109, 120, 133, 137, 135, 126, 115, 109, 106, 108, 111, 115, 119, 118, 111, 104, 97, 92, 86, 81, 78, 71, 64, 63, 68, 78, 91, 101, 106, 107, 108, 110, 113, 115, 115, 116, 120, 124, 125, 124, 120, 118, 124, 133, 138, 132, 118, 111, 112, 116, 124, 134, 146, 159, 169, 174, 174, 179, 185, 191, 196, 196, 195, 191, 187, 181, 170, 160, 155, 150, 141, 132, 121, 107, 98, 95, 98, 109, 125, 136, 141, 145, 149, 160, 164, 165, 167, 168, 169, 166, 156, 144, 132, 124, 126, 128, 124, 114, 100, 90, 85, 86, 93, 106, 118, 126, 127, 122, 117, 111, 110, 114, 121, 125, 125, 123, 122, 118, 112, 108, 107, 104, 100, 89, 78, 75, 78, 84, 94, 105, 115, 120, 117, 115, 119, 122, 123, 123, 124, 128, 132, 132, 126, 117, 112, 115, 123, 126, 123, 115, 108, 108, 110, 119, 137, 156, 168, 173, 172, 172, 173, 171, 173, 182, 192, 195, 186, 171, 155, 137, 124, 115, 107, 104, 98, 86, 81, 79, 82, 94, 111, 128, 142, 148, 148, 148, 149, 150, 149, 150, 153, 154, 154, 151, 143, 135, 134, 137, 138, 134, 123, 112, 104, 100, 101, 111, 123, 133, 137, 132, 123, 115, 109, 109, 115, 124, 130, 129, 123, 113, 104, 101, 102, 104, 107, 104, 94, 82, 74, 74, 81, 96, 114, 128, 134, 131, 123, 114, 110, 112, 118, 126, 132, 131, 127, 121, 115, 115, 120, 126, 129, 125, 118, 110, 106, 112, 125, 143, 161, 174, 179, 177, 169, 163, 164, 172, 184, 193, 195, 189, 176, 159, 146, 137, 131, 127, 121, 110, 96, 84, 74, 77, 90, 108, 127, 140, 145, 140, 133, 133, 135, 139, 146, 151, 152, 145, 134, 125, 124, 127, 131, 131, 122, 109, 94, 79, 76, 85, 99, 115, 125, 129, 124, 114, 105, 105, 116, 132, 144, 147, 143, 131, 117, 107, 104, 104, 107, 109, 108, 104, 97, 92, 94, 100, 113, 130, 143, 145, 140, 129, 120, 118, 120, 125, 134, 142, 142, 134, 126, 123, 124, 126, 128, 123, 115, 106, 98, 98, 111, 131, 150, 164, 171, 171, 165, 158, 154, 159, 168, 180, 186, 182, 169, 153, 137, 126, 118, 116, 113, 107, 99, 89, 83, 87, 98, 112, 125, 137, 145, 145, 138, 130, 131, 138, 144, 151, 156, 157, 151, 143, 139, 138, 138, 139, 137, 130, 119, 104, 98, 100, 108, 119, 131, 136, 135, 127, 115, 106, 106, 113, 122, 132, 136, 131, 120, 111, 107, 107, 108, 108, 106, 103, 98, 93, 94, 99, 109, 119, 127, 131, 130, 122, 112, 105, 103, 106, 114, 123, 128, 129, 126, 124, 126, 128, 128, 127, 122, 114, 103, 97, 101, 116, 133, 150, 166, 174, 176, 173, 168, 167, 171, 179, 187, 190, 185, 173, 158, 145, 135, 131, 129, 126, 121, 114, 103, 99, 100, 108, 119, 128, 136, 139, 134, 126, 122, 123, 128, 132, 138, 143, 141, 137, 136, 137, 137, 134, 128, 120, 111, 99, 88, 85, 89, 97, 106, 113, 115, 114, 109, 102, 99, 102, 109, 119, 126, 127, 124, 120, 112, 109, 108, 106, 107, 110, 109, 105, 107, 112, 118, 124, 130, 137, 140, 139, 133, 128, 126, 128, 133, 140, 145, 145, 140, 134, 129, 130, 131, 131, 129, 124, 118, 111, 111, 119, 133, 147, 160, 170, 175, 176, 175, 176, 176, 175, 176, 177, 174, 166, 156, 145, 134, 126, 119, 114, 112, 110, 105, 100, 99, 104, 111, 117, 122, 126, 128, 128, 126, 125, 123, 123, 127, 134, 140, 141, 138, 136, 134, 128, 124, 120, 115, 107, 98, 92, 92, 98, 105, 111, 116, 119, 117, 113, 108, 107, 107, 110, 114, 116, 115, 111, 106, 101, 101, 102, 104, 106, 108, 106, 104, 107, 115, 123, 131, 135, 137, 138, 138, 136, 133, 130, 126, 128, 133, 140, 143, 142, 139, 140, 140, 137, 132, 129, 123, 118, 114, 116, 125, 137, 146, 153, 159, 164, 167, 168, 170, 171, 169, 168, 167, 165, 161, 154, 145, 139, 133, 128, 125, 122, 119, 114, 109, 112, 118, 123, 128, 129, 129, 126, 124, 124, 122, 122, 125, 129, 135, 138, 135, 129, 126, 126, 125, 120, 114, 107, 100, 93, 88, 89, 98, 106, 114, 120, 122, 121, 117, 116, 119, 120, 122, 125, 125, 122, 117, 113, 110, 109, 108, 110, 114, 117, 117, 115, 116, 118, 121, 124, 127, 127, 126, 127, 128, 131, 132, 131, 132, 135, 137, 135, 132, 131, 133, 134, 131, 126, 121, 115, 111, 111, 119, 130, 142, 152, 161, 168, 168, 165, 166, 169, 171, 170, 169, 166, 162, 154, 145, 139, 134, 129, 124, 122, 122, 121, 117, 115, 117, 121, 128, 137, 143, 145, 141, 137, 135, 132, 128, 126, 129, 134, 135, 132, 132, 134, 134, 131, 126, 122, 119, 112, 104, 102, 105, 107, 108, 108, 109, 107, 102, 100, 105, 109, 109, 108, 109, 106, 100, 94, 92, 96, 99, 99, 101, 105, 108, 108, 110, 115, 120, 125, 131, 134, 133, 130, 127, 129, 133, 132, 131, 133, 135, 135, 129, 124, 125, 127, 130, 132, 131, 128, 125, 122, 124, 130, 138, 147, 160, 171, 176, 175, 174, 175, 175, 172, 171, 171, 168, 162, 155, 150, 151, 151, 148, 145, 142, 139, 135, 132, 129, 127, 125, 123, 122, 122, 119, 114, 111, 114, 117, 117, 116, 118, 119, 117, 114, 118, 123, 124, 122, 117, 109, 102, 98, 97, 100, 103, 105, 107, 108, 108, 106, 102, 104, 108, 110, 112, 116, 118, 115, 109, 102, 98, 97, 98, 102, 105, 108, 110, 112, 117, 118, 119, 125, 132, 138, 139, 139, 140, 143, 144, 141, 139, 138, 138, 136, 131, 130, 133, 136, 139, 140, 138, 134, 131, 133, 138, 142, 146, 148, 150, 151, 151, 150, 153, 157, 159, 159, 156, 153, 148, 142, 140, 141, 141, 139, 137, 134, 129, 125, 122, 123, 124, 124, 125, 128, 130, 130, 128, 127, 129, 131, 130, 126, 125, 125, 123, 120, 119, 119, 120, 122, 121, 115, 108, 102, 102, 106, 109, 110, 113, 115, 116, 115, 114, 116, 119, 120, 119, 117, 115, 113, 110, 108, 109, 110, 111, 110, 110, 111, 111, 112, 119, 124, 126, 127, 128, 127, 124, 121, 121, 125, 129, 131, 128, 123, 119, 117, 114, 112, 114, 117, 122, 126, 127, 124, 120, 121, 129, 135, 139, 143, 146, 148, 148, 149, 153, 159, 163, 164, 162, 157, 153, 149, 146, 145, 145, 146, 146, 145, 141, 136, 133, 133, 134, 133, 130, 130, 131, 131, 131, 130, 134, 139, 139, 134, 127, 123, 122, 122, 123, 127, 131, 134, 135, 131, 125, 119, 116, 119, 124, 126, 123, 117, 110, 104, 100, 99, 102, 108, 111, 110, 107, 103, 101, 102, 104, 106, 108, 110, 111, 110, 106, 103, 105, 113, 121, 126, 129, 130, 128, 126, 127, 129, 137, 142, 141, 137, 132, 128, 125, 123, 123, 126, 129, 130, 130, 127, 122, 120, 124, 132, 140, 145, 146, 146, 144, 144, 149, 156, 164, 167, 163, 156, 150, 147, 148, 151, 155, 159, 160, 160, 158, 152, 145, 140, 139, 140, 139, 135, 130, 124, 119, 116, 116, 120, 125, 123, 116, 107, 103, 102, 105, 110, 118, 126, 130, 130, 124, 113, 104, 101, 104, 111, 114, 113, 108, 103, 99, 99, 101, 108, 114, 117, 115, 110, 106, 105, 108, 113, 120, 124, 126, 125, 120, 113, 109, 112, 120, 128, 132, 134, 135, 136, 138, 142, 147, 154, 157, 153, 143, 133, 127, 125, 126, 130, 133, 136, 139, 139, 137, 133, 133, 140, 149, 152, 149, 141, 132, 127, 126, 131, 138, 145, 147, 143, 135, 129, 127, 128, 133, 139, 147, 151, 152, 149, 144, 137, 133, 132, 132, 131, 127, 123, 118, 115, 113, 117, 123, 128, 129, 124, 118, 114, 111, 115, 122, 128, 131, 129, 127, 123, 117, 112, 112, 117, 120, 119, 114, 109, 105, 103, 105, 110, 115, 120, 120, 118, 116, 115, 117, 121, 126, 130, 133, 133, 131, 129, 127, 128, 133, 139, 141, 138, 133, 130, 127, 125, 127, 131, 133, 133, 128, 120, 114, 110, 110, 114, 121, 128, 133, 133, 132, 127, 124, 127, 135, 143, 146, 144, 138, 131, 125, 123, 126, 132, 138, 141, 141, 140, 140, 141, 142, 145, 150, 155, 159, 157, 152, 144, 134, 128, 126, 126, 125, 124, 124, 125, 126, 127, 130, 131, 130, 127, 122, 118, 117, 119, 126, 135, 142, 145, 142, 138, 132, 127, 124, 125, 129, 128, 123, 115, 107, 102, 100, 102, 105, 108, 107, 105, 103, 103, 104, 108, 115, 123, 128, 131, 130, 126, 122, 120, 120, 124, 129, 132, 132, 131, 132, 135, 138, 139, 140, 142, 143, 140, 133, 125, 121, 122, 126, 131, 136, 138, 136, 133, 129, 126, 126, 128, 130, 130, 127, 124, 124, 126, 131, 139, 146, 148, 146, 142, 140, 138, 138, 139, 143, 149, 154, 157, 156, 153, 150, 148, 147, 146, 142, 134, 126, 119, 116, 116, 119, 121, 120, 116, 111, 106, 100, 97, 100, 107, 116, 123, 125, 126, 126, 124, 121, 119, 119, 120, 121, 117, 112, 106, 101, 99, 99, 102, 106, 108, 110, 111, 114, 118, 121, 124, 128, 130, 131, 131, 126, 123, 121, 122, 127, 131, 132, 130, 129, 133, 139, 142, 144, 146, 146, 145, 142, 138, 134, 135, 138, 145, 152, 155, 154, 151, 149, 151, 154, 156, 155, 152, 146, 137, 127, 120, 118, 117, 118, 120, 121, 122, 122, 122, 125, 129, 133, 137, 140, 143, 145, 143, 138, 132, 128, 126, 126, 125, 120, 114, 112, 113, 114, 114, 112, 111, 111, 111, 109, 109, 111, 116, 124, 133, 139, 140, 135, 127, 120, 115, 110, 107, 104, 103, 103, 103, 104, 106, 110, 113, 116, 117, 117, 117, 119, 122, 126, 132, 139, 144, 145, 145, 142, 140, 139, 138, 138, 140, 143, 142, 136, 132, 134, 140, 142, 139, 137, 135, 130, 124, 118, 114, 116, 121, 129, 137, 142, 141, 137, 134, 133, 132, 132, 130, 128, 123, 117, 114, 116, 120, 123, 125, 128, 132, 134, 135, 136, 135, 136, 137, 138, 140, 141, 140, 138, 136, 134, 130, 126, 123, 122, 120, 117, 118, 123, 127, 128, 126, 123, 121, 117, 114, 114, 116, 119, 123, 131, 137, 140, 139, 138, 137, 136, 133, 129, 125, 119, 111, 104, 102, 103, 105, 105, 104, 103, 102, 101, 101, 105, 109, 112, 118, 121, 126, 128, 127, 126, 128, 132, 136, 141, 144, 144, 140, 136, 136, 136, 134, 132, 132, 131, 131, 131, 134, 139, 143, 147, 153, 157, 158, 155, 149, 145, 144, 140, 136, 133, 129, 123, 115, 112, 116, 120, 123, 124, 124, 126, 130, 133, 137, 142, 146, 148, 150, 149, 148, 145, 142, 139, 138, 138, 136, 133, 127, 118, 109, 107, 108, 108, 106, 104, 102, 101, 97, 95, 97, 102, 109, 117, 125, 129, 130, 127, 122, 120, 119, 117, 113, 109, 106, 102, 99, 101, 106, 109, 111, 112, 113, 116, 120, 127, 132, 136, 139, 141, 143, 142, 139, 135, 132, 131, 131, 132, 134, 136, 136, 135, 137, 143, 148, 148, 145, 141, 138, 136, 135, 137, 140, 143, 148, 154, 156, 155, 152, 148, 145, 142, 139, 136, 132, 125, 119, 114, 114, 118, 122, 122, 122, 122, 122, 120, 120, 121, 123, 124, 127, 130, 133, 132, 130, 129, 130, 133, 136, 139, 138, 133, 126, 121, 120, 120, 121, 121, 120, 118, 115, 113, 112, 113, 117, 121, 126, 131, 131, 128, 125, 123, 121, 118, 114, 111, 106, 101, 99, 101, 105, 110, 112, 110, 110, 111, 111, 114, 119, 123, 127, 132, 137, 140, 140, 138, 136, 136, 139, 143, 146, 149, 147, 143, 139, 136, 135, 134, 133, 132, 131, 127, 124, 122, 123, 129, 136, 144, 152, 155, 153, 148, 146, 145, 144, 144, 144, 141, 135, 127, 121, 118, 118, 118, 118, 118, 120, 124, 129, 134, 138, 141, 145, 147, 146, 141, 134, 129, 125, 123, 122, 124, 125, 123, 118, 113, 112, 112, 112, 112, 111, 110, 110, 110, 111, 113, 119, 126, 132, 137, 139, 136, 132, 129, 127, 124, 120, 117, 113, 108, 104, 104, 107, 112, 116, 119, 120, 121, 119, 116, 116, 119, 121, 123, 128, 133, 136, 135, 131, 129, 131, 133, 137, 142, 146, 147, 144, 143, 143, 144, 145, 146, 144, 141, 139, 137, 135, 134, 137, 144, 150, 152, 150, 146, 141, 138, 134, 130, 127, 125, 121, 117, 115, 116, 118, 120, 121, 121, 122, 123, 123, 125, 128, 132, 135, 138, 140, 140, 139, 136, 133, 130, 130, 133, 136, 137, 134, 129, 124, 120, 118, 116, 117, 116, 114, 111, 107, 103, 102, 103, 106, 112, 117, 117, 115, 113, 113, 115, 116, 116, 116, 115, 113, 111, 107, 106, 108, 111, 112, 112, 113, 114, 116, 116, 116, 117, 122, 127, 132, 133, 131, 129, 129, 131, 134, 139, 144, 146, 144, 141, 139, 138, 137, 137, 138, 139, 139, 138, 139, 143, 148, 155, 162, 170, 173, 171, 167, 162, 159, 155, 152, 150, 147, 143, 138, 134, 131, 128, 127, 128, 128, 127, 126, 127, 128, 127, 126, 128, 131, 132, 131, 128, 123, 119, 116, 115, 118, 122, 125, 124, 121, 117, 113, 111, 111, 111, 111, 110, 109, 109, 108, 109, 113, 118, 123, 124, 121, 118, 115, 111, 106, 103, 103, 105, 106, 108, 110, 112, 113, 112, 112, 115, 117, 118, 120, 122, 124, 126, 129, 134, 140, 144, 146, 146, 144, 141, 140, 142, 145, 147, 146, 146, 146, 146, 145, 146, 148, 148, 144, 140, 136, 132, 129, 129, 131, 136, 140, 140, 138, 136, 134, 132, 129, 128, 130, 132, 134, 133, 129, 126, 124, 125, 128, 130, 132, 134, 134, 130, 126, 124, 125, 126, 127, 127, 129, 128, 124, 120, 120, 123, 128, 130, 130, 129, 127, 123, 120, 119, 120, 120, 119, 118, 118, 117, 115, 115, 119, 122, 124, 124, 125, 127, 126, 124, 123, 122, 122, 120, 119, 116, 114, 112, 111, 111, 111, 110, 110, 111, 110, 108, 106, 108, 114, 118, 120, 121, 122, 125, 126, 129, 134, 141, 148, 151, 151, 149, 148, 147, 148, 151, 153, 153, 153, 152, 152, 151, 151, 152, 155, 155, 154, 152, 149, 145, 141, 139, 140, 143, 144, 143, 139, 135, 130, 125, 121, 119, 119, 123, 128, 132, 135, 135, 135, 136, 136, 136, 135, 132, 129, 126, 123, 121, 120, 119, 119, 119, 119, 117, 114, 113, 113, 112, 109, 105, 103, 101, 100, 99, 100, 102, 101, 100, 99, 100, 101, 102, 102, 103, 107, 114, 118, 119, 118, 118, 118, 120, 121, 122, 125, 127, 126, 123, 121, 121, 125, 129, 133, 136, 136, 134, 132, 131, 131, 133, 137, 141, 147, 151, 153, 153, 152, 151, 151, 151, 151, 151, 151, 150, 149, 149, 150, 151, 152, 151, 151, 150, 149, 147, 143, 142, 143, 144, 143, 140, 137, 133, 131, 129, 127, 127, 127, 126, 124, 121, 118, 117, 118, 119, 121, 121, 120, 119, 118, 118, 120, 122, 123, 124, 123, 122, 121, 120, 121, 121, 122, 124, 124, 122, 117, 112, 109, 107, 106, 105, 105, 106, 109, 112, 113, 112, 112, 113, 116, 119, 119, 114, 108, 103, 99, 99, 100, 103, 108, 112, 114, 116, 118, 121, 126, 129, 131, 133, 135, 136, 137, 138, 139, 141, 144, 147, 149, 150, 150, 151, 153, 152, 151, 151, 152, 151, 150, 150, 152, 153, 151, 147, 145, 145, 145, 143, 142, 143, 144, 145, 147, 146, 143, 137, 131, 127, 127, 128, 130, 134, 135, 134, 133, 132, 129, 128, 127, 127, 125, 121, 116, 111, 108, 106, 106, 110, 116, 119, 120, 114, 122, 129, 126, 128, 127, 128, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 128, 127, 128, 127, 127, 127, 127, 126, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 128, 128, 128, 128, 127, 128, 128, 128, 128, 128, 128, 127, 127, 128, 128, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 128, 128, 127, 127, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128,
};
// a sample audio to test DAC. formated to 8khz sample rate and 16 bit - pcm
// i follow this video [https://www.youtube.com/watch?v=m1HEwgHSBrs&pp=ugMICgJpZBABGAE%3D] to get audio data from mp3 file

#include <Shifty.h>
Shifty shift;
int latch = 8, datain = 9, srclock = 10;

void setup(){
 shift.setBitCount(8);
 shift.setPins(datain , srclock , latch);
//note: OE always enable

for (int y = 0; y < sizeof(sample); y++) {
 int smp = pgm_read_byte(&(sample[y]));
 shift.batchWriteBegin();
    for (byte i = 0; i < 8; i++) {
      byte state = bitRead(smp, i);
      shift.writeBit(i, state);
    }
 shift.batchWriteEnd();
 }
}
void loop(){
//nothing
}

i try to searching on google. why the sound is slow. then i found that library using shiftOut() function and i found this too

so i decided to use spi to communicate with 74hc595. and it worked. but the sound is too fast. i tried adding a delay after it finished sending data and it works but still a bit fast

here the code

#include <SPI.h>
int latch = 8;
//note: srclock on pin 13. datain on pin 11 and the sample data is the same as above

void setup() {
  SPI.begin();
  SPI.setBitOrder(MSBFIRST);
  SPI.setDataMode(SPI_MODE0);
  pinMode(latch , OUTPUT); //latch 74hc595
  digitalWrite(latch, 0);

  for (int y = 0; y < sizeof(sample); y++) {
    int smp = pgm_read_byte(&(sample[y]));
    SPI.transfer(smp);
    digitalWrite(latch, 1);
    digitalWrite(latch, 0);
    delayMicroseconds(100);
  }
  SPI.end();
}

void loop() {
}

so the question is

1. how much delay needed to get same speed as original audio. here the audio file
audio file.zip (10.5 KB)

2. can i achieve high sample rate with this method?. maybe 22khz or 44.1khz sample rate
3. do i need an interrupt to run playback code and receive stream data asynchronously?

thank you for your answer. sorry for my bad english

You need a stable sample frequency, e.g. from a timer. Polling the timer overflow flag is sufficient.

In a more sophisticated version you can shift out the next byte at any time and pulse the latch in the timer overflow ISR.

1 Like

That's an mp3 file, not sample data such as a wav file.

I've never used a timer to run loop code at a specific time interrupt. can you provide example code for it?.

btw, the question 1 has been answered. and need a delay of 125 microseconds to reach the 8khz sample rate. I counted it on this website Frequency to Period Calculator

If your sample rate is 8kHz you'll likely need a reconstruction filter to prevent high frequency aliasing of your audio. Such a filter would need a cutoff around 3 to 3.5kHz to reject aliases.

Higher rates will place more demands on the processor of course.

Typically you might set a timer to the sampling frequency and use timer overflow interrupt to drive the sample updates.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.